@rango-dev/widget-embedded 0.49.1-next.0 → 0.49.1-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var fC=Object.defineProperty;var i=(t,e)=>fC(t,"name",{value:e,configurable:!0});import{EventSeverity as kee,RouteEventType as Tee,StepEventType as wee,StepExecutionBlockedEventStatus as vee,StepExecutionEventStatus as bee}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as Eee}from"@rango-dev/wallets-core/legacy";import{useWallets as Ki,Events as Aee}from"@rango-dev/wallets-react";import{Networks as Bee,WalletTypes as Wee}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as Lee}from"rango-types";import{Divider as MT}from"@rango-dev/ui";import lo,{useEffect as LT,useRef as PT,useState as Sd}from"react";import{WalletState as gC}from"@rango-dev/ui";import{useWallets as hC}from"@rango-dev/wallets-react";import{useReducer as yC}from"react";function Pp(t){return!!t.derivationPath}i(Pp,"isStateOnDerivationPathStep");function _p(t){return!!t.namespace}i(_p,"isStateOnNamespace");var Vr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Dp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return Vr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Vr;default:throw new Error("Action hasn't been defined.")}}i(Dp,"reducer");function Xo(){let{state:t,disconnect:e,connect:o}=hC(),[n,r]=yC(Dp,Vr),a=i(async(d,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(d,g),{status:"connected"}}catch(g){let m=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:g})}},"runConnect"),s=i(async(d,f)=>{if(d.state===gC.DISCONNECTED){let g=!!d.isHub,m=g?d.properties?.find(y=>y.name==="namespaces")?.value:d.needsNamespace,C=g?d.properties?.find(y=>y.name==="derivationPath")?.value:d.needsDerivationPath;if(!m?.data?.length)return await a(d.type,void 0,f);if(m?.data.length&&m.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(m?.data.length===1&&m.data[0]){if(C){let y=m.data[0];return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y.value}}),{status:"derivation-path"}}return await a(d.type,m?.data?.map(y=>({namespace:y.value})),f)}}if(d.isHub){let g=d.properties?.find(m=>m.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(d,f)=>{let h=!!d.isHub,g=h?d.properties?.find(T=>T.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(T=>T.name==="derivationPath")?.value:d.needsDerivationPath,C=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(C&&m)return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y}}),{status:"derivation-path"};if(!_p(n))throw new Error("Something went wrong on handling namespace. Please retry.");let S=f.map(T=>({namespace:T}));return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:S?.map(T=>T.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async d=>{if(!d)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Pp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let f=n.derivationPath.providerType,g=[{namespace:n.derivationPath.namespace,derivationPath:d}];return await a(f,g)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let f=t(d.type);return f.connected||f.connecting?(await e(d.type),xo(p)?(r({type:"needsNamespace",payload:{targetWallet:d}}),{status:"namespace"}):{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:p,resetState:d=>{r(d==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Xo,"useStatefulConnect");import{WalletState as vs}from"@rango-dev/ui";import{useWallets as Nk}from"@rango-dev/wallets-react";import{detectMobileScreens as Bk,KEPLR_COMPATIBLE_WALLETS as Wk,WalletTypes as Gn}from"@rango-dev/wallets-shared";import{useCallback as Mk,useEffect as Lk}from"react";import wk,{createContext as vk,useContext as bk,useEffect as xk,useRef as Ek}from"react";import{create as kk}from"zustand";import{persist as Tk}from"zustand/middleware";import{allProviders as SC}from"@rango-dev/provider-all";var es=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()}},Yo=new es;import{defineVersions as Fp,pickVersion as Op,Provider as ts}from"@rango-dev/wallets-core";function Up({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=zp(a);return s instanceof ts?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 ts?o.push(Fp().version("1.0.0",n).build()):o.push(Fp().version("0.0.0",n).build())}),o}return t}i(Up,"matchAndGenerateProviders");function zp(t){try{return Op(t,"1.0.0")[1]}catch{return Op(t,"0.0.0")[1]}}i(zp,"pickProviderVersionWithFallbackToLegacy");function Qp(t){return t.map(o=>zp(o)).map(o=>o instanceof ts?o.id:o.config.type)}i(Qp,"configWalletsToWalletName");function Kr(t,e){return e.find(o=>o.name===t)?.displayName}i(Kr,"getBlockchainDisplayNameFor");function ht(t,e){return e.find(o=>o.name===t)?.shortName}i(ht,"getBlockchainShortNameFor");function Hp(t,e){return e.find(o=>o.name===t)?.logo}i(Hp,"getBlockchainImage");function Dn(t,e){return e.find(o=>o.id===t)?.title}i(Dn,"getSwapperDisplayName");function Eo(t,e){return e.find(o=>o.name===t)??null}i(Eo,"findBlockchain");function os(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(os,"isTokenNative");function yt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(yt,"createTokenHash");function Zo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Zo,"isValidTokenAddress");function $n(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=yt(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=yt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i($n,"matchTokensFromConfigWithMeta");function jr(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(jr,"getSupportedBlockchainsFromConfig");function Gp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Gp,"makeProvidersOptionsFromConfig");var Jo={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"}},CC={clientUrl:void 0},kC={liquiditySources:void 0};function qp(t){let e=Gp(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 SC(o).map(a=>a())}i(qp,"generateProviders");var Vp=i((t,e,o)=>{let n=qp({...Jo,...t});return{config:{...Jo,...t},iframe:CC,campaignMode:kC,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c}=o(),l=$n({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=$n({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});Yo.set("supportedSourceTokens",l),Yo.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=qp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Gp(a);return Up({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Kp}from"rango-types";var jp=[Kp.EVM,Kp.SOLANA],Xr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as _C}from"rango-sdk";import{UI_ID as TC}from"@rango-dev/ui";var Yr="c6381a79-2817-4602-83bf-6a641a409e32",Xp="https://api.rango.exchange",Yp="https://explorer.rango.exchange",ot={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...TC};import{BlockchainCategories as AC,WalletState as ct}from"@rango-dev/ui";import{legacyReadAccountAddress as NC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as BC,getCosmosExperimentalChainInfo as WC,isEvmAddress as MC,KEPLR_COMPATIBLE_WALLETS as yW,Networks as yu}from"@rango-dev/wallets-shared";import en from"bignumber.js";import{isCosmosBlockchain as LC}from"rango-types";import wC from"bignumber.js";var ce=new wC(0);import{WalletTypes as vC}from"@rango-dev/wallets-shared";var Io="~",Zp=[vC.LEAP];import{BlockchainCategories as rs,WalletState as IC}from"@rango-dev/ui";import{TransactionType as Zr}from"rango-sdk";var Jp="Roboto",ns=[{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 Ro(t){return Array.from(new Set(t))}i(Ro,"removeDuplicateFrom");function Jr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Jr,"debounce");function lt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(lt,"containsText");function tu(t,e){return t.toLowerCase()===e.toLowerCase()}i(tu,"exactText");function ou(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(ou,"startWithText");var M=i(()=>document.getElementById(ot.SWAP_BOX_ID),"getContainer"),Ao=i(()=>document.getElementById(ot.EXPANDED_BOX_ID),"getExpanded");function nu(t,e,o){let n=!!e&&tu(e,t),r=!!o&&tu(o,t);return n!==r?n?-1:1:0}i(nu,"compareExactMatchText");function is(t,e,o){let n=!!e&<(e,t),r=!!o&<(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(is,"compareContainsText");function as(t,e,o){let n=!!e&&ou(e,t),r=!!o&&ou(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(as,"compareStartWithText");function ru(t,e,o){if(!o)return 0;let n=nu(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=nu(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=as(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=is(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=as(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=is(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=as(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=is(o,t.address,e.address);if(r!==0)return r}return 0}i(ru,"compareWithSearchFor");var Rr=i((t,e)=>{switch(e){case rs.ALL:return!0;case rs.UTXO:return t===Zr.TRANSFER;case rs.OTHER:return t!==Zr.TRANSFER&&t!==Zr.COSMOS&&t!==Zr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),iu=i(t=>ns.find(o=>o.value===t)?.url,"getFontUrlByName");function au(t,e){let o=!!t.find(n=>n.state===IC.CONNECTED);return e===!1&&o}i(au,"isSingleWalletActive");function su(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(su,"memoizedResult");import{BigNumber as gu}from"bignumber.js";function lu(t){return t.replace(/^0+(?=\d)/g,"")}i(lu,"removeLeadingZeros");function cu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(cu,"ensureLeadingZeroForDecimal");function pu(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(pu,"formatThousandsWithCommas");function uu(t){return t.replace(/\s+/g,"-")}i(uu,"replaceSpacesWithDash");function du(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(du,"stripTrailingZeros");function ei(t){return/^0+(?:\.0+)?$/.test(t)}i(ei,"isZeroValue");function mu(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(mu,"isValidCurrencyFormat");function fu(t){return/\d+$/.test(t)}i(fu,"isColorKeyOverridden");var Fn=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),_=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new gu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new gu(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 ti=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Pt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),On=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function hu(t){return ei(t)?"0":du(t)}i(hu,"sanitizeInputAmount");function Un(t){return t.connected?ct.CONNECTED:t.connecting?ct.CONNECTING:t.installed?ct.DISCONNECTED:ct.NOT_INSTALLED}i(Un,"mapStatusToWalletState");function Su(t,e,o,n){return o.filter(r=>!Zp.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:d,properties:f,isHub:h}=e(r),g=Ro(u.map(C=>C.type)),m=Un(t(r));return{title:a,image:s,link:BC(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:d,properties:f,isHub:h}})}i(Su,"mapWalletTypesToWalletInfo");function zn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(zn,"walletAndSupportedChainsNames");function ls(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}=NC(l),d=c.length>0,f=c.includes(u),h=u===yu.Unknown;if(d&&!f&&!h)return;let m=u===yu.Unknown&&MC(p);if(h&&!m)return;o.includes(u)||m?r?s(u,p.toLowerCase(),r):c.filter(S=>o.includes(S)).forEach(S=>{s(S,p.toLowerCase())}):s(u,p)}),a}i(ls,"prepareAccountsForWalletStore");function No(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 d=p.from.blockchain,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(No,"getQuoteChains");function Qn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Qn,"isAccountAndWalletMatched");var Cu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ss(n.usdValue,n.decimals):ce.toFixed();return o.plus(r)},new en(ce));return PC(e.toString())},"calculateWalletUsdValue");function PC(t){let e=t.toString().split(".");return e[0]&&(e[0]=pu(e[0])),e.join(".")}i(PC,"numberWithThousandSeparator");var ri=i((t,e)=>{let o=WC(Object.entries(t).map(([,n])=>n).filter(LC));return o&&!!o[e]?.experimental},"isExperimentalChain");function ss(t,e){return new en(t).shiftedBy(-e).toFixed()}i(ss,"representAmountInNumber");function ii(t){if(!t)return null;let e=ss(t.amount,t.decimals),o=t.usdValue?ss(t.usdValue,t.decimals):null,n=_(e,8,8),r=o?_(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(ii,"formatBalance");function ku(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new en(t.usdValue).shiftedBy(-t.decimals):ce,n=e&&e.usdValue?new en(e.usdValue).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new en(t.amount).shiftedBy(-t.decimals):ce,n=e&&e.amount?new en(e.amount).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(ku,"compareTokenBalance");function Ht(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Ht,"areTokensEqual");function Tu(t,e){return t.map(o=>({isPartiallyConnected:cs(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===ct.CONNECTED&&!n.isPartiallyConnected)-+(o.state===ct.CONNECTED&&!o.isPartiallyConnected)||+(n.state===ct.CONNECTED)-+(o.state===ct.CONNECTED)||+(n.state===ct.DISCONNECTED||n.state===ct.CONNECTING)-+(o.state===ct.DISCONNECTED||o.state===ct.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(Tu,"sortWalletsBasedOnConnectionState");function ao(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(ao,"getConciseAddress");function wu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(wu,"getAddress");var vu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function bu(t){return t.map(e=>e.state).join("-")}i(bu,"hashWalletsState");function xu(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(xu,"filterBlockchainsByWalletTypes");function Eu(t,e){return e===AC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Rr(n,e))return!0;return!1})}i(Eu,"filterWalletsByCategory");function cs(t,e){return!t.isHub||!t.needsNamespace||t.state!==ct.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(cs,"checkIsWalletPartiallyConnected");var ps={API_KEY:Yr};function qt(t){return ps[t]||""}i(qt,"getConfig");function Iu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),ps=e,ps}i(Iu,"initConfig");var Au=20,Nu=25,us="theme-widget",ds=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Ht(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>Ht(a,t));let r=n.isExcluded;return!r&&!o||r&&o}}}return o},"isTokenExcludedInConfig"),ms=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 ai,pt=i(()=>ai||(ai=new _C(qt("API_KEY"),qt("BASE_URL")),ai),"httpService");import{i18n as Mu}from"@lingui/core";var si=[.5,1,3],li=1,tn=5,Hn=30,ci=0;var Ze=(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))(Ze||{});import{WidgetEvents as Wu}from"@rango-dev/queue-manager-rango-preset";var fs=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(fs||{}),gs=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(gs||{}),hs=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(hs||{}),on=(a=>(a[a.RouteEvent=Wu.RouteEvent]="RouteEvent",a[a.StepEvent=Wu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(on||{});function pi(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Ro(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(pi,"getUniqueSwappersGroups");function Lu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Lu,"sortLiquiditySourcesByGroupTitle");function nt(t,e){return e?.[t]==="hidden"}i(nt,"isFeatureHidden");function nn(t,e){return e?.[t]==="enabled"}i(nn,"isRoutingEnabled");var Pu=i((t,e,o)=>nt("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function rn(t){return t==ci?{type:"error",message:Mu.t("Slippage must be greater than or equal to 0.01")}:t>tn&&t<=Hn?{type:"warning",message:Mu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(rn,"getSlippageValidation");var _u=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=jr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>jp.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",d=Yo.get(u);d?.length||(d=$n({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Yo.set(u,d)),d=Pu(d,s,a.features);let f=e().blockchains({type:o.type});return d.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(m=>m.name===g.blockchain)?!1:o.searchFor?!!(lt(g.symbol,o.searchFor)||lt(g.address||"",o.searchFor)||lt(g.name||"",o.searchFor)):!0).sort((g,m)=>{let C=e().isTokenPinned(g,o.type),y=e().isTokenPinned(m,o.type);if(C!==y)return C?-1:1;if(o.getBalanceFor){let E=o.getBalanceFor(g),B=o.getBalanceFor(m),I=ku(E,B);if(I!==0)return I}let S=l.get(g.blockchain),T=l.get(m.blockchain),w=os(g,S),v=os(m,T);if(w!==v)return w?-1:1;if(g.isPopular!==m.isPopular)return g.isPopular?-1:1;if(o.searchFor){let E=ru(g,m,o.searchFor);if(E)return E}return g.isSecondaryCoin!==m.isSecondaryCoin?g.isSecondaryCoin?1:-1:S&&T?S.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=yt(o),s=n.get(a);return s||(s=r.find(c=>yt(c)===a)),s},findNativeToken:o=>{let n=o.feeAssets[0];return e().findToken({blockchain:o.name,address:n.address,symbol:n.symbol})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Ht(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(Lu)},fetch:async()=>{try{let{routing:o}=e().config,n=nn("enableCentralizedSwappers",o),r=await pt().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),d=new Set;r.tokens.forEach(h=>{d.add(h.blockchain),l.push(h)}),r.blockchains.sort((h,g)=>h.sort-g.sort).forEach(h=>{h.enabled&&d.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let g=yt(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 DC,Catalonia as $C,Chinese as Du,Denmark as FC,English as OC,Finland as UC,French as zC,German as QC,Greece as HC,Hungary as qC,India as GC,Indonesian as VC,Italian as KC,Japanese as jC,Korea as XC,Lithuania as YC,Malay as ZC,Netherlands as JC,Pakistan as RC,Philippines as ek,Poland as tk,Portuguese as ok,Russian as nk,SaudiArabia as rk,Serbia as ik,Slovakia as ak,SouthAfrica as sk,Spanish as lk,Swahili as ck,Swedish as pk,Thai as uk,Turkish as dk,Ukrainian as mk,Vietnamese as fk}from"@rango-dev/ui";var $u=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:sk},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:rk},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:DC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:$C},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Du},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Du},{title:"Danish",label:"Dansk",local:"da",SVGFlag:FC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:JC},{title:"English",label:"English",local:"en",SVGFlag:OC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:ek},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:UC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:zC},{title:"German",label:"Deutsch",local:"de",SVGFlag:QC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:HC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:GC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:qC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:VC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:KC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:jC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:XC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:YC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:ZC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:tk},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:ok},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:nk},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:ik},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:ak},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:lk},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:ck},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:pk},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:uk},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:dk},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:mk},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:RC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:fk}],an="en";var Fu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:li,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=Ro(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=nt("theme",n),s=nt("language",n),c=nt("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||an},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||an}})},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=jr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import ws from"bignumber.js";import gk from"mitt";var Ce=gk(),hk={on:Ce.on,off:Ce.off};var Ou=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 Uu from"bignumber.js";function Gt(t){return`${t.blockchain}${Io}${t.address}${Io}${t.symbol}`}i(Gt,"createAssetKey");function zu(t,e){return`${Gt(e)}${Io}${t}`}i(zu,"createBalanceKey");function qn(t){let[e,o,n]=t.split(Io);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(qn,"extractAssetFromBalanceKey");function Ss(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Gt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Uu(r??ce).multipliedBy(o[s].amount).toString():""})})}),o}i(Ss,"computeNextBalancesWithNewPrices");function Cs(t,e){let o={};return t.balances?.forEach(n=>{let r=zu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Uu(c??ce).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(Cs,"createBalanceStateForNewAccount");function ks(t,e){for(let o in e){let n=qn(o);if(n){let r=Gt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(ks,"updateAggregatedBalanceStateForNewAccount");function yk(t,e){let o=qn(e);if(!o)return t;let n=Gt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(yk,"removeBalanceFromAggregatedBalance");function Ts(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=qn(l);if(!p)return;!!n.find(d=>zu(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=yk(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(Ts,"computeNextStateAfterWalletBalanceRemoval");function Sk(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(Sk,"matchWalletDetailsWithConnectedWallet");var Ck=su(),Qu=Ou((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Qn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Qn(s,a))?{...a,loading:!1,error:!1,explorerUrl:Sk(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Qn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Qn(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(d=>d.walletType===u.walletType&&d.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 pt().getMultipleTokenBalance({assets:p.map(({symbol:d,address:f,blockchain:h})=>({symbol:d,address:f,blockchain:h})),walletAddress:l});if(u){let d=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},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};Ss(m,g,d);let C=Cs(g,e);f=ks(f,C),d={...d,...C}}),t(h=>({_balances:{...h._balances,...d},_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}=Ts(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 pt().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(d=>{if(d.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};Ss(f,d,l);let{_balances:h,_aggregatedBalances:g}=Ts(f,r,{chains:[d.blockChain]});if(p=g,l=h,!e().connectedWallets.find(C=>C.walletType===r&&C.address===d.address&&C.chain===d.blockChain))return;let m=Cs(d,e);p=ks(p,m),l={...l,...m}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let d=c.filter(f=>f.failed).map(f=>({chain:f.blockChain,walletType:r,address:f.address}));d.length>0&&await e().fetchMainTokensBalances(d,{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=Gt(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 d=new ws(u.amount),f=new ws(l.amount);d.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(Io);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>Ck(()=>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=qn(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),d=l?.amount?new ws(l.amount).shiftedBy(-l.decimals):ce;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:d.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Hu(t){return kk()(Tk((...e)=>({...Qu(...e),..._u(...e),...Fu(...e),...Vp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i(Hu,"createAppStore");var qu=vk(null);function k(){let t=bk(qu);if(xk(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(k,"useAppStore");function Gu(t){let e=Ek();return e.current||(e.current=Hu(t.config)),wk.createElement(qu.Provider,{value:e.current},t.children)}i(Gu,"AppStoreProvider");import{useWallets as Ik}from"@rango-dev/wallets-react";import{detectMobileScreens as Ak}from"@rango-dev/wallets-shared";function sn(){let{getWalletInfo:t}=Ik(),{config:e}=k(),o=Ak();function n(s){let c=t(s),l=e.deepLinking?.appHost,p=e.deepLinking?.targetUrl;if(!(!l||!p))return c.generateDeepLink?.({appHost:l,targetUrl:p})}i(n,"getWalletDeepLink");function r(s){let c=n(s);return c&&o?c:t(s).installLink}i(r,"getWalletLink");function a(s){return!!n(s)&&o}return i(a,"checkHasDeepLink"),{getWalletDeepLink:n,getWalletLink:r,checkHasDeepLink:a}}i(sn,"useDeepLink");function bt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=k(),{state:r,getWalletInfo:a}=Nk(),s=k().blockchains(),{handleDisconnect:c}=Xo(),{checkHasDeepLink:l}=sn(),p=Qp(n()),u=Su(r,a,p,e);u=Bk()?u.filter(C=>C.showOnMobile!==!1&&(r(C.type).installed||l(C.type))):u;let d=Tu(u,r),f=i(C=>!o.find(y=>y.walletType===C&&y.chain===e),"isExperimentalChainNotAdded"),h=Mk(()=>{let C=u?.filter(y=>y.state===vs.CONNECTING)||[];for(let y of C)c(y)},[bu(u)]);Lk(()=>()=>{h()},[]);let g=i(C=>{let y=C.find(T=>T.type===Gn.DEFAULT);return!y||y.state===vs.NOT_INSTALLED?!1:C.filter(T=>T.state!=vs.NOT_INSTALLED&&![Gn.DEFAULT,Gn.WALLET_CONNECT_2,Gn.LEDGER].includes(T.type)&&a(T.type).supportedChains.filter(w=>w.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),m=i((C,y,S)=>ri(S,y)&&f(C)&&!Wk.includes(C)||C==Gn.DEFAULT&&!g(u),"shouldExcludeWallet");return{list:d.filter(C=>!m(C.type,e??"",s)),terminateConnectingWallets:h}}i(bt,"useWalletList");import{Modal as $k}from"@rango-dev/ui";import Fk from"react";import{create as Dk}from"zustand";var Vu="rango-widget";var Vn=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(Vu),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var _k=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"),so=_k;var oe=so(Dk()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),Wo=new Vn({onInit:()=>oe.setState({tabManagerInitiated:!0}),onClaim:()=>oe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>oe.setState({isActiveTab:!1})});function R(t){let{watermark:e}=oe();return Fk.createElement($k,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as pn}from"@lingui/core";import{Alert as Jk,Button as Rk,Divider as Si,Image as eT,MessageBox as tT,RadioRoot as oT}from"@rango-dev/ui";import pe,{useEffect as nT,useMemo as rT,useState as iT}from"react";import{i18n as Qk}from"@lingui/core";import{Typography as ed}from"@rango-dev/ui";import ln from"react";function ui(t,e){return t.find(o=>o.name===e)?.logo}i(ui,"getBlockchainLogo");import{darkTheme as Ok,Image as Uk,styled as Vt,Typography as zk}from"@rango-dev/ui";var di=Vt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${Ok} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),mi=Vt("div",{display:"flex",gap:"$8",alignItems:"center"}),ju=Vt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Xu=Vt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Yu=Vt("div",{display:"flex",gap:"$6",alignItems:"center"}),Zu=Vt("div",{paddingLeft:"48px"}),Ju=Vt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),Ru=Vt(zk,{maxWidth:"100px"}),fi=Vt(Uk,{variants:{disabled:{true:{opacity:"0.5"}}}});function gi(t){let{namespace:e}=t,o=k().blockchains();return ln.createElement(di,{unsupported:!0},ln.createElement(mi,null,ln.createElement(fi,{src:ui(o,e.id),size:40,disabled:!0}),ln.createElement(Xu,null,ln.createElement(ed,{variant:"label",size:"large"},e.label),ln.createElement(ed,{variant:"body",size:"xsmall"},Qk.t("(Currently not supported)")))))}i(gi,"NamespaceUnsupportedItem");import{Checkbox as Xk,Radio as Yk}from"@rango-dev/ui";import Is from"react";import{i18n as Es}from"@lingui/core";import{ChevronDownIcon as qk,ChevronUpIcon as Gk,Divider as Vk,Typography as Kn}from"@rango-dev/ui";import Ne,{useEffect as Kk,useState as jk}from"react";import{Image as od,Tooltip as nd,Typography as Hk}from"@rango-dev/ui";import _t from"react";import{styled as td}from"@rango-dev/ui";var bs=td("div",{display:"flex",alignItems:"center",padding:0,margin:0}),hi=td("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 xs=3;function rd(t){let{chains:e}=t;return _t.createElement(bs,{id:"widget-supported-chains-container"},e.slice(0,xs).map((o,n)=>_t.createElement(nd,{key:o.name,container:M(),side:"bottom",align:"start",content:o.name,sideOffset:4},_t.createElement(hi,{firstItem:n===0},_t.createElement(od,{src:o.logo,size:15})))),e.length>xs&&_t.createElement(nd,{container:M(),side:"bottom",align:"start",sideOffset:4,content:_t.createElement(bs,null,e.map((o,n)=>_t.createElement(hi,{key:o.name,firstItem:n===0},_t.createElement(od,{src:o.logo,size:15}))))},_t.createElement(hi,null,_t.createElement(Hk,{variant:"body",size:"xsmall"},"+",e.length-xs))))}i(rd,"SupportedChainsList");function Mo(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=jk(!1),p=k().blockchains();Kk(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!o&&!r&&u.length>1;return Ne.createElement(di,{hasError:!!o,clickable:!!s,onClick:s},Ne.createElement(mi,null,Ne.createElement(fi,{src:ui(p,e.id),size:40}),Ne.createElement(ju,{showSupportedChains:d||r||!!o},Ne.createElement(Yu,null,Ne.createElement(Kn,{variant:"label",size:"large"},e.label),r&&Ne.createElement(Kn,{variant:"body",size:"small",color:"success500"},Es.t("Connected")),!!o&&Ne.createElement(Kn,{variant:"body",size:"small",color:"error500"},Es.t("Connection failed"))),d&&Ne.createElement(rd,{chains:u}),r&&Ne.createElement(Ru,{variant:"body",size:"small",color:"neutral700"},a),o&&Ne.createElement(Ju,{onClick:()=>l(f=>!f)},Ne.createElement(Kn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},Es.t("See why")),c?Ne.createElement(Gk,{size:12,color:"gray"}):Ne.createElement(qk,{size:12,color:"gray"}))),n),!!o&&c&&Ne.createElement(Ne.Fragment,null,Ne.createElement(Vk,{size:4}),Ne.createElement(Zu,null,Ne.createElement(Kn,{variant:"body",size:"small",color:"neutral700"},o))))}i(Mo,"NamespaceItem");function id(t){let{onClick:e,type:o,namespace:n}=t;return Is.createElement(Mo,{namespace:n,onClick:e,suffix:o==="radio"?Is.createElement(Yk,{value:n.value}):Is.createElement(Xk,{checked:t.value})})}i(id,"NamespaceListItem");import{Button as Zk,styled as ad}from"@rango-dev/ui";var yi=ad("ul",{padding:0,paddingTop:"$16",paddingBottom:"$20",margin:0}),cn=ad(Zk,{minHeight:"$40"});function jn(t){let{targetWallet:e}=t.value,o=e.properties?.find(m=>m.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]=iT([]),u=rT(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:C=>C.includes(m)?C.filter(y=>y!==m):C.concat(m))},"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(m=>m.value))},"onSelectAll"),g=i(m=>r?pe.createElement(oT,{value:l?.[0]},m):pe.createElement(pe.Fragment,null,m),"wrapRadioRoot");return nT(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(C=>C.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(m.map(C=>C.value))}else p(u.map(m=>m.value))},[]),pe.createElement(pe.Fragment,null,pe.createElement(tT,{type:"info",title:pn.t("Connect {wallet}",{wallet:e.title}),description:pn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:pe.createElement(eT,{src:s,size:45})}),r?pe.createElement(pe.Fragment,null,pe.createElement(Si,{size:20}),pe.createElement(Jk,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:pn.t("This wallet can only connect to one chain at a time. ")})):pe.createElement(pe.Fragment,null,pe.createElement(Si,{size:30}),pe.createElement(Rk,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?pn.t("Deselect all"):pn.t("Select all"))),pe.createElement(yi,null,g(pe.createElement(pe.Fragment,null,a?.data.map((m,C,y)=>pe.createElement(pe.Fragment,{key:m.id},m.unsupported?pe.createElement(gi,{namespace:m}):pe.createElement(id,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),C!==y.length-1&&pe.createElement(Si,{size:10})))))),pe.createElement(Si,{size:20}),pe.createElement(cn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},pn.t("Connect")))}i(jn,"Namespaces");import{i18n as Ci}from"@lingui/core";import{Button as mT,Divider as Bs,Image as fT,MessageBox as gT}from"@rango-dev/ui";import{useWallets as hT}from"@rango-dev/wallets-react";import Je from"react";import{styled as aT}from"@rango-dev/ui";var sd=aT("div",{display:"flex",justifyContent:"end"});import{i18n as As}from"@lingui/core";import{Button as sT,Spinner as lT}from"@rango-dev/ui";import{useWallets as cT}from"@rango-dev/wallets-react";import Ns,{useLayoutEffect as pT,useRef as uT,useState as dT}from"react";var ld=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,{connect:a,disconnect:s,state:c}=cT(),[l,p]=dT(null),d=c(o).namespaces?.get(n.value),f=d.accounts?.[0]?.split(":"),h=uT(!1);pT(()=>{r&&!h.current&&g(o,n.value)},[]);let g=i(async(y,S)=>{try{h.current=!0,await a(y,[{namespace:S,network:""}])}catch(T){p(T)}finally{h.current=!1}},"handleConnectNamespace"),m=i(async y=>{p(null),y.connected?await s(o,[n.value]):g(o,n.value)},"handleButtonClick"),C=i(()=>d.connected?As.t("Disconnect"):l?As.t("Try again"):As.t("Connect"),"getButtonText");return Ns.createElement(Mo,{namespace:n,connected:d.connected,error:l?.message,address:d.connected?ao(f?.[f?.length-1]):"",suffix:d.connecting?Ns.createElement(lT,{color:"info"}):Ns.createElement(sT,{id:"widget-name-space-connect-btn",variant:"ghost",type:d.connected?"error":"primary",size:"xsmall",onClick:async()=>m(d)},C())})},"NamespaceDetachedItem");function Xn(t){let{selectedNamespaces:e,value:o,onDisconnectWallet:n}=t,{targetWallet:r}=o,{state:a}=hT(),s=a(r.type);return Je.createElement(Je.Fragment,null,Je.createElement(gT,{type:"info",title:Ci.t("Connect {wallet}",{wallet:r.type}),description:Ci.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:Je.createElement(fT,{src:r.image,size:45})}),Je.createElement(Bs,{size:30}),Je.createElement(sd,null,Je.createElement(mT,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:s.connecting||!s.connected,onClick:n},Ci.t("Disconnect wallet"))),Je.createElement(yi,{id:"widget-detached-namespace-list",as:"ul"},r.needsNamespace?.data.map((c,l,p)=>Je.createElement(Je.Fragment,{key:c.id},c.unsupported?Je.createElement(gi,{namespace:c}):Je.createElement(ld,{walletType:r.type,namespace:c,initialConnect:e?.includes(c.value)}),l!==p.length-1&&Je.createElement(Bs,{size:10})))),Je.createElement(Bs,{size:20}),Je.createElement(cn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},Ci.t("Done")))}i(Xn,"Detached");import{i18n as un}from"@lingui/core";import{Divider as pd,Image as kT,MessageBox as TT,Select as wT,TextField as vT}from"@rango-dev/ui";import St,{useEffect as bT,useState as ud}from"react";import{namespaces as yT}from"@rango-dev/wallets-shared";var ki={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ws(t){let e=t?yT[t]?.derivationPaths:null;return e?[...e,ki]:[]}i(Ws,"getDerivationPaths");import{Button as ST,styled as Ms,Typography as CT}from"@rango-dev/ui";var cd=Ms("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ls=Ms(CT,{paddingLeft:"$10"}),Ps={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},YP=Ms(ST,{minHeight:"$40"});var dd="0";function Yn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=ud(null),[c,l]=ud(dd),p=a===ki.id,u=Ws(o),d=i(({value:h})=>{let g=u?.find(m=>m.id===h);g&&(a===ki.id&&Number.isNaN(Number(c))&&l(dd),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 bT(()=>{s(Ws(o)[0]?.id||null)},[o]),St.createElement(St.Fragment,null,St.createElement(pd,{size:20}),St.createElement(TT,{type:"info",title:un.t("Select Derivation Path"),description:un.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:St.createElement(kT,{src:n,size:45})}),St.createElement(cd,null,St.createElement(Ls,{variant:"body",size:"xsmall",color:"$neutral600"},un.t("Choose Derivation Path Template")),St.createElement(wT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:Ps}}),St.createElement(pd,{size:20}),St.createElement(Ls,{variant:"body",size:"xsmall",color:"$neutral600"},p?un.t("Enter Path"):un.t("Enter Index")),St.createElement(vT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Ps})),St.createElement(cn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},un.t("Confirm")))}i(Yn,"DerivationPath");import{i18n as dn}from"@lingui/core";import{Image as IT,MessageBox as _s,WalletState as AT}from"@rango-dev/ui";import{useWallets as NT}from"@rango-dev/wallets-react";import Lo from"react";import{keyframes as xT,styled as Ti}from"@rango-dev/ui";var s_=Ti("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),md=Ti("div",{position:"relative"}),ET=xT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),fd=Ti("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ET} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),gd=Ti("div",{"& img":{borderRadius:"50%"}});function Ds(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=NT();return Un(a(n))===AT.CONNECTED?Lo.createElement(_s,{type:"success",title:dn.t("Wallet Connected"),description:dn.t("Your wallet is connected, you can use it to swap.")}):o?Lo.createElement(_s,{type:"error",title:dn.t("Failed to Connect"),description:o||dn.t("Your wallet is not connected. Please try again.")}):Lo.createElement(_s,{type:"loading",title:dn.t("Connecting to your wallet"),description:dn.t("Click connect in your wallet popup."),icon:Lo.createElement(md,null,Lo.createElement(gd,null,Lo.createElement(IT,{src:r,size:45})),Lo.createElement(fd,null))})}i(Ds,"ConnectStatus");import{i18n as $s}from"@lingui/core";import{Button as BT,Divider as hd,MessageBox as WT}from"@rango-dev/ui";import wi from"react";function Fs(t){let{displayName:e,onConfirm:o,id:n}=t;return wi.createElement(WT,{id:n,title:$s.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:$s.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},wi.createElement(hd,{size:18}),wi.createElement(hd,{size:32}),wi.createElement(BT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},$s.t("Confirm")))}i(Fs,"ExperimentalChain");function yd(t,e){return t().status==="init"&&!!e}i(yd,"isOnStatus");function Zn(t){return t().status==="namespace"}i(Zn,"isOnNamespace");function Jn(t){return t().status==="derivationPath"}i(Jn,"isOnDerivationPath");function xo(t){return t().status==="detached"}i(xo,"isOnDetached");var _T=3e3,DT=300;function Rn(t){let e=PT(),[o,n]=Sd(!1),[r,a]=Sd(),s=i(w=>{a(w.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=bt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:f,handleDisconnect:h}=Xo(),g=i(w=>{u(t.wallet,w).then(T).catch(s)},"handleConfirmNamespaces"),m=i(()=>{y()},"handleDetachedConfirm"),C=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"),S=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),T=i((w,v)=>{let E=w.status==="connected",B=["disconnected","disconnected-unhandled"].includes(w.status);E?(t.onConnect?.(),v||(e.current=setTimeout(y,_T))):B&&y()},"afterConnected");return LT(()=>{if(t.wallet){S();let w=!1,v=!0;i(()=>{setTimeout(()=>{v=!1,w||n(!0)},DT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(B=>{["namespace","Detached","derivation-path"].includes(B.status)||(w=!0),T(B,v)}).catch(s)}},[t.wallet]),lo.createElement(R,{id:t.id,open:o,onClose:y,onExit:()=>{S(),c(),t.onClose&&t.onClose()},container:M()},yd(d,t.wallet)&&lo.createElement(lo.Fragment,null,lo.createElement(Ds,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),lo.createElement(MT,{direction:"vertical",size:32})),Zn(d)&&lo.createElement(jn,{onConfirm:g,value:d().namespace}),Jn(d)&&lo.createElement(Yn,{onConfirm:C,value:d().derivationPath}),xo(d)&&lo.createElement(Xn,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces}))}i(Rn,"StatefulConnectModal");import ja from"react";import $T,{Fragment as FT}from"react";import{MemoryRouter as OT,useInRouterContext as UT}from"react-router";function vi({children:t}){let o=UT()?FT:OT;return $T.createElement(o,null,t)}i(vi,"AppRouter");import{I18nManager as $0}from"@rango-dev/ui";import Ip from"react";import He from"react";import{useRoutes as h0}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 fn,useRef as Bi}from"react";import rt from"bignumber.js";import{create as Zd}from"zustand";import{subscribeWithSelector as Jd}from"zustand/middleware";import{createContext as zT,useContext as QT}from"react";var Cd=zT({swapMode:"swap",isMultiMode:!1});function Ct(){let{swapMode:t,isMultiMode:e}=QT(Cd);return{swapMode:t,isMultiMode:e}}i(Ct,"useSwapMode");import{i18n as Tt}from"@lingui/core";import{getRelatedWalletOrNull as GT,RouteEventType as bD}from"@rango-dev/queue-manager-rango-preset";import je from"bignumber.js";import{PendingSwapNetworkStatus as tr}from"rango-types";import{i18n as Ke}from"@lingui/core";var ne=i(()=>({genericServerError:Ke.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Ke.t("Please reset your liquidity sources."),description:Ke.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Ke.t("No Routes Found."),description:Ke.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:Ke.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Ke.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Ke.t("High Price Impact"),title:Ke.t("Price impact is too high!"),description:Ke.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Ke.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Ke.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Ke.t("USD Price Unknown"),title:Ke.t("USD Price Unknown, Cannot calculate Price Impact."),description:Ke.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Ke.t("Confirm USD Price Unknown")}}),"errorMessages");function kd(t){return t.type===0?t.diagnosisMessage??ne().noResultError.title:t.type===1?t.diagnosisMessage??ne().genericServerError:""}i(kd,"getQuoteErrorMessage");import{i18n as bi}from"@lingui/core";var Po=i(()=>({connectWallet:bi.t("Connect Wallet"),swap:bi.t("Swap"),swapAnyway:bi.t("Swap anyway"),ethWarning:bi.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Os(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(Os,"getFeeLabel");var Us=["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 qT}from"@rango-dev/queue-manager-rango-preset";import pD 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 jt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(jt,"getPriceImpactLevel");function xi(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=qT(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=Eo(a?a.toBlockchain:n.fromBlockchain,e),l=Eo(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),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:d}}i(xi,"createRetryQuote");function mn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=er(o),s=kt(o);if(o&&a&&s){let p=Kt(a.toString(),s.toString());if(!!p&&Ld(a,p)){let d=Ii(o?.swaps,n),f=jt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:f}}}if(e&&Dd(e,o))return{type:4,usdValueChange:_(kt(o)?.minus(kt(e)??0).toString()??"0",null,2),percentageChange:_(Kt(kt(e)??"1",kt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=Ai(o.swaps),l=r>tn;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(mn,"generateQuoteWarnings");function Nd(t){return![4].includes(t.type)}i(Nd,"isQuoteWarningConfirmationRequired");function Kt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:zs(t.toString(),e.toString());return n&&n<0?n:null}i(Kt,"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"),Ei=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"),Md=i(t=>{let e=i((o,n)=>{let r=Us.indexOf(o.value),a=Us.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Ld(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 je(r)))}i(Ld,"hasHighValueLoss");function $d(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new je(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new je(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 je(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new je(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 je(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new je(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=Tt.t({id:"Required: >= {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=Tt.t({id:"Required: > {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=Tt.t({id:"Required: <= {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=Tt.t({id:"Required: < {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().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:Po().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Po().swap,action:"confirm-swap",disabled:!0}:s?{title:Po().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Po().ethWarning,action:"confirm-warning",disabled:!1}:{title:Po().swap,action:"confirm-swap",disabled:!1}:{title:Po().connectWallet,action:"connect-wallet",disabled:!1}}i(Od,"getSwapButtonState");function Qs(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ce))&&e&&e!=="0"&&n!==0)}i(Qs,"canComputePriceImpact");function Hs(t,e){let o=ce;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 je(r.amount).multipliedBy(a||0))}return o}i(Hs,"getUsdFeeOfStep");function Ii(t,e){return t.reduce((o,n)=>o.plus(Hs(n,e)),ce)}i(Ii,"getTotalFeeInUsd");function qs(t){let e=ce,o=new je(t.price||0);return e=e.plus(new je(t.amount).multipliedBy(o)),e}i(qs,"getUsdFee");function Ud(t){return t.reduce((e,o)=>e.plus(qs(o)),ce)}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 Ai(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(Ai,"getMinRequiredSlippage");function _d(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(_d,"hasProperSlippage");function Hd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:d,affiliateWallets:f,destination:h,contractCall:g}=t,m=a?.reduce((S,T)=>(S[T.chain]=T.address,S),{}),C=[];return r?.forEach(S=>{C.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??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:C,selectedWallets:m??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(Hd,"createQuoteRequestBody");function qd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(qd,"getWalletsForNewSwap");function er(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new je(e).multipliedBy(o)}i(er,"getUsdInputFrom");function kt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new je(e).multipliedBy(o)}i(kt,"getUsdOutputFrom");function zs(t,e){return new je(e).div(new je(t)).minus(1).multipliedBy(Td).toNumber()}i(zs,"getPercentageChange");function Dd(t,e){let o=er(t),n=kt(t),r=kt(e);if(!o||!n||!r)return!1;let a=zs(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=No({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=_(new je(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=_(new je(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=Tt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=Tt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=Tt.t(" for input and network fee")),Tt.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:ht(s.asset.blockchain,o)}})})}i(Gd,"generateBalanceWarnings");function or(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==tr.NetworkChanged}i(or,"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,"")),or(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?GT(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case tr.WaitingForConnectingWallet:r=u?Tt.t("Connect {wallet}",{wallet:u}):r;break;case tr.WaitingForQueue:r=r||Tt.t("Waiting for other running tasks to be finished");break;case tr.WaitingForNetworkChange:r=r||Tt.t("Waiting for changing wallet network");break;case tr.NetworkChangeFailed:r=r||Tt.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=No({filter:"all",quote:n}),c=No({filter:"required",quote:n}),l=s.every(d=>r.some(f=>f.chain===d)),p=c.every(d=>r.some(f=>f.chain===d)),u=o&&a?Zo(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 Ni=i((t,e)=>t?.usdPrice?new rt(e||ce).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Rd=i(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new rt(0),outputUsdValue:new rt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=ce,a=o.inputUsdValue;return On(o.inputAmount)?(e&&(n=e?.outputAmount?new rt(e?.outputAmount):null,a=er(e)??ce,r=kt(e)??ce),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new rt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new rt(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new rt(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:Ni(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 rt(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=hu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;ei(e)||(o=lu(o),o=cu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new rt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Ni(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:Ni(n??null,s),outputUsdValue:new rt(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?Ni(e.toToken,e.outputAmount?.toString()||""):new rt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new rt(0),inputUsdValue:new rt(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new rt(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})}),"initializer"),em=Zd()(Jd(Rd)),tm=Zd()(Jd(Rd)),VT=so(em),KT=so(tm);function z(){let{swapMode:t}=Ct();return so(t==="refuel"?tm:em)}i(z,"useQuoteStore");var om=i((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})},"subscribeCallback"),nm=VT.subscribe(om),rm=KT.subscribe(om);function im(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=z()(),u=k().config,d=k().fetchStatus,f=k().blockchains(),{findToken:h}=k(),{setAffiliateRef:g,setAffiliatePercent:m,setAffiliateWallets:C}=k(),y=u?.from?.tokens,S=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,v=Bi(void 0),E=Bi(void 0),B=Bi(void 0),I=Bi(void 0);fn(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),fn(()=>{if(d==="success"){r();let x=f.find(A=>A.name===u?.from?.blockchain),b=u?.from?.token,W=b&&h(b);(x||!x&&B.current)&&n(x??null),W?a({token:W,meta:{blockchains:f}}):!W&&v.current&&a({token:null}),B.current=u?.from?.blockchain,v.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),fn(()=>{ds(s,y)&&a({token:null}),ms(l,S)&&n(null)},[y,S]),fn(()=>{ds(c,T)&&a({token:null}),ms(p,w)&&o(null)},[T,w]),fn(()=>{if(d==="success"){r();let x=f.find(A=>A.name===u?.to?.blockchain),b=u?.to?.token,W=b&&h(b);(x||!x&&I.current)&&o(x??null),W?e({token:W,meta:{blockchains:f}}):!W&&E.current&&e({token:null}),I.current=u?.to?.blockchain,E.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,d]),fn(()=>{g(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),C(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(im,"useSyncStoresWithConfig");import{useEffect as Ks,useRef as jT}from"react";import{useInRouterContext as XT,useLocation as YT,useSearchParams as ZT}from"react-router-dom";function Gs(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(Gs,"convertTokenSearchParamToAsset");function Vs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Vs,"tokenToSearchParam");function Xs(){let t=YT(),[e,o]=ZT(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:f}=z()(),h=k().fetchStatus,g=k().blockchains(),m=XT(),{updateIframe:C,updateCampaignMode:y}=k(),S=k().isInCampaignMode(),T=jT(),{findToken:w}=k(),v=i(()=>{let B={};for(let[L,Y]of e.entries())L.startsWith("utm_")&&(B[L]=Y);let I=e.get("fromAmount"),x=e.get("fromBlockchain"),b=e.get("fromToken"),W=e.get("toBlockchain"),A=e.get("toToken"),$=e.get("autoConnect"),U=e.get("clientUrl"),q=e.get("liquiditySources"),j=e.get("blockchain");return{fromAmount:I,fromBlockchain:x,fromToken:b,toBlockchain:W,toToken:A,autoConnect:$,clientUrl:U,liquiditySources:q,utmQueryParams:B,blockchain:j}},"getUrlSearchParams"),E=i(B=>{for(let I in B)B[I]||delete B[I];o(B,{replace:!0})},"updateUrlSearchParams");Ks(()=>{let{autoConnect:B,clientUrl:I,utmQueryParams:x,blockchain:b}=v();m&&h==="success"&&E({fromBlockchain:n?.name,fromToken:Vs(a),toBlockchain:r?.name,toToken:Vs(s),fromAmount:c,autoConnect:B??void 0,clientUrl:I??void 0,blockchain:b??void 0,liquiditySources:S?T.current:void 0,...x})},[t.pathname,c,n,a,r,s,S,h]),Ks(()=>{if(!m)return;let B=v();if(!T.current&&B.liquiditySources&&(T.current=B.liquiditySources),B.fromAmount&&f(B.fromAmount),h==="success"){let I=g.find(U=>U.name===B.fromBlockchain),x=B.fromToken&&I&&Gs(B.fromToken,I),b=x?w(x):void 0,W=g.find(U=>U.name===B.toBlockchain),A=B.toToken&&W&&Gs(B.toToken,W),$=A?w(A):void 0;I&&(l(I),b&&u({token:b,meta:{blockchains:g}})),W&&(p(W),$&&d({token:$,meta:{blockchains:g}}))}},[h]),Ks(()=>{let{clientUrl:B,liquiditySources:I}=v();C("clientUrl",B||void 0),y("liquiditySources",I?.split(",")??void 0)},[])}i(Xs,"useSyncUrlAndStore");import{i18n as Cn}from"@lingui/core";import{Alert as Sv,Button as Cv,darkTheme as kv,Divider as El,DoneIcon as Tv,styled as wv,TextField as vv,Typography as bv}from"@rango-dev/ui";import Ye,{useState as xv}from"react";import{useNavigate as Ev,useSearchParams as Iv}from"react-router-dom";import{ChevronRightIcon as JT,Divider as pm,Image as RT,Typography as um}from"@rango-dev/ui";import xt from"react";import{darkTheme as am,styled as Ys}from"@rango-dev/ui";var sm=Ys("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${am} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${am} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),lm=Ys("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),cm=Ys("div",{display:"flex"});function Zs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return xt.createElement(lm,null,xt.createElement(um,{size:"large",variant:"label"},n),xt.createElement(pm,{size:10}),xt.createElement(sm,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},xt.createElement(cm,null,r&&xt.createElement(xt.Fragment,null,xt.createElement(RT,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),xt.createElement(pm,{size:4,direction:"horizontal"})),xt.createElement(um,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),xt.createElement(JT,{size:12,color:"black"})))}i(Zs,"BlockchainSelectorButton");import{i18n as ol}from"@lingui/core";import{Button as nw,Divider as gm,MessageBox as rw}from"@rango-dev/ui";import co,{useEffect as hm,useState as nl}from"react";import{i18n as Wi}from"@lingui/core";import{Divider as _o,ExternalLinkIcon as tw,Image as ow,Typography as hn}from"@rango-dev/ui";import ke from"react";var dm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function mm(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(mm,"generateExplorerLink");import{Button as ew,darkTheme as gn,styled as Js}from"@rango-dev/ui";var Rs=Js("a",{textDecoration:"none",color:"$colors$neutral700",[`.${gn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${gn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${gn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${gn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),fm=Js("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${gn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${gn} &`]:{color:"$colors$neutral900"}}}),el=Js(ew,{minHeight:"$40"});function tl(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=mm(n.address,s),l=i(()=>window.open(dm,"_blank"),"onClickLearnMore");return ke.createElement(R,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:M()},ke.createElement(fm,null,ke.createElement(ow,{src:n.image===""?Xr:n.image,size:45,type:"circular"}),ke.createElement(_o,{size:4}),ke.createElement(hn,{variant:"title",size:"medium"},n.symbol),ke.createElement(hn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),ke.createElement(_o,{size:4}),ke.createElement(hn,{variant:"body",size:"medium"},c?ke.createElement(Rs,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,ke.createElement(tw,{size:12,color:"gray"})):ke.createElement(Rs,null,n.address)),ke.createElement(_o,{size:4}),n.coinSource&&ke.createElement(hn,{className:"_coin-source",variant:"body",size:"xsmall"},Wi.t("via")," ",ke.createElement(hn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),ke.createElement(_o,{size:"32"}),ke.createElement(hn,{size:"medium",variant:"body",className:"_custom-token-description"},Wi.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),ke.createElement(_o,{size:40}),ke.createElement(_o,{size:10}),ke.createElement(el,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Wi.t("Import Anyway")),ke.createElement(_o,{size:10}),ke.createElement(el,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Wi.t("Learn More")))}i(tl,"CustomTokenModal");function nr(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=k(),[d,f]=nl(!1),[h,g]=nl(!1),[m,C]=nl(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),S=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),T=i(()=>{C(!0),S()},"handleErrorModalButtonClick"),w=i(()=>{m&&n?.type==="network-error"&&(C(!1),y()),l()},"handleExit"),v=i(()=>{e&&(u(e),c())},"handleSubmit");return hm(()=>{n&&f(!0)},[n]),hm(()=>{o&&e&&g(!0)},[o,e]),co.createElement(co.Fragment,null,co.createElement(R,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:S,onExit:w,container:M()},co.createElement(rw,{title:n?.title??"",type:"error",description:n?.message||ol.t("Failed Network, Please retry.")},co.createElement(gm,{size:40}),co.createElement(gm,{size:10}),co.createElement(nw,{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"?ol.t("Retry"):ol.t("Add another custom token")))),o&&e&&co.createElement(tl,{blockchain:o,token:e,onSubmitClick:v,onClose:()=>g(!1),open:h,onExit:p}))}i(nr,"ImportCustomToken");import{useManager as dv}from"@rango-dev/queue-manager-react";import{BottomLogo as mv,Divider as jm,Header as fv}from"@rango-dev/ui";import We,{useEffect as Ui,useLayoutEffect as gv,useRef as Xm,useState as Ym}from"react";import{useRef as iw}from"react";function rr(){return window.self!==window.top}i(rr,"isAppLoadedIntoIframe");function rl(){let t=iw(null),{iframe:e}=k(),o=rr()&&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(rl,"useIframe");import{useNavigate as aw}from"react-router-dom";function Xe(){let t=aw();return()=>t(-1)}i(Xe,"useNavigateBack");import{useLayoutEffect as sw,useState as ir}from"react";var ym=480,Sm=768,Cm=1024,km=1200,lw=i(()=>{let[t,e]=ir(!1),[o,n]=ir(!1),[r,a]=ir(!1),[s,c]=ir(!1),[l,p]=ir(!1),u=i(()=>{e(window.innerWidth<=ym),n(window.innerWidth>ym&&window.innerWidth<=Sm),a(window.innerWidth>Sm&&window.innerWidth<=Cm),c(window.innerWidth>Cm&&window.innerWidth<=km),p(window.innerWidth>km)},"handleResize");return sw(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),yn=lw;import{createTheme as ul,darkTheme as Tw,lightTheme as ww}from"@rango-dev/ui";import{useEffect as vw,useState as bw}from"react";import{theme as Cw,darkColors as kw}from"@rango-dev/ui";import cl from"react";var Mi=16,Li=255,Tm=.11;function cw(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(cw,"expandShortHexColor");function pw(t,e){return t.padStart(e,"0")}i(pw,"pad");function il(t){let e=Math.min(Math.max(Math.round(t),0),Li);return pw(e.toString(Mi),2)}i(il,"intToHex");function uw(t){return`#${il(t.red)}${il(t.green)}${il(t.blue)}`}i(uw,"rgbToHex");function dw(t){let e=parseInt(t.slice(1,3),Mi),o=parseInt(t.slice(3,5),Mi),n=parseInt(t.slice(5,7),Mi);return{red:e,green:o,blue:n}}i(dw,"hexToRGB");function mw(t,e){let o=1-Tm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(mw,"generateShade");function fw(t,e){let o=Tm*e;return{red:t.red+(Li-t.red)*o,green:t.green+(Li-t.green)*o,blue:t.blue+(Li-t.blue)*o}}i(fw,"generateTint");function gw(t){return wm(t,mw)}i(gw,"calculateShades");function hw(t){return wm(t,fw)}i(hw,"calculateTints");function wm(t,e){let o=dw(t),n=[];for(let r=1;r<9;r++)n.push(uw(e(o,r)));return n}i(wm,"calculateColors");function al(t,e,o){let a=hw(t).reverse().concat(t),s=gw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let d=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${d}`]=f)}return l}i(al,"createTintsAndShades");function sl(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)&&!fu(r)){let l=cw(a);Object.assign(n,al(l,r,s))}}return{...n,...e}}i(sl,"expandToGenerateThemeColors");var vm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),yw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=vm(o%52)+e;return vm(o%52)+e},"toAlphabeticName"),Sw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ll=i(t=>yw(Sw(5381,JSON.stringify(t))>>>0),"toHash");function pl(t){let e=Cw.colors,o={...e,...kw},n,r;if(t?.light){let s={colors:sl(e,t.light)};n={id:`${us}-light-${ll(s)}`,tokens:s}}if(t?.dark){let s={colors:sl(o,t.dark,{reverseNeutralRange:!0})};r={id:`${us}-dark-${ll(s)}`,tokens:s}}return{light:n,dark:r}}i(pl,"customizedThemeTokens");function bm(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>cl.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(cl.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(cl.cloneElement(e,{key:c}))}}),o}i(bm,"joinList");function xm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(xm,"doesWindowPreferDarkColorScheme");function po(t){let{colors:e,fontFamily:o=Jp,borderRadius:n=Au,secondaryBorderRadius:r=Nu}=t,[a,s]=bw(xm()?"dark":"light"),{theme:c}=k(),{dark:l,light:p}=pl(e),u=ul({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,ww.className],f=[u.className,Tw.className];if(p){let g=ul(p.id,p.tokens);d.push(g.className)}if(l){let g=ul(l.id,l.tokens);f.push(g.className)}return vw(()=>{let g=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return xm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=d.join(" "),m=f.join(" ");return c==="auto"?a==="dark"?m:g:c==="dark"?m:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(po,"useTheme");var wt=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 Em}from"@lingui/core";import{Alert as xw,Button as Ew}from"@rango-dev/ui";import Im from"react";function dl(t){return Im.createElement(xw,{action:Im.createElement(Ew,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Em.t("Activate this tab")),type:"warning",variant:"alarm",title:Em.t("Another tab is open and handles transactions.")})}i(dl,"ActivateTabAlert");import{i18n as ml}from"@lingui/core";import{Button as Iw,Divider as Aw,MessageBox as Nw}from"@rango-dev/ui";import Pi from"react";function fl(t){let{open:e,onClose:o,onConfirm:n}=t;return Pi.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:M()},Pi.createElement(Nw,{title:ml.t("Activate current tab"),type:"warning",description:ml.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.")},Pi.createElement(Aw,{size:20}),Pi.createElement(Iw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},ml.t("Confirm"))))}i(fl,"ActivateTabModal");import{ChevronLeftIcon as Mw}from"@rango-dev/ui";import _m from"react";import{css as Bw,darkTheme as Am,IconButton as Ww,styled as Do}from"@rango-dev/ui";var Dt=Do(Ww,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Am} &`]:{backgroundColor:"$neutral"}}}),Nm=Do("div",{position:"absolute",background:"$secondary500",[`.${Am} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),uo=Do("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Bm=Do("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"}}}}),Wm=Do("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Mm=Do("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Lm=Bw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Pm=Do("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function gl(t){return _m.createElement(Dt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},_m.createElement(Mw,{color:"black",size:16}))}i(gl,"BackButton");import{i18n as Lw}from"@lingui/core";import{Button as Pw,Typography as _w}from"@rango-dev/ui";import hl from"react";function yl(t){return hl.createElement(uo,null,hl.createElement(Pw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},hl.createElement(_w,{variant:"label",size:"medium",color:"error500"},Lw.t("Cancel"))))}i(yl,"CancelButton");import{i18n as Dw}from"@lingui/core";import{Image as $w,Tooltip as Fw,WalletIcon as Ow}from"@rango-dev/ui";import $o from"react";function Sl(t){let{list:e}=bt(),o=e.filter(r=>r.state==="connected"),n=o.length?$o.createElement("div",{className:Lm()},o.map(r=>$o.createElement(Pm,{key:r.title},$o.createElement($w,{src:r.image,size:14})))):Dw.t("Connect Wallet");return $o.createElement(Fw,{container:t.container,side:"bottom",content:n},$o.createElement(Dt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&$o.createElement(Nm,null),$o.createElement(Ow,{size:18,color:"black"})))}i(Sl,"WalletButton");import{i18n as Di}from"@lingui/core";import{NotificationsIcon as tv,Popover as ov,SettingsIcon as nv,Tooltip as $i,TransactionIcon as rv}from"@rango-dev/ui";import $e from"react";import{Notifications as Hw}from"@rango-dev/ui";import qw from"react";import{useNavigate as Gw}from"react-router-dom";import{create as Uw}from"zustand";import{persist as zw,subscribeWithSelector as Qw}from"zustand/middleware";var Be=so(Uw()(zw(Qw((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 Cl(){let t=Gw(),{getNotifications:e,clearNotifications:o}=Be(),n=e(),r=k().blockchains(),{findToken:a}=k();return qw.createElement(Hw,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Hp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${O.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(Cl,"NotificationContent");import{useManager as Vw}from"@rango-dev/queue-manager-react";import{InProgressIcon as Kw}from"@rango-dev/ui";import Dm from"react";var jw=i(()=>{let{manager:t}=Vw();return wt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Dm.createElement(Mm,{id:"widget-header-history-badge-container"},Dm.createElement(Kw,{color:"info",size:6})):null},"InProgressTransactionBadge"),$m=jw;import{EventSeverity as Xw}from"@rango-dev/queue-manager-rango-preset";import{Typography as Yw}from"@rango-dev/ui";import Fm from"react";function Om(){let{getNotifications:t}=Be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Xw.WARNING);return o?Fm.createElement(Bm,{isSever:n},Fm.createElement(Yw,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Om,"NotificationsBadge");import{RefreshProgressButton as Zw}from"@rango-dev/ui";import kl,{useEffect as Jw,useState as Um}from"react";var Rw=1e3,zm=60,ev=100;function _i({onClick:t}){let[e,o]=Um(0),[n,r]=Um(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Jw(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===zm&&c()},Rw):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 kl.createElement(Dt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},kl.createElement(Wm,{onTransitionEnd:()=>r(!1),isRefetched:n},kl.createElement(Zw,{size:22,color:t?"black":"gray",progress:e/zm*ev})))}i(_i,"RefreshButton");function Fo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=k(),c=nt("notification",s)||r.includes("notifications");return $e.createElement($e.Fragment,null,!r.includes("refresh")&&$e.createElement($i,{container:a||M(),side:"top",content:Di.t("Refresh")},$e.createElement(_i,{onClick:e})),!c&&$e.createElement(ov,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:M(),content:$e.createElement(Cl,null)},$e.createElement("div",null,$e.createElement($i,{container:M(),side:"top",content:Di.t("Notifications")},$e.createElement(Dt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},$e.createElement(tv,{size:18,color:"black"}),$e.createElement(Om,null))))),!r.includes("settings")&&$e.createElement($i,{container:M(),side:"top",content:Di.t("Settings")},$e.createElement(Dt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},$e.createElement(nv,{size:18,color:"black"}))),!r.includes("history")&&$e.createElement($i,{container:M(),side:"top",content:Di.t("History")},$e.createElement(Dt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},$e.createElement(rv,{size:18,color:"black"}),$e.createElement($m,null))))}i(Fo,"HeaderButtons");import{i18n as Tl}from"@lingui/core";import{Divider as Hm,MessageBox as sv,RefreshIcon as lv}from"@rango-dev/ui";import Sn from"react";import{Button as iv,styled as av}from"@rango-dev/ui";var Qm=av(iv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function wl(t){let{open:e,onClose:o}=t;return Sn.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:M()},Sn.createElement(sv,{title:Tl.t("Something went wrong"),type:"error",description:Tl.t("Something went wrong. Please refresh the app.")},Sn.createElement(Hm,{size:30}),Sn.createElement(Qm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Sn.createElement(lv,{size:20,color:"primary"}),Sn.createElement(Hm,{size:4,direction:"horizontal"}),Tl.t("Refresh"))))}i(wl,"RefreshModal");function vl(t){let e=t.target;if(e){let o=e.scrollTop,n=M();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(vl,"onScrollContentAttachStatusToContainer");import{css as pv,styled as Fi}from"@rango-dev/ui";var Oi=pv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),qm=Fi("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"}}}}),Gm=Fi("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Vm=Fi("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"}}}),Km=Fi("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=rl(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=k(),[u,d]=Ym(!1),{config:{features:f,theme:h}}=k(),{watermark:g,setShowCompactTokenSelector:m}=oe(),C=g==="FULL",{activeTheme:y}=po(h||{}),[S,T]=Ym(!1),w=nt("connectWalletButton",f),{isActiveTab:v,tabManagerInitiated:E,showActivateTabModal:B,setShowActivateTabModal:I,activateCurrentTab:x}=oe(),b=Xe(),{manager:W}=dv(),{isTablet:A,isMobile:$}=yn(),q=wt(W).map(({swap:le})=>le).some(le=>le.status==="running"),j=i(()=>x(Wo.forceClaim,q),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),Y=typeof r.hasBackButton>"u"||r.hasBackButton,ee=Xm(null),Z=Xm(null);return Ui(()=>{let le=(p?.swapBoxBanner?.routes?.length??0)===0,ue=!!p?.swapBoxBanner?.routes?.some(we=>location.pathname.endsWith(we));T(!!p?.swapBoxBanner&&(le||ue))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),Ui(()=>(rr()&&Z.current&&e(Z.current),()=>{o()}),[]),Ui(()=>(ee.current?.addEventListener("scroll",vl),()=>{ee.current?.removeEventListener("scroll",vl)}),[]),Ui(()=>{d(c==="failed")},[c]),gv(()=>{let le=s==="auto"||!Z.current||rr(),ue=$||A,we=i(()=>{le||(ue?Z.current.style.height=`${window.innerHeight-Z.current.offsetTop}px`:Z.current.style.height=`${700}px`,m(parseFloat(Z.current.style.height)<640))},"handler");return we(),window.addEventListener("resize",we),()=>window.removeEventListener("resize",we)},[s,$,A]),We.createElement(qm,{height:s,id:ot.SWAP_BOX_ID,className:`${y()} ${Oi()}`,ref:Z,showBanner:S},We.createElement(fv,{prefix:Y?We.createElement(gl,{onClick:()=>{b(),r.onBack?.()}}):null,title:r.title,suffix:We.createElement(We.Fragment,null,r.suffix,r.onWallet&&!w&&We.createElement(Sl,{container:M(),onClick:L,isConnected:!!l?.length}),r.onCancel&&We.createElement(yl,{onClick:r.onCancel}))}),We.createElement(Gm,{ref:ee},n),We.createElement(fl,{open:B,onClose:()=>I(!1),onConfirm:j}),We.createElement(Vm,null,We.createElement("div",{className:"footer__content"},E&&!v&&We.createElement("div",{className:"footer__alert"},We.createElement(dl,{onActivateTab:j}),We.createElement(jm,{size:10})),a),We.createElement(jm,{size:12}),We.createElement("div",{className:`footer__logo ${C?"logo__show":"logo__hidden"}`},We.createElement(mv,null))),S&&We.createElement(Km,null,p?.swapBoxBanner?.element),We.createElement(wl,{open:u,onClose:()=>d(!1)}))}i(ie,"Layout");import{styled as hv}from"@rango-dev/ui";var Zm="$20 $20 $10 $20",bl=hv("div",{padding:Zm,overflowY:"auto",flexGrow:1});import{styled as yv}from"@rango-dev/ui";var se=yv("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 mo}from"@lingui/core";import{useState as xl}from"react";function Jm(){let[t,e]=xl(!1),[o,n]=xl(null),[r,a]=xl(null),{findToken:s}=k(),c=k().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(d,f){switch(d){case"duplicated":return{type:d,title:mo.t("Duplicate Token"),message:mo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:mo.t("Token Already Exists"),message:mo.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:d,title:mo.t("Token Not Found"),message:mo.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:d,title:mo.t("Network error"),message:mo.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:f})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===f.toLowerCase())){let y=p("duplicated");n(y);return}let g=await pt().getCustomToken({blockchain:d,address:f});if(!g||!g.token||g.error){let y=p("not-found",d);n(y);return}let m=g.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let y=p("token-exist");n(y);return}return a({...m,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",d);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(Jm,"useFetchCustomToken");var Av=wv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${kv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Rm(){let t=Ev(),[e]=Iv(),o=Xe(),n=k().blockchains(),r=e.get("blockchain")||"",a=Eo(r,n),[s,c]=xv(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:f}=Jm(),h=!!a&&Zo(a,s),g=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ye.createElement(ie,{header:{title:Cn.t("Add Custom Token")}},Ye.createElement(se,null,Ye.createElement(Av,null,Ye.createElement("div",null,Ye.createElement(Zs,{onClick:()=>t(O.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:Cn.t("Select chain"),placeholder:Cn.t("Select chain")}),Ye.createElement(El,{size:"24"}),Ye.createElement(bv,{size:"large",variant:"label"},Cn.t("Enter Address")),Ye.createElement(El,{size:10}),Ye.createElement(vv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:Cn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Ye.createElement(Tv,{color:"success",size:12}),onChange:C=>c(C.target.value)}),!h&&!!s&&Ye.createElement(Ye.Fragment,null,Ye.createElement(El,{size:4}),Ye.createElement(Sv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ye.createElement(Cv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},Cn.t("Import"))),Ye.createElement(nr,{token:p,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(Rm,"AddCustomTokenPage");import{i18n as nc}from"@lingui/core";import{useManager as mx}from"@rango-dev/queue-manager-react";import{Alert as fx,Button as gx,css as ic,Divider as rc,IconButton as Hg,styled as hx,Typography as yx,WalletIcon as Sx}from"@rango-dev/ui";import Oe,{useEffect as da,useLayoutEffect as Cx,useRef as kx,useState as Cr}from"react";import{useNavigate as Tx}from"react-router-dom";import{i18n as Oo}from"@lingui/core";import{Alert as eb,BalanceErrors as tb,Button as Ef,ChevronLeftIcon as ob,Divider as Pl,MessageBox as nb,Typography as _l}from"@rango-dev/ui";import re,{useCallback as rb,useEffect as If,useMemo as ib,useState as wn}from"react";import{useNavigate as ab}from"react-router-dom";import{i18n as Bl}from"@lingui/core";import{Alert as Lv,ChevronDownIcon as Pv,CloseIcon as _v,Divider as sf,IconButton as lf,PasteIcon as Dv,Typography as $v,WalletIcon as Fv}from"@rango-dev/ui";import Fe,{useEffect as Ov,useRef as Uv}from"react";import qi,{useRef as Wv}from"react";import*as kn from"@radix-ui/react-collapsible";import{keyframes as ef,styled as zi}from"@rango-dev/ui";var Il=300,Nv=ef({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Bv=ef({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),tf=zi(kn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Al=zi(kn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Qi=zi(kn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Nv} ${Il}ms ease-out`},false:{animation:`${Bv} ${Il}ms ease-out`}}}}),Hi=zi("div",{transition:`all ${Il}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Gi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Wv(null);return qi.createElement(tf,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&qi.createElement(Al,{className:"collapsible_trigger",onClick:a},s),qi.createElement(Qi,{className:"collapsible_content",open:e},r),c==="bottom"&&qi.createElement(Al,{className:"collapsible_trigger",onClick:a},s))}i(Gi,"CustomCollapsible");import{darkTheme as of,styled as Nl,TextField as Mv}from"@rango-dev/ui";var nf=Nl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),rf=Nl(Mv,{backgroundColor:"$neutral100"}),af=Nl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${of} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${of} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function cf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=z()(),{config:s}=k(),c=k().blockchains(),l=Kr(e.name,c),p=Uv(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!Zo(e,r),g=i(()=>{a("")},"handleClear"),m=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let S=await navigator.clipboard.readText();a(S),p?.current?.focus()}},"handlePaste"),C=i(()=>r?Fe.createElement(lf,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},Fe.createElement(_v,{size:12,color:"gray"})):d?null:Fe.createElement(lf,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},Fe.createElement(Dv,{size:16})),"renderSuffix");return Ov(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),Fe.createElement(nf,null,Fe.createElement(Gi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Fe.createElement(af,{id:"widget-custom-destination-collapsible-btn"},Fe.createElement("div",{className:"button__content"},Fe.createElement(Fv,{size:18,color:"info"}),Fe.createElement(sf,{size:4,direction:"horizontal"}),Fe.createElement($v,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Bl.t("Send to a different address"))),Fe.createElement(Hi,{orientation:n?"up":"down"},Fe.createElement(Pv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Fe.createElement(rf,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Bl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:C(),onChange:y=>{let S=y.target.value;a(S)}})),h&&Fe.createElement(Fe.Fragment,null,Fe.createElement(sf,{size:4}),Fe.createElement(Lv,{variant:"alarm",type:"error",title:Bl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(cf,"CustomDestination");import{css as zv,IconButton as Qv,SelectableWalletButton as Hv,styled as fo}from"@rango-dev/ui";var pf=fo("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),uf=fo("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),df=fo(Hv,{justifyContent:"center"}),mf=fo("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),ff=fo(Qv,{position:"absolute",left:"$20"}),gf=fo("div",{paddingTop:"$20"}),hf=zv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),yf=fo("div",{display:"flex"}),Sf=fo("div",{overflow:"visible",width:"100%"});import{i18n as Ml}from"@lingui/core";import{warn as jv}from"@rango-dev/logging-core";import{Divider as Xv,makeInfo as Yv,SelectableWallet as Zv,Typography as bf,WalletState as Vi}from"@rango-dev/ui";import it,{useEffect as xf,useState as lr}from"react";import{Image as Vv,MessageBox as Kv}from"@rango-dev/ui";import sr from"react";import{keyframes as qv,styled as Wl}from"@rango-dev/ui";var Cf=Wl("div",{position:"relative"}),Gv=qv({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),kf=Wl("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Gv} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Tf=Wl("div",{"& img":{borderRadius:"50%"}});import{i18n as Tn}from"@lingui/core";function wf(t,e){switch(t){case"in-progress":return{type:"loading",title:Tn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Tn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Tn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Tn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Tn.t("Request Rejected"),description:Tn.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(wf,"generateMessageByStatus");function vf(t){let{status:e,displayName:o,image:n}=t,r=wf(e,o),a=e=="in-progress";return sr.createElement(Kv,{type:r.type,title:r.title,description:r.description,icon:a?sr.createElement(Cf,null,sr.createElement(Tf,null,sr.createElement(Vv,{src:n,size:45})),sr.createElement(kf,null)):void 0})}i(vf,"ExperimentalChainStatus");var Jv=7,Rv=3e3;function Ll(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{checkHasDeepLink:l,getWalletLink:p}=sn(),{blockchains:u,connectedWallets:d}=k(),[f,h]=lr(),[g,m]=lr(null),[C,y]=lr(!1),[S,T]=lr(null),{suggestAndConnect:w}=Ki(),{list:v}=bt({chain:e}),[E,B]=lr(v),I=v.length,x=a&&I-a>0,b=i(async A=>{y(!1),T("in-progress");try{await w(A.walletType,A.chain),T("completed")}catch{T("rejected")}},"addExperimentalChain");xf(()=>{B(A=>{let $=v.findIndex(U=>n(U.type,e));return x&&$>1?[v[$]].concat(v.filter((U,q)=>q!==$)):A.map(U=>v.find(q=>q.type===U.type)??U)})},[JSON.stringify(v)]);let W=document.getElementById(ot.SWAP_BOX_ID);return xf(()=>{let A=null;return(S==="completed"||S==="rejected")&&(A=setTimeout(()=>T(null),Rv)),()=>{A&&clearTimeout(A)}},[S]),it.createElement(it.Fragment,null,E.slice(0,a).map(A=>{let $=wu({connectedWallets:d,walletType:A.type,chain:e}),U=A.state===Vi.CONNECTED,q=$?ao($,Jv):"",j=U&&!!A.needsNamespace&&!q,L=ri(u(),e),Y=!d.find(qe=>qe.walletType===A.type&&qe.chain===e),ee=L&&Y&&A.state===Vi.CONNECTED,Z=i(async()=>{A.state===Vi.DISCONNECTED||j?h(A):ee?(m({walletType:A.type,chain:e,address:$??""}),y(!0)):r({walletType:A.type,chain:e,address:$??""})},"onSelectableWalletClick"),le=Yv(A.state,{hasDeepLink:l(A.type)}),ue=i(()=>ee?Ml.t({id:"Add {chain} chain",values:{chain:e}}):j?Ml.t("Chain not connected"):q||le.description,"getWalletDescription"),we=i(()=>A.state===Vi.CONNECTED?j?"neutral600":"neutral700":le.color,"getWalletDescriptionColor"),ve=g?.chain?Kr(g.chain,u()):void 0;return it.createElement(it.Fragment,{key:`${A.title}_${ve}`},!!g&&it.createElement(R,{id:"widget-wallets-list-watermarked-modal",open:!!g&&C,container:W,onClose:()=>{m(null)}},it.createElement(Fs,{id:"widget-wallets-list-experimental-chain-container",displayName:ve,onConfirm:()=>{b(g)}})),S&&it.createElement(R,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!S,onClose:T.bind(null,null),container:W},it.createElement(vf,{status:S,displayName:ve,image:A.image}),it.createElement(Xv,{direction:"vertical",size:32})),it.createElement(Zv,{hasDeepLink:l(A.type),key:A.type,id:"widget-wallets-list-selectable-wallet-btn",description:ue(),descriptionColor:we(),onClick:Z,selected:n(A.type,e),disabled:!c,...A,link:p(A.type)}))}),it.createElement(Rn,{id:"widget-wallets-list-stateful-connect-modal",wallet:f,options:{defaultSelectedChains:o||[e]},onClose:()=>{h(void 0)},onConnect:()=>{t.onConnect&&(f?.type?t.onConnect(f.type):jv(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),x&&it.createElement(df,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},it.createElement(bf,{variant:"label",size:"medium"},Ml.t("Show more wallets"),it.createElement(bf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(a??0)))))}i(Ll,"WalletList");var sb=2;function Af(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=ab(),c=k().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:f,setCustomDestination:h}=z()(),{config:g,connectedWallets:m,setWalletsAsSelected:C}=k(),[y,S]=wn(""),[T,w]=wn([]),[v,E]=wn(""),[B,I]=wn(!!f),x=ib(()=>No({filter:"all",quote:l}),[l]),b=No({filter:"required",quote:l}),W=c.find(D=>D.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),A=i(D=>b.includes(D),"isWalletRequiredFor"),$=rb(()=>m.filter(D=>D.selected&&x.includes(D.chain)),[m,x]),[U,q]=wn($()),[j,L]=wn([]),Y=i((D,N)=>L(G=>G.concat({blockchain:D,walletType:N})),"addNextSelectedWallets"),ee=T.length>0,Z=i((D,N)=>!!U.find(G=>G.walletType===D&&G.chain===N&&G.selected&&(A(N)||!A(N)&&!f)),"isSelected"),le=i((D,N,G)=>{let ae=!1;return D.map(K=>{if(K.chain===N){let X=K.selected;return!ae&&G?(ae=!0,X=!0):G||(X=!1),{...K,selected:X}}return K})},"updateSelectableWallets"),ue=i(D=>{I(D),D?A(W?.name??"")||q(N=>le(N,W?.name||"",!1)):(h(""),q(N=>le(N,W?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),we=i(D=>{if(y&&S(""),Z(D.walletType,D.chain))return;let G=m.find(ae=>ae.walletType===D.walletType&&ae.chain===D.chain);G&&(n(),D.chain===W?.name&&B&&!A(W.name)&&(I(!1),h(null)),q(ae=>ae.filter(K=>K.chain!==D.chain).concat({...G,selected:!0})))},"onChange"),ve=i(()=>{let D=U.filter(N=>N.selected);C(D),p(D),d(!0),o()},"onConfirmBalance"),qe=i(async()=>{w([]),E("");let D=await r?.({selectedWallets:U.filter(G=>G.selected),customDestination:f}),N=D.warnings;N?.balance?.messages&&w(N.balance.messages),D.error&&E(kd(D.error)),!D.error&&!N?.balance?.messages.length?ve():w(N?.balance?.messages??[])},"onConfirmWallets");If(()=>{q(D=>{let N=[];return D.forEach(G=>{!m.some(K=>K.chain===G.chain&&K.walletType===G.walletType&&K.address===G.address)||N.push(G)}),N=N.concat(m.filter(G=>!!!N.find(K=>K.chain===G.chain)&&G.selected&&x.includes(G.chain))),N})},[m,x]),If(()=>{let D=[];j.length>0&&(j.forEach(N=>{let G=m.find(ae=>ae.chain===N.blockchain&&ae.walletType===N.walletType);G?we(G):D.push(N)}),L(D))},[m,j]);let Ae=document.getElementById(ot.SWAP_BOX_ID);return re.createElement(R,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:Ae,...!y&&{styles:{container:{height:"100%"}},footer:re.createElement(yf,null,re.createElement(Ef,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Xd(a,B,f,l,U,W),onClick:qe,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Oo.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:re.createElement(mf,null,re.createElement(ff,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:S.bind(null,"")},re.createElement(ob,{size:16})),re.createElement(_l,{variant:"headline",size:"small"},Oo.t({id:"Your {blockchainName} wallets",values:{blockchainName:ht(y,c)}})))},anchor:"center"},re.createElement(R,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:ee,onClose:w.bind(null,[]),container:Ae},re.createElement(nb,{title:Oo.t("Insufficient account balance"),type:"error",description:re.createElement(tb,{messages:T??[]})},re.createElement(Ef,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:ve},Oo.t("Proceed anyway")))),y&&re.createElement(gf,null,re.createElement("div",{className:hf()},re.createElement(Ll,{chain:y,quoteChains:x,isSelected:Z,selectWallet:we,onShowMore:()=>S(y),onConnect:D=>{Y(y,D)}}))),!y&&re.createElement(re.Fragment,null,v&&re.createElement(re.Fragment,null,re.createElement(eb,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Oo.t(v)}),re.createElement(Pl,{size:12})),re.createElement(Sf,null,x.map((D,N)=>{let G=c.find(Ge=>Ge.name===D),ae=`wallet-${N}`,K=N===x.length-1,X=K&&W&&g?.customDestination!==!1;return re.createElement("div",{key:ae},re.createElement(pf,null,re.createElement(_l,{variant:"title",size:"xmedium"},Oo.t({id:"Your {blockchainName} wallets",values:{blockchainName:G?.shortName}})),re.createElement(_l,{variant:"label",color:"$neutral700",size:"medium"},Oo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:G?.shortName}}))),re.createElement(Pl,{size:24}),re.createElement(uf,null,re.createElement(Ll,{chain:D,quoteChains:x,isSelected:Z,selectWallet:we,limit:sb,onShowMore:()=>S(G?.name??""),onConnect:Ge=>{Y(D,Ge)}})),!K&&re.createElement(Pl,{size:32}),X&&re.createElement(cf,{blockchain:W,open:B,handleOpenChange:ue}))}))))}i(Af,"ConfirmWalletsModal");import{i18n as Ab}from"@lingui/core";import{Alert as Nb,Button as Bb,Divider as Kf,InfoIcon as Wb}from"@rango-dev/ui";import ze from"react";import{Alert as pb,Button as ub,Divider as Fl,NoRouteIcon as db,RefreshIcon as mb,Typography as _f}from"@rango-dev/ui";import ut from"react";import{i18n as Nf}from"@lingui/core";var lb=24,cb=60;function Bf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ne().genericServerError,action:{onClick:n,title:Nf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ne().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Nf.t("Reset")}},description:ne().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ne().noResultError.description}}i(Bf,"makeInfo");var Dl=(o=>(o[o.small=lb]="small",o[o.large=cb]="large",o))(Dl||{}),$l=(o=>(o.small="small",o.large="medium",o))($l||{});import{styled as ji}from"@rango-dev/ui";var Wf=ji("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Mf=ji("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Lf=ji("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Pf=ji("div",{padding:"$6 $0"});function cr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=k().getDisabledLiquiditySources(),s=k().toggleAllLiquiditySources,c=k().swappers(),l=Bf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),ut.createElement(Wf,{id:"widget-no-result-container"},ut.createElement(db,{size:Dl[n],color:"gray"}),ut.createElement(Fl,{size:4}),ut.createElement(_f,{variant:"title",size:$l[n]},ne().noResultError.title),n==="large"&&ut.createElement(Fl,{size:4}),!!l.description&&ut.createElement(Mf,{size:n},ut.createElement(_f,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),ut.createElement(Fl,{size:n==="large"?"24":"4"}),!!l.alert&&ut.createElement(Lf,{size:n},ut.createElement(pb,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&ut.createElement(ub,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:ut.createElement(Pf,null,ut.createElement(mb,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(cr,"NoResult");import{i18n as ur}from"@lingui/core";import{Button as hb,Divider as yb,MessageBox as Sb,Typography as Cb,WarningIcon as kb}from"@rango-dev/ui";import Xt from"react";import{Typography as Uf}from"@rango-dev/ui";import Ul from"react";import{Button as fb,darkTheme as gb,styled as pr}from"@rango-dev/ui";var Df=pr("div",{width:"100%"}),Ol=pr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),$f=pr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${gb} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ff=pr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Of=pr(fb,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function zf(t){let{title:e,value:o,valueColor:n}=t;return Ul.createElement($f,null,Ul.createElement(Uf,{size:"medium",variant:"label",className:"_title"},e),Ul.createElement(Uf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(zf,"QuoteErrorsModalItem");function Qf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:ur.t("Swapping"),value:_(r.inputUsdValue,4,4)},{title:ur.t("Gas cost"),value:_(r.totalFee,2,2)},{title:ur.t("Receiving"),value:_(r.outputUsdValue,4,4)},{title:ur.t("Price impact"),value:_(r.priceImpact,2,2),valueColor:`${s}500`}];return Xt.createElement(R,{id:"widget-high-value-loss-warning-modal",footer:Xt.createElement(hb,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Xt.createElement(kb,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:M()},Xt.createElement(Sb,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Xt.createElement(Ol,null,Xt.createElement(yb,{size:"4"}),Xt.createElement(Cb,{size:"small",variant:"title"},ur.t("Details")),Xt.createElement(Ol,null,c.map((l,p)=>Xt.createElement(zf,{key:p,...l})))))}i(Qf,"HighValueLossWarningModal");import{i18n as vn}from"@lingui/core";function Hf(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=vn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=vn.t("Increase")),o;if(t){switch(t.type){case 0:{jt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().highValueLossError.title;break}case 4:{o.title=vn.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=ne().unknownPriceError.title;break}case 2:{o.title=vn.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=vn.t("Increase");break}case 3:{o.title=vn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Hf,"makeAlerts");function qf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(qf,"getRequiredSlippage");import{i18n as bn}from"@lingui/core";import{Button as Tb,Divider as zl,MessageBox as wb,WarningIcon as vb}from"@rango-dev/ui";import yo from"react";import{useNavigate as bb}from"react-router-dom";function Gf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=bb();return yo.createElement(R,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:M(),onClose:o},yo.createElement(wb,{type:"warning",title:r.type===3?bn.t("High slippage"):bn.t("Low slippage"),description:r.type===3?bn.t("Caution, your slippage is high. Your trade may be front run."):bn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},yo.createElement(zl,{size:18}),yo.createElement(zl,{size:32}),yo.createElement(Of,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},yo.createElement(vb,{color:"white",size:16}),bn.t("Swap anyway")),yo.createElement(zl,{size:10}),yo.createElement(Tb,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+O.settings)},bn.t("Change Slippage"))))}i(Gf,"SlippageWarningModal");import{Button as xb,MessageBox as Eb,WarningIcon as Ib}from"@rango-dev/ui";import Xi from"react";function Vf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Xi.createElement(R,{id:"widget-unknown-price-warning-modal",footer:Xi.createElement(xb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Xi.createElement(Ib,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:M()},Xi.createElement(Eb,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(Vf,"UnknownPriceWarningModal");function dr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:d,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,m=Hf(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let C=!!m&&!s,y=i(S=>{if(S==="change-slippage"){let T=o?.type===3||o?.type===4?o:null,w=qf(e,T);f?.(w)}else S==="change-settings"&&d()},"onclickActionButton");return ze.createElement(ze.Fragment,null,g&&ze.createElement(ze.Fragment,null,ze.createElement(Kf,{size:10}),ze.createElement(cr,{skipAlerts:s,error:o,fetch:c})),C&&ze.createElement(Df,null,ze.createElement(Kf,{size:10}),ze.createElement(Nb,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:ze.createElement(Ff,{onClick:l},ze.createElement(Wb,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:ze.createElement(Bb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>y(m.action)},m.actionButtonTitle||Ab.t("Change"))}})),e&&ze.createElement(ze.Fragment,null,e.type===0&&ze.createElement(Qf,{...h,warning:e}),(e.type===3||e.type===2)&&ze.createElement(Gf,{...h,warning:e}),e.type===1&&ze.createElement(Vf,{...h,warning:e})))}i(dr,"QuoteWarningsAndErrors");import ax from"bignumber.js";import la from"react";import{i18n as Uo}from"@lingui/core";import{Alert as Kb,Divider as En,FullExpandedQuote as jb,InfoIcon as Xb,NumericTooltip as Tg,QuoteTag as Yb,StepDetails as Zb,TokenAmount as Jb,Typography as In}from"@rango-dev/ui";import Yl from"bignumber.js";import Q,{useRef as Rb,useState as ex}from"react";import{styled as Ql}from"@rango-dev/ui";var Hl=Ql("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),jf=Ql("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Xf=Ql("div",{width:"100%",display:"flex"});import*as Yi from"@radix-ui/react-collapsible";import{Button as Mb,css as mr,darkTheme as Me,Image as Yf,styled as Re,Typography as Lb}from"@rango-dev/ui";var Pb=300,Zf=Re(Yi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Me} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Me} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Me} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Jf=mr({padding:"$10 $15"}),Rf=Re(Mb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Me} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Me} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Me} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),eg=Re("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",[`.${Me} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Me} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Me} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Me} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Me} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Me} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Me} &`]:{backgroundColor:"$neutral400"}}}}]}),tg=mr({width:"100%",padding:"$15 $15 $10 $15"}),og=mr({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),xn=mr({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),ng=mr({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Me} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),rg=Re(Yi.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:{[`& ${Yf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Yf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Me} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Me} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Me} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),ig=Re("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"}}}}),ag=Re(Qi,{width:"100%",background:"inherit"}),ql=Re("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Pb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),CH=Re("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),sg=Re("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Me} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),lg=Re("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Gl=Re(Lb,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),cg=Re("div",{display:"flex",flexWrap:"wrap"}),Vl=Re("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"}}}}),pg=Re("div",{display:"flex"}),Zi=Re("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Me} &`]:{borderTopColor:"$neutral800"}});import{i18n as $t}from"@lingui/core";import{ChevronDownIcon as Db,CloseIcon as $b,Divider as ea,IconButton as Fb,NumericTooltip as Ob,QuoteCost as Ub,Typography as Et}from"@rango-dev/ui";import J,{useState as fg}from"react";import{css as _b,styled as Ji}from"@rango-dev/ui";var Ri=Ji("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Kl=Ji("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),ug=Ji("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),dg=Ji("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),mg=_b({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var zb=i(t=>t.fee.isZero()?null:J.createElement(Ri,null,J.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(Et,{variant:"label",size:"medium"},"$",_(t.fee,4,4))),"NonPayableFee");function jl(t){let[e,o]=fg(!1),[n,r]=fg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?Ao():M(),m=zd(h),C=_(c,2,2);return J.createElement(J.Fragment,null,J.createElement(Ub,{onClickFee:d?y=>{y.stopPropagation(),o(!e)}:void 0,fee:C,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?$t.t("View more info"):void 0,tooltipContainer:g}),J.createElement(R,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:J.createElement(dg,{style:{textAlign:f?"left":"center"}},J.createElement(Et,{variant:"title",size:"medium"},$t.t("Gas & Fee Explanation")),J.createElement(Fb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},J.createElement($b,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(ug,null,J.createElement(Et,{variant:"title",size:"small"},$t.t("Details")),J.createElement(ea,{size:10}),Object.entries(m.payable).flatMap(([y,S])=>S.map((T,w)=>{let v=`payable-fee-${w}`,E=qs(T);return J.createElement(Ri,{key:v},J.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},Os(y,$t.t)),J.createElement(Ob,{content:T.amount,container:g},J.createElement(Et,{variant:"label",size:"medium"},_(T.amount,2,2),T.asset.symbol," ($",_(E,4,4),")")))})),J.createElement(Ri,{className:"total_payable_fee"},J.createElement(Et,{variant:"label",size:"medium"},$t.t("Total Payable Fee")),J.createElement(Et,{variant:"label",size:"medium"},"$",_(c,4,4))),J.createElement(Kl,null),!!Object.keys(m.nonePayable).length&&J.createElement(Gi,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:J.createElement("div",{className:mg()},J.createElement(Et,{size:"small",variant:"body",color:"neutral700"},n?$t.t("Hide non-payable fees"):$t.t("Show non-payable fees")),J.createElement(ea,{size:4,direction:"horizontal"}),J.createElement(Hi,{orientation:n?"up":"down"},J.createElement(Db,{size:12,color:"gray"}))),open:n},J.createElement(Et,{size:"small",variant:"title"},$t.t("Description")),J.createElement(ea,{size:4}),J.createElement(Et,{size:"small",variant:"body",color:"neutral700"},$t.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),J.createElement(ea,{size:10}),Object.entries(m.nonePayable).map(([y,S],T)=>{let w=Ud(S),v=Os(y,$t.t),E=`non-payable-fee-${T}`;return J.createElement(zb,{key:E,fee:w,label:v})}),J.createElement(Kl,null)))))}i(jl,"QuoteCostDetails");import{i18n as yg}from"@lingui/core";import{TokenAmount as Sg}from"@rango-dev/ui";import ta from"react";import{css as Qb,styled as Hb}from"@rango-dev/ui";var gg=Hb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),hg=Qb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function fr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return ta.createElement(gg,null,ta.createElement(Sg,{direction:"horizontal",label:yg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:M(),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}}),ta.createElement("div",{className:hg()}),ta.createElement(Sg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:M(),label:yg.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(fr,"QuoteSummary");import{i18n as Cg}from"@lingui/core";import{ChevronDownIcon as qb,ChevronRightIcon as Gb,Divider as Xl,Image as Vb,Tooltip as ia,Typography as oa}from"@rango-dev/ui";import H from"react";var na=4,ra=6,gr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||M();return H.createElement(ia,{container:c,side:"bottom",sideOffset:4,open:r,content:e},H.createElement(ig,{className:n,state:a},H.createElement(Vb,{src:o,size:16})))},"ImageComponent");function kg(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||M(),p=r.length,u=Bd(r),{isTablet:d,isMobile:f}=yn();return H.createElement(rg,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},H.createElement("div",{className:xn()},H.createElement(oa,{variant:"body",size:"xsmall"},Cg.t("Via:")),H.createElement(Xl,{direction:"horizontal",size:4}),r.map((h,g)=>{let m=`item-${g}`,C=H.createElement(ql,null,H.createElement(Gb,{size:12,color:"black"}));return f||d?H.createElement(H.Fragment,{key:m},H.createElement(gr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&H.createElement(H.Fragment,null,C)):H.createElement(H.Fragment,{key:m},p<=na||p>na&&g<na-1?H.createElement(H.Fragment,null,H.createElement(gr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&H.createElement(H.Fragment,null,C)):g===na-1&&H.createElement(ia,{container:l,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:xn()},C,r.map((y,S)=>{let T=`image-${S}`;return S>=g&&H.createElement(H.Fragment,{key:T},H.createElement(gr,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),S!==p-1&&H.createElement(H.Fragment,null,C))}))},H.createElement(Vl,{state:r.find((y,S)=>S>=g&&(y.state==="error"||y.state==="warning"))?.state},H.createElement(oa,{size:"xsmall",variant:"body"},"+",p-g))))})),H.createElement("div",{className:xn()},H.createElement("div",{className:"blockchains_section"},H.createElement("div",{className:xn()},H.createElement(oa,{variant:"body",size:"xsmall"},Cg.t("Chains:")),H.createElement(Xl,{direction:"horizontal",size:4}),u.map((h,g)=>H.createElement(H.Fragment,{key:h.displayName},u.length<=ra||u.length>ra&&g<ra-1?H.createElement(ia,{container:l,side:"bottom",content:h.displayName,sideOffset:4},H.createElement(gr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===ra-1&&H.createElement(ia,{container:l,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:xn()},u.map((m,C)=>C>=g&&H.createElement(gr,{key:m.displayName,content:"",src:m.image??"",open:!1,className:C>g?"blockchainImage":"",container:c})))},H.createElement(Vl,{className:"blockchainImage"},H.createElement(oa,{size:"xsmall",variant:"body"},"+",u.length-g))))),H.createElement(Xl,{direction:"horizontal",size:32}))),H.createElement(ql,{orientation:a?"up":"down"},H.createElement(qb,{size:12,color:"black"}))))}i(kg,"QuoteTrigger");function Zl(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:d=!1,container:f}=t,h=k().blockchains(),{findToken:g}=k(),m=k().swappers(),{customSlippage:C,slippage:y}=k(),S=C||y,[T,w]=ex(t.expanded),v=Rb(null),E=_(o.value,6,6),B=_(n.value,6,6),I=n.usdValue?_(n.usdValue,4,4):"",x=Kt(o.usdValue,n.usdValue??null),b=_(x,2,2),W=jt(x??0),A=i((Ae,D)=>Ae.map((N,G)=>{let ae,K=r?.type===3&&r.swap.swapperId===N.swapperId,X=r?.type===4&&!!r.recommendedSlippages?.[G],Ge=a?.type===2&&!!a.recommendedSlippages?.[G],Ve=K||X,be=Ge;Ve?ae="error":be&&(ae="warning");let Mt=Ve?Uo.t("Slippage Error"):Uo.t("Slippage Warning");return K&&(Mt=Uo.t("Bridge Limit Error")),{swapper:{displayName:Dn(N.swapperId,m)??"",image:N.swapperLogo},from:{token:{displayName:N.from.symbol,image:N.from.logo},chain:{displayName:ht(N.from.blockchain,h)??"",image:N.from.blockchainLogo},price:{value:G===0&&!D?_(o.value,6,6):_(N.fromAmount,6,6),usdValue:_((N.from.usdPrice??0)*parseFloat(N.fromAmount),4,4),realValue:G===0?o.value:N.fromAmount,realUsdValue:new Yl(N.from.usdPrice??0).multipliedBy(N.fromAmount).toString()}},to:{token:{displayName:N.to.symbol,image:N.to.logo},chain:{displayName:ht(N.to.blockchain,h)||"",image:N.to.blockchainLogo},price:{value:_(N.toAmount,6,6),usdValue:_((N.to.usdPrice??0)*parseFloat(N.toAmount),4,4),realValue:N.toAmount,realUsdValue:new Yl(N.to.usdPrice??0).multipliedBy(N.toAmount).toString()}},state:ae,alerts:Ve||be?Q.createElement(jf,{dense:d},Q.createElement(Kb,{variant:"alarm",type:Ve?"error":"warning",title:Mt,id:"widget-quote-footer-step-alarm-alert",footer:Q.createElement(Xf,null,K&&Q.createElement("div",null,Q.createElement(In,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),Q.createElement(En,{direction:"vertical",size:2}),Q.createElement(In,{size:"xsmall",variant:"body",color:"neutral900"},Uo.t({id:"Yours: {amount} {symbol}",values:{amount:_(N.fromAmount,6,6),symbol:N?.from.symbol}}))),(X||Ge)&&!K&&Q.createElement("div",null,Q.createElement(In,{size:"xsmall",variant:"body",color:"neutral900"},Uo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[G]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[G]}}})),Q.createElement(En,{direction:"vertical",size:2}),Q.createElement(In,{size:"xsmall",variant:"body",color:"neutral900"},Uo.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Fn(N.estimatedTimeInSeconds),fee:_(Hs(N,g),2,2),internalSwaps:N.internalSwaps?A(N.internalSwaps):void 0}}),"getQuoteSteps"),$=A(e?.swaps??[]),U=$.length,q=f||M(),j=Md(t.quote.tags||[]),L=!!u,Y=ti(e?.swaps),ee=Fn(Y),Z=Ii(e?.swaps??[],g),le=_(Z,2,2),ue=Z.gte(new Yl(wd)),we=Y/bd>=vd,ve=$[U-1],qe=$[0];return!qe||!ve?null:d?Q.createElement(jb,{selected:c,fee:le,time:ee,tooltipContainer:Ao(),steps:$,tags:j,id:"widget-quote-full-expanded-quote-container",quoteCost:Q.createElement(jl,{quote:e,fullExpandedMode:!0,time:ee,fee:Z,feeWarning:ue,timeWarning:we,showModalFee:p,steps:U}),percentageChange:b,warningLevel:W,outputPrice:{value:B,usdValue:I,realValue:n.value,realUsdValue:n.usdValue}}):Q.createElement(eg,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},Q.createElement("div",{className:tg()},!l&&j.length?Q.createElement(Q.Fragment,null,Q.createElement(pg,null,j.map((Ae,D)=>{let N=`${Ae.value}_${D}`;return Q.createElement(Q.Fragment,{key:N},Q.createElement(Yb,{label:Ae.label,value:Ae.value}),Q.createElement(En,{size:4,direction:"horizontal"}))})),Q.createElement(Zi,null),!L&&Q.createElement(En,{size:4})):null,Q.createElement("div",{id:"portal-root",className:og()},Q.createElement(jl,{quote:e,time:ee,fee:Z,feeWarning:ue,timeWarning:we,showModalFee:p,steps:U}),L&&Q.createElement(Rf,{onClick:Ae=>{Ae.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},Q.createElement(In,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Uo.t("See All Routes")))),s==="basic"&&Q.createElement("div",{className:ng()},Q.createElement(lg,null,Q.createElement(Xb,{size:12,color:"gray"})),Q.createElement(cg,null,Q.createElement(Gl,{size:"small",variant:"body"},`${E} ${qe.from.token.displayName} = `),Q.createElement(Tg,{content:n.value,container:q,open:n.value?void 0:!1},Q.createElement(Gl,{size:"small",variant:"body"},"\xA0",`${B} ${ve.to.token.displayName}`))),Q.createElement(Tg,{content:n.usdValue,container:q},Q.createElement(En,{size:2,direction:"horizontal"}),Q.createElement(In,{color:"$neutral600",size:"xsmall",variant:"body"},`($${I})`))),s==="list-item"&&Q.createElement(Jb,{id:"widget-quote-token-amount-container",tooltipContainer:q,type:"output",direction:"vertical",price:{value:B,usdValue:I,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:ve.to.token.displayName,image:ve.to.token.image},chain:{image:ve.to.chain.image},percentageChange:b,warningLevel:W}),s==="swap-preview"&&Q.createElement(Q.Fragment,null,Q.createElement(fr,{from:qe.from,to:ve.to,percentageChange:b,warningLevel:W}),Q.createElement(En,{size:4}))),Q.createElement(Zf,{selected:c,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:w},Q.createElement(kg,{type:s,quoteRef:v,selected:c,setExpanded:w,container:q,expanded:T,steps:$}),Q.createElement(ag,{open:T},Q.createElement(sg,null),Q.createElement("div",{className:Jf()},$.map((Ae,D)=>{let N=`item-${D}`;return Q.createElement(Zb,{type:"quote-details",className:"widget-quote-step-details-container",key:N,tooltipContainer:q,step:Ae,hasSeparator:D!==$.length-1,state:Ae.state})})))))}i(Zl,"Quote");import{Divider as rx,Skeleton as ix}from"@rango-dev/ui";import Rt from"react";import{darkTheme as tx,styled as aa}from"@rango-dev/ui";var wg=aa("div",{$$color:"$colors$neutral100",[`.${tx} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),vg=aa("div",{paddingTop:"$2"}),bg=aa("div",{paddingLeft:"$8"}),xg=aa("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as _g,Divider as It,Skeleton as dt}from"@rango-dev/ui";import V from"react";import{css as ox,styled as Jt}from"@rango-dev/ui";var Jl=Jt("div",{display:"flex"}),Eg=Jt("div",{padding:"$10 $0 $20"}),Ig=Jt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Ag=Jt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Ng=Jt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Bg=Jt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Wg=Jt("div",{width:"65%",display:"flex",justifyContent:"start"}),Mg=Jt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Lg=Jt("div",{padding:"$15 $0 $15 $0"}),Pg=ox({display:"flex",justifyContent:"space-between",alignItems:"center"});function hr(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(Ng,null,V.createElement(Wg,null,V.createElement(_g,{loading:!0,size:"medium"}),V.createElement(It,{size:8,direction:"horizontal"}),V.createElement(Mg,null,V.createElement(dt,{height:10,width:60,variant:"rounded"}),V.createElement(It,{size:4}),V.createElement(dt,{height:15,variant:"rounded"}))),V.createElement(dt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(Jl,null,V.createElement(dt,{width:65,height:20,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(dt,{width:65,height:20,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(dt,{width:65,height:20,variant:"rounded"})),V.createElement(Zi,null),!r&&V.createElement(It,{size:4})),V.createElement("div",{className:Pg()},V.createElement(Jl,null,V.createElement(dt,{width:60,height:10,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(dt,{width:60,height:10,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(dt,{width:60,height:10,variant:"rounded"})),r&&V.createElement(dt,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(Eg,null,V.createElement(dt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(Ig,null,V.createElement(Ag,null,V.createElement(_g,{loading:!0,size:"medium"}),V.createElement(It,{direction:"horizontal",size:4}),V.createElement(dt,{height:15,width:150,variant:"rounded"})),V.createElement(It,{size:10}),V.createElement(dt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(It,{size:4}),V.createElement(Lg,null,n,V.createElement(Bg,null),n),V.createElement(It,{size:12})))}i(hr,"QuoteSummarySkeleton");import{ChainToken as Ug,Divider as ec,NextIcon as nx,Skeleton as sa}from"@rango-dev/ui";import Le from"react";import{styled as yr}from"@rango-dev/ui";var Dg=yr("div",{display:"flex",alignItems:"start"}),$g=yr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Rl=yr("div",{display:"flex",alignItems:"center",flexGrow:1}),Fg=yr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Og=yr("div",{display:"flex",alignItems:"center"});function Ft(t){let{separator:e=!0}=t;return Le.createElement(Le.Fragment,null,Le.createElement(Og,null,Le.createElement(sa,{height:22,width:22,variant:"circular"}),Le.createElement(ec,{direction:"horizontal",size:8}),Le.createElement(sa,{height:15,width:148,variant:"rounded"})),Le.createElement(Dg,null,Le.createElement(xg,{hideSeparator:!e}),Le.createElement($g,{extraSpace:e},Le.createElement(Rl,null,Le.createElement(Ug,{size:"small",loading:!0}),Le.createElement(ec,{direction:"horizontal",size:8}),Le.createElement(sa,{height:12,variant:"rounded"})),Le.createElement(Fg,null,Le.createElement(nx,{color:"gray",size:16})),Le.createElement(Rl,null,Le.createElement(Ug,{size:"small",loading:!0}),Le.createElement(ec,{direction:"horizontal",size:8}),Le.createElement(sa,{height:12,variant:"rounded"})))))}i(Ft,"StepSkeleton");function Sr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Rt.createElement(wg,{expanded:o,rounded:e!=="basic"},Rt.createElement(hr,{type:e,tagHidden:n}),Rt.createElement(vg,null,Rt.createElement(ix,{height:15,variant:"rounded"})),o&&Rt.createElement(bg,null,Rt.createElement(rx,{size:24}),Rt.createElement(Ft,null),Rt.createElement(Ft,null),Rt.createElement(Ft,{separator:!1})))}i(Sr,"QuoteSkeleton");function zo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:d,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:m,inputUsdValue:C}=z()(),y=e?.outputAmount?new ax(e?.outputAmount):null,S=e?kt(e):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?la.createElement(Hl,null,la.createElement(Sr,{tagHidden:c,type:o,expanded:s})):w?la.createElement(Hl,{onClick:()=>l?.(e),id:d},la.createElement(Zl,{quote:e,error:r,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:h,input:{value:m,usdValue:C?.toString()??""},output:{value:y?.toString()??"",usdValue:S?.toString()??""}})):null}i(zo,"QuoteInfo");import{warn as px}from"@rango-dev/logging-core";import{calculatePendingSwap as ux}from"@rango-dev/queue-manager-rango-preset";import{useEffect as dx}from"react";import{useRef as sx,useState as lx}from"react";var cx=2e3;function ca({request:t}){let[e,o]=lx(!1),n=sx(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,cx)),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(ca,"useFetch");function zg(){let{fetch:t,loading:e,cancelFetch:o}=ca({request:async(n,r)=>await pt().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(zg,"useFetchConfirmQuote");function pa(t){if(!t.swaps)throw new Error(ne().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=tc(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(pa,"throwErrorIfResponseIsNotValid");function tc(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=Ai(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(tc,"getQuoteError");function Qg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=mn({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(Qg,"generateWarnings");function ua(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(ua,"handleQuoteErrors");function oc(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=z()(),{slippage:l,customSlippage:p}=k(),u=k().getDisabledLiquiditySources(),d=k().blockchains(),f=k().tokens(),{findToken:h}=k(),{swapMode:g}=Ct(),m=p||l,{fetch:C,cancelFetch:y,loading:S}=zg();return dx(()=>y,[]),{loading:S,fetch:i(async w=>{let v=w.selectedWallets,E=w?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let B=v.reduce((x,b)=>(x[b.chain]=b.address,x),{}),I={requestId:a?.requestId||"",selectedWallets:B,destination:E||void 0};try{return await C(I,!0).then(x=>{let{result:b}=x;if(!b)throw new Error(x.error??"Error fetching updated quote");pa({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let W={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};r(W);let A={slippage:m.toString(),disabledSwappersGroups:u},$=Qg({previousQuote:a??void 0,currentQuote:W,meta:{blockchains:d},selectedWallets:v,userSlippage:m,inputUsdValue:n,findToken:h});c();let U=!!$.balance,q=ux({inputAmount:o.toString(),bestRoute:b,wallets:qd(v),settings:A,validateBalanceOrFee:!U,meta:{blockchains:d,tokens:f},swapMode:g});return{quote:W,swap:q,error:null,warnings:$}})}catch(x){let b=ua(x);return b.type!==2&&px(new Error("confirm swap error"),{tags:{...b,type:Ze[b.type],initialQuote:a,requestBody:I}}),{swap:null,error:b,warnings:null}}},"fetch"),cancelFetch:y}}i(oc,"useConfirmSwap");var wx=hx("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Hg}`]:{width:"$48",height:"$48"}}),vx=ic({flexGrow:1,paddingRight:"$10"}),bx=ic({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),xx=ic({display:"flex",justifyContent:"space-between",alignItems:"center"});function qg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=z()(),s=Tx(),[c,l]=Cr(""),p=!n,[u,d]=Cr(!1),[f,h]=Cr(!1),{isActiveTab:g}=oe(),m=k().getDisabledLiquiditySources(),C=kx(m),{manager:y}=mx(),{fetch:S,loading:T,cancelFetch:w}=oc(),[v,E]=Cr({swap:null,error:null,warnings:null}),[B,I]=Cr(!1),x=i(async({selectedWallets:L,customDestination:Y})=>{let ee=await S?.({selectedWallets:L,customDestination:Y});return E(ee),ee},"onConfirmSwap"),b=i(async()=>{if(v.swap&&n)try{await y?.create("swap",{swapDetails:v.swap},{id:v.swap.requestId});let L=`../${O.swaps}/${v.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),W=i(async()=>{h(!0),await b(),h(!1)},"onConfirm"),A=i(async()=>{v.warnings?.quote&&Nd(v.warnings.quote)&&!a?I(!0):await W()},"onStartConfirmSwap"),$=i(async()=>{E({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(L=>{E(L)}).catch(L=>console.error(L))},"onRefresh");da(()=>{!!C.current.length&&!m.length&&$(),C.current=m},[m.length]),da(()=>{p&&w()},[p]),da(()=>{p&&d(p)},[p]),da(()=>{p||S({selectedWallets:o,customDestination:r}).then(L=>E(L)).catch(L=>console.error(L))},[]),Cx(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let U=v.warnings?.quote??null,q=v.error,j=[];if(c&&j.push(Oe.createElement(fx,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),U||q){let L=`../${O.settings}`;j.push(Oe.createElement(dr,{warning:U,error:q,couldChangeSettings:!1,refetchQuote:$,skipAlerts:q?.type===4||U?.type===2,showWarningModal:B,confirmationDisabled:!g,onOpenWarningModal:()=>I(!0),onCloseWarningModal:()=>I(!1),onConfirmWarningModal:async()=>{I(!1),await b()},onChangeSettings:()=>s(L)}))}return Oe.createElement(ie,{header:{title:nc.t("Confirm Swap"),onWallet:()=>{let L=`../${O.wallets}`;s(L)}},footer:Oe.createElement(wx,null,Oe.createElement("div",{className:vx()},Oe.createElement(gx,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||f,disabled:!!v.error||!g,onClick:A},nc.t("Start Swap"))),Oe.createElement(Hg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||f,disabled:!g,onClick:d.bind(null,!0)},Oe.createElement(Sx,{size:24})))},u&&Oe.createElement(Af,{open:u,onClose:()=>d(!1),onCancel:w,loading:T,onCheckBalance:x}),Oe.createElement(se,null,Oe.createElement("div",{className:xx()},Oe.createElement(yx,{variant:"title",size:"small"},nc.t("You get")),Oe.createElement("div",{className:bx()},Oe.createElement(_i,{onClick:!T&&!u&&!B?$:void 0}))),Oe.createElement(rc,{size:"12"}),bm(j.map((L,Y)=>({element:L,key:`alert-${Y}`})),Oe.createElement(rc,{size:10})),j.length>0?Oe.createElement(rc,{size:10}):null,Oe.createElement(zo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:v.error,loading:T,warning:v.warnings?.quote??null})))}i(qg,"ConfirmSwapPage");import{i18n as to}from"@lingui/core";import{Button as yc,CustomTokensZeroStateDarkIcon as Gx,CustomTokensZeroStateIcon as Vx,DeleteIcon as Kx,Divider as br,IconButton as jx,MessageBox as Xx,NotFound as Yx,styled as Cc}from"@rango-dev/ui";import fe,{useState as Sc}from"react";import{useNavigate as Zx}from"react-router-dom";import{CloseIcon as Ex,IconButton as Ix,SearchIcon as Ax,TextField as Nx}from"@rango-dev/ui";import An from"react";import{styled as Gg}from"@rango-dev/ui";var Vg=Gg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),Kg=Gg("div",{width:"100%","& ._text-field":{paddingLeft:"$10","& input":{paddingLeft:"$2",paddingTop:"$12",paddingBottom:"$12"}}});function At(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...d}=t,f=s.length?An.createElement(Ix,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},An.createElement(Ex,{color:"gray",size:10})):null;return p&&(f=p),An.createElement(Kg,null,An.createElement(Nx,{prefix:An.createElement(Vg,null,An.createElement(Ax,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d}))}i(At,"SearchInput");import{i18n as hc}from"@lingui/core";import{Button as Lx,CustomTokenWarning as Px,darkTheme as ih,Divider as eo,ExternalLinkIcon as _x,Image as Dx,ListItem as $x,NotFound as Fx,PinIcon as Ox,Skeleton as Qo,Typography as wr,VirtualizedList as Ux}from"@rango-dev/ui";import P,{useState as zx}from"react";import{useTranslation as Qx}from"react-i18next";import{Divider as nh,ListItem as Mx,Skeleton as Tr}from"@rango-dev/ui";import Nt from"react";import{css as Nn,darkTheme as ac,ImageContainer as Bx,ListItemButton as Wx,styled as at,Typography as jg}from"@rango-dev/ui";var sc=Nn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),lc=Nn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),cc=Nn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),pc=Nn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ac} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),uc=Nn({}),dc=Nn(),Xg=at("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),mc=at("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ma=at("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${lc}`]:{[`& .${pc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${uc}`]:{bottom:"-15px"},[`& .${sc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${cc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Yg=at(Wx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),fc=at("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),gc=at(jg,{}),Zg=at("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${dc}`]:{$$color:"$colors$neutral600",[`.${ac} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),kr=at("div",{display:"flex",alignItems:"end",flexDirection:"column"}),fV=at("div",{display:"flex",alignItems:"center"}),Jg=at("div",{position:"relative",[`& ${Bx}`]:{borderRadius:"$xm",overflow:"hidden"}}),Rg=at("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),eh=at(jg,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),th=at("a",{"& svg:hover":{color:"$colors$info"}}),oh=at("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":{[`.${ac} &`]:{color:"$foreground"}}}});function rh(t){return Nt.createElement(ma,null,Array.from(Array(t.size),e=>Nt.createElement(Mx,{key:e,hasDivider:!0,start:Nt.createElement(Tr,{variant:"circular",width:35,height:35}),end:Nt.createElement(kr,null,Nt.createElement(Tr,{variant:"text",size:"large",width:70}),Nt.createElement(nh,{size:4}),Nt.createElement(Tr,{variant:"text",size:"medium",width:50})),title:Nt.createElement("div",null,Nt.createElement(Tr,{variant:"text",size:"large",width:90}),Nt.createElement(nh,{size:4}),Nt.createElement(Tr,{variant:"text",size:"medium",width:90}))})))}i(rh,"LoadingTokenList");var Hx=20,qx=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return P.createElement("div",{className:lc()},o?P.createElement("div",{className:sc()},o):P.createElement(mc,{className:cc()},P.createElement(wr,{variant:"title",size:"xmedium"},r.symbol),P.createElement(eo,{direction:"horizontal",size:4}),P.createElement(fc,{css:a},P.createElement(gc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&P.createElement("div",{className:`${pc()} ${!o&&uc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",P.createElement(eo,{size:4,direction:"horizontal"}),P.createElement(th,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},P.createElement(_x,{size:12}))))},"renderDesc");function vr(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:d,fetchingWallets:f}=k(),{isTokenPinned:h}=k(),{setFromToken:g,setToToken:m}=z()(),{t:C}=Qx(),y=Xe(),[S,T]=zx(null),w=i(()=>{c==="source"?g({token:S,meta:{blockchains:u}}):m({token:S,meta:{blockchains:u}})},"updateToken"),v=i(()=>{w(),y()},"handleImportToken"),E=i(x=>{if(x.customToken){let{customToken:W,...A}=x;return P.createElement(Lx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(U=>{U.stopPropagation(),T({...A,warning:!0})},"handleClick")},P.createElement(wr,{variant:"body",size:"xsmall",color:"background"},C("import")))}let b=ii(d(x));return s?s(x):f?P.createElement(kr,null,P.createElement(Qo,{variant:"text",size:"large",width:70}),P.createElement(eo,{size:4}),P.createElement(Qo,{variant:"text",size:"medium",width:50})):b&&P.createElement(Zg,null,P.createElement(eh,{variant:"title",size:"small"},b.amount),P.createElement("div",null),b.usdValue&&P.createElement(wr,{variant:"body",className:dc(),size:"xsmall"},`$${b.usdValue}`))},"endRenderer"),B=i(()=>P.createElement(Ux,{itemContent:x=>{let b=e[x];if(b==="skeleton")return P.createElement($x,{hasDivider:!0,start:P.createElement(Qo,{variant:"circular",width:35,height:35}),end:P.createElement(kr,null,P.createElement(Qo,{variant:"text",size:"large",width:70}),P.createElement(eo,{size:4}),P.createElement(Qo,{variant:"text",size:"medium",width:50})),title:P.createElement("div",null,P.createElement(Qo,{variant:"text",size:"large",width:90}),P.createElement(eo,{size:4}),P.createElement(Qo,{variant:"text",size:"medium",width:90}))});let W=u.find(L=>L.name===b?.blockchain);if(!W||!b)return null;let A=b.address,$=al(W.color,"main"),U={$$color:$.main150,[`.${ih} &`]:{$$color:$.main750},backgroundColor:"$$color"},q={$$color:$.main750,[`.${ih} &`]:{$$color:$.main150},color:"$$color"},j=i(()=>{typeof b!="string"&&!b.customToken&&n?.(b)},"handleClick");return P.createElement(oh,null,P.createElement(Yg,{"tab-index":x,key:`${b.symbol}${A}`,id:`${b.symbol}${A}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:b?.customToken,onClick:j,start:P.createElement(Jg,null,P.createElement(Dx,{src:b.image===""?Xr:b.image,size:30}),t.type!=="custom-token"&&b&&h(b,t.type)&&P.createElement(Rg,null,P.createElement(Ox,{size:12,color:"gray"}))),title:W.type==="COSMOS"||b.name||!b.name&&!A?P.createElement(mc,null,P.createElement(wr,{variant:"title",size:"xmedium"},b.symbol),P.createElement(eo,{direction:"horizontal",size:4}),P.createElement(fc,{css:U},P.createElement(gc,{variant:"body",size:"xsmall",css:q},b.blockchain)),l&&b.warning&&P.createElement(P.Fragment,null,P.createElement(eo,{direction:"horizontal",size:4}),P.createElement(Px,{container:M()}))):void 0,description:typeof b!="string"&&W.info&&A&&W.type!=="COSMOS"?qx({address:A,token:b,customCssForTag:U,customCssForTagTitle:q,name:b.name,url:W.info.addressUrl.split("{wallet}").join(A)}):b.name||void 0,end:E(b)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),I=S?Eo(S?.blockchain,u):null;return P.createElement(P.Fragment,null,a&&P.createElement(P.Fragment,null,P.createElement(wr,{variant:"label",size:"large"},hc.t("Select Token")),P.createElement(eo,{size:4})),P.createElement(Xg,null,P.createElement(eo,{size:4}),p==="loading"&&P.createElement(rh,{size:Hx}),p==="success"&&(e.length?P.createElement(P.Fragment,null,P.createElement(nr,{token:S,address:S?.address??"",blockchain:I??void 0,onImport:v,onExitErrorModal:()=>T(null),onExitImportModal:()=>T(null)}),P.createElement(ma,{as:"ul"},B())):!!o&&P.createElement(Fx,{title:hc.t("No results found"),description:hc.t("Try using different keywords")}))))}i(vr,"TokenList");var Jx=Cc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Rx=Cc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),eE=Cc(jx,{"&:hover":{"& svg":{color:"$secondary550"}}});function ah(){let[t,e]=Sc(""),{deleteCustomToken:o}=k(),n=k().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=z()(),{mode:l}=po({}),p=Zx(),[u,d]=Sc(!1),[f,h]=Sc(),g=i(S=>{let T=S.target.value;e(T)},"handleSearch"),m=l==="dark",C=n.filter(S=>lt(S.symbol,t)||lt(S.address||"",t)||lt(S.name||"",t)),y=i(()=>{if(f){let S=a?yt(a):null,T=r?yt(r):null,w=yt(f);S===w?c({token:null}):T===w&&s({token:null}),o(f)}d(!1)},"handleDeleteCustomToken");return fe.createElement(ie,{header:{title:to.t("Custom Tokens")}},fe.createElement(se,null,fe.createElement(Jx,null,n.length?fe.createElement(fe.Fragment,null,fe.createElement(At,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:to.t("Search Token"),onChange:g}),fe.createElement(br,{size:16}),fe.createElement(vr,{list:C,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:S=>fe.createElement(eE,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(S)}},fe.createElement(Kx,{size:12,color:"gray"}))})):fe.createElement(Rx,null,fe.createElement(Yx,{icon:m?fe.createElement(Gx,{size:200}):fe.createElement(Vx,{size:200}),title:to.t("No custom tokens"),description:to.t("press the button to add your custom token")})),fe.createElement(br,{size:20}),fe.createElement(yc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(O.addCustomTokens)},to.t("Add Custom Token"))),fe.createElement(R,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:M()},fe.createElement(Xx,{title:to.t("Delete Custom Token"),type:"error",description:to.t("Are you sure you want to Delete this Token?")},fe.createElement(br,{size:40}),fe.createElement(br,{size:10}),fe.createElement(yc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},to.t("Yes, Delete it")),fe.createElement(br,{size:12}),fe.createElement(yc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},to.t("No, Continue"))))))}i(ah,"CustomTokensPage");import{i18n as Ue}from"@lingui/core";import{useManager as kE}from"@rango-dev/queue-manager-react";import{Button as Ec,darkTheme as TE,Divider as So,MessageBox as wE,NotFound as vE,styled as Ic,Tabs as bE,Typography as ha}from"@rango-dev/ui";import{TransactionStatus as Ar}from"rango-types";import te,{useMemo as xh,useState as Ir}from"react";import{useNavigate as xE}from"react-router-dom";import{FilterIcon as sE,Popover as lE}from"@rango-dev/ui";import Ho from"react";import{css as tE,darkTheme as fa,IconButton as oE,styled as xr}from"@rango-dev/ui";var kc=xr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${fa} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),sh=xr(oE,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${fa} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${fa} &`]:{backgroundColor:"$neutral"},[`& ${kc}::before`]:{backgroundColor:"$secondary100",[`.${fa} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),lh=xr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),ch=xr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),ph=tE({display:"flex",justifyContent:"space-between",alignItems:"center"}),uh=xr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as dh}from"@lingui/core";import{Button as nE,Divider as mh,ListItemButton as rE,Radio as iE,RadioRoot as aE,Typography as fh}from"@rango-dev/ui";import mt from"react";function gh(t){let{filterBy:e,onClickItem:o}=t;return mt.createElement(ch,null,mt.createElement("div",{className:ph()},mt.createElement(fh,{size:"small",variant:"body"},dh.t("Status")),mt.createElement(nE,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},dh.t("Reset"))),mt.createElement(mh,{size:10}),mt.createElement(aE,{value:e},mt.createElement(uh,null,t.list.map((n,r)=>mt.createElement(rE,{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:mt.createElement(mt.Fragment,null,mt.createElement(mh,{direction:"horizontal",size:4}),mt.createElement(fh,{size:"medium",variant:"body"},n.title)),start:mt.createElement(iE,{value:n.id}),onClick:o})))))}i(gh,"FilterSelectorContent");function Tc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Ho.createElement("div",null,Ho.createElement(lE,{open:a,align:"end",onOpenChange:o,container:M(),content:Ho.createElement(gh,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Ho.createElement(sh,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Ho.createElement(kc,{isSelect:!!n},Ho.createElement(sE,{size:16,color:"black"}),!!n&&Ho.createElement(lh,null)))))}i(Tc,"FilterSelector");import{i18n as uE}from"@lingui/core";import{getCurrentStep as dE}from"@rango-dev/queue-manager-rango-preset";import{Divider as kh,GroupedVirtualizedList as mE,Skeleton as fE,SwapListItem as Th,Typography as gE}from"@rango-dev/ui";import et,{useCallback as wh,useEffect as hE,useRef as yE,useState as SE}from"react";function hh(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(hh,"calculateGroupsSoFar");import{css as cE,darkTheme as pE,styled as Er}from"@rango-dev/ui";var wc=cE(),yh=Er("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),vc=Er("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${wc}`]:{$$color:"$colors$neutral600",[`.${pE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),bc=Er("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Sh=Er("div",{gap:"$10",display:"flex",flexDirection:"column"}),Ch=Er("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var CE=10;function xc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=SE([]),c=yE(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=wh(hh,[]),f=wh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,CE),s(d(p,c.current)))},[e.length]);if(hE(()=>{r||f()},[r,f]),r){let h=[1,2];return et.createElement(et.Fragment,null,[h,h].map((m,C)=>et.createElement(vc,{key:C},et.createElement(bc,null,et.createElement(fE,{variant:"text",width:60,size:"small"}),et.createElement(kh,{size:16})),et.createElement(kh,{size:4}),et.createElement(Sh,null,m.map((S,T)=>et.createElement(Th,{isLoading:!0,key:T}))))))}return et.createElement(mE,{endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>et.createElement(vc,null,et.createElement(bc,null,et.createElement(gE,{variant:"label",size:"medium",className:wc()},u[h]))),itemContent:(h,g)=>{let m=l[h];if(!m)return null;let C=dE(m),y=m.steps[0],S=m.steps[m.steps.length-1];return!y||!S?null:et.createElement(yh,{key:m.requestId},et.createElement(Th,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:C,tooltipContainer:M(),onlyShowTime:u[g]===uE.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:_(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:_(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(xc,"HistoryGroupedList");import{i18n as ga}from"@lingui/core";import vh from"dayjs";var bh=i(t=>{let e=new Map([["today",{title:ga.t("Today"),swaps:[]}],["week",{title:ga.t("This week"),swaps:[]}],["month",{title:ga.t("This month"),swaps:[]}],["year",{title:ga.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=vh();t.forEach(l=>{let p=Number(l.creationTime),u=vh(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 d=new Date(p).getFullYear().toString();o(d,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 EE=Ic("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),IE=Ic("div",{display:"flex",justifyContent:"center",alignItems:"center"}),AE=Ic("div",{"._typography":{color:"$neutral700",[`.${TE}&`]:{color:"$neutral900"}}}),NE=[{id:Ar.SUCCESS,title:Ue.t("Complete")},{id:Ar.RUNNING,title:Ue.t("Running")},{id:Ar.FAILED,title:Ue.t("Failed")}],BE=[{id:"all",title:Ue.t("All")},{id:"swap",title:Ue.t("Swap")},{id:"refuel",title:Ue.t("Refuel")}],WE=i((t,e)=>t?.length?t.filter(o=>Pt(o.fromBlockchain,e)||Pt(o.toBlockchain,e)||Pt(o.toSymbol,e)||Pt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Eh(){let t=xE(),{manager:e,state:o}=kE(),n=wt(e).map(({swap:E})=>E),[r,a]=Ir(""),[s,c]=Ir(!1),l=!o.loadedFromPersistor,[p,u]=Ir(""),[d,f]=Ir(!1),[h,g]=Ir("all"),m=i(E=>{let B=E.target.value;a(B)},"handleSearch"),{isMultiMode:C}=Ct(),y=xh(()=>!r&&!p&&h==="all"?n:n.filter(E=>{let{inputAmount:B,status:I,steps:x,requestId:b,mode:W}=E;return(!r||Pt(B,r)||Pt(I,r)||WE(x,r)||Pt(b,r))&&(!p||p===I)&&(h==="all"?!0:h==="swap"?!W||W==="swap":h==="refuel"?W==="refuel":!1)}),[n,r,p,h]),S=!y?.length&&!l,T=i(()=>f(!1),"onCloseModal"),w=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(E){console.log(E)}},"onClear"),v=xh(()=>!n.some(E=>E.status===Ar.SUCCESS||E.status===Ar.FAILED),[n]);return te.createElement(ie,{header:{title:Ue.t("History"),suffix:te.createElement(uo,null,te.createElement(Ec,{id:"widget-history-clear-btn",disabled:v,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},te.createElement(ha,{size:"medium",variant:"label",color:"error"},Ue.t("Clear"))))}},te.createElement(se,null,te.createElement(IE,null,te.createElement(At,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Ue.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:m,style:{height:36},value:r}),te.createElement(So,{size:10,direction:"horizontal"}),te.createElement(Tc,{filterBy:p,open:s,onOpenChange:E=>c(E),onClickItem:E=>u(E),list:NE})),te.createElement(So,{size:"16"}),C&&!l&&te.createElement(te.Fragment,null,te.createElement(bE,{items:BE,onChange:E=>g(E.id),value:h,type:"secondary"}),te.createElement(So,{size:"12"})),te.createElement(EE,null,S&&te.createElement(Ch,null,te.createElement(So,{size:32}),te.createElement(vE,{title:r?Ue.t("No results found"):Ue.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Ue.t("Try using different keywords"):Ue.t("Your transaction history is stored locally and will appear here after you start a swap")})),!S&&te.createElement(xc,{list:y,onSwapClick:t,groupBy:bh,isLoading:l}))),te.createElement(R,{open:d,onClose:T,id:"widget-history-clear-modal",container:M()},te.createElement(So,{size:20}),te.createElement(wE,{type:"warning",title:Ue.t("Clear Transaction History"),description:te.createElement(AE,null,te.createElement(ha,{variant:"body",size:"medium"},Ue.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),te.createElement(So,{size:"24"}),te.createElement(ha,{variant:"body",size:"small"},Ue.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),te.createElement(So,{size:30}),te.createElement(Ec,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:w},Ue.t("Yes, Clear the history")),te.createElement(So,{size:10}),te.createElement(Ec,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:T},te.createElement(ha,{variant:"title",size:"medium",color:"primary"},Ue.t("No, Cancel")))))}i(Eh,"HistoryPage");import{i18n as oy}from"@lingui/core";import{Button as mI,Divider as zc,styled as fI,WarningIcon as gI}from"@rango-dev/ui";import hI from"bignumber.js";import he,{useEffect as ny,useState as ry}from"react";import{useNavigate as yI}from"react-router-dom";import{i18n as Ah}from"@lingui/core";import{Alert as LE,Divider as Ac,NoRouteIcon as PE,Typography as _E}from"@rango-dev/ui";import qo from"react";import{styled as ME}from"@rango-dev/ui";var Ih=ME("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Nc(){let{fromToken:t,toToken:e}=z()();return!!t&&!!e&&Ht(t,e)?qo.createElement(Ih,null,qo.createElement(Ac,{size:10}),qo.createElement(PE,{size:24,color:"gray"}),qo.createElement(Ac,{size:4}),qo.createElement(_E,{variant:"title",size:"small"},Ah.t("No Routes Found")),qo.createElement(Ac,{size:4}),qo.createElement(LE,{title:Ah.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Nc,"SameTokensWarning");import{Alert as DE,Button as $E}from"@rango-dev/ui";import Bh from"react";import{i18n as ya}from"@lingui/core";function Nh(t){let e=null;return t===ci?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ya.t("Reset"),title:ya.t("Slippage cannot be set lower than 0.01%.")},e):t>tn?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ya.t("Change"),title:ya.t("Caution, your slippage is high!")},e):null}i(Nh,"makeAlerts");function Wh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=k(),{onChangeSettings:a}=t,c=Nh(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(li),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Bh.createElement(DE,{title:c.title,type:c.alertType,variant:"alarm",action:Bh.createElement($E,{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 QE}from"@lingui/core";import{IconButton as HE,ReverseIcon as qE,Skeleton as GE,Tooltip as VE,Typography as Nr}from"@rango-dev/ui";import ft from"react";import Sa from"bignumber.js";function Lh(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(Lh,"getSlippageColor");function Ph(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new Sa(e),r=new Sa(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(Ph,"getUsdExchangeRate");function _h(t,e){let o=new Sa(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,Sa.ROUND_DOWN).toFormat(2)}`}i(_h,"formatTokenValueInUsd");import{darkTheme as UE,styled as Wc,Typography as zE}from"@rango-dev/ui";var Dh=Wc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),$h=Wc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${UE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Mc=Wc(zE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Lc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=k(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:f}=po({}),h=rn(d),g=f==="dark",m=n==="default",C={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},S=p?.swaps[0]?.from||c,T=p?.swaps[p?.swaps.length-1]?.to||l,w=m?S:T,v=m?T:S,E=Number(m?p?.outputAmount:p?.requestAmount),B=Number(m?p?.requestAmount:p?.outputAmount),I=E||w.usdPrice,x=B||v.usdPrice,{rawValue:b,displayValue:W}=Ph({toTokenUsdPrice:x,fromTokenUsdPrice:I});return ft.createElement(Dh,null,ft.createElement(Nr,{variant:C||y?"label":"body",size:C||y?"medium":"small",color:Lh({error:C,warning:y,isDarkTheme:g})},QE.t("Slippage:")," ",d,"%"),u?ft.createElement(GE,{height:16,width:104,variant:"rounded"}):I&&x&&ft.createElement($h,null,ft.createElement(Nr,{className:"rate-text",variant:"body",size:"small"},"1"),ft.createElement(Mc,{className:"rate-text",variant:"body",size:"small"},v.symbol),ft.createElement(HE,{id:"widget-home-page-change-rate-button",onClick:r},ft.createElement(qE,{size:14,color:"secondary"})),ft.createElement(VE,{container:M(),side:"top",sideOffset:4,content:ft.createElement(Nr,{className:"rate-text",variant:"body",size:"small"},b)},ft.createElement(Nr,{className:"rate-text",variant:"body",size:"small"},W)),ft.createElement(Mc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&&ft.createElement(Nr,{color:"neutral600",variant:"body",size:"small"},"~",_h(Number(b),w.usdPrice))))}i(Lc,"SwapMetrics");import{i18n as JE}from"@lingui/core";import{Header as RE}from"@rango-dev/ui";import Co,{useEffect as eI,useState as tI}from"react";import{i18n as jE}from"@lingui/core";import{Divider as _c,FullExpandedQuote as XE,Typography as YE}from"@rango-dev/ui";import Te from"react";import{styled as Pc}from"@rango-dev/ui";var Fh=Pc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Oh=Pc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Uh=Pc("div",{width:"146px"});import{i18n as Br}from"@lingui/core";import{Select as KE}from"@rango-dev/ui";import zh from"react";function Ca(t){let{updateQuotePartialState:e,sortStrategy:o}=z()(),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 zh.createElement(Uh,null,zh.createElement(KE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Ca,"SelectStrategy");var Qh=3;function Wr(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:d,toToken:f,sortStrategy:h,error:g}=z()(),{slippage:m,customSlippage:C}=k(),{findToken:y}=k(),S=c||M(),T=!!p&&p.results.length,w=C??m,v=i(I=>{if(!d||!f||!p)return null;let x={requestAmount:p.requestAmount,validationStatus:null,...I};return mn({currentQuote:x,userSlippage:w,findToken:y})},"getQuoteWarning"),E=g?.type===0||g?.type===1,B=p?.results?Ei(h,p?.results):[];return Te.createElement(Te.Fragment,null,a&&Te.createElement(Te.Fragment,null,Te.createElement(Oh,null,Te.createElement(YE,{size:"xmedium",variant:"title"},jE.t("Sort by")),Te.createElement(Ca,{container:S})),Te.createElement(_c,{size:"10"})),e&&Array.from({length:Qh},(I,x)=>Te.createElement(Te.Fragment,{key:x},s?Te.createElement(XE,{loading:!0}):Te.createElement(Sr,{tagHidden:!1,type:"list-item",expanded:!1}),x!==Qh-1&&Te.createElement(_c,{size:16}))),!e&&Te.createElement(Te.Fragment,null,T?B.map((I,x)=>{let b=v(I),W=tc(I.swaps),A=B.length-1===x;return Te.createElement(Te.Fragment,{key:I.requestId},Te.createElement(zo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:S,selected:l?.requestId===I.requestId,tagHidden:!1,quote:{...I,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:W?.options||null,warning:b,fullExpandedMode:s,onClick:$=>{W||u("warning",b),u("error",W?.options||null),o($)},type:"list-item"}),!A&&Te.createElement(_c,{size:16}))}):E&&Te.createElement(Fh,null,Te.createElement(cr,{size:s?"large":"small",error:g,fetch:n}))))}i(Wr,"Quotes");import{darkTheme as ZE,styled as Hh}from"@rango-dev/ui";var qh=Hh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${ZE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Gh=Hh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var oI=100;function Dc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=tI(!1),l=s?"":"is-hidden",{config:p}=k(),u=p?.variant==="full-expanded",d=Ao();return eI(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},oI):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Co.createElement(qh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Oi()} widget-expanded-quotes-container`,id:ot.EXPANDED_BOX_ID},Co.createElement(RE,{title:JE.t("Routes"),suffix:Co.createElement(Co.Fragment,null,Co.createElement(Ca,{container:d}),Co.createElement(Fo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Co.createElement(Gh,null,Co.createElement(Wr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:Ao(),onClickOnQuote:n,fullExpandedMode:u})))}i(Dc,"ExpandedQuotes");import{i18n as Jh}from"@lingui/core";import{SwapInput as Rh}from"@rango-dev/ui";import aI from"bignumber.js";import Mr from"react";import{ReverseIcon as iI}from"@rango-dev/ui";import Fc from"react";import{keyframes as nI,styled as Vh}from"@rango-dev/ui";var $c=450,rI=nI({"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)"}}),Kh=Vh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),jh=Vh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${rI} ${$c}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 Oc(){let t=z().use.switchFromAndTo();return Fc.createElement(Kh,null,Fc.createElement(jh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},$c),t()}},Fc.createElement(iI,{size:12})))}i(Oc,"SwitchFromAndToButton");import{styled as Xh}from"@rango-dev/ui";var Yh=Xh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Zh=Xh("div",{position:"relative"});function Uc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:d,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:m}=z()(),{swapMode:C}=Ct(),{connectedWallets:y,getBalanceFor:S}=k(),T=a?S(a):null,w=ii(T)?.amount??"0",v=T?new aI(T.amount).shiftedBy(-T.decimals):ce,E=!!s&&vu(y,s.name),B=!Qs(m,d,f),I=!Qs(m,d,g),x=!f||!g||!g.gt(0)?null:Kt(f.toString(),g.toString());return Mr.createElement(Yh,null,Mr.createElement(Zh,null,Mr.createElement(Rh,{label:Jh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:w,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:B?void 0:_(f,4,4),realUsdValue:B?void 0:f?.toString(),error:B?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:E,tooltipContainer:M(),onSelectMaxBalance:()=>{let b=_(v,T?.decimals),W=T?.amount?b.split(",").join(""):"";p(W)},anyWalletConnected:y.length>0}),C==="swap"&&Mr.createElement(Oc,null)),Mr.createElement(Rh,{selectionType:C==="swap"?"token":"chain",sharpBottomStyle:!r&&(!!m||e),label:Jh.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:_(Kt(f,g),2,2),warningLevel:jt(x??0),price:{value:_(h,6,6),usdValue:I?void 0:_(g,4,4),realValue:h?.toString(),realUsdValue:I?void 0:g?.toString(),error:I?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:M()}))}i(Uc,"Inputs");import{warn as sI}from"@rango-dev/logging-core";import{useCallback as lI,useEffect as cI,useRef as pI,useState as uI}from"react";function ey(){let{fetch:t,loading:e,cancelFetch:o}=ca({request:async(n,r)=>await pt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(ey,"useFetchAllQuotes");var dI=600;function ka({refetchQuote:t}){let{fetch:e,cancelFetch:o}=ey(),{excludeLiquiditySources:n,routing:r}=k().config,{connectedWallets:a}=k(),c=a.some(ue=>ue.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:f,sortStrategy:h,resetQuote:g,error:m,warning:C,setSelectedQuote:y,updateQuotePartialState:S}=z()(),{slippage:T,customSlippage:w,affiliatePercent:v,affiliateRef:E,affiliateWallets:B,fetchStatus:I}=k(),x=k().getLiquiditySources(),b=k().getDisabledLiquiditySources(),W=k().excludeLiquiditySources(),{findToken:A}=k(),[$,U]=uI(!0),q=pI(u),j=w??T,Y=!l||!p||Ht(l,p)||!On(u),ee=i(ue=>{U(ue)},"resetState"),Z=i(ue=>{let{fromToken:we,toToken:ve,inputAmount:qe,liquiditySources:Ae,excludeLiquiditySources:D,disabledLiquiditySources:N,slippage:G,affiliateRef:ae,affiliatePercent:K,affiliateWallets:X}=ue;if($||ee(!0),!Y&&we&&ve){g();let Ge=Hd({fromToken:we,toToken:ve,inputAmount:qe,liquiditySources:Ae,excludeLiquiditySources:D,disabledLiquiditySources:N,wallets:a,slippage:G,affiliateRef:ae,affiliatePercent:K,affiliateWallets:X,contractCall:c});nn("experimental",r)&&(Ge.experimental=!0),nn("avoidNativeFee",r)&&(Ge.avoidNativeFee=!0),nn("enableCentralizedSwappers",r)&&(Ge.enableCentralizedSwappers=!0),r?.maxLength&&(Ge.maxLength=r.maxLength),e(Ge).then(Ve=>{let be=Ei(h,Ve.results),Mt=Wd(f,be,Ve.requestAmount);U(!1),S("quotes",Ve),y(Mt),pa({diagnosisMessages:Ve.diagnosisMessages,requestId:Mt?.requestId||"",swaps:Mt?.swaps});let Ya=Mt&&mn({currentQuote:Mt,userSlippage:j,findToken:A});S("warning",Ya)}).catch(Ve=>{let be=ua(Ve);(be.type===0||be.type===1)&&g(),be.type!==2&&(S("error",be),U(!1),sI(new Error("quote error"),{tags:{...be,type:Ze[be.type],requestBody:Ge}}))})}},"fetch"),le=lI(Jr(ue=>{Z(ue)},dI),[Y]);return cI(()=>{if(!t){U(!1);return}if(I!=="success")return;if(Y){U(!1),(f||m||C)&&g();return}if(!On(u)&&d?.eq(0)){ee(!1),o();return}g(),ee(!0);let ue=Z;return q.current&&q.current!=u&&(ue=le),q.current=u,ue({inputAmount:u,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:W,disabledLiquiditySources:b,slippage:j,affiliateRef:E,affiliatePercent:v,affiliateWallets:B,contractCall:c}),o},[I,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,Y,x?.length,n,b.length,j,E,v,c,JSON.stringify(B)]),{fetch:()=>Z({inputAmount:u,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:W,disabledLiquiditySources:b,slippage:j,affiliateRef:E,affiliatePercent:v,affiliateWallets:B,contractCall:c}),loading:$}}i(ka,"useSwapInput");function ty(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(ty,"emitPreventableEvent");var SI=fI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),CI=300;function iy(){let t=yI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:f}=z()(),[h,g]=ry(!1),{isLargeScreen:m,isExtraLargeScreen:C}=yn(),{fetch:y,loading:S}=ka({refetchQuote:a}),{config:T,fetchStatus:w,connectedWallets:v,customSlippage:E,slippage:B,setSlippage:I,setCustomSlippage:x}=k(),{isActiveTab:b}=oe(),[W,A]=ry(!1),$=E!==null?E:B,{swapMode:U}=Ct(),q=rn($),L=Od({fetchMetaStatus:w,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:v.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),Y=Bu(m,C,T?.variant),ee=!!n&&!!e&&!!o&&new hI(n).gt(0)&&!Yd(e,o),Z=ee&&w==="success"&&S,le=q?.quoteValidation||c,ve=(!Y||Y&&l?.results.length)&&(le||s),qe=!!e&&!!o,Ae=qe&&!!q,D=(r||s)&&!W?y:void 0,N=i(X=>{Y&&h?(g(!1),setTimeout(()=>{t(X)},CI)):t(X)},"onHandleNavigation"),G=i(X=>{r?.requestId!==X.requestId&&(A(!1),p(X))},"onClickOnQuote"),ae=i(X=>{if(X){if(si.includes(X)){I(X),x(null);return}x(X)}},"onChangeSlippage"),K=i(X=>{N(X==="from"?O.fromSwap:U==="swap"?O.toSwap:O.toSwap+"/"+O.blockchains)},"handleInputTokenClick");return ny(()=>{u(),f("refetchQuote",!0)},[]),ny(()=>{g(ee)},[ee]),he.createElement(SI,null,he.createElement(ie,{height:"auto",footer:he.createElement(mI,{id:`widget-swap-${L.action}-btn`,type:"primary",size:"large",disabled:L.disabled||!b,prefix:L.action==="confirm-warning"&&he.createElement(gI,null),fullWidth:!0,onClick:()=>{L.action==="connect-wallet"?ty({type:"clickConnectWallet"},()=>N(O.wallets)):L.action==="confirm-warning"?A(!0):N(O.confirmSwap)}},L.title),header:{onWallet:()=>{N(O.wallets)},hasBackButton:!1,title:T.title||(U==="swap"?oy.t("Swap"):oy.t("Refuel")),suffix:he.createElement(Fo,{hidden:Y?["refresh"]:void 0,onClickRefresh:D,onClickHistory:()=>N(O.swaps),onClickSettings:()=>{N(O.settings)}})}},he.createElement(se,null,he.createElement(Uc,{fetchingQuote:Z,fetchMetaStatus:w,isExpandable:Y,onClickToken:K}),he.createElement(zc,{size:"2"}),Y?null:he.createElement(zo,{quote:r,loading:Z,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:le,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),N(O.routes)}:void 0}),qe&&he.createElement(he.Fragment,null,he.createElement(zc,{size:8}),he.createElement(Lc,{quoteError:s,quoteWarning:le,fromToken:e,toToken:o,quote:r,loading:Z})),ve?he.createElement(he.Fragment,null,he.createElement(dr,{warning:le,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:y,showWarningModal:W,confirmationDisabled:!b,onOpenWarningModal:()=>A(!0),onCloseWarningModal:()=>A(!1),onChangeSlippage:ae,onConfirmWarningModal:()=>{A(!1),d(!0),N(O.confirmSwap)},onChangeSettings:()=>N(O.settings)})):null,Ae&&he.createElement(he.Fragment,null,he.createElement(zc,{size:"10"}),he.createElement(Wh,{onChangeSettings:()=>N(O.settings)})),he.createElement(Nc,null))),Y?he.createElement(Dc,{loading:Z,onClickOnQuote:G,fetch:y,onClickRefresh:D,isVisible:h}):null)}i(iy,"Home");import{i18n as ay}from"@lingui/core";import{Alert as kI,Divider as TI,List as wI,ListItemButton as vI,Radio as bI,RadioRoot as xI,Typography as EI}from"@rango-dev/ui";import Ot from"react";function ko(){let{setLanguage:t,language:e,config:o}=k(),n=$u,r=o?.language||an;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||an),resetLanguage:()=>t(null)}}i(ko,"useLanguage");function sy(){let{activeLanguage:t,changeLanguage:e,languages:o}=ko(),n=Xe(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Ot.createElement(EI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Ot.createElement(bI,{value:s}),start:Ot.createElement(l,null)}});return Ot.createElement(ie,{header:{title:ay.t("Language")}},Ot.createElement(se,null,Ot.createElement(kI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Ot.createElement(TI,{size:"8"}),Ot.createElement(xI,{value:t},Ot.createElement(wI,{type:Ot.createElement(vI,{title:ay.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(sy,"LanguagePage");import{i18n as oo}from"@lingui/core";import{Button as WI,Checkbox as MI,Image as LI,ListItemButton as PI,NotFound as _I,Typography as DI}from"@rango-dev/ui";import tt,{useState as $I}from"react";import{Checkbox as NI,Skeleton as cy}from"@rango-dev/ui";import Pr from"react";import{styled as Qc}from"@rango-dev/ui";var Lr=Qc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Hc=Qc("div",{width:80,display:"flex",justifyContent:"flex-end"}),qc=Qc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as II,styled as AI}from"@rango-dev/ui";var ly=AI(II,{height:61});var BI=30;function Gc(){return Pr.createElement(Lr,null,Array.from(Array(BI),(t,e)=>Pr.createElement(ly,{hasDivider:!0,key:e,start:Pr.createElement(cy,{variant:"circular",width:35,height:35}),title:Pr.createElement(cy,{variant:"text",size:"large",width:90}),end:Pr.createElement(NI,{checked:!1})})))}i(Gc,"LoadingLiquiditySourceList");function Vc({sourceType:t}){let e=k().fetchStatus,o=k().swappers(),n=k().getDisabledLiquiditySources(),[r,a]=$I(""),s=k().toggleLiquiditySource,c=k().isInCampaignMode(),l=pi(o,n),p={Exchanges:oo.t("Exchanges"),Bridges:oo.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(y=>u.includes(y.type)),f=d.length===d.filter(y=>y.selected).length,h=i(()=>{d.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=d.map(y=>{let{selected:S,groupTitle:T,logo:w,id:v,...E}=y;return{id:`widget-setting-liquidity-source-${uu(v.toLowerCase())}-item-btn`,start:tt.createElement(LI,{src:w,size:22,type:"circular"}),onClick:()=>{c||s(T)},end:tt.createElement(MI,{checked:S,disabled:c}),title:tt.createElement(DI,{variant:"title",size:"xmedium"},oo.t(T)),selected:S,groupTitle:T,logo:w,...E}}),m=i(y=>{let S=y.target.value;a(S)},"handleSearch"),C=g;return r&&(C=g.filter(y=>Pt(y.groupTitle,r))),tt.createElement(ie,{header:{title:oo.t(t),suffix:tt.createElement(Hc,null,tt.createElement(WI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},f?oo.t("Deselect all"):oo.t("Select all")))}},tt.createElement(se,{view:!0},tt.createElement(At,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:oo.t("Search {sourceType}",{sourceType:p[t]}),onChange:m}),e==="loading"&&tt.createElement(Gc,null),!C.length&&r?tt.createElement(qc,null,tt.createElement(_I,{title:oo.t("No results found"),description:oo.t("Try using different keywords")})):e==="success"&&tt.createElement(Lr,{disabled:c,className:"widget-liquidity-source-list"},C.map(y=>{let{groupTitle:S,...T}=y;return tt.createElement(tt.Fragment,{key:y.id},tt.createElement(PI,{style:{height:"61px"},...T,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Vc,"LiquiditySourcePage");import{i18n as FI}from"@lingui/core";import Ta from"react";import{useNavigate as OI}from"react-router-dom";function py(){let t=OI(),e=Xe(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=z()(),{fetch:c,loading:l}=ka({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${O.settings}`,d=`../${O.wallets}`;return Ta.createElement(ie,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:FI.t("Routes"),suffix:Ta.createElement(Fo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Ta.createElement(se,null,Ta.createElement(Wr,{fetch:c,loading:l,onClickOnQuote:p})))}i(py,"RoutesPage");import{i18n as yy}from"@lingui/core";import{Divider as Sy,getCategoriesCount as XI,SelectableCategoryList as YI}from"@rango-dev/ui";import no,{useState as Cy}from"react";import{useNavigate as ZI}from"react-router-dom";import{i18n as Kc}from"@lingui/core";import{Divider as HI,Image as qI,ListItemButton as GI,NotFound as VI,Typography as hy}from"@rango-dev/ui";import gt,{useEffect as KI,useState as jI}from"react";var uy=i((t,e,o)=>t.filter(n=>Rr(n.type,o)).filter(n=>lt(n.name,e)||lt(n.displayName,e)),"filterBlockchains");import{ImageContainer as UI,styled as dy}from"@rango-dev/ui";var my=dy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),wa=dy(bl,{padding:0,margin:0,listStyle:"none",[`& ${UI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as zI,Skeleton as fy}from"@rango-dev/ui";import va from"react";var QI=20;function gy(){return va.createElement(wa,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(QI),t=>va.createElement(zI,{key:t,hasDivider:!0,start:va.createElement(fy,{variant:"circular",width:35,height:35}),title:va.createElement(fy,{variant:"text",size:"large",width:90})})))}i(gy,"LoadingBlockchainList");function jc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=jI(e),{fetchStatus:l}=k();KI(()=>{c([...uy(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?gt.createElement(VI,{title:Kc.t("No results found"),description:Kc.t("Try using different keywords")}):gt.createElement(wa,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>gt.createElement(GI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:gt.createElement(qI,{src:u.logo,size:30}),title:gt.createElement(hy,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return gt.createElement(gt.Fragment,null,a&>.createElement(gt.Fragment,null,gt.createElement(hy,{variant:"label",size:"large"},Kc.t("Select Chain")),gt.createElement(HI,{size:4})),gt.createElement(my,null,l==="loading"&>.createElement(gy,null),l==="success"&&p()))}i(jc,"BlockchainList");function ba(t){let{type:e}=t,o=Xe(),[n,r]=Cy(""),[a,s]=Cy("ALL"),c=z().use.setToBlockchain(),l=z().use.setFromBlockchain(),p=z().use.setToToken(),{fetchStatus:u,findNativeToken:d}=k(),f=ZI(),{swapMode:h}=Ct(),g=k().blockchains({type:e}),m=XI(g),C=!t.hideCategory&&m!==1,y=i(S=>{if(e==="custom-token")f(`..?blockchain=${S.name}`,{replace:!0});else{if(e==="source")l(S);else if(h==="swap")c(S);else{let T=d(S);T&&p({token:T,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return no.createElement(ie,{header:{title:yy.t("Select Chain")}},no.createElement(se,{view:!0},C&&no.createElement(no.Fragment,null,no.createElement(YI,{setCategory:s,category:a,blockchains:g,isLoading:u==="loading"}),no.createElement(Sy,{size:24})),no.createElement(At,{value:n,autoFocus:!0,placeholder:yy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:S=>r(S.target.value)}),no.createElement(Sy,{size:16}),no.createElement(jc,{list:g,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:y})))}i(ba,"SelectBlockchainPage");import{i18n as Ia}from"@lingui/core";import{Divider as Ey,Spinner as dA}from"@rango-dev/ui";import To,{useEffect as mA,useState as fA}from"react";import{useNavigate as gA}from"react-router-dom";import{i18n as Zc}from"@lingui/core";import{BlockchainsChip as xa,Divider as vy,Image as by,Skeleton as nA,Tooltip as rA,Typography as Jc}from"@rango-dev/ui";import xe from"react";import{useEffect as eA}from"react";var ky=["ETH","COSMOS","OSMOSIS"];function Xc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(JI),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(RI(s)),r=n.splice(a)}return{list:n,more:r}}i(Xc,"prepare");function JI(t,e){let o=ky,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(JI,"sortByMostUsedBlockchains");function RI(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(RI,"generateSortByPreferredBlockchainsFor");function Ty(t,e){return!!e.list.find(o=>o.name===t)}i(Ty,"isInVisibleList");function Yc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=k();eA(()=>{if(e?.selected){let a=Xc(t,o,e);Ty(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Xc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Yc,"usePrepareBlockchainList");import{styled as tA}from"@rango-dev/ui";var wy=tA("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var iA=6,aA=12;function Rc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=Yc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=k(),p=z().use.resetToBlockchain(),u=z().use.resetFromBlockchain(),d=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&d;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(vy,{size:12}),xe.createElement(Jc,{variant:"label",size:"large"},Zc.t("Select Chain"))),xe.createElement(vy,{size:12}),xe.createElement(wy,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?iA:aA),(m,C)=>xe.createElement(nA,{key:C,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(xa,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(Jc,{variant:"body",size:"xsmall",color:"secondary500"},Zc.t("All"))),c.list.map(m=>xe.createElement(rA,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:M()},xe.createElement(xa,{className:"widget-blockchains-section-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},xe.createElement(by,{src:m.logo,size:30})))),h?xe.createElement(xa,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(by,{src:f.logo,size:30})):null,g?xe.createElement(xa,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(Jc,{variant:"body",size:"xsmall",color:"secondary500"},Zc._("More +{count}",{count:c.more.length}))):null)))}i(Rc,"BlockchainsSection");import{useCallback as lA,useRef as cA,useState as ep}from"react";function tp(){let t=k().blockchains(),e=cA(null),{customTokens:o}=k(),[n,r]=ep(!1),[a,s]=ep([]),[c,l]=ep(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await pt().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(S=>Gt(S))),C=new Set(t.map(S=>S.name)),y=g.tokens.filter(S=>C.has(S.blockchain)&&!m.has(Gt(S)));s(y),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=lA(Jr((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(tp,"useSearchCustomTokens");function Ea(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(Ea,"shouldSearchForCustomTokens");function xy(t,e,o,n,r){let a=[...t];return Ea(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(xy,"prepareTokensList");function Aa(t){let{type:e}=t,o=gA(),n=Xe(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=z()(),{getBalanceFor:u}=k(),{fetch:d,loading:f,tokens:h,cancel:g}=tp(),[m,C]=fA(""),y=e==="source"?r:a,S=y?.name??"",T=k().blockchains({type:e}),w=k().tokens({type:e,blockchain:S,searchFor:m,getBalanceFor:u}),v=xy(w,h,m,f,y?.name),E=i(x=>{e==="source"?l(x):p(x)},"updateBlockchain"),B=i(x=>{e==="source"?s({token:x,meta:{blockchains:T}}):c({token:x,meta:{blockchains:T}})},"updateToken"),I={source:Ia.t("Source"),destination:Ia.t("Destination")};return mA(()=>(Ea(w,m,y?.name)&&d(m,y?.name??void 0),()=>{g()}),[w.length,m,y?.name]),To.createElement(ie,{header:{title:Ia.t("Swap {type}",{type:I[e]})}},To.createElement(se,null,To.createElement(Rc,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(O.blockchains),onChange:x=>{E(x)}}),To.createElement(Ey,{size:24}),To.createElement(At,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:Ia.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>C(""),onChange:x=>C(x.target.value),suffix:Ea(w,m,y?.name)&&f?To.createElement(dA,{size:12,color:"secondary"}):void 0}),To.createElement(Ey,{size:16}),To.createElement(vr,{list:v,selectedBlockchain:S,searchedFor:m,type:e,onChange:x=>{B(x);let b=T.find(W=>x.blockchain===W.name);b&&E(b),n()}})))}i(Aa,"SelectSwapItemsPage");import{i18n as ip}from"@lingui/core";import{Alert as QA,Button as HA,styled as qA}from"@rango-dev/ui";import Go from"react";import{useInRouterContext as GA,useSearchParams as VA}from"react-router-dom";import{i18n as My}from"@lingui/core";import{Alert as CA,Divider as np,InfoIcon as kA,SlippageIcon as TA,TextField as wA,Tooltip as vA,Typography as Ly}from"@rango-dev/ui";import Qe from"react";import{Chip as hA,styled as _r,TextField as yA}from"@rango-dev/ui";var Iy=_r("div",{paddingTop:"$5",padding:"$10 $5"}),Ay=_r("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${yA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),Ny=_r("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Na=_r("div",{maxWidth:"280px",padding:"$10"}),By=_r(hA,{width:"61px",flexShrink:0});import{i18n as op}from"@lingui/core";import{Typography as SA}from"@rango-dev/ui";import Dr from"react";function Wy(){return Dr.createElement(Na,null,Dr.createElement(SA,{variant:"label",size:"medium",color:"neutral700"},op.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Dr.createElement("br",null),Dr.createElement("br",null),Dr.createElement("b",null,op.t("Warning")),":\xA0",op.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(Wy,"SlippageTooltipContent");function rp(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=k(),r=o!==null?rn(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let d=u;u>Hn&&(d=Hn),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;mu(u)||(p.value=u.slice(0,-1))},"onInput");return Qe.createElement(Iy,null,Qe.createElement(Ny,null,Qe.createElement(TA,{size:16,color:"gray"}),Qe.createElement(np,{direction:"horizontal",size:4}),Qe.createElement(Ly,{variant:"title",size:"xmedium"},My.t("Slippage tolerance per swap")),Qe.createElement(np,{direction:"horizontal",size:4}),Qe.createElement(vA,{container:M(),side:"top",sideOffset:4,content:Qe.createElement(Wy,null)},Qe.createElement(kA,{color:"gray"}))),Qe.createElement(Ay,null,si.map((l,p)=>{let u=`slippage-${p}`;return Qe.createElement(By,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),Qe.createElement(wA,{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&&Qe.createElement(Ly,{variant:"body",size:"small"},"%"),placeholder:My.t("Custom")})),r&&Qe.createElement(Qe.Fragment,null,Qe.createElement(np,{size:10}),Qe.createElement(CA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(rp,"Slippage");import{i18n as vt}from"@lingui/core";import{AutoThemeIcon as Py,BridgesIcon as bA,ChevronRightIcon as Ba,DarkModeIcon as _y,Divider as $r,ExchangeIcon as xA,InfinityIcon as EA,InfoIcon as IA,LanguageIcon as AA,LightModeIcon as Dy,List as NA,ListItem as BA,ListItemButton as WA,Skeleton as MA,styled as LA,Switch as PA,Tabs as _A,TargetIcon as DA,Tooltip as $A,Typography as st}from"@rango-dev/ui";import F from"react";import{useNavigate as FA}from"react-router-dom";var OA=LA("div",{width:"202px",height:"$40"}),UA=[{id:"light",icon:F.createElement(Dy,{color:"black",size:24}),tooltip:F.createElement(st,{size:"xsmall",variant:"body"},vt.t("Light"))},{id:"dark",icon:F.createElement(_y,{color:"black",size:24}),tooltip:F.createElement(st,{size:"xsmall",variant:"body"},vt.t("Dark"))},{id:"auto",icon:F.createElement(Py,{color:"black",size:24}),tooltip:F.createElement(st,{size:"xsmall",variant:"body"},vt.t("Auto"))}],zA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return F.createElement(Py,{...e});case"dark":return F.createElement(_y,{...e});default:return F.createElement(Dy,{...e})}},"getThemeIcon");function $y(){let t=FA(),{theme:e}=k().config,{setTheme:o,theme:n}=k(),{activeLanguage:r,languages:a}=ko(),s=a.find(L=>L.local===r)?.label,c=k().fetchStatus,l=k().swappers(),p=k().getDisabledLiquiditySources(),{config:{features:u}}=k(),d=k().customTokens(),f=nt("theme",u),h=nt("liquiditySource",u),g=nt("language",u),m=nt("customTokens",u),C=k().infiniteApprove,y=k().toggleInfiniteApprove,S=pi(l,p),T=S.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),w=T.length,v=T.filter(L=>L.selected).length,E=S.filter(L=>L.type==="DEX"),B=E.length,I=E.filter(L=>L.selected).length,x=i((L,Y)=>{switch(c){case"loading":return F.createElement(MA,{variant:"text",size:"medium",width:50});case"failed":return F.createElement(st,{variant:"body",size:"medium",color:"$error500"},vt.t("Loading failed"));default:return F.createElement(st,{variant:"body",size:"medium"},`${L} / ${Y}`)}},"handleSwapperEndItem"),b={id:"widget-setting-bridge-item-btn",title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Bridges")),end:F.createElement(F.Fragment,null,x(v,w),F.createElement($r,{direction:"horizontal",size:8}),F.createElement(Ba,{color:"black"})),onClick:()=>t(O.bridges),start:F.createElement(bA,{color:"gray",size:16})},W={id:"widget-setting-exchange-item-btn",title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Exchanges")),end:F.createElement(F.Fragment,null,x(I,B),F.createElement($r,{direction:"horizontal",size:8}),F.createElement(Ba,{color:"black"})),start:F.createElement(xA,{color:"gray",size:16}),onClick:()=>t(O.exchanges)},A={id:"widget-setting-custom-tokens-item-btn",title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Custom Tokens")),end:F.createElement(F.Fragment,null,F.createElement(st,{variant:"body",size:"medium"},`${d.length}`),F.createElement($r,{direction:"horizontal",size:8}),F.createElement(Ba,{color:"black"})),start:F.createElement(DA,{color:"gray",size:16}),onClick:()=>t(O.customTokens)},$={id:"widget-setting-language-item-btn",title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Language")),start:F.createElement(AA,{color:"gray",size:16}),end:F.createElement(F.Fragment,null,F.createElement(st,{variant:"body",size:"medium"},s),F.createElement($r,{direction:"horizontal",size:8}),F.createElement(Ba,{color:"black"})),onClick:()=>t(O.languages)},U={id:"widget-setting-infinite-approval-item-btn",title:F.createElement(F.Fragment,null,F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Infinite approval")),F.createElement($r,{direction:"horizontal",size:4}),F.createElement($A,{side:"top",sideOffset:4,container:M(),content:F.createElement(Na,null,F.createElement(st,{variant:"label",size:"medium",color:"neutral700"},F.createElement("b",null,vt.t("Warning")),":\xA0",vt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},F.createElement(IA,{color:"gray"}))),start:F.createElement(EA,{color:"gray",size:16}),end:F.createElement(PA,{checked:C}),onClick:y},q={id:"widget-setting-theme-item-btn",type:F.createElement(BA,null),title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Theme")),end:F.createElement(OA,null,F.createElement(_A,{container:M(),items:UA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:zA(n)},j=h?[]:[b,W];return m||j.push(A),g||j.push($),j.push(U),!e?.singleTheme&&!f&&j.push(q),F.createElement(NA,{type:F.createElement(WA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:j})}i($y,"SettingsLists");var KA=qA("div",{paddingLeft:"$8"});function Fy(){let{isInCampaignMode:t,updateCampaignMode:e}=k(),o=t(),[,n]=VA(),r=GA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Go.createElement(ie,{header:{title:ip.t("Settings")}},Go.createElement(se,null,o&&Go.createElement(QA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:ip.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:Go.createElement(KA,null,Go.createElement(HA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},ip.t("Reset")))}),Go.createElement(rp,null),Go.createElement($y,null)))}i(Fy,"SettingsPage");import{i18n as o0}from"@lingui/core";import{cancelSwap as n0}from"@rango-dev/queue-manager-rango-preset";import{useManager as r0}from"@rango-dev/queue-manager-react";import{Alert as i0}from"@rango-dev/ui";import Tp from"react";import{useParams as a0}from"react-router-dom";import{i18n as zt}from"@lingui/core";import{getCurrentNamespaceOfOrNull as QN,getCurrentStep as HN,getRelatedWalletOrNull as qN}from"@rango-dev/queue-manager-rango-preset";import{Button as WS,Divider as GN,QuoteCost as VN,StepDetails as KN,Typography as gp}from"@rango-dev/ui";import{useWallets as jN}from"@rango-dev/wallets-react";import MS from"bignumber.js";import{PendingSwapNetworkStatus as Mn}from"rango-types";import Se,{useEffect as hp,useRef as yp,useState as Oa}from"react";import{useNavigate as XN}from"react-router-dom";import{i18n as wo}from"@lingui/core";var jA=[wo.t("Sunday"),wo.t("Monday"),wo.t("Tuesday"),wo.t("Wednesday"),wo.t("Thursday"),wo.t("Friday"),wo.t("Saturday")];function Oy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?wo.t("Today"):`${jA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Oy,"timeSince");function Uy(t){return t.finishTime?Oy(parseInt(t.finishTime)):Oy(parseInt(t.creationTime))}i(Uy,"getSwapDate");import Or from"react";import{i18n as Wa}from"@lingui/core";import{Button as zy,Divider as ap,MessageBox as XA}from"@rango-dev/ui";import vo from"react";var Qy=i(({onCancel:t,onClose:e})=>vo.createElement(vo.Fragment,null,vo.createElement(ap,{size:20}),vo.createElement(XA,{type:"error",title:Wa.t("Cancel Swap"),description:Wa.t("Are you sure you want to cancel this swap?")}),vo.createElement(ap,{size:32}),vo.createElement(zy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Wa.t("Yes, Cancel it")),vo.createElement(ap,{size:12}),vo.createElement(zy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Wa.t("No, Continue"))),"CancelContent");import{i18n as Ma}from"@lingui/core";import{Button as Hy,Divider as sp,MessageBox as YA,Typography as ZA}from"@rango-dev/ui";import ro from"react";var qy=i(({onDelete:t,onClose:e})=>ro.createElement(ro.Fragment,null,ro.createElement(sp,{size:20}),ro.createElement(YA,{type:"error",title:Ma.t("Delete Transaction"),description:Ma.t("Are you sure you want to delete this swap?")}),ro.createElement(sp,{size:32}),ro.createElement(Hy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Ma.t("Yes, Delete it")),ro.createElement(sp,{size:12}),ro.createElement(Hy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},ro.createElement(ZA,{variant:"title",size:"medium",color:"primary"},Ma.t("No, Cancel")))),"DeleteContent");import{i18n as JA}from"@lingui/core";import{Button as RA,Divider as eN,MessageBox as tN}from"@rango-dev/ui";import Vo from"react";var Gy=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Vo.createElement(Vo.Fragment,null,Vo.createElement(tN,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Vo.createElement(Vo.Fragment,null,Vo.createElement(eN,{size:"30"}),Vo.createElement(RA,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},JA.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as SN,getCurrentStep as CN,getRelatedWalletOrNull as kN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as TN}from"@rango-dev/ui";import{useWallets as wN}from"@rango-dev/wallets-react";import Zy from"react";import{i18n as Bn}from"@lingui/core";import{Alert as Ky,Button as nN,Checkbox as rN,Divider as _a,Image as iN,MessageBox as aN,Spinner as sN,WarningIcon as lN}from"@rango-dev/ui";import{useWallets as cN}from"@rango-dev/wallets-react";import ge,{useState as pN}from"react";import{darkTheme as oN,styled as Fr}from"@rango-dev/ui";var fX=Fr("div",{display:"flex",justifyContent:"center"}),gX=Fr("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Vy=Fr("img",{width:"100%"}),La=Fr("div",{position:"relative"}),Pa=Fr("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${oN} &`]:{$$color:"$warning600"}});var jy=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=pN(null),{list:s}=bt(),c=oe.use.isActiveTab(),{state:l,connect:p}=cN(),u=s.find(v=>v.type===e.walletType),d=u?.needsNamespace?.data.find(v=>v.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,m=u.isHub?h?.connected:f.connected,C=i(()=>m?Bn.t("Done"):r?Bn.t("Try again"):Bn.t("Connect"),"getButtonTitle"),y=i(()=>g?ge.createElement(sN,{color:"info"}):r||m?null:ge.createElement(rN,{checked:!0,disabled:!0}),"getNamespaceSuffix"),S=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(v){a(v)}},"handleConnect"),T=i(async()=>{if(m){n();return}S()},"handleClickButton"),w=i(()=>{if(!m)return null;let v=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),E=v?.[v?.length-1];return E?ao(E):null},"getAddress");return ge.createElement(ge.Fragment,null,ge.createElement(aN,{type:"warning",title:Bn.t("Connect {wallet}",{wallet:u.title}),description:Bn.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:ge.createElement(La,null,ge.createElement(iN,{src:u.image,size:45}),ge.createElement(Pa,null,ge.createElement(lN,{color:"warning",size:10})))}),m&&!d&&ge.createElement(ge.Fragment,null,ge.createElement(_a,{size:10}),ge.createElement(Ky,{type:"success",variant:"alarm",title:Bn.t("Wallet connected successfully.")})),r&&!d&&ge.createElement(ge.Fragment,null,ge.createElement(_a,{size:10}),ge.createElement(Ky,{type:"error",title:r?.message,variant:"alarm"})),d&&ge.createElement(ge.Fragment,null,ge.createElement(_a,{size:30}),ge.createElement(Mo,{namespace:d,suffix:y(),error:r?.message,connected:m,address:w()})),ge.createElement(_a,{size:"40"}),ge.createElement(nN,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:T,disabled:!c},C()))},"ConnectWalletContent");import{i18n as Xy}from"@lingui/core";import{Button as uN,Divider as dN,Image as mN,MessageBox as fN,WarningIcon as gN}from"@rango-dev/ui";import{useWallets as hN}from"@rango-dev/wallets-react";import{detectInstallLink as yN}from"@rango-dev/wallets-shared";import io from"react";var Yy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=hN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(yN(n.installLink),"_blank"),"handleButtonClick");return io.createElement(io.Fragment,null,io.createElement(fN,{type:"warning",title:Xy.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:io.createElement(La,null,io.createElement(mN,{src:n.img,size:45}),io.createElement(Pa,null,io.createElement(gN,{color:"warning",size:10})))}),io.createElement(dN,{size:"40"}),io.createElement(uN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},Xy.t("Install")))},"InstallWalletContent");var Jy=i(t=>{let{swap:e,onClose:o}=t,{state:n}=wN(),r=CN(e),a=r?kN(e,r):null,s=a?.walletType,c=s?Un(n(s)):null,l=r?SN(e,r):null;return s?c===TN.NOT_INSTALLED?Zy.createElement(Yy,{walletType:s}):Zy.createElement(jy,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function lp(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return Or.createElement(R,{open:e,onClose:r,container:M()},o==="connectWallet"&&Or.createElement(Jy,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&Or.createElement(Gy,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&Or.createElement(qy,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&Or.createElement(Qy,{onClose:r,onCancel:()=>{r(),s()}}))}i(lp,"SwapDetailsModal");import{i18n as Ur}from"@lingui/core";import{Button as cp,Divider as zr,MessageBox as tS,TokenAmount as vN,Typography as oS}from"@rango-dev/ui";import ye from"react";import{Link as bN,useNavigate as xN}from"react-router-dom";var Ry="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",eS="/profile";function pp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:d,diagnosisUrl:f}=t,h=xN(),{showProfileBanner:g}=oe();return ye.createElement(R,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(ot.SWAP_BOX_ID)||document.body},n==="success"?ye.createElement(tS,{type:"success",title:Ur.t("Swap Successful")},ye.createElement(vN,{direction:"vertical",tooltipContainer:M(),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(zr,{size:12}),ye.createElement(oS,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):ye.createElement(tS,{type:"error",title:Ur.t("Transaction Failed"),description:d}),ye.createElement(zr,{size:30}),n==="success"&&ye.createElement(ye.Fragment,null,g&&ye.createElement(ye.Fragment,null,ye.createElement(bN,{to:eS},ye.createElement(Vy,{src:Ry,alt:"Profile Banner"})),ye.createElement(zr,{size:30})),ye.createElement(cp,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Ur.t("Done"))),ye.createElement(zr,{size:12}),f&&ye.createElement(ye.Fragment,null,ye.createElement(cp,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Ur.t("Diagnosis")),ye.createElement(zr,{size:12})),ye.createElement(cp,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},ye.createElement(oS,{variant:"title",size:"medium",color:"primary"},Ur.t("See Details"))))}i(pp,"SwapDetailsCompleteModal");import{i18n as Fa}from"@lingui/core";import{CopyIcon as $N,DoneIcon as FN,IconButton as ON,RangoExplorerIcon as UN,Tooltip as xS,Typography as ES,useCopyToClipboard as zN}from"@rango-dev/ui";import Bt from"react";import DN from"react";import{i18n as MN}from"@lingui/core";import{Alert as TS,IconButton as LN,LinkIcon as PN}from"@rango-dev/ui";import bo,{Fragment as _N}from"react";import{Alert as IN,ChevronDownIcon as AN,IconButton as NN}from"@rango-dev/ui";import Wn,{useState as BN}from"react";import{css as Qr,darkTheme as nS,styled as Ut,Typography as EN}from"@rango-dev/ui";var rS=Ut(se,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${nS} &`]:{color:"$secondary500"}}}}}),iS=Ut("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),aS=Ut("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),sS=Ut("div",{padding:"$0 $20 $20 $20"}),SY=Ut("div",{display:"flex",flexDirection:"column",gap:"$10"}),lS=Ut("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),CY=Ut("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Ko=Qr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${nS} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),cS=Qr({padding:"$5 0"}),Da=Qr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),pS=Qr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),uS=Qr({width:"100%",padding:"0 $20 $10"}),dS=Ut("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),mS=Ut("div",{display:"flex",flexDirection:"column",gap:"$5"}),$a=Ut(EN,{wordBreak:"break-word"});import{styled as up}from"@rango-dev/ui";var fS=up("div",{display:"flex",flexDirection:"column",gap:"$10"}),gS=up("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),hS=up("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function yS(t){let{message:e}=t,[o,n]=BN(!1);return Wn.createElement(IN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Wn.createElement(NN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Wn.createElement(gS,{rotated:o},Wn.createElement(AN,{size:12,color:"gray"}))),footer:Wn.createElement(hS,{open:o},Wn.createElement($a,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(yS,"FailedAlert");import{i18n as SS}from"@lingui/core";import{Alert as dp,Button as CS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as WN}from"rango-types";import Hr from"react";function kS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?Hr.createElement(dp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:Hr.createElement(CS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},SS.t("Change"))}):a===WN.WaitingForConnectingWallet?Hr.createElement(dp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Hr.createElement(CS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},SS.t("Connect"))}):Hr.createElement(dp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(kS,"WarningAlert");function mp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=or(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,d=u&&!c||p&&!s.explorerUrl?.length;return bo.createElement(fS,null,s.explorerUrl?.map((f,h,g)=>{let m=h+f.url,C=h===g.length-1,y=(C&&u||p)&&!d,S=C&&s.status==="failed";return bo.createElement(_N,{key:m},bo.createElement(TS,{id:"widget-swap-details-tx-alert",type:C&&(y&&"loading"||S&&"error")||"success",title:f.description?`${f.description} Tx`:MN.t("View transaction"),action:f.url&&bo.createElement(LN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},bo.createElement(PN,{size:12}))}))}),d&&bo.createElement(TS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&bo.createElement(kS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&bo.createElement(yS,{message:a}))}i(mp,"SwapDetailsAlerts");var wS=2e3;var vS=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:ht(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:_(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ht(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:_(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Dn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:ht(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:ht(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Dn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:DN.createElement(mp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function bS(t){if(or(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(bS,"getStepState");function IS(t){let{requestId:e}=t,[o,n]=zN(wS);return Bt.createElement(aS,{className:Ko()},Bt.createElement(ES,{variant:"label",size:"large",color:"neutral700"},Fa.t("Request ID")),Bt.createElement("div",{className:Da()},Bt.createElement(ES,{variant:"label",size:"small",color:"neutral700"},e),Bt.createElement(xS,{container:M(),content:o?Fa.t("Copied To Clipboard"):Fa.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Bt.createElement(ON,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Bt.createElement(FN,{size:16,color:"secondary"}):Bt.createElement($N,{size:16,color:"gray"}))),Bt.createElement(dS,{target:"_blank",href:`${Yp}/swap/${e}`},Bt.createElement(xS,{container:M(),content:Fa.t("View on Rango Explorer"),side:"bottom"},Bt.createElement(UN,{size:20})))))}i(IS,"RequestIdRow");import{i18n as AS}from"@lingui/core";import{Typography as NS}from"@rango-dev/ui";import fp from"react";function BS(t){let{date:e,isFinished:o}=t;return fp.createElement("div",{className:Ko()},fp.createElement(NS,{variant:"label",size:"large",color:"neutral700"},o?AS.t("Finished at"):AS.t("Created at")),fp.createElement(NS,{variant:"label",size:"small",color:"neutral700"},e))}i(BS,"SwapDateRow");var YN=3e3;function Sp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=jN(),l=k().blockchains(),p=k().swappers(),{findToken:u}=k(),d=z().use.retry(),f=XN(),h=yp(null),[g,m]=Oa(!1),[C,y]=Oa(null),[S,T]=Oa(null),[w,v]=Oa(null),E=yp(C),B=yp(S),I=Be.use.getNotifications(),x=Be.use.removeNotification(),b=I(),W=HN(e),A=W?.networkStatus,$=i(Pe=>{m(!0),y(Pe)},"handleChangeModalState"),U=i(()=>{m(!1)},"handleCloseModal"),q=i(()=>{T({type:"loading",title:zt.t("Change Network"),description:`We\u2019re switching the connected network to ${ee?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),j=i(()=>{T({type:"success",title:zt.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),L=i(Pe=>{T({type:"error",title:zt.t("Network Switch Failed"),description:Pe?.message||ae.detailedMessage.content})},"handleShowSwitchNetworkFailed"),Y=Kd(e),ee=W?QN(e,W):null,Z=W?qN(e,W):null,le=Uy(e),ue=jd(e),we=i(Pe=>!!c(Pe)?.mobileWallet,"checkIsMobileWallet"),ve=!!A&&[Mn.WaitingForNetworkChange,Mn.NetworkChangeFailed].includes(A),qe=!!Z?.walletType&&we(Z.walletType),Ae=!!Z&&!!ee&&a(Z.walletType,ee.network,ee),D=!!ee&&ve&&(qe||Ae),N=i(()=>{D&&(q(),s(Z.walletType,[{namespace:ee.namespace,network:ee.network}]).then(()=>{j()}).catch(Pe=>{L(Pe)}))},"handleSwitchNetwork"),G=i(()=>{$("switchNetwork"),N()},"handleSwitchNetworkClick"),ae=Vd(e,W,c),K=vS({swap:e,switchNetworkIsAvailable:D,handleSwitchNetworkClick:G,showNetworkModal:A,setNetworkModal:$,message:ae,blockchains:l,swappers:p}),X=K.length,[Ge,Ve]=[e.steps[0],e.steps[X-1]],be=Ve?.outputAmount||Ve?.expectedOutputAmountHumanReadable,Mt=e.steps.reduce((Pe,Lt)=>Pe+parseFloat(Lt.feeInUsd||""),0),Ya=e.steps.find(Pe=>Pe.diagnosisUrl)?.diagnosisUrl,Za=_(parseFloat(be||"0")*(Ve?.toUsdPrice||0),4,4),Wp=_(parseFloat(e.inputAmount)*(Ge?.fromUsdPrice||0),4,4),Mp=be?new MS(be).multipliedBy(Ve.toUsdPrice||0).toString():"",uC=new MS(e.inputAmount).multipliedBy(Ge?.fromUsdPrice||0).toString(),Ja=Kt(Wp,Za),Ra=ae.detailedMessage.content||ae.shortMessage,dC=e.status==="success"?zt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:_(be,6,6),token:K[X-1]?.to.token.displayName,conciseAddress:ao(e.wallets[K[X-1]?.to.chain.displayName||""]?.address||""),chain:K[X-1]?.to.chain.displayName}}):Se.createElement(mS,null,Se.createElement(gp,{variant:"body",size:"medium",color:"neutral700",align:"center"},Ra?"":zt.t("Transaction was not sent."),Y?`${zt.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:Y.outputAmount,symbol:Y.symbol,blockchain:Y.blockchain}})}`:""),Ra&&Se.createElement($a,{align:"center",variant:"body",size:"medium",color:"neutral700"},Se.createElement("b",null,"Reason:")," ",Ra));return hp(()=>{b.find(Lt=>Lt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId),U()):w&&v(null))},[e.status,e.requestId]),hp(()=>{if(D){if($("switchNetwork"),A===Mn.WaitingForNetworkChange){q();return}if(A===Mn.NetworkChangeFailed){L();return}return}if(A===Mn.WaitingForConnectingWallet){$("connectWallet");return}if(A===Mn.NetworkChanged){$("switchNetwork"),j();return}C&&["connectWallet","switchNetwork"].includes(C)&&U()},[A]),hp(()=>{if(E.current=C,B.current=S,C==="switchNetwork"&&S?.type==="success"){let Pe=setTimeout(()=>{E.current==="switchNetwork"&&B.current?.type==="success"&&U()},YN);return()=>clearTimeout(Pe)}},[C,S]),Se.createElement(ie,{header:{title:zt.t("Swap Details"),onCancel:e.status==="running"?()=>$("cancel"):void 0,suffix:e.status!=="running"&&Se.createElement(uo,null,Se.createElement(WS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>$("delete")},Se.createElement(gp,{size:"medium",variant:"label",color:"error"},zt.t("Delete"))))},footer:ue&&!w&&Se.createElement(WS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Pe=xi(e,l,u);d(Pe),setTimeout(()=>{f("../../")},0)}},zt.t("Try again"))},Se.createElement(rS,{compact:!0,ref:h},Se.createElement(IS,{requestId:o}),Se.createElement(BS,{date:le,isFinished:!!e.finishTime}),Se.createElement("div",{className:pS()},Se.createElement(VN,{fee:_(String(Mt),2,2),time:Fn(ti(e.steps)),steps:X}),Se.createElement(fr,{from:{price:{value:_(e.inputAmount,6,6),usdValue:Wp,realUsdValue:uC,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:_(be,6,6),usdValue:Za,realUsdValue:Mp,realValue:be||""},token:{displayName:K[X-1]?.to.token.displayName||"",image:K[X-1]?.to.token.image},chain:{image:K[X-1]?.to.chain.image,displayName:K[X-1]?.to.chain.displayName||""}},percentageChange:_(Ja,2,2),warningLevel:jt(Ja??0)})),Se.createElement("div",{className:uS()},Se.createElement(gp,{variant:"title",size:"small"},zt.t("Swaps steps"))),Se.createElement(GN,{size:8}),Se.createElement(sS,null,K.map((Pe,Lt)=>{let Lp=Lt,_n=e.steps[Lt]&&bS(e.steps[Lt]),mC=_n==="error"||_n==="in-progress"||_n==="warning"||_n==="completed"&&Lt===K.length-1;return Se.createElement(KN,{className:"widget-swap-details-step-item-container",key:Lp,step:Pe,type:"swap-progress",ref:h,state:_n,hasSeparator:Lt!==0,tabIndex:Lp,isFocused:mC,tooltipContainer:M()})}))),Se.createElement(lp,{isOpen:g,state:C,switchNetworkModalState:S,onClose:U,onCancel:r,onDelete:n,message:ae.detailedMessage.content,swap:e,handleSwitchNetwork:G}),Se.createElement(pp,{open:!!w,diagnosisUrl:Ya,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:_(be,6,6),usdValue:Za,realUsdValue:Mp,realValue:be||"",percentageChange:_(Ja,2,2),token:{displayName:K[X-1]?.to.token.displayName||"",image:K[X-1]?.to.token.image},chain:{image:K[X-1]?.to.chain.image},description:dC}))}i(Sp,"SwapDetails");import{i18n as za}from"@lingui/core";import{Divider as _S,NotFound as t0,Skeleton as Gr,Typography as Qa}from"@rango-dev/ui";import Ie from"react";import{i18n as ZN}from"@lingui/core";import{Divider as JN,Skeleton as RN,Typography as e0}from"@rango-dev/ui";import Ee from"react";import{css as Wt,styled as Cp}from"@rango-dev/ui";var LS=Cp("div",{width:"100%",height:"100%",padding:"$10 $20"}),qr=Cp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Ua=Cp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),V7=Wt({display:"flex",justifyContent:"space-between",alignItems:"center"}),K7=Wt({display:"flex",justifyContent:"space-between",alignItems:"center"}),j7=Wt({paddingTop:"$15",display:"flex"}),X7=Wt({padding:"$15 $0"}),Y7=Wt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),Z7=Wt({paddingBottom:"$10"}),J7=Wt({display:"flex",justifyContent:"start",alignItems:"center"}),R7=Wt({paddingTop:"$5",display:"flex",alignItems:"center"}),e9=Wt({display:"flex",alignItems:"center"}),t9=Wt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),PS=Wt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function kp(){return Ee.createElement(LS,null,Ee.createElement(hr,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(e0,{variant:"title",size:"small"},ZN.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(qr,null,Ee.createElement(Ft,{separator:!1}),Ee.createElement("div",{className:PS()},Ee.createElement(JN,{direction:"horizontal",size:20}),Ee.createElement(RN,{height:22,variant:"rectangular"}))),Ee.createElement(Ua,null),Ee.createElement(qr,null,Ee.createElement(Ft,{separator:!1})),Ee.createElement(Ua,null),Ee.createElement(qr,null,Ee.createElement(Ft,{separator:!1})),Ee.createElement(Ua,null),Ee.createElement(qr,null,Ee.createElement(Ft,{separator:!1}))))}i(kp,"LoadingSwapDetails");function DS(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(ie,{header:{title:za.t("Swap Details"),suffix:Ie.createElement(uo,null)}},o&&Ie.createElement(iS,null,Ie.createElement("div",{className:Ko()},Ie.createElement(Qa,{variant:"label",size:"large",color:"neutral700"},`${za.t("Request ID")}`),Ie.createElement("div",{className:Da()},Ie.createElement(Qa,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Gr,{width:60,height:10,variant:"rounded"})),Ie.createElement(_S,{direction:"horizontal",size:4}),Ie.createElement(Gr,{width:16,height:16,variant:"rectangular"}),Ie.createElement(_S,{direction:"horizontal",size:4}),Ie.createElement(Gr,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:Ko()},Ie.createElement(Qa,{className:cS(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(Gr,{width:60,height:10,variant:"rounded"})),Ie.createElement(Qa,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Gr,{width:60,height:10,variant:"rounded"}))),Ie.createElement(kp,null)),!o&&Ie.createElement(lS,null,Ie.createElement(t0,{title:za.t("Not found"),description:za.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(DS,"SwapDetailsPlaceholder");function $S(){let{manager:t,state:e}=r0(),o=!e.loadedFromPersistor,n=wt(t),{requestId:r}=a0(),a=Xe(),{fetchStatus:s}=k();if(!r)return Tp.createElement(i0,{containerStyles:{margin:"20px"},type:"error",title:o0.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&&n0(f)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),d=l?.swap;return!d||c?Tp.createElement(DS,{requestId:r,showSkeleton:c}):Tp.createElement(Sp,{swap:d,requestId:r,onCancel:p,onDelete:u})}i($S,"SwapDetailsPage");import{i18n as FS}from"@lingui/core";import{Divider as s0,getCategoriesCount as l0,SelectableCategoryList as c0,styled as US,Typography as p0,Wallet as u0,WalletState as d0}from"@rango-dev/ui";import{useWallets as m0}from"@rango-dev/wallets-react";import Qt,{useState as OS}from"react";var f0=US("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),g0=US(se,{textAlign:"center"});function zS(){let{fetchStatus:t}=k(),[e,o]=OS("ALL"),n=k().blockchains(),{config:r}=k(),{state:a}=m0(),{checkHasDeepLink:s,getWalletLink:c}=sn(),[l,p]=OS(),u=oe.use.isActiveTab(),{list:d}=bt(),f=xu(d,n),g=l0(f)!==1,m=Eu(d,e),C=i(y=>{au(d,r.multiWallets)||p(y)},"handleWalletItemClick");return Qt.createElement(ie,{header:{title:FS.t("Connect Wallets")}},Qt.createElement(g0,null,g&&Qt.createElement(Qt.Fragment,null,Qt.createElement(c0,{setCategory:o,category:e,blockchains:f,isLoading:t==="loading"}),Qt.createElement(s0,{size:24})),Qt.createElement(p0,{variant:"title",size:"xmedium",align:"center"},FS.t("Choose a wallet to connect.")),Qt.createElement(f0,null,m.map((y,S)=>{let w=a(y.type).namespaces,v=`wallet-${S}-${y.type}`,E=cs(y,w);return Qt.createElement(u0,{key:v,...y,state:E?d0.PARTIALLY_CONNECTED:y.state,hasDeepLink:s(y.type),link:c(y.type),container:M(),onClick:()=>C(y),isLoading:t==="loading",disabled:!u})}),Qt.createElement(Rn,{id:"widget-state-full-connect-modal",wallet:l,onClose:()=>{p(void 0)}}))))}i(zS,"WalletsPage");function QS(){return im(),Xs(),h0([{path:O.home,element:He.createElement(iy,null)},{path:O.routes,element:He.createElement(py,null)},{path:O.fromSwap,children:[{index:!0,element:He.createElement(Aa,{type:"source"})},{path:O.blockchains,element:He.createElement(ba,{type:"source"})}]},{path:O.toSwap,children:[{index:!0,element:He.createElement(Aa,{type:"destination"})},{path:O.blockchains,element:He.createElement(ba,{type:"destination"})}]},{path:O.settings,children:[{index:!0,element:He.createElement(Fy,null)},{path:O.languages,element:He.createElement(sy,null)},{path:O.exchanges,element:He.createElement(Vc,{sourceType:"Exchanges"})},{path:O.bridges,element:He.createElement(Vc,{sourceType:"Bridges"})},{path:O.customTokens,children:[{index:!0,element:He.createElement(ah,null)},{path:O.addCustomTokens,children:[{index:!0,element:He.createElement(Rm,null)},{path:O.blockchains,element:He.createElement(ba,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:O.swaps,children:[{index:!0,element:He.createElement(Eh,null)},{path:O.swapDetails,element:He.createElement($S,null)}]},{path:O.wallets,element:He.createElement(zS,null)},{path:O.confirmSwap,element:He.createElement(qg,null)}])}i(QS,"AppRoutes");import{useQueueManager as L0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as P0}from"rango-sdk";import{useContext as _0,useEffect as xp,useState as eC}from"react";import{Provider as T0}from"@rango-dev/wallets-react";import Ha,{createContext as w0,useEffect as KS,useMemo as v0,useRef as jS}from"react";import{useEffect as y0}from"react";function HS(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(HS,"hashProviders");function wp(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=k(),a=n();return y0(()=>{o(),r()},[HS(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(wp,"useWalletProviders");import{legacyFormatAddressWithNetwork as S0,legacyReadAccountAddress as qS}from"@rango-dev/wallets-core/legacy";import{Events as Ln}from"@rango-dev/wallets-react";import{isEvmBlockchain as C0}from"rango-sdk";function GS(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=k(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(C0).map(m=>m.name),u=i((m,C)=>{let[y,,S,T,w]=m,v={walletType:y,network:T.network??void 0,accounts:S};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let E=ls(y,S,p,C.supportedChainNames,w.isContractWallet);E.length&&e(E,w.namespace,T.derivationPath)},"onAccountsEvent"),d=i((m,C,y,S,T)=>{if(C===Ln.ACCOUNTS){let w=zn(T.supportedBlockchains);y&&u([m,C,y,S,T],{supportedChainNames:w})}C===Ln.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),C===Ln.NAMESPACE_DISCONNECTED&&n(m,y)},"handleUpdatesForHub"),f=i((m,C,y,S,T)=>{if(C===Ln.ACCOUNTS){let w=zn(T.supportedBlockchains),v=[],E=[];if(y?.forEach(I=>{let{network:x}=qS(I);p.includes(x)?v.push(I):E.push(I)}),r.filter(I=>I.walletType===m).map(I=>S0(I.address,I.chain)).length>0){if(v.length>0){let I=ls(m,v,p,w,T.isContractWallet);a(m,{chains:I.map(x=>x.chain)})}E.length>0&&a(m,{chains:E.map(I=>{let{network:x}=qS(I);return x})})}y?u([m,C,y,S,T],{supportedChainNames:w}):(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((m,C,y,S,T)=>{if(C===Ln.CONNECTED&&y){let w={walletType:m,network:S.network??void 0,accounts:S.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(C===Ln.NETWORK&&y){let w={walletType:m,network:y,accounts:S.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((m,C,y,S,T)=>{T.isHub?d(m,C,y,S,T):f(m,C,y,S,T),h(m,C,y,S,T)},"handler")}}i(GS,"useUpdates");import{LegacyEvents as k0}from"@rango-dev/wallets-core/legacy";function VS(t,e){let[o,n,r,a,s]=e;n!==k0.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(VS,"propagateEvents");var qa=w0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function b0(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}=wp(s.wallets,c),p=jS(),u=jS(),{handler:d}=GS({onConnectWalletHandler:p,onDisconnectWalletHandler:u});KS(()=>{n().catch(console.log)},[]),KS(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=oe.use.isActiveTab(),h=v0(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Ha.createElement(qa.Provider,{value:h},Ha.createElement(T0,{allBlockChains:a,providers:l,onUpdateState:(g,m,C,y,S)=>{let T=[g,m,C,y,S];d(...T),t.onUpdateState&&VS(t.onUpdateState,T)},autoConnect:!!f,configs:{wallets:s.wallets}},t.children))}i(b0,"Main");function Ga(t){let{config:e,...o}=t;return Ha.createElement(Gu,{config:e},Ha.createElement(b0,{...o,config:e}))}i(Ga,"WidgetWallets");import{globalCss as x0}from"@rango-dev/ui";var XS=i(()=>x0({"@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");import{useWallets as E0}from"@rango-dev/wallets-react";import{useEffect as I0,useRef as A0}from"react";function YS(){let{connect:t,state:e}=E0(),o=A0({}),{fetchStatus:n}=k(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);I0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(YS,"useForceAutoConnect");import{isApprovalTX as N0,RouteEventType as ZS,StepEventType as JS,StepExecutionEventStatus as B0,WidgetEvents as Va}from"@rango-dev/queue-manager-rango-preset";import{useEffect as RS}from"react";function vp(){let t=Be.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=k();RS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===JS.TX_EXECUTION&&s.status===B0.TX_SENT&&!N0(c)||s.type===JS.SUCCEEDED){let u=[],d=l.wallets[c?.fromBlockchain];if(d){let f=e.find(h=>h.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&h.walletType===d.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(m=>f.some(C=>C.blockchain===m.blockchain&&C.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&C.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return Ce.on(Va.StepEvent,r),()=>Ce.off(Va.StepEvent,r)},[Ce,e]),RS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===ZS.FAILED||s.type===ZS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return Ce.on(Va.RouteEvent,r),()=>Ce.off(Va.RouteEvent,r)},[Ce])}i(vp,"useSubscribeToWidgetEvents");import{useManager as W0}from"@rango-dev/queue-manager-react";import{useEffect as M0}from"react";function bp(){let{isSynced:t,syncNotifications:e}=Be(),{manager:o,state:n}=W0();M0(()=>{Be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(wt(o))},[Be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(bp,"useSyncNotifications");function Ep(){YS(),XS(),vp(),bp();let t=k().blockchains(),{canSwitchNetworkTo:e}=Ki(),[o,n]=eC(null),[r,a]=eC(),s=_0(qa),c=t.filter(P0);xp(()=>()=>nm(),[]),xp(()=>()=>rm(),[]),L0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),xp(()=>(Wo.init(),Be.persist.hasHydrated()||Be.persist.rehydrate(),s.onConnectWallet(l=>{n(p=>{if(!p||p.walletType!==l.walletType)return l;let u={...p};return l.network&&(u.network=l.network),l.accounts&&(u.accounts=l.accounts),u})}),s.onDisconnectWallet(l=>{a(l),n(p=>l===p?.walletType?null:p)}),Wo.destroy),[])}i(Ep,"useBootstrap");import{styled as D0}from"@rango-dev/ui";var tC=D0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function jo(){Ep();let{config:t}=k(),{activeTheme:e}=po(t?.theme||{}),{activeLanguage:o}=ko();return Ip.createElement($0,{language:o},Ip.createElement(tC,{id:"swap-container",className:e()},Ip.createElement(QS,null)))}i(jo,"Main");import{setSolanaSignerConfig as nB}from"@rango-dev/signer-solana";import Np,{useEffect as Bp,useMemo as rB}from"react";function oC(){let{setWatermark:t,setShowProfileBanner:e}=oe();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(oC,"useFetchApiConfig");import{useState as F0}from"react";var O0=i(()=>{let[t,e]=F0(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=iu(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),nC=O0;import{checkWaitingForNetworkChange as U0,makeQueueDefinition as z0}from"@rango-dev/queue-manager-rango-preset";import{Provider as Q0}from"@rango-dev/queue-manager-react";import{useWallets as H0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as q0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as G0}from"rango-types";import V0,{useMemo as K0}from"react";function j0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=H0(),c=K0(()=>z0({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(),d={blockchains:p.map(w=>({accounts:[w],name:w.chain}))},f=i(async(w,v)=>a(w,v.network,v)?await r(w,[v]):void 0,"switchNetwork"),h=i(w=>!!s(w).mobileWallet,"isMobileWallet"),g=u.filter(w=>w.enabled).reduce((w,v)=>(w[v.name]=v,w),{}),m=u.filter(G0),C=i(w=>{let{supportedChains:v}=s(w);return zn(v)},"getSupportedChainNames"),y=e(),S={meta:{blockchains:g,evmBasedChains:m,evmNetworkChainInfo:q0(m),getSupportedChainNames:C},getSigners:o,wallets:d,providers:y,switchNetwork:f,canSwitchNetworkTo:a,state:n,isMobileWallet:h},T=oe.use.isActiveTab();return V0.createElement(Q0,{queuesDefs:[c],context:S,onPersistedDataLoaded:w=>{U0(w)},isPaused:!T},t.children)}i(j0,"QueueManager");var rC=j0;import{useManager as R0}from"@rango-dev/queue-manager-react";import eB,{createContext as tB,useContext as oB}from"react";function iC(){let{findToken:t}=k(),e=k().blockchains(),o=k().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=z()();return i(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:f,toToken:h,requestAmount:g}=p,m={blockchains:e,tokens:o};if(u!==void 0){let C=e.find(y=>y.name===u)??null;n(C)}if(d!==void 0){let C=d?t(d)??null:null;r({meta:m,token:C})}if(f!==void 0){let C=e.find(y=>y.name===f)??null;a(C)}if(h!==void 0){let C=h?t(h)??null:null;s({meta:m,token:C})}g!==void 0&&c(g)},"updateQuoteInputs")}i(iC,"useUpdateQuoteInputs");import{cancelSwap as X0,getCurrentNamespaceOfOrNull as Y0,getCurrentStep as Z0,getRelatedWalletOrNull as J0}from"@rango-dev/queue-manager-rango-preset";var Ka=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return wt(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=xi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&X0(o)}getCurrentStepInfo(e){let o=Z0(e);return{step:o,wallet:o?J0(e,o):null,network:o?Y0(e,o)?.network:null}}};var aC=tB(void 0);function Ap(t){let{manager:e}=R0(),o=oe.use.isActiveTab(),n=z().use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=k(),l=new Ka(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=k(),u=Cu(a()),d=k().blockchains(),f=k().tokens(),h=k().swappers(),g=k().fetchStatus,m=ko().resetLanguage,C=Be().getNotifications(),y=Be().clearNotifications,S=iC(),{fromBlockchain:T,toBlockchain:w,fromToken:v,toToken:E,inputAmount:B}=z()(),I={isActiveTab:o,setCurrentTabAsActive:Wo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async x=>c(x)},meta:{blockchains:d,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:m,notifications:{list:C,clearAll:y},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:v?{symbol:v.symbol,blockchain:v.blockchain,address:v.address}:null,toBlockchain:w?.name??null,toToken:E?{symbol:E.symbol,blockchain:E.blockchain,address:E.address}:null,requestAmount:B},updateQuoteInputs:S}};return eB.createElement(aC.Provider,{value:I},t.children)}i(Ap,"WidgetInfo");function sC(){let t=oB(aC);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(sC,"useWidget");function Pn(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=oC(),{handleLoadCustomFont:a}=nC();return Bp(()=>{r().catch(console.log)},[]),Bp(()=>{n&&a(n)},[n]),rB(()=>{Iu({API_KEY:o?.apiKey||Yr,BASE_URL:o?.apiUrl||Xp})},[o.apiKey,o.apiUrl]),Bp(()=>{t.config?.signers?.customSolanaRPC&&nB("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Np.createElement(Ga,{config:o,onUpdateState:e},Np.createElement(rC,{apiKey:o.apiKey},Np.createElement(Ap,null,t.children)))}i(Pn,"WidgetProvider");function lC(t){let e=t.config?.externalWallets;return ja.createElement(vi,null,e?ja.createElement(jo,null):ja.createElement(Pn,{config:t.config??Jo},ja.createElement(jo,null)))}i(lC,"Refuel");import Xa from"react";function cC(t){let e=t.config?.externalWallets;return Xa.createElement(vi,null,e?Xa.createElement(jo,null):Xa.createElement(Pn,{config:t.config??Jo},Xa.createElement(jo,null)))}i(cC,"Widget");function pC(){let{on:t,off:e}=Ce;return{on:t,off:e}}i(pC,"useWidgetEvents");var Yee={DerivationPath:Yn,Namespaces:jn,Detached:Xn,isOnDerivationPath:Jn,isOnNamespace:Zn,isOnDetached:xo};export{kee as EventSeverity,on as MainEvents,Bee as Networks,Lee as PendingSwapNetworkStatus,fs as QuoteEventTypes,lC as Refuel,Tee as RouteEventType,ns as SUPPORTED_FONTS,Yee as StatefulConnect,wee as StepEventType,vee as StepExecutionBlockedEventStatus,bee as StepExecutionEventStatus,Cd as SwapModeContext,ot as UI_ID,hs as UiEventTypes,gs as WalletEventTypes,Aee as WalletEvents,Wee as WalletTypes,cC as Widget,on as WidgetEvents,Pn as WidgetProvider,Ga as WidgetWallets,pl as customizedThemeTokens,Eee as readAccountAddress,Xo as useStatefulConnect,bt as useWalletList,Ki as useWallets,sC as useWidget,pC as useWidgetEvents,hk as widgetEventEmitter};
|
|
1
|
+
var fC=Object.defineProperty;var i=(t,e)=>fC(t,"name",{value:e,configurable:!0});import{EventSeverity as See,RouteEventType as Cee,StepEventType as kee,StepExecutionBlockedEventStatus as Tee,StepExecutionEventStatus as wee}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as bee}from"@rango-dev/wallets-core/legacy";import{useWallets as Ki,Events as Eee}from"@rango-dev/wallets-react";import{Networks as Aee,WalletTypes as Nee}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as Wee}from"rango-types";import{Divider as MT}from"@rango-dev/ui";import lo,{useEffect as LT,useRef as PT,useState as Sd}from"react";import{WalletState as gC}from"@rango-dev/ui";import{useWallets as hC}from"@rango-dev/wallets-react";import{useReducer as yC}from"react";function Pp(t){return!!t.derivationPath}i(Pp,"isStateOnDerivationPathStep");function _p(t){return!!t.namespace}i(_p,"isStateOnNamespace");var Vr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Dp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return Vr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Vr;default:throw new Error("Action hasn't been defined.")}}i(Dp,"reducer");function Xo(){let{state:t,disconnect:e,connect:o}=hC(),[n,r]=yC(Dp,Vr),a=i(async(d,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(d,g),{status:"connected"}}catch(g){let m=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:g})}},"runConnect"),s=i(async(d,f)=>{if(d.state===gC.DISCONNECTED){let g=!!d.isHub,m=g?d.properties?.find(y=>y.name==="namespaces")?.value:d.needsNamespace,C=g?d.properties?.find(y=>y.name==="derivationPath")?.value:d.needsDerivationPath;if(!m?.data?.length)return await a(d.type,void 0,f);if(m?.data.length&&m.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(m?.data.length===1&&m.data[0]){if(C){let y=m.data[0];return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y.value}}),{status:"derivation-path"}}return await a(d.type,m?.data?.map(y=>({namespace:y.value})),f)}}if(d.isHub){let g=d.properties?.find(m=>m.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(d,f)=>{let h=!!d.isHub,g=h?d.properties?.find(T=>T.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(T=>T.name==="derivationPath")?.value:d.needsDerivationPath,C=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(C&&m)return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y}}),{status:"derivation-path"};if(!_p(n))throw new Error("Something went wrong on handling namespace. Please retry.");let S=f.map(T=>({namespace:T}));return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:S?.map(T=>T.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async d=>{if(!d)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Pp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let f=n.derivationPath.providerType,g=[{namespace:n.derivationPath.namespace,derivationPath:d}];return await a(f,g)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let f=t(d.type);return f.connected||f.connecting?(await e(d.type),xo(p)?(r({type:"needsNamespace",payload:{targetWallet:d}}),{status:"namespace"}):{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:p,resetState:d=>{r(d==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Xo,"useStatefulConnect");import{WalletState as vs}from"@rango-dev/ui";import{useWallets as Nk}from"@rango-dev/wallets-react";import{detectMobileScreens as Bk,KEPLR_COMPATIBLE_WALLETS as Wk,WalletTypes as Gn}from"@rango-dev/wallets-shared";import{useCallback as Mk,useEffect as Lk}from"react";import wk,{createContext as vk,useContext as bk,useEffect as xk,useRef as Ek}from"react";import{create as kk}from"zustand";import{persist as Tk}from"zustand/middleware";import{allProviders as SC}from"@rango-dev/provider-all";var es=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()}},Yo=new es;import{defineVersions as Fp,pickVersion as Op,Provider as ts}from"@rango-dev/wallets-core";function Up({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=zp(a);return s instanceof ts?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 ts?o.push(Fp().version("1.0.0",n).build()):o.push(Fp().version("0.0.0",n).build())}),o}return t}i(Up,"matchAndGenerateProviders");function zp(t){try{return Op(t,"1.0.0")[1]}catch{return Op(t,"0.0.0")[1]}}i(zp,"pickProviderVersionWithFallbackToLegacy");function Qp(t){return t.map(o=>zp(o)).map(o=>o instanceof ts?o.id:o.config.type)}i(Qp,"configWalletsToWalletName");function Kr(t,e){return e.find(o=>o.name===t)?.displayName}i(Kr,"getBlockchainDisplayNameFor");function ht(t,e){return e.find(o=>o.name===t)?.shortName}i(ht,"getBlockchainShortNameFor");function Hp(t,e){return e.find(o=>o.name===t)?.logo}i(Hp,"getBlockchainImage");function Dn(t,e){return e.find(o=>o.id===t)?.title}i(Dn,"getSwapperDisplayName");function Eo(t,e){return e.find(o=>o.name===t)??null}i(Eo,"findBlockchain");function os(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(os,"isTokenNative");function yt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(yt,"createTokenHash");function Zo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Zo,"isValidTokenAddress");function $n(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=yt(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=yt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i($n,"matchTokensFromConfigWithMeta");function jr(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(jr,"getSupportedBlockchainsFromConfig");function Gp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Gp,"makeProvidersOptionsFromConfig");var Jo={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"}},CC={clientUrl:void 0},kC={liquiditySources:void 0};function qp(t){let e=Gp(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 SC(o).map(a=>a())}i(qp,"generateProviders");var Vp=i((t,e,o)=>{let n=qp({...Jo,...t});return{config:{...Jo,...t},iframe:CC,campaignMode:kC,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c}=o(),l=$n({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=$n({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});Yo.set("supportedSourceTokens",l),Yo.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=qp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Gp(a);return Up({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Kp}from"rango-types";var jp=[Kp.EVM,Kp.SOLANA],Xr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as _C}from"rango-sdk";import{UI_ID as TC}from"@rango-dev/ui";var Yr="c6381a79-2817-4602-83bf-6a641a409e32",Xp="https://api.rango.exchange",Yp="https://explorer.rango.exchange",ot={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...TC};import{BlockchainCategories as AC,WalletState as ct}from"@rango-dev/ui";import{legacyReadAccountAddress as NC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as BC,getCosmosExperimentalChainInfo as WC,isEvmAddress as MC,KEPLR_COMPATIBLE_WALLETS as gW,Networks as yu}from"@rango-dev/wallets-shared";import en from"bignumber.js";import{isCosmosBlockchain as LC}from"rango-types";import wC from"bignumber.js";var ce=new wC(0);import{WalletTypes as vC}from"@rango-dev/wallets-shared";var Io="~",Zp=[vC.LEAP];import{BlockchainCategories as rs,WalletState as IC}from"@rango-dev/ui";import{TransactionType as Zr}from"rango-sdk";var Jp="Roboto",ns=[{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 Ro(t){return Array.from(new Set(t))}i(Ro,"removeDuplicateFrom");function Jr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Jr,"debounce");function lt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(lt,"containsText");function tu(t,e){return t.toLowerCase()===e.toLowerCase()}i(tu,"exactText");function ou(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(ou,"startWithText");var W=i(()=>document.getElementById(ot.SWAP_BOX_ID),"getContainer"),Ao=i(()=>document.getElementById(ot.EXPANDED_BOX_ID),"getExpanded");function nu(t,e,o){let n=!!e&&tu(e,t),r=!!o&&tu(o,t);return n!==r?n?-1:1:0}i(nu,"compareExactMatchText");function is(t,e,o){let n=!!e&<(e,t),r=!!o&<(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(is,"compareContainsText");function as(t,e,o){let n=!!e&&ou(e,t),r=!!o&&ou(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(as,"compareStartWithText");function ru(t,e,o){if(!o)return 0;let n=nu(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=nu(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=as(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=is(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=as(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=is(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=as(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=is(o,t.address,e.address);if(r!==0)return r}return 0}i(ru,"compareWithSearchFor");var Rr=i((t,e)=>{switch(e){case rs.ALL:return!0;case rs.UTXO:return t===Zr.TRANSFER;case rs.OTHER:return t!==Zr.TRANSFER&&t!==Zr.COSMOS&&t!==Zr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),iu=i(t=>ns.find(o=>o.value===t)?.url,"getFontUrlByName");function au(t,e){let o=!!t.find(n=>n.state===IC.CONNECTED);return e===!1&&o}i(au,"isSingleWalletActive");function su(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(su,"memoizedResult");import{BigNumber as gu}from"bignumber.js";function lu(t){return t.replace(/^0+(?=\d)/g,"")}i(lu,"removeLeadingZeros");function cu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(cu,"ensureLeadingZeroForDecimal");function pu(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(pu,"formatThousandsWithCommas");function uu(t){return t.replace(/\s+/g,"-")}i(uu,"replaceSpacesWithDash");function du(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(du,"stripTrailingZeros");function ei(t){return/^0+(?:\.0+)?$/.test(t)}i(ei,"isZeroValue");function mu(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(mu,"isValidCurrencyFormat");function fu(t){return/\d+$/.test(t)}i(fu,"isColorKeyOverridden");var Fn=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 gu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new gu(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 ti=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Pt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),On=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function hu(t){return ei(t)?"0":du(t)}i(hu,"sanitizeInputAmount");function Un(t){return t.connected?ct.CONNECTED:t.connecting?ct.CONNECTING:t.installed?ct.DISCONNECTED:ct.NOT_INSTALLED}i(Un,"mapStatusToWalletState");function Su(t,e,o,n){return o.filter(r=>!Zp.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:d,properties:f,isHub:h}=e(r),g=Ro(u.map(C=>C.type)),m=Un(t(r));return{title:a,image:s,link:BC(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:d,properties:f,isHub:h}})}i(Su,"mapWalletTypesToWalletInfo");function zn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(zn,"walletAndSupportedChainsNames");function ls(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}=NC(l),d=c.length>0,f=c.includes(u),h=u===yu.Unknown;if(d&&!f&&!h)return;let m=u===yu.Unknown&&MC(p);if(h&&!m)return;o.includes(u)||m?r?s(u,p.toLowerCase(),r):c.filter(S=>o.includes(S)).forEach(S=>{s(S,p.toLowerCase())}):s(u,p)}),a}i(ls,"prepareAccountsForWalletStore");function No(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 d=p.from.blockchain,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(No,"getQuoteChains");function Qn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Qn,"isAccountAndWalletMatched");var Cu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ss(n.usdValue,n.decimals):ce.toFixed();return o.plus(r)},new en(ce));return PC(e.toString())},"calculateWalletUsdValue");function PC(t){let e=t.toString().split(".");return e[0]&&(e[0]=pu(e[0])),e.join(".")}i(PC,"numberWithThousandSeparator");var ri=i((t,e)=>{let o=WC(Object.entries(t).map(([,n])=>n).filter(LC));return o&&!!o[e]?.experimental},"isExperimentalChain");function ss(t,e){return new en(t).shiftedBy(-e).toFixed()}i(ss,"representAmountInNumber");function ii(t){if(!t)return null;let e=ss(t.amount,t.decimals),o=t.usdValue?ss(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(ii,"formatBalance");function ku(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new en(t.usdValue).shiftedBy(-t.decimals):ce,n=e&&e.usdValue?new en(e.usdValue).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new en(t.amount).shiftedBy(-t.decimals):ce,n=e&&e.amount?new en(e.amount).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(ku,"compareTokenBalance");function Ht(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Ht,"areTokensEqual");function Tu(t,e){return t.map(o=>({isPartiallyConnected:cs(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===ct.CONNECTED&&!n.isPartiallyConnected)-+(o.state===ct.CONNECTED&&!o.isPartiallyConnected)||+(n.state===ct.CONNECTED)-+(o.state===ct.CONNECTED)||+(n.state===ct.DISCONNECTED||n.state===ct.CONNECTING)-+(o.state===ct.DISCONNECTED||o.state===ct.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(Tu,"sortWalletsBasedOnConnectionState");function ao(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(ao,"getConciseAddress");function wu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(wu,"getAddress");var vu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function bu(t){return t.map(e=>e.state).join("-")}i(bu,"hashWalletsState");function xu(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(xu,"filterBlockchainsByWalletTypes");function Eu(t,e){return e===AC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Rr(n,e))return!0;return!1})}i(Eu,"filterWalletsByCategory");function cs(t,e){return!t.isHub||!t.needsNamespace||t.state!==ct.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(cs,"checkIsWalletPartiallyConnected");var ps={API_KEY:Yr};function qt(t){return ps[t]||""}i(qt,"getConfig");function Iu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),ps=e,ps}i(Iu,"initConfig");var Au=20,Nu=25,us="theme-widget",ds=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Ht(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>Ht(a,t));let r=n.isExcluded;return!r&&!o||r&&o}}}return o},"isTokenExcludedInConfig"),ms=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 ai,pt=i(()=>ai||(ai=new _C(qt("API_KEY"),qt("BASE_URL")),ai),"httpService");import{i18n as Mu}from"@lingui/core";var si=[.5,1,3],li=1,tn=5,Hn=30,ci=0;var Ze=(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))(Ze||{});import{WidgetEvents as Wu}from"@rango-dev/queue-manager-rango-preset";var fs=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(fs||{}),gs=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(gs||{}),hs=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(hs||{}),on=(a=>(a[a.RouteEvent=Wu.RouteEvent]="RouteEvent",a[a.StepEvent=Wu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(on||{});function pi(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Ro(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(pi,"getUniqueSwappersGroups");function Lu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Lu,"sortLiquiditySourcesByGroupTitle");function nt(t,e){return e?.[t]==="hidden"}i(nt,"isFeatureHidden");function nn(t,e){return e?.[t]==="enabled"}i(nn,"isRoutingEnabled");var Pu=i((t,e,o)=>nt("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function rn(t){return t==ci?{type:"error",message:Mu.t("Slippage must be greater than or equal to 0.01")}:t>tn&&t<=Hn?{type:"warning",message:Mu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(rn,"getSlippageValidation");var _u=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=jr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>jp.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",d=Yo.get(u);d?.length||(d=$n({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Yo.set(u,d)),d=Pu(d,s,a.features);let f=e().blockchains({type:o.type});return d.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(m=>m.name===g.blockchain)?!1:o.searchFor?!!(lt(g.symbol,o.searchFor)||lt(g.address||"",o.searchFor)||lt(g.name||"",o.searchFor)):!0).sort((g,m)=>{let C=e().isTokenPinned(g,o.type),y=e().isTokenPinned(m,o.type);if(C!==y)return C?-1:1;if(o.getBalanceFor){let N=o.getBalanceFor(g),B=o.getBalanceFor(m),b=ku(N,B);if(b!==0)return b}let S=l.get(g.blockchain),T=l.get(m.blockchain),w=os(g,S),v=os(m,T);if(w!==v)return w?-1:1;if(g.isPopular!==m.isPopular)return g.isPopular?-1:1;if(o.searchFor){let N=ru(g,m,o.searchFor);if(N)return N}return g.isSecondaryCoin!==m.isSecondaryCoin?g.isSecondaryCoin?1:-1:S&&T?S.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=yt(o),s=n.get(a);return s||(s=r.find(c=>yt(c)===a)),s},findNativeToken:o=>{let n=o.feeAssets[0];return e().findToken({blockchain:o.name,address:n.address,symbol:n.symbol})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Ht(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(Lu)},fetch:async()=>{try{let{routing:o}=e().config,n=nn("enableCentralizedSwappers",o),r=await pt().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),d=new Set;r.tokens.forEach(h=>{d.add(h.blockchain),l.push(h)}),r.blockchains.sort((h,g)=>h.sort-g.sort).forEach(h=>{h.enabled&&d.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let g=yt(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 DC,Catalonia as $C,Chinese as Du,Denmark as FC,English as OC,Finland as UC,French as zC,German as QC,Greece as HC,Hungary as qC,India as GC,Indonesian as VC,Italian as KC,Japanese as jC,Korea as XC,Lithuania as YC,Malay as ZC,Netherlands as JC,Pakistan as RC,Philippines as ek,Poland as tk,Portuguese as ok,Russian as nk,SaudiArabia as rk,Serbia as ik,Slovakia as ak,SouthAfrica as sk,Spanish as lk,Swahili as ck,Swedish as pk,Thai as uk,Turkish as dk,Ukrainian as mk,Vietnamese as fk}from"@rango-dev/ui";var $u=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:sk},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:rk},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:DC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:$C},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Du},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Du},{title:"Danish",label:"Dansk",local:"da",SVGFlag:FC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:JC},{title:"English",label:"English",local:"en",SVGFlag:OC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:ek},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:UC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:zC},{title:"German",label:"Deutsch",local:"de",SVGFlag:QC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:HC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:GC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:qC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:VC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:KC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:jC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:XC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:YC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:ZC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:tk},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:ok},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:nk},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:ik},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:ak},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:lk},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:ck},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:pk},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:uk},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:dk},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:mk},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:RC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:fk}],an="en";var Fu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:li,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=Ro(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=nt("theme",n),s=nt("language",n),c=nt("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||an},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||an}})},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=jr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import ws from"bignumber.js";import gk from"mitt";var Ce=gk(),hk={on:Ce.on,off:Ce.off};var Ou=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 Uu from"bignumber.js";function Gt(t){return`${t.blockchain}${Io}${t.address}${Io}${t.symbol}`}i(Gt,"createAssetKey");function zu(t,e){return`${Gt(e)}${Io}${t}`}i(zu,"createBalanceKey");function qn(t){let[e,o,n]=t.split(Io);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(qn,"extractAssetFromBalanceKey");function Ss(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Gt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Uu(r??ce).multipliedBy(o[s].amount).toString():""})})}),o}i(Ss,"computeNextBalancesWithNewPrices");function Cs(t,e){let o={};return t.balances?.forEach(n=>{let r=zu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Uu(c??ce).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(Cs,"createBalanceStateForNewAccount");function ks(t,e){for(let o in e){let n=qn(o);if(n){let r=Gt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(ks,"updateAggregatedBalanceStateForNewAccount");function yk(t,e){let o=qn(e);if(!o)return t;let n=Gt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(yk,"removeBalanceFromAggregatedBalance");function Ts(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=qn(l);if(!p)return;!!n.find(d=>zu(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=yk(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(Ts,"computeNextStateAfterWalletBalanceRemoval");function Sk(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(Sk,"matchWalletDetailsWithConnectedWallet");var Ck=su(),Qu=Ou((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Qn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Qn(s,a))?{...a,loading:!1,error:!1,explorerUrl:Sk(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Qn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Qn(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(d=>d.walletType===u.walletType&&d.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 pt().getMultipleTokenBalance({assets:p.map(({symbol:d,address:f,blockchain:h})=>({symbol:d,address:f,blockchain:h})),walletAddress:l});if(u){let d=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},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};Ss(m,g,d);let C=Cs(g,e);f=ks(f,C),d={...d,...C}}),t(h=>({_balances:{...h._balances,...d},_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}=Ts(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 pt().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(d=>{if(d.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};Ss(f,d,l);let{_balances:h,_aggregatedBalances:g}=Ts(f,r,{chains:[d.blockChain]});if(p=g,l=h,!e().connectedWallets.find(C=>C.walletType===r&&C.address===d.address&&C.chain===d.blockChain))return;let m=Cs(d,e);p=ks(p,m),l={...l,...m}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let d=c.filter(f=>f.failed).map(f=>({chain:f.blockChain,walletType:r,address:f.address}));d.length>0&&await e().fetchMainTokensBalances(d,{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=Gt(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 d=new ws(u.amount),f=new ws(l.amount);d.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(Io);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>Ck(()=>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=qn(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),d=l?.amount?new ws(l.amount).shiftedBy(-l.decimals):ce;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:d.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Hu(t){return kk()(Tk((...e)=>({...Qu(...e),..._u(...e),...Fu(...e),...Vp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i(Hu,"createAppStore");var qu=vk(null);function k(){let t=bk(qu);if(xk(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(k,"useAppStore");function Gu(t){let e=Ek();return e.current||(e.current=Hu(t.config)),wk.createElement(qu.Provider,{value:e.current},t.children)}i(Gu,"AppStoreProvider");import{useWallets as Ik}from"@rango-dev/wallets-react";import{detectMobileScreens as Ak}from"@rango-dev/wallets-shared";function sn(){let{getWalletInfo:t}=Ik(),{config:e}=k(),o=Ak();function n(s){let c=t(s),l=e.deepLinking?.appHost,p=e.deepLinking?.targetUrl;if(!(!l||!p))return c.generateDeepLink?.({appHost:l,targetUrl:p})}i(n,"getWalletDeepLink");function r(s){let c=n(s);return c&&o?c:t(s).installLink}i(r,"getWalletLink");function a(s){return!!n(s)&&o}return i(a,"checkHasDeepLink"),{getWalletDeepLink:n,getWalletLink:r,checkHasDeepLink:a}}i(sn,"useDeepLink");function bt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=k(),{state:r,getWalletInfo:a}=Nk(),s=k().blockchains(),{handleDisconnect:c}=Xo(),{checkHasDeepLink:l}=sn(),p=Qp(n()),u=Su(r,a,p,e);u=Bk()?u.filter(C=>C.showOnMobile!==!1&&(r(C.type).installed||l(C.type))):u;let d=Tu(u,r),f=i(C=>!o.find(y=>y.walletType===C&&y.chain===e),"isExperimentalChainNotAdded"),h=Mk(()=>{let C=u?.filter(y=>y.state===vs.CONNECTING)||[];for(let y of C)c(y)},[bu(u)]);Lk(()=>()=>{h()},[]);let g=i(C=>{let y=C.find(T=>T.type===Gn.DEFAULT);return!y||y.state===vs.NOT_INSTALLED?!1:C.filter(T=>T.state!=vs.NOT_INSTALLED&&![Gn.DEFAULT,Gn.WALLET_CONNECT_2,Gn.LEDGER].includes(T.type)&&a(T.type).supportedChains.filter(w=>w.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),m=i((C,y,S)=>ri(S,y)&&f(C)&&!Wk.includes(C)||C==Gn.DEFAULT&&!g(u),"shouldExcludeWallet");return{list:d.filter(C=>!m(C.type,e??"",s)),terminateConnectingWallets:h}}i(bt,"useWalletList");import{Modal as $k}from"@rango-dev/ui";import Fk from"react";import{create as Dk}from"zustand";var Vu="rango-widget";var Vn=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(Vu),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var _k=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"),so=_k;var oe=so(Dk()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),Wo=new Vn({onInit:()=>oe.setState({tabManagerInitiated:!0}),onClaim:()=>oe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>oe.setState({isActiveTab:!1})});function R(t){let{watermark:e}=oe();return Fk.createElement($k,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as pn}from"@lingui/core";import{Alert as Jk,Button as Rk,Divider as Si,Image as eT,MessageBox as tT,RadioRoot as oT}from"@rango-dev/ui";import pe,{useEffect as nT,useMemo as rT,useState as iT}from"react";import{i18n as Qk}from"@lingui/core";import{Typography as ed}from"@rango-dev/ui";import ln from"react";function ui(t,e){return t.find(o=>o.name===e)?.logo}i(ui,"getBlockchainLogo");import{darkTheme as Ok,Image as Uk,styled as Vt,Typography as zk}from"@rango-dev/ui";var di=Vt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${Ok} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),mi=Vt("div",{display:"flex",gap:"$8",alignItems:"center"}),ju=Vt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Xu=Vt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Yu=Vt("div",{display:"flex",gap:"$6",alignItems:"center"}),Zu=Vt("div",{paddingLeft:"48px"}),Ju=Vt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),Ru=Vt(zk,{maxWidth:"100px"}),fi=Vt(Uk,{variants:{disabled:{true:{opacity:"0.5"}}}});function gi(t){let{namespace:e}=t,o=k().blockchains();return ln.createElement(di,{unsupported:!0},ln.createElement(mi,null,ln.createElement(fi,{src:ui(o,e.id),size:40,disabled:!0}),ln.createElement(Xu,null,ln.createElement(ed,{variant:"label",size:"large"},e.label),ln.createElement(ed,{variant:"body",size:"xsmall"},Qk.t("(Currently not supported)")))))}i(gi,"NamespaceUnsupportedItem");import{Checkbox as Xk,Radio as Yk}from"@rango-dev/ui";import Is from"react";import{i18n as Es}from"@lingui/core";import{ChevronDownIcon as qk,ChevronUpIcon as Gk,Divider as Vk,Typography as Kn}from"@rango-dev/ui";import Ne,{useEffect as Kk,useState as jk}from"react";import{Image as od,Tooltip as nd,Typography as Hk}from"@rango-dev/ui";import _t from"react";import{styled as td}from"@rango-dev/ui";var bs=td("div",{display:"flex",alignItems:"center",padding:0,margin:0}),hi=td("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 xs=3;function rd(t){let{chains:e}=t;return _t.createElement(bs,{id:"widget-supported-chains-container"},e.slice(0,xs).map((o,n)=>_t.createElement(nd,{key:o.name,container:W(),side:"bottom",align:"start",content:o.name,sideOffset:4},_t.createElement(hi,{firstItem:n===0},_t.createElement(od,{src:o.logo,size:15})))),e.length>xs&&_t.createElement(nd,{container:W(),side:"bottom",align:"start",sideOffset:4,content:_t.createElement(bs,null,e.map((o,n)=>_t.createElement(hi,{key:o.name,firstItem:n===0},_t.createElement(od,{src:o.logo,size:15}))))},_t.createElement(hi,null,_t.createElement(Hk,{variant:"body",size:"xsmall"},"+",e.length-xs))))}i(rd,"SupportedChainsList");function Mo(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=jk(!1),p=k().blockchains();Kk(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!o&&!r&&u.length>1;return Ne.createElement(di,{hasError:!!o,clickable:!!s,onClick:s},Ne.createElement(mi,null,Ne.createElement(fi,{src:ui(p,e.id),size:40}),Ne.createElement(ju,{showSupportedChains:d||r||!!o},Ne.createElement(Yu,null,Ne.createElement(Kn,{variant:"label",size:"large"},e.label),r&&Ne.createElement(Kn,{variant:"body",size:"small",color:"success500"},Es.t("Connected")),!!o&&Ne.createElement(Kn,{variant:"body",size:"small",color:"error500"},Es.t("Connection failed"))),d&&Ne.createElement(rd,{chains:u}),r&&Ne.createElement(Ru,{variant:"body",size:"small",color:"neutral700"},a),o&&Ne.createElement(Ju,{onClick:()=>l(f=>!f)},Ne.createElement(Kn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},Es.t("See why")),c?Ne.createElement(Gk,{size:12,color:"gray"}):Ne.createElement(qk,{size:12,color:"gray"}))),n),!!o&&c&&Ne.createElement(Ne.Fragment,null,Ne.createElement(Vk,{size:4}),Ne.createElement(Zu,null,Ne.createElement(Kn,{variant:"body",size:"small",color:"neutral700"},o))))}i(Mo,"NamespaceItem");function id(t){let{onClick:e,type:o,namespace:n}=t;return Is.createElement(Mo,{namespace:n,onClick:e,suffix:o==="radio"?Is.createElement(Yk,{value:n.value}):Is.createElement(Xk,{checked:t.value})})}i(id,"NamespaceListItem");import{Button as Zk,styled as ad}from"@rango-dev/ui";var yi=ad("ul",{padding:0,paddingTop:"$16",paddingBottom:"$20",margin:0}),cn=ad(Zk,{minHeight:"$40"});function jn(t){let{targetWallet:e}=t.value,o=e.properties?.find(m=>m.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]=iT([]),u=rT(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:C=>C.includes(m)?C.filter(y=>y!==m):C.concat(m))},"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(m=>m.value))},"onSelectAll"),g=i(m=>r?pe.createElement(oT,{value:l?.[0]},m):pe.createElement(pe.Fragment,null,m),"wrapRadioRoot");return nT(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(C=>C.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(m.map(C=>C.value))}else p(u.map(m=>m.value))},[]),pe.createElement(pe.Fragment,null,pe.createElement(tT,{type:"info",title:pn.t("Connect {wallet}",{wallet:e.title}),description:pn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:pe.createElement(eT,{src:s,size:45})}),r?pe.createElement(pe.Fragment,null,pe.createElement(Si,{size:20}),pe.createElement(Jk,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:pn.t("This wallet can only connect to one chain at a time. ")})):pe.createElement(pe.Fragment,null,pe.createElement(Si,{size:30}),pe.createElement(Rk,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?pn.t("Deselect all"):pn.t("Select all"))),pe.createElement(yi,null,g(pe.createElement(pe.Fragment,null,a?.data.map((m,C,y)=>pe.createElement(pe.Fragment,{key:m.id},m.unsupported?pe.createElement(gi,{namespace:m}):pe.createElement(id,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),C!==y.length-1&&pe.createElement(Si,{size:10})))))),pe.createElement(Si,{size:20}),pe.createElement(cn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},pn.t("Connect")))}i(jn,"Namespaces");import{i18n as Ci}from"@lingui/core";import{Button as mT,Divider as Bs,Image as fT,MessageBox as gT}from"@rango-dev/ui";import{useWallets as hT}from"@rango-dev/wallets-react";import Je from"react";import{styled as aT}from"@rango-dev/ui";var sd=aT("div",{display:"flex",justifyContent:"end"});import{i18n as As}from"@lingui/core";import{Button as sT,Spinner as lT}from"@rango-dev/ui";import{useWallets as cT}from"@rango-dev/wallets-react";import Ns,{useLayoutEffect as pT,useRef as uT,useState as dT}from"react";var ld=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,{connect:a,disconnect:s,state:c}=cT(),[l,p]=dT(null),d=c(o).namespaces?.get(n.value),f=d.accounts?.[0]?.split(":"),h=uT(!1);pT(()=>{r&&!h.current&&g(o,n.value)},[]);let g=i(async(y,S)=>{try{h.current=!0,await a(y,[{namespace:S,network:""}])}catch(T){p(T)}finally{h.current=!1}},"handleConnectNamespace"),m=i(async y=>{p(null),y.connected?await s(o,[n.value]):g(o,n.value)},"handleButtonClick"),C=i(()=>d.connected?As.t("Disconnect"):l?As.t("Try again"):As.t("Connect"),"getButtonText");return Ns.createElement(Mo,{namespace:n,connected:d.connected,error:l?.message,address:d.connected?ao(f?.[f?.length-1]):"",suffix:d.connecting?Ns.createElement(lT,{color:"info"}):Ns.createElement(sT,{id:"widget-name-space-connect-btn",variant:"ghost",type:d.connected?"error":"primary",size:"xsmall",onClick:async()=>m(d)},C())})},"NamespaceDetachedItem");function Xn(t){let{selectedNamespaces:e,value:o,onDisconnectWallet:n}=t,{targetWallet:r}=o,{state:a}=hT(),s=a(r.type);return Je.createElement(Je.Fragment,null,Je.createElement(gT,{type:"info",title:Ci.t("Connect {wallet}",{wallet:r.type}),description:Ci.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:Je.createElement(fT,{src:r.image,size:45})}),Je.createElement(Bs,{size:30}),Je.createElement(sd,null,Je.createElement(mT,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:s.connecting||!s.connected,onClick:n},Ci.t("Disconnect wallet"))),Je.createElement(yi,{id:"widget-detached-namespace-list",as:"ul"},r.needsNamespace?.data.map((c,l,p)=>Je.createElement(Je.Fragment,{key:c.id},c.unsupported?Je.createElement(gi,{namespace:c}):Je.createElement(ld,{walletType:r.type,namespace:c,initialConnect:e?.includes(c.value)}),l!==p.length-1&&Je.createElement(Bs,{size:10})))),Je.createElement(Bs,{size:20}),Je.createElement(cn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},Ci.t("Done")))}i(Xn,"Detached");import{i18n as un}from"@lingui/core";import{Divider as pd,Image as kT,MessageBox as TT,Select as wT,TextField as vT}from"@rango-dev/ui";import St,{useEffect as bT,useState as ud}from"react";import{namespaces as yT}from"@rango-dev/wallets-shared";var ki={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ws(t){let e=t?yT[t]?.derivationPaths:null;return e?[...e,ki]:[]}i(Ws,"getDerivationPaths");import{Button as ST,styled as Ms,Typography as CT}from"@rango-dev/ui";var cd=Ms("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ls=Ms(CT,{paddingLeft:"$10"}),Ps={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},jP=Ms(ST,{minHeight:"$40"});var dd="0";function Yn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=ud(null),[c,l]=ud(dd),p=a===ki.id,u=Ws(o),d=i(({value:h})=>{let g=u?.find(m=>m.id===h);g&&(a===ki.id&&Number.isNaN(Number(c))&&l(dd),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 bT(()=>{s(Ws(o)[0]?.id||null)},[o]),St.createElement(St.Fragment,null,St.createElement(pd,{size:20}),St.createElement(TT,{type:"info",title:un.t("Select Derivation Path"),description:un.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:St.createElement(kT,{src:n,size:45})}),St.createElement(cd,null,St.createElement(Ls,{variant:"body",size:"xsmall",color:"$neutral600"},un.t("Choose Derivation Path Template")),St.createElement(wT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:Ps}}),St.createElement(pd,{size:20}),St.createElement(Ls,{variant:"body",size:"xsmall",color:"$neutral600"},p?un.t("Enter Path"):un.t("Enter Index")),St.createElement(vT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Ps})),St.createElement(cn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},un.t("Confirm")))}i(Yn,"DerivationPath");import{i18n as dn}from"@lingui/core";import{Image as IT,MessageBox as _s,WalletState as AT}from"@rango-dev/ui";import{useWallets as NT}from"@rango-dev/wallets-react";import Lo from"react";import{keyframes as xT,styled as Ti}from"@rango-dev/ui";var i_=Ti("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),md=Ti("div",{position:"relative"}),ET=xT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),fd=Ti("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ET} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),gd=Ti("div",{"& img":{borderRadius:"50%"}});function Ds(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=NT();return Un(a(n))===AT.CONNECTED?Lo.createElement(_s,{type:"success",title:dn.t("Wallet Connected"),description:dn.t("Your wallet is connected, you can use it to swap.")}):o?Lo.createElement(_s,{type:"error",title:dn.t("Failed to Connect"),description:o||dn.t("Your wallet is not connected. Please try again.")}):Lo.createElement(_s,{type:"loading",title:dn.t("Connecting to your wallet"),description:dn.t("Click connect in your wallet popup."),icon:Lo.createElement(md,null,Lo.createElement(gd,null,Lo.createElement(IT,{src:r,size:45})),Lo.createElement(fd,null))})}i(Ds,"ConnectStatus");import{i18n as $s}from"@lingui/core";import{Button as BT,Divider as hd,MessageBox as WT}from"@rango-dev/ui";import wi from"react";function Fs(t){let{displayName:e,onConfirm:o,id:n}=t;return wi.createElement(WT,{id:n,title:$s.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:$s.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},wi.createElement(hd,{size:18}),wi.createElement(hd,{size:32}),wi.createElement(BT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},$s.t("Confirm")))}i(Fs,"ExperimentalChain");function yd(t,e){return t().status==="init"&&!!e}i(yd,"isOnStatus");function Zn(t){return t().status==="namespace"}i(Zn,"isOnNamespace");function Jn(t){return t().status==="derivationPath"}i(Jn,"isOnDerivationPath");function xo(t){return t().status==="detached"}i(xo,"isOnDetached");var _T=3e3,DT=300;function Rn(t){let e=PT(),[o,n]=Sd(!1),[r,a]=Sd(),s=i(w=>{a(w.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=bt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:f,handleDisconnect:h}=Xo(),g=i(w=>{u(t.wallet,w).then(T).catch(s)},"handleConfirmNamespaces"),m=i(()=>{y()},"handleDetachedConfirm"),C=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"),S=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),T=i((w,v)=>{let N=w.status==="connected",B=["disconnected","disconnected-unhandled"].includes(w.status);N?(t.onConnect?.(),v||(e.current=setTimeout(y,_T))):B&&y()},"afterConnected");return LT(()=>{if(t.wallet){S();let w=!1,v=!0;i(()=>{setTimeout(()=>{v=!1,w||n(!0)},DT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(B=>{["namespace","Detached","derivation-path"].includes(B.status)||(w=!0),T(B,v)}).catch(s)}},[t.wallet]),lo.createElement(R,{id:t.id,open:o,onClose:y,onExit:()=>{S(),c(),t.onClose&&t.onClose()},container:W()},yd(d,t.wallet)&&lo.createElement(lo.Fragment,null,lo.createElement(Ds,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),lo.createElement(MT,{direction:"vertical",size:32})),Zn(d)&&lo.createElement(jn,{onConfirm:g,value:d().namespace}),Jn(d)&&lo.createElement(Yn,{onConfirm:C,value:d().derivationPath}),xo(d)&&lo.createElement(Xn,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces}))}i(Rn,"StatefulConnectModal");import ja from"react";import $T,{Fragment as FT}from"react";import{MemoryRouter as OT,useInRouterContext as UT}from"react-router";function vi({children:t}){let o=UT()?FT:OT;return $T.createElement(o,null,t)}i(vi,"AppRouter");import{I18nManager as _0}from"@rango-dev/ui";import Ip from"react";import He from"react";import{useRoutes as f0}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 fn,useRef as Bi}from"react";import rt from"bignumber.js";import{create as Zd}from"zustand";import{subscribeWithSelector as Jd}from"zustand/middleware";import{createContext as zT,useContext as QT}from"react";var Cd=zT({swapMode:"swap",isMultiMode:!1});function Ct(){let{swapMode:t,isMultiMode:e}=QT(Cd);return{swapMode:t,isMultiMode:e}}i(Ct,"useSwapMode");import{i18n as Tt}from"@lingui/core";import{getRelatedWalletOrNull as GT,RouteEventType as wD}from"@rango-dev/queue-manager-rango-preset";import je from"bignumber.js";import{PendingSwapNetworkStatus as tr}from"rango-types";import{i18n as Ke}from"@lingui/core";var ne=i(()=>({genericServerError:Ke.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Ke.t("Please reset your liquidity sources."),description:Ke.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Ke.t("No Routes Found."),description:Ke.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:Ke.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Ke.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Ke.t("High Price Impact"),title:Ke.t("Price impact is too high!"),description:Ke.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Ke.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Ke.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Ke.t("USD Price Unknown"),title:Ke.t("USD Price Unknown, Cannot calculate Price Impact."),description:Ke.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Ke.t("Confirm USD Price Unknown")}}),"errorMessages");function kd(t){return t.type===0?t.diagnosisMessage??ne().noResultError.title:t.type===1?t.diagnosisMessage??ne().genericServerError:""}i(kd,"getQuoteErrorMessage");import{i18n as bi}from"@lingui/core";var Po=i(()=>({connectWallet:bi.t("Connect Wallet"),swap:bi.t("Swap"),swapAnyway:bi.t("Swap anyway"),ethWarning:bi.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Os(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(Os,"getFeeLabel");var Us=["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 qT}from"@rango-dev/queue-manager-rango-preset";import lD 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 jt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(jt,"getPriceImpactLevel");function xi(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=qT(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=Eo(a?a.toBlockchain:n.fromBlockchain,e),l=Eo(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),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:d}}i(xi,"createRetryQuote");function mn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=er(o),s=kt(o);if(o&&a&&s){let p=Kt(a.toString(),s.toString());if(!!p&&Ld(a,p)){let d=Ii(o?.swaps,n),f=jt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:f}}}if(e&&Dd(e,o))return{type:4,usdValueChange:D(kt(o)?.minus(kt(e)??0).toString()??"0",null,2),percentageChange:D(Kt(kt(e)??"1",kt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=Ai(o.swaps),l=r>tn;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(mn,"generateQuoteWarnings");function Nd(t){return![4].includes(t.type)}i(Nd,"isQuoteWarningConfirmationRequired");function Kt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:zs(t.toString(),e.toString());return n&&n<0?n:null}i(Kt,"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"),Ei=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"),Md=i(t=>{let e=i((o,n)=>{let r=Us.indexOf(o.value),a=Us.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Ld(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 je(r)))}i(Ld,"hasHighValueLoss");function $d(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new je(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new je(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 je(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new je(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 je(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new je(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=Tt.t({id:"Required: >= {min} {symbol}",values:{min:D(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=Tt.t({id:"Required: > {min} {symbol}",values:{min:D(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=Tt.t({id:"Required: <= {max} {symbol}",values:{max:D(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=Tt.t({id:"Required: < {max} {symbol}",values:{max:D(n,6,6),symbol:e.from.symbol}}),s=ne().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:Po().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Po().swap,action:"confirm-swap",disabled:!0}:s?{title:Po().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Po().ethWarning,action:"confirm-warning",disabled:!1}:{title:Po().swap,action:"confirm-swap",disabled:!1}:{title:Po().connectWallet,action:"connect-wallet",disabled:!1}}i(Od,"getSwapButtonState");function Qs(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ce))&&e&&e!=="0"&&n!==0)}i(Qs,"canComputePriceImpact");function Hs(t,e){let o=ce;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 je(r.amount).multipliedBy(a||0))}return o}i(Hs,"getUsdFeeOfStep");function Ii(t,e){return t.reduce((o,n)=>o.plus(Hs(n,e)),ce)}i(Ii,"getTotalFeeInUsd");function qs(t){let e=ce,o=new je(t.price||0);return e=e.plus(new je(t.amount).multipliedBy(o)),e}i(qs,"getUsdFee");function Ud(t){return t.reduce((e,o)=>e.plus(qs(o)),ce)}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 Ai(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(Ai,"getMinRequiredSlippage");function _d(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(_d,"hasProperSlippage");function Hd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:d,affiliateWallets:f,destination:h,contractCall:g}=t,m=a?.reduce((S,T)=>(S[T.chain]=T.address,S),{}),C=[];return r?.forEach(S=>{C.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??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:C,selectedWallets:m??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(Hd,"createQuoteRequestBody");function qd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(qd,"getWalletsForNewSwap");function er(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new je(e).multipliedBy(o)}i(er,"getUsdInputFrom");function kt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new je(e).multipliedBy(o)}i(kt,"getUsdOutputFrom");function zs(t,e){return new je(e).div(new je(t)).minus(1).multipliedBy(Td).toNumber()}i(zs,"getPercentageChange");function Dd(t,e){let o=er(t),n=kt(t),r=kt(e);if(!o||!n||!r)return!1;let a=zs(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=No({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 je(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=D(new je(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=Tt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=Tt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=Tt.t(" for input and network fee")),Tt.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:ht(s.asset.blockchain,o)}})})}i(Gd,"generateBalanceWarnings");function or(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==tr.NetworkChanged}i(or,"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,"")),or(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?GT(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case tr.WaitingForConnectingWallet:r=u?Tt.t("Connect {wallet}",{wallet:u}):r;break;case tr.WaitingForQueue:r=r||Tt.t("Waiting for other running tasks to be finished");break;case tr.WaitingForNetworkChange:r=r||Tt.t("Waiting for changing wallet network");break;case tr.NetworkChangeFailed:r=r||Tt.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=No({filter:"all",quote:n}),c=No({filter:"required",quote:n}),l=s.every(d=>r.some(f=>f.chain===d)),p=c.every(d=>r.some(f=>f.chain===d)),u=o&&a?Zo(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 Ni=i((t,e)=>t?.usdPrice?new rt(e||ce).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Rd=i(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new rt(0),outputUsdValue:new rt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=ce,a=o.inputUsdValue;return On(o.inputAmount)?(e&&(n=e?.outputAmount?new rt(e?.outputAmount):null,a=er(e)??ce,r=kt(e)??ce),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new rt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new rt(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new rt(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:Ni(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 rt(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=hu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;ei(e)||(o=lu(o),o=cu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new rt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Ni(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:Ni(n??null,s),outputUsdValue:new rt(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?Ni(e.toToken,e.outputAmount?.toString()||""):new rt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new rt(0),inputUsdValue:new rt(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new rt(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})}),"initializer"),em=Zd()(Jd(Rd)),tm=Zd()(Jd(Rd)),VT=so(em),KT=so(tm);function z(){let{swapMode:t}=Ct();return so(t==="refuel"?tm:em)}i(z,"useQuoteStore");var om=i((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})},"subscribeCallback"),nm=VT.subscribe(om),rm=KT.subscribe(om);function im(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=z()(),u=k().config,d=k().fetchStatus,f=k().blockchains(),{findToken:h}=k(),{setAffiliateRef:g,setAffiliatePercent:m,setAffiliateWallets:C}=k(),y=u?.from?.tokens,S=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,v=Bi(void 0),N=Bi(void 0),B=Bi(void 0),b=Bi(void 0);fn(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),fn(()=>{if(d==="success"){r();let E=f.find(I=>I.name===u?.from?.blockchain),x=u?.from?.token,M=x&&h(x);(E||!E&&B.current)&&n(E??null),M?a({token:M,meta:{blockchains:f}}):!M&&v.current&&a({token:null}),B.current=u?.from?.blockchain,v.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),fn(()=>{ds(s,y)&&a({token:null}),ms(l,S)&&n(null)},[y,S]),fn(()=>{ds(c,T)&&a({token:null}),ms(p,w)&&o(null)},[T,w]),fn(()=>{if(d==="success"){r();let E=f.find(I=>I.name===u?.to?.blockchain),x=u?.to?.token,M=x&&h(x);(E||!E&&b.current)&&o(E??null),M?e({token:M,meta:{blockchains:f}}):!M&&N.current&&e({token:null}),b.current=u?.to?.blockchain,N.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,d]),fn(()=>{g(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),C(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(im,"useSyncStoresWithConfig");import{useEffect as Ks,useRef as jT}from"react";import{useInRouterContext as XT,useLocation as YT,useSearchParams as ZT}from"react-router-dom";function Gs(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(Gs,"convertTokenSearchParamToAsset");function Vs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Vs,"tokenToSearchParam");function Xs(){let t=YT(),[e,o]=ZT(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:f}=z()(),h=k().fetchStatus,g=k().blockchains(),m=XT(),{updateIframe:C,updateCampaignMode:y}=k(),S=k().isInCampaignMode(),T=jT(),{findToken:w}=k(),v=i(()=>{let B={};for(let[L,Y]of e.entries())L.startsWith("utm_")&&(B[L]=Y);let b=e.get("fromAmount"),E=e.get("fromBlockchain"),x=e.get("fromToken"),M=e.get("toBlockchain"),I=e.get("toToken"),_=e.get("autoConnect"),U=e.get("clientUrl"),q=e.get("liquiditySources"),j=e.get("blockchain");return{fromAmount:b,fromBlockchain:E,fromToken:x,toBlockchain:M,toToken:I,autoConnect:_,clientUrl:U,liquiditySources:q,utmQueryParams:B,blockchain:j}},"getUrlSearchParams"),N=i(B=>{for(let b in B)B[b]||delete B[b];o(B,{replace:!0})},"updateUrlSearchParams");Ks(()=>{let{autoConnect:B,clientUrl:b,utmQueryParams:E,blockchain:x}=v();m&&h==="success"&&N({fromBlockchain:n?.name,fromToken:Vs(a),toBlockchain:r?.name,toToken:Vs(s),fromAmount:c,autoConnect:B??void 0,clientUrl:b??void 0,blockchain:x??void 0,liquiditySources:S?T.current:void 0,...E})},[t.pathname,c,n,a,r,s,S,h]),Ks(()=>{if(!m)return;let B=v();if(!T.current&&B.liquiditySources&&(T.current=B.liquiditySources),B.fromAmount&&f(B.fromAmount),h==="success"){let b=g.find(U=>U.name===B.fromBlockchain),E=B.fromToken&&b&&Gs(B.fromToken,b),x=E?w(E):void 0,M=g.find(U=>U.name===B.toBlockchain),I=B.toToken&&M&&Gs(B.toToken,M),_=I?w(I):void 0;b&&(l(b),x&&u({token:x,meta:{blockchains:g}})),M&&(p(M),_&&d({token:_,meta:{blockchains:g}}))}},[h]),Ks(()=>{let{clientUrl:B,liquiditySources:b}=v();C("clientUrl",B||void 0),y("liquiditySources",b?.split(",")??void 0)},[])}i(Xs,"useSyncUrlAndStore");import{i18n as Cn}from"@lingui/core";import{Alert as Sv,Button as Cv,darkTheme as kv,Divider as El,DoneIcon as Tv,styled as wv,TextField as vv,Typography as bv}from"@rango-dev/ui";import Ye,{useState as xv}from"react";import{useNavigate as Ev,useSearchParams as Iv}from"react-router-dom";import{ChevronRightIcon as JT,Divider as pm,Image as RT,Typography as um}from"@rango-dev/ui";import xt from"react";import{darkTheme as am,styled as Ys}from"@rango-dev/ui";var sm=Ys("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${am} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${am} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),lm=Ys("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),cm=Ys("div",{display:"flex"});function Zs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return xt.createElement(lm,null,xt.createElement(um,{size:"large",variant:"label"},n),xt.createElement(pm,{size:10}),xt.createElement(sm,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},xt.createElement(cm,null,r&&xt.createElement(xt.Fragment,null,xt.createElement(RT,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),xt.createElement(pm,{size:4,direction:"horizontal"})),xt.createElement(um,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),xt.createElement(JT,{size:12,color:"black"})))}i(Zs,"BlockchainSelectorButton");import{i18n as ol}from"@lingui/core";import{Button as nw,Divider as gm,MessageBox as rw}from"@rango-dev/ui";import co,{useEffect as hm,useState as nl}from"react";import{i18n as Wi}from"@lingui/core";import{Divider as _o,ExternalLinkIcon as tw,Image as ow,Typography as hn}from"@rango-dev/ui";import ke from"react";var dm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function mm(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(mm,"generateExplorerLink");import{Button as ew,darkTheme as gn,styled as Js}from"@rango-dev/ui";var Rs=Js("a",{textDecoration:"none",color:"$colors$neutral700",[`.${gn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${gn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${gn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${gn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),fm=Js("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${gn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${gn} &`]:{color:"$colors$neutral900"}}}),el=Js(ew,{minHeight:"$40"});function tl(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=mm(n.address,s),l=i(()=>window.open(dm,"_blank"),"onClickLearnMore");return ke.createElement(R,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:W()},ke.createElement(fm,null,ke.createElement(ow,{src:n.image===""?Xr:n.image,size:45,type:"circular"}),ke.createElement(_o,{size:4}),ke.createElement(hn,{variant:"title",size:"medium"},n.symbol),ke.createElement(hn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),ke.createElement(_o,{size:4}),ke.createElement(hn,{variant:"body",size:"medium"},c?ke.createElement(Rs,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,ke.createElement(tw,{size:12,color:"gray"})):ke.createElement(Rs,null,n.address)),ke.createElement(_o,{size:4}),n.coinSource&&ke.createElement(hn,{className:"_coin-source",variant:"body",size:"xsmall"},Wi.t("via")," ",ke.createElement(hn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),ke.createElement(_o,{size:"32"}),ke.createElement(hn,{size:"medium",variant:"body",className:"_custom-token-description"},Wi.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),ke.createElement(_o,{size:40}),ke.createElement(_o,{size:10}),ke.createElement(el,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Wi.t("Import Anyway")),ke.createElement(_o,{size:10}),ke.createElement(el,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Wi.t("Learn More")))}i(tl,"CustomTokenModal");function nr(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=k(),[d,f]=nl(!1),[h,g]=nl(!1),[m,C]=nl(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),S=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),T=i(()=>{C(!0),S()},"handleErrorModalButtonClick"),w=i(()=>{m&&n?.type==="network-error"&&(C(!1),y()),l()},"handleExit"),v=i(()=>{e&&(u(e),c())},"handleSubmit");return hm(()=>{n&&f(!0)},[n]),hm(()=>{o&&e&&g(!0)},[o,e]),co.createElement(co.Fragment,null,co.createElement(R,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:S,onExit:w,container:W()},co.createElement(rw,{title:n?.title??"",type:"error",description:n?.message||ol.t("Failed Network, Please retry.")},co.createElement(gm,{size:40}),co.createElement(gm,{size:10}),co.createElement(nw,{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"?ol.t("Retry"):ol.t("Add another custom token")))),o&&e&&co.createElement(tl,{blockchain:o,token:e,onSubmitClick:v,onClose:()=>g(!1),open:h,onExit:p}))}i(nr,"ImportCustomToken");import{useManager as dv}from"@rango-dev/queue-manager-react";import{BottomLogo as mv,Divider as jm,Header as fv}from"@rango-dev/ui";import We,{useEffect as Ui,useLayoutEffect as gv,useRef as Xm,useState as Ym}from"react";import{useRef as iw}from"react";function rr(){return window.self!==window.top}i(rr,"isAppLoadedIntoIframe");function rl(){let t=iw(null),{iframe:e}=k(),o=rr()&&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(rl,"useIframe");import{useNavigate as aw}from"react-router-dom";function Xe(){let t=aw();return()=>t(-1)}i(Xe,"useNavigateBack");import{useLayoutEffect as sw,useState as ir}from"react";var ym=480,Sm=768,Cm=1024,km=1200,lw=i(()=>{let[t,e]=ir(!1),[o,n]=ir(!1),[r,a]=ir(!1),[s,c]=ir(!1),[l,p]=ir(!1),u=i(()=>{e(window.innerWidth<=ym),n(window.innerWidth>ym&&window.innerWidth<=Sm),a(window.innerWidth>Sm&&window.innerWidth<=Cm),c(window.innerWidth>Cm&&window.innerWidth<=km),p(window.innerWidth>km)},"handleResize");return sw(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),yn=lw;import{createTheme as ul,darkTheme as Tw,lightTheme as ww}from"@rango-dev/ui";import{useEffect as vw,useState as bw}from"react";import{theme as Cw,darkColors as kw}from"@rango-dev/ui";import cl from"react";var Mi=16,Li=255,Tm=.11;function cw(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(cw,"expandShortHexColor");function pw(t,e){return t.padStart(e,"0")}i(pw,"pad");function il(t){let e=Math.min(Math.max(Math.round(t),0),Li);return pw(e.toString(Mi),2)}i(il,"intToHex");function uw(t){return`#${il(t.red)}${il(t.green)}${il(t.blue)}`}i(uw,"rgbToHex");function dw(t){let e=parseInt(t.slice(1,3),Mi),o=parseInt(t.slice(3,5),Mi),n=parseInt(t.slice(5,7),Mi);return{red:e,green:o,blue:n}}i(dw,"hexToRGB");function mw(t,e){let o=1-Tm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(mw,"generateShade");function fw(t,e){let o=Tm*e;return{red:t.red+(Li-t.red)*o,green:t.green+(Li-t.green)*o,blue:t.blue+(Li-t.blue)*o}}i(fw,"generateTint");function gw(t){return wm(t,mw)}i(gw,"calculateShades");function hw(t){return wm(t,fw)}i(hw,"calculateTints");function wm(t,e){let o=dw(t),n=[];for(let r=1;r<9;r++)n.push(uw(e(o,r)));return n}i(wm,"calculateColors");function al(t,e,o){let a=hw(t).reverse().concat(t),s=gw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let d=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${d}`]=f)}return l}i(al,"createTintsAndShades");function sl(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)&&!fu(r)){let l=cw(a);Object.assign(n,al(l,r,s))}}return{...n,...e}}i(sl,"expandToGenerateThemeColors");var vm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),yw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=vm(o%52)+e;return vm(o%52)+e},"toAlphabeticName"),Sw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ll=i(t=>yw(Sw(5381,JSON.stringify(t))>>>0),"toHash");function pl(t){let e=Cw.colors,o={...e,...kw},n,r;if(t?.light){let s={colors:sl(e,t.light)};n={id:`${us}-light-${ll(s)}`,tokens:s}}if(t?.dark){let s={colors:sl(o,t.dark,{reverseNeutralRange:!0})};r={id:`${us}-dark-${ll(s)}`,tokens:s}}return{light:n,dark:r}}i(pl,"customizedThemeTokens");function bm(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>cl.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(cl.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(cl.cloneElement(e,{key:c}))}}),o}i(bm,"joinList");function xm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(xm,"doesWindowPreferDarkColorScheme");function po(t){let{colors:e,fontFamily:o=Jp,borderRadius:n=Au,secondaryBorderRadius:r=Nu}=t,[a,s]=bw(xm()?"dark":"light"),{theme:c}=k(),{dark:l,light:p}=pl(e),u=ul({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,ww.className],f=[u.className,Tw.className];if(p){let g=ul(p.id,p.tokens);d.push(g.className)}if(l){let g=ul(l.id,l.tokens);f.push(g.className)}return vw(()=>{let g=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return xm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=d.join(" "),m=f.join(" ");return c==="auto"?a==="dark"?m:g:c==="dark"?m:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(po,"useTheme");var wt=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 Em}from"@lingui/core";import{Alert as xw,Button as Ew}from"@rango-dev/ui";import Im from"react";function dl(t){return Im.createElement(xw,{action:Im.createElement(Ew,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Em.t("Activate this tab")),type:"warning",variant:"alarm",title:Em.t("Another tab is open and handles transactions.")})}i(dl,"ActivateTabAlert");import{i18n as ml}from"@lingui/core";import{Button as Iw,Divider as Aw,MessageBox as Nw}from"@rango-dev/ui";import Pi from"react";function fl(t){let{open:e,onClose:o,onConfirm:n}=t;return Pi.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:W()},Pi.createElement(Nw,{title:ml.t("Activate current tab"),type:"warning",description:ml.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.")},Pi.createElement(Aw,{size:20}),Pi.createElement(Iw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},ml.t("Confirm"))))}i(fl,"ActivateTabModal");import{ChevronLeftIcon as Mw}from"@rango-dev/ui";import _m from"react";import{css as Bw,darkTheme as Am,IconButton as Ww,styled as Do}from"@rango-dev/ui";var Dt=Do(Ww,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Am} &`]:{backgroundColor:"$neutral"}}}),Nm=Do("div",{position:"absolute",background:"$secondary500",[`.${Am} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),uo=Do("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Bm=Do("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"}}}}),Wm=Do("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Mm=Do("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Lm=Bw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Pm=Do("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function gl(t){return _m.createElement(Dt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},_m.createElement(Mw,{color:"black",size:16}))}i(gl,"BackButton");import{i18n as Lw}from"@lingui/core";import{Button as Pw,Typography as _w}from"@rango-dev/ui";import hl from"react";function yl(t){return hl.createElement(uo,null,hl.createElement(Pw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},hl.createElement(_w,{variant:"label",size:"medium",color:"error500"},Lw.t("Cancel"))))}i(yl,"CancelButton");import{i18n as Dw}from"@lingui/core";import{Image as $w,Tooltip as Fw,WalletIcon as Ow}from"@rango-dev/ui";import $o from"react";function Sl(t){let{list:e}=bt(),o=e.filter(r=>r.state==="connected"),n=o.length?$o.createElement("div",{className:Lm()},o.map(r=>$o.createElement(Pm,{key:r.title},$o.createElement($w,{src:r.image,size:14})))):Dw.t("Connect Wallet");return $o.createElement(Fw,{container:t.container,side:"bottom",content:n},$o.createElement(Dt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&$o.createElement(Nm,null),$o.createElement(Ow,{size:18,color:"black"})))}i(Sl,"WalletButton");import{i18n as Di}from"@lingui/core";import{NotificationsIcon as tv,Popover as ov,SettingsIcon as nv,Tooltip as $i,TransactionIcon as rv}from"@rango-dev/ui";import $e from"react";import{Notifications as Hw}from"@rango-dev/ui";import qw from"react";import{useNavigate as Gw}from"react-router-dom";import{create as Uw}from"zustand";import{persist as zw,subscribeWithSelector as Qw}from"zustand/middleware";var Be=so(Uw()(zw(Qw((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 Cl(){let t=Gw(),{getNotifications:e,clearNotifications:o}=Be(),n=e(),r=k().blockchains(),{findToken:a}=k();return qw.createElement(Hw,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Hp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${O.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(Cl,"NotificationContent");import{useManager as Vw}from"@rango-dev/queue-manager-react";import{InProgressIcon as Kw}from"@rango-dev/ui";import Dm from"react";var jw=i(()=>{let{manager:t}=Vw();return wt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Dm.createElement(Mm,{id:"widget-header-history-badge-container"},Dm.createElement(Kw,{color:"info",size:6})):null},"InProgressTransactionBadge"),$m=jw;import{EventSeverity as Xw}from"@rango-dev/queue-manager-rango-preset";import{Typography as Yw}from"@rango-dev/ui";import Fm from"react";function Om(){let{getNotifications:t}=Be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Xw.WARNING);return o?Fm.createElement(Bm,{isSever:n},Fm.createElement(Yw,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Om,"NotificationsBadge");import{RefreshProgressButton as Zw}from"@rango-dev/ui";import kl,{useEffect as Jw,useState as Um}from"react";var Rw=1e3,zm=60,ev=100;function _i({onClick:t}){let[e,o]=Um(0),[n,r]=Um(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Jw(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===zm&&c()},Rw):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 kl.createElement(Dt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},kl.createElement(Wm,{onTransitionEnd:()=>r(!1),isRefetched:n},kl.createElement(Zw,{size:22,color:t?"black":"gray",progress:e/zm*ev})))}i(_i,"RefreshButton");function Fo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=k(),c=nt("notification",s)||r.includes("notifications");return $e.createElement($e.Fragment,null,!r.includes("refresh")&&$e.createElement($i,{container:a||W(),side:"top",content:Di.t("Refresh")},$e.createElement(_i,{onClick:e})),!c&&$e.createElement(ov,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:W(),content:$e.createElement(Cl,null)},$e.createElement("div",null,$e.createElement($i,{container:W(),side:"top",content:Di.t("Notifications")},$e.createElement(Dt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},$e.createElement(tv,{size:18,color:"black"}),$e.createElement(Om,null))))),!r.includes("settings")&&$e.createElement($i,{container:W(),side:"top",content:Di.t("Settings")},$e.createElement(Dt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},$e.createElement(nv,{size:18,color:"black"}))),!r.includes("history")&&$e.createElement($i,{container:W(),side:"top",content:Di.t("History")},$e.createElement(Dt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},$e.createElement(rv,{size:18,color:"black"}),$e.createElement($m,null))))}i(Fo,"HeaderButtons");import{i18n as Tl}from"@lingui/core";import{Divider as Hm,MessageBox as sv,RefreshIcon as lv}from"@rango-dev/ui";import Sn from"react";import{Button as iv,styled as av}from"@rango-dev/ui";var Qm=av(iv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function wl(t){let{open:e,onClose:o}=t;return Sn.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:W()},Sn.createElement(sv,{title:Tl.t("Something went wrong"),type:"error",description:Tl.t("Something went wrong. Please refresh the app.")},Sn.createElement(Hm,{size:30}),Sn.createElement(Qm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Sn.createElement(lv,{size:20,color:"primary"}),Sn.createElement(Hm,{size:4,direction:"horizontal"}),Tl.t("Refresh"))))}i(wl,"RefreshModal");function vl(t){let e=t.target;if(e){let o=e.scrollTop,n=W();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(vl,"onScrollContentAttachStatusToContainer");import{css as pv,styled as Fi}from"@rango-dev/ui";var Oi=pv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),qm=Fi("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"}}}}),Gm=Fi("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Vm=Fi("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"}}}),Km=Fi("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=rl(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=k(),[u,d]=Ym(!1),{config:{features:f,theme:h}}=k(),{watermark:g,setShowCompactTokenSelector:m}=oe(),C=g==="FULL",{activeTheme:y}=po(h||{}),[S,T]=Ym(!1),w=nt("connectWalletButton",f),{isActiveTab:v,tabManagerInitiated:N,showActivateTabModal:B,setShowActivateTabModal:b,activateCurrentTab:E}=oe(),x=Xe(),{manager:M}=dv(),{isTablet:I,isMobile:_}=yn(),q=wt(M).map(({swap:le})=>le).some(le=>le.status==="running"),j=i(()=>E(Wo.forceClaim,q),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),Y=typeof r.hasBackButton>"u"||r.hasBackButton,ee=Xm(null),Z=Xm(null);return Ui(()=>{let le=(p?.swapBoxBanner?.routes?.length??0)===0,ue=!!p?.swapBoxBanner?.routes?.some(we=>location.pathname.endsWith(we));T(!!p?.swapBoxBanner&&(le||ue))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),Ui(()=>(rr()&&Z.current&&e(Z.current),()=>{o()}),[]),Ui(()=>(ee.current?.addEventListener("scroll",vl),()=>{ee.current?.removeEventListener("scroll",vl)}),[]),Ui(()=>{d(c==="failed")},[c]),gv(()=>{let le=s==="auto"||!Z.current||rr(),ue=_||I,we=i(()=>{le||(ue?Z.current.style.height=`${window.innerHeight-Z.current.offsetTop}px`:Z.current.style.height=`${700}px`,m(parseFloat(Z.current.style.height)<640))},"handler");return we(),window.addEventListener("resize",we),()=>window.removeEventListener("resize",we)},[s,_,I]),We.createElement(qm,{height:s,id:ot.SWAP_BOX_ID,className:`${y()} ${Oi()}`,ref:Z,showBanner:S},We.createElement(fv,{prefix:Y?We.createElement(gl,{onClick:()=>{x(),r.onBack?.()}}):null,title:r.title,suffix:We.createElement(We.Fragment,null,r.suffix,r.onWallet&&!w&&We.createElement(Sl,{container:W(),onClick:L,isConnected:!!l?.length}),r.onCancel&&We.createElement(yl,{onClick:r.onCancel}))}),We.createElement(Gm,{ref:ee},n),We.createElement(fl,{open:B,onClose:()=>b(!1),onConfirm:j}),We.createElement(Vm,null,We.createElement("div",{className:"footer__content"},N&&!v&&We.createElement("div",{className:"footer__alert"},We.createElement(dl,{onActivateTab:j}),We.createElement(jm,{size:10})),a),We.createElement(jm,{size:12}),We.createElement("div",{className:`footer__logo ${C?"logo__show":"logo__hidden"}`},We.createElement(mv,null))),S&&We.createElement(Km,null,p?.swapBoxBanner?.element),We.createElement(wl,{open:u,onClose:()=>d(!1)}))}i(ie,"Layout");import{styled as hv}from"@rango-dev/ui";var Zm="$20 $20 $10 $20",bl=hv("div",{padding:Zm,overflowY:"auto",flexGrow:1});import{styled as yv}from"@rango-dev/ui";var se=yv("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 mo}from"@lingui/core";import{useState as xl}from"react";function Jm(){let[t,e]=xl(!1),[o,n]=xl(null),[r,a]=xl(null),{findToken:s}=k(),c=k().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(d,f){switch(d){case"duplicated":return{type:d,title:mo.t("Duplicate Token"),message:mo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:mo.t("Token Already Exists"),message:mo.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:d,title:mo.t("Token Not Found"),message:mo.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:d,title:mo.t("Network error"),message:mo.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:f})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===f.toLowerCase())){let y=p("duplicated");n(y);return}let g=await pt().getCustomToken({blockchain:d,address:f});if(!g||!g.token||g.error){let y=p("not-found",d);n(y);return}let m=g.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let y=p("token-exist");n(y);return}return a({...m,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",d);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(Jm,"useFetchCustomToken");var Av=wv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${kv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Rm(){let t=Ev(),[e]=Iv(),o=Xe(),n=k().blockchains(),r=e.get("blockchain")||"",a=Eo(r,n),[s,c]=xv(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:f}=Jm(),h=!!a&&Zo(a,s),g=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ye.createElement(ie,{header:{title:Cn.t("Add Custom Token")}},Ye.createElement(se,null,Ye.createElement(Av,null,Ye.createElement("div",null,Ye.createElement(Zs,{onClick:()=>t(O.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:Cn.t("Select chain"),placeholder:Cn.t("Select chain")}),Ye.createElement(El,{size:"24"}),Ye.createElement(bv,{size:"large",variant:"label"},Cn.t("Enter Address")),Ye.createElement(El,{size:10}),Ye.createElement(vv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:Cn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Ye.createElement(Tv,{color:"success",size:12}),onChange:C=>c(C.target.value)}),!h&&!!s&&Ye.createElement(Ye.Fragment,null,Ye.createElement(El,{size:4}),Ye.createElement(Sv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ye.createElement(Cv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},Cn.t("Import"))),Ye.createElement(nr,{token:p,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(Rm,"AddCustomTokenPage");import{i18n as nc}from"@lingui/core";import{useManager as mx}from"@rango-dev/queue-manager-react";import{Alert as fx,Button as gx,css as ic,Divider as rc,IconButton as Hg,styled as hx,Typography as yx,WalletIcon as Sx}from"@rango-dev/ui";import Oe,{useEffect as da,useLayoutEffect as Cx,useRef as kx,useState as Cr}from"react";import{useNavigate as Tx}from"react-router-dom";import{i18n as Oo}from"@lingui/core";import{Alert as eb,BalanceErrors as tb,Button as Ef,ChevronLeftIcon as ob,Divider as Pl,MessageBox as nb,Typography as _l}from"@rango-dev/ui";import re,{useCallback as rb,useEffect as If,useMemo as ib,useState as wn}from"react";import{useNavigate as ab}from"react-router-dom";import{i18n as Bl}from"@lingui/core";import{Alert as Lv,ChevronDownIcon as Pv,CloseIcon as _v,Divider as sf,IconButton as lf,PasteIcon as Dv,Typography as $v,WalletIcon as Fv}from"@rango-dev/ui";import Fe,{useEffect as Ov,useRef as Uv}from"react";import qi,{useRef as Wv}from"react";import*as kn from"@radix-ui/react-collapsible";import{keyframes as ef,styled as zi}from"@rango-dev/ui";var Il=300,Nv=ef({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Bv=ef({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),tf=zi(kn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Al=zi(kn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Qi=zi(kn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Nv} ${Il}ms ease-out`},false:{animation:`${Bv} ${Il}ms ease-out`}}}}),Hi=zi("div",{transition:`all ${Il}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Gi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Wv(null);return qi.createElement(tf,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&qi.createElement(Al,{className:"collapsible_trigger",onClick:a},s),qi.createElement(Qi,{className:"collapsible_content",open:e},r),c==="bottom"&&qi.createElement(Al,{className:"collapsible_trigger",onClick:a},s))}i(Gi,"CustomCollapsible");import{darkTheme as of,styled as Nl,TextField as Mv}from"@rango-dev/ui";var nf=Nl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),rf=Nl(Mv,{backgroundColor:"$neutral100"}),af=Nl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${of} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${of} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function cf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=z()(),{config:s}=k(),c=k().blockchains(),l=Kr(e.name,c),p=Uv(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!Zo(e,r),g=i(()=>{a("")},"handleClear"),m=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let S=await navigator.clipboard.readText();a(S),p?.current?.focus()}},"handlePaste"),C=i(()=>r?Fe.createElement(lf,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},Fe.createElement(_v,{size:12,color:"gray"})):d?null:Fe.createElement(lf,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},Fe.createElement(Dv,{size:16})),"renderSuffix");return Ov(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),Fe.createElement(nf,null,Fe.createElement(Gi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Fe.createElement(af,{id:"widget-custom-destination-collapsible-btn"},Fe.createElement("div",{className:"button__content"},Fe.createElement(Fv,{size:18,color:"info"}),Fe.createElement(sf,{size:4,direction:"horizontal"}),Fe.createElement($v,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Bl.t("Send to a different address"))),Fe.createElement(Hi,{orientation:n?"up":"down"},Fe.createElement(Pv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Fe.createElement(rf,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Bl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:C(),onChange:y=>{let S=y.target.value;a(S)}})),h&&Fe.createElement(Fe.Fragment,null,Fe.createElement(sf,{size:4}),Fe.createElement(Lv,{variant:"alarm",type:"error",title:Bl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(cf,"CustomDestination");import{css as zv,IconButton as Qv,SelectableWalletButton as Hv,styled as fo}from"@rango-dev/ui";var pf=fo("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),uf=fo("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),df=fo(Hv,{justifyContent:"center"}),mf=fo("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),ff=fo(Qv,{position:"absolute",left:"$20"}),gf=fo("div",{paddingTop:"$20"}),hf=zv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),yf=fo("div",{display:"flex"}),Sf=fo("div",{overflow:"visible",width:"100%"});import{i18n as Ml}from"@lingui/core";import{warn as jv}from"@rango-dev/logging-core";import{Divider as Xv,makeInfo as Yv,SelectableWallet as Zv,Typography as bf,WalletState as Vi}from"@rango-dev/ui";import it,{useEffect as xf,useState as lr}from"react";import{Image as Vv,MessageBox as Kv}from"@rango-dev/ui";import sr from"react";import{keyframes as qv,styled as Wl}from"@rango-dev/ui";var Cf=Wl("div",{position:"relative"}),Gv=qv({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),kf=Wl("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Gv} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Tf=Wl("div",{"& img":{borderRadius:"50%"}});import{i18n as Tn}from"@lingui/core";function wf(t,e){switch(t){case"in-progress":return{type:"loading",title:Tn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Tn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Tn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Tn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Tn.t("Request Rejected"),description:Tn.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(wf,"generateMessageByStatus");function vf(t){let{status:e,displayName:o,image:n}=t,r=wf(e,o),a=e=="in-progress";return sr.createElement(Kv,{type:r.type,title:r.title,description:r.description,icon:a?sr.createElement(Cf,null,sr.createElement(Tf,null,sr.createElement(Vv,{src:n,size:45})),sr.createElement(kf,null)):void 0})}i(vf,"ExperimentalChainStatus");var Jv=7,Rv=3e3;function Ll(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{checkHasDeepLink:l,getWalletLink:p}=sn(),{blockchains:u,connectedWallets:d}=k(),[f,h]=lr(),[g,m]=lr(null),[C,y]=lr(!1),[S,T]=lr(null),{suggestAndConnect:w}=Ki(),{list:v}=bt({chain:e}),[N,B]=lr(v),b=v.length,E=a&&b-a>0,x=i(async I=>{y(!1),T("in-progress");try{await w(I.walletType,I.chain),T("completed")}catch{T("rejected")}},"addExperimentalChain");xf(()=>{B(I=>{let _=v.findIndex(U=>n(U.type,e));return E&&_>1?[v[_]].concat(v.filter((U,q)=>q!==_)):I.map(U=>v.find(q=>q.type===U.type)??U)})},[JSON.stringify(v)]);let M=document.getElementById(ot.SWAP_BOX_ID);return xf(()=>{let I=null;return(S==="completed"||S==="rejected")&&(I=setTimeout(()=>T(null),Rv)),()=>{I&&clearTimeout(I)}},[S]),it.createElement(it.Fragment,null,N.slice(0,a).map(I=>{let _=wu({connectedWallets:d,walletType:I.type,chain:e}),U=I.state===Vi.CONNECTED,q=_?ao(_,Jv):"",j=U&&!!I.needsNamespace&&!q,L=ri(u(),e),Y=!d.find(qe=>qe.walletType===I.type&&qe.chain===e),ee=L&&Y&&I.state===Vi.CONNECTED,Z=i(async()=>{I.state===Vi.DISCONNECTED||j?h(I):ee?(m({walletType:I.type,chain:e,address:_??""}),y(!0)):r({walletType:I.type,chain:e,address:_??""})},"onSelectableWalletClick"),le=Yv(I.state,{hasDeepLink:l(I.type)}),ue=i(()=>ee?Ml.t({id:"Add {chain} chain",values:{chain:e}}):j?Ml.t("Chain not connected"):q||le.description,"getWalletDescription"),we=i(()=>I.state===Vi.CONNECTED?j?"neutral600":"neutral700":le.color,"getWalletDescriptionColor"),ve=g?.chain?Kr(g.chain,u()):void 0;return it.createElement(it.Fragment,{key:`${I.title}_${ve}`},!!g&&it.createElement(R,{id:"widget-wallets-list-watermarked-modal",open:!!g&&C,container:M,onClose:()=>{m(null)}},it.createElement(Fs,{id:"widget-wallets-list-experimental-chain-container",displayName:ve,onConfirm:()=>{x(g)}})),S&&it.createElement(R,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!S,onClose:T.bind(null,null),container:M},it.createElement(vf,{status:S,displayName:ve,image:I.image}),it.createElement(Xv,{direction:"vertical",size:32})),it.createElement(Zv,{hasDeepLink:l(I.type),key:I.type,id:"widget-wallets-list-selectable-wallet-btn",description:ue(),descriptionColor:we(),onClick:Z,selected:n(I.type,e),disabled:!c,...I,link:p(I.type)}))}),it.createElement(Rn,{id:"widget-wallets-list-stateful-connect-modal",wallet:f,options:{defaultSelectedChains:o||[e]},onClose:()=>{h(void 0)},onConnect:()=>{t.onConnect&&(f?.type?t.onConnect(f.type):jv(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),E&&it.createElement(df,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},it.createElement(bf,{variant:"label",size:"medium"},Ml.t("Show more wallets"),it.createElement(bf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",b-(a??0)))))}i(Ll,"WalletList");var sb=2;function Af(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=ab(),c=k().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:f,setCustomDestination:h}=z()(),{config:g,connectedWallets:m,setWalletsAsSelected:C}=k(),[y,S]=wn(""),[T,w]=wn([]),[v,N]=wn(""),[B,b]=wn(!!f),E=ib(()=>No({filter:"all",quote:l}),[l]),x=No({filter:"required",quote:l}),M=c.find($=>$.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),I=i($=>x.includes($),"isWalletRequiredFor"),_=rb(()=>m.filter($=>$.selected&&E.includes($.chain)),[m,E]),[U,q]=wn(_()),[j,L]=wn([]),Y=i(($,A)=>L(G=>G.concat({blockchain:$,walletType:A})),"addNextSelectedWallets"),ee=T.length>0,Z=i(($,A)=>!!U.find(G=>G.walletType===$&&G.chain===A&&G.selected&&(I(A)||!I(A)&&!f)),"isSelected"),le=i(($,A,G)=>{let ae=!1;return $.map(K=>{if(K.chain===A){let X=K.selected;return!ae&&G?(ae=!0,X=!0):G||(X=!1),{...K,selected:X}}return K})},"updateSelectableWallets"),ue=i($=>{b($),$?I(M?.name??"")||q(A=>le(A,M?.name||"",!1)):(h(""),q(A=>le(A,M?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),we=i($=>{if(y&&S(""),Z($.walletType,$.chain))return;let G=m.find(ae=>ae.walletType===$.walletType&&ae.chain===$.chain);G&&(n(),$.chain===M?.name&&B&&!I(M.name)&&(b(!1),h(null)),q(ae=>ae.filter(K=>K.chain!==$.chain).concat({...G,selected:!0})))},"onChange"),ve=i(()=>{let $=U.filter(A=>A.selected);C($),p($),d(!0),o()},"onConfirmBalance"),qe=i(async()=>{w([]),N("");let $=await r?.({selectedWallets:U.filter(G=>G.selected),customDestination:f}),A=$.warnings;A?.balance?.messages&&w(A.balance.messages),$.error&&N(kd($.error)),!$.error&&!A?.balance?.messages.length?ve():w(A?.balance?.messages??[])},"onConfirmWallets");If(()=>{q($=>{let A=[];return $.forEach(G=>{!m.some(K=>K.chain===G.chain&&K.walletType===G.walletType&&K.address===G.address)||A.push(G)}),A=A.concat(m.filter(G=>!!!A.find(K=>K.chain===G.chain)&&G.selected&&E.includes(G.chain))),A})},[m,E]),If(()=>{let $=[];j.length>0&&(j.forEach(A=>{let G=m.find(ae=>ae.chain===A.blockchain&&ae.walletType===A.walletType);G?we(G):$.push(A)}),L($))},[m,j]);let Ae=document.getElementById(ot.SWAP_BOX_ID);return re.createElement(R,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:Ae,...!y&&{styles:{container:{height:"100%"}},footer:re.createElement(yf,null,re.createElement(Ef,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Xd(a,B,f,l,U,M),onClick:qe,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Oo.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:re.createElement(mf,null,re.createElement(ff,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:S.bind(null,"")},re.createElement(ob,{size:16})),re.createElement(_l,{variant:"headline",size:"small"},Oo.t({id:"Your {blockchainName} wallets",values:{blockchainName:ht(y,c)}})))},anchor:"center"},re.createElement(R,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:ee,onClose:w.bind(null,[]),container:Ae},re.createElement(nb,{title:Oo.t("Insufficient account balance"),type:"error",description:re.createElement(tb,{messages:T??[]})},re.createElement(Ef,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:ve},Oo.t("Proceed anyway")))),y&&re.createElement(gf,null,re.createElement("div",{className:hf()},re.createElement(Ll,{chain:y,quoteChains:E,isSelected:Z,selectWallet:we,onShowMore:()=>S(y),onConnect:$=>{Y(y,$)}}))),!y&&re.createElement(re.Fragment,null,v&&re.createElement(re.Fragment,null,re.createElement(eb,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Oo.t(v)}),re.createElement(Pl,{size:12})),re.createElement(Sf,null,E.map(($,A)=>{let G=c.find(Ge=>Ge.name===$),ae=`wallet-${A}`,K=A===E.length-1,X=K&&M&&g?.customDestination!==!1;return re.createElement("div",{key:ae},re.createElement(pf,null,re.createElement(_l,{variant:"title",size:"xmedium"},Oo.t({id:"Your {blockchainName} wallets",values:{blockchainName:G?.shortName}})),re.createElement(_l,{variant:"label",color:"$neutral700",size:"medium"},Oo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:G?.shortName}}))),re.createElement(Pl,{size:24}),re.createElement(uf,null,re.createElement(Ll,{chain:$,quoteChains:E,isSelected:Z,selectWallet:we,limit:sb,onShowMore:()=>S(G?.name??""),onConnect:Ge=>{Y($,Ge)}})),!K&&re.createElement(Pl,{size:32}),X&&re.createElement(cf,{blockchain:M,open:B,handleOpenChange:ue}))}))))}i(Af,"ConfirmWalletsModal");import{i18n as Ab}from"@lingui/core";import{Alert as Nb,Button as Bb,Divider as Kf,InfoIcon as Wb}from"@rango-dev/ui";import ze from"react";import{Alert as pb,Button as ub,Divider as Fl,NoRouteIcon as db,RefreshIcon as mb,Typography as _f}from"@rango-dev/ui";import ut from"react";import{i18n as Nf}from"@lingui/core";var lb=24,cb=60;function Bf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ne().genericServerError,action:{onClick:n,title:Nf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ne().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Nf.t("Reset")}},description:ne().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ne().noResultError.description}}i(Bf,"makeInfo");var Dl=(o=>(o[o.small=lb]="small",o[o.large=cb]="large",o))(Dl||{}),$l=(o=>(o.small="small",o.large="medium",o))($l||{});import{styled as ji}from"@rango-dev/ui";var Wf=ji("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Mf=ji("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Lf=ji("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Pf=ji("div",{padding:"$6 $0"});function cr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=k().getDisabledLiquiditySources(),s=k().toggleAllLiquiditySources,c=k().swappers(),l=Bf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),ut.createElement(Wf,{id:"widget-no-result-container"},ut.createElement(db,{size:Dl[n],color:"gray"}),ut.createElement(Fl,{size:4}),ut.createElement(_f,{variant:"title",size:$l[n]},ne().noResultError.title),n==="large"&&ut.createElement(Fl,{size:4}),!!l.description&&ut.createElement(Mf,{size:n},ut.createElement(_f,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),ut.createElement(Fl,{size:n==="large"?"24":"4"}),!!l.alert&&ut.createElement(Lf,{size:n},ut.createElement(pb,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&ut.createElement(ub,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:ut.createElement(Pf,null,ut.createElement(mb,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(cr,"NoResult");import{i18n as ur}from"@lingui/core";import{Button as hb,Divider as yb,MessageBox as Sb,Typography as Cb,WarningIcon as kb}from"@rango-dev/ui";import Xt from"react";import{Typography as Uf}from"@rango-dev/ui";import Ul from"react";import{Button as fb,darkTheme as gb,styled as pr}from"@rango-dev/ui";var Df=pr("div",{width:"100%"}),Ol=pr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),$f=pr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${gb} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ff=pr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Of=pr(fb,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function zf(t){let{title:e,value:o,valueColor:n}=t;return Ul.createElement($f,null,Ul.createElement(Uf,{size:"medium",variant:"label",className:"_title"},e),Ul.createElement(Uf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(zf,"QuoteErrorsModalItem");function Qf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:ur.t("Swapping"),value:D(r.inputUsdValue,4,4)},{title:ur.t("Gas cost"),value:D(r.totalFee,2,2)},{title:ur.t("Receiving"),value:D(r.outputUsdValue,4,4)},{title:ur.t("Price impact"),value:D(r.priceImpact,2,2),valueColor:`${s}500`}];return Xt.createElement(R,{id:"widget-high-value-loss-warning-modal",footer:Xt.createElement(hb,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Xt.createElement(kb,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:W()},Xt.createElement(Sb,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Xt.createElement(Ol,null,Xt.createElement(yb,{size:"4"}),Xt.createElement(Cb,{size:"small",variant:"title"},ur.t("Details")),Xt.createElement(Ol,null,c.map((l,p)=>Xt.createElement(zf,{key:p,...l})))))}i(Qf,"HighValueLossWarningModal");import{i18n as vn}from"@lingui/core";function Hf(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=vn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=vn.t("Increase")),o;if(t){switch(t.type){case 0:{jt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().highValueLossError.title;break}case 4:{o.title=vn.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=ne().unknownPriceError.title;break}case 2:{o.title=vn.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=vn.t("Increase");break}case 3:{o.title=vn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Hf,"makeAlerts");function qf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(qf,"getRequiredSlippage");import{i18n as bn}from"@lingui/core";import{Button as Tb,Divider as zl,MessageBox as wb,WarningIcon as vb}from"@rango-dev/ui";import yo from"react";import{useNavigate as bb}from"react-router-dom";function Gf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=bb();return yo.createElement(R,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:W(),onClose:o},yo.createElement(wb,{type:"warning",title:r.type===3?bn.t("High slippage"):bn.t("Low slippage"),description:r.type===3?bn.t("Caution, your slippage is high. Your trade may be front run."):bn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},yo.createElement(zl,{size:18}),yo.createElement(zl,{size:32}),yo.createElement(Of,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},yo.createElement(vb,{color:"white",size:16}),bn.t("Swap anyway")),yo.createElement(zl,{size:10}),yo.createElement(Tb,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+O.settings)},bn.t("Change Slippage"))))}i(Gf,"SlippageWarningModal");import{Button as xb,MessageBox as Eb,WarningIcon as Ib}from"@rango-dev/ui";import Xi from"react";function Vf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Xi.createElement(R,{id:"widget-unknown-price-warning-modal",footer:Xi.createElement(xb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Xi.createElement(Ib,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:W()},Xi.createElement(Eb,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(Vf,"UnknownPriceWarningModal");function dr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:d,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,m=Hf(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let C=!!m&&!s,y=i(S=>{if(S==="change-slippage"){let T=o?.type===3||o?.type===4?o:null,w=qf(e,T);f?.(w)}else S==="change-settings"&&d()},"onclickActionButton");return ze.createElement(ze.Fragment,null,g&&ze.createElement(ze.Fragment,null,ze.createElement(Kf,{size:10}),ze.createElement(cr,{skipAlerts:s,error:o,fetch:c})),C&&ze.createElement(Df,null,ze.createElement(Kf,{size:10}),ze.createElement(Nb,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:ze.createElement(Ff,{onClick:l},ze.createElement(Wb,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:ze.createElement(Bb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>y(m.action)},m.actionButtonTitle||Ab.t("Change"))}})),e&&ze.createElement(ze.Fragment,null,e.type===0&&ze.createElement(Qf,{...h,warning:e}),(e.type===3||e.type===2)&&ze.createElement(Gf,{...h,warning:e}),e.type===1&&ze.createElement(Vf,{...h,warning:e})))}i(dr,"QuoteWarningsAndErrors");import ax from"bignumber.js";import la from"react";import{i18n as Uo}from"@lingui/core";import{Alert as Kb,Divider as En,FullExpandedQuote as jb,InfoIcon as Xb,NumericTooltip as Tg,QuoteTag as Yb,StepDetails as Zb,TokenAmount as Jb,Typography as In}from"@rango-dev/ui";import Yl from"bignumber.js";import Q,{useRef as Rb,useState as ex}from"react";import{styled as Ql}from"@rango-dev/ui";var Hl=Ql("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),jf=Ql("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Xf=Ql("div",{width:"100%",display:"flex"});import*as Yi from"@radix-ui/react-collapsible";import{Button as Mb,css as mr,darkTheme as Me,Image as Yf,styled as Re,Typography as Lb}from"@rango-dev/ui";var Pb=300,Zf=Re(Yi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Me} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Me} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Me} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Jf=mr({padding:"$10 $15"}),Rf=Re(Mb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Me} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Me} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Me} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),eg=Re("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",[`.${Me} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Me} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Me} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Me} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Me} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Me} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Me} &`]:{backgroundColor:"$neutral400"}}}}]}),tg=mr({width:"100%",padding:"$15 $15 $10 $15"}),og=mr({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),xn=mr({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),ng=mr({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Me} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),rg=Re(Yi.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:{[`& ${Yf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Yf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Me} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Me} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Me} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),ig=Re("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"}}}}),ag=Re(Qi,{width:"100%",background:"inherit"}),ql=Re("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Pb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),yH=Re("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),sg=Re("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Me} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),lg=Re("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Gl=Re(Lb,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),cg=Re("div",{display:"flex",flexWrap:"wrap"}),Vl=Re("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"}}}}),pg=Re("div",{display:"flex"}),Zi=Re("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Me} &`]:{borderTopColor:"$neutral800"}});import{i18n as $t}from"@lingui/core";import{ChevronDownIcon as Db,CloseIcon as $b,Divider as ea,IconButton as Fb,NumericTooltip as Ob,QuoteCost as Ub,Typography as Et}from"@rango-dev/ui";import J,{useState as fg}from"react";import{css as _b,styled as Ji}from"@rango-dev/ui";var Ri=Ji("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Kl=Ji("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),ug=Ji("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),dg=Ji("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),mg=_b({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var zb=i(t=>t.fee.isZero()?null:J.createElement(Ri,null,J.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(Et,{variant:"label",size:"medium"},"$",D(t.fee,4,4))),"NonPayableFee");function jl(t){let[e,o]=fg(!1),[n,r]=fg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?Ao():W(),m=zd(h),C=D(c,2,2);return J.createElement(J.Fragment,null,J.createElement(Ub,{onClickFee:d?y=>{y.stopPropagation(),o(!e)}:void 0,fee:C,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?$t.t("View more info"):void 0,tooltipContainer:g}),J.createElement(R,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:J.createElement(dg,{style:{textAlign:f?"left":"center"}},J.createElement(Et,{variant:"title",size:"medium"},$t.t("Gas & Fee Explanation")),J.createElement(Fb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},J.createElement($b,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(ug,null,J.createElement(Et,{variant:"title",size:"small"},$t.t("Details")),J.createElement(ea,{size:10}),Object.entries(m.payable).flatMap(([y,S])=>S.map((T,w)=>{let v=`payable-fee-${w}`,N=qs(T);return J.createElement(Ri,{key:v},J.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},Os(y,$t.t)),J.createElement(Ob,{content:T.amount,container:g},J.createElement(Et,{variant:"label",size:"medium"},D(T.amount,2,2),T.asset.symbol," ($",D(N,4,4),")")))})),J.createElement(Ri,{className:"total_payable_fee"},J.createElement(Et,{variant:"label",size:"medium"},$t.t("Total Payable Fee")),J.createElement(Et,{variant:"label",size:"medium"},"$",D(c,4,4))),J.createElement(Kl,null),!!Object.keys(m.nonePayable).length&&J.createElement(Gi,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:J.createElement("div",{className:mg()},J.createElement(Et,{size:"small",variant:"body",color:"neutral700"},n?$t.t("Hide non-payable fees"):$t.t("Show non-payable fees")),J.createElement(ea,{size:4,direction:"horizontal"}),J.createElement(Hi,{orientation:n?"up":"down"},J.createElement(Db,{size:12,color:"gray"}))),open:n},J.createElement(Et,{size:"small",variant:"title"},$t.t("Description")),J.createElement(ea,{size:4}),J.createElement(Et,{size:"small",variant:"body",color:"neutral700"},$t.t(`The following fees are considered in the transaction output and
|
|
2
|
+
you won\u2019t need to pay extra gas for them.`)),J.createElement(ea,{size:10}),Object.entries(m.nonePayable).map(([y,S],T)=>{let w=Ud(S),v=Os(y,$t.t),N=`non-payable-fee-${T}`;return J.createElement(zb,{key:N,fee:w,label:v})}),J.createElement(Kl,null)))))}i(jl,"QuoteCostDetails");import{i18n as yg}from"@lingui/core";import{TokenAmount as Sg}from"@rango-dev/ui";import ta from"react";import{css as Qb,styled as Hb}from"@rango-dev/ui";var gg=Hb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),hg=Qb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function fr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return ta.createElement(gg,null,ta.createElement(Sg,{direction:"horizontal",label:yg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:W(),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}}),ta.createElement("div",{className:hg()}),ta.createElement(Sg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:W(),label:yg.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(fr,"QuoteSummary");import{i18n as Cg}from"@lingui/core";import{ChevronDownIcon as qb,ChevronRightIcon as Gb,Divider as Xl,Image as Vb,Tooltip as ia,Typography as oa}from"@rango-dev/ui";import H from"react";var na=4,ra=6,gr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||W();return H.createElement(ia,{container:c,side:"bottom",sideOffset:4,open:r,content:e},H.createElement(ig,{className:n,state:a},H.createElement(Vb,{src:o,size:16})))},"ImageComponent");function kg(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||W(),p=r.length,u=Bd(r),{isTablet:d,isMobile:f}=yn();return H.createElement(rg,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},H.createElement("div",{className:xn()},H.createElement(oa,{variant:"body",size:"xsmall"},Cg.t("Via:")),H.createElement(Xl,{direction:"horizontal",size:4}),r.map((h,g)=>{let m=`item-${g}`,C=H.createElement(ql,null,H.createElement(Gb,{size:12,color:"black"}));return f||d?H.createElement(H.Fragment,{key:m},H.createElement(gr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&H.createElement(H.Fragment,null,C)):H.createElement(H.Fragment,{key:m},p<=na||p>na&&g<na-1?H.createElement(H.Fragment,null,H.createElement(gr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&H.createElement(H.Fragment,null,C)):g===na-1&&H.createElement(ia,{container:l,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:xn()},C,r.map((y,S)=>{let T=`image-${S}`;return S>=g&&H.createElement(H.Fragment,{key:T},H.createElement(gr,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),S!==p-1&&H.createElement(H.Fragment,null,C))}))},H.createElement(Vl,{state:r.find((y,S)=>S>=g&&(y.state==="error"||y.state==="warning"))?.state},H.createElement(oa,{size:"xsmall",variant:"body"},"+",p-g))))})),H.createElement("div",{className:xn()},H.createElement("div",{className:"blockchains_section"},H.createElement("div",{className:xn()},H.createElement(oa,{variant:"body",size:"xsmall"},Cg.t("Chains:")),H.createElement(Xl,{direction:"horizontal",size:4}),u.map((h,g)=>H.createElement(H.Fragment,{key:h.displayName},u.length<=ra||u.length>ra&&g<ra-1?H.createElement(ia,{container:l,side:"bottom",content:h.displayName,sideOffset:4},H.createElement(gr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===ra-1&&H.createElement(ia,{container:l,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:xn()},u.map((m,C)=>C>=g&&H.createElement(gr,{key:m.displayName,content:"",src:m.image??"",open:!1,className:C>g?"blockchainImage":"",container:c})))},H.createElement(Vl,{className:"blockchainImage"},H.createElement(oa,{size:"xsmall",variant:"body"},"+",u.length-g))))),H.createElement(Xl,{direction:"horizontal",size:32}))),H.createElement(ql,{orientation:a?"up":"down"},H.createElement(qb,{size:12,color:"black"}))))}i(kg,"QuoteTrigger");function Zl(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:d=!1,container:f}=t,h=k().blockchains(),{findToken:g}=k(),m=k().swappers(),{customSlippage:C,slippage:y}=k(),S=C||y,[T,w]=ex(t.expanded),v=Rb(null),N=D(o.value,6,6),B=D(n.value,6,6),b=n.usdValue?D(n.usdValue,4,4):"",E=Kt(o.usdValue,n.usdValue??null),x=D(E,2,2),M=jt(E??0),I=i((Ae,$)=>Ae.map((A,G)=>{let ae,K=r?.type===3&&r.swap.swapperId===A.swapperId,X=r?.type===4&&!!r.recommendedSlippages?.[G],Ge=a?.type===2&&!!a.recommendedSlippages?.[G],Ve=K||X,be=Ge;Ve?ae="error":be&&(ae="warning");let Mt=Ve?Uo.t("Slippage Error"):Uo.t("Slippage Warning");return K&&(Mt=Uo.t("Bridge Limit Error")),{swapper:{displayName:Dn(A.swapperId,m)??"",image:A.swapperLogo},from:{token:{displayName:A.from.symbol,image:A.from.logo},chain:{displayName:ht(A.from.blockchain,h)??"",image:A.from.blockchainLogo},price:{value:G===0&&!$?D(o.value,6,6):D(A.fromAmount,6,6),usdValue:D((A.from.usdPrice??0)*parseFloat(A.fromAmount),4,4),realValue:G===0?o.value:A.fromAmount,realUsdValue:new Yl(A.from.usdPrice??0).multipliedBy(A.fromAmount).toString()}},to:{token:{displayName:A.to.symbol,image:A.to.logo},chain:{displayName:ht(A.to.blockchain,h)||"",image:A.to.blockchainLogo},price:{value:D(A.toAmount,6,6),usdValue:D((A.to.usdPrice??0)*parseFloat(A.toAmount),4,4),realValue:A.toAmount,realUsdValue:new Yl(A.to.usdPrice??0).multipliedBy(A.toAmount).toString()}},state:ae,alerts:Ve||be?Q.createElement(jf,{dense:d},Q.createElement(Kb,{variant:"alarm",type:Ve?"error":"warning",title:Mt,id:"widget-quote-footer-step-alarm-alert",footer:Q.createElement(Xf,null,K&&Q.createElement("div",null,Q.createElement(In,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),Q.createElement(En,{direction:"vertical",size:2}),Q.createElement(In,{size:"xsmall",variant:"body",color:"neutral900"},Uo.t({id:"Yours: {amount} {symbol}",values:{amount:D(A.fromAmount,6,6),symbol:A?.from.symbol}}))),(X||Ge)&&!K&&Q.createElement("div",null,Q.createElement(In,{size:"xsmall",variant:"body",color:"neutral900"},Uo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[G]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[G]}}})),Q.createElement(En,{direction:"vertical",size:2}),Q.createElement(In,{size:"xsmall",variant:"body",color:"neutral900"},Uo.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Fn(A.estimatedTimeInSeconds),fee:D(Hs(A,g),2,2),internalSwaps:A.internalSwaps?I(A.internalSwaps):void 0}}),"getQuoteSteps"),_=I(e?.swaps??[]),U=_.length,q=f||W(),j=Md(t.quote.tags||[]),L=!!u,Y=ti(e?.swaps),ee=Fn(Y),Z=Ii(e?.swaps??[],g),le=D(Z,2,2),ue=Z.gte(new Yl(wd)),we=Y/bd>=vd,ve=_[U-1],qe=_[0];return!qe||!ve?null:d?Q.createElement(jb,{selected:c,fee:le,time:ee,tooltipContainer:Ao(),steps:_,tags:j,id:"widget-quote-full-expanded-quote-container",quoteCost:Q.createElement(jl,{quote:e,fullExpandedMode:!0,time:ee,fee:Z,feeWarning:ue,timeWarning:we,showModalFee:p,steps:U}),percentageChange:x,warningLevel:M,outputPrice:{value:B,usdValue:b,realValue:n.value,realUsdValue:n.usdValue}}):Q.createElement(eg,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},Q.createElement("div",{className:tg()},!l&&j.length?Q.createElement(Q.Fragment,null,Q.createElement(pg,null,j.map((Ae,$)=>{let A=`${Ae.value}_${$}`;return Q.createElement(Q.Fragment,{key:A},Q.createElement(Yb,{label:Ae.label,value:Ae.value}),Q.createElement(En,{size:4,direction:"horizontal"}))})),Q.createElement(Zi,null),!L&&Q.createElement(En,{size:4})):null,Q.createElement("div",{id:"portal-root",className:og()},Q.createElement(jl,{quote:e,time:ee,fee:Z,feeWarning:ue,timeWarning:we,showModalFee:p,steps:U}),L&&Q.createElement(Rf,{onClick:Ae=>{Ae.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},Q.createElement(In,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Uo.t("See All Routes")))),s==="basic"&&Q.createElement("div",{className:ng()},Q.createElement(lg,null,Q.createElement(Xb,{size:12,color:"gray"})),Q.createElement(cg,null,Q.createElement(Gl,{size:"small",variant:"body"},`${N} ${qe.from.token.displayName} = `),Q.createElement(Tg,{content:n.value,container:q,open:n.value?void 0:!1},Q.createElement(Gl,{size:"small",variant:"body"},"\xA0",`${B} ${ve.to.token.displayName}`))),Q.createElement(Tg,{content:n.usdValue,container:q},Q.createElement(En,{size:2,direction:"horizontal"}),Q.createElement(In,{color:"$neutral600",size:"xsmall",variant:"body"},`($${b})`))),s==="list-item"&&Q.createElement(Jb,{id:"widget-quote-token-amount-container",tooltipContainer:q,type:"output",direction:"vertical",price:{value:B,usdValue:b,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:ve.to.token.displayName,image:ve.to.token.image},chain:{image:ve.to.chain.image},percentageChange:x,warningLevel:M}),s==="swap-preview"&&Q.createElement(Q.Fragment,null,Q.createElement(fr,{from:qe.from,to:ve.to,percentageChange:x,warningLevel:M}),Q.createElement(En,{size:4}))),Q.createElement(Zf,{selected:c,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:w},Q.createElement(kg,{type:s,quoteRef:v,selected:c,setExpanded:w,container:q,expanded:T,steps:_}),Q.createElement(ag,{open:T},Q.createElement(sg,null),Q.createElement("div",{className:Jf()},_.map((Ae,$)=>{let A=`item-${$}`;return Q.createElement(Zb,{type:"quote-details",className:"widget-quote-step-details-container",key:A,tooltipContainer:q,step:Ae,hasSeparator:$!==_.length-1,state:Ae.state})})))))}i(Zl,"Quote");import{Divider as rx,Skeleton as ix}from"@rango-dev/ui";import Rt from"react";import{darkTheme as tx,styled as aa}from"@rango-dev/ui";var wg=aa("div",{$$color:"$colors$neutral100",[`.${tx} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),vg=aa("div",{paddingTop:"$2"}),bg=aa("div",{paddingLeft:"$8"}),xg=aa("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as _g,Divider as It,Skeleton as dt}from"@rango-dev/ui";import V from"react";import{css as ox,styled as Jt}from"@rango-dev/ui";var Jl=Jt("div",{display:"flex"}),Eg=Jt("div",{padding:"$10 $0 $20"}),Ig=Jt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Ag=Jt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Ng=Jt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Bg=Jt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Wg=Jt("div",{width:"65%",display:"flex",justifyContent:"start"}),Mg=Jt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Lg=Jt("div",{padding:"$15 $0 $15 $0"}),Pg=ox({display:"flex",justifyContent:"space-between",alignItems:"center"});function hr(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(Ng,null,V.createElement(Wg,null,V.createElement(_g,{loading:!0,size:"medium"}),V.createElement(It,{size:8,direction:"horizontal"}),V.createElement(Mg,null,V.createElement(dt,{height:10,width:60,variant:"rounded"}),V.createElement(It,{size:4}),V.createElement(dt,{height:15,variant:"rounded"}))),V.createElement(dt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(Jl,null,V.createElement(dt,{width:65,height:20,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(dt,{width:65,height:20,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(dt,{width:65,height:20,variant:"rounded"})),V.createElement(Zi,null),!r&&V.createElement(It,{size:4})),V.createElement("div",{className:Pg()},V.createElement(Jl,null,V.createElement(dt,{width:60,height:10,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(dt,{width:60,height:10,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(dt,{width:60,height:10,variant:"rounded"})),r&&V.createElement(dt,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(Eg,null,V.createElement(dt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(Ig,null,V.createElement(Ag,null,V.createElement(_g,{loading:!0,size:"medium"}),V.createElement(It,{direction:"horizontal",size:4}),V.createElement(dt,{height:15,width:150,variant:"rounded"})),V.createElement(It,{size:10}),V.createElement(dt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(It,{size:4}),V.createElement(Lg,null,n,V.createElement(Bg,null),n),V.createElement(It,{size:12})))}i(hr,"QuoteSummarySkeleton");import{ChainToken as Ug,Divider as ec,NextIcon as nx,Skeleton as sa}from"@rango-dev/ui";import Le from"react";import{styled as yr}from"@rango-dev/ui";var Dg=yr("div",{display:"flex",alignItems:"start"}),$g=yr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Rl=yr("div",{display:"flex",alignItems:"center",flexGrow:1}),Fg=yr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Og=yr("div",{display:"flex",alignItems:"center"});function Ft(t){let{separator:e=!0}=t;return Le.createElement(Le.Fragment,null,Le.createElement(Og,null,Le.createElement(sa,{height:22,width:22,variant:"circular"}),Le.createElement(ec,{direction:"horizontal",size:8}),Le.createElement(sa,{height:15,width:148,variant:"rounded"})),Le.createElement(Dg,null,Le.createElement(xg,{hideSeparator:!e}),Le.createElement($g,{extraSpace:e},Le.createElement(Rl,null,Le.createElement(Ug,{size:"small",loading:!0}),Le.createElement(ec,{direction:"horizontal",size:8}),Le.createElement(sa,{height:12,variant:"rounded"})),Le.createElement(Fg,null,Le.createElement(nx,{color:"gray",size:16})),Le.createElement(Rl,null,Le.createElement(Ug,{size:"small",loading:!0}),Le.createElement(ec,{direction:"horizontal",size:8}),Le.createElement(sa,{height:12,variant:"rounded"})))))}i(Ft,"StepSkeleton");function Sr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Rt.createElement(wg,{expanded:o,rounded:e!=="basic"},Rt.createElement(hr,{type:e,tagHidden:n}),Rt.createElement(vg,null,Rt.createElement(ix,{height:15,variant:"rounded"})),o&&Rt.createElement(bg,null,Rt.createElement(rx,{size:24}),Rt.createElement(Ft,null),Rt.createElement(Ft,null),Rt.createElement(Ft,{separator:!1})))}i(Sr,"QuoteSkeleton");function zo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:d,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:m,inputUsdValue:C}=z()(),y=e?.outputAmount?new ax(e?.outputAmount):null,S=e?kt(e):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?la.createElement(Hl,null,la.createElement(Sr,{tagHidden:c,type:o,expanded:s})):w?la.createElement(Hl,{onClick:()=>l?.(e),id:d},la.createElement(Zl,{quote:e,error:r,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:h,input:{value:m,usdValue:C?.toString()??""},output:{value:y?.toString()??"",usdValue:S?.toString()??""}})):null}i(zo,"QuoteInfo");import{warn as px}from"@rango-dev/logging-core";import{calculatePendingSwap as ux}from"@rango-dev/queue-manager-rango-preset";import{useEffect as dx}from"react";import{useRef as sx,useState as lx}from"react";var cx=2e3;function ca({request:t}){let[e,o]=lx(!1),n=sx(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,cx)),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(ca,"useFetch");function zg(){let{fetch:t,loading:e,cancelFetch:o}=ca({request:async(n,r)=>await pt().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(zg,"useFetchConfirmQuote");function pa(t){if(!t.swaps)throw new Error(ne().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=tc(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(pa,"throwErrorIfResponseIsNotValid");function tc(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=Ai(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(tc,"getQuoteError");function Qg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=mn({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(Qg,"generateWarnings");function ua(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(ua,"handleQuoteErrors");function oc(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=z()(),{slippage:l,customSlippage:p}=k(),u=k().getDisabledLiquiditySources(),d=k().blockchains(),f=k().tokens(),{findToken:h}=k(),{swapMode:g}=Ct(),m=p||l,{fetch:C,cancelFetch:y,loading:S}=zg();return dx(()=>y,[]),{loading:S,fetch:i(async w=>{let v=w.selectedWallets,N=w?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let B=v.reduce((E,x)=>(E[x.chain]=x.address,E),{}),b={requestId:a?.requestId||"",selectedWallets:B,destination:N||void 0};try{return await C(b,!0).then(E=>{let{result:x}=E;if(!x)throw new Error(E.error??"Error fetching updated quote");pa({diagnosisMessages:x.diagnosisMessages,requestId:x.requestId,swaps:x.result?.swaps});let M={outputAmount:x.result?.outputAmount,requestId:x.requestId,resultType:x.result?.resultType,swaps:x.result?.swaps||[],validationStatus:x.validationStatus,requestAmount:x.requestAmount};r(M);let I={slippage:m.toString(),disabledSwappersGroups:u},_=Qg({previousQuote:a??void 0,currentQuote:M,meta:{blockchains:d},selectedWallets:v,userSlippage:m,inputUsdValue:n,findToken:h});c();let U=!!_.balance,q=ux({inputAmount:o.toString(),bestRoute:x,wallets:qd(v),settings:I,validateBalanceOrFee:!U,meta:{blockchains:d,tokens:f},swapMode:g});return{quote:M,swap:q,error:null,warnings:_}})}catch(E){let x=ua(E);return x.type!==2&&px(new Error("confirm swap error"),{tags:{...x,type:Ze[x.type],initialQuote:a,requestBody:b}}),{swap:null,error:x,warnings:null}}},"fetch"),cancelFetch:y}}i(oc,"useConfirmSwap");var wx=hx("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Hg}`]:{width:"$48",height:"$48"}}),vx=ic({flexGrow:1,paddingRight:"$10"}),bx=ic({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),xx=ic({display:"flex",justifyContent:"space-between",alignItems:"center"});function qg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=z()(),s=Tx(),[c,l]=Cr(""),p=!n,[u,d]=Cr(!1),[f,h]=Cr(!1),{isActiveTab:g}=oe(),m=k().getDisabledLiquiditySources(),C=kx(m),{manager:y}=mx(),{fetch:S,loading:T,cancelFetch:w}=oc(),[v,N]=Cr({swap:null,error:null,warnings:null}),[B,b]=Cr(!1),E=i(async({selectedWallets:L,customDestination:Y})=>{let ee=await S?.({selectedWallets:L,customDestination:Y});return N(ee),ee},"onConfirmSwap"),x=i(async()=>{if(v.swap&&n)try{await y?.create("swap",{swapDetails:v.swap},{id:v.swap.requestId});let L=`../${O.swaps}/${v.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),M=i(async()=>{h(!0),await x(),h(!1)},"onConfirm"),I=i(async()=>{v.warnings?.quote&&Nd(v.warnings.quote)&&!a?b(!0):await M()},"onStartConfirmSwap"),_=i(async()=>{N({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(L=>{N(L)}).catch(L=>console.error(L))},"onRefresh");da(()=>{!!C.current.length&&!m.length&&_(),C.current=m},[m.length]),da(()=>{p&&w()},[p]),da(()=>{p&&d(p)},[p]),da(()=>{p||S({selectedWallets:o,customDestination:r}).then(L=>N(L)).catch(L=>console.error(L))},[]),Cx(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let U=v.warnings?.quote??null,q=v.error,j=[];if(c&&j.push(Oe.createElement(fx,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),U||q){let L=`../${O.settings}`;j.push(Oe.createElement(dr,{warning:U,error:q,couldChangeSettings:!1,refetchQuote:_,skipAlerts:q?.type===4||U?.type===2,showWarningModal:B,confirmationDisabled:!g,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await x()},onChangeSettings:()=>s(L)}))}return Oe.createElement(ie,{header:{title:nc.t("Confirm Swap"),onWallet:()=>{let L=`../${O.wallets}`;s(L)}},footer:Oe.createElement(wx,null,Oe.createElement("div",{className:vx()},Oe.createElement(gx,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||f,disabled:!!v.error||!g,onClick:I},nc.t("Start Swap"))),Oe.createElement(Hg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||f,disabled:!g,onClick:d.bind(null,!0)},Oe.createElement(Sx,{size:24})))},u&&Oe.createElement(Af,{open:u,onClose:()=>d(!1),onCancel:w,loading:T,onCheckBalance:E}),Oe.createElement(se,null,Oe.createElement("div",{className:xx()},Oe.createElement(yx,{variant:"title",size:"small"},nc.t("You get")),Oe.createElement("div",{className:bx()},Oe.createElement(_i,{onClick:!T&&!u&&!B?_:void 0}))),Oe.createElement(rc,{size:"12"}),bm(j.map((L,Y)=>({element:L,key:`alert-${Y}`})),Oe.createElement(rc,{size:10})),j.length>0?Oe.createElement(rc,{size:10}):null,Oe.createElement(zo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:v.error,loading:T,warning:v.warnings?.quote??null})))}i(qg,"ConfirmSwapPage");import{i18n as to}from"@lingui/core";import{Button as yc,CustomTokensZeroStateDarkIcon as Gx,CustomTokensZeroStateIcon as Vx,DeleteIcon as Kx,Divider as br,IconButton as jx,MessageBox as Xx,NotFound as Yx,styled as Cc}from"@rango-dev/ui";import fe,{useState as Sc}from"react";import{useNavigate as Zx}from"react-router-dom";import{CloseIcon as Ex,IconButton as Ix,SearchIcon as Ax,TextField as Nx}from"@rango-dev/ui";import An from"react";import{styled as Gg}from"@rango-dev/ui";var Vg=Gg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),Kg=Gg("div",{width:"100%","& ._text-field":{paddingLeft:"$10","& input":{paddingLeft:"$2",paddingTop:"$12",paddingBottom:"$12"}}});function At(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...d}=t,f=s.length?An.createElement(Ix,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},An.createElement(Ex,{color:"gray",size:10})):null;return p&&(f=p),An.createElement(Kg,null,An.createElement(Nx,{prefix:An.createElement(Vg,null,An.createElement(Ax,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d}))}i(At,"SearchInput");import{i18n as hc}from"@lingui/core";import{Button as Lx,CustomTokenWarning as Px,darkTheme as ih,Divider as eo,ExternalLinkIcon as _x,Image as Dx,ListItem as $x,NotFound as Fx,PinIcon as Ox,Skeleton as Qo,Typography as wr,VirtualizedList as Ux}from"@rango-dev/ui";import P,{useState as zx}from"react";import{useTranslation as Qx}from"react-i18next";import{Divider as nh,ListItem as Mx,Skeleton as Tr}from"@rango-dev/ui";import Nt from"react";import{css as Nn,darkTheme as ac,ImageContainer as Bx,ListItemButton as Wx,styled as at,Typography as jg}from"@rango-dev/ui";var sc=Nn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),lc=Nn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),cc=Nn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),pc=Nn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ac} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),uc=Nn({}),dc=Nn(),Xg=at("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),mc=at("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ma=at("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${lc}`]:{[`& .${pc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${uc}`]:{bottom:"-15px"},[`& .${sc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${cc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Yg=at(Wx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),fc=at("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),gc=at(jg,{}),Zg=at("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${dc}`]:{$$color:"$colors$neutral600",[`.${ac} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),kr=at("div",{display:"flex",alignItems:"end",flexDirection:"column"}),dV=at("div",{display:"flex",alignItems:"center"}),Jg=at("div",{position:"relative",[`& ${Bx}`]:{borderRadius:"$xm",overflow:"hidden"}}),Rg=at("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),eh=at(jg,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),th=at("a",{"& svg:hover":{color:"$colors$info"}}),oh=at("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":{[`.${ac} &`]:{color:"$foreground"}}}});function rh(t){return Nt.createElement(ma,null,Array.from(Array(t.size),e=>Nt.createElement(Mx,{key:e,hasDivider:!0,start:Nt.createElement(Tr,{variant:"circular",width:35,height:35}),end:Nt.createElement(kr,null,Nt.createElement(Tr,{variant:"text",size:"large",width:70}),Nt.createElement(nh,{size:4}),Nt.createElement(Tr,{variant:"text",size:"medium",width:50})),title:Nt.createElement("div",null,Nt.createElement(Tr,{variant:"text",size:"large",width:90}),Nt.createElement(nh,{size:4}),Nt.createElement(Tr,{variant:"text",size:"medium",width:90}))})))}i(rh,"LoadingTokenList");var Hx=20,qx=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return P.createElement("div",{className:lc()},o?P.createElement("div",{className:sc()},o):P.createElement(mc,{className:cc()},P.createElement(wr,{variant:"title",size:"xmedium"},r.symbol),P.createElement(eo,{direction:"horizontal",size:4}),P.createElement(fc,{css:a},P.createElement(gc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&P.createElement("div",{className:`${pc()} ${!o&&uc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",P.createElement(eo,{size:4,direction:"horizontal"}),P.createElement(th,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},P.createElement(_x,{size:12}))))},"renderDesc");function vr(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:d,fetchingWallets:f}=k(),{isTokenPinned:h}=k(),{setFromToken:g,setToToken:m}=z()(),{t:C}=Qx(),y=Xe(),[S,T]=zx(null),w=i(()=>{c==="source"?g({token:S,meta:{blockchains:u}}):m({token:S,meta:{blockchains:u}})},"updateToken"),v=i(()=>{w(),y()},"handleImportToken"),N=i(E=>{if(E.customToken){let{customToken:M,...I}=E;return P.createElement(Lx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(U=>{U.stopPropagation(),T({...I,warning:!0})},"handleClick")},P.createElement(wr,{variant:"body",size:"xsmall",color:"background"},C("import")))}let x=ii(d(E));return s?s(E):f?P.createElement(kr,null,P.createElement(Qo,{variant:"text",size:"large",width:70}),P.createElement(eo,{size:4}),P.createElement(Qo,{variant:"text",size:"medium",width:50})):x&&P.createElement(Zg,null,P.createElement(eh,{variant:"title",size:"small"},x.amount),P.createElement("div",null),x.usdValue&&P.createElement(wr,{variant:"body",className:dc(),size:"xsmall"},`$${x.usdValue}`))},"endRenderer"),B=i(()=>P.createElement(Ux,{itemContent:E=>{let x=e[E];if(x==="skeleton")return P.createElement($x,{hasDivider:!0,start:P.createElement(Qo,{variant:"circular",width:35,height:35}),end:P.createElement(kr,null,P.createElement(Qo,{variant:"text",size:"large",width:70}),P.createElement(eo,{size:4}),P.createElement(Qo,{variant:"text",size:"medium",width:50})),title:P.createElement("div",null,P.createElement(Qo,{variant:"text",size:"large",width:90}),P.createElement(eo,{size:4}),P.createElement(Qo,{variant:"text",size:"medium",width:90}))});let M=u.find(L=>L.name===x?.blockchain);if(!M||!x)return null;let I=x.address,_=al(M.color,"main"),U={$$color:_.main150,[`.${ih} &`]:{$$color:_.main750},backgroundColor:"$$color"},q={$$color:_.main750,[`.${ih} &`]:{$$color:_.main150},color:"$$color"},j=i(()=>{typeof x!="string"&&!x.customToken&&n?.(x)},"handleClick");return P.createElement(oh,null,P.createElement(Yg,{"tab-index":E,key:`${x.symbol}${I}`,id:`${x.symbol}${I}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:x?.customToken,onClick:j,start:P.createElement(Jg,null,P.createElement(Dx,{src:x.image===""?Xr:x.image,size:30}),t.type!=="custom-token"&&x&&h(x,t.type)&&P.createElement(Rg,null,P.createElement(Ox,{size:12,color:"gray"}))),title:M.type==="COSMOS"||x.name||!x.name&&!I?P.createElement(mc,null,P.createElement(wr,{variant:"title",size:"xmedium"},x.symbol),P.createElement(eo,{direction:"horizontal",size:4}),P.createElement(fc,{css:U},P.createElement(gc,{variant:"body",size:"xsmall",css:q},x.blockchain)),l&&x.warning&&P.createElement(P.Fragment,null,P.createElement(eo,{direction:"horizontal",size:4}),P.createElement(Px,{container:W()}))):void 0,description:typeof x!="string"&&M.info&&I&&M.type!=="COSMOS"?qx({address:I,token:x,customCssForTag:U,customCssForTagTitle:q,name:x.name,url:M.info.addressUrl.split("{wallet}").join(I)}):x.name||void 0,end:N(x)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),b=S?Eo(S?.blockchain,u):null;return P.createElement(P.Fragment,null,a&&P.createElement(P.Fragment,null,P.createElement(wr,{variant:"label",size:"large"},hc.t("Select Token")),P.createElement(eo,{size:4})),P.createElement(Xg,null,P.createElement(eo,{size:4}),p==="loading"&&P.createElement(rh,{size:Hx}),p==="success"&&(e.length?P.createElement(P.Fragment,null,P.createElement(nr,{token:S,address:S?.address??"",blockchain:b??void 0,onImport:v,onExitErrorModal:()=>T(null),onExitImportModal:()=>T(null)}),P.createElement(ma,{as:"ul"},B())):!!o&&P.createElement(Fx,{title:hc.t("No results found"),description:hc.t("Try using different keywords")}))))}i(vr,"TokenList");var Jx=Cc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Rx=Cc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),eE=Cc(jx,{"&:hover":{"& svg":{color:"$secondary550"}}});function ah(){let[t,e]=Sc(""),{deleteCustomToken:o}=k(),n=k().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=z()(),{mode:l}=po({}),p=Zx(),[u,d]=Sc(!1),[f,h]=Sc(),g=i(S=>{let T=S.target.value;e(T)},"handleSearch"),m=l==="dark",C=n.filter(S=>lt(S.symbol,t)||lt(S.address||"",t)||lt(S.name||"",t)),y=i(()=>{if(f){let S=a?yt(a):null,T=r?yt(r):null,w=yt(f);S===w?c({token:null}):T===w&&s({token:null}),o(f)}d(!1)},"handleDeleteCustomToken");return fe.createElement(ie,{header:{title:to.t("Custom Tokens")}},fe.createElement(se,null,fe.createElement(Jx,null,n.length?fe.createElement(fe.Fragment,null,fe.createElement(At,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:to.t("Search Token"),onChange:g}),fe.createElement(br,{size:16}),fe.createElement(vr,{list:C,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:S=>fe.createElement(eE,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(S)}},fe.createElement(Kx,{size:12,color:"gray"}))})):fe.createElement(Rx,null,fe.createElement(Yx,{icon:m?fe.createElement(Gx,{size:200}):fe.createElement(Vx,{size:200}),title:to.t("No custom tokens"),description:to.t("press the button to add your custom token")})),fe.createElement(br,{size:20}),fe.createElement(yc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(O.addCustomTokens)},to.t("Add Custom Token"))),fe.createElement(R,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:W()},fe.createElement(Xx,{title:to.t("Delete Custom Token"),type:"error",description:to.t("Are you sure you want to Delete this Token?")},fe.createElement(br,{size:40}),fe.createElement(br,{size:10}),fe.createElement(yc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},to.t("Yes, Delete it")),fe.createElement(br,{size:12}),fe.createElement(yc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},to.t("No, Continue"))))))}i(ah,"CustomTokensPage");import{i18n as Ue}from"@lingui/core";import{useManager as kE}from"@rango-dev/queue-manager-react";import{Button as Ec,darkTheme as TE,Divider as So,MessageBox as wE,NotFound as vE,styled as Ic,Tabs as bE,Typography as ha}from"@rango-dev/ui";import{TransactionStatus as Ir}from"rango-types";import te,{useMemo as xh,useState as Ar}from"react";import{useNavigate as xE}from"react-router-dom";import{FilterIcon as sE,Popover as lE}from"@rango-dev/ui";import Ho from"react";import{css as tE,darkTheme as fa,IconButton as oE,styled as xr}from"@rango-dev/ui";var kc=xr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${fa} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),sh=xr(oE,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${fa} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${fa} &`]:{backgroundColor:"$neutral"},[`& ${kc}::before`]:{backgroundColor:"$secondary100",[`.${fa} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),lh=xr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),ch=xr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),ph=tE({display:"flex",justifyContent:"space-between",alignItems:"center"}),uh=xr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as dh}from"@lingui/core";import{Button as nE,Divider as mh,ListItemButton as rE,Radio as iE,RadioRoot as aE,Typography as fh}from"@rango-dev/ui";import mt from"react";function gh(t){let{filterBy:e,onClickItem:o}=t;return mt.createElement(ch,null,mt.createElement("div",{className:ph()},mt.createElement(fh,{size:"small",variant:"body"},dh.t("Status")),mt.createElement(nE,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},dh.t("Reset"))),mt.createElement(mh,{size:10}),mt.createElement(aE,{value:e},mt.createElement(uh,null,t.list.map((n,r)=>mt.createElement(rE,{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:mt.createElement(mt.Fragment,null,mt.createElement(mh,{direction:"horizontal",size:4}),mt.createElement(fh,{size:"medium",variant:"body"},n.title)),start:mt.createElement(iE,{value:n.id}),onClick:o})))))}i(gh,"FilterSelectorContent");function Tc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Ho.createElement("div",null,Ho.createElement(lE,{open:a,align:"end",onOpenChange:o,container:W(),content:Ho.createElement(gh,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Ho.createElement(sh,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Ho.createElement(kc,{isSelect:!!n},Ho.createElement(sE,{size:16,color:"black"}),!!n&&Ho.createElement(lh,null)))))}i(Tc,"FilterSelector");import{i18n as uE}from"@lingui/core";import{getCurrentStep as dE}from"@rango-dev/queue-manager-rango-preset";import{Divider as kh,GroupedVirtualizedList as mE,Skeleton as fE,SwapListItem as Th,Typography as gE}from"@rango-dev/ui";import et,{useCallback as wh,useEffect as hE,useRef as yE,useState as SE}from"react";function hh(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(hh,"calculateGroupsSoFar");import{css as cE,darkTheme as pE,styled as Er}from"@rango-dev/ui";var wc=cE(),yh=Er("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),vc=Er("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${wc}`]:{$$color:"$colors$neutral600",[`.${pE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),bc=Er("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Sh=Er("div",{gap:"$10",display:"flex",flexDirection:"column"}),Ch=Er("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var CE=10;function xc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=SE([]),c=yE(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=wh(hh,[]),f=wh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,CE),s(d(p,c.current)))},[e.length]);if(hE(()=>{r||f()},[r,f]),r){let h=[1,2];return et.createElement(et.Fragment,null,[h,h].map((m,C)=>et.createElement(vc,{key:C},et.createElement(bc,null,et.createElement(fE,{variant:"text",width:60,size:"small"}),et.createElement(kh,{size:16})),et.createElement(kh,{size:4}),et.createElement(Sh,null,m.map((S,T)=>et.createElement(Th,{isLoading:!0,key:T}))))))}return et.createElement(mE,{endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>et.createElement(vc,null,et.createElement(bc,null,et.createElement(gE,{variant:"label",size:"medium",className:wc()},u[h]))),itemContent:(h,g)=>{let m=l[h];if(!m)return null;let C=dE(m),y=m.steps[0],S=m.steps[m.steps.length-1];return!y||!S?null:et.createElement(yh,{key:m.requestId},et.createElement(Th,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:C,tooltipContainer:W(),onlyShowTime:u[g]===uE.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:D(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:D(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(xc,"HistoryGroupedList");import{i18n as ga}from"@lingui/core";import vh from"dayjs";var bh=i(t=>{let e=new Map([["today",{title:ga.t("Today"),swaps:[]}],["week",{title:ga.t("This week"),swaps:[]}],["month",{title:ga.t("This month"),swaps:[]}],["year",{title:ga.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=vh();t.forEach(l=>{let p=Number(l.creationTime),u=vh(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 d=new Date(p).getFullYear().toString();o(d,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 EE=Ic("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),IE=Ic("div",{display:"flex",justifyContent:"center",alignItems:"center"}),AE=Ic("div",{"._typography":{color:"$neutral700",[`.${TE}&`]:{color:"$neutral900"}}}),NE=i((t,e)=>t?.length?t.filter(o=>Pt(o.fromBlockchain,e)||Pt(o.toBlockchain,e)||Pt(o.toSymbol,e)||Pt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Eh(){let t=xE(),{manager:e,state:o}=kE(),n=wt(e).map(({swap:b})=>b),[r,a]=Ar(""),[s,c]=Ar(!1),l=!o.loadedFromPersistor,[p,u]=Ar(""),[d,f]=Ar(!1),[h,g]=Ar("all"),m=i(b=>{let E=b.target.value;a(E)},"handleSearch"),{isMultiMode:C}=Ct(),y=[{id:Ir.SUCCESS,title:Ue.t("Complete")},{id:Ir.RUNNING,title:Ue.t("Running")},{id:Ir.FAILED,title:Ue.t("Failed")}],S=[{id:"all",title:Ue.t("All")},{id:"swap",title:Ue.t("Swap")},{id:"refuel",title:Ue.t("Refuel")}],T=xh(()=>!r&&!p&&h==="all"?n:n.filter(b=>{let{inputAmount:E,status:x,steps:M,requestId:I,mode:_}=b;return(!r||Pt(E,r)||Pt(x,r)||NE(M,r)||Pt(I,r))&&(!p||p===x)&&(h==="all"?!0:h==="swap"?!_||_==="swap":h==="refuel"?_==="refuel":!1)}),[n,r,p,h]),w=!T?.length&&!l,v=i(()=>f(!1),"onCloseModal"),N=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(b){console.log(b)}},"onClear"),B=xh(()=>!n.some(b=>b.status===Ir.SUCCESS||b.status===Ir.FAILED),[n]);return te.createElement(ie,{header:{title:Ue.t("History"),suffix:te.createElement(uo,null,te.createElement(Ec,{id:"widget-history-clear-btn",disabled:B,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},te.createElement(ha,{size:"medium",variant:"label",color:"error"},Ue.t("Clear"))))}},te.createElement(se,null,te.createElement(IE,null,te.createElement(At,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Ue.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:m,style:{height:36},value:r}),te.createElement(So,{size:10,direction:"horizontal"}),te.createElement(Tc,{filterBy:p,open:s,onOpenChange:b=>c(b),onClickItem:b=>u(b),list:y})),te.createElement(So,{size:"16"}),C&&!l&&te.createElement(te.Fragment,null,te.createElement(bE,{items:S,onChange:b=>g(b.id),value:h,type:"secondary"}),te.createElement(So,{size:"12"})),te.createElement(EE,null,w&&te.createElement(Ch,null,te.createElement(So,{size:32}),te.createElement(vE,{title:r?Ue.t("No results found"):Ue.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Ue.t("Try using different keywords"):Ue.t("Your transaction history is stored locally and will appear here after you start a swap")})),!w&&te.createElement(xc,{list:T,onSwapClick:t,groupBy:bh,isLoading:l}))),te.createElement(R,{open:d,onClose:v,id:"widget-history-clear-modal",container:W()},te.createElement(So,{size:20}),te.createElement(wE,{type:"warning",title:Ue.t("Clear Transaction History"),description:te.createElement(AE,null,te.createElement(ha,{variant:"body",size:"medium"},Ue.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),te.createElement(So,{size:"24"}),te.createElement(ha,{variant:"body",size:"small"},Ue.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),te.createElement(So,{size:30}),te.createElement(Ec,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:N},Ue.t("Yes, Clear the history")),te.createElement(So,{size:10}),te.createElement(Ec,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:v},te.createElement(ha,{variant:"title",size:"medium",color:"primary"},Ue.t("No, Cancel")))))}i(Eh,"HistoryPage");import{i18n as oy}from"@lingui/core";import{Button as uI,Divider as zc,styled as dI,WarningIcon as mI}from"@rango-dev/ui";import fI from"bignumber.js";import he,{useEffect as ny,useState as ry}from"react";import{useNavigate as gI}from"react-router-dom";import{i18n as Ah}from"@lingui/core";import{Alert as WE,Divider as Ac,NoRouteIcon as ME,Typography as LE}from"@rango-dev/ui";import qo from"react";import{styled as BE}from"@rango-dev/ui";var Ih=BE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Nc(){let{fromToken:t,toToken:e}=z()();return!!t&&!!e&&Ht(t,e)?qo.createElement(Ih,null,qo.createElement(Ac,{size:10}),qo.createElement(ME,{size:24,color:"gray"}),qo.createElement(Ac,{size:4}),qo.createElement(LE,{variant:"title",size:"small"},Ah.t("No Routes Found")),qo.createElement(Ac,{size:4}),qo.createElement(WE,{title:Ah.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Nc,"SameTokensWarning");import{Alert as PE,Button as _E}from"@rango-dev/ui";import Bh from"react";import{i18n as ya}from"@lingui/core";function Nh(t){let e=null;return t===ci?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ya.t("Reset"),title:ya.t("Slippage cannot be set lower than 0.01%.")},e):t>tn?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ya.t("Change"),title:ya.t("Caution, your slippage is high!")},e):null}i(Nh,"makeAlerts");function Wh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=k(),{onChangeSettings:a}=t,c=Nh(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(li),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Bh.createElement(PE,{title:c.title,type:c.alertType,variant:"alarm",action:Bh.createElement(_E,{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 UE}from"@lingui/core";import{IconButton as zE,ReverseIcon as QE,Skeleton as HE,Tooltip as qE,Typography as Nr}from"@rango-dev/ui";import ft from"react";import Sa from"bignumber.js";function Lh(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(Lh,"getSlippageColor");function Ph(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new Sa(e),r=new Sa(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(Ph,"getUsdExchangeRate");function _h(t,e){let o=new Sa(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,Sa.ROUND_DOWN).toFormat(2)}`}i(_h,"formatTokenValueInUsd");import{darkTheme as FE,styled as Wc,Typography as OE}from"@rango-dev/ui";var Dh=Wc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),$h=Wc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${FE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Mc=Wc(OE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Lc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=k(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:f}=po({}),h=rn(d),g=f==="dark",m=n==="default",C={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},S=p?.swaps[0]?.from||c,T=p?.swaps[p?.swaps.length-1]?.to||l,w=m?S:T,v=m?T:S,N=Number(m?p?.outputAmount:p?.requestAmount),B=Number(m?p?.requestAmount:p?.outputAmount),b=N||w.usdPrice,E=B||v.usdPrice,{rawValue:x,displayValue:M}=Ph({toTokenUsdPrice:E,fromTokenUsdPrice:b});return ft.createElement(Dh,null,ft.createElement(Nr,{variant:C||y?"label":"body",size:C||y?"medium":"small",color:Lh({error:C,warning:y,isDarkTheme:g})},UE.t("Slippage:")," ",d,"%"),u?ft.createElement(HE,{height:16,width:104,variant:"rounded"}):b&&E&&ft.createElement($h,null,ft.createElement(Nr,{className:"rate-text",variant:"body",size:"small"},"1"),ft.createElement(Mc,{className:"rate-text",variant:"body",size:"small"},v.symbol),ft.createElement(zE,{id:"widget-home-page-change-rate-button",onClick:r},ft.createElement(QE,{size:14,color:"secondary"})),ft.createElement(qE,{container:W(),side:"top",sideOffset:4,content:ft.createElement(Nr,{className:"rate-text",variant:"body",size:"small"},x)},ft.createElement(Nr,{className:"rate-text",variant:"body",size:"small"},M)),ft.createElement(Mc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&&ft.createElement(Nr,{color:"neutral600",variant:"body",size:"small"},"~",_h(Number(x),w.usdPrice))))}i(Lc,"SwapMetrics");import{i18n as YE}from"@lingui/core";import{Header as ZE}from"@rango-dev/ui";import Co,{useEffect as JE,useState as RE}from"react";import{i18n as VE}from"@lingui/core";import{Divider as _c,FullExpandedQuote as KE,Typography as jE}from"@rango-dev/ui";import Te from"react";import{styled as Pc}from"@rango-dev/ui";var Fh=Pc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Oh=Pc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Uh=Pc("div",{width:"146px"});import{i18n as Br}from"@lingui/core";import{Select as GE}from"@rango-dev/ui";import zh from"react";function Ca(t){let{updateQuotePartialState:e,sortStrategy:o}=z()(),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 zh.createElement(Uh,null,zh.createElement(GE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Ca,"SelectStrategy");var Qh=3;function Wr(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:d,toToken:f,sortStrategy:h,error:g}=z()(),{slippage:m,customSlippage:C}=k(),{findToken:y}=k(),S=c||W(),T=!!p&&p.results.length,w=C??m,v=i(b=>{if(!d||!f||!p)return null;let E={requestAmount:p.requestAmount,validationStatus:null,...b};return mn({currentQuote:E,userSlippage:w,findToken:y})},"getQuoteWarning"),N=g?.type===0||g?.type===1,B=p?.results?Ei(h,p?.results):[];return Te.createElement(Te.Fragment,null,a&&Te.createElement(Te.Fragment,null,Te.createElement(Oh,null,Te.createElement(jE,{size:"xmedium",variant:"title"},VE.t("Sort by")),Te.createElement(Ca,{container:S})),Te.createElement(_c,{size:"10"})),e&&Array.from({length:Qh},(b,E)=>Te.createElement(Te.Fragment,{key:E},s?Te.createElement(KE,{loading:!0}):Te.createElement(Sr,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Qh-1&&Te.createElement(_c,{size:16}))),!e&&Te.createElement(Te.Fragment,null,T?B.map((b,E)=>{let x=v(b),M=tc(b.swaps),I=B.length-1===E;return Te.createElement(Te.Fragment,{key:b.requestId},Te.createElement(zo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:S,selected:l?.requestId===b.requestId,tagHidden:!1,quote:{...b,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:M?.options||null,warning:x,fullExpandedMode:s,onClick:_=>{M||u("warning",x),u("error",M?.options||null),o(_)},type:"list-item"}),!I&&Te.createElement(_c,{size:16}))}):N&&Te.createElement(Fh,null,Te.createElement(cr,{size:s?"large":"small",error:g,fetch:n}))))}i(Wr,"Quotes");import{darkTheme as XE,styled as Hh}from"@rango-dev/ui";var qh=Hh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${XE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Gh=Hh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var eI=100;function Dc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=RE(!1),l=s?"":"is-hidden",{config:p}=k(),u=p?.variant==="full-expanded",d=Ao();return JE(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},eI):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Co.createElement(qh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Oi()} widget-expanded-quotes-container`,id:ot.EXPANDED_BOX_ID},Co.createElement(ZE,{title:YE.t("Routes"),suffix:Co.createElement(Co.Fragment,null,Co.createElement(Ca,{container:d}),Co.createElement(Fo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Co.createElement(Gh,null,Co.createElement(Wr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:Ao(),onClickOnQuote:n,fullExpandedMode:u})))}i(Dc,"ExpandedQuotes");import{i18n as Jh}from"@lingui/core";import{SwapInput as Rh}from"@rango-dev/ui";import rI from"bignumber.js";import Mr from"react";import{ReverseIcon as nI}from"@rango-dev/ui";import Fc from"react";import{keyframes as tI,styled as Vh}from"@rango-dev/ui";var $c=450,oI=tI({"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)"}}),Kh=Vh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),jh=Vh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${oI} ${$c}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 Oc(){let t=z().use.switchFromAndTo();return Fc.createElement(Kh,null,Fc.createElement(jh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},$c),t()}},Fc.createElement(nI,{size:12})))}i(Oc,"SwitchFromAndToButton");import{styled as Xh}from"@rango-dev/ui";var Yh=Xh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Zh=Xh("div",{position:"relative"});function Uc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:d,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:m}=z()(),{swapMode:C}=Ct(),{connectedWallets:y,getBalanceFor:S}=k(),T=a?S(a):null,w=ii(T)?.amount??"0",v=T?new rI(T.amount).shiftedBy(-T.decimals):ce,N=!!s&&vu(y,s.name),B=!Qs(m,d,f),b=!Qs(m,d,g),E=!f||!g||!g.gt(0)?null:Kt(f.toString(),g.toString());return Mr.createElement(Yh,null,Mr.createElement(Zh,null,Mr.createElement(Rh,{label:Jh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:w,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:B?void 0:D(f,4,4),realUsdValue:B?void 0:f?.toString(),error:B?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:N,tooltipContainer:W(),onSelectMaxBalance:()=>{let x=D(v,T?.decimals),M=T?.amount?x.split(",").join(""):"";p(M)},anyWalletConnected:y.length>0}),C==="swap"&&Mr.createElement(Oc,null)),Mr.createElement(Rh,{selectionType:C==="swap"?"token":"chain",sharpBottomStyle:!r&&(!!m||e),label:Jh.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(Kt(f,g),2,2),warningLevel:jt(E??0),price:{value:D(h,6,6),usdValue:b?void 0:D(g,4,4),realValue:h?.toString(),realUsdValue:b?void 0:g?.toString(),error:b?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:W()}))}i(Uc,"Inputs");import{warn as iI}from"@rango-dev/logging-core";import{useCallback as aI,useEffect as sI,useRef as lI,useState as cI}from"react";function ey(){let{fetch:t,loading:e,cancelFetch:o}=ca({request:async(n,r)=>await pt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(ey,"useFetchAllQuotes");var pI=600;function ka({refetchQuote:t}){let{fetch:e,cancelFetch:o}=ey(),{excludeLiquiditySources:n,routing:r}=k().config,{connectedWallets:a}=k(),c=a.some(ue=>ue.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:f,sortStrategy:h,resetQuote:g,error:m,warning:C,setSelectedQuote:y,updateQuotePartialState:S}=z()(),{slippage:T,customSlippage:w,affiliatePercent:v,affiliateRef:N,affiliateWallets:B,fetchStatus:b}=k(),E=k().getLiquiditySources(),x=k().getDisabledLiquiditySources(),M=k().excludeLiquiditySources(),{findToken:I}=k(),[_,U]=cI(!0),q=lI(u),j=w??T,Y=!l||!p||Ht(l,p)||!On(u),ee=i(ue=>{U(ue)},"resetState"),Z=i(ue=>{let{fromToken:we,toToken:ve,inputAmount:qe,liquiditySources:Ae,excludeLiquiditySources:$,disabledLiquiditySources:A,slippage:G,affiliateRef:ae,affiliatePercent:K,affiliateWallets:X}=ue;if(_||ee(!0),!Y&&we&&ve){g();let Ge=Hd({fromToken:we,toToken:ve,inputAmount:qe,liquiditySources:Ae,excludeLiquiditySources:$,disabledLiquiditySources:A,wallets:a,slippage:G,affiliateRef:ae,affiliatePercent:K,affiliateWallets:X,contractCall:c});nn("experimental",r)&&(Ge.experimental=!0),nn("avoidNativeFee",r)&&(Ge.avoidNativeFee=!0),nn("enableCentralizedSwappers",r)&&(Ge.enableCentralizedSwappers=!0),r?.maxLength&&(Ge.maxLength=r.maxLength),e(Ge).then(Ve=>{let be=Ei(h,Ve.results),Mt=Wd(f,be,Ve.requestAmount);U(!1),S("quotes",Ve),y(Mt),pa({diagnosisMessages:Ve.diagnosisMessages,requestId:Mt?.requestId||"",swaps:Mt?.swaps});let Ya=Mt&&mn({currentQuote:Mt,userSlippage:j,findToken:I});S("warning",Ya)}).catch(Ve=>{let be=ua(Ve);(be.type===0||be.type===1)&&g(),be.type!==2&&(S("error",be),U(!1),iI(new Error("quote error"),{tags:{...be,type:Ze[be.type],requestBody:Ge}}))})}},"fetch"),le=aI(Jr(ue=>{Z(ue)},pI),[Y]);return sI(()=>{if(!t){U(!1);return}if(b!=="success")return;if(Y){U(!1),(f||m||C)&&g();return}if(!On(u)&&d?.eq(0)){ee(!1),o();return}g(),ee(!0);let ue=Z;return q.current&&q.current!=u&&(ue=le),q.current=u,ue({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:M,disabledLiquiditySources:x,slippage:j,affiliateRef:N,affiliatePercent:v,affiliateWallets:B,contractCall:c}),o},[b,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,Y,E?.length,n,x.length,j,N,v,c,JSON.stringify(B)]),{fetch:()=>Z({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:M,disabledLiquiditySources:x,slippage:j,affiliateRef:N,affiliatePercent:v,affiliateWallets:B,contractCall:c}),loading:_}}i(ka,"useSwapInput");function ty(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(ty,"emitPreventableEvent");var hI=dI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),yI=300;function iy(){let t=gI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:f}=z()(),[h,g]=ry(!1),{isLargeScreen:m,isExtraLargeScreen:C}=yn(),{fetch:y,loading:S}=ka({refetchQuote:a}),{config:T,fetchStatus:w,connectedWallets:v,customSlippage:N,slippage:B,setSlippage:b,setCustomSlippage:E}=k(),{isActiveTab:x}=oe(),[M,I]=ry(!1),_=N!==null?N:B,{swapMode:U}=Ct(),q=rn(_),L=Od({fetchMetaStatus:w,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:v.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),Y=Bu(m,C,T?.variant),ee=!!n&&!!e&&!!o&&new fI(n).gt(0)&&!Yd(e,o),Z=ee&&w==="success"&&S,le=q?.quoteValidation||c,ve=(!Y||Y&&l?.results.length)&&(le||s),qe=!!e&&!!o,Ae=qe&&!!q,$=(r||s)&&!M?y:void 0,A=i(X=>{Y&&h?(g(!1),setTimeout(()=>{t(X)},yI)):t(X)},"onHandleNavigation"),G=i(X=>{r?.requestId!==X.requestId&&(I(!1),p(X))},"onClickOnQuote"),ae=i(X=>{if(X){if(si.includes(X)){b(X),E(null);return}E(X)}},"onChangeSlippage"),K=i(X=>{A(X==="from"?O.fromSwap:U==="swap"?O.toSwap:O.toSwap+"/"+O.blockchains)},"handleInputTokenClick");return ny(()=>{u(),f("refetchQuote",!0)},[]),ny(()=>{g(ee)},[ee]),he.createElement(hI,null,he.createElement(ie,{height:"auto",footer:he.createElement(uI,{id:`widget-swap-${L.action}-btn`,type:"primary",size:"large",disabled:L.disabled||!x,prefix:L.action==="confirm-warning"&&he.createElement(mI,null),fullWidth:!0,onClick:()=>{L.action==="connect-wallet"?ty({type:"clickConnectWallet"},()=>A(O.wallets)):L.action==="confirm-warning"?I(!0):A(O.confirmSwap)}},L.title),header:{onWallet:()=>{A(O.wallets)},hasBackButton:!1,title:T.title||(U==="swap"?oy.t("Swap"):oy.t("Refuel")),suffix:he.createElement(Fo,{hidden:Y?["refresh"]:void 0,onClickRefresh:$,onClickHistory:()=>A(O.swaps),onClickSettings:()=>{A(O.settings)}})}},he.createElement(se,null,he.createElement(Uc,{fetchingQuote:Z,fetchMetaStatus:w,isExpandable:Y,onClickToken:K}),he.createElement(zc,{size:"2"}),Y?null:he.createElement(zo,{quote:r,loading:Z,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:le,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),A(O.routes)}:void 0}),qe&&he.createElement(he.Fragment,null,he.createElement(zc,{size:8}),he.createElement(Lc,{quoteError:s,quoteWarning:le,fromToken:e,toToken:o,quote:r,loading:Z})),ve?he.createElement(he.Fragment,null,he.createElement(dr,{warning:le,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:y,showWarningModal:M,confirmationDisabled:!x,onOpenWarningModal:()=>I(!0),onCloseWarningModal:()=>I(!1),onChangeSlippage:ae,onConfirmWarningModal:()=>{I(!1),d(!0),A(O.confirmSwap)},onChangeSettings:()=>A(O.settings)})):null,Ae&&he.createElement(he.Fragment,null,he.createElement(zc,{size:"10"}),he.createElement(Wh,{onChangeSettings:()=>A(O.settings)})),he.createElement(Nc,null))),Y?he.createElement(Dc,{loading:Z,onClickOnQuote:G,fetch:y,onClickRefresh:$,isVisible:h}):null)}i(iy,"Home");import{i18n as ay}from"@lingui/core";import{Alert as SI,Divider as CI,List as kI,ListItemButton as TI,Radio as wI,RadioRoot as vI,Typography as bI}from"@rango-dev/ui";import Ot from"react";function ko(){let{setLanguage:t,language:e,config:o}=k(),n=$u,r=o?.language||an;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||an),resetLanguage:()=>t(null)}}i(ko,"useLanguage");function sy(){let{activeLanguage:t,changeLanguage:e,languages:o}=ko(),n=Xe(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Ot.createElement(bI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Ot.createElement(wI,{value:s}),start:Ot.createElement(l,null)}});return Ot.createElement(ie,{header:{title:ay.t("Language")}},Ot.createElement(se,null,Ot.createElement(SI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Ot.createElement(CI,{size:"8"}),Ot.createElement(vI,{value:t},Ot.createElement(kI,{type:Ot.createElement(TI,{title:ay.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(sy,"LanguagePage");import{i18n as oo}from"@lingui/core";import{Button as NI,Checkbox as BI,Image as WI,ListItemButton as MI,NotFound as LI,Typography as PI}from"@rango-dev/ui";import tt,{useState as _I}from"react";import{Checkbox as II,Skeleton as cy}from"@rango-dev/ui";import Pr from"react";import{styled as Qc}from"@rango-dev/ui";var Lr=Qc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Hc=Qc("div",{width:80,display:"flex",justifyContent:"flex-end"}),qc=Qc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as xI,styled as EI}from"@rango-dev/ui";var ly=EI(xI,{height:61});var AI=30;function Gc(){return Pr.createElement(Lr,null,Array.from(Array(AI),(t,e)=>Pr.createElement(ly,{hasDivider:!0,key:e,start:Pr.createElement(cy,{variant:"circular",width:35,height:35}),title:Pr.createElement(cy,{variant:"text",size:"large",width:90}),end:Pr.createElement(II,{checked:!1})})))}i(Gc,"LoadingLiquiditySourceList");function Vc({sourceType:t}){let e=k().fetchStatus,o=k().swappers(),n=k().getDisabledLiquiditySources(),[r,a]=_I(""),s=k().toggleLiquiditySource,c=k().isInCampaignMode(),l=pi(o,n),p={Exchanges:oo.t("Exchanges"),Bridges:oo.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(y=>u.includes(y.type)),f=d.length===d.filter(y=>y.selected).length,h=i(()=>{d.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=d.map(y=>{let{selected:S,groupTitle:T,logo:w,id:v,...N}=y;return{id:`widget-setting-liquidity-source-${uu(v.toLowerCase())}-item-btn`,start:tt.createElement(WI,{src:w,size:22,type:"circular"}),onClick:()=>{c||s(T)},end:tt.createElement(BI,{checked:S,disabled:c}),title:tt.createElement(PI,{variant:"title",size:"xmedium"},oo.t(T)),selected:S,groupTitle:T,logo:w,...N}}),m=i(y=>{let S=y.target.value;a(S)},"handleSearch"),C=g;return r&&(C=g.filter(y=>Pt(y.groupTitle,r))),tt.createElement(ie,{header:{title:oo.t(t),suffix:tt.createElement(Hc,null,tt.createElement(NI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},f?oo.t("Deselect all"):oo.t("Select all")))}},tt.createElement(se,{view:!0},tt.createElement(At,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:oo.t("Search {sourceType}",{sourceType:p[t]}),onChange:m}),e==="loading"&&tt.createElement(Gc,null),!C.length&&r?tt.createElement(qc,null,tt.createElement(LI,{title:oo.t("No results found"),description:oo.t("Try using different keywords")})):e==="success"&&tt.createElement(Lr,{disabled:c,className:"widget-liquidity-source-list"},C.map(y=>{let{groupTitle:S,...T}=y;return tt.createElement(tt.Fragment,{key:y.id},tt.createElement(MI,{style:{height:"61px"},...T,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Vc,"LiquiditySourcePage");import{i18n as DI}from"@lingui/core";import Ta from"react";import{useNavigate as $I}from"react-router-dom";function py(){let t=$I(),e=Xe(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=z()(),{fetch:c,loading:l}=ka({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${O.settings}`,d=`../${O.wallets}`;return Ta.createElement(ie,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:DI.t("Routes"),suffix:Ta.createElement(Fo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Ta.createElement(se,null,Ta.createElement(Wr,{fetch:c,loading:l,onClickOnQuote:p})))}i(py,"RoutesPage");import{i18n as yy}from"@lingui/core";import{Divider as Sy,getCategoriesCount as KI,SelectableCategoryList as jI}from"@rango-dev/ui";import no,{useState as Cy}from"react";import{useNavigate as XI}from"react-router-dom";import{i18n as Kc}from"@lingui/core";import{Divider as zI,Image as QI,ListItemButton as HI,NotFound as qI,Typography as hy}from"@rango-dev/ui";import gt,{useEffect as GI,useState as VI}from"react";var uy=i((t,e,o)=>t.filter(n=>Rr(n.type,o)).filter(n=>lt(n.name,e)||lt(n.displayName,e)),"filterBlockchains");import{ImageContainer as FI,styled as dy}from"@rango-dev/ui";var my=dy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),wa=dy(bl,{padding:0,margin:0,listStyle:"none",[`& ${FI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as OI,Skeleton as fy}from"@rango-dev/ui";import va from"react";var UI=20;function gy(){return va.createElement(wa,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(UI),t=>va.createElement(OI,{key:t,hasDivider:!0,start:va.createElement(fy,{variant:"circular",width:35,height:35}),title:va.createElement(fy,{variant:"text",size:"large",width:90})})))}i(gy,"LoadingBlockchainList");function jc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=VI(e),{fetchStatus:l}=k();GI(()=>{c([...uy(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?gt.createElement(qI,{title:Kc.t("No results found"),description:Kc.t("Try using different keywords")}):gt.createElement(wa,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>gt.createElement(HI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:gt.createElement(QI,{src:u.logo,size:30}),title:gt.createElement(hy,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return gt.createElement(gt.Fragment,null,a&>.createElement(gt.Fragment,null,gt.createElement(hy,{variant:"label",size:"large"},Kc.t("Select Chain")),gt.createElement(zI,{size:4})),gt.createElement(my,null,l==="loading"&>.createElement(gy,null),l==="success"&&p()))}i(jc,"BlockchainList");function ba(t){let{type:e}=t,o=Xe(),[n,r]=Cy(""),[a,s]=Cy("ALL"),c=z().use.setToBlockchain(),l=z().use.setFromBlockchain(),p=z().use.setToToken(),{fetchStatus:u,findNativeToken:d}=k(),f=XI(),{swapMode:h}=Ct(),g=k().blockchains({type:e}),m=KI(g),C=!t.hideCategory&&m!==1,y=i(S=>{if(e==="custom-token")f(`..?blockchain=${S.name}`,{replace:!0});else{if(e==="source")l(S);else if(h==="swap")c(S);else{let T=d(S);T&&p({token:T,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return no.createElement(ie,{header:{title:yy.t("Select Chain")}},no.createElement(se,{view:!0},C&&no.createElement(no.Fragment,null,no.createElement(jI,{setCategory:s,category:a,blockchains:g,isLoading:u==="loading"}),no.createElement(Sy,{size:24})),no.createElement(At,{value:n,autoFocus:!0,placeholder:yy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:S=>r(S.target.value)}),no.createElement(Sy,{size:16}),no.createElement(jc,{list:g,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:y})))}i(ba,"SelectBlockchainPage");import{i18n as Ia}from"@lingui/core";import{Divider as Ey,Spinner as pA}from"@rango-dev/ui";import To,{useEffect as uA,useState as dA}from"react";import{useNavigate as mA}from"react-router-dom";import{i18n as Zc}from"@lingui/core";import{BlockchainsChip as xa,Divider as vy,Image as by,Skeleton as tA,Tooltip as oA,Typography as Jc}from"@rango-dev/ui";import xe from"react";import{useEffect as JI}from"react";var ky=["ETH","COSMOS","OSMOSIS"];function Xc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(YI),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(ZI(s)),r=n.splice(a)}return{list:n,more:r}}i(Xc,"prepare");function YI(t,e){let o=ky,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(YI,"sortByMostUsedBlockchains");function ZI(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(ZI,"generateSortByPreferredBlockchainsFor");function Ty(t,e){return!!e.list.find(o=>o.name===t)}i(Ty,"isInVisibleList");function Yc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=k();JI(()=>{if(e?.selected){let a=Xc(t,o,e);Ty(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Xc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Yc,"usePrepareBlockchainList");import{styled as RI}from"@rango-dev/ui";var wy=RI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var nA=6,rA=12;function Rc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=Yc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=k(),p=z().use.resetToBlockchain(),u=z().use.resetFromBlockchain(),d=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&d;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(vy,{size:12}),xe.createElement(Jc,{variant:"label",size:"large"},Zc.t("Select Chain"))),xe.createElement(vy,{size:12}),xe.createElement(wy,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?nA:rA),(m,C)=>xe.createElement(tA,{key:C,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(xa,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(Jc,{variant:"body",size:"xsmall",color:"secondary500"},Zc.t("All"))),c.list.map(m=>xe.createElement(oA,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:W()},xe.createElement(xa,{className:"widget-blockchains-section-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},xe.createElement(by,{src:m.logo,size:30})))),h?xe.createElement(xa,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(by,{src:f.logo,size:30})):null,g?xe.createElement(xa,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(Jc,{variant:"body",size:"xsmall",color:"secondary500"},Zc._("More +{count}",{count:c.more.length}))):null)))}i(Rc,"BlockchainsSection");import{useCallback as aA,useRef as sA,useState as ep}from"react";function tp(){let t=k().blockchains(),e=sA(null),{customTokens:o}=k(),[n,r]=ep(!1),[a,s]=ep([]),[c,l]=ep(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await pt().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(S=>Gt(S))),C=new Set(t.map(S=>S.name)),y=g.tokens.filter(S=>C.has(S.blockchain)&&!m.has(Gt(S)));s(y),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=aA(Jr((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(tp,"useSearchCustomTokens");function Ea(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(Ea,"shouldSearchForCustomTokens");function xy(t,e,o,n,r){let a=[...t];return Ea(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(xy,"prepareTokensList");function Aa(t){let{type:e}=t,o=mA(),n=Xe(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=z()(),{getBalanceFor:u}=k(),{fetch:d,loading:f,tokens:h,cancel:g}=tp(),[m,C]=dA(""),y=e==="source"?r:a,S=y?.name??"",T=k().blockchains({type:e}),w=k().tokens({type:e,blockchain:S,searchFor:m,getBalanceFor:u}),v=xy(w,h,m,f,y?.name),N=i(E=>{e==="source"?l(E):p(E)},"updateBlockchain"),B=i(E=>{e==="source"?s({token:E,meta:{blockchains:T}}):c({token:E,meta:{blockchains:T}})},"updateToken"),b={source:Ia.t("Source"),destination:Ia.t("Destination")};return uA(()=>(Ea(w,m,y?.name)&&d(m,y?.name??void 0),()=>{g()}),[w.length,m,y?.name]),To.createElement(ie,{header:{title:Ia.t("Swap {type}",{type:b[e]})}},To.createElement(se,null,To.createElement(Rc,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(O.blockchains),onChange:E=>{N(E)}}),To.createElement(Ey,{size:24}),To.createElement(At,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:Ia.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>C(""),onChange:E=>C(E.target.value),suffix:Ea(w,m,y?.name)&&f?To.createElement(pA,{size:12,color:"secondary"}):void 0}),To.createElement(Ey,{size:16}),To.createElement(vr,{list:v,selectedBlockchain:S,searchedFor:m,type:e,onChange:E=>{B(E);let x=T.find(M=>E.blockchain===M.name);x&&N(x),n()}})))}i(Aa,"SelectSwapItemsPage");import{i18n as ip}from"@lingui/core";import{Alert as UA,Button as zA,styled as QA}from"@rango-dev/ui";import Go from"react";import{useInRouterContext as HA,useSearchParams as qA}from"react-router-dom";import{i18n as My}from"@lingui/core";import{Alert as yA,Divider as np,InfoIcon as SA,SlippageIcon as CA,TextField as kA,Tooltip as TA,Typography as Ly}from"@rango-dev/ui";import Qe from"react";import{Chip as fA,styled as _r,TextField as gA}from"@rango-dev/ui";var Iy=_r("div",{paddingTop:"$5",padding:"$10 $5"}),Ay=_r("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${gA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),Ny=_r("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Na=_r("div",{maxWidth:"280px",padding:"$10"}),By=_r(fA,{width:"61px",flexShrink:0});import{i18n as op}from"@lingui/core";import{Typography as hA}from"@rango-dev/ui";import Dr from"react";function Wy(){return Dr.createElement(Na,null,Dr.createElement(hA,{variant:"label",size:"medium",color:"neutral700"},op.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Dr.createElement("br",null),Dr.createElement("br",null),Dr.createElement("b",null,op.t("Warning")),":\xA0",op.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(Wy,"SlippageTooltipContent");function rp(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=k(),r=o!==null?rn(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let d=u;u>Hn&&(d=Hn),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;mu(u)||(p.value=u.slice(0,-1))},"onInput");return Qe.createElement(Iy,null,Qe.createElement(Ny,null,Qe.createElement(CA,{size:16,color:"gray"}),Qe.createElement(np,{direction:"horizontal",size:4}),Qe.createElement(Ly,{variant:"title",size:"xmedium"},My.t("Slippage tolerance per swap")),Qe.createElement(np,{direction:"horizontal",size:4}),Qe.createElement(TA,{container:W(),side:"top",sideOffset:4,content:Qe.createElement(Wy,null)},Qe.createElement(SA,{color:"gray"}))),Qe.createElement(Ay,null,si.map((l,p)=>{let u=`slippage-${p}`;return Qe.createElement(By,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),Qe.createElement(kA,{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&&Qe.createElement(Ly,{variant:"body",size:"small"},"%"),placeholder:My.t("Custom")})),r&&Qe.createElement(Qe.Fragment,null,Qe.createElement(np,{size:10}),Qe.createElement(yA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(rp,"Slippage");import{i18n as vt}from"@lingui/core";import{AutoThemeIcon as Py,BridgesIcon as wA,ChevronRightIcon as Ba,DarkModeIcon as _y,Divider as $r,ExchangeIcon as vA,InfinityIcon as bA,InfoIcon as xA,LanguageIcon as EA,LightModeIcon as Dy,List as IA,ListItem as AA,ListItemButton as NA,Skeleton as BA,styled as WA,Switch as MA,Tabs as LA,TargetIcon as PA,Tooltip as _A,Typography as st}from"@rango-dev/ui";import F from"react";import{useNavigate as DA}from"react-router-dom";var $A=WA("div",{width:"202px",height:"$40"}),FA=[{id:"light",icon:F.createElement(Dy,{color:"black",size:24}),tooltip:F.createElement(st,{size:"xsmall",variant:"body"},vt.t("Light"))},{id:"dark",icon:F.createElement(_y,{color:"black",size:24}),tooltip:F.createElement(st,{size:"xsmall",variant:"body"},vt.t("Dark"))},{id:"auto",icon:F.createElement(Py,{color:"black",size:24}),tooltip:F.createElement(st,{size:"xsmall",variant:"body"},vt.t("Auto"))}],OA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return F.createElement(Py,{...e});case"dark":return F.createElement(_y,{...e});default:return F.createElement(Dy,{...e})}},"getThemeIcon");function $y(){let t=DA(),{theme:e}=k().config,{setTheme:o,theme:n}=k(),{activeLanguage:r,languages:a}=ko(),s=a.find(L=>L.local===r)?.label,c=k().fetchStatus,l=k().swappers(),p=k().getDisabledLiquiditySources(),{config:{features:u}}=k(),d=k().customTokens(),f=nt("theme",u),h=nt("liquiditySource",u),g=nt("language",u),m=nt("customTokens",u),C=k().infiniteApprove,y=k().toggleInfiniteApprove,S=pi(l,p),T=S.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),w=T.length,v=T.filter(L=>L.selected).length,N=S.filter(L=>L.type==="DEX"),B=N.length,b=N.filter(L=>L.selected).length,E=i((L,Y)=>{switch(c){case"loading":return F.createElement(BA,{variant:"text",size:"medium",width:50});case"failed":return F.createElement(st,{variant:"body",size:"medium",color:"$error500"},vt.t("Loading failed"));default:return F.createElement(st,{variant:"body",size:"medium"},`${L} / ${Y}`)}},"handleSwapperEndItem"),x={id:"widget-setting-bridge-item-btn",title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Bridges")),end:F.createElement(F.Fragment,null,E(v,w),F.createElement($r,{direction:"horizontal",size:8}),F.createElement(Ba,{color:"black"})),onClick:()=>t(O.bridges),start:F.createElement(wA,{color:"gray",size:16})},M={id:"widget-setting-exchange-item-btn",title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Exchanges")),end:F.createElement(F.Fragment,null,E(b,B),F.createElement($r,{direction:"horizontal",size:8}),F.createElement(Ba,{color:"black"})),start:F.createElement(vA,{color:"gray",size:16}),onClick:()=>t(O.exchanges)},I={id:"widget-setting-custom-tokens-item-btn",title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Custom Tokens")),end:F.createElement(F.Fragment,null,F.createElement(st,{variant:"body",size:"medium"},`${d.length}`),F.createElement($r,{direction:"horizontal",size:8}),F.createElement(Ba,{color:"black"})),start:F.createElement(PA,{color:"gray",size:16}),onClick:()=>t(O.customTokens)},_={id:"widget-setting-language-item-btn",title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Language")),start:F.createElement(EA,{color:"gray",size:16}),end:F.createElement(F.Fragment,null,F.createElement(st,{variant:"body",size:"medium"},s),F.createElement($r,{direction:"horizontal",size:8}),F.createElement(Ba,{color:"black"})),onClick:()=>t(O.languages)},U={id:"widget-setting-infinite-approval-item-btn",title:F.createElement(F.Fragment,null,F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Infinite approval")),F.createElement($r,{direction:"horizontal",size:4}),F.createElement(_A,{side:"top",sideOffset:4,container:W(),content:F.createElement(Na,null,F.createElement(st,{variant:"label",size:"medium",color:"neutral700"},F.createElement("b",null,vt.t("Warning")),":\xA0",vt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},F.createElement(xA,{color:"gray"}))),start:F.createElement(bA,{color:"gray",size:16}),end:F.createElement(MA,{checked:C}),onClick:y},q={id:"widget-setting-theme-item-btn",type:F.createElement(AA,null),title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Theme")),end:F.createElement($A,null,F.createElement(LA,{container:W(),items:FA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:OA(n)},j=h?[]:[x,M];return m||j.push(I),g||j.push(_),j.push(U),!e?.singleTheme&&!f&&j.push(q),F.createElement(IA,{type:F.createElement(NA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:j})}i($y,"SettingsLists");var GA=QA("div",{paddingLeft:"$8"});function Fy(){let{isInCampaignMode:t,updateCampaignMode:e}=k(),o=t(),[,n]=qA(),r=HA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Go.createElement(ie,{header:{title:ip.t("Settings")}},Go.createElement(se,null,o&&Go.createElement(UA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:ip.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:Go.createElement(GA,null,Go.createElement(zA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},ip.t("Reset")))}),Go.createElement(rp,null),Go.createElement($y,null)))}i(Fy,"SettingsPage");import{i18n as e0}from"@lingui/core";import{cancelSwap as t0}from"@rango-dev/queue-manager-rango-preset";import{useManager as o0}from"@rango-dev/queue-manager-react";import{Alert as n0}from"@rango-dev/ui";import Tp from"react";import{useParams as r0}from"react-router-dom";import{i18n as zt}from"@lingui/core";import{getCurrentNamespaceOfOrNull as UN,getCurrentStep as zN,getRelatedWalletOrNull as QN}from"@rango-dev/queue-manager-rango-preset";import{Button as WS,Divider as HN,QuoteCost as qN,StepDetails as GN,Typography as gp}from"@rango-dev/ui";import{useWallets as VN}from"@rango-dev/wallets-react";import MS from"bignumber.js";import{PendingSwapNetworkStatus as Mn}from"rango-types";import Se,{useEffect as hp,useRef as yp,useState as Oa}from"react";import{useNavigate as KN}from"react-router-dom";import{i18n as wo}from"@lingui/core";var VA=[wo.t("Sunday"),wo.t("Monday"),wo.t("Tuesday"),wo.t("Wednesday"),wo.t("Thursday"),wo.t("Friday"),wo.t("Saturday")];function Oy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?wo.t("Today"):`${VA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Oy,"timeSince");function Uy(t){return t.finishTime?Oy(parseInt(t.finishTime)):Oy(parseInt(t.creationTime))}i(Uy,"getSwapDate");import Or from"react";import{i18n as Wa}from"@lingui/core";import{Button as zy,Divider as ap,MessageBox as KA}from"@rango-dev/ui";import vo from"react";var Qy=i(({onCancel:t,onClose:e})=>vo.createElement(vo.Fragment,null,vo.createElement(ap,{size:20}),vo.createElement(KA,{type:"error",title:Wa.t("Cancel Swap"),description:Wa.t("Are you sure you want to cancel this swap?")}),vo.createElement(ap,{size:32}),vo.createElement(zy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Wa.t("Yes, Cancel it")),vo.createElement(ap,{size:12}),vo.createElement(zy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Wa.t("No, Continue"))),"CancelContent");import{i18n as Ma}from"@lingui/core";import{Button as Hy,Divider as sp,MessageBox as jA,Typography as XA}from"@rango-dev/ui";import ro from"react";var qy=i(({onDelete:t,onClose:e})=>ro.createElement(ro.Fragment,null,ro.createElement(sp,{size:20}),ro.createElement(jA,{type:"error",title:Ma.t("Delete Transaction"),description:Ma.t("Are you sure you want to delete this swap?")}),ro.createElement(sp,{size:32}),ro.createElement(Hy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Ma.t("Yes, Delete it")),ro.createElement(sp,{size:12}),ro.createElement(Hy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},ro.createElement(XA,{variant:"title",size:"medium",color:"primary"},Ma.t("No, Cancel")))),"DeleteContent");import{i18n as YA}from"@lingui/core";import{Button as ZA,Divider as JA,MessageBox as RA}from"@rango-dev/ui";import Vo from"react";var Gy=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Vo.createElement(Vo.Fragment,null,Vo.createElement(RA,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Vo.createElement(Vo.Fragment,null,Vo.createElement(JA,{size:"30"}),Vo.createElement(ZA,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},YA.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as hN,getCurrentStep as yN,getRelatedWalletOrNull as SN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as CN}from"@rango-dev/ui";import{useWallets as kN}from"@rango-dev/wallets-react";import Zy from"react";import{i18n as Bn}from"@lingui/core";import{Alert as Ky,Button as tN,Checkbox as oN,Divider as _a,Image as nN,MessageBox as rN,Spinner as iN,WarningIcon as aN}from"@rango-dev/ui";import{useWallets as sN}from"@rango-dev/wallets-react";import ge,{useState as lN}from"react";import{darkTheme as eN,styled as Fr}from"@rango-dev/ui";var dX=Fr("div",{display:"flex",justifyContent:"center"}),mX=Fr("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Vy=Fr("img",{width:"100%"}),La=Fr("div",{position:"relative"}),Pa=Fr("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${eN} &`]:{$$color:"$warning600"}});var jy=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=lN(null),{list:s}=bt(),c=oe.use.isActiveTab(),{state:l,connect:p}=sN(),u=s.find(v=>v.type===e.walletType),d=u?.needsNamespace?.data.find(v=>v.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,m=u.isHub?h?.connected:f.connected,C=i(()=>m?Bn.t("Done"):r?Bn.t("Try again"):Bn.t("Connect"),"getButtonTitle"),y=i(()=>g?ge.createElement(iN,{color:"info"}):r||m?null:ge.createElement(oN,{checked:!0,disabled:!0}),"getNamespaceSuffix"),S=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(v){a(v)}},"handleConnect"),T=i(async()=>{if(m){n();return}S()},"handleClickButton"),w=i(()=>{if(!m)return null;let v=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),N=v?.[v?.length-1];return N?ao(N):null},"getAddress");return ge.createElement(ge.Fragment,null,ge.createElement(rN,{type:"warning",title:Bn.t("Connect {wallet}",{wallet:u.title}),description:Bn.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:ge.createElement(La,null,ge.createElement(nN,{src:u.image,size:45}),ge.createElement(Pa,null,ge.createElement(aN,{color:"warning",size:10})))}),m&&!d&&ge.createElement(ge.Fragment,null,ge.createElement(_a,{size:10}),ge.createElement(Ky,{type:"success",variant:"alarm",title:Bn.t("Wallet connected successfully.")})),r&&!d&&ge.createElement(ge.Fragment,null,ge.createElement(_a,{size:10}),ge.createElement(Ky,{type:"error",title:r?.message,variant:"alarm"})),d&&ge.createElement(ge.Fragment,null,ge.createElement(_a,{size:30}),ge.createElement(Mo,{namespace:d,suffix:y(),error:r?.message,connected:m,address:w()})),ge.createElement(_a,{size:"40"}),ge.createElement(tN,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:T,disabled:!c},C()))},"ConnectWalletContent");import{i18n as Xy}from"@lingui/core";import{Button as cN,Divider as pN,Image as uN,MessageBox as dN,WarningIcon as mN}from"@rango-dev/ui";import{useWallets as fN}from"@rango-dev/wallets-react";import{detectInstallLink as gN}from"@rango-dev/wallets-shared";import io from"react";var Yy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=fN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(gN(n.installLink),"_blank"),"handleButtonClick");return io.createElement(io.Fragment,null,io.createElement(dN,{type:"warning",title:Xy.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:io.createElement(La,null,io.createElement(uN,{src:n.img,size:45}),io.createElement(Pa,null,io.createElement(mN,{color:"warning",size:10})))}),io.createElement(pN,{size:"40"}),io.createElement(cN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},Xy.t("Install")))},"InstallWalletContent");var Jy=i(t=>{let{swap:e,onClose:o}=t,{state:n}=kN(),r=yN(e),a=r?SN(e,r):null,s=a?.walletType,c=s?Un(n(s)):null,l=r?hN(e,r):null;return s?c===CN.NOT_INSTALLED?Zy.createElement(Yy,{walletType:s}):Zy.createElement(jy,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function lp(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return Or.createElement(R,{open:e,onClose:r,container:W()},o==="connectWallet"&&Or.createElement(Jy,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&Or.createElement(Gy,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&Or.createElement(qy,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&Or.createElement(Qy,{onClose:r,onCancel:()=>{r(),s()}}))}i(lp,"SwapDetailsModal");import{i18n as Ur}from"@lingui/core";import{Button as cp,Divider as zr,MessageBox as tS,TokenAmount as TN,Typography as oS}from"@rango-dev/ui";import ye from"react";import{Link as wN,useNavigate as vN}from"react-router-dom";var Ry="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",eS="/profile";function pp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:d,diagnosisUrl:f}=t,h=vN(),{showProfileBanner:g}=oe();return ye.createElement(R,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(ot.SWAP_BOX_ID)||document.body},n==="success"?ye.createElement(tS,{type:"success",title:Ur.t("Swap Successful")},ye.createElement(TN,{direction:"vertical",tooltipContainer:W(),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(zr,{size:12}),ye.createElement(oS,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):ye.createElement(tS,{type:"error",title:Ur.t("Transaction Failed"),description:d}),ye.createElement(zr,{size:30}),n==="success"&&ye.createElement(ye.Fragment,null,g&&ye.createElement(ye.Fragment,null,ye.createElement(wN,{to:eS},ye.createElement(Vy,{src:Ry,alt:"Profile Banner"})),ye.createElement(zr,{size:30})),ye.createElement(cp,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Ur.t("Done"))),ye.createElement(zr,{size:12}),f&&ye.createElement(ye.Fragment,null,ye.createElement(cp,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Ur.t("Diagnosis")),ye.createElement(zr,{size:12})),ye.createElement(cp,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},ye.createElement(oS,{variant:"title",size:"medium",color:"primary"},Ur.t("See Details"))))}i(pp,"SwapDetailsCompleteModal");import{i18n as Fa}from"@lingui/core";import{CopyIcon as _N,DoneIcon as DN,IconButton as $N,RangoExplorerIcon as FN,Tooltip as xS,Typography as ES,useCopyToClipboard as ON}from"@rango-dev/ui";import Bt from"react";import PN from"react";import{i18n as BN}from"@lingui/core";import{Alert as TS,IconButton as WN,LinkIcon as MN}from"@rango-dev/ui";import bo,{Fragment as LN}from"react";import{Alert as xN,ChevronDownIcon as EN,IconButton as IN}from"@rango-dev/ui";import Wn,{useState as AN}from"react";import{css as Qr,darkTheme as nS,styled as Ut,Typography as bN}from"@rango-dev/ui";var rS=Ut(se,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${nS} &`]:{color:"$secondary500"}}}}}),iS=Ut("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),aS=Ut("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),sS=Ut("div",{padding:"$0 $20 $20 $20"}),hY=Ut("div",{display:"flex",flexDirection:"column",gap:"$10"}),lS=Ut("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),yY=Ut("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Ko=Qr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${nS} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),cS=Qr({padding:"$5 0"}),Da=Qr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),pS=Qr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),uS=Qr({width:"100%",padding:"0 $20 $10"}),dS=Ut("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),mS=Ut("div",{display:"flex",flexDirection:"column",gap:"$5"}),$a=Ut(bN,{wordBreak:"break-word"});import{styled as up}from"@rango-dev/ui";var fS=up("div",{display:"flex",flexDirection:"column",gap:"$10"}),gS=up("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),hS=up("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function yS(t){let{message:e}=t,[o,n]=AN(!1);return Wn.createElement(xN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Wn.createElement(IN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Wn.createElement(gS,{rotated:o},Wn.createElement(EN,{size:12,color:"gray"}))),footer:Wn.createElement(hS,{open:o},Wn.createElement($a,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(yS,"FailedAlert");import{i18n as SS}from"@lingui/core";import{Alert as dp,Button as CS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as NN}from"rango-types";import Hr from"react";function kS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?Hr.createElement(dp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:Hr.createElement(CS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},SS.t("Change"))}):a===NN.WaitingForConnectingWallet?Hr.createElement(dp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Hr.createElement(CS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},SS.t("Connect"))}):Hr.createElement(dp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(kS,"WarningAlert");function mp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=or(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,d=u&&!c||p&&!s.explorerUrl?.length;return bo.createElement(fS,null,s.explorerUrl?.map((f,h,g)=>{let m=h+f.url,C=h===g.length-1,y=(C&&u||p)&&!d,S=C&&s.status==="failed";return bo.createElement(LN,{key:m},bo.createElement(TS,{id:"widget-swap-details-tx-alert",type:C&&(y&&"loading"||S&&"error")||"success",title:f.description?`${f.description} Tx`:BN.t("View transaction"),action:f.url&&bo.createElement(WN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},bo.createElement(MN,{size:12}))}))}),d&&bo.createElement(TS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&bo.createElement(kS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&bo.createElement(yS,{message:a}))}i(mp,"SwapDetailsAlerts");var wS=2e3;var vS=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:ht(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:D(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ht(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:D(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Dn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:ht(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:ht(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Dn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:PN.createElement(mp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function bS(t){if(or(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(bS,"getStepState");function IS(t){let{requestId:e}=t,[o,n]=ON(wS);return Bt.createElement(aS,{className:Ko()},Bt.createElement(ES,{variant:"label",size:"large",color:"neutral700"},Fa.t("Request ID")),Bt.createElement("div",{className:Da()},Bt.createElement(ES,{variant:"label",size:"small",color:"neutral700"},e),Bt.createElement(xS,{container:W(),content:o?Fa.t("Copied To Clipboard"):Fa.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Bt.createElement($N,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Bt.createElement(DN,{size:16,color:"secondary"}):Bt.createElement(_N,{size:16,color:"gray"}))),Bt.createElement(dS,{target:"_blank",href:`${Yp}/swap/${e}`},Bt.createElement(xS,{container:W(),content:Fa.t("View on Rango Explorer"),side:"bottom"},Bt.createElement(FN,{size:20})))))}i(IS,"RequestIdRow");import{i18n as AS}from"@lingui/core";import{Typography as NS}from"@rango-dev/ui";import fp from"react";function BS(t){let{date:e,isFinished:o}=t;return fp.createElement("div",{className:Ko()},fp.createElement(NS,{variant:"label",size:"large",color:"neutral700"},o?AS.t("Finished at"):AS.t("Created at")),fp.createElement(NS,{variant:"label",size:"small",color:"neutral700"},e))}i(BS,"SwapDateRow");var jN=3e3;function Sp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=VN(),l=k().blockchains(),p=k().swappers(),{findToken:u}=k(),d=z().use.retry(),f=KN(),h=yp(null),[g,m]=Oa(!1),[C,y]=Oa(null),[S,T]=Oa(null),[w,v]=Oa(null),N=yp(C),B=yp(S),b=Be.use.getNotifications(),E=Be.use.removeNotification(),x=b(),M=zN(e),I=M?.networkStatus,_=i(Pe=>{m(!0),y(Pe)},"handleChangeModalState"),U=i(()=>{m(!1)},"handleCloseModal"),q=i(()=>{T({type:"loading",title:zt.t("Change Network"),description:`We\u2019re switching the connected network to ${ee?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),j=i(()=>{T({type:"success",title:zt.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),L=i(Pe=>{T({type:"error",title:zt.t("Network Switch Failed"),description:Pe?.message||ae.detailedMessage.content})},"handleShowSwitchNetworkFailed"),Y=Kd(e),ee=M?UN(e,M):null,Z=M?QN(e,M):null,le=Uy(e),ue=jd(e),we=i(Pe=>!!c(Pe)?.mobileWallet,"checkIsMobileWallet"),ve=!!I&&[Mn.WaitingForNetworkChange,Mn.NetworkChangeFailed].includes(I),qe=!!Z?.walletType&&we(Z.walletType),Ae=!!Z&&!!ee&&a(Z.walletType,ee.network,ee),$=!!ee&&ve&&(qe||Ae),A=i(()=>{$&&(q(),s(Z.walletType,[{namespace:ee.namespace,network:ee.network}]).then(()=>{j()}).catch(Pe=>{L(Pe)}))},"handleSwitchNetwork"),G=i(()=>{_("switchNetwork"),A()},"handleSwitchNetworkClick"),ae=Vd(e,M,c),K=vS({swap:e,switchNetworkIsAvailable:$,handleSwitchNetworkClick:G,showNetworkModal:I,setNetworkModal:_,message:ae,blockchains:l,swappers:p}),X=K.length,[Ge,Ve]=[e.steps[0],e.steps[X-1]],be=Ve?.outputAmount||Ve?.expectedOutputAmountHumanReadable,Mt=e.steps.reduce((Pe,Lt)=>Pe+parseFloat(Lt.feeInUsd||""),0),Ya=e.steps.find(Pe=>Pe.diagnosisUrl)?.diagnosisUrl,Za=D(parseFloat(be||"0")*(Ve?.toUsdPrice||0),4,4),Wp=D(parseFloat(e.inputAmount)*(Ge?.fromUsdPrice||0),4,4),Mp=be?new MS(be).multipliedBy(Ve.toUsdPrice||0).toString():"",uC=new MS(e.inputAmount).multipliedBy(Ge?.fromUsdPrice||0).toString(),Ja=Kt(Wp,Za),Ra=ae.detailedMessage.content||ae.shortMessage,dC=e.status==="success"?zt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:D(be,6,6),token:K[X-1]?.to.token.displayName,conciseAddress:ao(e.wallets[K[X-1]?.to.chain.displayName||""]?.address||""),chain:K[X-1]?.to.chain.displayName}}):Se.createElement(mS,null,Se.createElement(gp,{variant:"body",size:"medium",color:"neutral700",align:"center"},Ra?"":zt.t("Transaction was not sent."),Y?`${zt.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:Y.outputAmount,symbol:Y.symbol,blockchain:Y.blockchain}})}`:""),Ra&&Se.createElement($a,{align:"center",variant:"body",size:"medium",color:"neutral700"},Se.createElement("b",null,"Reason:")," ",Ra));return hp(()=>{x.find(Lt=>Lt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),E(e.requestId),U()):w&&v(null))},[e.status,e.requestId]),hp(()=>{if($){if(_("switchNetwork"),I===Mn.WaitingForNetworkChange){q();return}if(I===Mn.NetworkChangeFailed){L();return}return}if(I===Mn.WaitingForConnectingWallet){_("connectWallet");return}if(I===Mn.NetworkChanged){_("switchNetwork"),j();return}C&&["connectWallet","switchNetwork"].includes(C)&&U()},[I]),hp(()=>{if(N.current=C,B.current=S,C==="switchNetwork"&&S?.type==="success"){let Pe=setTimeout(()=>{N.current==="switchNetwork"&&B.current?.type==="success"&&U()},jN);return()=>clearTimeout(Pe)}},[C,S]),Se.createElement(ie,{header:{title:zt.t("Swap Details"),onCancel:e.status==="running"?()=>_("cancel"):void 0,suffix:e.status!=="running"&&Se.createElement(uo,null,Se.createElement(WS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>_("delete")},Se.createElement(gp,{size:"medium",variant:"label",color:"error"},zt.t("Delete"))))},footer:ue&&!w&&Se.createElement(WS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Pe=xi(e,l,u);d(Pe),setTimeout(()=>{f("../../")},0)}},zt.t("Try again"))},Se.createElement(rS,{compact:!0,ref:h},Se.createElement(IS,{requestId:o}),Se.createElement(BS,{date:le,isFinished:!!e.finishTime}),Se.createElement("div",{className:pS()},Se.createElement(qN,{fee:D(String(Mt),2,2),time:Fn(ti(e.steps)),steps:X}),Se.createElement(fr,{from:{price:{value:D(e.inputAmount,6,6),usdValue:Wp,realUsdValue:uC,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:Za,realUsdValue:Mp,realValue:be||""},token:{displayName:K[X-1]?.to.token.displayName||"",image:K[X-1]?.to.token.image},chain:{image:K[X-1]?.to.chain.image,displayName:K[X-1]?.to.chain.displayName||""}},percentageChange:D(Ja,2,2),warningLevel:jt(Ja??0)})),Se.createElement("div",{className:uS()},Se.createElement(gp,{variant:"title",size:"small"},zt.t("Swaps steps"))),Se.createElement(HN,{size:8}),Se.createElement(sS,null,K.map((Pe,Lt)=>{let Lp=Lt,_n=e.steps[Lt]&&bS(e.steps[Lt]),mC=_n==="error"||_n==="in-progress"||_n==="warning"||_n==="completed"&&Lt===K.length-1;return Se.createElement(GN,{className:"widget-swap-details-step-item-container",key:Lp,step:Pe,type:"swap-progress",ref:h,state:_n,hasSeparator:Lt!==0,tabIndex:Lp,isFocused:mC,tooltipContainer:W()})}))),Se.createElement(lp,{isOpen:g,state:C,switchNetworkModalState:S,onClose:U,onCancel:r,onDelete:n,message:ae.detailedMessage.content,swap:e,handleSwitchNetwork:G}),Se.createElement(pp,{open:!!w,diagnosisUrl:Ya,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:D(be,6,6),usdValue:Za,realUsdValue:Mp,realValue:be||"",percentageChange:D(Ja,2,2),token:{displayName:K[X-1]?.to.token.displayName||"",image:K[X-1]?.to.token.image},chain:{image:K[X-1]?.to.chain.image},description:dC}))}i(Sp,"SwapDetails");import{i18n as za}from"@lingui/core";import{Divider as _S,NotFound as RN,Skeleton as Gr,Typography as Qa}from"@rango-dev/ui";import Ie from"react";import{i18n as XN}from"@lingui/core";import{Divider as YN,Skeleton as ZN,Typography as JN}from"@rango-dev/ui";import Ee from"react";import{css as Wt,styled as Cp}from"@rango-dev/ui";var LS=Cp("div",{width:"100%",height:"100%",padding:"$10 $20"}),qr=Cp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Ua=Cp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),q7=Wt({display:"flex",justifyContent:"space-between",alignItems:"center"}),G7=Wt({display:"flex",justifyContent:"space-between",alignItems:"center"}),V7=Wt({paddingTop:"$15",display:"flex"}),K7=Wt({padding:"$15 $0"}),j7=Wt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),X7=Wt({paddingBottom:"$10"}),Y7=Wt({display:"flex",justifyContent:"start",alignItems:"center"}),Z7=Wt({paddingTop:"$5",display:"flex",alignItems:"center"}),J7=Wt({display:"flex",alignItems:"center"}),R7=Wt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),PS=Wt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function kp(){return Ee.createElement(LS,null,Ee.createElement(hr,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(JN,{variant:"title",size:"small"},XN.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(qr,null,Ee.createElement(Ft,{separator:!1}),Ee.createElement("div",{className:PS()},Ee.createElement(YN,{direction:"horizontal",size:20}),Ee.createElement(ZN,{height:22,variant:"rectangular"}))),Ee.createElement(Ua,null),Ee.createElement(qr,null,Ee.createElement(Ft,{separator:!1})),Ee.createElement(Ua,null),Ee.createElement(qr,null,Ee.createElement(Ft,{separator:!1})),Ee.createElement(Ua,null),Ee.createElement(qr,null,Ee.createElement(Ft,{separator:!1}))))}i(kp,"LoadingSwapDetails");function DS(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(ie,{header:{title:za.t("Swap Details"),suffix:Ie.createElement(uo,null)}},o&&Ie.createElement(iS,null,Ie.createElement("div",{className:Ko()},Ie.createElement(Qa,{variant:"label",size:"large",color:"neutral700"},`${za.t("Request ID")}`),Ie.createElement("div",{className:Da()},Ie.createElement(Qa,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Gr,{width:60,height:10,variant:"rounded"})),Ie.createElement(_S,{direction:"horizontal",size:4}),Ie.createElement(Gr,{width:16,height:16,variant:"rectangular"}),Ie.createElement(_S,{direction:"horizontal",size:4}),Ie.createElement(Gr,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:Ko()},Ie.createElement(Qa,{className:cS(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(Gr,{width:60,height:10,variant:"rounded"})),Ie.createElement(Qa,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Gr,{width:60,height:10,variant:"rounded"}))),Ie.createElement(kp,null)),!o&&Ie.createElement(lS,null,Ie.createElement(RN,{title:za.t("Not found"),description:za.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(DS,"SwapDetailsPlaceholder");function $S(){let{manager:t,state:e}=o0(),o=!e.loadedFromPersistor,n=wt(t),{requestId:r}=r0(),a=Xe(),{fetchStatus:s}=k();if(!r)return Tp.createElement(n0,{containerStyles:{margin:"20px"},type:"error",title:e0.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&&t0(f)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),d=l?.swap;return!d||c?Tp.createElement(DS,{requestId:r,showSkeleton:c}):Tp.createElement(Sp,{swap:d,requestId:r,onCancel:p,onDelete:u})}i($S,"SwapDetailsPage");import{i18n as FS}from"@lingui/core";import{Divider as i0,getCategoriesCount as a0,SelectableCategoryList as s0,styled as US,Typography as l0,Wallet as c0,WalletState as p0}from"@rango-dev/ui";import{useWallets as u0}from"@rango-dev/wallets-react";import Qt,{useState as OS}from"react";var d0=US("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),m0=US(se,{textAlign:"center"});function zS(){let{fetchStatus:t}=k(),[e,o]=OS("ALL"),n=k().blockchains(),{config:r}=k(),{state:a}=u0(),{checkHasDeepLink:s,getWalletLink:c}=sn(),[l,p]=OS(),u=oe.use.isActiveTab(),{list:d}=bt(),f=xu(d,n),g=a0(f)!==1,m=Eu(d,e),C=i(y=>{au(d,r.multiWallets)||p(y)},"handleWalletItemClick");return Qt.createElement(ie,{header:{title:FS.t("Connect Wallets")}},Qt.createElement(m0,null,g&&Qt.createElement(Qt.Fragment,null,Qt.createElement(s0,{setCategory:o,category:e,blockchains:f,isLoading:t==="loading"}),Qt.createElement(i0,{size:24})),Qt.createElement(l0,{variant:"title",size:"xmedium",align:"center"},FS.t("Choose a wallet to connect.")),Qt.createElement(d0,null,m.map((y,S)=>{let w=a(y.type).namespaces,v=`wallet-${S}-${y.type}`,N=cs(y,w);return Qt.createElement(c0,{key:v,...y,state:N?p0.PARTIALLY_CONNECTED:y.state,hasDeepLink:s(y.type),link:c(y.type),container:W(),onClick:()=>C(y),isLoading:t==="loading",disabled:!u})}),Qt.createElement(Rn,{id:"widget-state-full-connect-modal",wallet:l,onClose:()=>{p(void 0)}}))))}i(zS,"WalletsPage");function QS(){return im(),Xs(),f0([{path:O.home,element:He.createElement(iy,null)},{path:O.routes,element:He.createElement(py,null)},{path:O.fromSwap,children:[{index:!0,element:He.createElement(Aa,{type:"source"})},{path:O.blockchains,element:He.createElement(ba,{type:"source"})}]},{path:O.toSwap,children:[{index:!0,element:He.createElement(Aa,{type:"destination"})},{path:O.blockchains,element:He.createElement(ba,{type:"destination"})}]},{path:O.settings,children:[{index:!0,element:He.createElement(Fy,null)},{path:O.languages,element:He.createElement(sy,null)},{path:O.exchanges,element:He.createElement(Vc,{sourceType:"Exchanges"})},{path:O.bridges,element:He.createElement(Vc,{sourceType:"Bridges"})},{path:O.customTokens,children:[{index:!0,element:He.createElement(ah,null)},{path:O.addCustomTokens,children:[{index:!0,element:He.createElement(Rm,null)},{path:O.blockchains,element:He.createElement(ba,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:O.swaps,children:[{index:!0,element:He.createElement(Eh,null)},{path:O.swapDetails,element:He.createElement($S,null)}]},{path:O.wallets,element:He.createElement(zS,null)},{path:O.confirmSwap,element:He.createElement(qg,null)}])}i(QS,"AppRoutes");import{useQueueManager as W0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as M0}from"rango-sdk";import{useContext as L0,useEffect as xp,useState as eC}from"react";import{Provider as C0}from"@rango-dev/wallets-react";import Ha,{createContext as k0,useEffect as KS,useMemo as T0,useRef as jS}from"react";import{useEffect as g0}from"react";function HS(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(HS,"hashProviders");function wp(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=k(),a=n();return g0(()=>{o(),r()},[HS(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(wp,"useWalletProviders");import{legacyFormatAddressWithNetwork as h0,legacyReadAccountAddress as qS}from"@rango-dev/wallets-core/legacy";import{Events as Ln}from"@rango-dev/wallets-react";import{isEvmBlockchain as y0}from"rango-sdk";function GS(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=k(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(y0).map(m=>m.name),u=i((m,C)=>{let[y,,S,T,w]=m,v={walletType:y,network:T.network??void 0,accounts:S};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let N=ls(y,S,p,C.supportedChainNames,w.isContractWallet);N.length&&e(N,w.namespace,T.derivationPath)},"onAccountsEvent"),d=i((m,C,y,S,T)=>{if(C===Ln.ACCOUNTS){let w=zn(T.supportedBlockchains);y&&u([m,C,y,S,T],{supportedChainNames:w})}C===Ln.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),C===Ln.NAMESPACE_DISCONNECTED&&n(m,y)},"handleUpdatesForHub"),f=i((m,C,y,S,T)=>{if(C===Ln.ACCOUNTS){let w=zn(T.supportedBlockchains),v=[],N=[];if(y?.forEach(b=>{let{network:E}=qS(b);p.includes(E)?v.push(b):N.push(b)}),r.filter(b=>b.walletType===m).map(b=>h0(b.address,b.chain)).length>0){if(v.length>0){let b=ls(m,v,p,w,T.isContractWallet);a(m,{chains:b.map(E=>E.chain)})}N.length>0&&a(m,{chains:N.map(b=>{let{network:E}=qS(b);return E})})}y?u([m,C,y,S,T],{supportedChainNames:w}):(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((m,C,y,S,T)=>{if(C===Ln.CONNECTED&&y){let w={walletType:m,network:S.network??void 0,accounts:S.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(C===Ln.NETWORK&&y){let w={walletType:m,network:y,accounts:S.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((m,C,y,S,T)=>{T.isHub?d(m,C,y,S,T):f(m,C,y,S,T),h(m,C,y,S,T)},"handler")}}i(GS,"useUpdates");import{LegacyEvents as S0}from"@rango-dev/wallets-core/legacy";function VS(t,e){let[o,n,r,a,s]=e;n!==S0.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(VS,"propagateEvents");var qa=k0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function w0(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}=wp(s.wallets,c),p=jS(),u=jS(),{handler:d}=GS({onConnectWalletHandler:p,onDisconnectWalletHandler:u});KS(()=>{n().catch(console.log)},[]),KS(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=oe.use.isActiveTab(),h=T0(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Ha.createElement(qa.Provider,{value:h},Ha.createElement(C0,{allBlockChains:a,providers:l,onUpdateState:(g,m,C,y,S)=>{let T=[g,m,C,y,S];d(...T),t.onUpdateState&&VS(t.onUpdateState,T)},autoConnect:!!f,configs:{wallets:s.wallets}},t.children))}i(w0,"Main");function Ga(t){let{config:e,...o}=t;return Ha.createElement(Gu,{config:e},Ha.createElement(w0,{...o,config:e}))}i(Ga,"WidgetWallets");import{globalCss as v0}from"@rango-dev/ui";var XS=i(()=>v0({"@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");import{useWallets as b0}from"@rango-dev/wallets-react";import{useEffect as x0,useRef as E0}from"react";function YS(){let{connect:t,state:e}=b0(),o=E0({}),{fetchStatus:n}=k(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);x0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(YS,"useForceAutoConnect");import{isApprovalTX as I0,RouteEventType as ZS,StepEventType as JS,StepExecutionEventStatus as A0,WidgetEvents as Va}from"@rango-dev/queue-manager-rango-preset";import{useEffect as RS}from"react";function vp(){let t=Be.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=k();RS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===JS.TX_EXECUTION&&s.status===A0.TX_SENT&&!I0(c)||s.type===JS.SUCCEEDED){let u=[],d=l.wallets[c?.fromBlockchain];if(d){let f=e.find(h=>h.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&h.walletType===d.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(m=>f.some(C=>C.blockchain===m.blockchain&&C.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&C.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return Ce.on(Va.StepEvent,r),()=>Ce.off(Va.StepEvent,r)},[Ce,e]),RS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===ZS.FAILED||s.type===ZS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return Ce.on(Va.RouteEvent,r),()=>Ce.off(Va.RouteEvent,r)},[Ce])}i(vp,"useSubscribeToWidgetEvents");import{useManager as N0}from"@rango-dev/queue-manager-react";import{useEffect as B0}from"react";function bp(){let{isSynced:t,syncNotifications:e}=Be(),{manager:o,state:n}=N0();B0(()=>{Be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(wt(o))},[Be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(bp,"useSyncNotifications");function Ep(){YS(),XS(),vp(),bp();let t=k().blockchains(),{canSwitchNetworkTo:e}=Ki(),[o,n]=eC(null),[r,a]=eC(),s=L0(qa),c=t.filter(M0);xp(()=>()=>nm(),[]),xp(()=>()=>rm(),[]),W0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),xp(()=>(Wo.init(),Be.persist.hasHydrated()||Be.persist.rehydrate(),s.onConnectWallet(l=>{n(p=>{if(!p||p.walletType!==l.walletType)return l;let u={...p};return l.network&&(u.network=l.network),l.accounts&&(u.accounts=l.accounts),u})}),s.onDisconnectWallet(l=>{a(l),n(p=>l===p?.walletType?null:p)}),Wo.destroy),[])}i(Ep,"useBootstrap");import{styled as P0}from"@rango-dev/ui";var tC=P0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function jo(){Ep();let{config:t}=k(),{activeTheme:e}=po(t?.theme||{}),{activeLanguage:o}=ko();return Ip.createElement(_0,{language:o},Ip.createElement(tC,{id:"swap-container",className:e()},Ip.createElement(QS,null)))}i(jo,"Main");import{setSolanaSignerConfig as tB}from"@rango-dev/signer-solana";import Np,{useEffect as Bp,useMemo as oB}from"react";function oC(){let{setWatermark:t,setShowProfileBanner:e}=oe();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(oC,"useFetchApiConfig");import{useState as D0}from"react";var $0=i(()=>{let[t,e]=D0(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=iu(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),nC=$0;import{checkWaitingForNetworkChange as F0,makeQueueDefinition as O0}from"@rango-dev/queue-manager-rango-preset";import{Provider as U0}from"@rango-dev/queue-manager-react";import{useWallets as z0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Q0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as H0}from"rango-types";import q0,{useMemo as G0}from"react";function V0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=z0(),c=G0(()=>O0({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(),d={blockchains:p.map(w=>({accounts:[w],name:w.chain}))},f=i(async(w,v)=>a(w,v.network,v)?await r(w,[v]):void 0,"switchNetwork"),h=i(w=>!!s(w).mobileWallet,"isMobileWallet"),g=u.filter(w=>w.enabled).reduce((w,v)=>(w[v.name]=v,w),{}),m=u.filter(H0),C=i(w=>{let{supportedChains:v}=s(w);return zn(v)},"getSupportedChainNames"),y=e(),S={meta:{blockchains:g,evmBasedChains:m,evmNetworkChainInfo:Q0(m),getSupportedChainNames:C},getSigners:o,wallets:d,providers:y,switchNetwork:f,canSwitchNetworkTo:a,state:n,isMobileWallet:h},T=oe.use.isActiveTab();return q0.createElement(U0,{queuesDefs:[c],context:S,onPersistedDataLoaded:w=>{F0(w)},isPaused:!T},t.children)}i(V0,"QueueManager");var rC=V0;import{useManager as Z0}from"@rango-dev/queue-manager-react";import J0,{createContext as R0,useContext as eB}from"react";function iC(){let{findToken:t}=k(),e=k().blockchains(),o=k().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=z()();return i(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:f,toToken:h,requestAmount:g}=p,m={blockchains:e,tokens:o};if(u!==void 0){let C=e.find(y=>y.name===u)??null;n(C)}if(d!==void 0){let C=d?t(d)??null:null;r({meta:m,token:C})}if(f!==void 0){let C=e.find(y=>y.name===f)??null;a(C)}if(h!==void 0){let C=h?t(h)??null:null;s({meta:m,token:C})}g!==void 0&&c(g)},"updateQuoteInputs")}i(iC,"useUpdateQuoteInputs");import{cancelSwap as K0,getCurrentNamespaceOfOrNull as j0,getCurrentStep as X0,getRelatedWalletOrNull as Y0}from"@rango-dev/queue-manager-rango-preset";var Ka=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return wt(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=xi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&K0(o)}getCurrentStepInfo(e){let o=X0(e);return{step:o,wallet:o?Y0(e,o):null,network:o?j0(e,o)?.network:null}}};var aC=R0(void 0);function Ap(t){let{manager:e}=Z0(),o=oe.use.isActiveTab(),n=z().use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=k(),l=new Ka(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=k(),u=Cu(a()),d=k().blockchains(),f=k().tokens(),h=k().swappers(),g=k().fetchStatus,m=ko().resetLanguage,C=Be().getNotifications(),y=Be().clearNotifications,S=iC(),{fromBlockchain:T,toBlockchain:w,fromToken:v,toToken:N,inputAmount:B}=z()(),b={isActiveTab:o,setCurrentTabAsActive:Wo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async E=>c(E)},meta:{blockchains:d,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:m,notifications:{list:C,clearAll:y},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:v?{symbol:v.symbol,blockchain:v.blockchain,address:v.address}:null,toBlockchain:w?.name??null,toToken:N?{symbol:N.symbol,blockchain:N.blockchain,address:N.address}:null,requestAmount:B},updateQuoteInputs:S}};return J0.createElement(aC.Provider,{value:b},t.children)}i(Ap,"WidgetInfo");function sC(){let t=eB(aC);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(sC,"useWidget");function Pn(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=oC(),{handleLoadCustomFont:a}=nC();return Bp(()=>{r().catch(console.log)},[]),Bp(()=>{n&&a(n)},[n]),oB(()=>{Iu({API_KEY:o?.apiKey||Yr,BASE_URL:o?.apiUrl||Xp})},[o.apiKey,o.apiUrl]),Bp(()=>{t.config?.signers?.customSolanaRPC&&tB("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Np.createElement(Ga,{config:o,onUpdateState:e},Np.createElement(rC,{apiKey:o.apiKey},Np.createElement(Ap,null,t.children)))}i(Pn,"WidgetProvider");function lC(t){let e=t.config?.externalWallets;return ja.createElement(vi,null,e?ja.createElement(jo,null):ja.createElement(Pn,{config:t.config??Jo},ja.createElement(jo,null)))}i(lC,"Refuel");import Xa from"react";function cC(t){let e=t.config?.externalWallets;return Xa.createElement(vi,null,e?Xa.createElement(jo,null):Xa.createElement(Pn,{config:t.config??Jo},Xa.createElement(jo,null)))}i(cC,"Widget");function pC(){let{on:t,off:e}=Ce;return{on:t,off:e}}i(pC,"useWidgetEvents");var jee={DerivationPath:Yn,Namespaces:jn,Detached:Xn,isOnDerivationPath:Jn,isOnNamespace:Zn,isOnDetached:xo};export{See as EventSeverity,on as MainEvents,Aee as Networks,Wee as PendingSwapNetworkStatus,fs as QuoteEventTypes,lC as Refuel,Cee as RouteEventType,ns as SUPPORTED_FONTS,jee as StatefulConnect,kee as StepEventType,Tee as StepExecutionBlockedEventStatus,wee as StepExecutionEventStatus,Cd as SwapModeContext,ot as UI_ID,hs as UiEventTypes,gs as WalletEventTypes,Eee as WalletEvents,Nee as WalletTypes,cC as Widget,on as WidgetEvents,Pn as WidgetProvider,Ga as WidgetWallets,pl as customizedThemeTokens,bee as readAccountAddress,Xo as useStatefulConnect,bt as useWalletList,Ki as useWallets,sC as useWidget,pC as useWidgetEvents,hk as widgetEventEmitter};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|