@rango-dev/widget-embedded 0.45.1-next.7 → 0.45.1-next.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/StatefulConnectModal/StatefulConnectModal.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/Detached.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/Detached.styles.d.ts +161 -0
- package/dist/components/WalletStatefulConnect/Detached.styles.d.ts.map +1 -0
- package/dist/components/WalletStatefulConnect/Detached.types.d.ts +1 -0
- package/dist/components/WalletStatefulConnect/Detached.types.d.ts.map +1 -1
- package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts +1 -2
- package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +4 -4
- package/dist/widget-embedded.build.json +1 -1
- package/package.json +2 -2
- package/src/components/StatefulConnectModal/StatefulConnectModal.tsx +4 -0
- package/src/components/WalletStatefulConnect/Detached.styles.ts +6 -0
- package/src/components/WalletStatefulConnect/Detached.tsx +19 -3
- package/src/components/WalletStatefulConnect/Detached.types.ts +1 -0
- package/src/components/WalletStatefulConnect/NamespaceDetachedItem.tsx +1 -1
- package/src/components/WalletStatefulConnect/Namespaces.styles.ts +1 -1
- package/src/hooks/useStatefulConnect/useStatefulConnect.ts +23 -7
- package/src/hooks/useWalletList.ts +1 -1
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var QS=Object.defineProperty;var i=(t,e)=>QS(t,"name",{value:e,configurable:!0});import{EventSeverity as oR,RouteEventType as nR,StepEventType as rR,StepExecutionBlockedEventStatus as iR,StepExecutionEventStatus as aR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as lR}from"@rango-dev/wallets-core/legacy";import{useWallets as zi,Events as pR}from"@rango-dev/wallets-react";import{Networks as mR,WalletTypes as dR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as gR}from"rango-types";import{Divider as ok}from"@rango-dev/ui";import no,{useEffect as nk,useRef as rk,useState as tm}from"react";import{WalletState as HS}from"@rango-dev/ui";import{useWallets as GS}from"@rango-dev/wallets-react";import{useReducer as VS}from"react";function Sp(t){return!!t.derivationPath}i(Sp,"isStateOnDerivationPathStep");function Cp(t){return!!t.namespace}i(Cp,"isStateOnNamespace");var $r={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Tp(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 $r;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:$r;default:throw new Error("Action hasn't been defined.")}}i(Tp,"reducer");function qo(){let{state:t,disconnect:e,connect:o}=GS(),[n,r]=VS(Tp,$r),a=i(async(p,d,h)=>{r({type:"reset"});try{let g=d?.map(f=>({...f,network:void 0}));return await o(p,g),{status:"connected"}}catch(g){let f=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(f,{cause:g})}},"runConnect"),s=i(async(p,d)=>{if(p.state===HS.DISCONNECTED){let g=!!p.isHub,f=g?p.properties?.find(y=>y.name==="namespaces")?.value:p.needsNamespace,m=g?p.properties?.find(y=>y.name==="derivationPath")?.value:p.needsDerivationPath;if(!f?.data?.length)return await a(p.type,void 0,d);if(f?.data.length&&f.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:p,defaultSelectedChains:d?.defaultSelectedChains}}),{status:"namespace"};if(f?.data.length===1){if(m){let y=f.data[0];return r({type:"needsDerivationPath",payload:{providerType:p.type,providerImage:p.image,namespace:y.value}}),{status:"derivation-path"}}return await a(p.type,f?.data?.map(y=>({namespace:y.value})),d)}}if(p.isHub){let g=p.properties?.find(f=>f.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:p,selectedNamespaces:null}}),{status:"Detached"}}return d?.disconnectIfConnected?(await u(p.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(p,d)=>{let h=!!p.isHub,g=h?p.properties?.find(S=>S.name==="namespaces")?.value:p.needsNamespace,f=h?p.properties?.find(S=>S.name==="derivationPath")?.value:p.needsDerivationPath,m=g?.selection==="single",y=d[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(m&&f)return r({type:"needsDerivationPath",payload:{providerType:p.type,providerImage:p.image,namespace:y}}),{status:"derivation-path"};if(!Cp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=d.map(S=>({namespace:S}));return r({type:"detached",payload:{targetWallet:p,selectedNamespaces:C?.map(S=>S.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async p=>{if(!p)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Sp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let d=n.derivationPath.providerType,g=[{namespace:n.derivationPath.namespace,derivationPath:p}];return await a(d,g)},"handleDerivationPath"),u=i(async p=>{let d=t(p);return d.connected||d.connecting?(await e(p),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:()=>n,resetState:p=>{r(p==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(qo,"useStatefulConnect");import{WalletState as us}from"@rango-dev/ui";import{useWallets as oT}from"@rango-dev/wallets-react";import{detectMobileScreens as nT,KEPLR_COMPATIBLE_WALLETS as rT,WalletTypes as _n}from"@rango-dev/wallets-shared";import{useCallback as iT,useEffect as aT}from"react";import ZC,{createContext as JC,useContext as RC,useEffect as eT,useRef as tT}from"react";import{create as XC}from"zustand";import{persist as YC}from"zustand/middleware";import{allProviders as KS}from"@rango-dev/provider-all";var qa=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()}},Qo=new qa;import{defineVersions as vp,pickVersion as wp,Provider as Qa}from"@rango-dev/wallets-core";function bp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=xp(a);return s instanceof Qa?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 Qa?o.push(vp().version("1.0.0",n).build()):o.push(vp().version("0.0.0",n).build())}),o}return t}i(bp,"matchAndGenerateProviders");function xp(t){try{return wp(t,"1.0.0")[1]}catch{return wp(t,"0.0.0")[1]}}i(xp,"pickProviderVersionWithFallbackToLegacy");function Ep(t){return t.map(o=>xp(o)).map(o=>o instanceof Qa?o.id:o.config.type)}i(Ep,"configWalletsToWalletName");function Fr(t,e){return e.find(o=>o.name===t)?.displayName}i(Fr,"getBlockchainDisplayNameFor");function ft(t,e){return e.find(o=>o.name===t)?.shortName}i(ft,"getBlockchainShortNameFor");function Ip(t,e){return e.find(o=>o.name===t)?.logo}i(Ip,"getBlockchainImage");function En(t,e){return e.find(o=>o.id===t)?.title}i(En,"getSwapperDisplayName");function Co(t,e){return e.find(o=>o.name===t)??null}i(Co,"findBlockchain");function Ha(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(Ha,"isTokenNative");function gt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(gt,"createTokenHash");function Ho(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Ho,"isValidTokenAddress");function In(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=gt(l));let u=o.tokensMapByTokenHash.get(l);u&&(n[l]=u)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{c.has(l)||a(o.tokensMapByBlockchainName[l])})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(u=>{let p=gt(u);delete n[p]})):a(l.tokens))}),Object.values(n)}i(In,"matchTokensFromConfigWithMeta");function Or(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(Or,"getSupportedBlockchainsFromConfig");function Np(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Np,"makeProvidersOptionsFromConfig");var Ur={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"}},jS={clientUrl:void 0},XS={liquiditySources:void 0};function Ap(t){let e=Np(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 KS(o).map(a=>a())}i(Ap,"generateProviders");var Bp=i((t,e,o)=>{let n=Ap({...Ur,...t});return{config:{...Ur,...t},iframe:jS,campaignMode:XS,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=In({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),u=In({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});Qo.set("supportedSourceTokens",l),Qo.set("supportedDestinationTokens",u),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=Ap(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Np(a);return bp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Wp}from"rango-types";var Lp=[Wp.EVM,Wp.SOLANA],zr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as pC}from"rango-sdk";import{UI_ID as YS}from"@rango-dev/ui";var qr="c6381a79-2817-4602-83bf-6a641a409e32",Pp="https://api.rango.exchange",Mp="https://explorer.rango.exchange",Re={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...YS};import{BlockchainCategories as nC,WalletState as at}from"@rango-dev/ui";import{legacyReadAccountAddress as rC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as iC,getCosmosExperimentalChainInfo as aC,isEvmAddress as sC,KEPLR_COMPATIBLE_WALLETS as LB,Networks as tu}from"@rango-dev/wallets-shared";import Vo from"bignumber.js";import{isCosmosBlockchain as lC}from"rango-types";import ZS from"bignumber.js";var ce=new ZS(0);import{WalletTypes as JS}from"@rango-dev/wallets-shared";var To="~",_p=[JS.LEAP];import{BlockchainCategories as Va,WalletState as oC}from"@rango-dev/ui";import{TransactionType as Qr}from"rango-sdk";var Dp="Roboto",Ga=[{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 Go(t){return Array.from(new Set(t))}i(Go,"removeDuplicateFrom");function Hr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Hr,"debounce");function it(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(it,"containsText");function Op(t,e){return t.toLowerCase()===e.toLowerCase()}i(Op,"exactText");function Up(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Up,"startWithText");var N=i(()=>document.getElementById(Re.SWAP_BOX_ID),"getContainer"),ko=i(()=>document.getElementById(Re.EXPANDED_BOX_ID),"getExpanded");function zp(t,e,o){let n=!!e&&Op(e,t),r=!!o&&Op(o,t);return n!==r?n?-1:1:0}i(zp,"compareExactMatchText");function Ka(t,e,o){let n=!!e&&it(e,t),r=!!o&&it(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ka,"compareContainsText");function ja(t,e,o){let n=!!e&&Up(e,t),r=!!o&&Up(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ja,"compareStartWithText");function qp(t,e,o){if(!o)return 0;let n=zp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=zp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ja(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ka(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ja(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ka(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ja(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ka(o,t.address,e.address);if(r!==0)return r}return 0}i(qp,"compareWithSearchFor");var Gr=i((t,e)=>{switch(e){case Va.ALL:return!0;case Va.UTXO:return t===Qr.TRANSFER;case Va.OTHER:return t!==Qr.TRANSFER&&t!==Qr.COSMOS&&t!==Qr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Qp=i(t=>Ga.find(o=>o.value===t)?.url,"getFontUrlByName");function Hp(t,e){let o=!!t.find(n=>n.state===oC.CONNECTED);return e===!1&&o}i(Hp,"isSingleWalletActive");function Gp(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(Gp,"memoizedResult");import{BigNumber as Rp}from"bignumber.js";function Vp(t){return t.replace(/^0+(?=\d)/g,"")}i(Vp,"removeLeadingZeros");function Kp(t){return t.replace(/^\.(\d+)/,"0.$1")}i(Kp,"ensureLeadingZeroForDecimal");function jp(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(jp,"formatThousandsWithCommas");function Xp(t){return t.replace(/\s+/g,"-")}i(Xp,"replaceSpacesWithDash");function Yp(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(Yp,"stripTrailingZeros");function Vr(t){return/^0+(?:\.0+)?$/.test(t)}i(Vr,"isZeroValue");function Zp(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(Zp,"isValidCurrencyFormat");function Jp(t){return/\d+$/.test(t)}i(Jp,"isColorKeyOverridden");var An=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 Rp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Rp(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 Kr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Bt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Nn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function eu(t){return Vr(t)?"0":Yp(t)}i(eu,"sanitizeInputAmount");function Bn(t){return t.connected?at.CONNECTED:t.connecting?at.CONNECTING:t.installed?at.DISCONNECTED:at.NOT_INSTALLED}i(Bn,"mapStatusToWalletState");function ou(t,e,o,n){return o.filter(r=>!_p.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(p=>p.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:u,supportedChains:p,needsDerivationPath:d,properties:h,isHub:g}=e(r),f=Go(p.map(y=>y.type)),m=Bn(t(r));return{title:a,image:s,link:iC(c),state:m,type:r,showOnMobile:l,needsNamespace:u,blockchainTypes:f,needsDerivationPath:d,properties:h,isHub:g}})}i(ou,"mapWalletTypesToWalletInfo");function Wn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Wn,"walletAndSupportedChainsNames");function Ya(t,e,o,n,r){let a=[];function s(l,u,p){if(!!!a.find(h=>h.chain===l)){let h={address:u,chain:l,walletType:t,isContractWallet:p??!1};a.push(h)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:u,network:p}=rC(l),d=c.length>0,h=c.includes(p),g=p===tu.Unknown;if(d&&!h&&!g)return;let m=p===tu.Unknown&&sC(u);if(g&&!m)return;o.includes(p)||m?r?s(p,u.toLowerCase(),r):c.filter(S=>o.includes(S)).forEach(S=>{s(S,u.toLowerCase())}):s(p,u)}),a}i(Ya,"prepareAccountsForWalletStore");function vo(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((u,p)=>{let d=u.from.blockchain,h=u.to.blockchain,g=a===o.swaps.length-1,f=p===l.length-1;(!g&&!f||g&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(h)})}e==="all"&&n.add(c)}),Array.from(n)}i(vo,"getQuoteChains");function Ln(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Ln,"isAccountAndWalletMatched");var nu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?Xa(n.usdValue,n.decimals):ce.toFixed();return o.plus(r)},new Vo(ce));return cC(e.toString())},"calculateWalletUsdValue");function cC(t){let e=t.toString().split(".");return e[0]=jp(e[0]),e.join(".")}i(cC,"numberWithThousandSeparator");var Yr=i((t,e)=>{let o=aC(Object.entries(t).map(([,n])=>n).filter(lC));return o&&o[e]?.experimental},"isExperimentalChain");function Xa(t,e){return new Vo(t).shiftedBy(-e).toFixed()}i(Xa,"representAmountInNumber");function Zr(t){if(!t)return null;let e=Xa(t.amount,t.decimals),o=t.usdValue?Xa(t.usdValue,t.decimals):null,n=_(e,8,8),r=o?_(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(Zr,"formatBalance");function ru(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Vo(t.usdValue).shiftedBy(-t.decimals):ce,n=e&&e.usdValue?new Vo(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 Vo(t.amount).shiftedBy(-t.decimals):ce,n=e&&e.amount?new Vo(e.amount).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(ru,"compareTokenBalance");function Ot(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Ot,"areTokensEqual");function iu(t,e){return t.map(o=>({isPartiallyConnected:Za(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===at.CONNECTED&&!n.isPartiallyConnected)-+(o.state===at.CONNECTED&&!o.isPartiallyConnected)||+(n.state===at.CONNECTED)-+(o.state===at.CONNECTED)||+(n.state===at.DISCONNECTED||n.state===at.CONNECTING)-+(o.state===at.DISCONNECTED||o.state===at.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(iu,"sortWalletsBasedOnConnectionState");function oo(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(oo,"getConciseAddress");function au({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(au,"getAddress");var su=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function lu(t){return t.map(e=>e.state).join("-")}i(lu,"hashWalletsState");function cu(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(cu,"filterBlockchainsByWalletTypes");function pu(t,e){return e===nC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Gr(n,e))return!0;return!1})}i(pu,"filterWalletsByCategory");function Za(t,e){return!t.isHub||!t.needsNamespace||t.state!==at.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(Za,"checkIsWalletPartiallyConnected");var Ja={API_KEY:qr};function Ut(t){return Ja[t]||""}i(Ut,"getConfig");function uu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ja=e,Ja}i(uu,"initConfig");var mu=20,du=25,Ra="theme-widget",es=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Ot(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Ot(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),ts=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),fu=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Jr,st=i(()=>Jr||(Jr=new pC(Ut("API_KEY"),Ut("BASE_URL")),Jr),"httpService");import{i18n as hu}from"@lingui/core";var Rr=[.5,1,3],ei=1,Ko=5,Pn=30,ti=0;import{WidgetEvents as gu}from"@rango-dev/queue-manager-rango-preset";var os=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(os||{}),ns=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(ns||{}),rs=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(rs||{}),jo=(a=>(a[a.RouteEvent=gu.RouteEvent]="RouteEvent",a[a.StepEvent=gu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(jo||{});function oi(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Go(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(oi,"getUniqueSwappersGroups");function yu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(yu,"sortLiquiditySourcesByGroupTitle");function et(t,e){return e?.[t]==="hidden"}i(et,"isFeatureHidden");function Xo(t,e){return e?.[t]==="enabled"}i(Xo,"isRoutingEnabled");var Su=i((t,e,o)=>et("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function Yo(t){return t==ti?{type:"error",message:hu.t("Slippage must be greater than or equal to 0.01")}:t>Ko&&t<=Pn?{type:"warning",message:hu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(Yo,"getSlippageValidation");var Cu=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=Or({config:a}),u=r;return l.length>0&&(u=u.filter(p=>l.includes(p.name))),u.filter(p=>Lp.includes(p.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 u=o.type==="source"?"from":"to",p=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",d=Qo.get(p);d?.length||(d=In({type:o.type,config:{blockchains:a[u]?.blockchains,tokens:a[u]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Qo.set(p,d)),d=Su(d,s,a.features);let h=e().blockchains({type:o.type});return d.filter(f=>o.blockchain&&f.blockchain!==o.blockchain||!h.some(m=>m.name===f.blockchain)?!1:o.searchFor?!!(it(f.symbol,o.searchFor)||it(f.address||"",o.searchFor)||it(f.name||"",o.searchFor)):!0).sort((f,m)=>{let y=e().isTokenPinned(f,o.type),C=e().isTokenPinned(m,o.type);if(y!==C)return y?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(f),A=o.getBalanceFor(m),E=ru(I,A);if(E!==0)return E}let S=l.get(f.blockchain),k=l.get(m.blockchain),v=Ha(f,S),x=Ha(m,k);if(v!==x)return v?-1:1;if(f.isPopular!==m.isPopular)return f.isPopular?-1:1;if(o.searchFor){let I=qp(f,m,o.searchFor);if(I)return I}return f.isSecondaryCoin!==m.isSecondaryCoin?f.isSecondaryCoin?1:-1:S&&k?S.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=gt(o),s=n.get(a);return s||(s=r.find(c=>gt(c)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Ot(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let p=a?.includes(u.swapperGroup);return s||!a||a.length===0?!p:p}).sort(yu)},fetch:async()=>{try{let{routing:o}=e().config,n=Xo("enableCentralizedSwappers",o),r=await st().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],u=r.popularTokens,p=r.swappers.filter(g=>g.enabled),d=new Set;r.tokens.forEach(g=>{d.add(g.blockchain),l.push(g)}),r.blockchains.sort((g,f)=>g.sort-f.sort).forEach(g=>{g.enabled&&d.has(g.name)&&a.set(g.name,g)}),l.forEach(g=>{let f=gt(g);c[g.blockchain]||(c[g.blockchain]=[]),s.set(f,g),c[g.blockchain].push(f)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:u,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as uC,Catalonia as mC,Chinese as Tu,Denmark as dC,English as fC,Finland as gC,French as hC,German as yC,Greece as SC,Hungary as CC,India as TC,Indonesian as kC,Italian as vC,Japanese as wC,Korea as bC,Lithuania as xC,Malay as EC,Netherlands as IC,Pakistan as AC,Philippines as NC,Poland as BC,Portuguese as WC,Russian as LC,SaudiArabia as PC,Serbia as MC,Slovakia as _C,SouthAfrica as DC,Spanish as $C,Swahili as FC,Swedish as OC,Thai as UC,Turkish as zC,Ukrainian as qC,Vietnamese as QC}from"@rango-dev/ui";var ku=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:DC},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:PC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:uC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:mC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Tu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Tu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:dC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:IC},{title:"English",label:"English",local:"en",SVGFlag:fC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:NC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:gC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:hC},{title:"German",label:"Deutsch",local:"de",SVGFlag:yC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:SC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:TC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:CC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:kC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:vC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:wC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:bC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:xC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:EC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:BC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:WC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:LC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:MC},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:_C},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:$C},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:FC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:OC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:UC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:zC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:qC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:AC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:QC}],Zo="en";var vu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:ei,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,u=c<=9;return l&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=Go(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=et("theme",n),s=et("language",n),c=et("liquiditySource",n),l=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Zo},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||Zo}})},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=Or({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import ps from"bignumber.js";import HC from"mitt";var ve=HC(),GC={on:ve.on,off:ve.off};var wu=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 bu from"bignumber.js";function zt(t){return`${t.blockchain}${To}${t.address}${To}${t.symbol}`}i(zt,"createAssetKey");function xu(t,e){return`${zt(e)}${To}${t}`}i(xu,"createBalanceKey");function Mn(t){let[e,o,n]=t.split(To);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Mn,"extractAssetFromBalanceKey");function as(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[zt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new bu(r??ce).multipliedBy(o[s].amount).toString():""})})}),o}i(as,"computeNextBalancesWithNewPrices");function ss(t,e){let o={};return t.balances?.forEach(n=>{let r=xu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new bu(c??ce).multipliedBy(a).toString():"",u={amount:a,decimals:s,usdValue:l};o[r]=u}),o}i(ss,"createBalanceStateForNewAccount");function ls(t,e){for(let o in e){let n=Mn(o),r=zt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(ls,"updateAggregatedBalanceStateForNewAccount");function VC(t,e){let o=Mn(e),n=zt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(VC,"removeBalanceFromAggregatedBalance");function cs(t,e,o){let n=t.connectedWallets.filter(l=>l.walletType===e);t.connectedWallets.forEach(l=>{l.walletType!==e&&(n=n.filter(u=>!(u.chain===l.chain&&u.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 u=Mn(l);!!n.find(d=>xu(d.address,{address:u.address,blockchain:d.chain,symbol:u.symbol})===l)?a=VC(a,l):r[l]=s[l]}),{_balances:r,_aggregatedBalances:a}}i(cs,"computeNextStateAfterWalletBalanceRemoval");function KC(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(KC,"matchWalletDetailsWithConnectedWallet");var jC=Gp(),Eu=wu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Ln(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Ln(s,a))?{...a,loading:!1,error:!1,explorerUrl:KC(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Ln(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Ln(c,l)));if(s.length>0){let c=s.map(l=>{let u=!a.some(p=>p.chain===l.chain&&p.selected&&p.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:u,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(p=>!c.some(d=>d.walletType===p.walletType&&d.chain===p.chain)),...c]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,u)=>((l[u.blockchain]||=[]).push(u),l),{}),s=new Set,c=r.reduce((l,u)=>{let p=`${u.address}-${u.chain}`;return s.has(p)||(s.add(p),a[u.chain]&&(l[u.address]||(l[u.address]=[]),l[u.address].push(...a[u.chain]))),l},{});Object.entries(c).forEach(async([l,u])=>{try{let{balances:p}=await st().getMultipleTokenBalance({assets:u.map(({symbol:d,address:h,blockchain:g})=>({symbol:d,address:h,blockchain:g})),walletAddress:l});if(p){let d=e()._balances,h=e()._aggregatedBalances;p.forEach(g=>{if(parseFloat(g.amount.amount)===0)return;let f={blockChain:g.asset.blockchain,balances:[g],address:l},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};as(m,f,d);let y=ss(f,e);h=ls(h,y),d={...d,...y}}),t(g=>({_balances:{...g._balances,...d},_aggregatedBalances:h}))}}catch(p){console.error(p)}})},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)=>{ve.emit("walletEvent",{type:"connect",payload:{walletType:o[0].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}=cs(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(ve.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0)return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await st().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,u=e()._aggregatedBalances;c.forEach(d=>{if(d.failed)return;let h={_balances:l,_aggregatedBalances:u,connectedWallets:e().connectedWallets,findToken:e().findToken};as(h,d,l);let{_balances:g,_aggregatedBalances:f}=cs(h,r,{chains:[d.blockChain]});if(u=f,l=g,!e().connectedWallets.find(y=>y.walletType===r&&y.address===d.address&&y.chain===d.blockChain))return;let m=ss(d,e);u=ls(u,m),l={...l,...m}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:u})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:p=!0}=n||{};if(p){let d=c.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.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=zt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let l=a[0];return n[l]}let c=n[a[0]];return a.forEach(l=>{let u=n[l],p=new ps(u.amount),d=new ps(c.amount);p.isGreaterThan(d)&&(c=u)}),c},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,u]=c.split(To);return u===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>jC(()=>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],u=Mn(c);if(u.blockchain===n.chain){let p=e().findToken(u),d=l.amount?new ps(l.amount).shiftedBy(-l.decimals):ce;s.push({chain:n.chain,symbol:u.symbol,ticker:u.symbol,address:u.address,rawAmount:l.amount,decimal:l.decimals,amount:d.toString(),isSupported:!!p,logo:p?.image||null,usdPrice:p?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Iu(t){return XC()(YC((...e)=>({...Eu(...e),...Cu(...e),...vu(...e),...Bp(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(Iu,"createAppStore");var Au=JC(null);function T(){let t=RC(Au);if(eT(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(T,"useAppStore");function Nu(t){let e=tT();return e.current||(e.current=Iu(t.config)),ZC.createElement(Au.Provider,{value:e.current},t.children)}i(Nu,"AppStoreProvider");function kt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=T(),{state:r,getWalletInfo:a}=oT(),s=T().blockchains(),{handleDisconnect:c}=qo(),l=Ep(n()),u=ou(r,a,l,e);u=nT()?u.filter(m=>m.showOnMobile!==!1&&r(m.type).installed):u;let p=iu(u,r),d=i(m=>!o.find(y=>y.walletType===m&&y.chain===e),"isExperimentalChainNotAdded"),h=iT(()=>{let m=u?.filter(y=>y.state===us.CONNECTING)||[];for(let y of m)c(y.type)},[lu(u)]);aT(()=>()=>{h()},[]);let g=i(m=>{let y=m.find(S=>S.type===_n.DEFAULT);return!y||y.state===us.NOT_INSTALLED?!1:m.filter(S=>S.state!=us.NOT_INSTALLED&&![_n.DEFAULT,_n.WALLET_CONNECT_2,_n.LEDGER].includes(S.type)&&a(S.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),f=i((m,y,C)=>Yr(C,y)&&d(m)&&!rT.includes(m)||m==_n.DEFAULT&&!g(u),"shouldExcludeWallet");return{list:p.filter(m=>!f(m.type,e??"",s)),terminateConnectingWallets:h}}i(kt,"useWalletList");import{Modal as pT}from"@rango-dev/ui";import uT from"react";import{create as cT}from"zustand";var Bu="rango-widget";var Dn=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(Bu),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 lT=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"),Jo=lT;var oe=Jo(cT()((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})}}))),bo=new Dn({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 uT.createElement(pT,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as tn}from"@lingui/core";import{Alert as xT,Button as ET,Divider as pi,Image as IT,MessageBox as AT,RadioRoot as NT}from"@rango-dev/ui";import pe,{useEffect as BT,useMemo as WT,useState as LT}from"react";import{i18n as gT}from"@lingui/core";import{Typography as Fu}from"@rango-dev/ui";import Ro from"react";function ni(t,e){return t.find(o=>o.name===e)?.logo}i(ni,"getBlockchainLogo");import{darkTheme as mT,Image as dT,styled as qt,Typography as fT}from"@rango-dev/ui";var ri=qt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${mT} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),ii=qt("div",{display:"flex",gap:"$8",alignItems:"center"}),Lu=qt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Pu=qt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Mu=qt("div",{display:"flex",gap:"$6",alignItems:"center"}),_u=qt("div",{paddingLeft:"48px"}),Du=qt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),$u=qt(fT,{maxWidth:"100px"}),ai=qt(dT,{variants:{disabled:{true:{opacity:"0.5"}}}});function si(t){let{namespace:e}=t,o=T().blockchains();return Ro.createElement(ri,{unsupported:!0},Ro.createElement(ii,null,Ro.createElement(ai,{src:ni(o,e.id),size:40,disabled:!0}),Ro.createElement(Pu,null,Ro.createElement(Fu,{variant:"label",size:"large"},e.label),Ro.createElement(Fu,{variant:"body",size:"xsmall"},gT.t("(Currently not supported)")))))}i(si,"NamespaceUnsupportedItem");import{Checkbox as vT,Radio as wT}from"@rango-dev/ui";import gs from"react";import{i18n as fs}from"@lingui/core";import{ChevronDownIcon as yT,ChevronUpIcon as ST,Divider as CT,Typography as $n}from"@rango-dev/ui";import Ne,{useEffect as TT,useState as kT}from"react";import{Image as Uu,Tooltip as zu,Typography as hT}from"@rango-dev/ui";import Wt from"react";import{styled as Ou}from"@rango-dev/ui";var ms=Ou("div",{display:"flex",alignItems:"center",padding:0,margin:0}),li=Ou("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 ds=3;function qu(t){let{chains:e}=t;return Wt.createElement(ms,{id:"widget-supported-chains-container"},e.slice(0,ds).map((o,n)=>Wt.createElement(zu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Wt.createElement(li,{firstItem:n===0},Wt.createElement(Uu,{src:o.logo,size:15})))),e.length>ds&&Wt.createElement(zu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Wt.createElement(ms,null,e.map((o,n)=>Wt.createElement(li,{key:o.name,firstItem:n===0},Wt.createElement(Uu,{src:o.logo,size:15}))))},Wt.createElement(li,null,Wt.createElement(hT,{variant:"body",size:"xsmall"},"+",e.length-ds))))}i(qu,"SupportedChainsList");function xo(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=kT(!1),u=T().blockchains();TT(()=>l(!1),[o]);let p=e.getSupportedChains(u),d=!o&&!r&&p.length>1;return Ne.createElement(ri,{hasError:!!o,clickable:!!s,onClick:s},Ne.createElement(ii,null,Ne.createElement(ai,{src:ni(u,e.id),size:40}),Ne.createElement(Lu,{showSupportedChains:d||r||!!o},Ne.createElement(Mu,null,Ne.createElement($n,{variant:"label",size:"large"},e.label),r&&Ne.createElement($n,{variant:"body",size:"small",color:"success500"},fs.t("Connected")),!!o&&Ne.createElement($n,{variant:"body",size:"small",color:"error500"},fs.t("Connection failed"))),d&&Ne.createElement(qu,{chains:p}),r&&Ne.createElement($u,{variant:"body",size:"small",color:"neutral700"},a),o&&Ne.createElement(Du,{onClick:()=>l(h=>!h)},Ne.createElement($n,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},fs.t("See why")),c?Ne.createElement(ST,{size:12,color:"gray"}):Ne.createElement(yT,{size:12,color:"gray"}))),n),!!o&&c&&Ne.createElement(Ne.Fragment,null,Ne.createElement(CT,{size:4}),Ne.createElement(_u,null,Ne.createElement($n,{variant:"body",size:"small",color:"neutral700"},o))))}i(xo,"NamespaceItem");function Qu(t){let{onClick:e,type:o,namespace:n}=t;return gs.createElement(xo,{namespace:n,onClick:e,suffix:o==="radio"?gs.createElement(wT,{value:n.value}):gs.createElement(vT,{checked:t.value})})}i(Qu,"NamespaceListItem");import{Button as bT,styled as Hu}from"@rango-dev/ui";var ci=Hu("ul",{padding:0,paddingTop:"$10",paddingBottom:"$20",margin:0}),en=Hu(bT,{minHeight:"$40"});function Fn(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=T().blockchains(),[l,u]=LT([]),p=WT(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{u(r?[m]:y=>y.includes(m)?y.filter(C=>C!==m):y.concat(m))},"onSelect"),h=p?.length===l.length,g=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");h?u([]):p&&u(p.map(m=>m.value))},"onSelectAll"),f=i(m=>r?pe.createElement(NT,{value:l?.[0]},m):pe.createElement(pe.Fragment,null,m),"wrapRadioRoot");return BT(()=>{if(!r&&p)if(t.value.defaultSelectedChains?.length){let m=p.filter(y=>y.getSupportedChains(c).some(C=>t.value.defaultSelectedChains?.includes(C.name)));u(m.map(y=>y.value))}else u(p.map(m=>m.value))},[]),pe.createElement(pe.Fragment,null,pe.createElement(AT,{type:"info",title:tn.t("Connect {wallet}",{wallet:e.title}),description:tn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:pe.createElement(IT,{src:s,size:45})}),r?pe.createElement(pe.Fragment,null,pe.createElement(pi,{size:20}),pe.createElement(xT,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:tn.t("This wallet can only connect to one chain at a time. ")})):pe.createElement(pe.Fragment,null,pe.createElement(pi,{size:30}),pe.createElement(ET,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:g},h?tn.t("Deselect all"):tn.t("Select all"))),pe.createElement(ci,null,f(pe.createElement(pe.Fragment,null,a?.data.map((m,y,C)=>pe.createElement(pe.Fragment,{key:m.id},m.unsupported?pe.createElement(si,{namespace:m}):pe.createElement(Qu,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),y!==C.length-1&&pe.createElement(pi,{size:10})))))),pe.createElement(pi,{size:20}),pe.createElement(en,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},tn.t("Connect")))}i(Fn,"Namespaces");import{i18n as Ss}from"@lingui/core";import{Divider as Cs,Image as OT,MessageBox as UT}from"@rango-dev/ui";import lt from"react";import{i18n as hs}from"@lingui/core";import{Button as PT,Spinner as MT}from"@rango-dev/ui";import{useWallets as _T}from"@rango-dev/wallets-react";import ys,{useLayoutEffect as DT,useRef as $T,useState as FT}from"react";var Gu=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,{connect:a,disconnect:s,state:c}=_T(),[l,u]=FT(null),d=c(o).namespaces?.get(n.value),h=d.accounts?.[0]?.split(":"),g=$T(!1);DT(()=>{r&&!g.current&&f(o,n.value)},[]);let f=i(async(C,S)=>{try{g.current=!0,await a(C,[{namespace:S,network:""}])}catch(k){u(k)}finally{g.current=!1}},"handleConnectNamespace"),m=i(async C=>{u(null),C.connected?await s(o,[n.value]):f(o,n.value)},"handleButtonClick"),y=i(()=>d.connected?hs.t("Disconnect"):l?hs.t("Try again"):hs.t("Connect"),"getButtonText");return ys.createElement(xo,{namespace:n,connected:d.connected,error:l?.message,address:d.connected?oo(h?.[h?.length-1]):"",suffix:d.connecting?ys.createElement(MT,{color:"info"}):ys.createElement(PT,{id:"widget-name-space-connect-btn",variant:"ghost",type:d.connected?"error":"primary",size:"small",onClick:async()=>m(d)},y())})},"NamespaceDetachedItem");function On(t){let{selectedNamespaces:e,value:o}=t,{targetWallet:n}=o;return lt.createElement(lt.Fragment,null,lt.createElement(UT,{type:"info",title:Ss.t("Connect {wallet}",{wallet:n.type}),description:Ss.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:lt.createElement(OT,{src:n.image,size:45})}),lt.createElement(Cs,{size:20}),lt.createElement(ci,{id:"widget-detached-namespace-list",as:"ul"},n.needsNamespace?.data.map((r,a,s)=>lt.createElement(lt.Fragment,{key:r.id},r.unsupported?lt.createElement(si,{namespace:r}):lt.createElement(Gu,{walletType:n.type,namespace:r,initialConnect:e?.includes(r.value)}),a!==s.length-1&<.createElement(Cs,{size:10})))),lt.createElement(Cs,{size:20}),lt.createElement(en,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},Ss.t("Done")))}i(On,"Detached");import{i18n as on}from"@lingui/core";import{Divider as Ku,Image as HT,MessageBox as GT,Select as VT,TextField as KT}from"@rango-dev/ui";import ht,{useEffect as jT,useState as ju}from"react";import{namespaces as zT}from"@rango-dev/wallets-shared";var ui={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ts(t){let e=t?zT[t].derivationPaths:null;return e?[...e,ui]:[]}i(Ts,"getDerivationPaths");import{Button as qT,styled as ks,Typography as QT}from"@rango-dev/ui";var Vu=ks("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),vs=ks(QT,{paddingLeft:"$10"}),ws={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},tM=ks(qT,{minHeight:"$40"});var Xu="0";function Un(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=ju(null),[c,l]=ju(Xu),u=a===ui.id,p=Ts(o),d=i(({value:g})=>{let f=p?.find(m=>m.id===g);f&&(a===ui.id&&Number.isNaN(Number(c))&&l(Xu),s(f.id))},"handleDerivationPathItemClick"),h=i(()=>{let g=p.find(f=>f.id===a);if(g)e(g.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return jT(()=>{s(Ts(o)[0]?.id||null)},[o]),ht.createElement(ht.Fragment,null,ht.createElement(Ku,{size:20}),ht.createElement(GT,{type:"info",title:on.t("Select Derivation Path"),description:on.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:ht.createElement(HT,{src:n,size:45})}),ht.createElement(Vu,null,ht.createElement(vs,{variant:"body",size:"xsmall",color:"$neutral600"},on.t("Choose Derivation Path Template")),ht.createElement(VT,{id:"widget-derivation-path-template-select",value:a||"",options:p.map(g=>({value:g.id,label:g.label})),variant:"filled",handleItemClick:d,styles:{trigger:ws}}),ht.createElement(Ku,{size:20}),ht.createElement(vs,{variant:"body",size:"xsmall",color:"$neutral600"},u?on.t("Enter Path"):on.t("Enter Index")),ht.createElement(KT,{id:"widget-derivation-path-template-input",type:u?"text":"number",variant:"contained",value:c,onChange:g=>l(g.target.value),style:ws})),ht.createElement(en,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!p||!a||!c},on.t("Confirm")))}i(Un,"DerivationPath");import{i18n as nn}from"@lingui/core";import{Image as ZT,MessageBox as bs,WalletState as JT}from"@rango-dev/ui";import{useWallets as RT}from"@rango-dev/wallets-react";import Eo from"react";import{keyframes as XT,styled as mi}from"@rango-dev/ui";var mM=mi("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Yu=mi("div",{position:"relative"}),YT=XT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Zu=mi("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${YT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Ju=mi("div",{"& img":{borderRadius:"50%"}});function xs(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=RT();return Bn(a(n))===JT.CONNECTED?Eo.createElement(bs,{type:"success",title:nn.t("Wallet Connected"),description:nn.t("Your wallet is connected, you can use it to swap.")}):o?Eo.createElement(bs,{type:"error",title:nn.t("Failed to Connect"),description:o||nn.t("Your wallet is not connected. Please try again.")}):Eo.createElement(bs,{type:"loading",title:nn.t("Connecting to your wallet"),description:nn.t("Click connect in your wallet popup."),icon:Eo.createElement(Yu,null,Eo.createElement(Ju,null,Eo.createElement(ZT,{src:r,size:45})),Eo.createElement(Zu,null))})}i(xs,"ConnectStatus");import{i18n as Es}from"@lingui/core";import{Button as ek,Divider as Ru,MessageBox as tk}from"@rango-dev/ui";import di from"react";function Is(t){let{displayName:e,onConfirm:o,id:n}=t;return di.createElement(tk,{id:n,title:Es.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Es.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},di.createElement(Ru,{size:18}),di.createElement(Ru,{size:32}),di.createElement(ek,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Es.t("Confirm")))}i(Is,"ExperimentalChain");function em(t,e){return t().status==="init"&&!!e}i(em,"isOnStatus");function zn(t){return t().status==="namespace"}i(zn,"isOnNamespace");function qn(t){return t().status==="derivationPath"}i(qn,"isOnDerivationPath");function Qn(t){return t().status==="detached"}i(Qn,"isOnDetached");var ik=3e3,ak=300;function Hn(t){let e=rk(),[o,n]=tm(!1),[r,a]=tm(),s=i(k=>{a(k.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=kt(),{handleConnect:l,handleDerivationPath:u,handleNamespace:p,getState:d,resetState:h}=qo(),g=i(k=>{p(t.wallet,k).then(S).catch(s)},"handleConfirmNamespaces"),f=i(()=>{y()},"handleDetachedConfirm"),m=i(k=>{if(!k)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");u(k).then(S).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),S=i((k,v)=>{let x=k.status==="connected",I=["disconnected","disconnected-unhandled"].includes(k.status);x?(t.onConnect?.(),v||(e.current=setTimeout(y,ik))):I&&y()},"afterConnected");return nk(()=>{if(t.wallet){C();let k=!1,v=!0;i(()=>{setTimeout(()=>{v=!1,k||n(!0)},ak)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(I=>{["namespace","Detached","derivation-path"].includes(I.status)||(k=!0),S(I,v)}).catch(s)}},[t.wallet]),no.createElement(R,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},em(d,t.wallet)&&no.createElement(no.Fragment,null,no.createElement(xs,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),no.createElement(ok,{direction:"vertical",size:32})),zn(d)&&no.createElement(Fn,{onConfirm:g,value:d().namespace}),qn(d)&&no.createElement(Un,{onConfirm:m,value:d().derivationPath}),Qn(d)&&no.createElement(On,{onConfirm:f,value:d().namespace,selectedNamespaces:d().selectedNamespaces}))}i(Hn,"StatefulConnectModal");import{Provider as uk}from"@rango-dev/wallets-react";import fi,{createContext as mk,useEffect as am,useMemo as dk,useRef as sm}from"react";import{useEffect as sk}from"react";function om(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(om,"hashProviders");function As(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=T(),a=n();return sk(()=>{o(),r()},[om(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(As,"useWalletProviders");import{legacyFormatAddressWithNetwork as lk,legacyReadAccountAddress as nm}from"@rango-dev/wallets-core/legacy";import{Events as rn}from"@rango-dev/wallets-react";import{isEvmBlockchain as ck}from"rango-sdk";function rm(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=T(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,u=s().filter(ck).map(m=>m.name),p=i((m,y)=>{let[C,,S,k,v]=m,x={walletType:C,network:k.network??void 0,accounts:S};c.current?c.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let I=Ya(C,S,u,y.supportedChainNames,v.isContractWallet);I.length&&e(I,v.namespace,k.derivationPath)},"onAccountsEvent"),d=i((m,y,C,S,k)=>{if(y===rn.ACCOUNTS){let v=Wn(k.supportedBlockchains);C&&p([m,y,C,S,k],{supportedChainNames:v})}y===rn.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),y===rn.NAMESPACE_DISCONNECTED&&n(m,C)},"handleUpdatesForHub"),h=i((m,y,C,S,k)=>{if(y===rn.ACCOUNTS){let v=Wn(k.supportedBlockchains),x=[],I=[];if(C?.forEach(E=>{let{network:b}=nm(E);u.includes(b)?x.push(E):I.push(E)}),r.filter(E=>E.walletType===m).map(E=>lk(E.address,E.chain)).length>0){if(x.length>0){let E=Ya(m,x,u,v,k.isContractWallet);a(m,{chains:E.map(b=>b.chain)})}I.length>0&&a(m,{chains:I.map(E=>{let{network:b}=nm(E);return b})})}C?p([m,y,C,S,k],{supportedChainNames:v}):(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),g=i((m,y,C,S,k)=>{if(y===rn.CONNECTED&&C){let v={walletType:m,network:S.network??void 0,accounts:S.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(y===rn.NETWORK&&C){let v={walletType:m,network:C,accounts:S.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((m,y,C,S,k)=>{k.isHub?d(m,y,C,S,k):h(m,y,C,S,k),g(m,y,C,S,k)},"handler")}}i(rm,"useUpdates");import{LegacyEvents as pk}from"@rango-dev/wallets-core/legacy";function im(t,e){let[o,n,r,a,s]=e;n!==pk.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(im,"propagateEvents");var gi=mk({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function fk(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=T(),a=T().blockchains(),s=T().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=As(s.wallets,c),u=sm(),p=sm(),{handler:d}=rm({onConnectWalletHandler:u,onDisconnectWalletHandler:p});am(()=>{n().catch(console.log)},[]),am(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let h=oe.use.isActiveTab(),g=dk(()=>({onConnectWallet:f=>{u.current=f},onDisconnectWallet:f=>{p.current=f}}),[]);return fi.createElement(gi.Provider,{value:g},fi.createElement(uk,{allBlockChains:a,providers:l,onUpdateState:(f,m,y,C,S)=>{let k=[f,m,y,C,S];d(...k),t.onUpdateState&&im(t.onUpdateState,k)},autoConnect:!!h,configs:{wallets:s.wallets}},t.children))}i(fk,"Main");function hi(t){let{config:e,...o}=t;return fi.createElement(Nu,{config:e},fi.createElement(fk,{...o,config:e}))}i(hi,"WidgetWallets");import za from"react";import gk,{Fragment as hk}from"react";import{MemoryRouter as yk,useInRouterContext as Sk}from"react-router";function lm({children:t}){let o=Sk()?hk:yk;return gk.createElement(o,null,t)}i(lm,"AppRouter");import{I18nManager as R0}from"@rango-dev/ui";import gp from"react";import ze from"react";import{useRoutes as U0}from"react-router-dom";var F={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as sn,useRef as bi}from"react";import tt from"bignumber.js";import{create as vk}from"zustand";import{subscribeWithSelector as wk}from"zustand/middleware";import{i18n as vt}from"@lingui/core";import{getRelatedWalletOrNull as kk,RouteEventType as oD}from"@rango-dev/queue-manager-rango-preset";import Ge from"bignumber.js";import{PendingSwapNetworkStatus as vi}from"rango-types";import{i18n as He}from"@lingui/core";var ne=i(()=>({genericServerError:He.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:He.t("Please reset your liquidity sources."),description:He.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:He.t("No Routes Found."),description:He.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:He.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:He.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:He.t("High Price Impact"),title:He.t("Price impact is too high!"),description:He.t("The price impact is significantly higher than the allowed amount."),confirmMessage:He.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:He.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:He.t("USD Price Unknown"),title:He.t("USD Price Unknown, Cannot calculate Price Impact."),description:He.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:He.t("Confirm USD Price Unknown")}}),"errorMessages");function cm(t){return t.type===0?t.diagnosisMessage??ne().noResultError.title:t.type===1?t.diagnosisMessage??ne().genericServerError:""}i(cm,"getQuoteErrorMessage");import{i18n as yi}from"@lingui/core";var Io=i(()=>({connectWallet:yi.t("Connect Wallet"),swap:yi.t("Swap"),swapAnyway:yi.t("Swap anyway"),ethWarning:yi.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ns(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(Ns,"getFeeLabel");var Bs=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],pm=100,um=30,mm=15,dm=60;var fm=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],gm=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as Tk}from"@rango-dev/queue-manager-rango-preset";import q_ from"bignumber.js";function ym(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(ym,"getRequiredBalanceOfWallet");function Ht(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Ht,"getPriceImpactLevel");function Si(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Tk(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=Co(a?a.toBlockchain:n.fromBlockchain,e),l=Co(r.toBlockchain,e),u=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),p=o(s),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:u,toBlockchain:l,toToken:p,inputAmount:d}}i(Si,"createRetryQuote");function an(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=Gn(o),s=yt(o);if(o&&a&&s){let u=Qt(a.toString(),s.toString());if(!!u&&vm(a,u)){let d=Ti(o?.swaps,n),h=Ht(u);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:u,totalFee:d,warningLevel:h}}}if(e&&xm(e,o))return{type:4,usdValueChange:_(yt(o)?.minus(yt(e)??0).toString()??"0",null,2),percentageChange:_(Qt(yt(e)??"1",yt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=ki(o.swaps),l=r>Ko;if(bm(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:wm(o,r),minRequiredSlippage:c};return null}i(an,"generateQuoteWarnings");function Sm(t){return![4].includes(t.type)}i(Sm,"isQuoteWarningConfirmationRequired");function Qt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ws(t.toString(),e.toString());return n&&n<0?n:null}i(Qt,"getPriceImpact");var Cm=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"),Ci=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(p=>p.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"),Tm=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(c=>c.swapperId));return Array.from(n).every(c=>s.has(c))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),km=i(t=>{let e=i((o,n)=>{let r=Bs.indexOf(o.value),a=Bs.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function vm(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return fm.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ge(r)))}i(vm,"hasHighValueLoss");function Em(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(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(Em,"hasLimitError");function Im(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new Ge(c.fromAmountMinValue):null,u=c.fromAmountMaxValue?new Ge(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||u?.lte(c.fromAmount):l?.gt(c.fromAmount)||u?.lt(c.fromAmount)})[0],o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=vt.t({id:"Required: >= {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=vt.t({id:"Required: > {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=vt.t({id:"Required: <= {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=vt.t({id:"Required: < {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Im,"getLimitErrorMessage");function Am(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Io().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Io().swap,action:"confirm-swap",disabled:!0}:s?{title:Io().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Io().ethWarning,action:"confirm-warning",disabled:!1}:{title:Io().swap,action:"confirm-swap",disabled:!1}:{title:Io().connectWallet,action:"connect-wallet",disabled:!1}}i(Am,"getSwapButtonState");function Ls(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ce))&&e&&e!=="0"&&n!==0)}i(Ls,"canComputePriceImpact");function Ps(t,e){let o=ce;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ge(r.amount).multipliedBy(a||0))}return o}i(Ps,"getUsdFeeOfStep");function Ti(t,e){return t.reduce((o,n)=>o.plus(Ps(n,e)),ce)}i(Ti,"getTotalFeeInUsd");function Ms(t){let e=ce,o=new Ge(t.price||0);return e=e.plus(new Ge(t.amount).multipliedBy(o)),e}i(Ms,"getUsdFee");function Nm(t){return t.reduce((e,o)=>e.plus(Ms(o)),ce)}i(Nm,"getTotalFeesInUsd");function Bm(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(Bm,"getFeesGroup");function Wm(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(Wm,"checkSlippageErrors");function wm(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(wm,"checkSlippageWarnings");function ki(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(ki,"getMinRequiredSlippage");function bm(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(bm,"hasProperSlippage");function Lm(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:u,affiliateRef:p,affiliatePercent:d,affiliateWallets:h,destination:g,contractCall:f}=t,m=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),y=[];return r?.forEach(S=>{y.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:p??void 0,affiliatePercent:d??void 0,affiliateWallets:h??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:y,selectedWallets:m??{},slippage:u.toString(),contractCall:f,...g&&{destination:g},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(Lm,"createQuoteRequestBody");function Pm(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Pm,"getWalletsForNewSwap");function Gn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}i(Gn,"getUsdInputFrom");function yt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}i(yt,"getUsdOutputFrom");function Ws(t,e){return new Ge(e).div(new Ge(t)).minus(1).multipliedBy(pm).toNumber()}i(Ws,"getPercentageChange");function xm(t,e){let o=Gn(t),n=yt(t),r=yt(e);if(!o||!n||!r)return!1;let a=Ws(n.toString(),r.toString());return gm.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(xm,"isOutputAmountChangedExcessively");function Mm(t,e,o){let n=t.validationStatus,r=vo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>ym(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=_(new Ge(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=_(new Ge(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),p="";return s.reason==="FEE"&&(p=vt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(p=vt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(p=vt.t(" for input and network fee")),vt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:c,reason:p,currentAmount:l,blockchain:ft(s.asset.blockchain,o)}})})}i(Mm,"generateBalanceWarnings");function Vn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==vi.NetworkChanged}i(Vn,"isNetworkStatusInWarningState");function _m(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,"")),Vn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let u=(e?kk(t,e):null)?.walletType,p=u?o?.(u)?.name:null;switch(e?.networkStatus){case vi.WaitingForConnectingWallet:r=p?vt.t("Connect {wallet}",{wallet:p}):r;break;case vi.WaitingForQueue:r=r||vt.t("Waiting for other running tasks to be finished");break;case vi.WaitingForNetworkChange:r=r||vt.t("Waiting for changing wallet network");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(_m,"getSwapMessages");function Dm(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(Dm,"getLastConvertedTokenInFailedSwap");function $m(t){return t.status==="failed"}i($m,"shouldRetrySwap");function Fm(t,e,o,n,r,a){if(!n||t)return!0;let s=vo({filter:"all",quote:n}),c=vo({filter:"required",quote:n}),l=s.every(d=>r.some(h=>h.chain===d)),u=c.every(d=>r.some(h=>h.chain===d)),p=o&&a?Ho(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!p||!u)}i(Fm,"isConfirmSwapDisabled");function Om(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Om,"isTokensIdentical");var wi=i((t,e)=>t?.usdPrice?new tt(e||ce).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Jo(vk()(wk(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new tt(0),outputUsdValue:new tt(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 Nn(o.inputAmount)?(e&&(n=e?.outputAmount?new tt(e?.outputAmount):null,a=Gn(e)??ce,r=yt(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 tt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new tt(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new tt(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:wi(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 tt(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=eu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;Vr(e)||(o=Vp(o),o=Kp(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new tt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:wi(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:wi(n??null,s),outputUsdValue:new tt(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?wi(e.toToken,e.outputAmount?.toString()||""):new tt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new tt(0),inputUsdValue:new tt(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new tt(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})})))),Um=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ve.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&&ve.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function zm(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:u}=O(),p=T().config,d=T().fetchStatus,h=T().blockchains(),{findToken:g}=T(),{setAffiliateRef:f,setAffiliatePercent:m,setAffiliateWallets:y}=T(),C=p?.from?.tokens,S=p?.from?.blockchains,k=p?.to?.tokens,v=p?.to?.blockchains,x=bi(void 0),I=bi(void 0),A=bi(void 0),E=bi(void 0);sn(()=>{typeof p.amount<"u"&&t(p.amount.toString())},[p?.amount]),sn(()=>{if(d==="success"){r();let b=h.find(M=>M.name===p?.from?.blockchain),w=p?.from?.token,B=w&&g(w);(b||!b&&A.current)&&n(b??null),B?a({token:B,meta:{blockchains:h}}):!B&&x.current&&a({token:null}),A.current=p?.from?.blockchain,x.current=p?.from?.token}},[p?.from?.token?.symbol,p?.from?.token?.address,p?.from?.token?.blockchain,p?.from?.blockchain,d]),sn(()=>{es(s,C)&&a({token:null}),ts(l,S)&&n(null)},[C,S]),sn(()=>{es(c,k)&&a({token:null}),ts(u,v)&&o(null)},[k,v]),sn(()=>{if(d==="success"){r();let b=h.find(M=>M.name===p?.to?.blockchain),w=p?.to?.token,B=w&&g(w);(b||!b&&E.current)&&o(b??null),B?e({token:B,meta:{blockchains:h}}):!B&&I.current&&e({token:null}),E.current=p?.to?.blockchain,I.current=p?.to?.token}},[p?.to?.token?.symbol,p?.to?.token?.address,p?.to?.token?.blockchain,p?.to?.blockchain,d]),sn(()=>{f(p?.affiliate?.ref??null),m(p?.affiliate?.percent??null),y(p?.affiliate?.wallets??null)},[p?.affiliate?.ref,p?.affiliate?.percent,p?.affiliate?.wallets])}i(zm,"useSyncStoresWithConfig");import{useEffect as $s,useRef as bk}from"react";import{useInRouterContext as xk,useLocation as Ek,useSearchParams as Ik}from"react-router-dom";function _s(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(_s,"convertTokenSearchParamToAsset");function Ds(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ds,"tokenToSearchParam");function Os(){let t=Ek(),[e,o]=Ik(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:u,setFromToken:p,setToToken:d,setInputAmount:h}=O(),g=T().fetchStatus,f=T().blockchains(),m=xk(),{updateIframe:y,updateCampaignMode:C}=T(),S=T().isInCampaignMode(),k=bk(),{findToken:v}=T(),x=i(()=>{let A={};for(let[L,te]of e.entries())L.startsWith("utm_")&&(A[L]=te);let E=e.get("fromAmount"),b=e.get("fromBlockchain"),w=e.get("fromToken"),B=e.get("toBlockchain"),M=e.get("toToken"),$=e.get("autoConnect"),q=e.get("clientUrl"),ee=e.get("liquiditySources"),V=e.get("blockchain");return{fromAmount:E,fromBlockchain:b,fromToken:w,toBlockchain:B,toToken:M,autoConnect:$,clientUrl:q,liquiditySources:ee,utmQueryParams:A,blockchain:V}},"getUrlSearchParams"),I=i(A=>{for(let E in A)A[E]||delete A[E];o(A,{replace:!0})},"updateUrlSearchParams");$s(()=>{let{autoConnect:A,clientUrl:E,utmQueryParams:b,blockchain:w}=x();m&&g==="success"&&I({fromBlockchain:n?.name,fromToken:Ds(a),toBlockchain:r?.name,toToken:Ds(s),fromAmount:c,autoConnect:A??void 0,clientUrl:E??void 0,blockchain:w??void 0,liquiditySources:S?k.current:void 0,...b})},[t.pathname,c,n,a,r,s,S,g]),$s(()=>{if(!m)return;let A=x();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&h(A.fromAmount),g==="success"){let E=f.find(M=>M.name===A.fromBlockchain),b=A.fromToken&&E?v(_s(A.fromToken,E)):void 0,w=f.find(M=>M.name===A.toBlockchain),B=A.toToken&&w?v(_s(A.toToken,w)):void 0;E&&(l(E),b&&p({token:b,meta:{blockchains:f}})),w&&(u(w),B&&d({token:B,meta:{blockchains:f}}))}},[g]),$s(()=>{let{clientUrl:A,liquiditySources:E}=x();y("clientUrl",A||void 0),C("liquiditySources",E?.split(",")??void 0)},[])}i(Os,"useSyncUrlAndStore");import{i18n as mn}from"@lingui/core";import{Alert as jv,Button as Xv,darkTheme as Yv,Divider as hl,DoneIcon as Zv,styled as Jv,TextField as Rv,Typography as ew}from"@rango-dev/ui";import Ke,{useState as tw}from"react";import{useNavigate as ow,useSearchParams as nw}from"react-router-dom";import{ChevronRightIcon as Ak,Divider as Vm,Image as Nk,Typography as Km}from"@rango-dev/ui";import wt from"react";import{darkTheme as qm,styled as Us}from"@rango-dev/ui";var Qm=Us("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${qm} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${qm} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),Hm=Us("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),Gm=Us("div",{display:"flex"});function zs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return wt.createElement(Hm,null,wt.createElement(Km,{size:"large",variant:"label"},n),wt.createElement(Vm,{size:10}),wt.createElement(Qm,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},wt.createElement(Gm,null,r&&wt.createElement(wt.Fragment,null,wt.createElement(Nk,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),wt.createElement(Vm,{size:4,direction:"horizontal"})),wt.createElement(Km,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),wt.createElement(Ak,{size:12,color:"black"})))}i(zs,"BlockchainSelectorButton");import{i18n as Vs}from"@lingui/core";import{Button as Pk,Divider as Zm,MessageBox as Mk}from"@rango-dev/ui";import ro,{useEffect as Jm,useState as Ks}from"react";import{i18n as xi}from"@lingui/core";import{Divider as Ao,ExternalLinkIcon as Wk,Image as Lk,Typography as cn}from"@rango-dev/ui";import we from"react";var jm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function Xm(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Xm,"generateExplorerLink");import{Button as Bk,darkTheme as ln,styled as qs}from"@rango-dev/ui";var Qs=qs("a",{textDecoration:"none",color:"$colors$neutral700",[`.${ln} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${ln} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${ln} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${ln} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),Ym=qs("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${ln} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${ln} &`]:{color:"$colors$neutral900"}}}),Hs=qs(Bk,{minHeight:"$40"});function Gs(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=Xm(n.address,s),l=i(()=>window.open(jm,"_blank"),"onClickLearnMore");return we.createElement(R,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},we.createElement(Ym,null,we.createElement(Lk,{src:n.image===""?zr:n.image,size:45,type:"circular"}),we.createElement(Ao,{size:4}),we.createElement(cn,{variant:"title",size:"medium"},n.symbol),we.createElement(cn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),we.createElement(Ao,{size:4}),we.createElement(cn,{variant:"body",size:"medium"},c?we.createElement(Qs,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,we.createElement(Wk,{size:12,color:"gray"})):we.createElement(Qs,null,n.address)),we.createElement(Ao,{size:4}),n.coinSource&&we.createElement(cn,{className:"_coin-source",variant:"body",size:"xsmall"},xi.t("via")," ",we.createElement(cn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),we.createElement(Ao,{size:"32"}),we.createElement(cn,{size:"medium",variant:"body",className:"_custom-token-description"},xi.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),we.createElement(Ao,{size:40}),we.createElement(Ao,{size:10}),we.createElement(Hs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},xi.t("Import Anyway")),we.createElement(Ao,{size:10}),we.createElement(Hs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},xi.t("Learn More")))}i(Gs,"CustomTokenModal");function Kn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:u}=t,{setCustomToken:p}=T(),[d,h]=Ks(!1),[g,f]=Ks(!1),[m,y]=Ks(!1),C=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),S=i(()=>{n?.type!=="network-error"&&s?.(),h(!1)},"closeErrorModal"),k=i(()=>{y(!0),S()},"handleErrorModalButtonClick"),v=i(()=>{m&&n?.type==="network-error"&&(y(!1),C()),l()},"handleExit"),x=i(()=>{e&&(p(e),c())},"handleSubmit");return Jm(()=>{n&&h(!0)},[n]),Jm(()=>{o&&e&&f(!0)},[o,e]),ro.createElement(ro.Fragment,null,ro.createElement(R,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:S,onExit:v,container:N()},ro.createElement(Mk,{title:n?.title??"",type:"error",description:n?.message||Vs.t("Failed Network, Please retry.")},ro.createElement(Zm,{size:40}),ro.createElement(Zm,{size:10}),ro.createElement(Pk,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:k},n?.type==="network-error"?Vs.t("Retry"):Vs.t("Add another custom token")))),o&&e&&ro.createElement(Gs,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>f(!1),open:g,onExit:u}))}i(Kn,"ImportCustomToken");import{useManager as qv}from"@rango-dev/queue-manager-react";import{BottomLogo as Qv,Divider as Bd,Header as Hv}from"@rango-dev/ui";import We,{useEffect as Mi,useLayoutEffect as Gv,useRef as Wd,useState as Ld}from"react";import{useRef as _k}from"react";function jn(){return window.self!==window.top}i(jn,"isAppLoadedIntoIframe");function js(){let t=_k(null),{iframe:e}=T(),o=jn()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(js,"useIframe");import{useNavigate as Dk}from"react-router-dom";function Ve(){let t=Dk();return()=>t(-1)}i(Ve,"useNavigateBack");import{useLayoutEffect as $k,useState as Xn}from"react";var Rm=480,ed=768,td=1024,od=1200,Fk=i(()=>{let[t,e]=Xn(!1),[o,n]=Xn(!1),[r,a]=Xn(!1),[s,c]=Xn(!1),[l,u]=Xn(!1),p=i(()=>{e(window.innerWidth<=Rm),n(window.innerWidth>Rm&&window.innerWidth<=ed),a(window.innerWidth>ed&&window.innerWidth<=td),c(window.innerWidth>td&&window.innerWidth<=od),u(window.innerWidth>od)},"handleResize");return $k(()=>(p(),window.addEventListener("resize",p),()=>window.removeEventListener("resize",p)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),pn=Fk;import{createTheme as tl,darkTheme as Zk,lightTheme as Jk}from"@rango-dev/ui";import{useEffect as Rk,useState as ev}from"react";import{theme as Xk,darkColors as Yk}from"@rango-dev/ui";import Rs from"react";var Ei=16,Ii=255,nd=.11;function Ok(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Ok,"expandShortHexColor");function Uk(t,e){return t.padStart(e,"0")}i(Uk,"pad");function Xs(t){let e=Math.min(Math.max(Math.round(t),0),Ii);return Uk(e.toString(Ei),2)}i(Xs,"intToHex");function zk(t){return`#${Xs(t.red)}${Xs(t.green)}${Xs(t.blue)}`}i(zk,"rgbToHex");function qk(t){let e=parseInt(t.slice(1,3),Ei),o=parseInt(t.slice(3,5),Ei),n=parseInt(t.slice(5,7),Ei);return{red:e,green:o,blue:n}}i(qk,"hexToRGB");function Qk(t,e){let o=1-nd*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Qk,"generateShade");function Hk(t,e){let o=nd*e;return{red:t.red+(Ii-t.red)*o,green:t.green+(Ii-t.green)*o,blue:t.blue+(Ii-t.blue)*o}}i(Hk,"generateTint");function Gk(t){return rd(t,Qk)}i(Gk,"calculateShades");function Vk(t){return rd(t,Hk)}i(Vk,"calculateTints");function rd(t,e){let o=qk(t),n=[];for(let r=1;r<9;r++)n.push(zk(e(o,r)));return n}i(rd,"calculateColors");function Ys(t,e,o){let a=Vk(t).reverse().concat(t),s=Gk(t),c=a.concat(s),l={},u=c.length;for(let p=0;p<u;p++){let d=100+(o?u-1-p:p)*50;l[`${e}${d}`]=c[p]}return l}i(Ys,"createTintsAndShades");function Zs(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)&&!Jp(r)){let l=Ok(a);Object.assign(n,Ys(l,r,s))}}return{...n,...e}}i(Zs,"expandToGenerateThemeColors");var id=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Kk=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=id(o%52)+e;return id(o%52)+e},"toAlphabeticName"),jk=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Js=i(t=>Kk(jk(5381,JSON.stringify(t))>>>0),"toHash");function el(t){let e=Xk.colors,o={...e,...Yk},n,r;if(t?.light){let s={colors:Zs(e,t.light)};n={id:`${Ra}-light-${Js(s)}`,tokens:s}}if(t?.dark){let s={colors:Zs(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Ra}-dark-${Js(s)}`,tokens:s}}return{light:n,dark:r}}i(el,"customizedThemeTokens");function ad(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Rs.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Rs.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(Rs.cloneElement(e,{key:c}))}}),o}i(ad,"joinList");function sd(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(sd,"doesWindowPreferDarkColorScheme");function io(t){let{colors:e,fontFamily:o=Dp,borderRadius:n=mu,secondaryBorderRadius:r=du}=t,[a,s]=ev(sd()?"dark":"light"),{theme:c}=T(),{dark:l,light:u}=el(e),p=tl({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[p.className,Jk.className],h=[p.className,Zk.className];if(u){let f=tl(u.id,u.tokens);d.push(f.className)}if(l){let f=tl(l.id,l.tokens);h.push(f.className)}return Rk(()=>{let f=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return sd()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=d.join(" "),m=h.join(" ");return c==="auto"?a==="dark"?m:f:c==="dark"?m:f},"getActiveTheme"),mode:c==="auto"?a:c}}i(io,"useTheme");var St=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as ld}from"@lingui/core";import{Alert as tv,Button as ov}from"@rango-dev/ui";import cd from"react";function ol(t){return cd.createElement(tv,{action:cd.createElement(ov,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},ld.t("Activate this tab")),type:"warning",variant:"alarm",title:ld.t("Another tab is open and handles transactions.")})}i(ol,"ActivateTabAlert");import{i18n as nl}from"@lingui/core";import{Button as nv,Divider as rv,MessageBox as iv}from"@rango-dev/ui";import Ai from"react";function rl(t){let{open:e,onClose:o,onConfirm:n}=t;return Ai.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},Ai.createElement(iv,{title:nl.t("Activate current tab"),type:"warning",description:nl.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.")},Ai.createElement(rv,{size:20}),Ai.createElement(nv,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},nl.t("Confirm"))))}i(rl,"ActivateTabModal");import{ChevronLeftIcon as lv}from"@rango-dev/ui";import yd from"react";import{css as av,darkTheme as pd,IconButton as sv,styled as No}from"@rango-dev/ui";var Pt=No(sv,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${pd} &`]:{backgroundColor:"$neutral"}}}),ud=No("div",{position:"absolute",background:"$secondary500",[`.${pd} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),ao=No("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),md=No("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"}}}}),dd=No("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),fd=No("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),gd=av({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),hd=No("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function il(t){return yd.createElement(Pt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},yd.createElement(lv,{color:"black",size:16}))}i(il,"BackButton");import{i18n as cv}from"@lingui/core";import{Button as pv,Typography as uv}from"@rango-dev/ui";import al from"react";function sl(t){return al.createElement(ao,null,al.createElement(pv,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},al.createElement(uv,{variant:"label",size:"medium",color:"error500"},cv.t("Cancel"))))}i(sl,"CancelButton");import{i18n as mv}from"@lingui/core";import{Image as dv,Tooltip as fv,WalletIcon as gv}from"@rango-dev/ui";import Bo from"react";function ll(t){let{list:e}=kt(),o=e.filter(r=>r.state==="connected"),n=o.length?Bo.createElement("div",{className:gd()},o.map(r=>Bo.createElement(hd,{key:r.title},Bo.createElement(dv,{src:r.image,size:14})))):mv.t("Connect Wallet");return Bo.createElement(fv,{container:t.container,side:"bottom",content:n},Bo.createElement(Pt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Bo.createElement(ud,null),Bo.createElement(gv,{size:18,color:"black"})))}i(ll,"WalletButton");import{i18n as Bi}from"@lingui/core";import{NotificationsIcon as Wv,Popover as Lv,SettingsIcon as Pv,Tooltip as Wi,TransactionIcon as Mv}from"@rango-dev/ui";import De from"react";import{Notifications as Cv}from"@rango-dev/ui";import Tv from"react";import{useNavigate as kv}from"react-router-dom";import{create as hv}from"zustand";import{persist as yv,subscribeWithSelector as Sv}from"zustand/middleware";var Be=Jo(hv()(yv(Sv((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function cl(){let t=kv(),{getNotifications:e,clearNotifications:o}=Be(),n=e(),r=T().blockchains(),{findToken:a}=T();return Tv.createElement(Cv,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Ip(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${F.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(cl,"NotificationContent");import{useManager as vv}from"@rango-dev/queue-manager-react";import{InProgressIcon as wv}from"@rango-dev/ui";import Sd from"react";var bv=i(()=>{let{manager:t}=vv();return St(t).map(({swap:o})=>o).find(o=>o.status==="running")?Sd.createElement(fd,{id:"widget-header-history-badge-container"},Sd.createElement(wv,{color:"info",size:6})):null},"InProgressTransactionBadge"),Cd=bv;import{EventSeverity as xv}from"@rango-dev/queue-manager-rango-preset";import{Typography as Ev}from"@rango-dev/ui";import Td from"react";function kd(){let{getNotifications:t}=Be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===xv.WARNING);return o?Td.createElement(md,{isSever:n},Td.createElement(Ev,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(kd,"NotificationsBadge");import{RefreshProgressButton as Iv}from"@rango-dev/ui";import pl,{useEffect as Av,useState as vd}from"react";var Nv=1e3,wd=60,Bv=100;function Ni({onClick:t}){let[e,o]=vd(0),[n,r]=vd(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Av(()=>{let l;return t?l=window.setInterval(()=>{o(u=>u+1),e===wd&&c()},Nv):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 pl.createElement(Pt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},pl.createElement(dd,{onTransitionEnd:()=>r(!1),isRefetched:n},pl.createElement(Iv,{size:22,color:t?"black":"gray",progress:e/wd*Bv})))}i(Ni,"RefreshButton");function Wo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=T(),c=et("notification",s)||r.includes("notifications");return De.createElement(De.Fragment,null,!r.includes("refresh")&&De.createElement(Wi,{container:a||N(),side:"top",content:Bi.t("Refresh")},De.createElement(Ni,{onClick:e})),!c&&De.createElement(Lv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:De.createElement(cl,null)},De.createElement("div",null,De.createElement(Wi,{container:N(),side:"top",content:Bi.t("Notifications")},De.createElement(Pt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},De.createElement(Wv,{size:18,color:"black"}),De.createElement(kd,null))))),!r.includes("settings")&&De.createElement(Wi,{container:N(),side:"top",content:Bi.t("Settings")},De.createElement(Pt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},De.createElement(Pv,{size:18,color:"black"}))),!r.includes("history")&&De.createElement(Wi,{container:N(),side:"top",content:Bi.t("History")},De.createElement(Pt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},De.createElement(Mv,{size:18,color:"black"}),De.createElement(Cd,null))))}i(Wo,"HeaderButtons");import{i18n as ul}from"@lingui/core";import{Divider as xd,MessageBox as $v,RefreshIcon as Fv}from"@rango-dev/ui";import un from"react";import{Button as _v,styled as Dv}from"@rango-dev/ui";var bd=Dv(_v,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ml(t){let{open:e,onClose:o}=t;return un.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},un.createElement($v,{title:ul.t("Something went wrong"),type:"error",description:ul.t("Something went wrong. Please refresh the app.")},un.createElement(xd,{size:30}),un.createElement(bd,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},un.createElement(Fv,{size:20,color:"primary"}),un.createElement(xd,{size:4,direction:"horizontal"}),ul.t("Refresh"))))}i(ml,"RefreshModal");function dl(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(dl,"onScrollContentAttachStatusToContainer");import{css as Uv,styled as Li}from"@rango-dev/ui";var Pi=Uv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Ed=Li("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"}}}}),Id=Li("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Ad=Li("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"}}}),Nd=Li("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=js(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:u}}=T(),[p,d]=Ld(!1),{config:{features:h,theme:g}}=T(),{watermark:f,setShowCompactTokenSelector:m}=oe(),y=f==="FULL",{activeTheme:C}=io(g||{}),[S,k]=Ld(!1),v=et("connectWalletButton",h),{isActiveTab:x,tabManagerInitiated:I,showActivateTabModal:A,setShowActivateTabModal:E,activateCurrentTab:b}=oe(),w=Ve(),{manager:B}=qv(),{isTablet:M,isMobile:$}=pn(),ee=St(B).map(({swap:X})=>X).some(X=>X.status==="running"),V=i(()=>b(bo.forceClaim,ee),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),te=typeof r.hasBackButton>"u"||r.hasBackButton,le=Wd(null),J=Wd(null);return Mi(()=>{let X=(u?.swapBoxBanner?.routes?.length??0)===0,j=!!u?.swapBoxBanner?.routes?.some(ue=>location.pathname.endsWith(ue));k(!!u?.swapBoxBanner&&(X||j))},[u?.swapBoxBanner?.routes?.toString(),location.pathname]),Mi(()=>(jn()&&J.current&&e(J.current),()=>{o()}),[]),Mi(()=>(le.current?.addEventListener("scroll",dl),()=>{le.current?.removeEventListener("scroll",dl)}),[]),Mi(()=>{d(c==="failed")},[c]),Gv(()=>{let X=s==="auto"||!J.current||jn(),j=$||M,ue=i(()=>{X||(j?J.current.style.height=`${window.innerHeight-J.current.offsetTop}px`:J.current.style.height=`${700}px`,m(parseFloat(J.current.style.height)<640))},"handler");return ue(),window.addEventListener("resize",ue),()=>window.removeEventListener("resize",ue)},[s,$,M]),We.createElement(Ed,{height:s,id:Re.SWAP_BOX_ID,className:`${C()} ${Pi()}`,ref:J,showBanner:S},We.createElement(Hv,{prefix:te?We.createElement(il,{onClick:()=>{w(),r.onBack?.()}}):null,title:r.title,suffix:We.createElement(We.Fragment,null,r.suffix,r.onWallet&&!v&&We.createElement(ll,{container:N(),onClick:L,isConnected:!!l?.length}),r.onCancel&&We.createElement(sl,{onClick:r.onCancel}))}),We.createElement(Id,{ref:le},n),We.createElement(rl,{open:A,onClose:()=>E(!1),onConfirm:V}),We.createElement(Ad,null,We.createElement("div",{className:"footer__content"},I&&!x&&We.createElement("div",{className:"footer__alert"},We.createElement(ol,{onActivateTab:V}),We.createElement(Bd,{size:10})),a),We.createElement(Bd,{size:12}),We.createElement("div",{className:`footer__logo ${y?"logo__show":"logo__hidden"}`},We.createElement(Qv,null))),S&&We.createElement(Nd,null,u?.swapBoxBanner?.element),We.createElement(ml,{open:p,onClose:()=>d(!1)}))}i(ie,"Layout");import{styled as Vv}from"@rango-dev/ui";var Pd="$20 $20 $10 $20",fl=Vv("div",{padding:Pd,overflowY:"auto",flexGrow:1});import{styled as Kv}from"@rango-dev/ui";var ae=Kv("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 so}from"@lingui/core";import{useState as gl}from"react";function Md(){let[t,e]=gl(!1),[o,n]=gl(null),[r,a]=gl(null),{findToken:s}=T(),c=T().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function u(d,h){switch(d){case"duplicated":return{type:d,title:so.t("Duplicate Token"),message:so.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:so.t("Token Already Exists"),message:so.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:so.t("Token Not Found"),message:so.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:h}})};case"network-error":return{type:d,title:so.t("Network error"),message:so.t("An error occurred while retrieving token data.")}}}return i(u,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:h})=>{e(!0);try{if(c.some(C=>C.address?.toLowerCase()===h.toLowerCase())){let C=u("duplicated");n(C);return}let f=await st().getCustomToken({blockchain:d,address:h});if(!f||!f.token||f.error){let C=u("not-found",d);n(C);return}let m=f.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let C=u("token-exist");n(C);return}return a({...m,warning:!0})}catch(g){if(g.code==="ERR_BAD_REQUEST"){let f=u("not-found",d);n(f);return}n(u("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(Md,"useFetchCustomToken");var rw=Jv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${Yv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function _d(){let t=ow(),[e]=nw(),o=Ve(),n=T().blockchains(),r=e.get("blockchain")||"",a=Co(r,n),[s,c]=tw(""),{fetchCustomToken:l,token:u,loading:p,error:d,resetState:h}=Md(),g=!!a&&Ho(a,s),f=!a||!s||!g,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ke.createElement(ie,{header:{title:mn.t("Add Custom Token")}},Ke.createElement(ae,null,Ke.createElement(rw,null,Ke.createElement("div",null,Ke.createElement(zs,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:mn.t("Select chain"),placeholder:mn.t("Select chain")}),Ke.createElement(hl,{size:"24"}),Ke.createElement(ew,{size:"large",variant:"label"},mn.t("Enter Address")),Ke.createElement(hl,{size:10}),Ke.createElement(Rv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:mn.t("Enter token address"),size:"large",value:s,suffix:!!s&&g&&Ke.createElement(Zv,{color:"success",size:12}),onChange:y=>c(y.target.value)}),!g&&!!s&&Ke.createElement(Ke.Fragment,null,Ke.createElement(hl,{size:4}),Ke.createElement(jv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ke.createElement(Xv,{id:"widget-add-custom-token-import-btn",disabled:f,type:"primary",variant:"contained",loading:p,size:"large",onClick:m},mn.t("Import"))),Ke.createElement(Kn,{token:u,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:h,onExitImportModal:h})))}i(_d,"AddCustomTokenPage");import{i18n as Kl}from"@lingui/core";import{useManager as qb}from"@rango-dev/queue-manager-react";import{Alert as Qb,Button as Hb,css as Xl,Divider as jl,IconButton as xg,styled as Gb,Typography as Vb,WalletIcon as Kb}from"@rango-dev/ui";import Fe,{useEffect as aa,useLayoutEffect as jb,useRef as Xb,useState as cr}from"react";import{useNavigate as Yb}from"react-router-dom";import{i18n as Lo}from"@lingui/core";import{Alert as Bw,BalanceErrors as Ww,Button as lf,ChevronLeftIcon as Lw,Divider as bl,MessageBox as Pw,Typography as xl}from"@rango-dev/ui";import re,{useCallback as Mw,useEffect as cf,useMemo as _w,useState as gn}from"react";import{useNavigate as Dw}from"react-router-dom";import{i18n as Tl}from"@lingui/core";import{Alert as cw,ChevronDownIcon as pw,CloseIcon as uw,Divider as qd,IconButton as Qd,PasteIcon as mw,Typography as dw,WalletIcon as fw}from"@rango-dev/ui";import $e,{useEffect as gw,useRef as hw}from"react";import Fi,{useRef as sw}from"react";import*as dn from"@radix-ui/react-collapsible";import{keyframes as Dd,styled as _i}from"@rango-dev/ui";var yl=300,iw=Dd({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),aw=Dd({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),$d=_i(dn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Sl=_i(dn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Di=_i(dn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${iw} ${yl}ms ease-out`},false:{animation:`${aw} ${yl}ms ease-out`}}}}),$i=_i("div",{transition:`all ${yl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Oi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=sw(null);return Fi.createElement($d,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&Fi.createElement(Sl,{className:"collapsible_trigger",onClick:a},s),Fi.createElement(Di,{className:"collapsible_content",open:e},r),c==="bottom"&&Fi.createElement(Sl,{className:"collapsible_trigger",onClick:a},s))}i(Oi,"CustomCollapsible");import{darkTheme as Fd,styled as Cl,TextField as lw}from"@rango-dev/ui";var Od=Cl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Ud=Cl(lw,{backgroundColor:"$neutral100",padding:"$15"}),zd=Cl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Fd} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Fd} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function Hd(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=T(),c=T().blockchains(),l=Fr(e.name,c),u=hw(null),p=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),g=n&&!!r&&e&&!Ho(e,r),f=i(()=>{a("")},"handleClear"),m=i(async C=>{if(C.preventDefault(),navigator.clipboard!==void 0){let S=await navigator.clipboard.readText();a(S),u?.current?.focus()}},"handlePaste"),y=i(()=>r?$e.createElement(Qd,{id:"widget-custom-destination-close-icon-btn",onClick:f,variant:"ghost"},$e.createElement(uw,{size:12,color:"gray"})):d?null:$e.createElement(Qd,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},$e.createElement(mw,{size:16})),"renderSuffix");return gw(()=>{!!p&&r===null&&(a(p),o(!0))},[p]),$e.createElement(Od,null,$e.createElement(Oi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:$e.createElement(zd,{id:"widget-custom-destination-collapsible-btn"},$e.createElement("div",{className:"button__content"},$e.createElement(fw,{size:18,color:"info"}),$e.createElement(qd,{size:4,direction:"horizontal"}),$e.createElement(dw,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Tl.t("Send to a different address"))),$e.createElement($i,{orientation:n?"up":"down"},$e.createElement(pw,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},$e.createElement(Ud,{id:"widget-custom-destination-blockchain-address-input",ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Tl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:y(),onChange:C=>{let S=C.target.value;a(S)}})),g&&$e.createElement($e.Fragment,null,$e.createElement(qd,{size:4}),$e.createElement(cw,{variant:"alarm",type:"error",title:Tl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(Hd,"CustomDestination");import{css as yw,IconButton as Sw,SelectableWalletButton as Cw,styled as lo}from"@rango-dev/ui";var Gd=lo("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Vd=lo("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Kd=lo(Cw,{justifyContent:"center"}),jd=lo("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Xd=lo(Sw,{position:"absolute",left:"$20"}),Yd=lo("div",{paddingTop:"$20"}),Zd=yw({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Jd=lo("div",{display:"flex"}),Rd=lo("div",{overflow:"visible",width:"100%"});import{i18n as vl}from"@lingui/core";import{warn as bw}from"@rango-dev/logging-core";import{Divider as xw,makeInfo as Ew,SelectableWallet as Iw,Typography as af,WalletState as Ui}from"@rango-dev/ui";import ot,{useEffect as sf,useState as Jn}from"react";import{Image as vw,MessageBox as ww}from"@rango-dev/ui";import Zn from"react";import{keyframes as Tw,styled as kl}from"@rango-dev/ui";var ef=kl("div",{position:"relative"}),kw=Tw({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),tf=kl("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${kw} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),of=kl("div",{"& img":{borderRadius:"50%"}});import{i18n as fn}from"@lingui/core";function nf(t,e){switch(t){case"in-progress":return{type:"loading",title:fn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:fn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:fn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:fn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:fn.t("Request Rejected"),description:fn.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(nf,"generateMessageByStatus");function rf(t){let{status:e,displayName:o,image:n}=t,r=nf(e,o),a=e=="in-progress";return Zn.createElement(ww,{type:r.type,title:r.title,description:r.description,icon:a?Zn.createElement(ef,null,Zn.createElement(of,null,Zn.createElement(vw,{src:n,size:45})),Zn.createElement(tf,null)):void 0})}i(rf,"ExperimentalChainStatus");var Aw=7,Nw=3e3;function wl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{blockchains:l,connectedWallets:u}=T(),[p,d]=Jn(),[h,g]=Jn(null),[f,m]=Jn(!1),[y,C]=Jn(null),{suggestAndConnect:S}=zi(),{list:k}=kt({chain:e}),[v,x]=Jn(k),I=k.length,A=a&&I-a>0,E=i(async w=>{m(!1),C("in-progress");try{await S(w.walletType,w.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");sf(()=>{x(w=>{let B=k.findIndex(M=>n(M.type,e));return A&&B>1?[k[B]].concat(k.filter((M,$)=>$!==B)):w.map(M=>k.find($=>$.type===M.type)??M)})},[JSON.stringify(k)]);let b=document.getElementById(Re.SWAP_BOX_ID);return sf(()=>{let w=null;return(y==="completed"||y==="rejected")&&(w=setTimeout(()=>C(null),Nw)),()=>{w&&clearTimeout(w)}},[y]),ot.createElement(ot.Fragment,null,v.slice(0,a).map(w=>{let B=au({connectedWallets:u,walletType:w.type,chain:e}),M=w.state===Ui.CONNECTED,$=B?oo(B,Aw):"",q=M&&!!w.needsNamespace&&!$,ee=Yr(l(),e),V=!u.find(ue=>ue.walletType===w.type&&ue.chain===e),L=ee&&V&&w.state===Ui.CONNECTED,te=i(async()=>{w.state===Ui.DISCONNECTED||q?d(w):L?(g({walletType:w.type,chain:e,address:B??""}),m(!0)):r({walletType:w.type,chain:e,address:B??""})},"onSelectableWalletClick"),le=Ew(w.state),J=i(()=>L?vl.t({id:"Add {chain} chain",values:{chain:e}}):q?vl.t("Chain not connected"):$||le.description,"getWalletDescription"),X=i(()=>w.state===Ui.CONNECTED?q?"neutral600":"neutral700":le.color,"getWalletDescriptionColor"),j=h?.chain?Fr(h.chain,l()):void 0;return ot.createElement(ot.Fragment,{key:`${w.title}_${j}`},!!h&&ot.createElement(R,{id:"widget-wallets-list-watermarked-modal",open:!!h&&f,container:b,onClose:()=>{g(null)}},ot.createElement(Is,{id:"widget-wallets-list-experimental-chain-container",displayName:j,onConfirm:()=>{E(h)}})),y&&ot.createElement(R,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!y,onClose:C.bind(null,null),container:b},ot.createElement(rf,{status:y,displayName:j,image:w.image}),ot.createElement(xw,{direction:"vertical",size:32})),ot.createElement(Iw,{key:w.type,id:"widget-wallets-list-selectable-wallet-btn",description:J(),descriptionColor:X(),onClick:te,selected:n(w.type,e),disabled:!c,...w}))}),ot.createElement(Hn,{id:"widget-wallets-list-stateful-connect-modal",wallet:p,options:{defaultSelectedChains:o||[e]},onClose:()=>{d(void 0)},onConnect:()=>{t.onConnect&&(p?.type?t.onConnect(p.type):bw(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),A&&ot.createElement(Kd,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},ot.createElement(af,{variant:"label",size:"medium"},vl.t("Show more wallets"),ot.createElement(af,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(a??0)))))}i(wl,"WalletList");var $w=2;function pf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Dw(),c=T().blockchains(),{selectedQuote:l,setSelectedWallets:u,quoteWalletsConfirmed:p,setQuoteWalletConfirmed:d,customDestination:h,setCustomDestination:g}=O(),{config:f,connectedWallets:m,setWalletsAsSelected:y}=T(),[C,S]=gn(""),[k,v]=gn([]),[x,I]=gn(""),[A,E]=gn(!!h),b=_w(()=>vo({filter:"all",quote:l}),[l]),w=vo({filter:"required",quote:l}),B=c.find(W=>W.name===l?.swaps[l?.swaps.length-1].to.blockchain),M=i(W=>w.includes(W),"isWalletRequiredFor"),$=Mw(()=>m.filter(W=>W.selected&&b.includes(W.chain)),[m,b]),[q,ee]=gn($()),[V,L]=gn([]),te=i((W,Q)=>L(K=>K.concat({blockchain:W,walletType:Q})),"addNextSelectedWallets"),le=k.length>0,J=i((W,Q)=>!!q.find(K=>K.walletType===W&&K.chain===Q&&K.selected&&(M(Q)||!M(Q)&&!h)),"isSelected"),X=i((W,Q,K)=>{let Y=!1;return W.map(ye=>{if(ye.chain===Q){let qe=ye.selected;return!Y&&K?(Y=!0,qe=!0):K||(qe=!1),{...ye,selected:qe}}return ye})},"updateSelectableWallets"),j=i(W=>{E(W),W?M(B?.name??"")||ee(Q=>X(Q,B?.name||"",!1)):(g(""),ee(Q=>X(Q,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),ue=i(W=>{if(C&&S(""),J(W.walletType,W.chain))return;let K=m.find(Y=>Y.walletType===W.walletType&&Y.chain===W.chain);K&&(n(),W.chain===B?.name&&A&&!M(B.name)&&(E(!1),g(null)),ee(Y=>Y.filter(ye=>ye.chain!==W.chain).concat({...K,selected:!0})))},"onChange"),me=i(()=>{let W=q.filter(Q=>Q.selected);y(W),u(W),d(!0),o()},"onConfirmBalance"),ke=i(async()=>{v([]),I("");let W=await r?.({selectedWallets:q.filter(K=>K.selected),customDestination:h}),Q=W.warnings;Q?.balance?.messages&&v(Q.balance.messages),W.error&&I(cm(W.error)),!W.error&&!Q?.balance?.messages.length?me():v(Q?.balance?.messages??[])},"onConfirmWallets");cf(()=>{ee(W=>{let Q=[];return W.forEach(K=>{!m.some(ye=>ye.chain===K.chain&&ye.walletType===K.walletType&&ye.address===K.address)||Q.push(K)}),Q=Q.concat(m.filter(K=>!!!Q.find(ye=>ye.chain===K.chain)&&K.selected&&b.includes(K.chain))),Q})},[m,b]),cf(()=>{let W=[];V.length>0&&(V.forEach(Q=>{let K=m.find(Y=>Y.chain===Q.blockchain&&Y.walletType===Q.walletType);K?ue(K):W.push(Q)}),L(W))},[m,V]);let H=document.getElementById(Re.SWAP_BOX_ID);return re.createElement(R,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{p||s("../",{replace:!0}),o()},dismissible:!C,container:H,...!C&&{styles:{container:{height:"100%"}},footer:re.createElement(Jd,null,re.createElement(lf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Fm(a,A,h,l,q,B),onClick:ke,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Lo.t("Confirm")))},...C&&{styles:{container:{height:"100%",padding:"$0"}},header:re.createElement(jd,null,re.createElement(Xd,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:S.bind(null,"")},re.createElement(Lw,{size:16})),re.createElement(xl,{variant:"headline",size:"small"},Lo.t({id:"Your {blockchainName} wallets",values:{blockchainName:ft(C,c)}})))},anchor:"center"},re.createElement(R,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:le,onClose:v.bind(null,[]),container:H},re.createElement(Pw,{title:Lo.t("Insufficient account balance"),type:"error",description:re.createElement(Ww,{messages:k??[]})},re.createElement(lf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:me},Lo.t("Proceed anyway")))),C&&re.createElement(Yd,null,re.createElement("div",{className:Zd()},re.createElement(wl,{chain:C,quoteChains:b,isSelected:J,selectWallet:ue,onShowMore:()=>S(C),onConnect:W=>{te(C,W)}}))),!C&&re.createElement(re.Fragment,null,x&&re.createElement(re.Fragment,null,re.createElement(Bw,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Lo.t(x)}),re.createElement(bl,{size:12})),re.createElement(Rd,null,b.map((W,Q)=>{let K=c.find(Qe=>Qe.name===W),Y=`wallet-${Q}`,ye=Q===b.length-1,qe=ye&&B&&f?.customDestination!==!1;return re.createElement("div",{key:Y},re.createElement(Gd,null,re.createElement(xl,{variant:"title",size:"xmedium"},Lo.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),re.createElement(xl,{variant:"label",color:"$neutral700",size:"medium"},Lo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),re.createElement(bl,{size:24}),re.createElement(Vd,null,re.createElement(wl,{chain:W,quoteChains:b,isSelected:J,selectWallet:ue,limit:$w,onShowMore:()=>S(K?.name??""),onConnect:Qe=>{te(W,Qe)}})),!ye&&re.createElement(bl,{size:32}),qe&&re.createElement(Hd,{blockchain:B,open:A,handleOpenChange:j}))}))))}i(pf,"ConfirmWalletsModal");import{i18n as rb}from"@lingui/core";import{Alert as ib,Button as ab,Divider as Nf,InfoIcon as sb}from"@rango-dev/ui";import Oe from"react";import{Alert as Uw,Button as zw,Divider as Al,NoRouteIcon as qw,RefreshIcon as Qw,Typography as yf}from"@rango-dev/ui";import ct from"react";import{i18n as uf}from"@lingui/core";var Fw=24,Ow=60;function mf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ne().genericServerError,action:{onClick:n,title:uf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ne().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:uf.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(mf,"makeInfo");var El=(o=>(o[o.small=Fw]="small",o[o.large=Ow]="large",o))(El||{}),Il=(o=>(o.small="small",o.large="medium",o))(Il||{});import{styled as qi}from"@rango-dev/ui";var df=qi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),ff=qi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),gf=qi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),hf=qi("div",{padding:"$6 $0"});function Rn(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=T().getDisabledLiquiditySources(),s=T().toggleAllLiquiditySources,c=T().swappers(),l=mf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),ct.createElement(df,{id:"widget-no-result-container"},ct.createElement(qw,{size:El[n],color:"gray"}),ct.createElement(Al,{size:4}),ct.createElement(yf,{variant:"title",size:Il[n]},ne().noResultError.title),n==="large"&&ct.createElement(Al,{size:4}),!!l.description&&ct.createElement(ff,{size:n},ct.createElement(yf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),ct.createElement(Al,{size:n==="large"?"24":"4"}),!!l.alert&&ct.createElement(gf,{size:n},ct.createElement(Uw,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&ct.createElement(zw,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:ct.createElement(hf,null,ct.createElement(Qw,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Rn,"NoResult");import{i18n as tr}from"@lingui/core";import{Button as Vw,Divider as Kw,MessageBox as jw,Typography as Xw,WarningIcon as Yw}from"@rango-dev/ui";import Gt from"react";import{Typography as vf}from"@rango-dev/ui";import Bl from"react";import{Button as Hw,darkTheme as Gw,styled as er}from"@rango-dev/ui";var Sf=er("div",{width:"100%"}),Nl=er("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Cf=er("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Gw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Tf=er("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),kf=er(Hw,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function wf(t){let{title:e,value:o,valueColor:n}=t;return Bl.createElement(Cf,null,Bl.createElement(vf,{size:"medium",variant:"label",className:"_title"},e),Bl.createElement(vf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(wf,"QuoteErrorsModalItem");function bf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:tr.t("Swapping"),value:_(r.inputUsdValue,4,4)},{title:tr.t("Gas cost"),value:_(r.totalFee,2,2)},{title:tr.t("Receiving"),value:_(r.outputUsdValue,4,4)},{title:tr.t("Price impact"),value:_(r.priceImpact,2,2),valueColor:`${s}500`}];return Gt.createElement(R,{id:"widget-high-value-loss-warning-modal",footer:Gt.createElement(Vw,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Gt.createElement(Yw,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},Gt.createElement(jw,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Gt.createElement(Nl,null,Gt.createElement(Kw,{size:"4"}),Gt.createElement(Xw,{size:"small",variant:"title"},tr.t("Details")),Gt.createElement(Nl,null,c.map((l,u)=>Gt.createElement(wf,{key:u,...l})))))}i(bf,"HighValueLossWarningModal");import{i18n as hn}from"@lingui/core";function xf(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=hn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=hn.t("Increase")),o;if(t){switch(t.type){case 0:{Ht(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().highValueLossError.title;break}case 4:{o.title=hn.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=hn.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=hn.t("Increase");break}case 3:{o.title=hn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(xf,"makeAlerts");function Ef(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(Ef,"getRequiredSlippage");import{i18n as yn}from"@lingui/core";import{Button as Zw,Divider as Wl,MessageBox as Jw,WarningIcon as Rw}from"@rango-dev/ui";import uo from"react";import{useNavigate as eb}from"react-router-dom";function If(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=eb();return uo.createElement(R,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},uo.createElement(Jw,{type:"warning",title:r.type===3?yn.t("High slippage"):yn.t("Low slippage"),description:r.type===3?yn.t("Caution, your slippage is high. Your trade may be front run."):yn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},uo.createElement(Wl,{size:18}),uo.createElement(Wl,{size:32}),uo.createElement(kf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},uo.createElement(Rw,{color:"white",size:16}),yn.t("Swap anyway")),uo.createElement(Wl,{size:10}),uo.createElement(Zw,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+F.settings)},yn.t("Change Slippage"))))}i(If,"SlippageWarningModal");import{Button as tb,MessageBox as ob,WarningIcon as nb}from"@rango-dev/ui";import Qi from"react";function Af(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Qi.createElement(R,{id:"widget-unknown-price-warning-modal",footer:Qi.createElement(tb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Qi.createElement(nb,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Qi.createElement(ob,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(Af,"UnknownPriceWarningModal");function or(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:u,onConfirmWarningModal:p,onChangeSettings:d,onChangeSlippage:h}=t,g={confirmationDisabled:a,open:r,onClose:u,onConfirm:p},f=o?.type===0||o?.type===1,m=xf(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let y=!!m&&!s,C=i(S=>{if(S==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,v=Ef(e,k);h?.(v)}else S==="change-settings"&&d()},"onclickActionButton");return Oe.createElement(Oe.Fragment,null,f&&Oe.createElement(Oe.Fragment,null,Oe.createElement(Nf,{size:10}),Oe.createElement(Rn,{skipAlerts:s,error:o,fetch:c})),y&&Oe.createElement(Sf,null,Oe.createElement(Nf,{size:10}),Oe.createElement(ib,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Oe.createElement(Tf,{onClick:l},Oe.createElement(sb,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Oe.createElement(ab,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>C(m.action)},m.actionButtonTitle||rb.t("Change"))}})),e&&Oe.createElement(Oe.Fragment,null,e.type===0&&Oe.createElement(bf,{...g,warning:e}),(e.type===3||e.type===2)&&Oe.createElement(If,{...g,warning:e}),e.type===1&&Oe.createElement(Af,{...g,warning:e})))}i(or,"QuoteWarningsAndErrors");import Db from"bignumber.js";import oa from"react";import{i18n as Po}from"@lingui/core";import{Alert as wb,Divider as Cn,FullExpandedQuote as bb,InfoIcon as xb,NumericTooltip as ng,QuoteTag as Eb,StepDetails as Ib,TokenAmount as Ab,Typography as Tn}from"@rango-dev/ui";import Ul from"bignumber.js";import U,{useRef as Nb,useState as Bb}from"react";import{styled as Ll}from"@rango-dev/ui";var Pl=Ll("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Bf=Ll("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Wf=Ll("div",{width:"100%",display:"flex"});import*as Hi from"@radix-ui/react-collapsible";import{Button as lb,css as nr,darkTheme as Le,Image as Lf,styled as Xe,Typography as cb}from"@rango-dev/ui";var pb=300,Pf=Xe(Hi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Le} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Mf=nr({padding:"$10 $15"}),_f=Xe(lb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Le} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Le} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Le} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Df=Xe("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",[`.${Le} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Le} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Le} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Le} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Le} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Le} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Le} &`]:{backgroundColor:"$neutral400"}}}}]}),$f=nr({width:"100%",padding:"$15 $15 $10 $15"}),Ff=nr({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Sn=nr({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Of=nr({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Le} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Uf=Xe(Hi.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:{[`& ${Lf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Lf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Le} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),zf=Xe("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"}}}}),qf=Xe(Di,{width:"100%",background:"inherit"}),Ml=Xe("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${pb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),Xq=Xe("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Qf=Xe("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Le} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Hf=Xe("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),_l=Xe(cb,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Gf=Xe("div",{display:"flex",flexWrap:"wrap"}),Dl=Xe("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"}}}}),Vf=Xe("div",{display:"flex"}),Gi=Xe("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Le} &`]:{borderTopColor:"$neutral800"}});import{i18n as Mt}from"@lingui/core";import{ChevronDownIcon as mb,CloseIcon as db,Divider as ji,IconButton as fb,NumericTooltip as gb,QuoteCost as hb,Typography as bt}from"@rango-dev/ui";import Z,{useState as Yf}from"react";import{css as ub,styled as Vi}from"@rango-dev/ui";var Ki=Vi("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),$l=Vi("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Kf=Vi("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),jf=Vi("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Xf=ub({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var yb=i(t=>t.fee.isZero()?null:Z.createElement(Ki,null,Z.createElement(bt,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(bt,{variant:"label",size:"medium"},"$",_(t.fee,4,4))),"NonPayableFee");function Fl(t){let[e,o]=Yf(!1),[n,r]=Yf(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:u,timeWarning:p,showModalFee:d,fullExpandedMode:h=!1}=t,g=s?.swaps??[],f=h?ko():N(),m=Bm(g),y=_(c,2,2);return Z.createElement(Z.Fragment,null,Z.createElement(hb,{onClickFee:d?C=>{C.stopPropagation(),o(!e)}:void 0,fee:y,feeWarning:u,timeWarning:p,time:l,steps:a,tooltipGas:d?Mt.t("View more info"):void 0,tooltipContainer:f}),Z.createElement(R,{id:"widget-quote-cost-explanation-modal",container:f,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:Z.createElement(jf,{style:{textAlign:h?"left":"center"}},Z.createElement(bt,{variant:"title",size:"medium"},Mt.t("Gas & Fee Explanation")),Z.createElement(fb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Z.createElement(db,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(Kf,null,Z.createElement(bt,{variant:"title",size:"small"},Mt.t("Details")),Z.createElement(ji,{size:10}),Object.entries(m.payable).flatMap(([C,S])=>S.map((k,v)=>{let x=`payable-fee-${v}`,I=Ms(k);return Z.createElement(Ki,{key:x},Z.createElement(bt,{variant:"label",size:"medium",color:"neutral600"},Ns(C,Mt.t)),Z.createElement(gb,{content:k.amount,container:f},Z.createElement(bt,{variant:"label",size:"medium"},_(k.amount,2,2),k.asset.symbol," ($",_(I,4,4),")")))})),Z.createElement(Ki,{className:"total_payable_fee"},Z.createElement(bt,{variant:"label",size:"medium"},Mt.t("Total Payable Fee")),Z.createElement(bt,{variant:"label",size:"medium"},"$",_(c,4,4))),Z.createElement($l,null),!!Object.keys(m.nonePayable).length&&Z.createElement(Oi,{triggerAnchor:"bottom",onClickTrigger:()=>r(C=>!C),trigger:Z.createElement("div",{className:Xf()},Z.createElement(bt,{size:"small",variant:"body",color:"neutral700"},n?Mt.t("Hide non-payable fees"):Mt.t("Show non-payable fees")),Z.createElement(ji,{size:4,direction:"horizontal"}),Z.createElement($i,{orientation:n?"up":"down"},Z.createElement(mb,{size:12,color:"gray"}))),open:n},Z.createElement(bt,{size:"small",variant:"title"},Mt.t("Description")),Z.createElement(ji,{size:4}),Z.createElement(bt,{size:"small",variant:"body",color:"neutral700"},Mt.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),Z.createElement(ji,{size:10}),Object.entries(m.nonePayable).map(([C,S],k)=>{let v=Nm(S),x=Ns(C,Mt.t),I=`non-payable-fee-${k}`;return Z.createElement(yb,{key:I,fee:v,label:x})}),Z.createElement($l,null)))))}i(Fl,"QuoteCostDetails");import{i18n as Rf}from"@lingui/core";import{TokenAmount as eg}from"@rango-dev/ui";import Xi from"react";import{css as Sb,styled as Cb}from"@rango-dev/ui";var Zf=Cb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Jf=Sb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function rr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Xi.createElement(Zf,null,Xi.createElement(eg,{direction:"horizontal",label:Rf.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Xi.createElement("div",{className:Jf()}),Xi.createElement(eg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:Rf.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(rr,"QuoteSummary");import{i18n as tg}from"@lingui/core";import{ChevronDownIcon as Tb,ChevronRightIcon as kb,Divider as Ol,Image as vb,Tooltip as Ri,Typography as Yi}from"@rango-dev/ui";import z from"react";var Zi=4,Ji=6,ir=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return z.createElement(Ri,{container:c,side:"bottom",sideOffset:4,open:r,content:e},z.createElement(zf,{className:n,state:a},z.createElement(vb,{src:o,size:16})))},"ImageComponent");function og(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),u=r.length,p=Cm(r),{isTablet:d,isMobile:h}=pn();return z.createElement(Uf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:g=>e.current=g,selected:o,onClick:g=>{g.stopPropagation(),n(f=>!f)}},z.createElement("div",{className:Sn()},z.createElement(Yi,{variant:"body",size:"xsmall"},tg.t("Via:")),z.createElement(Ol,{direction:"horizontal",size:4}),r.map((g,f)=>{let m=`item-${f}`,y=z.createElement(Ml,null,z.createElement(kb,{size:12,color:"black"}));return h||d?z.createElement(z.Fragment,{key:m},z.createElement(ir,{content:g.swapper.displayName,src:g.swapper.image??"",state:g.state,container:c}),f!==u-1&&z.createElement(z.Fragment,null,y)):z.createElement(z.Fragment,{key:m},u<=Zi||u>Zi&&f<Zi-1?z.createElement(z.Fragment,null,z.createElement(ir,{content:g.swapper.displayName,src:g.swapper.image??"",state:g.state,container:c}),f!==u-1&&z.createElement(z.Fragment,null,y)):f===Zi-1&&z.createElement(Ri,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:Sn()},y,r.map((C,S)=>{let k=`image-${S}`;return S>=f&&z.createElement(z.Fragment,{key:k},z.createElement(ir,{content:C.swapper.displayName,src:C.swapper.image??"",state:C.state,open:!1}),S!==u-1&&z.createElement(z.Fragment,null,y))}))},z.createElement(Dl,{state:r.find((C,S)=>S>=f&&(C.state==="error"||C.state==="warning"))?.state},z.createElement(Yi,{size:"xsmall",variant:"body"},"+",u-f))))})),z.createElement("div",{className:Sn()},z.createElement("div",{className:"blockchains_section"},z.createElement("div",{className:Sn()},z.createElement(Yi,{variant:"body",size:"xsmall"},tg.t("Chains:")),z.createElement(Ol,{direction:"horizontal",size:4}),p.map((g,f)=>z.createElement(z.Fragment,{key:g.displayName},p.length<=Ji||p.length>Ji&&f<Ji-1?z.createElement(Ri,{container:l,side:"bottom",content:g.displayName,sideOffset:4},z.createElement(ir,{content:"",src:g.image??"",open:!1,className:f!==0?"blockchainImage":""})):f===Ji-1&&z.createElement(Ri,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:Sn()},p.map((m,y)=>y>=f&&z.createElement(ir,{key:m.displayName,content:"",src:m.image??"",open:!1,className:y>f?"blockchainImage":"",container:c})))},z.createElement(Dl,{className:"blockchainImage"},z.createElement(Yi,{size:"xsmall",variant:"body"},"+",p.length-f))))),z.createElement(Ol,{direction:"horizontal",size:32}))),z.createElement(Ml,{orientation:a?"up":"down"},z.createElement(Tb,{size:12,color:"black"}))))}i(og,"QuoteTrigger");function zl(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:u=!0,onClickAllRoutes:p,fullExpandedMode:d=!1,container:h}=t,g=T().blockchains(),{findToken:f}=T(),m=T().swappers(),{customSlippage:y,slippage:C}=T(),S=y||C,[k,v]=Bb(t.expanded),x=Nb(null),I=_(o.value,6,6),A=_(n.value,6,6),E=n.usdValue?_(n.usdValue,4,4):"",b=Qt(o.usdValue,n.usdValue??null),w=_(b,2,2),B=Ht(b??0),M=i((me,ke)=>me.map((H,W)=>{let Q,K=r?.type===3&&r.swap.swapperId===H.swapperId,Y=r?.type===4&&r.recommendedSlippages?.has(W),ye=a?.type===2&&a.recommendedSlippages?.has(W),qe=K||Y,Qe=ye;qe?Q="error":Qe&&(Q="warning");let Tt=qe?Po.t("Slippage Error"):Po.t("Slippage Warning");return K&&(Tt=Po.t("Bridge Limit Error")),{swapper:{displayName:En(H.swapperId,m)??"",image:H.swapperLogo},from:{token:{displayName:H.from.symbol,image:H.from.logo},chain:{displayName:ft(H.from.blockchain,g)??"",image:H.from.blockchainLogo},price:{value:W===0&&!ke?_(o.value,6,6):_(H.fromAmount,6,6),usdValue:_((H.from.usdPrice??0)*parseFloat(H.fromAmount),4,4),realValue:W===0?o.value:H.fromAmount,realUsdValue:new Ul(H.from.usdPrice??0).multipliedBy(H.fromAmount).toString()}},to:{token:{displayName:H.to.symbol,image:H.to.logo},chain:{displayName:ft(H.to.blockchain,g)||"",image:H.to.blockchainLogo},price:{value:_(H.toAmount,6,6),usdValue:_((H.to.usdPrice??0)*parseFloat(H.toAmount),4,4),realValue:H.toAmount,realUsdValue:new Ul(H.to.usdPrice??0).multipliedBy(H.toAmount).toString()}},state:Q,alerts:qe||Qe?U.createElement(Bf,{dense:d},U.createElement(wb,{variant:"alarm",type:qe?"error":"warning",title:Tt,id:"widget-quote-footer-step-alarm-alert",footer:U.createElement(Wf,null,K&&U.createElement("div",null,U.createElement(Tn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(Cn,{direction:"vertical",size:2}),U.createElement(Tn,{size:"xsmall",variant:"body",color:"neutral900"},Po.t({id:"Yours: {amount} {symbol}",values:{amount:_(H.fromAmount,6,6),symbol:H?.from.symbol}}))),(Y||ye)&&!K&&U.createElement("div",null,U.createElement(Tn,{size:"xsmall",variant:"body",color:"neutral900"},Po.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(W)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(W)}}})),U.createElement(Cn,{direction:"vertical",size:2}),U.createElement(Tn,{size:"xsmall",variant:"body",color:"neutral900"},Po.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:An(H.estimatedTimeInSeconds),fee:_(Ps(H,f),2,2),internalSwaps:H.internalSwaps?M(H.internalSwaps):void 0}}),"getQuoteSteps"),$=M(e?.swaps??[]),q=$.length,ee=h||N(),V=km(t.quote.tags||[]),L=!!p,te=Kr(e?.swaps),le=An(te),J=Ti(e?.swaps??[],f),X=_(J,2,2),j=J.gte(new Ul(um)),ue=te/dm>=mm;return d?U.createElement(bb,{selected:c,fee:X,time:le,tooltipContainer:ko(),steps:$,tags:V,id:"widget-quote-full-expanded-quote-container",quoteCost:U.createElement(Fl,{quote:e,fullExpandedMode:!0,time:le,fee:J,feeWarning:j,timeWarning:ue,showModalFee:u,steps:q}),percentageChange:w,warningLevel:B,outputPrice:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):U.createElement(Df,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},U.createElement("div",{className:$f()},!l&&V.length?U.createElement(U.Fragment,null,U.createElement(Vf,null,V.map((me,ke)=>{let H=`${me.value}_${ke}`;return U.createElement(U.Fragment,{key:H},U.createElement(Eb,{label:me.label,value:me.value}),U.createElement(Cn,{size:4,direction:"horizontal"}))})),U.createElement(Gi,null),!L&&U.createElement(Cn,{size:4})):null,U.createElement("div",{id:"portal-root",className:Ff()},U.createElement(Fl,{quote:e,time:le,fee:J,feeWarning:j,timeWarning:ue,showModalFee:u,steps:q}),L&&U.createElement(_f,{onClick:me=>{me.stopPropagation(),p()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(Tn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Po.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:Of()},U.createElement(Hf,null,U.createElement(xb,{size:12,color:"gray"})),U.createElement(Gf,null,U.createElement(_l,{size:"small",variant:"body"},`${I} ${$[0].from.token.displayName} = `),U.createElement(ng,{content:n.value,container:ee,open:n.value?void 0:!1},U.createElement(_l,{size:"small",variant:"body"},"\xA0",`${A} ${$[$.length-1].to.token.displayName}`))),U.createElement(ng,{content:n.usdValue,container:ee},U.createElement(Cn,{size:2,direction:"horizontal"}),U.createElement(Tn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&U.createElement(Ab,{id:"widget-quote-token-amount-container",tooltipContainer:ee,type:"output",direction:"vertical",price:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:$[q-1].to.token.displayName,image:$[q-1].to.token.image},chain:{image:$[q-1].to.chain.image},percentageChange:w,warningLevel:B}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(rr,{from:$[0].from,to:$[q-1].to,percentageChange:w,warningLevel:B}),U.createElement(Cn,{size:4}))),U.createElement(Pf,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},U.createElement(og,{type:s,quoteRef:x,selected:c,setExpanded:v,container:ee,expanded:k,steps:$}),U.createElement(qf,{open:k},U.createElement(Qf,null),U.createElement("div",{className:Mf()},$.map((me,ke)=>{let H=`item-${ke}`;return U.createElement(Ib,{type:"quote-details",className:"widget-quote-step-details-container",key:H,tooltipContainer:ee,step:me,hasSeparator:ke!==$.length-1,state:me.state})})))))}i(zl,"Quote");import{Divider as Mb,Skeleton as _b}from"@rango-dev/ui";import Xt from"react";import{darkTheme as Wb,styled as ea}from"@rango-dev/ui";var rg=ea("div",{$$color:"$colors$neutral100",[`.${Wb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),ig=ea("div",{paddingTop:"$2"}),ag=ea("div",{paddingLeft:"$8"}),sg=ea("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as yg,Divider as xt,Skeleton as pt}from"@rango-dev/ui";import G from"react";import{css as Lb,styled as jt}from"@rango-dev/ui";var ql=jt("div",{display:"flex"}),lg=jt("div",{padding:"$10 $0 $20"}),cg=jt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),pg=jt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),ug=jt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),mg=jt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),dg=jt("div",{width:"65%",display:"flex",justifyContent:"start"}),fg=jt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),gg=jt("div",{padding:"$15 $0 $15 $0"}),hg=Lb({display:"flex",justifyContent:"space-between",alignItems:"center"});function ar(t){let{type:e,tagHidden:o=!0}=t,n=G.createElement(ug,null,G.createElement(dg,null,G.createElement(yg,{loading:!0,size:"medium"}),G.createElement(xt,{size:8,direction:"horizontal"}),G.createElement(fg,null,G.createElement(pt,{height:10,width:60,variant:"rounded"}),G.createElement(xt,{size:4}),G.createElement(pt,{height:15,variant:"rounded"}))),G.createElement(pt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return G.createElement("div",null,!o&&G.createElement(G.Fragment,null,G.createElement(ql,null,G.createElement(pt,{width:65,height:20,variant:"rounded"}),G.createElement(xt,{size:4,direction:"horizontal"}),G.createElement(pt,{width:65,height:20,variant:"rounded"}),G.createElement(xt,{size:4,direction:"horizontal"}),G.createElement(pt,{width:65,height:20,variant:"rounded"})),G.createElement(Gi,null),!r&&G.createElement(xt,{size:4})),G.createElement("div",{className:hg()},G.createElement(ql,null,G.createElement(pt,{width:60,height:10,variant:"rounded"}),G.createElement(xt,{size:4,direction:"horizontal"}),G.createElement(pt,{width:60,height:10,variant:"rounded"}),G.createElement(xt,{size:4,direction:"horizontal"}),G.createElement(pt,{width:60,height:10,variant:"rounded"})),r&&G.createElement(pt,{width:85,height:24,variant:"rounded"})),e==="basic"&&G.createElement(lg,null,G.createElement(pt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(cg,null,G.createElement(pg,null,G.createElement(yg,{loading:!0,size:"medium"}),G.createElement(xt,{direction:"horizontal",size:4}),G.createElement(pt,{height:15,width:150,variant:"rounded"})),G.createElement(xt,{size:10}),G.createElement(pt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(xt,{size:4}),G.createElement(gg,null,n,G.createElement(mg,null),n),G.createElement(xt,{size:12})))}i(ar,"QuoteSummarySkeleton");import{ChainToken as vg,Divider as Hl,NextIcon as Pb,Skeleton as ta}from"@rango-dev/ui";import Pe from"react";import{styled as sr}from"@rango-dev/ui";var Sg=sr("div",{display:"flex",alignItems:"start"}),Cg=sr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ql=sr("div",{display:"flex",alignItems:"center",flexGrow:1}),Tg=sr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),kg=sr("div",{display:"flex",alignItems:"center"});function _t(t){let{separator:e=!0}=t;return Pe.createElement(Pe.Fragment,null,Pe.createElement(kg,null,Pe.createElement(ta,{height:22,width:22,variant:"circular"}),Pe.createElement(Hl,{direction:"horizontal",size:8}),Pe.createElement(ta,{height:15,width:148,variant:"rounded"})),Pe.createElement(Sg,null,Pe.createElement(sg,{hideSeparator:!e}),Pe.createElement(Cg,{extraSpace:e},Pe.createElement(Ql,null,Pe.createElement(vg,{size:"small",loading:!0}),Pe.createElement(Hl,{direction:"horizontal",size:8}),Pe.createElement(ta,{height:12,variant:"rounded"})),Pe.createElement(Tg,null,Pe.createElement(Pb,{color:"gray",size:16})),Pe.createElement(Ql,null,Pe.createElement(vg,{size:"small",loading:!0}),Pe.createElement(Hl,{direction:"horizontal",size:8}),Pe.createElement(ta,{height:12,variant:"rounded"})))))}i(_t,"StepSkeleton");function lr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Xt.createElement(rg,{expanded:o,rounded:e!=="basic"},Xt.createElement(ar,{type:e,tagHidden:n}),Xt.createElement(ig,null,Xt.createElement(_b,{height:15,variant:"rounded"})),o&&Xt.createElement(ag,null,Xt.createElement(Mb,{size:24}),Xt.createElement(_t,null),Xt.createElement(_t,null),Xt.createElement(_t,{separator:!1})))}i(lr,"QuoteSkeleton");function Mo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:u,selected:p,id:d,onClickAllRoutes:h,fullExpandedMode:g=!1,container:f}=t,{inputAmount:m,inputUsdValue:y}=O(),C=e?.outputAmount?new Db(e?.outputAmount):null,S=e?yt(e):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?oa.createElement(Pl,null,oa.createElement(lr,{tagHidden:c,type:o,expanded:s})):v?oa.createElement(Pl,{onClick:()=>l?.(e),id:d},oa.createElement(zl,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:c,selected:p,type:o,expanded:s,onClickAllRoutes:h,fullExpandedMode:g,input:{value:m,usdValue:y?.toString()??""},output:{value:C?.toString()??"",usdValue:S?.toString()??""}})):null}i(Mo,"QuoteInfo");import{calculatePendingSwap as Ub}from"@rango-dev/queue-manager-rango-preset";import{useEffect as zb}from"react";import{useRef as $b,useState as Fb}from"react";var Ob=2e3;function na({request:t}){let[e,o]=Fb(!1),n=$b(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,Ob)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(c,{signal:n.current.signal});return n.current=null,u}catch(u){if(l)return await a(c);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(na,"useFetch");function wg(){let{fetch:t,loading:e,cancelFetch:o}=na({request:async(n,r)=>await st().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(wg,"useFetchConfirmQuote");function ra(t){if(!t.swaps)throw new Error(ne().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Gl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ra,"throwErrorIfResponseIsNotValid");function Gl(t){if(Em(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Im(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=Wm(t);if(o){let n=ki(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Gl,"getQuoteError");function bg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=an({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let u=Mm(e,r,n.blockchains);return u.length===0||(c.balance={messages:u}),c}i(bg,"generateWarnings");function ia(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:t?.code==="ERR_BAD_REQUEST"?{swap:null,error:{type:0,diagnosisMessage:t.response.data.error},warnings:null}:{swap:null,error:{type:1,diagnosisMessage:t.message},warnings:null}}i(ia,"handleQuoteErrors");function Vl(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=O(),{slippage:l,customSlippage:u}=T(),p=T().getDisabledLiquiditySources(),d=T().blockchains(),h=T().tokens(),{findToken:g}=T(),f=u||l,{fetch:m,cancelFetch:y,loading:C}=wg();return zb(()=>y,[]),{loading:C,fetch:i(async k=>{let v=k.selectedWallets,x=k?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=v.reduce((E,b)=>(E[b.chain]=b.address,E),{}),A={requestId:a?.requestId||"",selectedWallets:I,destination:x||void 0};try{return await m(A,!0).then(E=>{let{result:b}=E;if(!b)throw new Error(E.error??"Error fetching updated quote");ra({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let w={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};r(w);let B={slippage:f.toString(),disabledSwappersGroups:p},M=bg({previousQuote:a??void 0,currentQuote:w,meta:{blockchains:d},selectedWallets:v,userSlippage:f,inputUsdValue:n,findToken:g});c();let $=!!M.balance,q=Ub(o.toString(),b,Pm(v),B,!$,{blockchains:d,tokens:h});return{quote:w,swap:q,error:null,warnings:M}})}catch(E){return ia(E)}},"fetch"),cancelFetch:y}}i(Vl,"useConfirmSwap");var Zb=Gb("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${xg}`]:{width:"$48",height:"$48"}}),Jb=Xl({flexGrow:1,paddingRight:"$10"}),Rb=Xl({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),ex=Xl({display:"flex",justifyContent:"space-between",alignItems:"center"});function Eg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=Yb(),[c,l]=cr(""),u=!n,[p,d]=cr(!1),[h,g]=cr(!1),{isActiveTab:f}=oe(),m=T().getDisabledLiquiditySources(),y=Xb(m),{manager:C}=qb(),{fetch:S,loading:k,cancelFetch:v}=Vl(),[x,I]=cr({swap:null,error:null,warnings:null}),[A,E]=cr(!1),b=i(async({selectedWallets:L,customDestination:te})=>{let le=await S?.({selectedWallets:L,customDestination:te});return I(le),le},"onConfirmSwap"),w=i(async()=>{if(x.swap&&n)try{await C?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let L=`../${F.swaps}/${x.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{g(!0),await w(),g(!1)},"onConfirm"),M=i(async()=>{x.warnings?.quote&&Sm(x.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),$=i(async()=>{I({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(L=>{I(L)}).catch(L=>console.error(L))},"onRefresh");aa(()=>{!!y.current.length&&!m.length&&$(),y.current=m},[m.length]),aa(()=>{u&&v()},[u]),aa(()=>{u&&d(u)},[u]),aa(()=>{u||S({selectedWallets:o,customDestination:r}).then(L=>I(L)).catch(L=>console.error(L))},[]),jb(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=x.warnings?.quote??null,ee=x.error,V=[];if(c&&V.push(Fe.createElement(Qb,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||ee){let L=`../${F.settings}`;V.push(Fe.createElement(or,{warning:q,error:ee,couldChangeSettings:!1,refetchQuote:$,skipAlerts:ee?.type===4||q?.type===2,showWarningModal:A,confirmationDisabled:!f,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await w()},onChangeSettings:()=>s(L)}))}return Fe.createElement(ie,{header:{title:Kl.t("Confirm Swap"),onWallet:()=>{let L=`../${F.wallets}`;s(L)}},footer:Fe.createElement(Zb,null,Fe.createElement("div",{className:Jb()},Fe.createElement(Hb,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||h,disabled:!!x.error||!f,onClick:M},Kl.t("Start Swap"))),Fe.createElement(xg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||h,disabled:!f,onClick:d.bind(null,!0)},Fe.createElement(Kb,{size:24})))},p&&Fe.createElement(pf,{open:p,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:b}),Fe.createElement(ae,null,Fe.createElement("div",{className:ex()},Fe.createElement(Vb,{variant:"title",size:"small"},Kl.t("You get")),Fe.createElement("div",{className:Rb()},Fe.createElement(Ni,{onClick:!k&&!p&&!A?$:void 0}))),Fe.createElement(jl,{size:"12"}),ad(V.map((L,te)=>({element:L,key:`alert-${te}`})),Fe.createElement(jl,{size:10})),V.length>0?Fe.createElement(jl,{size:10}):null,Fe.createElement(Mo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:x.error,loading:k,warning:x.warnings?.quote??null})))}i(Eg,"ConfirmSwapPage");import{i18n as Zt}from"@lingui/core";import{Button as sc,CustomTokensZeroStateDarkIcon as kx,CustomTokensZeroStateIcon as vx,DeleteIcon as wx,Divider as gr,IconButton as bx,MessageBox as xx,NotFound as Ex,styled as cc}from"@rango-dev/ui";import ge,{useState as lc}from"react";import{useNavigate as Ix}from"react-router-dom";import{CloseIcon as ox,IconButton as nx,SearchIcon as rx,TextField as ix}from"@rango-dev/ui";import pr from"react";import{styled as tx}from"@rango-dev/ui";var Ig=tx("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Et(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:u,id:p,...d}=t,h=s.length?pr.createElement(nx,{id:`${p}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},pr.createElement(ox,{color:"gray",size:10})):null;return u&&(h=u),pr.createElement(ix,{prefix:pr.createElement(Ig,null,pr.createElement(rx,{color:"black"})),id:p,suffix:h,fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d})}i(Et,"SearchInput");import{i18n as ac}from"@lingui/core";import{Button as cx,CustomTokenWarning as px,darkTheme as Og,Divider as Yt,ExternalLinkIcon as ux,Image as mx,ListItem as dx,NotFound as fx,PinIcon as gx,Skeleton as _o,Typography as dr,VirtualizedList as hx}from"@rango-dev/ui";import P,{useState as yx}from"react";import{useTranslation as Sx}from"react-i18next";import{Divider as $g,ListItem as lx,Skeleton as mr}from"@rango-dev/ui";import It from"react";import{css as kn,darkTheme as Yl,ImageContainer as ax,ListItemButton as sx,styled as nt,Typography as Ag}from"@rango-dev/ui";var Zl=kn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Jl=kn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Rl=kn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),ec=kn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Yl} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),tc=kn({}),oc=kn(),Ng=nt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),nc=nt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),sa=nt("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Jl}`]:{[`& .${ec}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${tc}`]:{bottom:"-15px"},[`& .${Zl}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Rl}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Bg=nt(sx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),rc=nt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),ic=nt(Ag,{}),Wg=nt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${oc}`]:{$$color:"$colors$neutral600",[`.${Yl} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ur=nt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),zG=nt("div",{display:"flex",alignItems:"center"}),Lg=nt("div",{position:"relative",[`& ${ax}`]:{borderRadius:"$xm",overflow:"hidden"}}),Pg=nt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Mg=nt(Ag,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),_g=nt("a",{"& svg:hover":{color:"$colors$info"}}),Dg=nt("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":{[`.${Yl} &`]:{color:"$foreground"}}}});function Fg(t){return It.createElement(sa,null,Array.from(Array(t.size),e=>It.createElement(lx,{key:e,hasDivider:!0,start:It.createElement(mr,{variant:"circular",width:35,height:35}),end:It.createElement(ur,null,It.createElement(mr,{variant:"text",size:"large",width:70}),It.createElement($g,{size:4}),It.createElement(mr,{variant:"text",size:"medium",width:50})),title:It.createElement("div",null,It.createElement(mr,{variant:"text",size:"large",width:90}),It.createElement($g,{size:4}),It.createElement(mr,{variant:"text",size:"medium",width:90}))})))}i(Fg,"LoadingTokenList");var Cx=20,Tx=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return P.createElement("div",{className:Jl()},o?P.createElement("div",{className:Zl()},o):P.createElement(nc,{className:Rl()},P.createElement(dr,{variant:"title",size:"xmedium"},r.symbol),P.createElement(Yt,{direction:"horizontal",size:4}),P.createElement(rc,{css:a},P.createElement(ic,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&P.createElement("div",{className:`${ec()} ${!o&&tc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",P.createElement(Yt,{size:4,direction:"horizontal"}),P.createElement(_g,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},P.createElement(ux,{size:12}))))},"renderDesc");function fr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,u=T().fetchStatus,p=T().blockchains(),{getBalanceFor:d,fetchingWallets:h}=T(),{isTokenPinned:g}=T(),{setFromToken:f,setToToken:m}=O(),{t:y}=Sx(),C=Ve(),[S,k]=yx(null),v=i(()=>{c==="source"?f({token:S,meta:{blockchains:p}}):m({token:S,meta:{blockchains:p}})},"updateToken"),x=i(()=>{v(),C()},"handleImportToken"),I=i(b=>{if(b.customToken){let{customToken:B,...M}=b;return P.createElement(cx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),k({...M,warning:!0})},"handleClick")},P.createElement(dr,{variant:"body",size:"xsmall",color:"background"},y("import")))}let w=Zr(d(b));return s?s(b):h?P.createElement(ur,null,P.createElement(_o,{variant:"text",size:"large",width:70}),P.createElement(Yt,{size:4}),P.createElement(_o,{variant:"text",size:"medium",width:50})):w&&P.createElement(Wg,null,P.createElement(Mg,{variant:"title",size:"small"},w.amount),P.createElement("div",null),w.usdValue&&P.createElement(dr,{variant:"body",className:oc(),size:"xsmall"},`$${w.usdValue}`))},"endRenderer"),A=i(()=>P.createElement(hx,{itemContent:b=>{let w=e[b];if(w==="skeleton")return P.createElement(dx,{hasDivider:!0,start:P.createElement(_o,{variant:"circular",width:35,height:35}),end:P.createElement(ur,null,P.createElement(_o,{variant:"text",size:"large",width:70}),P.createElement(Yt,{size:4}),P.createElement(_o,{variant:"text",size:"medium",width:50})),title:P.createElement("div",null,P.createElement(_o,{variant:"text",size:"large",width:90}),P.createElement(Yt,{size:4}),P.createElement(_o,{variant:"text",size:"medium",width:90}))});let B=w.address||"",M=p.find(L=>L.name===w.blockchain);if(!M)return null;let $=Ys(M.color,"main"),q={$$color:$.main150,[`.${Og} &`]:{$$color:$.main750},backgroundColor:"$$color"},ee={$$color:$.main750,[`.${Og} &`]:{$$color:$.main150},color:"$$color"},V=i(()=>{typeof w!="string"&&!w.customToken&&n?.(w)},"handleClick");return P.createElement(Dg,null,P.createElement(Bg,{"tab-index":b,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:w.customToken,onClick:V,start:P.createElement(Lg,null,P.createElement(mx,{src:w.image===""?zr:w.image,size:30}),t.type!=="custom-token"&&g(w,t.type)&&P.createElement(Pg,null,P.createElement(gx,{size:12,color:"gray"}))),title:M?.type==="COSMOS"||w.name||!w.name&&!B?P.createElement(nc,null,P.createElement(dr,{variant:"title",size:"xmedium"},w.symbol),P.createElement(Yt,{direction:"horizontal",size:4}),P.createElement(rc,{css:q},P.createElement(ic,{variant:"body",size:"xsmall",css:ee},w.blockchain)),l&&w.warning&&P.createElement(P.Fragment,null,P.createElement(Yt,{direction:"horizontal",size:4}),P.createElement(px,{container:N()}))):void 0,description:typeof w!="string"&&M?.info&&B&&M.type!=="COSMOS"?Tx({address:B,token:w,customCssForTag:q,customCssForTagTitle:ee,name:w.name,url:M.info.addressUrl.split("{wallet}").join(B)}):w.name||void 0,end:I(w)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=S?Co(S?.blockchain,p):null;return P.createElement(P.Fragment,null,a&&P.createElement(P.Fragment,null,P.createElement(dr,{variant:"label",size:"large"},ac.t("Select Token")),P.createElement(Yt,{size:4})),P.createElement(Ng,null,P.createElement(Yt,{size:4}),u==="loading"&&P.createElement(Fg,{size:Cx}),u==="success"&&(e.length?P.createElement(P.Fragment,null,P.createElement(Kn,{token:S,address:S?.address??"",blockchain:E??void 0,onImport:x,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),P.createElement(sa,{as:"ul"},A())):!!o&&P.createElement(fx,{title:ac.t("No results found"),description:ac.t("Try using different keywords")}))))}i(fr,"TokenList");var Ax=cc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Nx=cc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Bx=cc(bx,{"&:hover":{"& svg":{color:"$secondary550"}}});function Ug(){let[t,e]=lc(""),{deleteCustomToken:o}=T(),n=T().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=O(),{mode:l}=io({}),u=Ix(),[p,d]=lc(!1),[h,g]=lc(),f=i(S=>{let k=S.target.value;e(k)},"handleSearch"),m=l==="dark",y=n.filter(S=>it(S.symbol,t)||it(S.address||"",t)||it(S.name||"",t)),C=i(()=>{if(h){let S=a?gt(a):null,k=r?gt(r):null,v=gt(h);S===v?c({token:null}):k===v&&s({token:null}),o(h)}d(!1)},"handleDeleteCustomToken");return ge.createElement(ie,{header:{title:Zt.t("Custom Tokens")}},ge.createElement(ae,null,ge.createElement(Ax,null,n.length?ge.createElement(ge.Fragment,null,ge.createElement(Et,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Zt.t("Search Token"),onChange:f}),ge.createElement(gr,{size:16}),ge.createElement(fr,{list:y,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:S=>ge.createElement(Bx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),g(S)}},ge.createElement(wx,{size:12,color:"gray"}))})):ge.createElement(Nx,null,ge.createElement(Ex,{icon:m?ge.createElement(kx,{size:200}):ge.createElement(vx,{size:200}),title:Zt.t("No custom tokens"),description:Zt.t("press the button to add your custom token")})),ge.createElement(gr,{size:20}),ge.createElement(sc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>u(F.addCustomTokens)},Zt.t("Add Custom Token"))),ge.createElement(R,{open:p,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:N()},ge.createElement(xx,{title:Zt.t("Delete Custom Token"),type:"error",description:Zt.t("Are you sure you want to Delete this Token?")},ge.createElement(gr,{size:40}),ge.createElement(gr,{size:10}),ge.createElement(sc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},Zt.t("Yes, Delete it")),ge.createElement(gr,{size:12}),ge.createElement(sc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},Zt.t("No, Continue"))))))}i(Ug,"CustomTokensPage");import{i18n as Ze}from"@lingui/core";import{useManager as Yx}from"@rango-dev/queue-manager-react";import{Button as hc,darkTheme as Zx,Divider as $o,MessageBox as Jx,NotFound as Rx,styled as yc,Typography as pa}from"@rango-dev/ui";import{TransactionStatus as Sr}from"rango-types";import se,{useMemo as ih,useState as ua}from"react";import{useNavigate as eE}from"react-router-dom";import{FilterIcon as $x,Popover as Fx}from"@rango-dev/ui";import Do from"react";import{css as Wx,darkTheme as la,IconButton as Lx,styled as hr}from"@rango-dev/ui";var pc=hr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${la} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),zg=hr(Lx,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${la} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${la} &`]:{backgroundColor:"$neutral"},[`& ${pc}::before`]:{backgroundColor:"$secondary100",[`.${la} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),qg=hr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Qg=hr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),Hg=Wx({display:"flex",justifyContent:"space-between",alignItems:"center"}),Gg=hr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as Vg}from"@lingui/core";import{Button as Px,Divider as Kg,ListItemButton as Mx,Radio as _x,RadioRoot as Dx,Typography as jg}from"@rango-dev/ui";import ut from"react";function Xg(t){let{filterBy:e,onClickItem:o}=t;return ut.createElement(Qg,null,ut.createElement("div",{className:Hg()},ut.createElement(jg,{size:"small",variant:"body"},Vg.t("Status")),ut.createElement(Px,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},Vg.t("Reset"))),ut.createElement(Kg,{size:10}),ut.createElement(Dx,{value:e},ut.createElement(Gg,null,t.list.map((n,r)=>ut.createElement(Mx,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:ut.createElement(ut.Fragment,null,ut.createElement(Kg,{direction:"horizontal",size:4}),ut.createElement(jg,{size:"medium",variant:"body"},n.title)),start:ut.createElement(_x,{value:n.id}),onClick:o})))))}i(Xg,"FilterSelectorContent");function uc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Do.createElement("div",null,Do.createElement(Fx,{open:a,align:"end",onOpenChange:o,container:N(),content:Do.createElement(Xg,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Do.createElement(zg,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Do.createElement(pc,{isSelect:!!n},Do.createElement($x,{size:16,color:"black"}),!!n&&Do.createElement(qg,null)))))}i(uc,"FilterSelector");import{i18n as zx}from"@lingui/core";import{getCurrentStep as qx}from"@rango-dev/queue-manager-rango-preset";import{Divider as eh,GroupedVirtualizedList as Qx,Skeleton as Hx,SwapListItem as th,Typography as Gx}from"@rango-dev/ui";import Ye,{useCallback as oh,useEffect as Vx,useRef as Kx,useState as jx}from"react";function Yg(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(Yg,"calculateGroupsSoFar");import{css as Ox,darkTheme as Ux,styled as yr}from"@rango-dev/ui";var mc=Ox(),Zg=yr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),dc=yr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${mc}`]:{$$color:"$colors$neutral600",[`.${Ux} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),fc=yr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Jg=yr("div",{gap:"$10",display:"flex",flexDirection:"column"}),Rg=yr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var Xx=10;function gc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=jx([]),c=Kx(0),{swaps:l,groupCounts:u,groups:p}=n(e),d=oh(Yg,[]),h=oh(()=>{let g=e.length-c.current;g&&(c.current+=Math.min(g,Xx),s(d(u,c.current)))},[e.length]);if(Vx(()=>{r||h()},[r,h]),r){let g=[1,2];return Ye.createElement(Ye.Fragment,null,[g,g].map((m,y)=>Ye.createElement(dc,{key:y},Ye.createElement(fc,null,Ye.createElement(Hx,{variant:"text",width:60,size:"small"}),Ye.createElement(eh,{size:16})),Ye.createElement(eh,{size:4}),Ye.createElement(Jg,null,m.map((S,k)=>Ye.createElement(th,{isLoading:!0,key:k}))))))}return Ye.createElement(Qx,{endReached:()=>{c.current<e.length&&h()},groupCounts:a,groupContent:g=>Ye.createElement(dc,null,Ye.createElement(fc,null,Ye.createElement(Gx,{variant:"label",size:"medium",className:mc()},p[g]))),itemContent:(g,f)=>{let m=l[g];if(!m)return null;let y=qx(m),C=m.steps[0],S=m.steps[m.steps.length-1];return Ye.createElement(Zg,{key:m.requestId},Ye.createElement(th,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:y,tooltipContainer:N(),onlyShowTime:p[f]===zx.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.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(gc,"HistoryGroupedList");import{i18n as ca}from"@lingui/core";import nh from"dayjs";var rh=i(t=>{let e=new Map([["today",{title:ca.t("Today"),swaps:[]}],["week",{title:ca.t("This week"),swaps:[]}],["month",{title:ca.t("This month"),swaps:[]}],["year",{title:ca.t("This year"),swaps:[]}]]);function o(l,u){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(u)}i(o,"addYearsToOutput");let n=nh();t.forEach(l=>{let u=Number(l.creationTime),p=nh(u);if(n.isSame(p,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(p,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(p,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(p,"year"))e.get("year")?.swaps.push(l);else{let d=new Date(u).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 tE=yc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),oE=yc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),nE=yc("div",{"._typography":{color:"$neutral700",[`.${Zx}&`]:{color:"$neutral900"}}}),rE=[{id:Sr.SUCCESS,title:Ze.t("Complete")},{id:Sr.RUNNING,title:Ze.t("Running")},{id:Sr.FAILED,title:Ze.t("Failed")}],iE=i((t,e)=>t?.length?t.filter(o=>Bt(o.fromBlockchain,e)||Bt(o.toBlockchain,e)||Bt(o.toSymbol,e)||Bt(o.fromSymbol,e)).length:!1,"isStepContainsText");function ah(){let t=eE(),{manager:e,state:o}=Yx(),n=St(e).map(({swap:k})=>k),[r,a]=ua(""),[s,c]=ua(!1),l=!o.loadedFromPersistor,[u,p]=ua(""),[d,h]=ua(!1),g=i(k=>{let v=k.target.value;a(v)},"handleSearch"),f=ih(()=>!r&&!u?n:n.filter(k=>{let{inputAmount:v,status:x,steps:I,requestId:A}=k;return(!r||Bt(v,r)||Bt(x,r)||iE(I,r)||Bt(A,r))&&(!u||u===x)}),[n,r,u]),m=!f?.length&&!l,y=i(()=>h(!1),"onCloseModal"),C=i(async()=>{try{await e?.clearQueue(),h(!1)}catch(k){console.log(k)}},"onClear"),S=ih(()=>!n.some(k=>k.status===Sr.SUCCESS||k.status===Sr.FAILED),[n]);return se.createElement(ie,{header:{title:Ze.t("History"),suffix:se.createElement(ao,null,se.createElement(hc,{id:"widget-history-clear-btn",disabled:S,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},se.createElement(pa,{size:"medium",variant:"label",color:"error"},Ze.t("Clear"))))}},se.createElement(ae,null,se.createElement(oE,null,se.createElement(Et,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Ze.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:g,style:{height:36},value:r}),se.createElement($o,{size:10,direction:"horizontal"}),se.createElement(uc,{filterBy:u,open:s,onOpenChange:k=>c(k),onClickItem:k=>p(k),list:rE})),se.createElement($o,{size:"16"}),se.createElement(tE,null,m&&se.createElement(Rg,null,se.createElement($o,{size:32}),se.createElement(Rx,{title:r?Ze.t("No results found"):Ze.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Ze.t("Try using different keywords"):Ze.t("Your transaction history is stored locally and will appear here after you start a swap")})),!m&&se.createElement(gc,{list:f,onSwapClick:t,groupBy:rh,isLoading:l}))),se.createElement(R,{open:d,onClose:y,id:"widget-history-clear-modal",container:N()},se.createElement($o,{size:20}),se.createElement(Jx,{type:"warning",title:Ze.t("Clear Transaction History"),description:se.createElement(nE,null,se.createElement(pa,{variant:"body",size:"medium"},Ze.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),se.createElement($o,{size:"24"}),se.createElement(pa,{variant:"body",size:"small"},Ze.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),se.createElement($o,{size:30}),se.createElement(hc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},Ze.t("Yes, Clear the history")),se.createElement($o,{size:10}),se.createElement(hc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:y},se.createElement(pa,{variant:"title",size:"medium",color:"primary"},Ze.t("No, Cancel")))))}i(ah,"HistoryPage");import{i18n as UE}from"@lingui/core";import{Button as zE,Divider as Wc,styled as qE,WarningIcon as QE}from"@rango-dev/ui";import HE from"bignumber.js";import Se,{useEffect as Dh,useState as $h}from"react";import{useNavigate as GE}from"react-router-dom";import{i18n as lh}from"@lingui/core";import{Alert as sE,Divider as Sc,NoRouteIcon as lE,Typography as cE}from"@rango-dev/ui";import Fo from"react";import{styled as aE}from"@rango-dev/ui";var sh=aE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Cc(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Ot(t,e)?Fo.createElement(sh,null,Fo.createElement(Sc,{size:10}),Fo.createElement(lE,{size:24,color:"gray"}),Fo.createElement(Sc,{size:4}),Fo.createElement(cE,{variant:"title",size:"small"},lh.t("No Routes Found")),Fo.createElement(Sc,{size:4}),Fo.createElement(sE,{title:lh.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Cc,"SameTokensWarning");import{Alert as pE,Button as uE}from"@rango-dev/ui";import ph from"react";import{i18n as ma}from"@lingui/core";function ch(t){let e=null;return t===ti?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ma.t("Reset"),title:ma.t("Slippage cannot be set lower than 0.01%.")},e):t>Ko?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ma.t("Change"),title:ma.t("Caution, your slippage is high!")},e):null}i(ch,"makeAlerts");function uh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=T(),{onChangeSettings:a}=t,c=ch(o!==null?o:e),l=i(u=>{u==="reset-slippage"?(n(ei),r(null)):u==="change-settings"&&a()},"onClickActionButton");return c?ph.createElement(pE,{title:c.title,type:c.alertType,variant:"alarm",action:ph.createElement(uE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(uh,"SlippageWarningsAndErrors");import{i18n as hE}from"@lingui/core";import{IconButton as yE,ReverseIcon as SE,Skeleton as CE,Tooltip as TE,Typography as Cr}from"@rango-dev/ui";import mt from"react";import da from"bignumber.js";function dh(t){let{error:e,isDarkTheme:o,warning:n}=t,{quoteError:r,slippageError:a}=e,{quoteWarning:s,slippageWarning:c}=n,l=!!a||r?.type===4,u=!!c||s?.type===2;return l?"$error500":u?"$warning500":o?"$neutral600":"$neutral700"}i(dh,"getSlippageColor");function fh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new da(e),r=new da(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(fh,"getUsdExchangeRate");function gh(t,e){let o=new da(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,da.ROUND_DOWN).toFormat(2)}`}i(gh,"formatTokenValueInUsd");import{darkTheme as fE,styled as kc,Typography as gE}from"@rango-dev/ui";var hh=kc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),yh=kc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${fE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),vc=kc(gE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function wc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=T(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:u,loading:p}=t,d=o!==null?o:e,{mode:h}=io({}),g=Yo(d),f=h==="dark",m=n==="default",y={quoteError:a,slippageError:g?.type==="error"?g.message:null},C={quoteWarning:s,slippageWarning:g?.type==="warning"?g.message:null},S=u?.swaps[0].from||c,k=u?.swaps[u?.swaps.length-1].to||l,v=m?S:k,x=m?k:S,I=Number(m?u?.outputAmount:u?.requestAmount),A=Number(m?u?.requestAmount:u?.outputAmount),E=I||v.usdPrice,b=A||x.usdPrice,{rawValue:w,displayValue:B}=fh({toTokenUsdPrice:b,fromTokenUsdPrice:E});return mt.createElement(hh,null,mt.createElement(Cr,{variant:y||C?"label":"body",size:y||C?"medium":"small",color:dh({error:y,warning:C,isDarkTheme:f})},hE.t("Slippage:")," ",d,"%"),p?mt.createElement(CE,{height:16,width:104,variant:"rounded"}):E&&b&&mt.createElement(yh,null,mt.createElement(Cr,{className:"rate-text",variant:"body",size:"small"},"1"),mt.createElement(vc,{className:"rate-text",variant:"body",size:"small"},x.symbol),mt.createElement(yE,{id:"widget-home-page-change-rate-button",onClick:r},mt.createElement(SE,{size:14,color:"secondary"})),mt.createElement(TE,{container:N(),side:"top",sideOffset:4,content:mt.createElement(Cr,{className:"rate-text",variant:"body",size:"small"},w)},mt.createElement(Cr,{className:"rate-text",variant:"body",size:"small"},B)),mt.createElement(vc,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&mt.createElement(Cr,{color:"neutral600",variant:"body",size:"small"},"~",gh(Number(w),v.usdPrice))))}i(wc,"SwapMetrics");import{i18n as EE}from"@lingui/core";import{Header as IE}from"@rango-dev/ui";import mo,{useEffect as AE,useState as NE}from"react";import{i18n as vE}from"@lingui/core";import{Divider as xc,FullExpandedQuote as wE,Typography as bE}from"@rango-dev/ui";import be from"react";import{styled as bc}from"@rango-dev/ui";var Sh=bc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Ch=bc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Th=bc("div",{width:"146px"});import{i18n as Tr}from"@lingui/core";import{Select as kE}from"@rango-dev/ui";import kh from"react";function fa(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:Tr.t("Smart Routing")},{value:"FEE",label:Tr.t("Lowest Fee")},{value:"SPEED",label:Tr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Tr.t("Maximum Return")},{value:"PRICE",label:Tr.t("Maximum Output")}];return kh.createElement(Th,null,kh.createElement(kE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(fa,"SelectStrategy");var vh=3;function kr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:u,updateQuotePartialState:p,fromToken:d,toToken:h,sortStrategy:g,error:f}=O(),{slippage:m,customSlippage:y}=T(),{findToken:C}=T(),S=c||N(),k=!!u&&u.results.length,v=y??m,x=i(E=>{if(!d||!h||!u)return null;let b={requestAmount:u.requestAmount,validationStatus:null,...E};return an({currentQuote:b,userSlippage:v,findToken:C})},"getQuoteWarning"),I=f?.type===0||f?.type===1,A=u?.results?Ci(g,u?.results):[];return be.createElement(be.Fragment,null,a&&be.createElement(be.Fragment,null,be.createElement(Ch,null,be.createElement(bE,{size:"xmedium",variant:"title"},vE.t("Sort by")),be.createElement(fa,{container:S})),be.createElement(xc,{size:"10"})),e&&Array.from({length:vh},(E,b)=>be.createElement(be.Fragment,{key:b},s?be.createElement(wE,{loading:!0}):be.createElement(lr,{tagHidden:!1,type:"list-item",expanded:!1}),b!==vh-1&&be.createElement(xc,{size:16}))),!e&&be.createElement(be.Fragment,null,k?A.map((E,b)=>{let w=x(E),B=Gl(E.swaps),M=A.length-1===b;return be.createElement(be.Fragment,{key:E.requestId},be.createElement(Mo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:S,selected:l?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:u.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:w,fullExpandedMode:s,onClick:$=>{B||p("warning",w),p("error",B?.options||null),o($)},type:"list-item"}),!M&&be.createElement(xc,{size:16}))}):I&&be.createElement(Sh,null,be.createElement(Rn,{size:s?"large":"small",error:f,fetch:n}))))}i(kr,"Quotes");import{darkTheme as xE,styled as wh}from"@rango-dev/ui";var bh=wh("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}}),xh=wh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var BE=100;function Ec(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=NE(!1),l=s?"":"is-hidden",{config:u}=T(),p=u?.variant==="full-expanded",d=ko();return AE(()=>{let h=null;return a?h=setTimeout(()=>{c(!0)},BE):(c(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),mo.createElement(bh,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${l} ${Pi()} widget-expanded-quotes-container`,id:Re.EXPANDED_BOX_ID},mo.createElement(IE,{title:EE.t("Routes"),suffix:mo.createElement(mo.Fragment,null,mo.createElement(fa,{container:d}),mo.createElement(Wo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),mo.createElement(xh,null,mo.createElement(kr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:ko(),onClickOnQuote:n,fullExpandedMode:p})))}i(Ec,"ExpandedQuotes");import{i18n as Lh}from"@lingui/core";import{SwapInput as Ph}from"@rango-dev/ui";import ME from"bignumber.js";import vr from"react";import{ReverseIcon as PE}from"@rango-dev/ui";import Ac from"react";import{keyframes as WE,styled as Eh}from"@rango-dev/ui";var Ic=450,LE=WE({"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)"}}),Ih=Eh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Ah=Eh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${LE} ${Ic}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 Nc(){let t=O.use.switchFromAndTo();return Ac.createElement(Ih,null,Ac.createElement(Ah,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Ic),t()}},Ac.createElement(PE,{size:12})))}i(Nc,"SwitchFromAndToButton");import{styled as Nh}from"@rango-dev/ui";var Bh=Nh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Wh=Nh("div",{position:"relative"});function Bc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:u,sanitizeInputAmount:p,inputAmount:d,inputUsdValue:h,outputAmount:g,outputUsdValue:f,selectedQuote:m}=O(),{connectedWallets:y,getBalanceFor:C}=T(),S=a?C(a):null,k=Zr(S)?.amount??"0",v=S?new ME(S.amount).shiftedBy(-S.decimals):ce,x=!!s&&su(y,s.name),I=!Ls(m,d,h),A=!Ls(m,d,f),E=!h||!f||!f.gt(0)?null:Qt(h.toString(),f.toString());return vr.createElement(Bh,null,vr.createElement(Wh,null,vr.createElement(Ph,{label:Lh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:u,onInputBlur:p,balance:k,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:I?void 0:_(h,4,4),realUsdValue:I?void 0:h?.toString(),error:I?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:N(),onSelectMaxBalance:()=>{let b=_(v,S?.decimals),w=S?.amount?b.split(",").join(""):"";u(w)},anyWalletConnected:y.length>0}),vr.createElement(Nc,null)),vr.createElement(Ph,{sharpBottomStyle:!r&&(!!m||e),label:Lh.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:_(Qt(h,f),2,2),warningLevel:Ht(E??0),price:{value:_(g,6,6),usdValue:A?void 0:_(f,4,4),realValue:g?.toString(),realUsdValue:A?void 0:f?.toString(),error:A?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(Bc,"Inputs");import{useCallback as _E,useEffect as DE,useRef as $E,useState as FE}from"react";function Mh(){let{fetch:t,loading:e,cancelFetch:o}=na({request:async(n,r)=>await st().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Mh,"useFetchAllQuotes");var OE=600;function ga({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Mh(),{excludeLiquiditySources:n,routing:r}=T().config,{connectedWallets:a}=T(),c=a.some(j=>j.isContractWallet),{fromToken:l,toToken:u,inputAmount:p,inputUsdValue:d,selectedQuote:h,sortStrategy:g,resetQuote:f,error:m,warning:y,setSelectedQuote:C,updateQuotePartialState:S}=O(),{slippage:k,customSlippage:v,affiliatePercent:x,affiliateRef:I,affiliateWallets:A,fetchStatus:E}=T(),b=T().getLiquiditySources(),w=T().getDisabledLiquiditySources(),B=T().excludeLiquiditySources(),{findToken:M}=T(),[$,q]=FE(!0),ee=$E(p),V=v??k,te=!l||!u||Ot(l,u)||!Nn(p),le=i(j=>{q(j)},"resetState"),J=i(j=>{let{fromToken:ue,toToken:me,inputAmount:ke,liquiditySources:H,excludeLiquiditySources:W,disabledLiquiditySources:Q,slippage:K,affiliateRef:Y,affiliatePercent:ye,affiliateWallets:qe}=j;if($||le(!0),!te&&ue&&me){f();let Qe=Lm({fromToken:ue,toToken:me,inputAmount:ke,liquiditySources:H,excludeLiquiditySources:W,disabledLiquiditySources:Q,wallets:a,slippage:K,affiliateRef:Y,affiliatePercent:ye,affiliateWallets:qe,contractCall:c});Xo("experimental",r)&&(Qe.experimental=!0),Xo("avoidNativeFee",r)&&(Qe.avoidNativeFee=!0),Xo("enableCentralizedSwappers",r)&&(Qe.enableCentralizedSwappers=!0),r?.maxLength&&(Qe.maxLength=r.maxLength),e(Qe).then(Tt=>{let Ae=Ci(g,Tt.results),je=Tm(h,Ae,Tt.requestAmount);q(!1),S("quotes",Tt),C(je),ra({diagnosisMessages:Tt.diagnosisMessages,requestId:je?.requestId||"",swaps:je?.swaps});let Dr=je&&an({currentQuote:je,userSlippage:V,findToken:M});S("warning",Dr)}).catch(Tt=>{let{error:Ae}=ia(Tt);(Ae?.type===0||Ae?.type===1)&&f(),Ae?.type!==2&&(S("error",Ae),q(!1))})}},"fetch"),X=_E(Hr(j=>{J(j)},OE),[te]);return DE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(te){q(!1),(h||m||y)&&f();return}if(!Nn(p)&&d?.eq(0)){le(!1),o();return}f(),le(!0);let j=J;return ee.current&&ee.current!=p&&(j=X),ee.current=p,j({inputAmount:p,fromToken:l,toToken:u,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:V,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),o},[E,p,l?.symbol,l?.address,l?.blockchain,u?.symbol,u?.address,u?.blockchain,te,b?.length,n,w.length,V,I,x,c,JSON.stringify(A)]),{fetch:()=>J({inputAmount:p,fromToken:l,toToken:u,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:V,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),loading:$}}i(ga,"useSwapInput");function _h(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};ve.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(_h,"emitPreventableEvent");var VE=qE("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),KE=300;function Fh(){let t=GE(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:u,resetQuoteWallets:p,setQuoteWarningsConfirmed:d,updateQuotePartialState:h}=O(),[g,f]=$h(!1),{isLargeScreen:m,isExtraLargeScreen:y}=pn(),{fetch:C,loading:S}=ga({refetchQuote:a}),{config:k,fetchStatus:v,connectedWallets:x,customSlippage:I,slippage:A,setSlippage:E,setCustomSlippage:b}=T(),{isActiveTab:w}=oe(),[B,M]=$h(!1),q=Yo(I!==null?I:A),V=Am({fetchMetaStatus:v,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),L=fu(m,y,k?.variant),te=!!n&&!!e&&!!o&&new HE(n).gt(0)&&!Om(e,o),le=te&&v==="success"&&S,J=q?.quoteValidation||c,ue=(!L||L&&l?.results.length)&&(J||s),me=!!e&&!!o,ke=me&&!!q,H=(r||s)&&!B?C:void 0,W=i(Y=>{L&&g?(f(!1),setTimeout(()=>{t(Y)},KE)):t(Y)},"onHandleNavigation"),Q=i(Y=>{r?.requestId!==Y.requestId&&(M(!1),u(Y))},"onClickOnQuote"),K=i(Y=>{if(Y){if(Rr.includes(Y)){E(Y),b(null);return}b(Y)}},"onChangeSlippage");return Dh(()=>{p(),h("refetchQuote",!0)},[]),Dh(()=>{f(te)},[te]),Se.createElement(VE,null,Se.createElement(ie,{height:"auto",footer:Se.createElement(zE,{id:`widget-swap-${V.action}-btn`,type:"primary",size:"large",disabled:V.disabled||!w,prefix:V.action==="confirm-warning"&&Se.createElement(QE,null),fullWidth:!0,onClick:()=>{V.action==="connect-wallet"?_h({type:"clickConnectWallet"},()=>W(F.wallets)):V.action==="confirm-warning"?M(!0):W(F.confirmSwap)}},V.title),header:{onWallet:()=>{W(F.wallets)},hasBackButton:!1,title:k.title||UE.t("Swap"),suffix:Se.createElement(Wo,{hidden:L?["refresh"]:void 0,onClickRefresh:H,onClickHistory:()=>W(F.swaps),onClickSettings:()=>{W(F.settings)}})}},Se.createElement(ae,null,Se.createElement(Bc,{fetchingQuote:le,fetchMetaStatus:v,isExpandable:L,onClickToken:Y=>{W(Y==="from"?F.fromSwap:F.toSwap)}}),Se.createElement(Wc,{size:"2"}),L?null:Se.createElement(Mo,{quote:r,loading:le,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:J,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{h("refetchQuote",!1),W(F.routes)}:void 0}),me&&Se.createElement(Se.Fragment,null,Se.createElement(Wc,{size:8}),Se.createElement(wc,{quoteError:s,quoteWarning:J,fromToken:e,toToken:o,quote:r,loading:le})),ue?Se.createElement(Se.Fragment,null,Se.createElement(or,{warning:J,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:C,showWarningModal:B,confirmationDisabled:!w,onOpenWarningModal:()=>M(!0),onCloseWarningModal:()=>M(!1),onChangeSlippage:K,onConfirmWarningModal:()=>{M(!1),d(!0),W(F.confirmSwap)},onChangeSettings:()=>W(F.settings)})):null,ke&&Se.createElement(Se.Fragment,null,Se.createElement(Wc,{size:"10"}),Se.createElement(uh,{onChangeSettings:()=>W(F.settings)})),Se.createElement(Cc,null))),L?Se.createElement(Ec,{loading:le,onClickOnQuote:Q,fetch:C,onClickRefresh:H,isVisible:g}):null)}i(Fh,"Home");import{i18n as Oh}from"@lingui/core";import{Alert as jE,Divider as XE,List as YE,ListItemButton as ZE,Radio as JE,RadioRoot as RE,Typography as eI}from"@rango-dev/ui";import Dt from"react";function fo(){let{setLanguage:t,language:e,config:o}=T(),n=ku,r=o?.language||Zo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Zo),resetLanguage:()=>t(null)}}i(fo,"useLanguage");function Uh(){let{activeLanguage:t,changeLanguage:e,languages:o}=fo(),n=Ve(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Dt.createElement(eI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Dt.createElement(JE,{value:s}),start:Dt.createElement(l,null)}});return Dt.createElement(ie,{header:{title:Oh.t("Language")}},Dt.createElement(ae,null,Dt.createElement(jE,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Dt.createElement(XE,{size:"8"}),Dt.createElement(RE,{value:t},Dt.createElement(YE,{type:Dt.createElement(ZE,{title:Oh.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(Uh,"LanguagePage");import{i18n as Jt}from"@lingui/core";import{Button as iI,Checkbox as aI,Image as sI,ListItemButton as lI,NotFound as cI,Typography as pI}from"@rango-dev/ui";import Je,{useState as uI}from"react";import{Checkbox as nI,Skeleton as qh}from"@rango-dev/ui";import br from"react";import{styled as Lc}from"@rango-dev/ui";var wr=Lc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Pc=Lc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Mc=Lc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as tI,styled as oI}from"@rango-dev/ui";var zh=oI(tI,{height:61});var rI=30;function _c(){return br.createElement(wr,null,Array.from(Array(rI),(t,e)=>br.createElement(zh,{hasDivider:!0,key:e,start:br.createElement(qh,{variant:"circular",width:35,height:35}),title:br.createElement(qh,{variant:"text",size:"large",width:90}),end:br.createElement(nI,{checked:!1})})))}i(_c,"LoadingLiquiditySourceList");function Dc({sourceType:t}){let e=T().fetchStatus,o=T().swappers(),n=T().getDisabledLiquiditySources(),[r,a]=uI(""),s=T().toggleLiquiditySource,c=T().isInCampaignMode(),l=oi(o,n),u={Exchanges:Jt.t("Exchanges"),Bridges:Jt.t("Bridges")},p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&p.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(C=>p.includes(C.type)),h=d.length===d.filter(C=>C.selected).length,g=i(()=>{d.forEach(C=>{h?s(C.groupTitle):C.selected||s(C.groupTitle)})},"toggleAllSources"),f=d.map(C=>{let{selected:S,groupTitle:k,logo:v,id:x,...I}=C;return{id:`widget-setting-liquidity-source-${Xp(x.toLowerCase())}-item-btn`,start:Je.createElement(sI,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:Je.createElement(aI,{checked:S,disabled:c}),title:Je.createElement(pI,{variant:"title",size:"xmedium"},Jt.t(k)),selected:S,groupTitle:k,logo:v,...I}}),m=i(C=>{let S=C.target.value;a(S)},"handleSearch"),y=f;return r&&(y=f.filter(C=>Bt(C.groupTitle,r))),Je.createElement(ie,{header:{title:Jt.t(t),suffix:Je.createElement(Pc,null,Je.createElement(iI,{id:`widget-liquidity-source-${h?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:g},h?Jt.t("Deselect all"):Jt.t("Select all")))}},Je.createElement(ae,{view:!0},Je.createElement(Et,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:Jt.t("Search {sourceType}",{sourceType:u[t]}),onChange:m}),e==="loading"&&Je.createElement(_c,null),!y.length&&r?Je.createElement(Mc,null,Je.createElement(cI,{title:Jt.t("No results found"),description:Jt.t("Try using different keywords")})):e==="success"&&Je.createElement(wr,{disabled:c,className:"widget-liquidity-source-list"},y.map(C=>{let{groupTitle:S,...k}=C;return Je.createElement(Je.Fragment,{key:C.id},Je.createElement(lI,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Dc,"LiquiditySourcePage");import{i18n as mI}from"@lingui/core";import ha from"react";import{useNavigate as dI}from"react-router-dom";function Qh(){let t=dI(),e=Ve(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:c,loading:l}=ga({refetchQuote:n}),u=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),p=`../${F.settings}`,d=`../${F.wallets}`;return ha.createElement(ie,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:mI.t("Routes"),suffix:ha.createElement(Wo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(p),a("refetchQuote",!0)}})}},ha.createElement(ae,null,ha.createElement(kr,{fetch:c,loading:l,onClickOnQuote:u})))}i(Qh,"RoutesPage");import{i18n as Yh}from"@lingui/core";import{Divider as Zh,getCategoriesCount as wI,SelectableCategoryList as bI}from"@rango-dev/ui";import Rt,{useState as Jh}from"react";import{useNavigate as xI}from"react-router-dom";import{i18n as $c}from"@lingui/core";import{Divider as yI,Image as SI,ListItemButton as CI,NotFound as TI,Typography as Xh}from"@rango-dev/ui";import dt,{useEffect as kI,useState as vI}from"react";var Hh=i((t,e,o)=>t.filter(n=>Gr(n.type,o)).filter(n=>it(n.name,e)||it(n.displayName,e)),"filterBlockchains");import{ImageContainer as fI,styled as Gh}from"@rango-dev/ui";var Vh=Gh("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),ya=Gh(fl,{padding:0,margin:0,listStyle:"none",[`& ${fI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as gI,Skeleton as Kh}from"@rango-dev/ui";import Sa from"react";var hI=20;function jh(){return Sa.createElement(ya,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(hI),t=>Sa.createElement(gI,{key:t,hasDivider:!0,start:Sa.createElement(Kh,{variant:"circular",width:35,height:35}),title:Sa.createElement(Kh,{variant:"text",size:"large",width:90})})))}i(jh,"LoadingBlockchainList");function Fc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=vI(e),{fetchStatus:l}=T();kI(()=>{c([...Hh(e,o,r)])},[e,o,r]);let u=i(()=>!s.length&&o?dt.createElement(TI,{title:$c.t("No results found"),description:$c.t("Try using different keywords")}):dt.createElement(ya,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(p=>dt.createElement(CI,{key:`${p.name}-${p.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(p),start:dt.createElement(SI,{src:p.logo,size:30}),title:dt.createElement(Xh,{variant:"title",size:"medium"},p.displayName),id:p.name}))),"renderList");return dt.createElement(dt.Fragment,null,a&&dt.createElement(dt.Fragment,null,dt.createElement(Xh,{variant:"label",size:"large"},$c.t("Select Chain")),dt.createElement(yI,{size:4})),dt.createElement(Vh,null,l==="loading"&&dt.createElement(jh,null),l==="success"&&u()))}i(Fc,"BlockchainList");function Ca(t){let{type:e}=t,o=Ve(),[n,r]=Jh(""),[a,s]=Jh("ALL"),c=O.use.setToBlockchain(),l=O.use.setFromBlockchain(),{fetchStatus:u}=T(),p=xI(),d=T().blockchains({type:e}),h=wI(d),g=!t.hideCategory&&h!==1;return Rt.createElement(ie,{header:{title:Yh.t("Select Chain")}},Rt.createElement(ae,{view:!0},g&&Rt.createElement(Rt.Fragment,null,Rt.createElement(bI,{setCategory:s,category:a,blockchains:d,isLoading:u==="loading"}),Rt.createElement(Zh,{size:24})),Rt.createElement(Et,{value:n,autoFocus:!0,placeholder:Yh.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Rt.createElement(Zh,{size:16}),Rt.createElement(Fc,{list:d,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:f=>{e==="custom-token"?p(`..?blockchain=${f.name}`,{replace:!0}):(e==="source"?l(f):c(f),o())}})))}i(Ca,"SelectBlockchainPage");import{i18n as va}from"@lingui/core";import{Divider as iy,Spinner as UI}from"@rango-dev/ui";import go,{useEffect as zI,useState as qI}from"react";import{useNavigate as QI}from"react-router-dom";import{i18n as zc}from"@lingui/core";import{BlockchainsChip as Ta,Divider as oy,Image as ny,Skeleton as WI,Tooltip as LI,Typography as qc}from"@rango-dev/ui";import xe from"react";import{useEffect as AI}from"react";var Rh=["ETH","COSMOS","OSMOSIS"];function Oc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(EI),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 u=n[l];s=s.filter(p=>u.name!==p)}}n.sort(II(s)),r=n.splice(a)}return{list:n,more:r}}i(Oc,"prepare");function EI(t,e){let o=Rh,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(EI,"sortByMostUsedBlockchains");function II(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(II,"generateSortByPreferredBlockchainsFor");function ey(t,e){return!!e.list.find(o=>o.name===t)}i(ey,"isInVisibleList");function Uc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=T();AI(()=>{if(e?.selected){let a=Oc(t,o,e);ey(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Oc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Uc,"usePrepareBlockchainList");import{styled as NI}from"@rango-dev/ui";var ty=NI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var PI=6,MI=12;function Qc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=Uc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=T(),u=O.use.resetToBlockchain(),p=O.use.resetFromBlockchain(),d=c.more.length>0,h=c.more.length===1,g=!h&&d;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(oy,{size:12}),xe.createElement(qc,{variant:"label",size:"large"},zc.t("Select Chain"))),xe.createElement(oy,{size:12}),xe.createElement(ty,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?PI:MI),(f,m)=>xe.createElement(WI,{key:m,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(Ta,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?p():u()}},xe.createElement(qc,{variant:"body",size:"xsmall",color:"secondary500"},zc.t("All"))),c.list.map(f=>xe.createElement(LI,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:N()},xe.createElement(Ta,{className:"widget-blockchains-section-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(ny,{src:f.logo,size:30})))),h?xe.createElement(Ta,{className:"widget-blockchains-section-only-item-btn",key:c.more[0].name,selected:!!n&&n.name===c.more[0].name,onClick:()=>r(c.more[0])},xe.createElement(ny,{src:c.more[0].logo,size:30})):null,g?xe.createElement(Ta,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(qc,{variant:"body",size:"xsmall",color:"secondary500"},zc._("More +{count}",{count:c.more.length}))):null)))}i(Qc,"BlockchainsSection");import{useCallback as DI,useRef as $I,useState as Hc}from"react";function Gc(){let t=T().blockchains(),e=$I(null),{customTokens:o}=T(),[n,r]=Hc(!1),[a,s]=Hc([]),[c,l]=Hc(null),u=i(async(h,g)=>{l(null),r(!0),s([]);try{let f=await st().searchCustomTokens({query:h,blockchain:g},{signal:e.current?.signal}),m=new Set(o().map(S=>zt(S))),y=new Set(t.map(S=>S.name)),C=f.tokens.filter(S=>y.has(S.blockchain)&&!m.has(zt(S)));s(C),r(!1)}catch(f){l(f instanceof Error?f.message:"something went wrong"),s([]),f?.name!=="CanceledError"&&r(!1)}},"fetch"),p=DI(Hr((h,g)=>{e.current?.signal.aborted||u(h,g)},600),[t.length]);return{fetch:(h,g)=>{e.current=new AbortController,s([]),r(!0),p(h,g)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Gc,"useSearchCustomTokens");function ka(t,e,o){return o&&t.length===1&&t[0].address===e?!1:t.length<20&&e.trim().length>=3}i(ka,"shouldSearchForCustomTokens");function ry(t,e,o,n,r){let a=[...t];return ka(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(ry,"prepareTokensList");function wa(t){let{type:e}=t,o=QI(),n=Ve(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:u}=O(),{getBalanceFor:p}=T(),{fetch:d,loading:h,tokens:g,cancel:f}=Gc(),[m,y]=qI(""),C=e==="source"?r:a,S=C?.name??"",k=T().blockchains({type:e}),v=T().tokens({type:e,blockchain:S,searchFor:m,getBalanceFor:p}),x=ry(v,g,m,h,C?.name),I=i(b=>{e==="source"?l(b):u(b)},"updateBlockchain"),A=i(b=>{e==="source"?s({token:b,meta:{blockchains:k}}):c({token:b,meta:{blockchains:k}})},"updateToken"),E={source:va.t("Source"),destination:va.t("Destination")};return zI(()=>(ka(v,m,C?.name)&&d(m,C?.name??void 0),()=>{f()}),[v.length,m,C?.name]),go.createElement(ie,{header:{title:va.t("Swap {type}",{type:E[e]})}},go.createElement(ae,null,go.createElement(Qc,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:b=>{I(b)}}),go.createElement(iy,{size:24}),go.createElement(Et,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:va.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>y(""),onChange:b=>y(b.target.value),suffix:ka(v,m,C?.name)&&h?go.createElement(UI,{size:12,color:"secondary"}):void 0}),go.createElement(iy,{size:16}),go.createElement(fr,{list:x,selectedBlockchain:S,searchedFor:m,type:e,onChange:b=>{A(b);let w=k.find(B=>b.blockchain===B.name);w&&I(w),n()}})))}i(wa,"SelectSwapItemsPage");import{i18n as Xc}from"@lingui/core";import{Alert as hA,Button as yA,styled as SA}from"@rango-dev/ui";import Oo from"react";import{useInRouterContext as CA,useSearchParams as TA}from"react-router-dom";import{i18n as uy}from"@lingui/core";import{Alert as KI,Divider as Kc,InfoIcon as jI,SlippageIcon as XI,TextField as YI,Tooltip as ZI,Typography as my}from"@rango-dev/ui";import Ue from"react";import{Chip as HI,styled as xr,TextField as GI}from"@rango-dev/ui";var ay=xr("div",{paddingTop:"$5",padding:"$10 $5"}),sy=xr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${GI}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),ly=xr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ba=xr("div",{maxWidth:"280px",padding:"$10"}),cy=xr(HI,{width:"61px",flexShrink:0});import{i18n as Vc}from"@lingui/core";import{Typography as VI}from"@rango-dev/ui";import Er from"react";function py(){return Er.createElement(ba,null,Er.createElement(VI,{variant:"label",size:"medium",color:"neutral700"},Vc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Er.createElement("br",null),Er.createElement("br",null),Er.createElement("b",null,Vc.t("Warning")),":\xA0",Vc.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(py,"SlippageTooltipContent");function jc(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=T(),r=o!==null?Yo(o):null,a=i(l=>{let u=l.target.value,p=parseFloat(u);if(isNaN(p))return n(null);let d=p;p>Pn&&(d=Pn),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let u=l.target,p=u.value;Zp(p)||(u.value=p.slice(0,-1))},"onInput");return Ue.createElement(ay,null,Ue.createElement(ly,null,Ue.createElement(XI,{size:16,color:"gray"}),Ue.createElement(Kc,{direction:"horizontal",size:4}),Ue.createElement(my,{variant:"title",size:"xmedium"},uy.t("Slippage tolerance per swap")),Ue.createElement(Kc,{direction:"horizontal",size:4}),Ue.createElement(ZI,{container:N(),side:"top",sideOffset:4,content:Ue.createElement(py,null)},Ue.createElement(jI,{color:"gray"}))),Ue.createElement(sy,null,Rr.map((l,u)=>{let p=`slippage-${u}`;return Ue.createElement(cy,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:p,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),Ue.createElement(YI,{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&&Ue.createElement(my,{variant:"body",size:"small"},"%"),placeholder:uy.t("Custom")})),r&&Ue.createElement(Ue.Fragment,null,Ue.createElement(Kc,{size:10}),Ue.createElement(KI,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(jc,"Slippage");import{i18n as Ct}from"@lingui/core";import{AutoThemeIcon as dy,BridgesIcon as JI,ChevronRightIcon as xa,DarkModeIcon as fy,Divider as Ir,ExchangeIcon as RI,InfinityIcon as eA,InfoIcon as tA,LanguageIcon as oA,LightModeIcon as gy,List as nA,ListItem as rA,ListItemButton as iA,Skeleton as aA,styled as sA,Switch as lA,Tabs as cA,TargetIcon as pA,Tooltip as uA,Typography as rt}from"@rango-dev/ui";import D from"react";import{useNavigate as mA}from"react-router-dom";var dA=sA("div",{width:"202px",height:"$40"}),fA=[{id:"light",icon:D.createElement(gy,{color:"black",size:24}),tooltip:D.createElement(rt,{size:"xsmall",variant:"body"},Ct.t("Light"))},{id:"dark",icon:D.createElement(fy,{color:"black",size:24}),tooltip:D.createElement(rt,{size:"xsmall",variant:"body"},Ct.t("Dark"))},{id:"auto",icon:D.createElement(dy,{color:"black",size:24}),tooltip:D.createElement(rt,{size:"xsmall",variant:"body"},Ct.t("Auto"))}],gA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(dy,{...e});case"dark":return D.createElement(fy,{...e});default:return D.createElement(gy,{...e})}},"getThemeIcon");function hy(){let t=mA(),{theme:e}=T().config,{setTheme:o,theme:n}=T(),{activeLanguage:r,languages:a}=fo(),s=a.find(L=>L.local===r)?.label,c=T().fetchStatus,l=T().swappers(),u=T().getDisabledLiquiditySources(),{config:{features:p}}=T(),d=T().customTokens(),h=et("theme",p),g=et("liquiditySource",p),f=et("language",p),m=et("customTokens",p),y=T().infiniteApprove,C=T().toggleInfiniteApprove,S=oi(l,u),k=S.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),v=k.length,x=k.filter(L=>L.selected).length,I=S.filter(L=>L.type==="DEX"),A=I.length,E=I.filter(L=>L.selected).length,b=i((L,te)=>{switch(c){case"loading":return D.createElement(aA,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(rt,{variant:"body",size:"medium",color:"$error500"},Ct.t("Loading failed"));default:return D.createElement(rt,{variant:"body",size:"medium"},`${L} / ${te}`)}},"handleSwapperEndItem"),w={id:"widget-setting-bridge-item-btn",title:D.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Bridges")),end:D.createElement(D.Fragment,null,b(x,v),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(xa,{color:"black"})),onClick:()=>t(F.bridges),start:D.createElement(JI,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:D.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Exchanges")),end:D.createElement(D.Fragment,null,b(E,A),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(xa,{color:"black"})),start:D.createElement(RI,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},M={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(rt,{variant:"body",size:"medium"},`${d.length}`),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(xa,{color:"black"})),start:D.createElement(pA,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},$={id:"widget-setting-language-item-btn",title:D.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Language")),start:D.createElement(oA,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(rt,{variant:"body",size:"medium"},s),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(xa,{color:"black"})),onClick:()=>t(F.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Infinite approval")),D.createElement(Ir,{direction:"horizontal",size:4}),D.createElement(uA,{side:"top",sideOffset:4,container:N(),content:D.createElement(ba,null,D.createElement(rt,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,Ct.t("Warning")),":\xA0",Ct.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(tA,{color:"gray"}))),start:D.createElement(eA,{color:"gray",size:16}),end:D.createElement(lA,{checked:y}),onClick:C},ee={id:"widget-setting-theme-item-btn",type:D.createElement(rA,null),title:D.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Theme")),end:D.createElement(dA,null,D.createElement(cA,{container:N(),items:fA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:gA(n)},V=g?[]:[w,B];return m||V.push(M),f||V.push($),V.push(q),!e?.singleTheme&&!h&&V.push(ee),D.createElement(nA,{type:D.createElement(iA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:V})}i(hy,"SettingsLists");var kA=SA("div",{paddingLeft:"$8"});function yy(){let{isInCampaignMode:t,updateCampaignMode:e}=T(),o=t(),[,n]=TA(),r=CA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Oo.createElement(ie,{header:{title:Xc.t("Settings")}},Oo.createElement(ae,null,o&&Oo.createElement(hA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:Xc.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:Oo.createElement(kA,null,Oo.createElement(yA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Xc.t("Reset")))}),Oo.createElement(jc,null),Oo.createElement(hy,null)))}i(yy,"SettingsPage");import{i18n as E0}from"@lingui/core";import{cancelSwap as I0}from"@rango-dev/queue-manager-rango-preset";import{useManager as A0}from"@rango-dev/queue-manager-react";import{Alert as N0}from"@rango-dev/ui";import up from"react";import{useParams as B0}from"react-router-dom";import{i18n as zo}from"@lingui/core";import{getCurrentNamespaceOfOrNull as d0,getCurrentStep as f0,getRelatedWalletOrNull as g0}from"@rango-dev/queue-manager-rango-preset";import{Button as uS,Divider as h0,QuoteCost as y0,StepDetails as S0,Typography as ap}from"@rango-dev/ui";import{useWallets as C0}from"@rango-dev/wallets-react";import mS from"bignumber.js";import{PendingSwapNetworkStatus as bn}from"rango-types";import Te,{useEffect as dS,useRef as fS,useState as sp}from"react";import{useNavigate as T0}from"react-router-dom";import{i18n as ho}from"@lingui/core";var vA=[ho.t("Sunday"),ho.t("Monday"),ho.t("Tuesday"),ho.t("Wednesday"),ho.t("Thursday"),ho.t("Friday"),ho.t("Saturday")];function Sy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?ho.t("Today"):`${vA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Sy,"timeSince");function Cy(t){return t.finishTime?Sy(parseInt(t.finishTime)):Sy(parseInt(t.creationTime))}i(Cy,"getSwapDate");import Nr from"react";import{i18n as Ea}from"@lingui/core";import{Button as Ty,Divider as Yc,MessageBox as wA}from"@rango-dev/ui";import yo from"react";var ky=i(({onCancel:t,onClose:e})=>yo.createElement(yo.Fragment,null,yo.createElement(Yc,{size:20}),yo.createElement(wA,{type:"error",title:Ea.t("Cancel Swap"),description:Ea.t("Are you sure you want to cancel this swap?")}),yo.createElement(Yc,{size:32}),yo.createElement(Ty,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Ea.t("Yes, Cancel it")),yo.createElement(Yc,{size:12}),yo.createElement(Ty,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Ea.t("No, Continue"))),"CancelContent");import{i18n as Ia}from"@lingui/core";import{Button as vy,Divider as Zc,MessageBox as bA,Typography as xA}from"@rango-dev/ui";import eo from"react";var wy=i(({onDelete:t,onClose:e})=>eo.createElement(eo.Fragment,null,eo.createElement(Zc,{size:20}),eo.createElement(bA,{type:"error",title:Ia.t("Delete Transaction"),description:Ia.t("Are you sure you want to delete this swap?")}),eo.createElement(Zc,{size:32}),eo.createElement(vy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Ia.t("Yes, Delete it")),eo.createElement(Zc,{size:12}),eo.createElement(vy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},eo.createElement(xA,{variant:"title",size:"medium",color:"primary"},Ia.t("No, Cancel")))),"DeleteContent");import{i18n as by}from"@lingui/core";import{MessageBox as EA}from"@rango-dev/ui";import IA from"react";var xy=i(t=>{let{status:e,message:o}=t,n=e==="waitingForNetworkChange"?"loading":"success",r=e==="waitingForNetworkChange"?by.t("Change Network"):by.t("Network Changed");return IA.createElement(EA,{type:n,title:r,description:o})},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as HA,getCurrentStep as GA,getRelatedWalletOrNull as VA}from"@rango-dev/queue-manager-rango-preset";import{WalletState as KA}from"@rango-dev/ui";import{useWallets as jA}from"@rango-dev/wallets-react";import Wy from"react";import{i18n as vn}from"@lingui/core";import{Alert as Iy,Button as NA,Checkbox as BA,Divider as Ba,Image as WA,MessageBox as LA,Spinner as PA,WarningIcon as MA}from"@rango-dev/ui";import{useWallets as _A}from"@rango-dev/wallets-react";import he,{useState as DA}from"react";import{darkTheme as AA,styled as Ar}from"@rango-dev/ui";var D3=Ar("div",{display:"flex",justifyContent:"center"}),$3=Ar("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Ey=Ar("img",{width:"100%"}),Aa=Ar("div",{position:"relative"}),Na=Ar("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${AA} &`]:{$$color:"$warning600"}});var Ay=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=DA(null),{list:s}=kt(),c=oe.use.isActiveTab(),{state:l,connect:u}=_A(),p=s.find(x=>x.type===e.walletType),d=p?.needsNamespace?.data.find(x=>x.value===o?.namespace);if(!p)return null;let h=l(e.walletType),g=p.isHub&&o?.namespace?h.namespaces?.get(o.namespace):null,f=h.connecting||g?.connecting,m=p.isHub?g?.connected:h.connected,y=i(()=>m?vn.t("Done"):r?vn.t("Try again"):vn.t("Connect"),"getButtonTitle"),C=i(()=>f?he.createElement(PA,{color:"info"}):r||m?null:he.createElement(BA,{checked:!0,disabled:!0}),"getNamespaceSuffix"),S=i(async()=>{try{a(null),await u(p.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(x){a(x)}},"handleConnect"),k=i(async()=>{if(m){n();return}S()},"handleClickButton"),v=i(()=>{if(!m)return null;let x=p?.isHub?g?.accounts?.[0]?.split(":"):h?.accounts?.[0]?.split(":"),I=x?.[x?.length-1];return I?oo(I):null},"getAddress");return he.createElement(he.Fragment,null,he.createElement(LA,{type:"warning",title:vn.t("Connect {wallet}",{wallet:p.title}),description:vn.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:he.createElement(Aa,null,he.createElement(WA,{src:p.image,size:45}),he.createElement(Na,null,he.createElement(MA,{color:"warning",size:10})))}),m&&!d&&he.createElement(he.Fragment,null,he.createElement(Ba,{size:10}),he.createElement(Iy,{type:"success",variant:"alarm",title:vn.t("Wallet connected successfully.")})),r&&!d&&he.createElement(he.Fragment,null,he.createElement(Ba,{size:10}),he.createElement(Iy,{type:"error",title:r?.message,variant:"alarm"})),d&&he.createElement(he.Fragment,null,he.createElement(Ba,{size:30}),he.createElement(xo,{namespace:d,suffix:C(),error:r?.message,connected:m,address:v()})),he.createElement(Ba,{size:"40"}),he.createElement(NA,{loading:f,type:"primary",id:"widget-connect-wallet-btn",onClick:k,disabled:!c},y()))},"ConnectWalletContent");import{i18n as Ny}from"@lingui/core";import{Button as $A,Divider as FA,Image as OA,MessageBox as UA,WarningIcon as zA}from"@rango-dev/ui";import{useWallets as qA}from"@rango-dev/wallets-react";import{detectInstallLink as QA}from"@rango-dev/wallets-shared";import to from"react";var By=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=qA(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(QA(n.installLink),"_blank"),"handleButtonClick");return to.createElement(to.Fragment,null,to.createElement(UA,{type:"warning",title:Ny.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:to.createElement(Aa,null,to.createElement(OA,{src:n.img,size:45}),to.createElement(Na,null,to.createElement(zA,{color:"warning",size:10})))}),to.createElement(FA,{size:"40"}),to.createElement($A,{type:"primary",id:"widget-install-wallet-btn",onClick:r},Ny.t("Install")))},"InstallWalletContent");var Ly=i(t=>{let{swap:e,onClose:o}=t,{state:n}=jA(),r=GA(e),a=r?VA(e,r):null,s=a?.walletType,c=s?Bn(n(s)):null,l=r?HA(e,r):null;return s?c===KA.NOT_INSTALLED?Wy.createElement(By,{walletType:s}):Wy.createElement(Ay,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function Jc(t){let{isOpen:e,state:o,onClose:n,onDelete:r,onCancel:a,swap:s,message:c}=t;return Nr.createElement(R,{open:e,onClose:n,container:N()},o==="waitingForConnectingWallet"&&Nr.createElement(Ly,{swap:s,message:c,onClose:n}),(o==="waitingForNetworkChange"||o==="networkChanged")&&Nr.createElement(xy,{message:c,status:o}),o==="delete"&&Nr.createElement(wy,{onClose:n,onDelete:()=>{n(),r()}}),o==="cancel"&&Nr.createElement(ky,{onClose:n,onCancel:()=>{n(),a()}}))}i(Jc,"SwapDetailsModal");import{i18n as Br}from"@lingui/core";import{Button as Rc,Divider as Wr,MessageBox as _y,TokenAmount as XA,Typography as Dy}from"@rango-dev/ui";import Ce from"react";import{Link as YA,useNavigate as ZA}from"react-router-dom";var Py="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",My="/profile";function ep(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:u,percentageChange:p,description:d,diagnosisUrl:h}=t,g=ZA(),{showProfileBanner:f}=oe();return Ce.createElement(R,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(Re.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement(_y,{type:"success",title:Br.t("Swap Successful")},Ce.createElement(XA,{direction:"vertical",tooltipContainer:N(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:u,percentageChange:p}),Ce.createElement(Wr,{size:12}),Ce.createElement(Dy,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Ce.createElement(_y,{type:"error",title:Br.t("Transaction Failed"),description:d}),Ce.createElement(Wr,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,f&&Ce.createElement(Ce.Fragment,null,Ce.createElement(YA,{to:My},Ce.createElement(Ey,{src:Py,alt:"Profile Banner"})),Ce.createElement(Wr,{size:30})),Ce.createElement(Rc,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{g("../../")}},Br.t("Done"))),Ce.createElement(Wr,{size:12}),h&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Rc,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},Br.t("Diagnosis")),Ce.createElement(Wr,{size:12})),Ce.createElement(Rc,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement(Dy,{variant:"title",size:"medium",color:"primary"},Br.t("See Details"))))}i(ep,"SwapDetailsCompleteModal");import{i18n as Pa}from"@lingui/core";import{CopyIcon as l0,DoneIcon as c0,IconButton as p0,RangoExplorerIcon as u0,Tooltip as iS,Typography as aS,useCopyToClipboard as m0}from"@rango-dev/ui";import At from"react";import s0 from"react";import{i18n as n0}from"@lingui/core";import{Alert as tS,IconButton as r0,LinkIcon as i0}from"@rango-dev/ui";import So,{Fragment as a0}from"react";import{Alert as RA,ChevronDownIcon as e0,IconButton as t0}from"@rango-dev/ui";import wn,{useState as o0}from"react";import{css as Lr,darkTheme as $y,styled as $t,Typography as JA}from"@rango-dev/ui";var Fy=$t(ae,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${$y} &`]:{color:"$secondary500"}}}}}),Oy=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Uy=$t("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),zy=$t("div",{padding:"$0 $20 $20 $20"}),UX=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),qy=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),zX=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Uo=Lr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${$y} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Qy=Lr({padding:"$5 0"}),Wa=Lr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Hy=Lr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Gy=Lr({width:"100%",padding:"0 $20 $10"}),Vy=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Ky=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),La=$t(JA,{wordBreak:"break-word"});import{styled as tp}from"@rango-dev/ui";var jy=tp("div",{display:"flex",flexDirection:"column",gap:"$10"}),Xy=tp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Yy=tp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Zy(t){let{message:e}=t,[o,n]=o0(!1);return wn.createElement(RA,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&wn.createElement(t0,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},wn.createElement(Xy,{rotated:o},wn.createElement(e0,{size:12,color:"gray"}))),footer:wn.createElement(Yy,{open:o},wn.createElement(La,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Zy,"FailedAlert");import{i18n as Jy}from"@lingui/core";import{Alert as op,Button as Ry}from"@rango-dev/ui";import{PendingSwapNetworkStatus as np}from"rango-types";import Pr from"react";function eS(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Pr.createElement(op,{type:"warning",id:"widget-swap-details-change-network-alert",title:n.shortMessage,action:Pr.createElement(Ry,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(np.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Jy.t("Change"))}):r===np.WaitingForConnectingWallet?Pr.createElement(op,{type:"warning",title:n.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Pr.createElement(Ry,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(np.WaitingForConnectingWallet)}},Jy.t("Connect"))}):Pr.createElement(op,{id:"widget-swap-details-short-alert",type:"warning",title:n.shortMessage})}i(eS,"WarningAlert");function rp(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,c=Vn(a),l=a.status==="waitingForApproval"&&!c,u=a.status==="running"&&!c,p=u&&!s||l&&!a.explorerUrl?.length;return So.createElement(jy,null,a.explorerUrl?.map((d,h,g)=>{let f=h+d.url,m=h===g.length-1,y=(m&&u||l)&&!p,C=m&&a.status==="failed";return So.createElement(a0,{key:f},So.createElement(tS,{id:"widget-swap-details-tx-alert",type:m&&(y&&"loading"||C&&"error")||"success",title:d.description?`${d.description} Tx`:n0.t("View transaction"),action:d.url&&So.createElement(r0,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},So.createElement(i0,{size:12}))}))}),p&&So.createElement(tS,{id:"widget-swap-details-loading-alert",type:"loading",title:r.shortMessage}),a.status!=="failed"&&c&&So.createElement(eS,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&So.createElement(Zy,{message:r}))}i(rp,"SwapDetailsAlerts");var oS=2e3;var nS=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:ft(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:_(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ft(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:_(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:En(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:ft(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:ft(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:En(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:s0.createElement(rp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function rS(t){if(Vn(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(rS,"getStepState");function sS(t){let{requestId:e}=t,[o,n]=m0(oS);return At.createElement(Uy,{className:Uo()},At.createElement(aS,{variant:"label",size:"large",color:"neutral700"},Pa.t("Request ID")),At.createElement("div",{className:Wa()},At.createElement(aS,{variant:"label",size:"small",color:"neutral700"},e),At.createElement(iS,{container:N(),content:o?Pa.t("Copied To Clipboard"):Pa.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},At.createElement(p0,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?At.createElement(c0,{size:16,color:"secondary"}):At.createElement(l0,{size:16,color:"gray"}))),At.createElement(Vy,{target:"_blank",href:`${Mp}/swap/${e}`},At.createElement(iS,{container:N(),content:Pa.t("View on Rango Explorer"),side:"bottom"},At.createElement(u0,{size:20})))))}i(sS,"RequestIdRow");import{i18n as lS}from"@lingui/core";import{Typography as cS}from"@rango-dev/ui";import ip from"react";function pS(t){let{date:e,isFinished:o}=t;return ip.createElement("div",{className:Uo()},ip.createElement(cS,{variant:"label",size:"large",color:"neutral700"},o?lS.t("Finished at"):lS.t("Created at")),ip.createElement(cS,{variant:"label",size:"small",color:"neutral700"},e))}i(pS,"SwapDateRow");function lp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=C0(),l=T().blockchains(),u=T().swappers(),{findToken:p}=T(),d=O.use.retry(),h=T0(),g=fS(null),[f,m]=sp(!1),[y,C]=sp(null),[S,k]=sp(null),v=fS(!1),x=Be.use.getNotifications(),I=Be.use.removeNotification(),A=x(),E=f0(e),b=E?.networkStatus,w=i(Ae=>{m(!0),C(Ae)},"handleChangeModalState"),B=i(()=>{m(!1)},"handleCloseModal");dS(()=>{A.find(je=>je.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(k(e.status),I(e.requestId),B()):S&&k(null))},[e.status,e.requestId]),dS(()=>{te?w(bn.WaitingForNetworkChange):b===bn.WaitingForConnectingWallet?w(bn.WaitingForConnectingWallet):b===bn.NetworkChanged&&w(bn.NetworkChanged),!te&&v.current&&B(),v.current=te},[b]);let M=Dm(e),$=E?d0(e,E):null,q=E?g0(e,E):null,ee=Cy(e),V=$m(e),L=i(Ae=>!!c(Ae)?.mobileWallet,"isMobileWallet"),te=b===bn.WaitingForNetworkChange&&!!$&&!!q?.walletType&&(L(q.walletType)||a(q.walletType,$.network)),le=te?s.bind(null,q.walletType,[{namespace:$.namespace,network:$.network}]):void 0,J=_m(e,E,c),X=nS({swap:e,switchNetwork:le,showNetworkModal:b,setNetworkModal:w,message:J,blockchains:l,swappers:u}),j=X.length,[ue,me]=[e.steps[0],e.steps[j-1]],ke=me.outputAmount||me.expectedOutputAmountHumanReadable,H=e.steps.reduce((Ae,je)=>Ae+parseFloat(je.feeInUsd||""),0),W=e.steps.find(Ae=>Ae.diagnosisUrl)?.diagnosisUrl,Q=_(parseFloat(ke||"0")*(me.toUsdPrice||0),4,4),K=_(parseFloat(e.inputAmount)*(ue.fromUsdPrice||0),4,4),Y=ke?new mS(ke).multipliedBy(me.toUsdPrice||0).toString():"",ye=new mS(e.inputAmount).multipliedBy(ue.fromUsdPrice||0).toString(),qe=Qt(K,Q),Qe=J.detailedMessage.content||J.shortMessage,Tt=e.status==="success"?zo.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:_(ke,6,6),token:X[j-1].to.token.displayName,conciseAddress:oo(e.wallets[X[j-1].to.chain.displayName]?.address||""),chain:X[j-1].to.chain.displayName}}):Te.createElement(Ky,null,Te.createElement(ap,{variant:"body",size:"medium",color:"neutral700",align:"center"},Qe?"":zo.t("Transaction was not sent."),M?`${zo.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:M.outputAmount,symbol:M.symbol,blockchain:M.blockchain}})}`:""),Qe&&Te.createElement(La,{align:"center",variant:"body",size:"medium",color:"neutral700"},Te.createElement("b",null,"Reason:")," ",Qe));return Te.createElement(ie,{header:{title:zo.t("Swap Details"),onCancel:e.status==="running"?()=>w("cancel"):void 0,suffix:e.status!=="running"&&Te.createElement(ao,null,Te.createElement(uS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>w("delete")},Te.createElement(ap,{size:"medium",variant:"label",color:"error"},zo.t("Delete"))))},footer:V&&!S&&Te.createElement(uS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Ae=Si(e,l,p);d(Ae),setTimeout(()=>{h("../../")},0)}},zo.t("Try again"))},Te.createElement(Fy,{compact:!0,ref:g},Te.createElement(sS,{requestId:o}),Te.createElement(pS,{date:ee,isFinished:!!e.finishTime}),Te.createElement("div",{className:Hy()},Te.createElement(y0,{fee:_(String(H),2,2),time:An(Kr(e.steps)),steps:j}),Te.createElement(rr,{from:{price:{value:_(e.inputAmount,6,6),usdValue:K,realUsdValue:ye,realValue:e.inputAmount},token:{displayName:X[0].from.token.displayName,image:X[0].from.token.image},chain:{image:X[0].from.chain.image,displayName:X[0].from.chain.displayName}},to:{price:{value:_(ke,6,6),usdValue:Q,realUsdValue:Y,realValue:ke||""},token:{displayName:X[j-1].to.token.displayName,image:X[j-1].to.token.image},chain:{image:X[j-1].to.chain.image,displayName:X[j-1].to.chain.displayName}},percentageChange:_(qe,2,2),warningLevel:Ht(qe??0)})),Te.createElement("div",{className:Gy()},Te.createElement(ap,{variant:"title",size:"small"},zo.t("Swaps steps"))),Te.createElement(h0,{size:8}),Te.createElement(zy,null,X.map((Ae,je)=>{let Dr=je,xn=rS(e.steps[je]),qS=xn==="error"||xn==="in-progress"||xn==="warning"||xn==="completed"&&je===X.length-1;return Te.createElement(S0,{className:"widget-swap-details-step-item-container",key:Dr,step:Ae,type:"swap-progress",ref:g,state:xn,hasSeparator:je!==0,tabIndex:Dr,isFocused:qS,tooltipContainer:N()})}))),Te.createElement(Jc,{isOpen:f,state:y,onClose:B,onCancel:r,onDelete:n,message:J.detailedMessage.content,swap:e}),Te.createElement(ep,{open:!!S,diagnosisUrl:W,onClose:()=>k(null),status:e.status==="success"?"success":"failed",priceValue:_(ke,6,6),usdValue:Q,realUsdValue:Y,realValue:ke||"",percentageChange:_(qe,2,2),token:{displayName:X[j-1].to.token.displayName,image:X[j-1].to.token.image},chain:{image:X[j-1].to.chain.image},description:Tt}))}i(lp,"SwapDetails");import{i18n as _a}from"@lingui/core";import{Divider as yS,NotFound as x0,Skeleton as _r,Typography as Da}from"@rango-dev/ui";import Ie from"react";import{i18n as k0}from"@lingui/core";import{Divider as v0,Skeleton as w0,Typography as b0}from"@rango-dev/ui";import Ee from"react";import{css as Nt,styled as cp}from"@rango-dev/ui";var gS=cp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Mr=cp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Ma=cp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),f7=Nt({display:"flex",justifyContent:"space-between",alignItems:"center"}),g7=Nt({display:"flex",justifyContent:"space-between",alignItems:"center"}),h7=Nt({paddingTop:"$15",display:"flex"}),y7=Nt({padding:"$15 $0"}),S7=Nt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),C7=Nt({paddingBottom:"$10"}),T7=Nt({display:"flex",justifyContent:"start",alignItems:"center"}),k7=Nt({paddingTop:"$5",display:"flex",alignItems:"center"}),v7=Nt({display:"flex",alignItems:"center"}),w7=Nt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),hS=Nt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function pp(){return Ee.createElement(gS,null,Ee.createElement(ar,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(b0,{variant:"title",size:"small"},k0.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Mr,null,Ee.createElement(_t,{separator:!1}),Ee.createElement("div",{className:hS()},Ee.createElement(v0,{direction:"horizontal",size:20}),Ee.createElement(w0,{height:22,variant:"rectangular"}))),Ee.createElement(Ma,null),Ee.createElement(Mr,null,Ee.createElement(_t,{separator:!1})),Ee.createElement(Ma,null),Ee.createElement(Mr,null,Ee.createElement(_t,{separator:!1})),Ee.createElement(Ma,null),Ee.createElement(Mr,null,Ee.createElement(_t,{separator:!1}))))}i(pp,"LoadingSwapDetails");function SS(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(ie,{header:{title:_a.t("Swap Details"),suffix:Ie.createElement(ao,null)}},o&&Ie.createElement(Oy,null,Ie.createElement("div",{className:Uo()},Ie.createElement(Da,{variant:"label",size:"large",color:"neutral700"},`${_a.t("Request ID")}`),Ie.createElement("div",{className:Wa()},Ie.createElement(Da,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"})),Ie.createElement(yS,{direction:"horizontal",size:4}),Ie.createElement(_r,{width:16,height:16,variant:"rectangular"}),Ie.createElement(yS,{direction:"horizontal",size:4}),Ie.createElement(_r,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:Uo()},Ie.createElement(Da,{className:Qy(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"})),Ie.createElement(Da,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"}))),Ie.createElement(pp,null)),!o&&Ie.createElement(qy,null,Ie.createElement(x0,{title:_a.t("Not found"),description:_a.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(SS,"SwapDetailsPlaceholder");function CS(){let{manager:t,state:e}=A0(),o=!e.loadedFromPersistor,n=St(t),{requestId:r}=B0(),a=Ve(),{fetchStatus:s}=T();if(!r)return up.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:h})=>h.requestId===r):void 0,u=i(()=>{if(l?.id){let h=t?.get(l.id);h&&I0(h)}},"onCancel"),p=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(h){console.log(h)}},"onDelete"),d=l?.swap;return!d||c?up.createElement(SS,{requestId:r,showSkeleton:c}):up.createElement(lp,{swap:d,requestId:r,onCancel:u,onDelete:p})}i(CS,"SwapDetailsPage");import{i18n as TS}from"@lingui/core";import{Divider as W0,getCategoriesCount as L0,SelectableCategoryList as P0,styled as vS,Typography as M0,Wallet as _0,WalletState as D0}from"@rango-dev/ui";import{useWallets as $0}from"@rango-dev/wallets-react";import Ft,{useState as kS}from"react";var F0=vS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),O0=vS(ae,{textAlign:"center"});function wS(){let{fetchStatus:t}=T(),[e,o]=kS("ALL"),n=T().blockchains(),{config:r}=T(),{state:a}=$0(),[s,c]=kS(),l=oe.use.isActiveTab(),{list:u}=kt(),p=cu(u,n),h=L0(p)!==1,g=pu(u,e),f=i(m=>{Hp(u,r.multiWallets)||c(m)},"handleWalletItemClick");return Ft.createElement(ie,{header:{title:TS.t("Connect Wallets")}},Ft.createElement(O0,null,h&&Ft.createElement(Ft.Fragment,null,Ft.createElement(P0,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),Ft.createElement(W0,{size:24})),Ft.createElement(M0,{variant:"title",size:"xmedium",align:"center"},TS.t("Choose a wallet to connect.")),Ft.createElement(F0,null,g.map((m,y)=>{let S=a(m.type).namespaces,k=`wallet-${y}-${m.type}`,v=Za(m,S);return Ft.createElement(_0,{key:k,...m,state:v?D0.PARTIALLY_CONNECTED:m.state,container:N(),onClick:()=>f(m),isLoading:t==="loading",disabled:!l})}),Ft.createElement(Hn,{id:"widget-state-full-connect-modal",wallet:s,onClose:()=>{c(void 0)}}))))}i(wS,"WalletsPage");function bS(){return zm(),Os(),U0([{path:F.home,element:ze.createElement(Fh,null)},{path:F.routes,element:ze.createElement(Qh,null)},{path:F.fromSwap,children:[{index:!0,element:ze.createElement(wa,{type:"source"})},{path:F.blockchains,element:ze.createElement(Ca,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:ze.createElement(wa,{type:"destination"})},{path:F.blockchains,element:ze.createElement(Ca,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:ze.createElement(yy,null)},{path:F.languages,element:ze.createElement(Uh,null)},{path:F.exchanges,element:ze.createElement(Dc,{sourceType:"Exchanges"})},{path:F.bridges,element:ze.createElement(Dc,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:ze.createElement(Ug,null)},{path:F.addCustomTokens,children:[{index:!0,element:ze.createElement(_d,null)},{path:F.blockchains,element:ze.createElement(Ca,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:ze.createElement(ah,null)},{path:F.swapDetails,element:ze.createElement(CS,null)}]},{path:F.wallets,element:ze.createElement(wS,null)},{path:F.confirmSwap,element:ze.createElement(Eg,null)}])}i(bS,"AppRoutes");import{useQueueManager as X0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as Y0}from"rango-sdk";import{useContext as Z0,useEffect as WS,useState as LS}from"react";import{globalCss as z0}from"@rango-dev/ui";var xS=i(()=>z0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function ES(){let{setWatermark:t,setShowProfileBanner:e}=oe();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Ut("BASE_URL")}/meta/dapp/config?apiKey=${Ut("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(ES,"useFetchApiConfig");import{useWallets as q0}from"@rango-dev/wallets-react";import{useEffect as Q0,useRef as H0}from"react";function IS(){let{connect:t,state:e}=q0(),o=H0({}),{fetchStatus:n}=T(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Q0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(IS,"useForceAutoConnect");import{isApprovalTX as G0,RouteEventType as AS,StepEventType as NS,StepExecutionEventStatus as V0,WidgetEvents as $a}from"@rango-dev/queue-manager-rango-preset";import{useEffect as BS}from"react";function mp(){let t=Be.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=T();BS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===NS.TX_EXECUTION&&s.status===V0.TX_SENT&&!G0(c)||s.type===NS.SUCCEEDED){let p=[],d=l.wallets[c?.fromBlockchain];if(d){let h=e.find(g=>g.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&g.walletType===d.walletType&&g.chain===c?.fromBlockchain);h&&p.push(h)}if(c?.fromBlockchain!==c?.toBlockchain){let h=l.wallets[c?.toBlockchain];if(h){let g=e.find(f=>f.address?.toLocaleLowerCase()===h.address?.toLocaleLowerCase()&&f.walletType===h.walletType&&f.chain===c?.toBlockchain);g&&p.push(g)}}if(p.length>0){let h=n(),f=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(m=>h.some(y=>y.blockchain===m.blockchain&&y.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&y.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(p,{selectedCustomTokens:f,shouldFetchCustomTokens:f.length>0})}}t(s,l)},"handleStepEvent");return ve.on($a.StepEvent,r),()=>ve.off($a.StepEvent,r)},[ve,e]),BS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===AS.FAILED||s.type===AS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return ve.on($a.RouteEvent,r),()=>ve.off($a.RouteEvent,r)},[ve])}i(mp,"useSubscribeToWidgetEvents");import{useManager as K0}from"@rango-dev/queue-manager-react";import{useEffect as j0}from"react";function dp(){let{isSynced:t,syncNotifications:e}=Be(),{manager:o,state:n}=K0();j0(()=>{Be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(St(o))},[Be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(dp,"useSyncNotifications");function fp(){IS(),xS(),mp(),dp();let t=T().blockchains(),{canSwitchNetworkTo:e}=zi(),[o,n]=LS(null),[r,a]=LS(),s=Z0(gi),c=t.filter(Y0),{fetchApiConfig:l}=ES();WS(()=>()=>Um(),[]),X0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),WS(()=>(bo.init(),Be.persist.hasHydrated()||Be.persist.rehydrate(),s.onConnectWallet(u=>{n(p=>{if(!p||p.walletType!==u.walletType)return u;let d={...p};return u.network&&(d.network=u.network),u.accounts&&(d.accounts=u.accounts),d})}),s.onDisconnectWallet(u=>{a(u),n(p=>u===p?.walletType?null:p)}),l().catch(console.log),bo.destroy),[])}i(fp,"useBootstrap");import{styled as J0}from"@rango-dev/ui";var PS=J0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Fa(){fp();let{config:t}=T(),{activeTheme:e}=io(t?.theme||{}),{activeLanguage:o}=fo();return gp.createElement(R0,{language:o},gp.createElement(PS,{id:"swap-container",className:e()},gp.createElement(bS,null)))}i(Fa,"Main");import{setSolanaSignerConfig as CN}from"@rango-dev/signer-solana";import yp,{useEffect as OS,useMemo as TN}from"react";import{useState as eN}from"react";var tN=i(()=>{let[t,e]=eN(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=Qp(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),MS=tN;import{checkWaitingForNetworkChange as oN,makeQueueDefinition as nN}from"@rango-dev/queue-manager-rango-preset";import{Provider as rN}from"@rango-dev/queue-manager-react";import{useWallets as iN}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as aN}from"@rango-dev/wallets-shared";import{isEvmBlockchain as sN}from"rango-types";import lN,{useMemo as cN}from"react";function pN(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=iN(),c=cN(()=>nN({API_KEY:t.apiKey||Ut("API_KEY"),BASE_URL:Ut("BASE_URL"),emitter:{emit:ve.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:u}=T(),p=l(),d={blockchains:u.map(v=>({accounts:[v],name:v.chain}))},h=i(async(v,x)=>a(v,x.network)?await r(v,[x]):void 0,"switchNetwork"),g=i(v=>!!s(v).mobileWallet,"isMobileWallet"),f=p.filter(v=>v.enabled).reduce((v,x)=>(v[x.name]=x,v),{}),m=p.filter(sN),y=i(v=>{let{supportedChains:x}=s(v);return Wn(x)},"getSupportedChainNames"),C=e(),S={meta:{blockchains:f,evmBasedChains:m,evmNetworkChainInfo:aN(m),getSupportedChainNames:y},getSigners:o,wallets:d,providers:C,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:g},k=oe.use.isActiveTab();return lN.createElement(rN,{queuesDefs:[c],context:S,onPersistedDataLoaded:v=>{oN(v)},isPaused:!k},t.children)}i(pN,"QueueManager");var _S=pN;import{useManager as gN}from"@rango-dev/queue-manager-react";import hN,{createContext as yN,useContext as SN}from"react";function DS(){let{findToken:t}=T(),e=T().blockchains(),o=T().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=O();return i(u=>{let{fromBlockchain:p,fromToken:d,toBlockchain:h,toToken:g,requestAmount:f}=u,m={blockchains:e,tokens:o};if(p!==void 0){let y=e.find(C=>C.name===p)??null;n(y)}if(d!==void 0){let y=d?t(d)??null:null;r({meta:m,token:y})}if(h!==void 0){let y=e.find(C=>C.name===h)??null;a(y)}if(g!==void 0){let y=g?t(g)??null:null;s({meta:m,token:y})}f!==void 0&&c(f)},"updateQuoteInputs")}i(DS,"useUpdateQuoteInputs");import{cancelSwap as uN,getCurrentNamespaceOfOrNull as mN,getCurrentStep as dN,getRelatedWalletOrNull as fN}from"@rango-dev/queue-manager-rango-preset";var Oa=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return St(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Si(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&uN(o)}getCurrentStepInfo(e){let o=dN(e);return{step:o,wallet:o?fN(e,o):null,network:o?mN(e,o)?.network:null}}};var $S=yN(void 0);function hp(t){let{manager:e}=gN(),o=oe.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=T(),l=new Oa(e,{retrySwap:n,findToken:r}),{fetchingWallets:u}=T(),p=nu(a()),d=T().blockchains(),h=T().tokens(),g=T().swappers(),f=T().fetchStatus,m=fo().resetLanguage,y=Be().getNotifications(),C=Be().clearNotifications,S=DS(),{fromBlockchain:k,toBlockchain:v,fromToken:x,toToken:I,inputAmount:A}=O(),E={isActiveTab:o,setCurrentTabAsActive:bo.forceClaim,history:l,wallets:{isLoading:u,details:s(),totalBalance:p,refetch:async b=>c(b)},meta:{blockchains:d,tokens:h,swappers:g,loadingStatus:f,findToken:r},resetLanguage:m,notifications:{list:y,clearAll:C},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:v?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:A},updateQuoteInputs:S}};return hN.createElement($S.Provider,{value:E},t.children)}i(hp,"WidgetInfo");function FS(){let t=SN($S);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(FS,"useWidget");function Ua(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=MS();return OS(()=>{n&&r(n)},[n]),TN(()=>{uu({API_KEY:o?.apiKey||qr,BASE_URL:o?.apiUrl||Pp})},[o.apiKey,o.apiUrl]),OS(()=>{t.config?.signers?.customSolanaRPC&&CN("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),yp.createElement(hi,{config:o,onUpdateState:e},yp.createElement(_S,{apiKey:o.apiKey},yp.createElement(hp,null,t.children)))}i(Ua,"WidgetProvider");function US(t){let e=t.config?.externalWallets;return za.createElement(lm,null,e?za.createElement(Fa,null):za.createElement(Ua,{config:t.config??Ur},za.createElement(Fa,null)))}i(US,"Widget");function zS(){let{on:t,off:e}=ve;return{on:t,off:e}}i(zS,"useWidgetEvents");var BR={DerivationPath:Un,Namespaces:Fn,Detached:On,isOnDerivationPath:qn,isOnNamespace:zn,isOnDetached:Qn};export{oR as EventSeverity,jo as MainEvents,mR as Networks,gR as PendingSwapNetworkStatus,os as QuoteEventTypes,nR as RouteEventType,Ga as SUPPORTED_FONTS,BR as StatefulConnect,rR as StepEventType,iR as StepExecutionBlockedEventStatus,aR as StepExecutionEventStatus,Re as UI_ID,rs as UiEventTypes,ns as WalletEventTypes,pR as WalletEvents,dR as WalletTypes,US as Widget,jo as WidgetEvents,Ua as WidgetProvider,hi as WidgetWallets,el as customizedThemeTokens,lR as readAccountAddress,qo as useStatefulConnect,kt as useWalletList,zi as useWallets,FS as useWidget,zS as useWidgetEvents,GC as widgetEventEmitter};
|
|
1
|
+
var QS=Object.defineProperty;var i=(t,e)=>QS(t,"name",{value:e,configurable:!0});import{EventSeverity as uR,RouteEventType as dR,StepEventType as mR,StepExecutionBlockedEventStatus as fR,StepExecutionEventStatus as gR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as yR}from"@rango-dev/wallets-core/legacy";import{useWallets as qi,Events as CR}from"@rango-dev/wallets-react";import{Networks as kR,WalletTypes as vR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as xR}from"rango-types";import{Divider as ak}from"@rango-dev/ui";import no,{useEffect as sk,useRef as lk,useState as od}from"react";import{WalletState as GS}from"@rango-dev/ui";import{useWallets as VS}from"@rango-dev/wallets-react";import{useReducer as KS}from"react";function Sp(t){return!!t.derivationPath}i(Sp,"isStateOnDerivationPathStep");function Cp(t){return!!t.namespace}i(Cp,"isStateOnNamespace");var $r={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Tp(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 $r;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:$r;default:throw new Error("Action hasn't been defined.")}}i(Tp,"reducer");function Ho(){let{state:t,disconnect:e,connect:o}=VS(),[n,r]=KS(Tp,$r),a=i(async(d,g,h)=>{r({type:"reset"});try{let f=g?.map(m=>({...m,network:void 0}));return await o(d,f),{status:"connected"}}catch(f){let m=f?.message?`Error: ${f.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:f})}},"runConnect"),s=i(async(d,g)=>{if(d.state===GS.DISCONNECTED){let f=!!d.isHub,m=f?d.properties?.find(y=>y.name==="namespaces")?.value:d.needsNamespace,T=f?d.properties?.find(y=>y.name==="derivationPath")?.value:d.needsDerivationPath;if(!m?.data?.length)return await a(d.type,void 0,g);if(m?.data.length&&m.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:g?.defaultSelectedChains}}),{status:"namespace"};if(m?.data.length===1){if(T){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})),g)}}if(d.isHub){let f=d.properties?.find(m=>m.name==="namespaces")?.value;if(f?.data.length&&f.data.length>1)return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return g?.disconnectIfConnected?(await u(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(d,g)=>{let h=!!d.isHub,f=h?d.properties?.find(k=>k.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(k=>k.name==="derivationPath")?.value:d.needsDerivationPath,T=f?.selection==="single",y=g[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(T&&m)return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y}}),{status:"derivation-path"};if(!Cp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=g.map(k=>({namespace:k}));return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:C?.map(k=>k.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(!Sp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let g=n.derivationPath.providerType,f=[{namespace:n.derivationPath.namespace,derivationPath:d}];return await a(g,f)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let g=t(d.type);return g.connected||g.connecting?(await e(d.type),Co(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(Ho,"useStatefulConnect");import{WalletState as ds}from"@rango-dev/ui";import{useWallets as nT}from"@rango-dev/wallets-react";import{detectMobileScreens as rT,KEPLR_COMPATIBLE_WALLETS as iT,WalletTypes as Dn}from"@rango-dev/wallets-shared";import{useCallback as aT,useEffect as sT}from"react";import JC,{createContext as RC,useContext as eT,useEffect as tT,useRef as oT}from"react";import{create as YC}from"zustand";import{persist as ZC}from"zustand/middleware";import{allProviders as jS}from"@rango-dev/provider-all";var Ha=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()}},Qo=new Ha;import{defineVersions as vp,pickVersion as wp,Provider as Qa}from"@rango-dev/wallets-core";function xp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=bp(a);return s instanceof Qa?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 Qa?o.push(vp().version("1.0.0",n).build()):o.push(vp().version("0.0.0",n).build())}),o}return t}i(xp,"matchAndGenerateProviders");function bp(t){try{return wp(t,"1.0.0")[1]}catch{return wp(t,"0.0.0")[1]}}i(bp,"pickProviderVersionWithFallbackToLegacy");function Ep(t){return t.map(o=>bp(o)).map(o=>o instanceof Qa?o.id:o.config.type)}i(Ep,"configWalletsToWalletName");function Fr(t,e){return e.find(o=>o.name===t)?.displayName}i(Fr,"getBlockchainDisplayNameFor");function ft(t,e){return e.find(o=>o.name===t)?.shortName}i(ft,"getBlockchainShortNameFor");function Ip(t,e){return e.find(o=>o.name===t)?.logo}i(Ip,"getBlockchainImage");function In(t,e){return e.find(o=>o.id===t)?.title}i(In,"getSwapperDisplayName");function To(t,e){return e.find(o=>o.name===t)??null}i(To,"findBlockchain");function Ga(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(Ga,"isTokenNative");function gt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(gt,"createTokenHash");function Go(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Go,"isValidTokenAddress");function An(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=gt(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{c.has(l)||a(o.tokensMapByBlockchainName[l])})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=gt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(An,"matchTokensFromConfigWithMeta");function Or(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(Or,"getSupportedBlockchainsFromConfig");function Np(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Np,"makeProvidersOptionsFromConfig");var Ur={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"}},XS={clientUrl:void 0},YS={liquiditySources:void 0};function Ap(t){let e=Np(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 jS(o).map(a=>a())}i(Ap,"generateProviders");var Bp=i((t,e,o)=>{let n=Ap({...Ur,...t});return{config:{...Ur,...t},iframe:XS,campaignMode:YS,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=An({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=An({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});Qo.set("supportedSourceTokens",l),Qo.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=Ap(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Np(a);return xp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Wp}from"rango-types";var Lp=[Wp.EVM,Wp.SOLANA],zr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as uC}from"rango-sdk";import{UI_ID as ZS}from"@rango-dev/ui";var qr="c6381a79-2817-4602-83bf-6a641a409e32",Mp="https://api.rango.exchange",Pp="https://explorer.rango.exchange",et={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...ZS};import{BlockchainCategories as rC,WalletState as st}from"@rango-dev/ui";import{legacyReadAccountAddress as iC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as aC,getCosmosExperimentalChainInfo as sC,isEvmAddress as lC,KEPLR_COMPATIBLE_WALLETS as $B,Networks as tu}from"@rango-dev/wallets-shared";import Ko from"bignumber.js";import{isCosmosBlockchain as cC}from"rango-types";import JS from"bignumber.js";var ce=new JS(0);import{WalletTypes as RS}from"@rango-dev/wallets-shared";var ko="~",_p=[RS.LEAP];import{BlockchainCategories as Ka,WalletState as nC}from"@rango-dev/ui";import{TransactionType as Hr}from"rango-sdk";var Dp="Roboto",Va=[{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 Vo(t){return Array.from(new Set(t))}i(Vo,"removeDuplicateFrom");function Qr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Qr,"debounce");function at(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(at,"containsText");function Op(t,e){return t.toLowerCase()===e.toLowerCase()}i(Op,"exactText");function Up(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Up,"startWithText");var N=i(()=>document.getElementById(et.SWAP_BOX_ID),"getContainer"),vo=i(()=>document.getElementById(et.EXPANDED_BOX_ID),"getExpanded");function zp(t,e,o){let n=!!e&&Op(e,t),r=!!o&&Op(o,t);return n!==r?n?-1:1:0}i(zp,"compareExactMatchText");function ja(t,e,o){let n=!!e&&at(e,t),r=!!o&&at(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ja,"compareContainsText");function Xa(t,e,o){let n=!!e&&Up(e,t),r=!!o&&Up(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Xa,"compareStartWithText");function qp(t,e,o){if(!o)return 0;let n=zp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=zp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Xa(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ja(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Xa(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ja(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Xa(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ja(o,t.address,e.address);if(r!==0)return r}return 0}i(qp,"compareWithSearchFor");var Gr=i((t,e)=>{switch(e){case Ka.ALL:return!0;case Ka.UTXO:return t===Hr.TRANSFER;case Ka.OTHER:return t!==Hr.TRANSFER&&t!==Hr.COSMOS&&t!==Hr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Hp=i(t=>Va.find(o=>o.value===t)?.url,"getFontUrlByName");function Qp(t,e){let o=!!t.find(n=>n.state===nC.CONNECTED);return e===!1&&o}i(Qp,"isSingleWalletActive");function Gp(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(Gp,"memoizedResult");import{BigNumber as Rp}from"bignumber.js";function Vp(t){return t.replace(/^0+(?=\d)/g,"")}i(Vp,"removeLeadingZeros");function Kp(t){return t.replace(/^\.(\d+)/,"0.$1")}i(Kp,"ensureLeadingZeroForDecimal");function jp(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(jp,"formatThousandsWithCommas");function Xp(t){return t.replace(/\s+/g,"-")}i(Xp,"replaceSpacesWithDash");function Yp(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(Yp,"stripTrailingZeros");function Vr(t){return/^0+(?:\.0+)?$/.test(t)}i(Vr,"isZeroValue");function Zp(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(Zp,"isValidCurrencyFormat");function Jp(t){return/\d+$/.test(t)}i(Jp,"isColorKeyOverridden");var Nn=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 Rp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Rp(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 Kr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Bt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Bn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function eu(t){return Vr(t)?"0":Yp(t)}i(eu,"sanitizeInputAmount");function Wn(t){return t.connected?st.CONNECTED:t.connecting?st.CONNECTING:t.installed?st.DISCONNECTED:st.NOT_INSTALLED}i(Wn,"mapStatusToWalletState");function ou(t,e,o,n){return o.filter(r=>!_p.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:g,isHub:h}=e(r),f=Vo(u.map(T=>T.type)),m=Wn(t(r));return{title:a,image:s,link:aC(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:f,needsDerivationPath:d,properties:g,isHub:h}})}i(ou,"mapWalletTypesToWalletInfo");function Ln(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Ln,"walletAndSupportedChainsNames");function Za(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(g=>g.chain===l)){let g={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(g)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=iC(l),d=c.length>0,g=c.includes(u),h=u===tu.Unknown;if(d&&!g&&!h)return;let m=u===tu.Unknown&&lC(p);if(h&&!m)return;o.includes(u)||m?r?s(u,p.toLowerCase(),r):c.filter(C=>o.includes(C)).forEach(C=>{s(C,p.toLowerCase())}):s(u,p)}),a}i(Za,"prepareAccountsForWalletStore");function wo(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,g=p.to.blockchain,h=a===o.swaps.length-1,f=u===l.length-1;(!h&&!f||h&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(g)})}e==="all"&&n.add(c)}),Array.from(n)}i(wo,"getQuoteChains");function Mn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Mn,"isAccountAndWalletMatched");var nu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?Ya(n.usdValue,n.decimals):ce.toFixed();return o.plus(r)},new Ko(ce));return pC(e.toString())},"calculateWalletUsdValue");function pC(t){let e=t.toString().split(".");return e[0]=jp(e[0]),e.join(".")}i(pC,"numberWithThousandSeparator");var Yr=i((t,e)=>{let o=sC(Object.entries(t).map(([,n])=>n).filter(cC));return o&&o[e]?.experimental},"isExperimentalChain");function Ya(t,e){return new Ko(t).shiftedBy(-e).toFixed()}i(Ya,"representAmountInNumber");function Zr(t){if(!t)return null;let e=Ya(t.amount,t.decimals),o=t.usdValue?Ya(t.usdValue,t.decimals):null,n=_(e,8,8),r=o?_(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(Zr,"formatBalance");function ru(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Ko(t.usdValue).shiftedBy(-t.decimals):ce,n=e&&e.usdValue?new Ko(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 Ko(t.amount).shiftedBy(-t.decimals):ce,n=e&&e.amount?new Ko(e.amount).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(ru,"compareTokenBalance");function Ot(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Ot,"areTokensEqual");function iu(t,e){return t.map(o=>({isPartiallyConnected:Ja(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===st.CONNECTED&&!n.isPartiallyConnected)-+(o.state===st.CONNECTED&&!o.isPartiallyConnected)||+(n.state===st.CONNECTED)-+(o.state===st.CONNECTED)||+(n.state===st.DISCONNECTED||n.state===st.CONNECTING)-+(o.state===st.DISCONNECTED||o.state===st.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(iu,"sortWalletsBasedOnConnectionState");function oo(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(oo,"getConciseAddress");function au({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(au,"getAddress");var su=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function lu(t){return t.map(e=>e.state).join("-")}i(lu,"hashWalletsState");function cu(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(cu,"filterBlockchainsByWalletTypes");function pu(t,e){return e===rC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Gr(n,e))return!0;return!1})}i(pu,"filterWalletsByCategory");function Ja(t,e){return!t.isHub||!t.needsNamespace||t.state!==st.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(Ja,"checkIsWalletPartiallyConnected");var Ra={API_KEY:qr};function Ut(t){return Ra[t]||""}i(Ut,"getConfig");function uu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ra=e,Ra}i(uu,"initConfig");var du=20,mu=25,es="theme-widget",ts=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Ot(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Ot(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),os=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),fu=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Jr,lt=i(()=>Jr||(Jr=new uC(Ut("API_KEY"),Ut("BASE_URL")),Jr),"httpService");import{i18n as hu}from"@lingui/core";var Rr=[.5,1,3],ei=1,jo=5,Pn=30,ti=0;import{WidgetEvents as gu}from"@rango-dev/queue-manager-rango-preset";var ns=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ns||{}),rs=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(rs||{}),is=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(is||{}),Xo=(a=>(a[a.RouteEvent=gu.RouteEvent]="RouteEvent",a[a.StepEvent=gu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Xo||{});function oi(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Vo(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(oi,"getUniqueSwappersGroups");function yu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(yu,"sortLiquiditySourcesByGroupTitle");function tt(t,e){return e?.[t]==="hidden"}i(tt,"isFeatureHidden");function Yo(t,e){return e?.[t]==="enabled"}i(Yo,"isRoutingEnabled");var Su=i((t,e,o)=>tt("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function Zo(t){return t==ti?{type:"error",message:hu.t("Slippage must be greater than or equal to 0.01")}:t>jo&&t<=Pn?{type:"warning",message:hu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(Zo,"getSlippageValidation");var Cu=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=Or({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>Lp.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=Qo.get(u);d?.length||(d=An({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Qo.set(u,d)),d=Su(d,s,a.features);let g=e().blockchains({type:o.type});return d.filter(f=>o.blockchain&&f.blockchain!==o.blockchain||!g.some(m=>m.name===f.blockchain)?!1:o.searchFor?!!(at(f.symbol,o.searchFor)||at(f.address||"",o.searchFor)||at(f.name||"",o.searchFor)):!0).sort((f,m)=>{let T=e().isTokenPinned(f,o.type),y=e().isTokenPinned(m,o.type);if(T!==y)return T?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(f),A=o.getBalanceFor(m),E=ru(I,A);if(E!==0)return E}let C=l.get(f.blockchain),k=l.get(m.blockchain),v=Ga(f,C),b=Ga(m,k);if(v!==b)return v?-1:1;if(f.isPopular!==m.isPopular)return f.isPopular?-1:1;if(o.searchFor){let I=qp(f,m,o.searchFor);if(I)return I}return f.isSecondaryCoin!==m.isSecondaryCoin?f.isSecondaryCoin?1:-1:C&&k?C.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=gt(o),s=n.get(a);return s||(s=r.find(c=>gt(c)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Ot(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(yu)},fetch:async()=>{try{let{routing:o}=e().config,n=Yo("enableCentralizedSwappers",o),r=await lt().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,f)=>h.sort-f.sort).forEach(h=>{h.enabled&&d.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let f=gt(h);c[h.blockchain]||(c[h.blockchain]=[]),s.set(f,h),c[h.blockchain].push(f)}),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 mC,Chinese as Tu,Denmark as fC,English as gC,Finland as hC,French as yC,German as SC,Greece as CC,Hungary as TC,India as kC,Indonesian as vC,Italian as wC,Japanese as xC,Korea as bC,Lithuania as EC,Malay as IC,Netherlands as AC,Pakistan as NC,Philippines as BC,Poland as WC,Portuguese as LC,Russian as MC,SaudiArabia as PC,Serbia as _C,Slovakia as DC,SouthAfrica as $C,Spanish as FC,Swahili as OC,Swedish as UC,Thai as zC,Turkish as qC,Ukrainian as HC,Vietnamese as QC}from"@rango-dev/ui";var ku=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:$C},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:PC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:dC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:mC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Tu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Tu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:fC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:AC},{title:"English",label:"English",local:"en",SVGFlag:gC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:BC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:hC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:yC},{title:"German",label:"Deutsch",local:"de",SVGFlag:SC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:CC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:kC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:TC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:vC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:wC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:xC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:bC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:EC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:IC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:WC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:LC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:MC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:_C},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:DC},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:FC},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:OC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:UC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:zC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:qC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:HC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:NC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:QC}],Jo="en";var vu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:ei,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=Vo(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=tt("theme",n),s=tt("language",n),c=tt("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||Jo},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||Jo}})},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=Or({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import us from"bignumber.js";import GC from"mitt";var ve=GC(),VC={on:ve.on,off:ve.off};var wu=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 xu from"bignumber.js";function zt(t){return`${t.blockchain}${ko}${t.address}${ko}${t.symbol}`}i(zt,"createAssetKey");function bu(t,e){return`${zt(e)}${ko}${t}`}i(bu,"createBalanceKey");function _n(t){let[e,o,n]=t.split(ko);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(_n,"extractAssetFromBalanceKey");function ss(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[zt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new xu(r??ce).multipliedBy(o[s].amount).toString():""})})}),o}i(ss,"computeNextBalancesWithNewPrices");function ls(t,e){let o={};return t.balances?.forEach(n=>{let r=bu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new xu(c??ce).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(ls,"createBalanceStateForNewAccount");function cs(t,e){for(let o in e){let n=_n(o),r=zt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(cs,"updateAggregatedBalanceStateForNewAccount");function KC(t,e){let o=_n(e),n=zt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(KC,"removeBalanceFromAggregatedBalance");function ps(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=_n(l);!!n.find(d=>bu(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=KC(a,l):r[l]=s[l]}),{_balances:r,_aggregatedBalances:a}}i(ps,"computeNextStateAfterWalletBalanceRemoval");function jC(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(jC,"matchWalletDetailsWithConnectedWallet");var XC=Gp(),Eu=wu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Mn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Mn(s,a))?{...a,loading:!1,error:!1,explorerUrl:jC(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Mn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Mn(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 lt().getMultipleTokenBalance({assets:p.map(({symbol:d,address:g,blockchain:h})=>({symbol:d,address:g,blockchain:h})),walletAddress:l});if(u){let d=e()._balances,g=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let f={blockChain:h.asset.blockchain,balances:[h],address:l},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};ss(m,f,d);let T=ls(f,e);g=cs(g,T),d={...d,...T}}),t(h=>({_balances:{...h._balances,...d},_aggregatedBalances:g}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{ve.emit("walletEvent",{type:"connect",payload:{walletType:o[0].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}=ps(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(ve.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0)return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await lt().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 g={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};ss(g,d,l);let{_balances:h,_aggregatedBalances:f}=ps(g,r,{chains:[d.blockChain]});if(p=f,l=h,!e().connectedWallets.find(T=>T.walletType===r&&T.address===d.address&&T.chain===d.blockChain))return;let m=ls(d,e);p=cs(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(g=>g.failed).map(g=>({chain:g.blockChain,walletType:r,address:g.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=zt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let l=a[0];return n[l]}let c=n[a[0]];return a.forEach(l=>{let p=n[l],u=new us(p.amount),d=new us(c.amount);u.isGreaterThan(d)&&(c=p)}),c},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(ko);return p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>XC(()=>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=_n(c);if(p.blockchain===n.chain){let u=e().findToken(p),d=l.amount?new us(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 Iu(t){return YC()(ZC((...e)=>({...Eu(...e),...Cu(...e),...vu(...e),...Bp(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(Iu,"createAppStore");var Au=RC(null);function S(){let t=eT(Au);if(tT(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(S,"useAppStore");function Nu(t){let e=oT();return e.current||(e.current=Iu(t.config)),JC.createElement(Au.Provider,{value:e.current},t.children)}i(Nu,"AppStoreProvider");function kt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=S(),{state:r,getWalletInfo:a}=nT(),s=S().blockchains(),{handleDisconnect:c}=Ho(),l=Ep(n()),p=ou(r,a,l,e);p=rT()?p.filter(m=>m.showOnMobile!==!1&&r(m.type).installed):p;let u=iu(p,r),d=i(m=>!o.find(T=>T.walletType===m&&T.chain===e),"isExperimentalChainNotAdded"),g=aT(()=>{let m=p?.filter(T=>T.state===ds.CONNECTING)||[];for(let T of m)c(T)},[lu(p)]);sT(()=>()=>{g()},[]);let h=i(m=>{let T=m.find(C=>C.type===Dn.DEFAULT);return!T||T.state===ds.NOT_INSTALLED?!1:m.filter(C=>C.state!=ds.NOT_INSTALLED&&![Dn.DEFAULT,Dn.WALLET_CONNECT_2,Dn.LEDGER].includes(C.type)&&a(C.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),f=i((m,T,y)=>Yr(y,T)&&d(m)&&!iT.includes(m)||m==Dn.DEFAULT&&!h(p),"shouldExcludeWallet");return{list:u.filter(m=>!f(m.type,e??"",s)),terminateConnectingWallets:g}}i(kt,"useWalletList");import{Modal as uT}from"@rango-dev/ui";import dT from"react";import{create as pT}from"zustand";var Bu="rango-widget";var $n=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(Bu),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 cT=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"),Ro=cT;var oe=Ro(pT()((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})}}))),bo=new $n({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 dT.createElement(uT,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as on}from"@lingui/core";import{Alert as ET,Button as IT,Divider as pi,Image as AT,MessageBox as NT,RadioRoot as BT}from"@rango-dev/ui";import pe,{useEffect as WT,useMemo as LT,useState as MT}from"react";import{i18n as hT}from"@lingui/core";import{Typography as Fu}from"@rango-dev/ui";import en from"react";function ni(t,e){return t.find(o=>o.name===e)?.logo}i(ni,"getBlockchainLogo");import{darkTheme as mT,Image as fT,styled as qt,Typography as gT}from"@rango-dev/ui";var ri=qt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${mT} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),ii=qt("div",{display:"flex",gap:"$8",alignItems:"center"}),Lu=qt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Mu=qt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Pu=qt("div",{display:"flex",gap:"$6",alignItems:"center"}),_u=qt("div",{paddingLeft:"48px"}),Du=qt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),$u=qt(gT,{maxWidth:"100px"}),ai=qt(fT,{variants:{disabled:{true:{opacity:"0.5"}}}});function si(t){let{namespace:e}=t,o=S().blockchains();return en.createElement(ri,{unsupported:!0},en.createElement(ii,null,en.createElement(ai,{src:ni(o,e.id),size:40,disabled:!0}),en.createElement(Mu,null,en.createElement(Fu,{variant:"label",size:"large"},e.label),en.createElement(Fu,{variant:"body",size:"xsmall"},hT.t("(Currently not supported)")))))}i(si,"NamespaceUnsupportedItem");import{Checkbox as wT,Radio as xT}from"@rango-dev/ui";import hs from"react";import{i18n as gs}from"@lingui/core";import{ChevronDownIcon as ST,ChevronUpIcon as CT,Divider as TT,Typography as Fn}from"@rango-dev/ui";import Ne,{useEffect as kT,useState as vT}from"react";import{Image as Uu,Tooltip as zu,Typography as yT}from"@rango-dev/ui";import Wt from"react";import{styled as Ou}from"@rango-dev/ui";var ms=Ou("div",{display:"flex",alignItems:"center",padding:0,margin:0}),li=Ou("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 fs=3;function qu(t){let{chains:e}=t;return Wt.createElement(ms,{id:"widget-supported-chains-container"},e.slice(0,fs).map((o,n)=>Wt.createElement(zu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Wt.createElement(li,{firstItem:n===0},Wt.createElement(Uu,{src:o.logo,size:15})))),e.length>fs&&Wt.createElement(zu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Wt.createElement(ms,null,e.map((o,n)=>Wt.createElement(li,{key:o.name,firstItem:n===0},Wt.createElement(Uu,{src:o.logo,size:15}))))},Wt.createElement(li,null,Wt.createElement(yT,{variant:"body",size:"xsmall"},"+",e.length-fs))))}i(qu,"SupportedChainsList");function Eo(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=vT(!1),p=S().blockchains();kT(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!o&&!r&&u.length>1;return Ne.createElement(ri,{hasError:!!o,clickable:!!s,onClick:s},Ne.createElement(ii,null,Ne.createElement(ai,{src:ni(p,e.id),size:40}),Ne.createElement(Lu,{showSupportedChains:d||r||!!o},Ne.createElement(Pu,null,Ne.createElement(Fn,{variant:"label",size:"large"},e.label),r&&Ne.createElement(Fn,{variant:"body",size:"small",color:"success500"},gs.t("Connected")),!!o&&Ne.createElement(Fn,{variant:"body",size:"small",color:"error500"},gs.t("Connection failed"))),d&&Ne.createElement(qu,{chains:u}),r&&Ne.createElement($u,{variant:"body",size:"small",color:"neutral700"},a),o&&Ne.createElement(Du,{onClick:()=>l(g=>!g)},Ne.createElement(Fn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},gs.t("See why")),c?Ne.createElement(CT,{size:12,color:"gray"}):Ne.createElement(ST,{size:12,color:"gray"}))),n),!!o&&c&&Ne.createElement(Ne.Fragment,null,Ne.createElement(TT,{size:4}),Ne.createElement(_u,null,Ne.createElement(Fn,{variant:"body",size:"small",color:"neutral700"},o))))}i(Eo,"NamespaceItem");function Hu(t){let{onClick:e,type:o,namespace:n}=t;return hs.createElement(Eo,{namespace:n,onClick:e,suffix:o==="radio"?hs.createElement(xT,{value:n.value}):hs.createElement(wT,{checked:t.value})})}i(Hu,"NamespaceListItem");import{Button as bT,styled as Qu}from"@rango-dev/ui";var ci=Qu("ul",{padding:0,paddingTop:"$16",paddingBottom:"$20",margin:0}),tn=Qu(bT,{minHeight:"$40"});function On(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=S().blockchains(),[l,p]=MT([]),u=LT(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:T=>T.includes(m)?T.filter(y=>y!==m):T.concat(m))},"onSelect"),g=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");g?p([]):u&&p(u.map(m=>m.value))},"onSelectAll"),f=i(m=>r?pe.createElement(BT,{value:l?.[0]},m):pe.createElement(pe.Fragment,null,m),"wrapRadioRoot");return WT(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(T=>T.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(m.map(T=>T.value))}else p(u.map(m=>m.value))},[]),pe.createElement(pe.Fragment,null,pe.createElement(NT,{type:"info",title:on.t("Connect {wallet}",{wallet:e.title}),description:on.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:pe.createElement(AT,{src:s,size:45})}),r?pe.createElement(pe.Fragment,null,pe.createElement(pi,{size:20}),pe.createElement(ET,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:on.t("This wallet can only connect to one chain at a time. ")})):pe.createElement(pe.Fragment,null,pe.createElement(pi,{size:30}),pe.createElement(IT,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},g?on.t("Deselect all"):on.t("Select all"))),pe.createElement(ci,null,f(pe.createElement(pe.Fragment,null,a?.data.map((m,T,y)=>pe.createElement(pe.Fragment,{key:m.id},m.unsupported?pe.createElement(si,{namespace:m}):pe.createElement(Hu,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),T!==y.length-1&&pe.createElement(pi,{size:10})))))),pe.createElement(pi,{size:20}),pe.createElement(tn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},on.t("Connect")))}i(On,"Namespaces");import{i18n as ui}from"@lingui/core";import{Button as zT,Divider as Cs,Image as qT,MessageBox as HT}from"@rango-dev/ui";import{useWallets as QT}from"@rango-dev/wallets-react";import Xe from"react";import{styled as PT}from"@rango-dev/ui";var Gu=PT("div",{display:"flex",justifyContent:"end"});import{i18n as ys}from"@lingui/core";import{Button as _T,Spinner as DT}from"@rango-dev/ui";import{useWallets as $T}from"@rango-dev/wallets-react";import Ss,{useLayoutEffect as FT,useRef as OT,useState as UT}from"react";var Vu=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,{connect:a,disconnect:s,state:c}=$T(),[l,p]=UT(null),d=c(o).namespaces?.get(n.value),g=d.accounts?.[0]?.split(":"),h=OT(!1);FT(()=>{r&&!h.current&&f(o,n.value)},[]);let f=i(async(y,C)=>{try{h.current=!0,await a(y,[{namespace:C,network:""}])}catch(k){p(k)}finally{h.current=!1}},"handleConnectNamespace"),m=i(async y=>{p(null),y.connected?await s(o,[n.value]):f(o,n.value)},"handleButtonClick"),T=i(()=>d.connected?ys.t("Disconnect"):l?ys.t("Try again"):ys.t("Connect"),"getButtonText");return Ss.createElement(Eo,{namespace:n,connected:d.connected,error:l?.message,address:d.connected?oo(g?.[g?.length-1]):"",suffix:d.connecting?Ss.createElement(DT,{color:"info"}):Ss.createElement(_T,{id:"widget-name-space-connect-btn",variant:"ghost",type:d.connected?"error":"primary",size:"xsmall",onClick:async()=>m(d)},T())})},"NamespaceDetachedItem");function Un(t){let{selectedNamespaces:e,value:o,onDisconnectWallet:n}=t,{targetWallet:r}=o,{state:a}=QT(),s=a(r.type);return Xe.createElement(Xe.Fragment,null,Xe.createElement(HT,{type:"info",title:ui.t("Connect {wallet}",{wallet:r.type}),description:ui.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:Xe.createElement(qT,{src:r.image,size:45})}),Xe.createElement(Cs,{size:30}),Xe.createElement(Gu,null,Xe.createElement(zT,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:s.connecting||!s.connected,onClick:n},ui.t("Disconnect wallet"))),Xe.createElement(ci,{id:"widget-detached-namespace-list",as:"ul"},r.needsNamespace?.data.map((c,l,p)=>Xe.createElement(Xe.Fragment,{key:c.id},c.unsupported?Xe.createElement(si,{namespace:c}):Xe.createElement(Vu,{walletType:r.type,namespace:c,initialConnect:e?.includes(c.value)}),l!==p.length-1&&Xe.createElement(Cs,{size:10})))),Xe.createElement(Cs,{size:20}),Xe.createElement(tn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},ui.t("Done")))}i(Un,"Detached");import{i18n as nn}from"@lingui/core";import{Divider as ju,Image as jT,MessageBox as XT,Select as YT,TextField as ZT}from"@rango-dev/ui";import ht,{useEffect as JT,useState as Xu}from"react";import{namespaces as GT}from"@rango-dev/wallets-shared";var di={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ts(t){let e=t?GT[t].derivationPaths:null;return e?[...e,di]:[]}i(Ts,"getDerivationPaths");import{Button as VT,styled as ks,Typography as KT}from"@rango-dev/ui";var Ku=ks("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),vs=ks(KT,{paddingLeft:"$10"}),ws={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},pP=ks(VT,{minHeight:"$40"});var Yu="0";function zn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Xu(null),[c,l]=Xu(Yu),p=a===di.id,u=Ts(o),d=i(({value:h})=>{let f=u?.find(m=>m.id===h);f&&(a===di.id&&Number.isNaN(Number(c))&&l(Yu),s(f.id))},"handleDerivationPathItemClick"),g=i(()=>{let h=u.find(f=>f.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return JT(()=>{s(Ts(o)[0]?.id||null)},[o]),ht.createElement(ht.Fragment,null,ht.createElement(ju,{size:20}),ht.createElement(XT,{type:"info",title:nn.t("Select Derivation Path"),description:nn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:ht.createElement(jT,{src:n,size:45})}),ht.createElement(Ku,null,ht.createElement(vs,{variant:"body",size:"xsmall",color:"$neutral600"},nn.t("Choose Derivation Path Template")),ht.createElement(YT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:ws}}),ht.createElement(ju,{size:20}),ht.createElement(vs,{variant:"body",size:"xsmall",color:"$neutral600"},p?nn.t("Enter Path"):nn.t("Enter Index")),ht.createElement(ZT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:ws})),ht.createElement(tn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:g,disabled:!u||!a||!c},nn.t("Confirm")))}i(zn,"DerivationPath");import{i18n as rn}from"@lingui/core";import{Image as tk,MessageBox as xs,WalletState as ok}from"@rango-dev/ui";import{useWallets as nk}from"@rango-dev/wallets-react";import Io from"react";import{keyframes as RT,styled as mi}from"@rango-dev/ui";var kP=mi("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Zu=mi("div",{position:"relative"}),ek=RT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Ju=mi("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ek} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Ru=mi("div",{"& img":{borderRadius:"50%"}});function bs(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=nk();return Wn(a(n))===ok.CONNECTED?Io.createElement(xs,{type:"success",title:rn.t("Wallet Connected"),description:rn.t("Your wallet is connected, you can use it to swap.")}):o?Io.createElement(xs,{type:"error",title:rn.t("Failed to Connect"),description:o||rn.t("Your wallet is not connected. Please try again.")}):Io.createElement(xs,{type:"loading",title:rn.t("Connecting to your wallet"),description:rn.t("Click connect in your wallet popup."),icon:Io.createElement(Zu,null,Io.createElement(Ru,null,Io.createElement(tk,{src:r,size:45})),Io.createElement(Ju,null))})}i(bs,"ConnectStatus");import{i18n as Es}from"@lingui/core";import{Button as rk,Divider as ed,MessageBox as ik}from"@rango-dev/ui";import fi from"react";function Is(t){let{displayName:e,onConfirm:o,id:n}=t;return fi.createElement(ik,{id:n,title:Es.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Es.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},fi.createElement(ed,{size:18}),fi.createElement(ed,{size:32}),fi.createElement(rk,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Es.t("Confirm")))}i(Is,"ExperimentalChain");function td(t,e){return t().status==="init"&&!!e}i(td,"isOnStatus");function qn(t){return t().status==="namespace"}i(qn,"isOnNamespace");function Hn(t){return t().status==="derivationPath"}i(Hn,"isOnDerivationPath");function Co(t){return t().status==="detached"}i(Co,"isOnDetached");var ck=3e3,pk=300;function Qn(t){let e=lk(),[o,n]=od(!1),[r,a]=od(),s=i(v=>{a(v.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=kt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:g,handleDisconnect:h}=Ho(),f=i(v=>{u(t.wallet,v).then(k).catch(s)},"handleConfirmNamespaces"),m=i(()=>{y()},"handleDetachedConfirm"),T=i(v=>{if(!v)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(v).then(k).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),g(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),k=i((v,b)=>{let I=v.status==="connected",A=["disconnected","disconnected-unhandled"].includes(v.status);I?(t.onConnect?.(),b||(e.current=setTimeout(y,ck))):A&&y()},"afterConnected");return sk(()=>{if(t.wallet){C();let v=!1,b=!0;i(()=>{setTimeout(()=>{b=!1,v||n(!0)},pk)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(A=>{["namespace","Detached","derivation-path"].includes(A.status)||(v=!0),k(A,b)}).catch(s)}},[t.wallet]),no.createElement(R,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},td(d,t.wallet)&&no.createElement(no.Fragment,null,no.createElement(bs,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),no.createElement(ak,{direction:"vertical",size:32})),qn(d)&&no.createElement(On,{onConfirm:f,value:d().namespace}),Hn(d)&&no.createElement(zn,{onConfirm:T,value:d().derivationPath}),Co(d)&&no.createElement(Un,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces}))}i(Qn,"StatefulConnectModal");import{Provider as gk}from"@rango-dev/wallets-react";import gi,{createContext as hk,useEffect as sd,useMemo as yk,useRef as ld}from"react";import{useEffect as uk}from"react";function nd(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(nd,"hashProviders");function As(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=S(),a=n();return uk(()=>{o(),r()},[nd(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(As,"useWalletProviders");import{legacyFormatAddressWithNetwork as dk,legacyReadAccountAddress as rd}from"@rango-dev/wallets-core/legacy";import{Events as an}from"@rango-dev/wallets-react";import{isEvmBlockchain as mk}from"rango-sdk";function id(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=S(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(mk).map(m=>m.name),u=i((m,T)=>{let[y,,C,k,v]=m,b={walletType:y,network:k.network??void 0,accounts:C};c.current?c.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let I=Za(y,C,p,T.supportedChainNames,v.isContractWallet);I.length&&e(I,v.namespace,k.derivationPath)},"onAccountsEvent"),d=i((m,T,y,C,k)=>{if(T===an.ACCOUNTS){let v=Ln(k.supportedBlockchains);y&&u([m,T,y,C,k],{supportedChainNames:v})}T===an.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),T===an.NAMESPACE_DISCONNECTED&&n(m,y)},"handleUpdatesForHub"),g=i((m,T,y,C,k)=>{if(T===an.ACCOUNTS){let v=Ln(k.supportedBlockchains),b=[],I=[];if(y?.forEach(E=>{let{network:x}=rd(E);p.includes(x)?b.push(E):I.push(E)}),r.filter(E=>E.walletType===m).map(E=>dk(E.address,E.chain)).length>0){if(b.length>0){let E=Za(m,b,p,v,k.isContractWallet);a(m,{chains:E.map(x=>x.chain)})}I.length>0&&a(m,{chains:I.map(E=>{let{network:x}=rd(E);return x})})}y?u([m,T,y,C,k],{supportedChainNames:v}):(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((m,T,y,C,k)=>{if(T===an.CONNECTED&&y){let v={walletType:m,network:C.network??void 0,accounts:C.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(T===an.NETWORK&&y){let v={walletType:m,network:y,accounts:C.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((m,T,y,C,k)=>{k.isHub?d(m,T,y,C,k):g(m,T,y,C,k),h(m,T,y,C,k)},"handler")}}i(id,"useUpdates");import{LegacyEvents as fk}from"@rango-dev/wallets-core/legacy";function ad(t,e){let[o,n,r,a,s]=e;n!==fk.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(ad,"propagateEvents");var hi=hk({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Sk(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=S(),a=S().blockchains(),s=S().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=As(s.wallets,c),p=ld(),u=ld(),{handler:d}=id({onConnectWalletHandler:p,onDisconnectWalletHandler:u});sd(()=>{n().catch(console.log)},[]),sd(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let g=oe.use.isActiveTab(),h=yk(()=>({onConnectWallet:f=>{p.current=f},onDisconnectWallet:f=>{u.current=f}}),[]);return gi.createElement(hi.Provider,{value:h},gi.createElement(gk,{allBlockChains:a,providers:l,onUpdateState:(f,m,T,y,C)=>{let k=[f,m,T,y,C];d(...k),t.onUpdateState&&ad(t.onUpdateState,k)},autoConnect:!!g,configs:{wallets:s.wallets}},t.children))}i(Sk,"Main");function yi(t){let{config:e,...o}=t;return gi.createElement(Nu,{config:e},gi.createElement(Sk,{...o,config:e}))}i(yi,"WidgetWallets");import qa from"react";import Ck,{Fragment as Tk}from"react";import{MemoryRouter as kk,useInRouterContext as vk}from"react-router";function cd({children:t}){let o=vk()?Tk:kk;return Ck.createElement(o,null,t)}i(cd,"AppRouter");import{I18nManager as nN}from"@rango-dev/ui";import gp from"react";import ze from"react";import{useRoutes as Q0}from"react-router-dom";var F={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as ln,useRef as bi}from"react";import ot from"bignumber.js";import{create as Ek}from"zustand";import{subscribeWithSelector as Ik}from"zustand/middleware";import{i18n as vt}from"@lingui/core";import{getRelatedWalletOrNull as bk,RouteEventType as uD}from"@rango-dev/queue-manager-rango-preset";import Ge from"bignumber.js";import{PendingSwapNetworkStatus as wi}from"rango-types";import{i18n as Qe}from"@lingui/core";var ne=i(()=>({genericServerError:Qe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Qe.t("Please reset your liquidity sources."),description:Qe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Qe.t("No Routes Found."),description:Qe.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Qe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Qe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Qe.t("High Price Impact"),title:Qe.t("Price impact is too high!"),description:Qe.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Qe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Qe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Qe.t("USD Price Unknown"),title:Qe.t("USD Price Unknown, Cannot calculate Price Impact."),description:Qe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Qe.t("Confirm USD Price Unknown")}}),"errorMessages");function pd(t){return t.type===0?t.diagnosisMessage??ne().noResultError.title:t.type===1?t.diagnosisMessage??ne().genericServerError:""}i(pd,"getQuoteErrorMessage");import{i18n as Si}from"@lingui/core";var Ao=i(()=>({connectWallet:Si.t("Connect Wallet"),swap:Si.t("Swap"),swapAnyway:Si.t("Swap anyway"),ethWarning:Si.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ns(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(Ns,"getFeeLabel");var Bs=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],ud=100,dd=30,md=15,fd=60;var gd=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],hd=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as xk}from"@rango-dev/queue-manager-rango-preset";import Z_ from"bignumber.js";function Sd(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(Sd,"getRequiredBalanceOfWallet");function Qt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Qt,"getPriceImpactLevel");function Ci(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=xk(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=To(a?a.toBlockchain:n.fromBlockchain,e),l=To(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(Ci,"createRetryQuote");function sn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=Gn(o),s=yt(o);if(o&&a&&s){let p=Ht(a.toString(),s.toString());if(!!p&&wd(a,p)){let d=ki(o?.swaps,n),g=Qt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:g}}}if(e&&Ed(e,o))return{type:4,usdValueChange:_(yt(o)?.minus(yt(e)??0).toString()??"0",null,2),percentageChange:_(Ht(yt(e)??"1",yt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=vi(o.swaps),l=r>jo;if(bd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:xd(o,r),minRequiredSlippage:c};return null}i(sn,"generateQuoteWarnings");function Cd(t){return![4].includes(t.type)}i(Cd,"isQuoteWarningConfirmationRequired");function Ht(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ws(t.toString(),e.toString());return n&&n<0?n:null}i(Ht,"getPriceImpact");var Td=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"),Ti=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"),kd=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(c=>c.swapperId));return Array.from(n).every(c=>s.has(c))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),vd=i(t=>{let e=i((o,n)=>{let r=Bs.indexOf(o.value),a=Bs.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function wd(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return gd.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ge(r)))}i(wd,"hasHighValueLoss");function Id(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(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(Id,"hasLimitError");function Ad(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new Ge(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new Ge(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0],o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=vt.t({id:"Required: >= {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=vt.t({id:"Required: > {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=vt.t({id:"Required: <= {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=vt.t({id:"Required: < {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Ad,"getLimitErrorMessage");function Nd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Ao().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Ao().swap,action:"confirm-swap",disabled:!0}:s?{title:Ao().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Ao().ethWarning,action:"confirm-warning",disabled:!1}:{title:Ao().swap,action:"confirm-swap",disabled:!1}:{title:Ao().connectWallet,action:"connect-wallet",disabled:!1}}i(Nd,"getSwapButtonState");function Ls(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ce))&&e&&e!=="0"&&n!==0)}i(Ls,"canComputePriceImpact");function Ms(t,e){let o=ce;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ge(r.amount).multipliedBy(a||0))}return o}i(Ms,"getUsdFeeOfStep");function ki(t,e){return t.reduce((o,n)=>o.plus(Ms(n,e)),ce)}i(ki,"getTotalFeeInUsd");function Ps(t){let e=ce,o=new Ge(t.price||0);return e=e.plus(new Ge(t.amount).multipliedBy(o)),e}i(Ps,"getUsdFee");function Bd(t){return t.reduce((e,o)=>e.plus(Ps(o)),ce)}i(Bd,"getTotalFeesInUsd");function Wd(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(Wd,"getFeesGroup");function Ld(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(Ld,"checkSlippageErrors");function xd(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(xd,"checkSlippageWarnings");function vi(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(vi,"getMinRequiredSlippage");function bd(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(bd,"hasProperSlippage");function Md(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:g,destination:h,contractCall:f}=t,m=a?.reduce((C,k)=>(C[k.chain]=k.address,C),{}),T=[];return r?.forEach(C=>{T.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??void 0,affiliateWallets:g??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:T,selectedWallets:m??{},slippage:p.toString(),contractCall:f,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1}}}i(Md,"createQuoteRequestBody");function Pd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Pd,"getWalletsForNewSwap");function Gn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}i(Gn,"getUsdInputFrom");function yt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}i(yt,"getUsdOutputFrom");function Ws(t,e){return new Ge(e).div(new Ge(t)).minus(1).multipliedBy(ud).toNumber()}i(Ws,"getPercentageChange");function Ed(t,e){let o=Gn(t),n=yt(t),r=yt(e);if(!o||!n||!r)return!1;let a=Ws(n.toString(),r.toString());return hd.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Ed,"isOutputAmountChangedExcessively");function _d(t,e,o){let n=t.validationStatus,r=wo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>Sd(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=_(new Ge(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=_(new Ge(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=vt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=vt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=vt.t(" for input and network fee")),vt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:ft(s.asset.blockchain,o)}})})}i(_d,"generateBalanceWarnings");function Vn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==wi.NetworkChanged}i(Vn,"isNetworkStatusInWarningState");function Dd(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,"")),Vn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?bk(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case wi.WaitingForConnectingWallet:r=u?vt.t("Connect {wallet}",{wallet:u}):r;break;case wi.WaitingForQueue:r=r||vt.t("Waiting for other running tasks to be finished");break;case wi.WaitingForNetworkChange:r=r||vt.t("Waiting for changing wallet network");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(Dd,"getSwapMessages");function $d(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($d,"getLastConvertedTokenInFailedSwap");function Fd(t){return t.status==="failed"}i(Fd,"shouldRetrySwap");function Od(t,e,o,n,r,a){if(!n||t)return!0;let s=wo({filter:"all",quote:n}),c=wo({filter:"required",quote:n}),l=s.every(d=>r.some(g=>g.chain===d)),p=c.every(d=>r.some(g=>g.chain===d)),u=o&&a?Go(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Od,"isConfirmSwapDisabled");function Ud(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Ud,"isTokensIdentical");var xi=i((t,e)=>t?.usdPrice?new ot(e||ce).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Ro(Ek()(Ik(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new ot(0),outputUsdValue:new ot(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 Bn(o.inputAmount)?(e&&(n=e?.outputAmount?new ot(e?.outputAmount):null,a=Gn(e)??ce,r=yt(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 ot(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new ot(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new ot(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:xi(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 ot(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=eu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;Vr(e)||(o=Vp(o),o=Kp(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new ot(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:xi(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:xi(n??null,s),outputUsdValue:new ot(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?xi(e.toToken,e.outputAmount?.toString()||""):new ot(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new ot(0),inputUsdValue:new ot(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new ot(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),zd=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ve.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&&ve.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function qd(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=O(),u=S().config,d=S().fetchStatus,g=S().blockchains(),{findToken:h}=S(),{setAffiliateRef:f,setAffiliatePercent:m,setAffiliateWallets:T}=S(),y=u?.from?.tokens,C=u?.from?.blockchains,k=u?.to?.tokens,v=u?.to?.blockchains,b=bi(void 0),I=bi(void 0),A=bi(void 0),E=bi(void 0);ln(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),ln(()=>{if(d==="success"){r();let x=g.find(P=>P.name===u?.from?.blockchain),w=u?.from?.token,B=w&&h(w);(x||!x&&A.current)&&n(x??null),B?a({token:B,meta:{blockchains:g}}):!B&&b.current&&a({token:null}),A.current=u?.from?.blockchain,b.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),ln(()=>{ts(s,y)&&a({token:null}),os(l,C)&&n(null)},[y,C]),ln(()=>{ts(c,k)&&a({token:null}),os(p,v)&&o(null)},[k,v]),ln(()=>{if(d==="success"){r();let x=g.find(P=>P.name===u?.to?.blockchain),w=u?.to?.token,B=w&&h(w);(x||!x&&E.current)&&o(x??null),B?e({token:B,meta:{blockchains:g}}):!B&&I.current&&e({token:null}),E.current=u?.to?.blockchain,I.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,d]),ln(()=>{f(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),T(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(qd,"useSyncStoresWithConfig");import{useEffect as $s,useRef as Ak}from"react";import{useInRouterContext as Nk,useLocation as Bk,useSearchParams as Wk}from"react-router-dom";function _s(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(_s,"convertTokenSearchParamToAsset");function Ds(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ds,"tokenToSearchParam");function Os(){let t=Bk(),[e,o]=Wk(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:g}=O(),h=S().fetchStatus,f=S().blockchains(),m=Nk(),{updateIframe:T,updateCampaignMode:y}=S(),C=S().isInCampaignMode(),k=Ak(),{findToken:v}=S(),b=i(()=>{let A={};for(let[L,te]of e.entries())L.startsWith("utm_")&&(A[L]=te);let E=e.get("fromAmount"),x=e.get("fromBlockchain"),w=e.get("fromToken"),B=e.get("toBlockchain"),P=e.get("toToken"),$=e.get("autoConnect"),q=e.get("clientUrl"),ee=e.get("liquiditySources"),V=e.get("blockchain");return{fromAmount:E,fromBlockchain:x,fromToken:w,toBlockchain:B,toToken:P,autoConnect:$,clientUrl:q,liquiditySources:ee,utmQueryParams:A,blockchain:V}},"getUrlSearchParams"),I=i(A=>{for(let E in A)A[E]||delete A[E];o(A,{replace:!0})},"updateUrlSearchParams");$s(()=>{let{autoConnect:A,clientUrl:E,utmQueryParams:x,blockchain:w}=b();m&&h==="success"&&I({fromBlockchain:n?.name,fromToken:Ds(a),toBlockchain:r?.name,toToken:Ds(s),fromAmount:c,autoConnect:A??void 0,clientUrl:E??void 0,blockchain:w??void 0,liquiditySources:C?k.current:void 0,...x})},[t.pathname,c,n,a,r,s,C,h]),$s(()=>{if(!m)return;let A=b();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&g(A.fromAmount),h==="success"){let E=f.find(P=>P.name===A.fromBlockchain),x=A.fromToken&&E?v(_s(A.fromToken,E)):void 0,w=f.find(P=>P.name===A.toBlockchain),B=A.toToken&&w?v(_s(A.toToken,w)):void 0;E&&(l(E),x&&u({token:x,meta:{blockchains:f}})),w&&(p(w),B&&d({token:B,meta:{blockchains:f}}))}},[h]),$s(()=>{let{clientUrl:A,liquiditySources:E}=b();T("clientUrl",A||void 0),y("liquiditySources",E?.split(",")??void 0)},[])}i(Os,"useSyncUrlAndStore");import{i18n as mn}from"@lingui/core";import{Alert as Jv,Button as Rv,darkTheme as ew,Divider as hl,DoneIcon as tw,styled as ow,TextField as nw,Typography as rw}from"@rango-dev/ui";import Ke,{useState as iw}from"react";import{useNavigate as aw,useSearchParams as sw}from"react-router-dom";import{ChevronRightIcon as Lk,Divider as Kd,Image as Mk,Typography as jd}from"@rango-dev/ui";import wt from"react";import{darkTheme as Hd,styled as Us}from"@rango-dev/ui";var Qd=Us("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Hd} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Hd} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),Gd=Us("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),Vd=Us("div",{display:"flex"});function zs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return wt.createElement(Gd,null,wt.createElement(jd,{size:"large",variant:"label"},n),wt.createElement(Kd,{size:10}),wt.createElement(Qd,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},wt.createElement(Vd,null,r&&wt.createElement(wt.Fragment,null,wt.createElement(Mk,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),wt.createElement(Kd,{size:4,direction:"horizontal"})),wt.createElement(jd,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),wt.createElement(Lk,{size:12,color:"black"})))}i(zs,"BlockchainSelectorButton");import{i18n as Vs}from"@lingui/core";import{Button as $k,Divider as Jd,MessageBox as Fk}from"@rango-dev/ui";import ro,{useEffect as Rd,useState as Ks}from"react";import{i18n as Ei}from"@lingui/core";import{Divider as No,ExternalLinkIcon as _k,Image as Dk,Typography as pn}from"@rango-dev/ui";import we from"react";var Xd="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function Yd(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Yd,"generateExplorerLink");import{Button as Pk,darkTheme as cn,styled as qs}from"@rango-dev/ui";var Hs=qs("a",{textDecoration:"none",color:"$colors$neutral700",[`.${cn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${cn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${cn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${cn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),Zd=qs("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${cn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${cn} &`]:{color:"$colors$neutral900"}}}),Qs=qs(Pk,{minHeight:"$40"});function Gs(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=Yd(n.address,s),l=i(()=>window.open(Xd,"_blank"),"onClickLearnMore");return we.createElement(R,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},we.createElement(Zd,null,we.createElement(Dk,{src:n.image===""?zr:n.image,size:45,type:"circular"}),we.createElement(No,{size:4}),we.createElement(pn,{variant:"title",size:"medium"},n.symbol),we.createElement(pn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),we.createElement(No,{size:4}),we.createElement(pn,{variant:"body",size:"medium"},c?we.createElement(Hs,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,we.createElement(_k,{size:12,color:"gray"})):we.createElement(Hs,null,n.address)),we.createElement(No,{size:4}),n.coinSource&&we.createElement(pn,{className:"_coin-source",variant:"body",size:"xsmall"},Ei.t("via")," ",we.createElement(pn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),we.createElement(No,{size:"32"}),we.createElement(pn,{size:"medium",variant:"body",className:"_custom-token-description"},Ei.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),we.createElement(No,{size:40}),we.createElement(No,{size:10}),we.createElement(Qs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Ei.t("Import Anyway")),we.createElement(No,{size:10}),we.createElement(Qs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Ei.t("Learn More")))}i(Gs,"CustomTokenModal");function Kn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=S(),[d,g]=Ks(!1),[h,f]=Ks(!1),[m,T]=Ks(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),g(!1)},"closeErrorModal"),k=i(()=>{T(!0),C()},"handleErrorModalButtonClick"),v=i(()=>{m&&n?.type==="network-error"&&(T(!1),y()),l()},"handleExit"),b=i(()=>{e&&(u(e),c())},"handleSubmit");return Rd(()=>{n&&g(!0)},[n]),Rd(()=>{o&&e&&f(!0)},[o,e]),ro.createElement(ro.Fragment,null,ro.createElement(R,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:C,onExit:v,container:N()},ro.createElement(Fk,{title:n?.title??"",type:"error",description:n?.message||Vs.t("Failed Network, Please retry.")},ro.createElement(Jd,{size:40}),ro.createElement(Jd,{size:10}),ro.createElement($k,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:k},n?.type==="network-error"?Vs.t("Retry"):Vs.t("Add another custom token")))),o&&e&&ro.createElement(Gs,{blockchain:o,token:e,onSubmitClick:b,onClose:()=>f(!1),open:h,onExit:p}))}i(Kn,"ImportCustomToken");import{useManager as Vv}from"@rango-dev/queue-manager-react";import{BottomLogo as Kv,Divider as Wm,Header as jv}from"@rango-dev/ui";import We,{useEffect as _i,useLayoutEffect as Xv,useRef as Lm,useState as Mm}from"react";import{useRef as Ok}from"react";function jn(){return window.self!==window.top}i(jn,"isAppLoadedIntoIframe");function js(){let t=Ok(null),{iframe:e}=S(),o=jn()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(js,"useIframe");import{useNavigate as Uk}from"react-router-dom";function Ve(){let t=Uk();return()=>t(-1)}i(Ve,"useNavigateBack");import{useLayoutEffect as zk,useState as Xn}from"react";var em=480,tm=768,om=1024,nm=1200,qk=i(()=>{let[t,e]=Xn(!1),[o,n]=Xn(!1),[r,a]=Xn(!1),[s,c]=Xn(!1),[l,p]=Xn(!1),u=i(()=>{e(window.innerWidth<=em),n(window.innerWidth>em&&window.innerWidth<=tm),a(window.innerWidth>tm&&window.innerWidth<=om),c(window.innerWidth>om&&window.innerWidth<=nm),p(window.innerWidth>nm)},"handleResize");return zk(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),un=qk;import{createTheme as tl,darkTheme as tv,lightTheme as ov}from"@rango-dev/ui";import{useEffect as nv,useState as rv}from"react";import{theme as Rk,darkColors as ev}from"@rango-dev/ui";import Rs from"react";var Ii=16,Ai=255,rm=.11;function Hk(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Hk,"expandShortHexColor");function Qk(t,e){return t.padStart(e,"0")}i(Qk,"pad");function Xs(t){let e=Math.min(Math.max(Math.round(t),0),Ai);return Qk(e.toString(Ii),2)}i(Xs,"intToHex");function Gk(t){return`#${Xs(t.red)}${Xs(t.green)}${Xs(t.blue)}`}i(Gk,"rgbToHex");function Vk(t){let e=parseInt(t.slice(1,3),Ii),o=parseInt(t.slice(3,5),Ii),n=parseInt(t.slice(5,7),Ii);return{red:e,green:o,blue:n}}i(Vk,"hexToRGB");function Kk(t,e){let o=1-rm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Kk,"generateShade");function jk(t,e){let o=rm*e;return{red:t.red+(Ai-t.red)*o,green:t.green+(Ai-t.green)*o,blue:t.blue+(Ai-t.blue)*o}}i(jk,"generateTint");function Xk(t){return im(t,Kk)}i(Xk,"calculateShades");function Yk(t){return im(t,jk)}i(Yk,"calculateTints");function im(t,e){let o=Vk(t),n=[];for(let r=1;r<9;r++)n.push(Gk(e(o,r)));return n}i(im,"calculateColors");function Ys(t,e,o){let a=Yk(t).reverse().concat(t),s=Xk(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;l[`${e}${d}`]=c[u]}return l}i(Ys,"createTintsAndShades");function Zs(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)&&!Jp(r)){let l=Hk(a);Object.assign(n,Ys(l,r,s))}}return{...n,...e}}i(Zs,"expandToGenerateThemeColors");var am=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Zk=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=am(o%52)+e;return am(o%52)+e},"toAlphabeticName"),Jk=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Js=i(t=>Zk(Jk(5381,JSON.stringify(t))>>>0),"toHash");function el(t){let e=Rk.colors,o={...e,...ev},n,r;if(t?.light){let s={colors:Zs(e,t.light)};n={id:`${es}-light-${Js(s)}`,tokens:s}}if(t?.dark){let s={colors:Zs(o,t.dark,{reverseNeutralRange:!0})};r={id:`${es}-dark-${Js(s)}`,tokens:s}}return{light:n,dark:r}}i(el,"customizedThemeTokens");function sm(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Rs.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Rs.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(Rs.cloneElement(e,{key:c}))}}),o}i(sm,"joinList");function lm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(lm,"doesWindowPreferDarkColorScheme");function io(t){let{colors:e,fontFamily:o=Dp,borderRadius:n=du,secondaryBorderRadius:r=mu}=t,[a,s]=rv(lm()?"dark":"light"),{theme:c}=S(),{dark:l,light:p}=el(e),u=tl({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,ov.className],g=[u.className,tv.className];if(p){let f=tl(p.id,p.tokens);d.push(f.className)}if(l){let f=tl(l.id,l.tokens);g.push(f.className)}return nv(()=>{let f=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return lm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=d.join(" "),m=g.join(" ");return c==="auto"?a==="dark"?m:f:c==="dark"?m:f},"getActiveTheme"),mode:c==="auto"?a:c}}i(io,"useTheme");var St=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as cm}from"@lingui/core";import{Alert as iv,Button as av}from"@rango-dev/ui";import pm from"react";function ol(t){return pm.createElement(iv,{action:pm.createElement(av,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},cm.t("Activate this tab")),type:"warning",variant:"alarm",title:cm.t("Another tab is open and handles transactions.")})}i(ol,"ActivateTabAlert");import{i18n as nl}from"@lingui/core";import{Button as sv,Divider as lv,MessageBox as cv}from"@rango-dev/ui";import Ni from"react";function rl(t){let{open:e,onClose:o,onConfirm:n}=t;return Ni.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},Ni.createElement(cv,{title:nl.t("Activate current tab"),type:"warning",description:nl.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.")},Ni.createElement(lv,{size:20}),Ni.createElement(sv,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},nl.t("Confirm"))))}i(rl,"ActivateTabModal");import{ChevronLeftIcon as dv}from"@rango-dev/ui";import Sm from"react";import{css as pv,darkTheme as um,IconButton as uv,styled as Bo}from"@rango-dev/ui";var Mt=Bo(uv,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${um} &`]:{backgroundColor:"$neutral"}}}),dm=Bo("div",{position:"absolute",background:"$secondary500",[`.${um} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),ao=Bo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),mm=Bo("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"}}}}),fm=Bo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),gm=Bo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),hm=pv({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),ym=Bo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function il(t){return Sm.createElement(Mt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Sm.createElement(dv,{color:"black",size:16}))}i(il,"BackButton");import{i18n as mv}from"@lingui/core";import{Button as fv,Typography as gv}from"@rango-dev/ui";import al from"react";function sl(t){return al.createElement(ao,null,al.createElement(fv,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},al.createElement(gv,{variant:"label",size:"medium",color:"error500"},mv.t("Cancel"))))}i(sl,"CancelButton");import{i18n as hv}from"@lingui/core";import{Image as yv,Tooltip as Sv,WalletIcon as Cv}from"@rango-dev/ui";import Wo from"react";function ll(t){let{list:e}=kt(),o=e.filter(r=>r.state==="connected"),n=o.length?Wo.createElement("div",{className:hm()},o.map(r=>Wo.createElement(ym,{key:r.title},Wo.createElement(yv,{src:r.image,size:14})))):hv.t("Connect Wallet");return Wo.createElement(Sv,{container:t.container,side:"bottom",content:n},Wo.createElement(Mt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Wo.createElement(dm,null),Wo.createElement(Cv,{size:18,color:"black"})))}i(ll,"WalletButton");import{i18n as Wi}from"@lingui/core";import{NotificationsIcon as _v,Popover as Dv,SettingsIcon as $v,Tooltip as Li,TransactionIcon as Fv}from"@rango-dev/ui";import De from"react";import{Notifications as wv}from"@rango-dev/ui";import xv from"react";import{useNavigate as bv}from"react-router-dom";import{create as Tv}from"zustand";import{persist as kv,subscribeWithSelector as vv}from"zustand/middleware";var Be=Ro(Tv()(kv(vv((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function cl(){let t=bv(),{getNotifications:e,clearNotifications:o}=Be(),n=e(),r=S().blockchains(),{findToken:a}=S();return xv.createElement(wv,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Ip(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${F.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(cl,"NotificationContent");import{useManager as Ev}from"@rango-dev/queue-manager-react";import{InProgressIcon as Iv}from"@rango-dev/ui";import Cm from"react";var Av=i(()=>{let{manager:t}=Ev();return St(t).map(({swap:o})=>o).find(o=>o.status==="running")?Cm.createElement(gm,{id:"widget-header-history-badge-container"},Cm.createElement(Iv,{color:"info",size:6})):null},"InProgressTransactionBadge"),Tm=Av;import{EventSeverity as Nv}from"@rango-dev/queue-manager-rango-preset";import{Typography as Bv}from"@rango-dev/ui";import km from"react";function vm(){let{getNotifications:t}=Be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Nv.WARNING);return o?km.createElement(mm,{isSever:n},km.createElement(Bv,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(vm,"NotificationsBadge");import{RefreshProgressButton as Wv}from"@rango-dev/ui";import pl,{useEffect as Lv,useState as wm}from"react";var Mv=1e3,xm=60,Pv=100;function Bi({onClick:t}){let[e,o]=wm(0),[n,r]=wm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Lv(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===xm&&c()},Mv):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 pl.createElement(Mt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},pl.createElement(fm,{onTransitionEnd:()=>r(!1),isRefetched:n},pl.createElement(Wv,{size:22,color:t?"black":"gray",progress:e/xm*Pv})))}i(Bi,"RefreshButton");function Lo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=S(),c=tt("notification",s)||r.includes("notifications");return De.createElement(De.Fragment,null,!r.includes("refresh")&&De.createElement(Li,{container:a||N(),side:"top",content:Wi.t("Refresh")},De.createElement(Bi,{onClick:e})),!c&&De.createElement(Dv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:De.createElement(cl,null)},De.createElement("div",null,De.createElement(Li,{container:N(),side:"top",content:Wi.t("Notifications")},De.createElement(Mt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},De.createElement(_v,{size:18,color:"black"}),De.createElement(vm,null))))),!r.includes("settings")&&De.createElement(Li,{container:N(),side:"top",content:Wi.t("Settings")},De.createElement(Mt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},De.createElement($v,{size:18,color:"black"}))),!r.includes("history")&&De.createElement(Li,{container:N(),side:"top",content:Wi.t("History")},De.createElement(Mt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},De.createElement(Fv,{size:18,color:"black"}),De.createElement(Tm,null))))}i(Lo,"HeaderButtons");import{i18n as ul}from"@lingui/core";import{Divider as Em,MessageBox as zv,RefreshIcon as qv}from"@rango-dev/ui";import dn from"react";import{Button as Ov,styled as Uv}from"@rango-dev/ui";var bm=Uv(Ov,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function dl(t){let{open:e,onClose:o}=t;return dn.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},dn.createElement(zv,{title:ul.t("Something went wrong"),type:"error",description:ul.t("Something went wrong. Please refresh the app.")},dn.createElement(Em,{size:30}),dn.createElement(bm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},dn.createElement(qv,{size:20,color:"primary"}),dn.createElement(Em,{size:4,direction:"horizontal"}),ul.t("Refresh"))))}i(dl,"RefreshModal");function ml(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(ml,"onScrollContentAttachStatusToContainer");import{css as Qv,styled as Mi}from"@rango-dev/ui";var Pi=Qv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Im=Mi("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"}}}}),Am=Mi("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Nm=Mi("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"}}}),Bm=Mi("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=js(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=S(),[u,d]=Mm(!1),{config:{features:g,theme:h}}=S(),{watermark:f,setShowCompactTokenSelector:m}=oe(),T=f==="FULL",{activeTheme:y}=io(h||{}),[C,k]=Mm(!1),v=tt("connectWalletButton",g),{isActiveTab:b,tabManagerInitiated:I,showActivateTabModal:A,setShowActivateTabModal:E,activateCurrentTab:x}=oe(),w=Ve(),{manager:B}=Vv(),{isTablet:P,isMobile:$}=un(),ee=St(B).map(({swap:X})=>X).some(X=>X.status==="running"),V=i(()=>x(bo.forceClaim,ee),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),te=typeof r.hasBackButton>"u"||r.hasBackButton,le=Lm(null),J=Lm(null);return _i(()=>{let X=(p?.swapBoxBanner?.routes?.length??0)===0,j=!!p?.swapBoxBanner?.routes?.some(ue=>location.pathname.endsWith(ue));k(!!p?.swapBoxBanner&&(X||j))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),_i(()=>(jn()&&J.current&&e(J.current),()=>{o()}),[]),_i(()=>(le.current?.addEventListener("scroll",ml),()=>{le.current?.removeEventListener("scroll",ml)}),[]),_i(()=>{d(c==="failed")},[c]),Xv(()=>{let X=s==="auto"||!J.current||jn(),j=$||P,ue=i(()=>{X||(j?J.current.style.height=`${window.innerHeight-J.current.offsetTop}px`:J.current.style.height=`${700}px`,m(parseFloat(J.current.style.height)<640))},"handler");return ue(),window.addEventListener("resize",ue),()=>window.removeEventListener("resize",ue)},[s,$,P]),We.createElement(Im,{height:s,id:et.SWAP_BOX_ID,className:`${y()} ${Pi()}`,ref:J,showBanner:C},We.createElement(jv,{prefix:te?We.createElement(il,{onClick:()=>{w(),r.onBack?.()}}):null,title:r.title,suffix:We.createElement(We.Fragment,null,r.suffix,r.onWallet&&!v&&We.createElement(ll,{container:N(),onClick:L,isConnected:!!l?.length}),r.onCancel&&We.createElement(sl,{onClick:r.onCancel}))}),We.createElement(Am,{ref:le},n),We.createElement(rl,{open:A,onClose:()=>E(!1),onConfirm:V}),We.createElement(Nm,null,We.createElement("div",{className:"footer__content"},I&&!b&&We.createElement("div",{className:"footer__alert"},We.createElement(ol,{onActivateTab:V}),We.createElement(Wm,{size:10})),a),We.createElement(Wm,{size:12}),We.createElement("div",{className:`footer__logo ${T?"logo__show":"logo__hidden"}`},We.createElement(Kv,null))),C&&We.createElement(Bm,null,p?.swapBoxBanner?.element),We.createElement(dl,{open:u,onClose:()=>d(!1)}))}i(ie,"Layout");import{styled as Yv}from"@rango-dev/ui";var Pm="$20 $20 $10 $20",fl=Yv("div",{padding:Pm,overflowY:"auto",flexGrow:1});import{styled as Zv}from"@rango-dev/ui";var ae=Zv("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 so}from"@lingui/core";import{useState as gl}from"react";function _m(){let[t,e]=gl(!1),[o,n]=gl(null),[r,a]=gl(null),{findToken:s}=S(),c=S().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(d,g){switch(d){case"duplicated":return{type:d,title:so.t("Duplicate Token"),message:so.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:so.t("Token Already Exists"),message:so.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:so.t("Token Not Found"),message:so.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:g}})};case"network-error":return{type:d,title:so.t("Network error"),message:so.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:g})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===g.toLowerCase())){let y=p("duplicated");n(y);return}let f=await lt().getCustomToken({blockchain:d,address:g});if(!f||!f.token||f.error){let y=p("not-found",d);n(y);return}let m=f.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 f=p("not-found",d);n(f);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(_m,"useFetchCustomToken");var lw=ow("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${ew} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Dm(){let t=aw(),[e]=sw(),o=Ve(),n=S().blockchains(),r=e.get("blockchain")||"",a=To(r,n),[s,c]=iw(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:g}=_m(),h=!!a&&Go(a,s),f=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ke.createElement(ie,{header:{title:mn.t("Add Custom Token")}},Ke.createElement(ae,null,Ke.createElement(lw,null,Ke.createElement("div",null,Ke.createElement(zs,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:mn.t("Select chain"),placeholder:mn.t("Select chain")}),Ke.createElement(hl,{size:"24"}),Ke.createElement(rw,{size:"large",variant:"label"},mn.t("Enter Address")),Ke.createElement(hl,{size:10}),Ke.createElement(nw,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:mn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Ke.createElement(tw,{color:"success",size:12}),onChange:T=>c(T.target.value)}),!h&&!!s&&Ke.createElement(Ke.Fragment,null,Ke.createElement(hl,{size:4}),Ke.createElement(Jv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ke.createElement(Rv,{id:"widget-add-custom-token-import-btn",disabled:f,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},mn.t("Import"))),Ke.createElement(Kn,{token:p,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:g,onExitImportModal:g})))}i(Dm,"AddCustomTokenPage");import{i18n as Kl}from"@lingui/core";import{useManager as Vx}from"@rango-dev/queue-manager-react";import{Alert as Kx,Button as jx,css as Xl,Divider as jl,IconButton as Eg,styled as Xx,Typography as Yx,WalletIcon as Zx}from"@rango-dev/ui";import Fe,{useEffect as sa,useLayoutEffect as Jx,useRef as Rx,useState as cr}from"react";import{useNavigate as eb}from"react-router-dom";import{i18n as Mo}from"@lingui/core";import{Alert as Pw,BalanceErrors as _w,Button as cf,ChevronLeftIcon as Dw,Divider as xl,MessageBox as $w,Typography as bl}from"@rango-dev/ui";import re,{useCallback as Fw,useEffect as pf,useMemo as Ow,useState as hn}from"react";import{useNavigate as Uw}from"react-router-dom";import{i18n as Tl}from"@lingui/core";import{Alert as mw,ChevronDownIcon as fw,CloseIcon as gw,Divider as Hm,IconButton as Qm,PasteIcon as hw,Typography as yw,WalletIcon as Sw}from"@rango-dev/ui";import $e,{useEffect as Cw,useRef as Tw}from"react";import Oi,{useRef as uw}from"react";import*as fn from"@radix-ui/react-collapsible";import{keyframes as $m,styled as Di}from"@rango-dev/ui";var yl=300,cw=$m({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),pw=$m({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Fm=Di(fn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Sl=Di(fn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),$i=Di(fn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${cw} ${yl}ms ease-out`},false:{animation:`${pw} ${yl}ms ease-out`}}}}),Fi=Di("div",{transition:`all ${yl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Ui(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=uw(null);return Oi.createElement(Fm,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&Oi.createElement(Sl,{className:"collapsible_trigger",onClick:a},s),Oi.createElement($i,{className:"collapsible_content",open:e},r),c==="bottom"&&Oi.createElement(Sl,{className:"collapsible_trigger",onClick:a},s))}i(Ui,"CustomCollapsible");import{darkTheme as Om,styled as Cl,TextField as dw}from"@rango-dev/ui";var Um=Cl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),zm=Cl(dw,{backgroundColor:"$neutral100",padding:"$15"}),qm=Cl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Om} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Om} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function Gm(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=S(),c=S().blockchains(),l=Fr(e.name,c),p=Tw(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!Go(e,r),f=i(()=>{a("")},"handleClear"),m=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),p?.current?.focus()}},"handlePaste"),T=i(()=>r?$e.createElement(Qm,{id:"widget-custom-destination-close-icon-btn",onClick:f,variant:"ghost"},$e.createElement(gw,{size:12,color:"gray"})):d?null:$e.createElement(Qm,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},$e.createElement(hw,{size:16})),"renderSuffix");return Cw(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),$e.createElement(Um,null,$e.createElement(Ui,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:$e.createElement(qm,{id:"widget-custom-destination-collapsible-btn"},$e.createElement("div",{className:"button__content"},$e.createElement(Sw,{size:18,color:"info"}),$e.createElement(Hm,{size:4,direction:"horizontal"}),$e.createElement(yw,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Tl.t("Send to a different address"))),$e.createElement(Fi,{orientation:n?"up":"down"},$e.createElement(fw,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},$e.createElement(zm,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Tl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:T(),onChange:y=>{let C=y.target.value;a(C)}})),h&&$e.createElement($e.Fragment,null,$e.createElement(Hm,{size:4}),$e.createElement(mw,{variant:"alarm",type:"error",title:Tl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(Gm,"CustomDestination");import{css as kw,IconButton as vw,SelectableWalletButton as ww,styled as lo}from"@rango-dev/ui";var Vm=lo("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Km=lo("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),jm=lo(ww,{justifyContent:"center"}),Xm=lo("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Ym=lo(vw,{position:"absolute",left:"$20"}),Zm=lo("div",{paddingTop:"$20"}),Jm=kw({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Rm=lo("div",{display:"flex"}),ef=lo("div",{overflow:"visible",width:"100%"});import{i18n as vl}from"@lingui/core";import{warn as Aw}from"@rango-dev/logging-core";import{Divider as Nw,makeInfo as Bw,SelectableWallet as Ww,Typography as sf,WalletState as zi}from"@rango-dev/ui";import nt,{useEffect as lf,useState as Jn}from"react";import{Image as Ew,MessageBox as Iw}from"@rango-dev/ui";import Zn from"react";import{keyframes as xw,styled as kl}from"@rango-dev/ui";var tf=kl("div",{position:"relative"}),bw=xw({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),of=kl("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${bw} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),nf=kl("div",{"& img":{borderRadius:"50%"}});import{i18n as gn}from"@lingui/core";function rf(t,e){switch(t){case"in-progress":return{type:"loading",title:gn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:gn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:gn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:gn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:gn.t("Request Rejected"),description:gn.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(rf,"generateMessageByStatus");function af(t){let{status:e,displayName:o,image:n}=t,r=rf(e,o),a=e=="in-progress";return Zn.createElement(Iw,{type:r.type,title:r.title,description:r.description,icon:a?Zn.createElement(tf,null,Zn.createElement(nf,null,Zn.createElement(Ew,{src:n,size:45})),Zn.createElement(of,null)):void 0})}i(af,"ExperimentalChainStatus");var Lw=7,Mw=3e3;function wl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{blockchains:l,connectedWallets:p}=S(),[u,d]=Jn(),[g,h]=Jn(null),[f,m]=Jn(!1),[T,y]=Jn(null),{suggestAndConnect:C}=qi(),{list:k}=kt({chain:e}),[v,b]=Jn(k),I=k.length,A=a&&I-a>0,E=i(async w=>{m(!1),y("in-progress");try{await C(w.walletType,w.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");lf(()=>{b(w=>{let B=k.findIndex(P=>n(P.type,e));return A&&B>1?[k[B]].concat(k.filter((P,$)=>$!==B)):w.map(P=>k.find($=>$.type===P.type)??P)})},[JSON.stringify(k)]);let x=document.getElementById(et.SWAP_BOX_ID);return lf(()=>{let w=null;return(T==="completed"||T==="rejected")&&(w=setTimeout(()=>y(null),Mw)),()=>{w&&clearTimeout(w)}},[T]),nt.createElement(nt.Fragment,null,v.slice(0,a).map(w=>{let B=au({connectedWallets:p,walletType:w.type,chain:e}),P=w.state===zi.CONNECTED,$=B?oo(B,Lw):"",q=P&&!!w.needsNamespace&&!$,ee=Yr(l(),e),V=!p.find(ue=>ue.walletType===w.type&&ue.chain===e),L=ee&&V&&w.state===zi.CONNECTED,te=i(async()=>{w.state===zi.DISCONNECTED||q?d(w):L?(h({walletType:w.type,chain:e,address:B??""}),m(!0)):r({walletType:w.type,chain:e,address:B??""})},"onSelectableWalletClick"),le=Bw(w.state),J=i(()=>L?vl.t({id:"Add {chain} chain",values:{chain:e}}):q?vl.t("Chain not connected"):$||le.description,"getWalletDescription"),X=i(()=>w.state===zi.CONNECTED?q?"neutral600":"neutral700":le.color,"getWalletDescriptionColor"),j=g?.chain?Fr(g.chain,l()):void 0;return nt.createElement(nt.Fragment,{key:`${w.title}_${j}`},!!g&&nt.createElement(R,{id:"widget-wallets-list-watermarked-modal",open:!!g&&f,container:x,onClose:()=>{h(null)}},nt.createElement(Is,{id:"widget-wallets-list-experimental-chain-container",displayName:j,onConfirm:()=>{E(g)}})),T&&nt.createElement(R,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!T,onClose:y.bind(null,null),container:x},nt.createElement(af,{status:T,displayName:j,image:w.image}),nt.createElement(Nw,{direction:"vertical",size:32})),nt.createElement(Ww,{key:w.type,id:"widget-wallets-list-selectable-wallet-btn",description:J(),descriptionColor:X(),onClick:te,selected:n(w.type,e),disabled:!c,...w}))}),nt.createElement(Qn,{id:"widget-wallets-list-stateful-connect-modal",wallet:u,options:{defaultSelectedChains:o||[e]},onClose:()=>{d(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):Aw(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),A&&nt.createElement(jm,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},nt.createElement(sf,{variant:"label",size:"medium"},vl.t("Show more wallets"),nt.createElement(sf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(a??0)))))}i(wl,"WalletList");var zw=2;function uf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Uw(),c=S().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:h}=O(),{config:f,connectedWallets:m,setWalletsAsSelected:T}=S(),[y,C]=hn(""),[k,v]=hn([]),[b,I]=hn(""),[A,E]=hn(!!g),x=Ow(()=>wo({filter:"all",quote:l}),[l]),w=wo({filter:"required",quote:l}),B=c.find(W=>W.name===l?.swaps[l?.swaps.length-1].to.blockchain),P=i(W=>w.includes(W),"isWalletRequiredFor"),$=Fw(()=>m.filter(W=>W.selected&&x.includes(W.chain)),[m,x]),[q,ee]=hn($()),[V,L]=hn([]),te=i((W,H)=>L(K=>K.concat({blockchain:W,walletType:H})),"addNextSelectedWallets"),le=k.length>0,J=i((W,H)=>!!q.find(K=>K.walletType===W&&K.chain===H&&K.selected&&(P(H)||!P(H)&&!g)),"isSelected"),X=i((W,H,K)=>{let Y=!1;return W.map(ye=>{if(ye.chain===H){let qe=ye.selected;return!Y&&K?(Y=!0,qe=!0):K||(qe=!1),{...ye,selected:qe}}return ye})},"updateSelectableWallets"),j=i(W=>{E(W),W?P(B?.name??"")||ee(H=>X(H,B?.name||"",!1)):(h(""),ee(H=>X(H,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),ue=i(W=>{if(y&&C(""),J(W.walletType,W.chain))return;let K=m.find(Y=>Y.walletType===W.walletType&&Y.chain===W.chain);K&&(n(),W.chain===B?.name&&A&&!P(B.name)&&(E(!1),h(null)),ee(Y=>Y.filter(ye=>ye.chain!==W.chain).concat({...K,selected:!0})))},"onChange"),de=i(()=>{let W=q.filter(H=>H.selected);T(W),p(W),d(!0),o()},"onConfirmBalance"),ke=i(async()=>{v([]),I("");let W=await r?.({selectedWallets:q.filter(K=>K.selected),customDestination:g}),H=W.warnings;H?.balance?.messages&&v(H.balance.messages),W.error&&I(pd(W.error)),!W.error&&!H?.balance?.messages.length?de():v(H?.balance?.messages??[])},"onConfirmWallets");pf(()=>{ee(W=>{let H=[];return W.forEach(K=>{!m.some(ye=>ye.chain===K.chain&&ye.walletType===K.walletType&&ye.address===K.address)||H.push(K)}),H=H.concat(m.filter(K=>!!!H.find(ye=>ye.chain===K.chain)&&K.selected&&x.includes(K.chain))),H})},[m,x]),pf(()=>{let W=[];V.length>0&&(V.forEach(H=>{let K=m.find(Y=>Y.chain===H.blockchain&&Y.walletType===H.walletType);K?ue(K):W.push(H)}),L(W))},[m,V]);let Q=document.getElementById(et.SWAP_BOX_ID);return re.createElement(R,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:Q,...!y&&{styles:{container:{height:"100%"}},footer:re.createElement(Rm,null,re.createElement(cf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Od(a,A,g,l,q,B),onClick:ke,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Mo.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:re.createElement(Xm,null,re.createElement(Ym,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},re.createElement(Dw,{size:16})),re.createElement(bl,{variant:"headline",size:"small"},Mo.t({id:"Your {blockchainName} wallets",values:{blockchainName:ft(y,c)}})))},anchor:"center"},re.createElement(R,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:le,onClose:v.bind(null,[]),container:Q},re.createElement($w,{title:Mo.t("Insufficient account balance"),type:"error",description:re.createElement(_w,{messages:k??[]})},re.createElement(cf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:de},Mo.t("Proceed anyway")))),y&&re.createElement(Zm,null,re.createElement("div",{className:Jm()},re.createElement(wl,{chain:y,quoteChains:x,isSelected:J,selectWallet:ue,onShowMore:()=>C(y),onConnect:W=>{te(y,W)}}))),!y&&re.createElement(re.Fragment,null,b&&re.createElement(re.Fragment,null,re.createElement(Pw,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Mo.t(b)}),re.createElement(xl,{size:12})),re.createElement(ef,null,x.map((W,H)=>{let K=c.find(He=>He.name===W),Y=`wallet-${H}`,ye=H===x.length-1,qe=ye&&B&&f?.customDestination!==!1;return re.createElement("div",{key:Y},re.createElement(Vm,null,re.createElement(bl,{variant:"title",size:"xmedium"},Mo.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),re.createElement(bl,{variant:"label",color:"$neutral700",size:"medium"},Mo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),re.createElement(xl,{size:24}),re.createElement(Km,null,re.createElement(wl,{chain:W,quoteChains:x,isSelected:J,selectWallet:ue,limit:zw,onShowMore:()=>C(K?.name??""),onConnect:He=>{te(W,He)}})),!ye&&re.createElement(xl,{size:32}),qe&&re.createElement(Gm,{blockchain:B,open:A,handleOpenChange:j}))}))))}i(uf,"ConfirmWalletsModal");import{i18n as lx}from"@lingui/core";import{Alert as cx,Button as px,Divider as Bf,InfoIcon as ux}from"@rango-dev/ui";import Oe from"react";import{Alert as Qw,Button as Gw,Divider as Al,NoRouteIcon as Vw,RefreshIcon as Kw,Typography as Sf}from"@rango-dev/ui";import ct from"react";import{i18n as df}from"@lingui/core";var qw=24,Hw=60;function mf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ne().genericServerError,action:{onClick:n,title:df.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ne().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:df.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(mf,"makeInfo");var El=(o=>(o[o.small=qw]="small",o[o.large=Hw]="large",o))(El||{}),Il=(o=>(o.small="small",o.large="medium",o))(Il||{});import{styled as Hi}from"@rango-dev/ui";var ff=Hi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),gf=Hi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),hf=Hi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),yf=Hi("div",{padding:"$6 $0"});function Rn(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=S().getDisabledLiquiditySources(),s=S().toggleAllLiquiditySources,c=S().swappers(),l=mf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),ct.createElement(ff,{id:"widget-no-result-container"},ct.createElement(Vw,{size:El[n],color:"gray"}),ct.createElement(Al,{size:4}),ct.createElement(Sf,{variant:"title",size:Il[n]},ne().noResultError.title),n==="large"&&ct.createElement(Al,{size:4}),!!l.description&&ct.createElement(gf,{size:n},ct.createElement(Sf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),ct.createElement(Al,{size:n==="large"?"24":"4"}),!!l.alert&&ct.createElement(hf,{size:n},ct.createElement(Qw,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&ct.createElement(Gw,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:ct.createElement(yf,null,ct.createElement(Kw,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Rn,"NoResult");import{i18n as tr}from"@lingui/core";import{Button as Yw,Divider as Zw,MessageBox as Jw,Typography as Rw,WarningIcon as ex}from"@rango-dev/ui";import Gt from"react";import{Typography as wf}from"@rango-dev/ui";import Bl from"react";import{Button as jw,darkTheme as Xw,styled as er}from"@rango-dev/ui";var Cf=er("div",{width:"100%"}),Nl=er("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Tf=er("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Xw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),kf=er("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),vf=er(jw,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function xf(t){let{title:e,value:o,valueColor:n}=t;return Bl.createElement(Tf,null,Bl.createElement(wf,{size:"medium",variant:"label",className:"_title"},e),Bl.createElement(wf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(xf,"QuoteErrorsModalItem");function bf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:tr.t("Swapping"),value:_(r.inputUsdValue,4,4)},{title:tr.t("Gas cost"),value:_(r.totalFee,2,2)},{title:tr.t("Receiving"),value:_(r.outputUsdValue,4,4)},{title:tr.t("Price impact"),value:_(r.priceImpact,2,2),valueColor:`${s}500`}];return Gt.createElement(R,{id:"widget-high-value-loss-warning-modal",footer:Gt.createElement(Yw,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Gt.createElement(ex,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},Gt.createElement(Jw,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Gt.createElement(Nl,null,Gt.createElement(Zw,{size:"4"}),Gt.createElement(Rw,{size:"small",variant:"title"},tr.t("Details")),Gt.createElement(Nl,null,c.map((l,p)=>Gt.createElement(xf,{key:p,...l})))))}i(bf,"HighValueLossWarningModal");import{i18n as yn}from"@lingui/core";function Ef(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=yn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=yn.t("Increase")),o;if(t){switch(t.type){case 0:{Qt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().highValueLossError.title;break}case 4:{o.title=yn.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=yn.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=yn.t("Increase");break}case 3:{o.title=yn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Ef,"makeAlerts");function If(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(If,"getRequiredSlippage");import{i18n as Sn}from"@lingui/core";import{Button as tx,Divider as Wl,MessageBox as ox,WarningIcon as nx}from"@rango-dev/ui";import uo from"react";import{useNavigate as rx}from"react-router-dom";function Af(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=rx();return uo.createElement(R,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},uo.createElement(ox,{type:"warning",title:r.type===3?Sn.t("High slippage"):Sn.t("Low slippage"),description:r.type===3?Sn.t("Caution, your slippage is high. Your trade may be front run."):Sn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},uo.createElement(Wl,{size:18}),uo.createElement(Wl,{size:32}),uo.createElement(vf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},uo.createElement(nx,{color:"white",size:16}),Sn.t("Swap anyway")),uo.createElement(Wl,{size:10}),uo.createElement(tx,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+F.settings)},Sn.t("Change Slippage"))))}i(Af,"SlippageWarningModal");import{Button as ix,MessageBox as ax,WarningIcon as sx}from"@rango-dev/ui";import Qi from"react";function Nf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Qi.createElement(R,{id:"widget-unknown-price-warning-modal",footer:Qi.createElement(ix,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Qi.createElement(sx,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Qi.createElement(ax,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(Nf,"UnknownPriceWarningModal");function or(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:g}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,m=Ef(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let T=!!m&&!s,y=i(C=>{if(C==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,v=If(e,k);g?.(v)}else C==="change-settings"&&d()},"onclickActionButton");return Oe.createElement(Oe.Fragment,null,f&&Oe.createElement(Oe.Fragment,null,Oe.createElement(Bf,{size:10}),Oe.createElement(Rn,{skipAlerts:s,error:o,fetch:c})),T&&Oe.createElement(Cf,null,Oe.createElement(Bf,{size:10}),Oe.createElement(cx,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Oe.createElement(kf,{onClick:l},Oe.createElement(ux,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Oe.createElement(px,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>y(m.action)},m.actionButtonTitle||lx.t("Change"))}})),e&&Oe.createElement(Oe.Fragment,null,e.type===0&&Oe.createElement(bf,{...h,warning:e}),(e.type===3||e.type===2)&&Oe.createElement(Af,{...h,warning:e}),e.type===1&&Oe.createElement(Nf,{...h,warning:e})))}i(or,"QuoteWarningsAndErrors");import Ux from"bignumber.js";import na from"react";import{i18n as Po}from"@lingui/core";import{Alert as Ix,Divider as Tn,FullExpandedQuote as Ax,InfoIcon as Nx,NumericTooltip as rg,QuoteTag as Bx,StepDetails as Wx,TokenAmount as Lx,Typography as kn}from"@rango-dev/ui";import Ul from"bignumber.js";import U,{useRef as Mx,useState as Px}from"react";import{styled as Ll}from"@rango-dev/ui";var Ml=Ll("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Wf=Ll("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Lf=Ll("div",{width:"100%",display:"flex"});import*as Gi from"@radix-ui/react-collapsible";import{Button as dx,css as nr,darkTheme as Le,Image as Mf,styled as Ye,Typography as mx}from"@rango-dev/ui";var fx=300,Pf=Ye(Gi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Le} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),_f=nr({padding:"$10 $15"}),Df=Ye(dx,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Le} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Le} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Le} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),$f=Ye("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",[`.${Le} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Le} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Le} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Le} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Le} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Le} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Le} &`]:{backgroundColor:"$neutral400"}}}}]}),Ff=nr({width:"100%",padding:"$15 $15 $10 $15"}),Of=nr({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Cn=nr({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Uf=nr({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Le} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),zf=Ye(Gi.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:{[`& ${Mf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Mf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Le} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),qf=Ye("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"}}}}),Hf=Ye($i,{width:"100%",background:"inherit"}),Pl=Ye("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${fx}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),rH=Ye("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Qf=Ye("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Le} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Gf=Ye("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),_l=Ye(mx,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Vf=Ye("div",{display:"flex",flexWrap:"wrap"}),Dl=Ye("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"}}}}),Kf=Ye("div",{display:"flex"}),Vi=Ye("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Le} &`]:{borderTopColor:"$neutral800"}});import{i18n as Pt}from"@lingui/core";import{ChevronDownIcon as hx,CloseIcon as yx,Divider as Xi,IconButton as Sx,NumericTooltip as Cx,QuoteCost as Tx,Typography as xt}from"@rango-dev/ui";import Z,{useState as Zf}from"react";import{css as gx,styled as Ki}from"@rango-dev/ui";var ji=Ki("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),$l=Ki("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),jf=Ki("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Xf=Ki("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Yf=gx({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var kx=i(t=>t.fee.isZero()?null:Z.createElement(ji,null,Z.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(xt,{variant:"label",size:"medium"},"$",_(t.fee,4,4))),"NonPayableFee");function Fl(t){let[e,o]=Zf(!1),[n,r]=Zf(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:g=!1}=t,h=s?.swaps??[],f=g?vo():N(),m=Wd(h),T=_(c,2,2);return Z.createElement(Z.Fragment,null,Z.createElement(Tx,{onClickFee:d?y=>{y.stopPropagation(),o(!e)}:void 0,fee:T,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?Pt.t("View more info"):void 0,tooltipContainer:f}),Z.createElement(R,{id:"widget-quote-cost-explanation-modal",container:f,open:e,anchor:g?"center":"bottom",styles:{container:{maxWidth:g?"484px":"unset"}},header:Z.createElement(Xf,{style:{textAlign:g?"left":"center"}},Z.createElement(xt,{variant:"title",size:"medium"},Pt.t("Gas & Fee Explanation")),Z.createElement(Sx,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Z.createElement(yx,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(jf,null,Z.createElement(xt,{variant:"title",size:"small"},Pt.t("Details")),Z.createElement(Xi,{size:10}),Object.entries(m.payable).flatMap(([y,C])=>C.map((k,v)=>{let b=`payable-fee-${v}`,I=Ps(k);return Z.createElement(ji,{key:b},Z.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},Ns(y,Pt.t)),Z.createElement(Cx,{content:k.amount,container:f},Z.createElement(xt,{variant:"label",size:"medium"},_(k.amount,2,2),k.asset.symbol," ($",_(I,4,4),")")))})),Z.createElement(ji,{className:"total_payable_fee"},Z.createElement(xt,{variant:"label",size:"medium"},Pt.t("Total Payable Fee")),Z.createElement(xt,{variant:"label",size:"medium"},"$",_(c,4,4))),Z.createElement($l,null),!!Object.keys(m.nonePayable).length&&Z.createElement(Ui,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:Z.createElement("div",{className:Yf()},Z.createElement(xt,{size:"small",variant:"body",color:"neutral700"},n?Pt.t("Hide non-payable fees"):Pt.t("Show non-payable fees")),Z.createElement(Xi,{size:4,direction:"horizontal"}),Z.createElement(Fi,{orientation:n?"up":"down"},Z.createElement(hx,{size:12,color:"gray"}))),open:n},Z.createElement(xt,{size:"small",variant:"title"},Pt.t("Description")),Z.createElement(Xi,{size:4}),Z.createElement(xt,{size:"small",variant:"body",color:"neutral700"},Pt.t(`The following fees are considered in the transaction output and
|
|
2
|
+
you won\u2019t need to pay extra gas for them.`)),Z.createElement(Xi,{size:10}),Object.entries(m.nonePayable).map(([y,C],k)=>{let v=Bd(C),b=Ns(y,Pt.t),I=`non-payable-fee-${k}`;return Z.createElement(kx,{key:I,fee:v,label:b})}),Z.createElement($l,null)))))}i(Fl,"QuoteCostDetails");import{i18n as eg}from"@lingui/core";import{TokenAmount as tg}from"@rango-dev/ui";import Yi from"react";import{css as vx,styled as wx}from"@rango-dev/ui";var Jf=wx("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Rf=vx({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function rr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Yi.createElement(Jf,null,Yi.createElement(tg,{direction:"horizontal",label:eg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Yi.createElement("div",{className:Rf()}),Yi.createElement(tg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:eg.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(rr,"QuoteSummary");import{i18n as og}from"@lingui/core";import{ChevronDownIcon as xx,ChevronRightIcon as bx,Divider as Ol,Image as Ex,Tooltip as ea,Typography as Zi}from"@rango-dev/ui";import z from"react";var Ji=4,Ri=6,ir=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return z.createElement(ea,{container:c,side:"bottom",sideOffset:4,open:r,content:e},z.createElement(qf,{className:n,state:a},z.createElement(Ex,{src:o,size:16})))},"ImageComponent");function ng(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),p=r.length,u=Td(r),{isTablet:d,isMobile:g}=un();return z.createElement(zf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(f=>!f)}},z.createElement("div",{className:Cn()},z.createElement(Zi,{variant:"body",size:"xsmall"},og.t("Via:")),z.createElement(Ol,{direction:"horizontal",size:4}),r.map((h,f)=>{let m=`item-${f}`,T=z.createElement(Pl,null,z.createElement(bx,{size:12,color:"black"}));return g||d?z.createElement(z.Fragment,{key:m},z.createElement(ir,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),f!==p-1&&z.createElement(z.Fragment,null,T)):z.createElement(z.Fragment,{key:m},p<=Ji||p>Ji&&f<Ji-1?z.createElement(z.Fragment,null,z.createElement(ir,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),f!==p-1&&z.createElement(z.Fragment,null,T)):f===Ji-1&&z.createElement(ea,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:Cn()},T,r.map((y,C)=>{let k=`image-${C}`;return C>=f&&z.createElement(z.Fragment,{key:k},z.createElement(ir,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),C!==p-1&&z.createElement(z.Fragment,null,T))}))},z.createElement(Dl,{state:r.find((y,C)=>C>=f&&(y.state==="error"||y.state==="warning"))?.state},z.createElement(Zi,{size:"xsmall",variant:"body"},"+",p-f))))})),z.createElement("div",{className:Cn()},z.createElement("div",{className:"blockchains_section"},z.createElement("div",{className:Cn()},z.createElement(Zi,{variant:"body",size:"xsmall"},og.t("Chains:")),z.createElement(Ol,{direction:"horizontal",size:4}),u.map((h,f)=>z.createElement(z.Fragment,{key:h.displayName},u.length<=Ri||u.length>Ri&&f<Ri-1?z.createElement(ea,{container:l,side:"bottom",content:h.displayName,sideOffset:4},z.createElement(ir,{content:"",src:h.image??"",open:!1,className:f!==0?"blockchainImage":""})):f===Ri-1&&z.createElement(ea,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:Cn()},u.map((m,T)=>T>=f&&z.createElement(ir,{key:m.displayName,content:"",src:m.image??"",open:!1,className:T>f?"blockchainImage":"",container:c})))},z.createElement(Dl,{className:"blockchainImage"},z.createElement(Zi,{size:"xsmall",variant:"body"},"+",u.length-f))))),z.createElement(Ol,{direction:"horizontal",size:32}))),z.createElement(Pl,{orientation:a?"up":"down"},z.createElement(xx,{size:12,color:"black"}))))}i(ng,"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:g}=t,h=S().blockchains(),{findToken:f}=S(),m=S().swappers(),{customSlippage:T,slippage:y}=S(),C=T||y,[k,v]=Px(t.expanded),b=Mx(null),I=_(o.value,6,6),A=_(n.value,6,6),E=n.usdValue?_(n.usdValue,4,4):"",x=Ht(o.usdValue,n.usdValue??null),w=_(x,2,2),B=Qt(x??0),P=i((de,ke)=>de.map((Q,W)=>{let H,K=r?.type===3&&r.swap.swapperId===Q.swapperId,Y=r?.type===4&&r.recommendedSlippages?.has(W),ye=a?.type===2&&a.recommendedSlippages?.has(W),qe=K||Y,He=ye;qe?H="error":He&&(H="warning");let Tt=qe?Po.t("Slippage Error"):Po.t("Slippage Warning");return K&&(Tt=Po.t("Bridge Limit Error")),{swapper:{displayName:In(Q.swapperId,m)??"",image:Q.swapperLogo},from:{token:{displayName:Q.from.symbol,image:Q.from.logo},chain:{displayName:ft(Q.from.blockchain,h)??"",image:Q.from.blockchainLogo},price:{value:W===0&&!ke?_(o.value,6,6):_(Q.fromAmount,6,6),usdValue:_((Q.from.usdPrice??0)*parseFloat(Q.fromAmount),4,4),realValue:W===0?o.value:Q.fromAmount,realUsdValue:new Ul(Q.from.usdPrice??0).multipliedBy(Q.fromAmount).toString()}},to:{token:{displayName:Q.to.symbol,image:Q.to.logo},chain:{displayName:ft(Q.to.blockchain,h)||"",image:Q.to.blockchainLogo},price:{value:_(Q.toAmount,6,6),usdValue:_((Q.to.usdPrice??0)*parseFloat(Q.toAmount),4,4),realValue:Q.toAmount,realUsdValue:new Ul(Q.to.usdPrice??0).multipliedBy(Q.toAmount).toString()}},state:H,alerts:qe||He?U.createElement(Wf,{dense:d},U.createElement(Ix,{variant:"alarm",type:qe?"error":"warning",title:Tt,id:"widget-quote-footer-step-alarm-alert",footer:U.createElement(Lf,null,K&&U.createElement("div",null,U.createElement(kn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(Tn,{direction:"vertical",size:2}),U.createElement(kn,{size:"xsmall",variant:"body",color:"neutral900"},Po.t({id:"Yours: {amount} {symbol}",values:{amount:_(Q.fromAmount,6,6),symbol:Q?.from.symbol}}))),(Y||ye)&&!K&&U.createElement("div",null,U.createElement(kn,{size:"xsmall",variant:"body",color:"neutral900"},Po.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(W)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(W)}}})),U.createElement(Tn,{direction:"vertical",size:2}),U.createElement(kn,{size:"xsmall",variant:"body",color:"neutral900"},Po.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Nn(Q.estimatedTimeInSeconds),fee:_(Ms(Q,f),2,2),internalSwaps:Q.internalSwaps?P(Q.internalSwaps):void 0}}),"getQuoteSteps"),$=P(e?.swaps??[]),q=$.length,ee=g||N(),V=vd(t.quote.tags||[]),L=!!u,te=Kr(e?.swaps),le=Nn(te),J=ki(e?.swaps??[],f),X=_(J,2,2),j=J.gte(new Ul(dd)),ue=te/fd>=md;return d?U.createElement(Ax,{selected:c,fee:X,time:le,tooltipContainer:vo(),steps:$,tags:V,id:"widget-quote-full-expanded-quote-container",quoteCost:U.createElement(Fl,{quote:e,fullExpandedMode:!0,time:le,fee:J,feeWarning:j,timeWarning:ue,showModalFee:p,steps:q}),percentageChange:w,warningLevel:B,outputPrice:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):U.createElement($f,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},U.createElement("div",{className:Ff()},!l&&V.length?U.createElement(U.Fragment,null,U.createElement(Kf,null,V.map((de,ke)=>{let Q=`${de.value}_${ke}`;return U.createElement(U.Fragment,{key:Q},U.createElement(Bx,{label:de.label,value:de.value}),U.createElement(Tn,{size:4,direction:"horizontal"}))})),U.createElement(Vi,null),!L&&U.createElement(Tn,{size:4})):null,U.createElement("div",{id:"portal-root",className:Of()},U.createElement(Fl,{quote:e,time:le,fee:J,feeWarning:j,timeWarning:ue,showModalFee:p,steps:q}),L&&U.createElement(Df,{onClick:de=>{de.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(kn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Po.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:Uf()},U.createElement(Gf,null,U.createElement(Nx,{size:12,color:"gray"})),U.createElement(Vf,null,U.createElement(_l,{size:"small",variant:"body"},`${I} ${$[0].from.token.displayName} = `),U.createElement(rg,{content:n.value,container:ee,open:n.value?void 0:!1},U.createElement(_l,{size:"small",variant:"body"},"\xA0",`${A} ${$[$.length-1].to.token.displayName}`))),U.createElement(rg,{content:n.usdValue,container:ee},U.createElement(Tn,{size:2,direction:"horizontal"}),U.createElement(kn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&U.createElement(Lx,{id:"widget-quote-token-amount-container",tooltipContainer:ee,type:"output",direction:"vertical",price:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:$[q-1].to.token.displayName,image:$[q-1].to.token.image},chain:{image:$[q-1].to.chain.image},percentageChange:w,warningLevel:B}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(rr,{from:$[0].from,to:$[q-1].to,percentageChange:w,warningLevel:B}),U.createElement(Tn,{size:4}))),U.createElement(Pf,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},U.createElement(ng,{type:s,quoteRef:b,selected:c,setExpanded:v,container:ee,expanded:k,steps:$}),U.createElement(Hf,{open:k},U.createElement(Qf,null),U.createElement("div",{className:_f()},$.map((de,ke)=>{let Q=`item-${ke}`;return U.createElement(Wx,{type:"quote-details",className:"widget-quote-step-details-container",key:Q,tooltipContainer:ee,step:de,hasSeparator:ke!==$.length-1,state:de.state})})))))}i(zl,"Quote");import{Divider as Fx,Skeleton as Ox}from"@rango-dev/ui";import Xt from"react";import{darkTheme as _x,styled as ta}from"@rango-dev/ui";var ig=ta("div",{$$color:"$colors$neutral100",[`.${_x} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),ag=ta("div",{paddingTop:"$2"}),sg=ta("div",{paddingLeft:"$8"}),lg=ta("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Sg,Divider as bt,Skeleton as pt}from"@rango-dev/ui";import G from"react";import{css as Dx,styled as jt}from"@rango-dev/ui";var ql=jt("div",{display:"flex"}),cg=jt("div",{padding:"$10 $0 $20"}),pg=jt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),ug=jt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),dg=jt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),mg=jt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),fg=jt("div",{width:"65%",display:"flex",justifyContent:"start"}),gg=jt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),hg=jt("div",{padding:"$15 $0 $15 $0"}),yg=Dx({display:"flex",justifyContent:"space-between",alignItems:"center"});function ar(t){let{type:e,tagHidden:o=!0}=t,n=G.createElement(dg,null,G.createElement(fg,null,G.createElement(Sg,{loading:!0,size:"medium"}),G.createElement(bt,{size:8,direction:"horizontal"}),G.createElement(gg,null,G.createElement(pt,{height:10,width:60,variant:"rounded"}),G.createElement(bt,{size:4}),G.createElement(pt,{height:15,variant:"rounded"}))),G.createElement(pt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return G.createElement("div",null,!o&&G.createElement(G.Fragment,null,G.createElement(ql,null,G.createElement(pt,{width:65,height:20,variant:"rounded"}),G.createElement(bt,{size:4,direction:"horizontal"}),G.createElement(pt,{width:65,height:20,variant:"rounded"}),G.createElement(bt,{size:4,direction:"horizontal"}),G.createElement(pt,{width:65,height:20,variant:"rounded"})),G.createElement(Vi,null),!r&&G.createElement(bt,{size:4})),G.createElement("div",{className:yg()},G.createElement(ql,null,G.createElement(pt,{width:60,height:10,variant:"rounded"}),G.createElement(bt,{size:4,direction:"horizontal"}),G.createElement(pt,{width:60,height:10,variant:"rounded"}),G.createElement(bt,{size:4,direction:"horizontal"}),G.createElement(pt,{width:60,height:10,variant:"rounded"})),r&&G.createElement(pt,{width:85,height:24,variant:"rounded"})),e==="basic"&&G.createElement(cg,null,G.createElement(pt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(pg,null,G.createElement(ug,null,G.createElement(Sg,{loading:!0,size:"medium"}),G.createElement(bt,{direction:"horizontal",size:4}),G.createElement(pt,{height:15,width:150,variant:"rounded"})),G.createElement(bt,{size:10}),G.createElement(pt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(bt,{size:4}),G.createElement(hg,null,n,G.createElement(mg,null),n),G.createElement(bt,{size:12})))}i(ar,"QuoteSummarySkeleton");import{ChainToken as wg,Divider as Ql,NextIcon as $x,Skeleton as oa}from"@rango-dev/ui";import Me from"react";import{styled as sr}from"@rango-dev/ui";var Cg=sr("div",{display:"flex",alignItems:"start"}),Tg=sr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Hl=sr("div",{display:"flex",alignItems:"center",flexGrow:1}),kg=sr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),vg=sr("div",{display:"flex",alignItems:"center"});function _t(t){let{separator:e=!0}=t;return Me.createElement(Me.Fragment,null,Me.createElement(vg,null,Me.createElement(oa,{height:22,width:22,variant:"circular"}),Me.createElement(Ql,{direction:"horizontal",size:8}),Me.createElement(oa,{height:15,width:148,variant:"rounded"})),Me.createElement(Cg,null,Me.createElement(lg,{hideSeparator:!e}),Me.createElement(Tg,{extraSpace:e},Me.createElement(Hl,null,Me.createElement(wg,{size:"small",loading:!0}),Me.createElement(Ql,{direction:"horizontal",size:8}),Me.createElement(oa,{height:12,variant:"rounded"})),Me.createElement(kg,null,Me.createElement($x,{color:"gray",size:16})),Me.createElement(Hl,null,Me.createElement(wg,{size:"small",loading:!0}),Me.createElement(Ql,{direction:"horizontal",size:8}),Me.createElement(oa,{height:12,variant:"rounded"})))))}i(_t,"StepSkeleton");function lr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Xt.createElement(ig,{expanded:o,rounded:e!=="basic"},Xt.createElement(ar,{type:e,tagHidden:n}),Xt.createElement(ag,null,Xt.createElement(Ox,{height:15,variant:"rounded"})),o&&Xt.createElement(sg,null,Xt.createElement(Fx,{size:24}),Xt.createElement(_t,null),Xt.createElement(_t,null),Xt.createElement(_t,{separator:!1})))}i(lr,"QuoteSkeleton");function _o(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:g,fullExpandedMode:h=!1,container:f}=t,{inputAmount:m,inputUsdValue:T}=O(),y=e?.outputAmount?new Ux(e?.outputAmount):null,C=e?yt(e):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?na.createElement(Ml,null,na.createElement(lr,{tagHidden:c,type:o,expanded:s})):v?na.createElement(Ml,{onClick:()=>l?.(e),id:d},na.createElement(zl,{quote:e,error:r,container:f,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:g,fullExpandedMode:h,input:{value:m,usdValue:T?.toString()??""},output:{value:y?.toString()??"",usdValue:C?.toString()??""}})):null}i(_o,"QuoteInfo");import{calculatePendingSwap as Qx}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Gx}from"react";import{useRef as zx,useState as qx}from"react";var Hx=2e3;function ra({request:t}){let[e,o]=qx(!1),n=zx(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,Hx)),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(ra,"useFetch");function xg(){let{fetch:t,loading:e,cancelFetch:o}=ra({request:async(n,r)=>await lt().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(xg,"useFetchConfirmQuote");function ia(t){if(!t.swaps)throw new Error(ne().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Gl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ia,"throwErrorIfResponseIsNotValid");function Gl(t){if(Id(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Ad(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=Ld(t);if(o){let n=vi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Gl,"getQuoteError");function bg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=sn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=_d(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(bg,"generateWarnings");function aa(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:t?.code==="ERR_BAD_REQUEST"?{swap:null,error:{type:0,diagnosisMessage:t.response.data.error},warnings:null}:{swap:null,error:{type:1,diagnosisMessage:t.message},warnings:null}}i(aa,"handleQuoteErrors");function Vl(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=O(),{slippage:l,customSlippage:p}=S(),u=S().getDisabledLiquiditySources(),d=S().blockchains(),g=S().tokens(),{findToken:h}=S(),f=p||l,{fetch:m,cancelFetch:T,loading:y}=xg();return Gx(()=>T,[]),{loading:y,fetch:i(async k=>{let v=k.selectedWallets,b=k?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=v.reduce((E,x)=>(E[x.chain]=x.address,E),{}),A={requestId:a?.requestId||"",selectedWallets:I,destination:b||void 0};try{return await m(A,!0).then(E=>{let{result:x}=E;if(!x)throw new Error(E.error??"Error fetching updated quote");ia({diagnosisMessages:x.diagnosisMessages,requestId:x.requestId,swaps:x.result?.swaps});let w={outputAmount:x.result?.outputAmount,requestId:x.requestId,resultType:x.result?.resultType,swaps:x.result?.swaps||[],validationStatus:x.validationStatus,requestAmount:x.requestAmount};r(w);let B={slippage:f.toString(),disabledSwappersGroups:u},P=bg({previousQuote:a??void 0,currentQuote:w,meta:{blockchains:d},selectedWallets:v,userSlippage:f,inputUsdValue:n,findToken:h});c();let $=!!P.balance,q=Qx(o.toString(),x,Pd(v),B,!$,{blockchains:d,tokens:g});return{quote:w,swap:q,error:null,warnings:P}})}catch(E){return aa(E)}},"fetch"),cancelFetch:T}}i(Vl,"useConfirmSwap");var tb=Xx("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Eg}`]:{width:"$48",height:"$48"}}),ob=Xl({flexGrow:1,paddingRight:"$10"}),nb=Xl({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),rb=Xl({display:"flex",justifyContent:"space-between",alignItems:"center"});function Ig(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=eb(),[c,l]=cr(""),p=!n,[u,d]=cr(!1),[g,h]=cr(!1),{isActiveTab:f}=oe(),m=S().getDisabledLiquiditySources(),T=Rx(m),{manager:y}=Vx(),{fetch:C,loading:k,cancelFetch:v}=Vl(),[b,I]=cr({swap:null,error:null,warnings:null}),[A,E]=cr(!1),x=i(async({selectedWallets:L,customDestination:te})=>{let le=await C?.({selectedWallets:L,customDestination:te});return I(le),le},"onConfirmSwap"),w=i(async()=>{if(b.swap&&n)try{await y?.create("swap",{swapDetails:b.swap},{id:b.swap.requestId});let L=`../${F.swaps}/${b.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{h(!0),await w(),h(!1)},"onConfirm"),P=i(async()=>{b.warnings?.quote&&Cd(b.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),$=i(async()=>{I({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(L=>{I(L)}).catch(L=>console.error(L))},"onRefresh");sa(()=>{!!T.current.length&&!m.length&&$(),T.current=m},[m.length]),sa(()=>{p&&v()},[p]),sa(()=>{p&&d(p)},[p]),sa(()=>{p||C({selectedWallets:o,customDestination:r}).then(L=>I(L)).catch(L=>console.error(L))},[]),Jx(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=b.warnings?.quote??null,ee=b.error,V=[];if(c&&V.push(Fe.createElement(Kx,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||ee){let L=`../${F.settings}`;V.push(Fe.createElement(or,{warning:q,error:ee,couldChangeSettings:!1,refetchQuote:$,skipAlerts:ee?.type===4||q?.type===2,showWarningModal:A,confirmationDisabled:!f,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await w()},onChangeSettings:()=>s(L)}))}return Fe.createElement(ie,{header:{title:Kl.t("Confirm Swap"),onWallet:()=>{let L=`../${F.wallets}`;s(L)}},footer:Fe.createElement(tb,null,Fe.createElement("div",{className:ob()},Fe.createElement(jx,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||g,disabled:!!b.error||!f,onClick:P},Kl.t("Start Swap"))),Fe.createElement(Eg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||g,disabled:!f,onClick:d.bind(null,!0)},Fe.createElement(Zx,{size:24})))},u&&Fe.createElement(uf,{open:u,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:x}),Fe.createElement(ae,null,Fe.createElement("div",{className:rb()},Fe.createElement(Yx,{variant:"title",size:"small"},Kl.t("You get")),Fe.createElement("div",{className:nb()},Fe.createElement(Bi,{onClick:!k&&!u&&!A?$:void 0}))),Fe.createElement(jl,{size:"12"}),sm(V.map((L,te)=>({element:L,key:`alert-${te}`})),Fe.createElement(jl,{size:10})),V.length>0?Fe.createElement(jl,{size:10}):null,Fe.createElement(_o,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:b.error,loading:k,warning:b.warnings?.quote??null})))}i(Ig,"ConfirmSwapPage");import{i18n as Zt}from"@lingui/core";import{Button as sc,CustomTokensZeroStateDarkIcon as bb,CustomTokensZeroStateIcon as Eb,DeleteIcon as Ib,Divider as gr,IconButton as Ab,MessageBox as Nb,NotFound as Bb,styled as cc}from"@rango-dev/ui";import ge,{useState as lc}from"react";import{useNavigate as Wb}from"react-router-dom";import{CloseIcon as ab,IconButton as sb,SearchIcon as lb,TextField as cb}from"@rango-dev/ui";import pr from"react";import{styled as ib}from"@rango-dev/ui";var Ag=ib("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Et(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...d}=t,g=s.length?pr.createElement(sb,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},pr.createElement(ab,{color:"gray",size:10})):null;return p&&(g=p),pr.createElement(cb,{prefix:pr.createElement(Ag,null,pr.createElement(lb,{color:"black"})),id:u,suffix:g,fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d})}i(Et,"SearchInput");import{i18n as ac}from"@lingui/core";import{Button as mb,CustomTokenWarning as fb,darkTheme as Ug,Divider as Yt,ExternalLinkIcon as gb,Image as hb,ListItem as yb,NotFound as Sb,PinIcon as Cb,Skeleton as Do,Typography as mr,VirtualizedList as Tb}from"@rango-dev/ui";import M,{useState as kb}from"react";import{useTranslation as vb}from"react-i18next";import{Divider as Fg,ListItem as db,Skeleton as dr}from"@rango-dev/ui";import It from"react";import{css as vn,darkTheme as Yl,ImageContainer as pb,ListItemButton as ub,styled as rt,Typography as Ng}from"@rango-dev/ui";var Zl=vn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Jl=vn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Rl=vn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),ec=vn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Yl} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),tc=vn({}),oc=vn(),Bg=rt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),nc=rt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),la=rt("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Jl}`]:{[`& .${ec}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${tc}`]:{bottom:"-15px"},[`& .${Zl}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Rl}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Wg=rt(ub,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),rc=rt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),ic=rt(Ng,{}),Lg=rt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${oc}`]:{$$color:"$colors$neutral600",[`.${Yl} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ur=rt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),YG=rt("div",{display:"flex",alignItems:"center"}),Mg=rt("div",{position:"relative",[`& ${pb}`]:{borderRadius:"$xm",overflow:"hidden"}}),Pg=rt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),_g=rt(Ng,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Dg=rt("a",{"& svg:hover":{color:"$colors$info"}}),$g=rt("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":{[`.${Yl} &`]:{color:"$foreground"}}}});function Og(t){return It.createElement(la,null,Array.from(Array(t.size),e=>It.createElement(db,{key:e,hasDivider:!0,start:It.createElement(dr,{variant:"circular",width:35,height:35}),end:It.createElement(ur,null,It.createElement(dr,{variant:"text",size:"large",width:70}),It.createElement(Fg,{size:4}),It.createElement(dr,{variant:"text",size:"medium",width:50})),title:It.createElement("div",null,It.createElement(dr,{variant:"text",size:"large",width:90}),It.createElement(Fg,{size:4}),It.createElement(dr,{variant:"text",size:"medium",width:90}))})))}i(Og,"LoadingTokenList");var wb=20,xb=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return M.createElement("div",{className:Jl()},o?M.createElement("div",{className:Zl()},o):M.createElement(nc,{className:Rl()},M.createElement(mr,{variant:"title",size:"xmedium"},r.symbol),M.createElement(Yt,{direction:"horizontal",size:4}),M.createElement(rc,{css:a},M.createElement(ic,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&M.createElement("div",{className:`${ec()} ${!o&&tc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",M.createElement(Yt,{size:4,direction:"horizontal"}),M.createElement(Dg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},M.createElement(gb,{size:12}))))},"renderDesc");function fr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=S().fetchStatus,u=S().blockchains(),{getBalanceFor:d,fetchingWallets:g}=S(),{isTokenPinned:h}=S(),{setFromToken:f,setToToken:m}=O(),{t:T}=vb(),y=Ve(),[C,k]=kb(null),v=i(()=>{c==="source"?f({token:C,meta:{blockchains:u}}):m({token:C,meta:{blockchains:u}})},"updateToken"),b=i(()=>{v(),y()},"handleImportToken"),I=i(x=>{if(x.customToken){let{customToken:B,...P}=x;return M.createElement(mb,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),k({...P,warning:!0})},"handleClick")},M.createElement(mr,{variant:"body",size:"xsmall",color:"background"},T("import")))}let w=Zr(d(x));return s?s(x):g?M.createElement(ur,null,M.createElement(Do,{variant:"text",size:"large",width:70}),M.createElement(Yt,{size:4}),M.createElement(Do,{variant:"text",size:"medium",width:50})):w&&M.createElement(Lg,null,M.createElement(_g,{variant:"title",size:"small"},w.amount),M.createElement("div",null),w.usdValue&&M.createElement(mr,{variant:"body",className:oc(),size:"xsmall"},`$${w.usdValue}`))},"endRenderer"),A=i(()=>M.createElement(Tb,{itemContent:x=>{let w=e[x];if(w==="skeleton")return M.createElement(yb,{hasDivider:!0,start:M.createElement(Do,{variant:"circular",width:35,height:35}),end:M.createElement(ur,null,M.createElement(Do,{variant:"text",size:"large",width:70}),M.createElement(Yt,{size:4}),M.createElement(Do,{variant:"text",size:"medium",width:50})),title:M.createElement("div",null,M.createElement(Do,{variant:"text",size:"large",width:90}),M.createElement(Yt,{size:4}),M.createElement(Do,{variant:"text",size:"medium",width:90}))});let B=w.address||"",P=u.find(L=>L.name===w.blockchain);if(!P)return null;let $=Ys(P.color,"main"),q={$$color:$.main150,[`.${Ug} &`]:{$$color:$.main750},backgroundColor:"$$color"},ee={$$color:$.main750,[`.${Ug} &`]:{$$color:$.main150},color:"$$color"},V=i(()=>{typeof w!="string"&&!w.customToken&&n?.(w)},"handleClick");return M.createElement($g,null,M.createElement(Wg,{"tab-index":x,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:w.customToken,onClick:V,start:M.createElement(Mg,null,M.createElement(hb,{src:w.image===""?zr:w.image,size:30}),t.type!=="custom-token"&&h(w,t.type)&&M.createElement(Pg,null,M.createElement(Cb,{size:12,color:"gray"}))),title:P?.type==="COSMOS"||w.name||!w.name&&!B?M.createElement(nc,null,M.createElement(mr,{variant:"title",size:"xmedium"},w.symbol),M.createElement(Yt,{direction:"horizontal",size:4}),M.createElement(rc,{css:q},M.createElement(ic,{variant:"body",size:"xsmall",css:ee},w.blockchain)),l&&w.warning&&M.createElement(M.Fragment,null,M.createElement(Yt,{direction:"horizontal",size:4}),M.createElement(fb,{container:N()}))):void 0,description:typeof w!="string"&&P?.info&&B&&P.type!=="COSMOS"?xb({address:B,token:w,customCssForTag:q,customCssForTagTitle:ee,name:w.name,url:P.info.addressUrl.split("{wallet}").join(B)}):w.name||void 0,end:I(w)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=C?To(C?.blockchain,u):null;return M.createElement(M.Fragment,null,a&&M.createElement(M.Fragment,null,M.createElement(mr,{variant:"label",size:"large"},ac.t("Select Token")),M.createElement(Yt,{size:4})),M.createElement(Bg,null,M.createElement(Yt,{size:4}),p==="loading"&&M.createElement(Og,{size:wb}),p==="success"&&(e.length?M.createElement(M.Fragment,null,M.createElement(Kn,{token:C,address:C?.address??"",blockchain:E??void 0,onImport:b,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),M.createElement(la,{as:"ul"},A())):!!o&&M.createElement(Sb,{title:ac.t("No results found"),description:ac.t("Try using different keywords")}))))}i(fr,"TokenList");var Lb=cc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Mb=cc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Pb=cc(Ab,{"&:hover":{"& svg":{color:"$secondary550"}}});function zg(){let[t,e]=lc(""),{deleteCustomToken:o}=S(),n=S().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=O(),{mode:l}=io({}),p=Wb(),[u,d]=lc(!1),[g,h]=lc(),f=i(C=>{let k=C.target.value;e(k)},"handleSearch"),m=l==="dark",T=n.filter(C=>at(C.symbol,t)||at(C.address||"",t)||at(C.name||"",t)),y=i(()=>{if(g){let C=a?gt(a):null,k=r?gt(r):null,v=gt(g);C===v?c({token:null}):k===v&&s({token:null}),o(g)}d(!1)},"handleDeleteCustomToken");return ge.createElement(ie,{header:{title:Zt.t("Custom Tokens")}},ge.createElement(ae,null,ge.createElement(Lb,null,n.length?ge.createElement(ge.Fragment,null,ge.createElement(Et,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Zt.t("Search Token"),onChange:f}),ge.createElement(gr,{size:16}),ge.createElement(fr,{list:T,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>ge.createElement(Pb,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(C)}},ge.createElement(Ib,{size:12,color:"gray"}))})):ge.createElement(Mb,null,ge.createElement(Bb,{icon:m?ge.createElement(bb,{size:200}):ge.createElement(Eb,{size:200}),title:Zt.t("No custom tokens"),description:Zt.t("press the button to add your custom token")})),ge.createElement(gr,{size:20}),ge.createElement(sc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(F.addCustomTokens)},Zt.t("Add Custom Token"))),ge.createElement(R,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:N()},ge.createElement(Nb,{title:Zt.t("Delete Custom Token"),type:"error",description:Zt.t("Are you sure you want to Delete this Token?")},ge.createElement(gr,{size:40}),ge.createElement(gr,{size:10}),ge.createElement(sc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},Zt.t("Yes, Delete it")),ge.createElement(gr,{size:12}),ge.createElement(sc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},Zt.t("No, Continue"))))))}i(zg,"CustomTokensPage");import{i18n as Je}from"@lingui/core";import{useManager as eE}from"@rango-dev/queue-manager-react";import{Button as hc,darkTheme as tE,Divider as Fo,MessageBox as oE,NotFound as nE,styled as yc,Typography as ua}from"@rango-dev/ui";import{TransactionStatus as Sr}from"rango-types";import se,{useMemo as ah,useState as da}from"react";import{useNavigate as rE}from"react-router-dom";import{FilterIcon as zb,Popover as qb}from"@rango-dev/ui";import $o from"react";import{css as _b,darkTheme as ca,IconButton as Db,styled as hr}from"@rango-dev/ui";var pc=hr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ca} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),qg=hr(Db,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ca} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ca} &`]:{backgroundColor:"$neutral"},[`& ${pc}::before`]:{backgroundColor:"$secondary100",[`.${ca} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Hg=hr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Qg=hr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),Gg=_b({display:"flex",justifyContent:"space-between",alignItems:"center"}),Vg=hr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as Kg}from"@lingui/core";import{Button as $b,Divider as jg,ListItemButton as Fb,Radio as Ob,RadioRoot as Ub,Typography as Xg}from"@rango-dev/ui";import ut from"react";function Yg(t){let{filterBy:e,onClickItem:o}=t;return ut.createElement(Qg,null,ut.createElement("div",{className:Gg()},ut.createElement(Xg,{size:"small",variant:"body"},Kg.t("Status")),ut.createElement($b,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},Kg.t("Reset"))),ut.createElement(jg,{size:10}),ut.createElement(Ub,{value:e},ut.createElement(Vg,null,t.list.map((n,r)=>ut.createElement(Fb,{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:ut.createElement(ut.Fragment,null,ut.createElement(jg,{direction:"horizontal",size:4}),ut.createElement(Xg,{size:"medium",variant:"body"},n.title)),start:ut.createElement(Ob,{value:n.id}),onClick:o})))))}i(Yg,"FilterSelectorContent");function uc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return $o.createElement("div",null,$o.createElement(qb,{open:a,align:"end",onOpenChange:o,container:N(),content:$o.createElement(Yg,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},$o.createElement(qg,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},$o.createElement(pc,{isSelect:!!n},$o.createElement(zb,{size:16,color:"black"}),!!n&&$o.createElement(Hg,null)))))}i(uc,"FilterSelector");import{i18n as Gb}from"@lingui/core";import{getCurrentStep as Vb}from"@rango-dev/queue-manager-rango-preset";import{Divider as th,GroupedVirtualizedList as Kb,Skeleton as jb,SwapListItem as oh,Typography as Xb}from"@rango-dev/ui";import Ze,{useCallback as nh,useEffect as Yb,useRef as Zb,useState as Jb}from"react";function Zg(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(Zg,"calculateGroupsSoFar");import{css as Hb,darkTheme as Qb,styled as yr}from"@rango-dev/ui";var dc=Hb(),Jg=yr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),mc=yr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${dc}`]:{$$color:"$colors$neutral600",[`.${Qb} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),fc=yr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Rg=yr("div",{gap:"$10",display:"flex",flexDirection:"column"}),eh=yr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var Rb=10;function gc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=Jb([]),c=Zb(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=nh(Zg,[]),g=nh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,Rb),s(d(p,c.current)))},[e.length]);if(Yb(()=>{r||g()},[r,g]),r){let h=[1,2];return Ze.createElement(Ze.Fragment,null,[h,h].map((m,T)=>Ze.createElement(mc,{key:T},Ze.createElement(fc,null,Ze.createElement(jb,{variant:"text",width:60,size:"small"}),Ze.createElement(th,{size:16})),Ze.createElement(th,{size:4}),Ze.createElement(Rg,null,m.map((C,k)=>Ze.createElement(oh,{isLoading:!0,key:k}))))))}return Ze.createElement(Kb,{endReached:()=>{c.current<e.length&&g()},groupCounts:a,groupContent:h=>Ze.createElement(mc,null,Ze.createElement(fc,null,Ze.createElement(Xb,{variant:"label",size:"medium",className:dc()},u[h]))),itemContent:(h,f)=>{let m=l[h];if(!m)return null;let T=Vb(m),y=m.steps[0],C=m.steps[m.steps.length-1];return Ze.createElement(Jg,{key:m.requestId},Ze.createElement(oh,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:T,tooltipContainer:N(),onlyShowTime:u[f]===Gb.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:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:_(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(gc,"HistoryGroupedList");import{i18n as pa}from"@lingui/core";import rh from"dayjs";var ih=i(t=>{let e=new Map([["today",{title:pa.t("Today"),swaps:[]}],["week",{title:pa.t("This week"),swaps:[]}],["month",{title:pa.t("This month"),swaps:[]}],["year",{title:pa.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=rh();t.forEach(l=>{let p=Number(l.creationTime),u=rh(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 iE=yc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),aE=yc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),sE=yc("div",{"._typography":{color:"$neutral700",[`.${tE}&`]:{color:"$neutral900"}}}),lE=[{id:Sr.SUCCESS,title:Je.t("Complete")},{id:Sr.RUNNING,title:Je.t("Running")},{id:Sr.FAILED,title:Je.t("Failed")}],cE=i((t,e)=>t?.length?t.filter(o=>Bt(o.fromBlockchain,e)||Bt(o.toBlockchain,e)||Bt(o.toSymbol,e)||Bt(o.fromSymbol,e)).length:!1,"isStepContainsText");function sh(){let t=rE(),{manager:e,state:o}=eE(),n=St(e).map(({swap:k})=>k),[r,a]=da(""),[s,c]=da(!1),l=!o.loadedFromPersistor,[p,u]=da(""),[d,g]=da(!1),h=i(k=>{let v=k.target.value;a(v)},"handleSearch"),f=ah(()=>!r&&!p?n:n.filter(k=>{let{inputAmount:v,status:b,steps:I,requestId:A}=k;return(!r||Bt(v,r)||Bt(b,r)||cE(I,r)||Bt(A,r))&&(!p||p===b)}),[n,r,p]),m=!f?.length&&!l,T=i(()=>g(!1),"onCloseModal"),y=i(async()=>{try{await e?.clearQueue(),g(!1)}catch(k){console.log(k)}},"onClear"),C=ah(()=>!n.some(k=>k.status===Sr.SUCCESS||k.status===Sr.FAILED),[n]);return se.createElement(ie,{header:{title:Je.t("History"),suffix:se.createElement(ao,null,se.createElement(hc,{id:"widget-history-clear-btn",disabled:C,variant:"ghost",size:"xsmall",onClick:()=>g(!0)},se.createElement(ua,{size:"medium",variant:"label",color:"error"},Je.t("Clear"))))}},se.createElement(ae,null,se.createElement(aE,null,se.createElement(Et,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Je.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:h,style:{height:36},value:r}),se.createElement(Fo,{size:10,direction:"horizontal"}),se.createElement(uc,{filterBy:p,open:s,onOpenChange:k=>c(k),onClickItem:k=>u(k),list:lE})),se.createElement(Fo,{size:"16"}),se.createElement(iE,null,m&&se.createElement(eh,null,se.createElement(Fo,{size:32}),se.createElement(nE,{title:r?Je.t("No results found"):Je.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Je.t("Try using different keywords"):Je.t("Your transaction history is stored locally and will appear here after you start a swap")})),!m&&se.createElement(gc,{list:f,onSwapClick:t,groupBy:ih,isLoading:l}))),se.createElement(R,{open:d,onClose:T,id:"widget-history-clear-modal",container:N()},se.createElement(Fo,{size:20}),se.createElement(oE,{type:"warning",title:Je.t("Clear Transaction History"),description:se.createElement(sE,null,se.createElement(ua,{variant:"body",size:"medium"},Je.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),se.createElement(Fo,{size:"24"}),se.createElement(ua,{variant:"body",size:"small"},Je.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),se.createElement(Fo,{size:30}),se.createElement(hc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},Je.t("Yes, Clear the history")),se.createElement(Fo,{size:10}),se.createElement(hc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:T},se.createElement(ua,{variant:"title",size:"medium",color:"primary"},Je.t("No, Cancel")))))}i(sh,"HistoryPage");import{i18n as QE}from"@lingui/core";import{Button as GE,Divider as Wc,styled as VE,WarningIcon as KE}from"@rango-dev/ui";import jE from"bignumber.js";import Se,{useEffect as $h,useState as Fh}from"react";import{useNavigate as XE}from"react-router-dom";import{i18n as ch}from"@lingui/core";import{Alert as uE,Divider as Sc,NoRouteIcon as dE,Typography as mE}from"@rango-dev/ui";import Oo from"react";import{styled as pE}from"@rango-dev/ui";var lh=pE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Cc(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Ot(t,e)?Oo.createElement(lh,null,Oo.createElement(Sc,{size:10}),Oo.createElement(dE,{size:24,color:"gray"}),Oo.createElement(Sc,{size:4}),Oo.createElement(mE,{variant:"title",size:"small"},ch.t("No Routes Found")),Oo.createElement(Sc,{size:4}),Oo.createElement(uE,{title:ch.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Cc,"SameTokensWarning");import{Alert as fE,Button as gE}from"@rango-dev/ui";import uh from"react";import{i18n as ma}from"@lingui/core";function ph(t){let e=null;return t===ti?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ma.t("Reset"),title:ma.t("Slippage cannot be set lower than 0.01%.")},e):t>jo?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ma.t("Change"),title:ma.t("Caution, your slippage is high!")},e):null}i(ph,"makeAlerts");function dh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=S(),{onChangeSettings:a}=t,c=ph(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(ei),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?uh.createElement(fE,{title:c.title,type:c.alertType,variant:"alarm",action:uh.createElement(gE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(dh,"SlippageWarningsAndErrors");import{i18n as TE}from"@lingui/core";import{IconButton as kE,ReverseIcon as vE,Skeleton as wE,Tooltip as xE,Typography as Cr}from"@rango-dev/ui";import dt from"react";import fa from"bignumber.js";function fh(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(fh,"getSlippageColor");function gh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new fa(e),r=new fa(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(gh,"getUsdExchangeRate");function hh(t,e){let o=new fa(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,fa.ROUND_DOWN).toFormat(2)}`}i(hh,"formatTokenValueInUsd");import{darkTheme as SE,styled as kc,Typography as CE}from"@rango-dev/ui";var yh=kc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),Sh=kc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${SE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),vc=kc(CE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function wc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=S(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:g}=io({}),h=Zo(d),f=g==="dark",m=n==="default",T={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},C=p?.swaps[0].from||c,k=p?.swaps[p?.swaps.length-1].to||l,v=m?C:k,b=m?k:C,I=Number(m?p?.outputAmount:p?.requestAmount),A=Number(m?p?.requestAmount:p?.outputAmount),E=I||v.usdPrice,x=A||b.usdPrice,{rawValue:w,displayValue:B}=gh({toTokenUsdPrice:x,fromTokenUsdPrice:E});return dt.createElement(yh,null,dt.createElement(Cr,{variant:T||y?"label":"body",size:T||y?"medium":"small",color:fh({error:T,warning:y,isDarkTheme:f})},TE.t("Slippage:")," ",d,"%"),u?dt.createElement(wE,{height:16,width:104,variant:"rounded"}):E&&x&&dt.createElement(Sh,null,dt.createElement(Cr,{className:"rate-text",variant:"body",size:"small"},"1"),dt.createElement(vc,{className:"rate-text",variant:"body",size:"small"},b.symbol),dt.createElement(kE,{id:"widget-home-page-change-rate-button",onClick:r},dt.createElement(vE,{size:14,color:"secondary"})),dt.createElement(xE,{container:N(),side:"top",sideOffset:4,content:dt.createElement(Cr,{className:"rate-text",variant:"body",size:"small"},w)},dt.createElement(Cr,{className:"rate-text",variant:"body",size:"small"},B)),dt.createElement(vc,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&dt.createElement(Cr,{color:"neutral600",variant:"body",size:"small"},"~",hh(Number(w),v.usdPrice))))}i(wc,"SwapMetrics");import{i18n as BE}from"@lingui/core";import{Header as WE}from"@rango-dev/ui";import mo,{useEffect as LE,useState as ME}from"react";import{i18n as EE}from"@lingui/core";import{Divider as bc,FullExpandedQuote as IE,Typography as AE}from"@rango-dev/ui";import xe from"react";import{styled as xc}from"@rango-dev/ui";var Ch=xc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Th=xc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),kh=xc("div",{width:"146px"});import{i18n as Tr}from"@lingui/core";import{Select as bE}from"@rango-dev/ui";import vh from"react";function ga(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:Tr.t("Smart Routing")},{value:"FEE",label:Tr.t("Lowest Fee")},{value:"SPEED",label:Tr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Tr.t("Maximum Return")},{value:"PRICE",label:Tr.t("Maximum Output")}];return vh.createElement(kh,null,vh.createElement(bE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ga,"SelectStrategy");var wh=3;function kr(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:g,sortStrategy:h,error:f}=O(),{slippage:m,customSlippage:T}=S(),{findToken:y}=S(),C=c||N(),k=!!p&&p.results.length,v=T??m,b=i(E=>{if(!d||!g||!p)return null;let x={requestAmount:p.requestAmount,validationStatus:null,...E};return sn({currentQuote:x,userSlippage:v,findToken:y})},"getQuoteWarning"),I=f?.type===0||f?.type===1,A=p?.results?Ti(h,p?.results):[];return xe.createElement(xe.Fragment,null,a&&xe.createElement(xe.Fragment,null,xe.createElement(Th,null,xe.createElement(AE,{size:"xmedium",variant:"title"},EE.t("Sort by")),xe.createElement(ga,{container:C})),xe.createElement(bc,{size:"10"})),e&&Array.from({length:wh},(E,x)=>xe.createElement(xe.Fragment,{key:x},s?xe.createElement(IE,{loading:!0}):xe.createElement(lr,{tagHidden:!1,type:"list-item",expanded:!1}),x!==wh-1&&xe.createElement(bc,{size:16}))),!e&&xe.createElement(xe.Fragment,null,k?A.map((E,x)=>{let w=b(E),B=Gl(E.swaps),P=A.length-1===x;return xe.createElement(xe.Fragment,{key:E.requestId},xe.createElement(_o,{id:"widget-quotes-quote-info-container",showModalFee:r,container:C,selected:l?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:w,fullExpandedMode:s,onClick:$=>{B||u("warning",w),u("error",B?.options||null),o($)},type:"list-item"}),!P&&xe.createElement(bc,{size:16}))}):I&&xe.createElement(Ch,null,xe.createElement(Rn,{size:s?"large":"small",error:f,fetch:n}))))}i(kr,"Quotes");import{darkTheme as NE,styled as xh}from"@rango-dev/ui";var bh=xh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${NE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Eh=xh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var PE=100;function Ec(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=ME(!1),l=s?"":"is-hidden",{config:p}=S(),u=p?.variant==="full-expanded",d=vo();return LE(()=>{let g=null;return a?g=setTimeout(()=>{c(!0)},PE):(c(!1),g&&clearTimeout(g)),()=>{g&&clearTimeout(g)}},[a]),mo.createElement(bh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Pi()} widget-expanded-quotes-container`,id:et.EXPANDED_BOX_ID},mo.createElement(WE,{title:BE.t("Routes"),suffix:mo.createElement(mo.Fragment,null,mo.createElement(ga,{container:d}),mo.createElement(Lo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),mo.createElement(Eh,null,mo.createElement(kr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:vo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Ec,"ExpandedQuotes");import{i18n as Mh}from"@lingui/core";import{SwapInput as Ph}from"@rango-dev/ui";import FE from"bignumber.js";import vr from"react";import{ReverseIcon as $E}from"@rango-dev/ui";import Ac from"react";import{keyframes as _E,styled as Ih}from"@rango-dev/ui";var Ic=450,DE=_E({"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)"}}),Ah=Ih("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Nh=Ih("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${DE} ${Ic}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 Nc(){let t=O.use.switchFromAndTo();return Ac.createElement(Ah,null,Ac.createElement(Nh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Ic),t()}},Ac.createElement($E,{size:12})))}i(Nc,"SwitchFromAndToButton");import{styled as Bh}from"@rango-dev/ui";var Wh=Bh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Lh=Bh("div",{position:"relative"});function Bc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:d,inputUsdValue:g,outputAmount:h,outputUsdValue:f,selectedQuote:m}=O(),{connectedWallets:T,getBalanceFor:y}=S(),C=a?y(a):null,k=Zr(C)?.amount??"0",v=C?new FE(C.amount).shiftedBy(-C.decimals):ce,b=!!s&&su(T,s.name),I=!Ls(m,d,g),A=!Ls(m,d,f),E=!g||!f||!f.gt(0)?null:Ht(g.toString(),f.toString());return vr.createElement(Wh,null,vr.createElement(Lh,null,vr.createElement(Ph,{label:Mh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:k,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:I?void 0:_(g,4,4),realUsdValue:I?void 0:g?.toString(),error:I?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:b,tooltipContainer:N(),onSelectMaxBalance:()=>{let x=_(v,C?.decimals),w=C?.amount?x.split(",").join(""):"";p(w)},anyWalletConnected:T.length>0}),vr.createElement(Nc,null)),vr.createElement(Ph,{sharpBottomStyle:!r&&(!!m||e),label:Mh.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:_(Ht(g,f),2,2),warningLevel:Qt(E??0),price:{value:_(h,6,6),usdValue:A?void 0:_(f,4,4),realValue:h?.toString(),realUsdValue:A?void 0:f?.toString(),error:A?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(Bc,"Inputs");import{useCallback as OE,useEffect as UE,useRef as zE,useState as qE}from"react";function _h(){let{fetch:t,loading:e,cancelFetch:o}=ra({request:async(n,r)=>await lt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(_h,"useFetchAllQuotes");var HE=600;function ha({refetchQuote:t}){let{fetch:e,cancelFetch:o}=_h(),{excludeLiquiditySources:n,routing:r}=S().config,{connectedWallets:a}=S(),c=a.some(j=>j.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:g,sortStrategy:h,resetQuote:f,error:m,warning:T,setSelectedQuote:y,updateQuotePartialState:C}=O(),{slippage:k,customSlippage:v,affiliatePercent:b,affiliateRef:I,affiliateWallets:A,fetchStatus:E}=S(),x=S().getLiquiditySources(),w=S().getDisabledLiquiditySources(),B=S().excludeLiquiditySources(),{findToken:P}=S(),[$,q]=qE(!0),ee=zE(u),V=v??k,te=!l||!p||Ot(l,p)||!Bn(u),le=i(j=>{q(j)},"resetState"),J=i(j=>{let{fromToken:ue,toToken:de,inputAmount:ke,liquiditySources:Q,excludeLiquiditySources:W,disabledLiquiditySources:H,slippage:K,affiliateRef:Y,affiliatePercent:ye,affiliateWallets:qe}=j;if($||le(!0),!te&&ue&&de){f();let He=Md({fromToken:ue,toToken:de,inputAmount:ke,liquiditySources:Q,excludeLiquiditySources:W,disabledLiquiditySources:H,wallets:a,slippage:K,affiliateRef:Y,affiliatePercent:ye,affiliateWallets:qe,contractCall:c});Yo("experimental",r)&&(He.experimental=!0),Yo("avoidNativeFee",r)&&(He.avoidNativeFee=!0),Yo("enableCentralizedSwappers",r)&&(He.enableCentralizedSwappers=!0),r?.maxLength&&(He.maxLength=r.maxLength),e(He).then(Tt=>{let Ae=Ti(h,Tt.results),je=kd(g,Ae,Tt.requestAmount);q(!1),C("quotes",Tt),y(je),ia({diagnosisMessages:Tt.diagnosisMessages,requestId:je?.requestId||"",swaps:je?.swaps});let Dr=je&&sn({currentQuote:je,userSlippage:V,findToken:P});C("warning",Dr)}).catch(Tt=>{let{error:Ae}=aa(Tt);(Ae?.type===0||Ae?.type===1)&&f(),Ae?.type!==2&&(C("error",Ae),q(!1))})}},"fetch"),X=OE(Qr(j=>{J(j)},HE),[te]);return UE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(te){q(!1),(g||m||T)&&f();return}if(!Bn(u)&&d?.eq(0)){le(!1),o();return}f(),le(!0);let j=J;return ee.current&&ee.current!=u&&(j=X),ee.current=u,j({inputAmount:u,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:V,affiliateRef:I,affiliatePercent:b,affiliateWallets:A,contractCall:c}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,te,x?.length,n,w.length,V,I,b,c,JSON.stringify(A)]),{fetch:()=>J({inputAmount:u,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:V,affiliateRef:I,affiliatePercent:b,affiliateWallets:A,contractCall:c}),loading:$}}i(ha,"useSwapInput");function Dh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};ve.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Dh,"emitPreventableEvent");var YE=VE("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),ZE=300;function Oh(){let t=XE(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:g}=O(),[h,f]=Fh(!1),{isLargeScreen:m,isExtraLargeScreen:T}=un(),{fetch:y,loading:C}=ha({refetchQuote:a}),{config:k,fetchStatus:v,connectedWallets:b,customSlippage:I,slippage:A,setSlippage:E,setCustomSlippage:x}=S(),{isActiveTab:w}=oe(),[B,P]=Fh(!1),q=Zo(I!==null?I:A),V=Nd({fetchMetaStatus:v,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:b.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),L=fu(m,T,k?.variant),te=!!n&&!!e&&!!o&&new jE(n).gt(0)&&!Ud(e,o),le=te&&v==="success"&&C,J=q?.quoteValidation||c,ue=(!L||L&&l?.results.length)&&(J||s),de=!!e&&!!o,ke=de&&!!q,Q=(r||s)&&!B?y:void 0,W=i(Y=>{L&&h?(f(!1),setTimeout(()=>{t(Y)},ZE)):t(Y)},"onHandleNavigation"),H=i(Y=>{r?.requestId!==Y.requestId&&(P(!1),p(Y))},"onClickOnQuote"),K=i(Y=>{if(Y){if(Rr.includes(Y)){E(Y),x(null);return}x(Y)}},"onChangeSlippage");return $h(()=>{u(),g("refetchQuote",!0)},[]),$h(()=>{f(te)},[te]),Se.createElement(YE,null,Se.createElement(ie,{height:"auto",footer:Se.createElement(GE,{id:`widget-swap-${V.action}-btn`,type:"primary",size:"large",disabled:V.disabled||!w,prefix:V.action==="confirm-warning"&&Se.createElement(KE,null),fullWidth:!0,onClick:()=>{V.action==="connect-wallet"?Dh({type:"clickConnectWallet"},()=>W(F.wallets)):V.action==="confirm-warning"?P(!0):W(F.confirmSwap)}},V.title),header:{onWallet:()=>{W(F.wallets)},hasBackButton:!1,title:k.title||QE.t("Swap"),suffix:Se.createElement(Lo,{hidden:L?["refresh"]:void 0,onClickRefresh:Q,onClickHistory:()=>W(F.swaps),onClickSettings:()=>{W(F.settings)}})}},Se.createElement(ae,null,Se.createElement(Bc,{fetchingQuote:le,fetchMetaStatus:v,isExpandable:L,onClickToken:Y=>{W(Y==="from"?F.fromSwap:F.toSwap)}}),Se.createElement(Wc,{size:"2"}),L?null:Se.createElement(_o,{quote:r,loading:le,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:J,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{g("refetchQuote",!1),W(F.routes)}:void 0}),de&&Se.createElement(Se.Fragment,null,Se.createElement(Wc,{size:8}),Se.createElement(wc,{quoteError:s,quoteWarning:J,fromToken:e,toToken:o,quote:r,loading:le})),ue?Se.createElement(Se.Fragment,null,Se.createElement(or,{warning:J,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:y,showWarningModal:B,confirmationDisabled:!w,onOpenWarningModal:()=>P(!0),onCloseWarningModal:()=>P(!1),onChangeSlippage:K,onConfirmWarningModal:()=>{P(!1),d(!0),W(F.confirmSwap)},onChangeSettings:()=>W(F.settings)})):null,ke&&Se.createElement(Se.Fragment,null,Se.createElement(Wc,{size:"10"}),Se.createElement(dh,{onChangeSettings:()=>W(F.settings)})),Se.createElement(Cc,null))),L?Se.createElement(Ec,{loading:le,onClickOnQuote:H,fetch:y,onClickRefresh:Q,isVisible:h}):null)}i(Oh,"Home");import{i18n as Uh}from"@lingui/core";import{Alert as JE,Divider as RE,List as eI,ListItemButton as tI,Radio as oI,RadioRoot as nI,Typography as rI}from"@rango-dev/ui";import Dt from"react";function fo(){let{setLanguage:t,language:e,config:o}=S(),n=ku,r=o?.language||Jo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Jo),resetLanguage:()=>t(null)}}i(fo,"useLanguage");function zh(){let{activeLanguage:t,changeLanguage:e,languages:o}=fo(),n=Ve(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Dt.createElement(rI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Dt.createElement(oI,{value:s}),start:Dt.createElement(l,null)}});return Dt.createElement(ie,{header:{title:Uh.t("Language")}},Dt.createElement(ae,null,Dt.createElement(JE,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Dt.createElement(RE,{size:"8"}),Dt.createElement(nI,{value:t},Dt.createElement(eI,{type:Dt.createElement(tI,{title:Uh.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(zh,"LanguagePage");import{i18n as Jt}from"@lingui/core";import{Button as cI,Checkbox as pI,Image as uI,ListItemButton as dI,NotFound as mI,Typography as fI}from"@rango-dev/ui";import Re,{useState as gI}from"react";import{Checkbox as sI,Skeleton as Hh}from"@rango-dev/ui";import xr from"react";import{styled as Lc}from"@rango-dev/ui";var wr=Lc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Mc=Lc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Pc=Lc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as iI,styled as aI}from"@rango-dev/ui";var qh=aI(iI,{height:61});var lI=30;function _c(){return xr.createElement(wr,null,Array.from(Array(lI),(t,e)=>xr.createElement(qh,{hasDivider:!0,key:e,start:xr.createElement(Hh,{variant:"circular",width:35,height:35}),title:xr.createElement(Hh,{variant:"text",size:"large",width:90}),end:xr.createElement(sI,{checked:!1})})))}i(_c,"LoadingLiquiditySourceList");function Dc({sourceType:t}){let e=S().fetchStatus,o=S().swappers(),n=S().getDisabledLiquiditySources(),[r,a]=gI(""),s=S().toggleLiquiditySource,c=S().isInCampaignMode(),l=oi(o,n),p={Exchanges:Jt.t("Exchanges"),Bridges:Jt.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)),g=d.length===d.filter(y=>y.selected).length,h=i(()=>{d.forEach(y=>{g?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),f=d.map(y=>{let{selected:C,groupTitle:k,logo:v,id:b,...I}=y;return{id:`widget-setting-liquidity-source-${Xp(b.toLowerCase())}-item-btn`,start:Re.createElement(uI,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:Re.createElement(pI,{checked:C,disabled:c}),title:Re.createElement(fI,{variant:"title",size:"xmedium"},Jt.t(k)),selected:C,groupTitle:k,logo:v,...I}}),m=i(y=>{let C=y.target.value;a(C)},"handleSearch"),T=f;return r&&(T=f.filter(y=>Bt(y.groupTitle,r))),Re.createElement(ie,{header:{title:Jt.t(t),suffix:Re.createElement(Mc,null,Re.createElement(cI,{id:`widget-liquidity-source-${g?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},g?Jt.t("Deselect all"):Jt.t("Select all")))}},Re.createElement(ae,{view:!0},Re.createElement(Et,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:Jt.t("Search {sourceType}",{sourceType:p[t]}),onChange:m}),e==="loading"&&Re.createElement(_c,null),!T.length&&r?Re.createElement(Pc,null,Re.createElement(mI,{title:Jt.t("No results found"),description:Jt.t("Try using different keywords")})):e==="success"&&Re.createElement(wr,{disabled:c,className:"widget-liquidity-source-list"},T.map(y=>{let{groupTitle:C,...k}=y;return Re.createElement(Re.Fragment,{key:y.id},Re.createElement(dI,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Dc,"LiquiditySourcePage");import{i18n as hI}from"@lingui/core";import ya from"react";import{useNavigate as yI}from"react-router-dom";function Qh(){let t=yI(),e=Ve(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:c,loading:l}=ha({refetchQuote:n}),p=i(g=>{r(g),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${F.settings}`,d=`../${F.wallets}`;return ya.createElement(ie,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:hI.t("Routes"),suffix:ya.createElement(Lo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},ya.createElement(ae,null,ya.createElement(kr,{fetch:c,loading:l,onClickOnQuote:p})))}i(Qh,"RoutesPage");import{i18n as Zh}from"@lingui/core";import{Divider as Jh,getCategoriesCount as II,SelectableCategoryList as AI}from"@rango-dev/ui";import Rt,{useState as Rh}from"react";import{useNavigate as NI}from"react-router-dom";import{i18n as $c}from"@lingui/core";import{Divider as kI,Image as vI,ListItemButton as wI,NotFound as xI,Typography as Yh}from"@rango-dev/ui";import mt,{useEffect as bI,useState as EI}from"react";var Gh=i((t,e,o)=>t.filter(n=>Gr(n.type,o)).filter(n=>at(n.name,e)||at(n.displayName,e)),"filterBlockchains");import{ImageContainer as SI,styled as Vh}from"@rango-dev/ui";var Kh=Vh("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Sa=Vh(fl,{padding:0,margin:0,listStyle:"none",[`& ${SI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as CI,Skeleton as jh}from"@rango-dev/ui";import Ca from"react";var TI=20;function Xh(){return Ca.createElement(Sa,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(TI),t=>Ca.createElement(CI,{key:t,hasDivider:!0,start:Ca.createElement(jh,{variant:"circular",width:35,height:35}),title:Ca.createElement(jh,{variant:"text",size:"large",width:90})})))}i(Xh,"LoadingBlockchainList");function Fc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=EI(e),{fetchStatus:l}=S();bI(()=>{c([...Gh(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?mt.createElement(xI,{title:$c.t("No results found"),description:$c.t("Try using different keywords")}):mt.createElement(Sa,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>mt.createElement(wI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:mt.createElement(vI,{src:u.logo,size:30}),title:mt.createElement(Yh,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return mt.createElement(mt.Fragment,null,a&&mt.createElement(mt.Fragment,null,mt.createElement(Yh,{variant:"label",size:"large"},$c.t("Select Chain")),mt.createElement(kI,{size:4})),mt.createElement(Kh,null,l==="loading"&&mt.createElement(Xh,null),l==="success"&&p()))}i(Fc,"BlockchainList");function Ta(t){let{type:e}=t,o=Ve(),[n,r]=Rh(""),[a,s]=Rh("ALL"),c=O.use.setToBlockchain(),l=O.use.setFromBlockchain(),{fetchStatus:p}=S(),u=NI(),d=S().blockchains({type:e}),g=II(d),h=!t.hideCategory&&g!==1;return Rt.createElement(ie,{header:{title:Zh.t("Select Chain")}},Rt.createElement(ae,{view:!0},h&&Rt.createElement(Rt.Fragment,null,Rt.createElement(AI,{setCategory:s,category:a,blockchains:d,isLoading:p==="loading"}),Rt.createElement(Jh,{size:24})),Rt.createElement(Et,{value:n,autoFocus:!0,placeholder:Zh.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Rt.createElement(Jh,{size:16}),Rt.createElement(Fc,{list:d,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:f=>{e==="custom-token"?u(`..?blockchain=${f.name}`,{replace:!0}):(e==="source"?l(f):c(f),o())}})))}i(Ta,"SelectBlockchainPage");import{i18n as wa}from"@lingui/core";import{Divider as ay,Spinner as QI}from"@rango-dev/ui";import go,{useEffect as GI,useState as VI}from"react";import{useNavigate as KI}from"react-router-dom";import{i18n as zc}from"@lingui/core";import{BlockchainsChip as ka,Divider as ny,Image as ry,Skeleton as _I,Tooltip as DI,Typography as qc}from"@rango-dev/ui";import be from"react";import{useEffect as LI}from"react";var ey=["ETH","COSMOS","OSMOSIS"];function Oc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(BI),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(WI(s)),r=n.splice(a)}return{list:n,more:r}}i(Oc,"prepare");function BI(t,e){let o=ey,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(BI,"sortByMostUsedBlockchains");function WI(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(WI,"generateSortByPreferredBlockchainsFor");function ty(t,e){return!!e.list.find(o=>o.name===t)}i(ty,"isInVisibleList");function Uc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=S();LI(()=>{if(e?.selected){let a=Oc(t,o,e);ty(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Oc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Uc,"usePrepareBlockchainList");import{styled as MI}from"@rango-dev/ui";var oy=MI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var $I=6,FI=12;function Hc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=Uc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=S(),p=O.use.resetToBlockchain(),u=O.use.resetFromBlockchain(),d=c.more.length>0,g=c.more.length===1,h=!g&&d;return be.createElement(be.Fragment,null,!s&&be.createElement(be.Fragment,null,be.createElement(ny,{size:12}),be.createElement(qc,{variant:"label",size:"large"},zc.t("Select Chain"))),be.createElement(ny,{size:12}),be.createElement(oy,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?$I:FI),(f,m)=>be.createElement(_I,{key:m,variant:"rounded",height:50})),l==="success"&&be.createElement(be.Fragment,null,be.createElement(ka,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},be.createElement(qc,{variant:"body",size:"xsmall",color:"secondary500"},zc.t("All"))),c.list.map(f=>be.createElement(DI,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:N()},be.createElement(ka,{className:"widget-blockchains-section-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},be.createElement(ry,{src:f.logo,size:30})))),g?be.createElement(ka,{className:"widget-blockchains-section-only-item-btn",key:c.more[0].name,selected:!!n&&n.name===c.more[0].name,onClick:()=>r(c.more[0])},be.createElement(ry,{src:c.more[0].logo,size:30})):null,h?be.createElement(ka,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},be.createElement(qc,{variant:"body",size:"xsmall",color:"secondary500"},zc._("More +{count}",{count:c.more.length}))):null)))}i(Hc,"BlockchainsSection");import{useCallback as UI,useRef as zI,useState as Qc}from"react";function Gc(){let t=S().blockchains(),e=zI(null),{customTokens:o}=S(),[n,r]=Qc(!1),[a,s]=Qc([]),[c,l]=Qc(null),p=i(async(g,h)=>{l(null),r(!0),s([]);try{let f=await lt().searchCustomTokens({query:g,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(C=>zt(C))),T=new Set(t.map(C=>C.name)),y=f.tokens.filter(C=>T.has(C.blockchain)&&!m.has(zt(C)));s(y),r(!1)}catch(f){l(f instanceof Error?f.message:"something went wrong"),s([]),f?.name!=="CanceledError"&&r(!1)}},"fetch"),u=UI(Qr((g,h)=>{e.current?.signal.aborted||p(g,h)},600),[t.length]);return{fetch:(g,h)=>{e.current=new AbortController,s([]),r(!0),u(g,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Gc,"useSearchCustomTokens");function va(t,e,o){return o&&t.length===1&&t[0].address===e?!1:t.length<20&&e.trim().length>=3}i(va,"shouldSearchForCustomTokens");function iy(t,e,o,n,r){let a=[...t];return va(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(iy,"prepareTokensList");function xa(t){let{type:e}=t,o=KI(),n=Ve(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=O(),{getBalanceFor:u}=S(),{fetch:d,loading:g,tokens:h,cancel:f}=Gc(),[m,T]=VI(""),y=e==="source"?r:a,C=y?.name??"",k=S().blockchains({type:e}),v=S().tokens({type:e,blockchain:C,searchFor:m,getBalanceFor:u}),b=iy(v,h,m,g,y?.name),I=i(x=>{e==="source"?l(x):p(x)},"updateBlockchain"),A=i(x=>{e==="source"?s({token:x,meta:{blockchains:k}}):c({token:x,meta:{blockchains:k}})},"updateToken"),E={source:wa.t("Source"),destination:wa.t("Destination")};return GI(()=>(va(v,m,y?.name)&&d(m,y?.name??void 0),()=>{f()}),[v.length,m,y?.name]),go.createElement(ie,{header:{title:wa.t("Swap {type}",{type:E[e]})}},go.createElement(ae,null,go.createElement(Hc,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:x=>{I(x)}}),go.createElement(ay,{size:24}),go.createElement(Et,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:wa.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>T(""),onChange:x=>T(x.target.value),suffix:va(v,m,y?.name)&&g?go.createElement(QI,{size:12,color:"secondary"}):void 0}),go.createElement(ay,{size:16}),go.createElement(fr,{list:b,selectedBlockchain:C,searchedFor:m,type:e,onChange:x=>{A(x);let w=k.find(B=>x.blockchain===B.name);w&&I(w),n()}})))}i(xa,"SelectSwapItemsPage");import{i18n as Xc}from"@lingui/core";import{Alert as TA,Button as kA,styled as vA}from"@rango-dev/ui";import Uo from"react";import{useInRouterContext as wA,useSearchParams as xA}from"react-router-dom";import{i18n as dy}from"@lingui/core";import{Alert as ZI,Divider as Kc,InfoIcon as JI,SlippageIcon as RI,TextField as eA,Tooltip as tA,Typography as my}from"@rango-dev/ui";import Ue from"react";import{Chip as jI,styled as br,TextField as XI}from"@rango-dev/ui";var sy=br("div",{paddingTop:"$5",padding:"$10 $5"}),ly=br("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${XI}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),cy=br("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ba=br("div",{maxWidth:"280px",padding:"$10"}),py=br(jI,{width:"61px",flexShrink:0});import{i18n as Vc}from"@lingui/core";import{Typography as YI}from"@rango-dev/ui";import Er from"react";function uy(){return Er.createElement(ba,null,Er.createElement(YI,{variant:"label",size:"medium",color:"neutral700"},Vc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Er.createElement("br",null),Er.createElement("br",null),Er.createElement("b",null,Vc.t("Warning")),":\xA0",Vc.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(uy,"SlippageTooltipContent");function jc(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=S(),r=o!==null?Zo(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let d=u;u>Pn&&(d=Pn),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;Zp(u)||(p.value=u.slice(0,-1))},"onInput");return Ue.createElement(sy,null,Ue.createElement(cy,null,Ue.createElement(RI,{size:16,color:"gray"}),Ue.createElement(Kc,{direction:"horizontal",size:4}),Ue.createElement(my,{variant:"title",size:"xmedium"},dy.t("Slippage tolerance per swap")),Ue.createElement(Kc,{direction:"horizontal",size:4}),Ue.createElement(tA,{container:N(),side:"top",sideOffset:4,content:Ue.createElement(uy,null)},Ue.createElement(JI,{color:"gray"}))),Ue.createElement(ly,null,Rr.map((l,p)=>{let u=`slippage-${p}`;return Ue.createElement(py,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),Ue.createElement(eA,{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&&Ue.createElement(my,{variant:"body",size:"small"},"%"),placeholder:dy.t("Custom")})),r&&Ue.createElement(Ue.Fragment,null,Ue.createElement(Kc,{size:10}),Ue.createElement(ZI,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(jc,"Slippage");import{i18n as Ct}from"@lingui/core";import{AutoThemeIcon as fy,BridgesIcon as oA,ChevronRightIcon as Ea,DarkModeIcon as gy,Divider as Ir,ExchangeIcon as nA,InfinityIcon as rA,InfoIcon as iA,LanguageIcon as aA,LightModeIcon as hy,List as sA,ListItem as lA,ListItemButton as cA,Skeleton as pA,styled as uA,Switch as dA,Tabs as mA,TargetIcon as fA,Tooltip as gA,Typography as it}from"@rango-dev/ui";import D from"react";import{useNavigate as hA}from"react-router-dom";var yA=uA("div",{width:"202px",height:"$40"}),SA=[{id:"light",icon:D.createElement(hy,{color:"black",size:24}),tooltip:D.createElement(it,{size:"xsmall",variant:"body"},Ct.t("Light"))},{id:"dark",icon:D.createElement(gy,{color:"black",size:24}),tooltip:D.createElement(it,{size:"xsmall",variant:"body"},Ct.t("Dark"))},{id:"auto",icon:D.createElement(fy,{color:"black",size:24}),tooltip:D.createElement(it,{size:"xsmall",variant:"body"},Ct.t("Auto"))}],CA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(fy,{...e});case"dark":return D.createElement(gy,{...e});default:return D.createElement(hy,{...e})}},"getThemeIcon");function yy(){let t=hA(),{theme:e}=S().config,{setTheme:o,theme:n}=S(),{activeLanguage:r,languages:a}=fo(),s=a.find(L=>L.local===r)?.label,c=S().fetchStatus,l=S().swappers(),p=S().getDisabledLiquiditySources(),{config:{features:u}}=S(),d=S().customTokens(),g=tt("theme",u),h=tt("liquiditySource",u),f=tt("language",u),m=tt("customTokens",u),T=S().infiniteApprove,y=S().toggleInfiniteApprove,C=oi(l,p),k=C.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),v=k.length,b=k.filter(L=>L.selected).length,I=C.filter(L=>L.type==="DEX"),A=I.length,E=I.filter(L=>L.selected).length,x=i((L,te)=>{switch(c){case"loading":return D.createElement(pA,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(it,{variant:"body",size:"medium",color:"$error500"},Ct.t("Loading failed"));default:return D.createElement(it,{variant:"body",size:"medium"},`${L} / ${te}`)}},"handleSwapperEndItem"),w={id:"widget-setting-bridge-item-btn",title:D.createElement(it,{variant:"title",size:"xmedium"},Ct.t("Bridges")),end:D.createElement(D.Fragment,null,x(b,v),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(Ea,{color:"black"})),onClick:()=>t(F.bridges),start:D.createElement(oA,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:D.createElement(it,{variant:"title",size:"xmedium"},Ct.t("Exchanges")),end:D.createElement(D.Fragment,null,x(E,A),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(Ea,{color:"black"})),start:D.createElement(nA,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},P={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(it,{variant:"title",size:"xmedium"},Ct.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(it,{variant:"body",size:"medium"},`${d.length}`),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(Ea,{color:"black"})),start:D.createElement(fA,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},$={id:"widget-setting-language-item-btn",title:D.createElement(it,{variant:"title",size:"xmedium"},Ct.t("Language")),start:D.createElement(aA,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(it,{variant:"body",size:"medium"},s),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(Ea,{color:"black"})),onClick:()=>t(F.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(it,{variant:"title",size:"xmedium"},Ct.t("Infinite approval")),D.createElement(Ir,{direction:"horizontal",size:4}),D.createElement(gA,{side:"top",sideOffset:4,container:N(),content:D.createElement(ba,null,D.createElement(it,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,Ct.t("Warning")),":\xA0",Ct.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(iA,{color:"gray"}))),start:D.createElement(rA,{color:"gray",size:16}),end:D.createElement(dA,{checked:T}),onClick:y},ee={id:"widget-setting-theme-item-btn",type:D.createElement(lA,null),title:D.createElement(it,{variant:"title",size:"xmedium"},Ct.t("Theme")),end:D.createElement(yA,null,D.createElement(mA,{container:N(),items:SA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:CA(n)},V=h?[]:[w,B];return m||V.push(P),f||V.push($),V.push(q),!e?.singleTheme&&!g&&V.push(ee),D.createElement(sA,{type:D.createElement(cA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:V})}i(yy,"SettingsLists");var bA=vA("div",{paddingLeft:"$8"});function Sy(){let{isInCampaignMode:t,updateCampaignMode:e}=S(),o=t(),[,n]=xA(),r=wA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Uo.createElement(ie,{header:{title:Xc.t("Settings")}},Uo.createElement(ae,null,o&&Uo.createElement(TA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:Xc.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:Uo.createElement(bA,null,Uo.createElement(kA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Xc.t("Reset")))}),Uo.createElement(jc,null),Uo.createElement(yy,null)))}i(Sy,"SettingsPage");import{i18n as B0}from"@lingui/core";import{cancelSwap as W0}from"@rango-dev/queue-manager-rango-preset";import{useManager as L0}from"@rango-dev/queue-manager-react";import{Alert as M0}from"@rango-dev/ui";import up from"react";import{useParams as P0}from"react-router-dom";import{i18n as qo}from"@lingui/core";import{getCurrentNamespaceOfOrNull as y0,getCurrentStep as S0,getRelatedWalletOrNull as C0}from"@rango-dev/queue-manager-rango-preset";import{Button as dS,Divider as T0,QuoteCost as k0,StepDetails as v0,Typography as ap}from"@rango-dev/ui";import{useWallets as w0}from"@rango-dev/wallets-react";import mS from"bignumber.js";import{PendingSwapNetworkStatus as bn}from"rango-types";import Te,{useEffect as fS,useRef as gS,useState as sp}from"react";import{useNavigate as x0}from"react-router-dom";import{i18n as ho}from"@lingui/core";var EA=[ho.t("Sunday"),ho.t("Monday"),ho.t("Tuesday"),ho.t("Wednesday"),ho.t("Thursday"),ho.t("Friday"),ho.t("Saturday")];function Cy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?ho.t("Today"):`${EA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Cy,"timeSince");function Ty(t){return t.finishTime?Cy(parseInt(t.finishTime)):Cy(parseInt(t.creationTime))}i(Ty,"getSwapDate");import Nr from"react";import{i18n as Ia}from"@lingui/core";import{Button as ky,Divider as Yc,MessageBox as IA}from"@rango-dev/ui";import yo from"react";var vy=i(({onCancel:t,onClose:e})=>yo.createElement(yo.Fragment,null,yo.createElement(Yc,{size:20}),yo.createElement(IA,{type:"error",title:Ia.t("Cancel Swap"),description:Ia.t("Are you sure you want to cancel this swap?")}),yo.createElement(Yc,{size:32}),yo.createElement(ky,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Ia.t("Yes, Cancel it")),yo.createElement(Yc,{size:12}),yo.createElement(ky,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Ia.t("No, Continue"))),"CancelContent");import{i18n as Aa}from"@lingui/core";import{Button as wy,Divider as Zc,MessageBox as AA,Typography as NA}from"@rango-dev/ui";import eo from"react";var xy=i(({onDelete:t,onClose:e})=>eo.createElement(eo.Fragment,null,eo.createElement(Zc,{size:20}),eo.createElement(AA,{type:"error",title:Aa.t("Delete Transaction"),description:Aa.t("Are you sure you want to delete this swap?")}),eo.createElement(Zc,{size:32}),eo.createElement(wy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Aa.t("Yes, Delete it")),eo.createElement(Zc,{size:12}),eo.createElement(wy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},eo.createElement(NA,{variant:"title",size:"medium",color:"primary"},Aa.t("No, Cancel")))),"DeleteContent");import{i18n as by}from"@lingui/core";import{MessageBox as BA}from"@rango-dev/ui";import WA from"react";var Ey=i(t=>{let{status:e,message:o}=t,n=e==="waitingForNetworkChange"?"loading":"success",r=e==="waitingForNetworkChange"?by.t("Change Network"):by.t("Network Changed");return WA.createElement(BA,{type:n,title:r,description:o})},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as jA,getCurrentStep as XA,getRelatedWalletOrNull as YA}from"@rango-dev/queue-manager-rango-preset";import{WalletState as ZA}from"@rango-dev/ui";import{useWallets as JA}from"@rango-dev/wallets-react";import Ly from"react";import{i18n as wn}from"@lingui/core";import{Alert as Ay,Button as MA,Checkbox as PA,Divider as Wa,Image as _A,MessageBox as DA,Spinner as $A,WarningIcon as FA}from"@rango-dev/ui";import{useWallets as OA}from"@rango-dev/wallets-react";import he,{useState as UA}from"react";import{darkTheme as LA,styled as Ar}from"@rango-dev/ui";var G3=Ar("div",{display:"flex",justifyContent:"center"}),V3=Ar("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Iy=Ar("img",{width:"100%"}),Na=Ar("div",{position:"relative"}),Ba=Ar("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${LA} &`]:{$$color:"$warning600"}});var Ny=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=UA(null),{list:s}=kt(),c=oe.use.isActiveTab(),{state:l,connect:p}=OA(),u=s.find(b=>b.type===e.walletType),d=u?.needsNamespace?.data.find(b=>b.value===o?.namespace);if(!u)return null;let g=l(e.walletType),h=u.isHub&&o?.namespace?g.namespaces?.get(o.namespace):null,f=g.connecting||h?.connecting,m=u.isHub?h?.connected:g.connected,T=i(()=>m?wn.t("Done"):r?wn.t("Try again"):wn.t("Connect"),"getButtonTitle"),y=i(()=>f?he.createElement($A,{color:"info"}):r||m?null:he.createElement(PA,{checked:!0,disabled:!0}),"getNamespaceSuffix"),C=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(b){a(b)}},"handleConnect"),k=i(async()=>{if(m){n();return}C()},"handleClickButton"),v=i(()=>{if(!m)return null;let b=u?.isHub?h?.accounts?.[0]?.split(":"):g?.accounts?.[0]?.split(":"),I=b?.[b?.length-1];return I?oo(I):null},"getAddress");return he.createElement(he.Fragment,null,he.createElement(DA,{type:"warning",title:wn.t("Connect {wallet}",{wallet:u.title}),description:wn.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:he.createElement(Na,null,he.createElement(_A,{src:u.image,size:45}),he.createElement(Ba,null,he.createElement(FA,{color:"warning",size:10})))}),m&&!d&&he.createElement(he.Fragment,null,he.createElement(Wa,{size:10}),he.createElement(Ay,{type:"success",variant:"alarm",title:wn.t("Wallet connected successfully.")})),r&&!d&&he.createElement(he.Fragment,null,he.createElement(Wa,{size:10}),he.createElement(Ay,{type:"error",title:r?.message,variant:"alarm"})),d&&he.createElement(he.Fragment,null,he.createElement(Wa,{size:30}),he.createElement(Eo,{namespace:d,suffix:y(),error:r?.message,connected:m,address:v()})),he.createElement(Wa,{size:"40"}),he.createElement(MA,{loading:f,type:"primary",id:"widget-connect-wallet-btn",onClick:k,disabled:!c},T()))},"ConnectWalletContent");import{i18n as By}from"@lingui/core";import{Button as zA,Divider as qA,Image as HA,MessageBox as QA,WarningIcon as GA}from"@rango-dev/ui";import{useWallets as VA}from"@rango-dev/wallets-react";import{detectInstallLink as KA}from"@rango-dev/wallets-shared";import to from"react";var Wy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=VA(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(KA(n.installLink),"_blank"),"handleButtonClick");return to.createElement(to.Fragment,null,to.createElement(QA,{type:"warning",title:By.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:to.createElement(Na,null,to.createElement(HA,{src:n.img,size:45}),to.createElement(Ba,null,to.createElement(GA,{color:"warning",size:10})))}),to.createElement(qA,{size:"40"}),to.createElement(zA,{type:"primary",id:"widget-install-wallet-btn",onClick:r},By.t("Install")))},"InstallWalletContent");var My=i(t=>{let{swap:e,onClose:o}=t,{state:n}=JA(),r=XA(e),a=r?YA(e,r):null,s=a?.walletType,c=s?Wn(n(s)):null,l=r?jA(e,r):null;return s?c===ZA.NOT_INSTALLED?Ly.createElement(Wy,{walletType:s}):Ly.createElement(Ny,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function Jc(t){let{isOpen:e,state:o,onClose:n,onDelete:r,onCancel:a,swap:s,message:c}=t;return Nr.createElement(R,{open:e,onClose:n,container:N()},o==="waitingForConnectingWallet"&&Nr.createElement(My,{swap:s,message:c,onClose:n}),(o==="waitingForNetworkChange"||o==="networkChanged")&&Nr.createElement(Ey,{message:c,status:o}),o==="delete"&&Nr.createElement(xy,{onClose:n,onDelete:()=>{n(),r()}}),o==="cancel"&&Nr.createElement(vy,{onClose:n,onCancel:()=>{n(),a()}}))}i(Jc,"SwapDetailsModal");import{i18n as Br}from"@lingui/core";import{Button as Rc,Divider as Wr,MessageBox as Dy,TokenAmount as RA,Typography as $y}from"@rango-dev/ui";import Ce from"react";import{Link as e0,useNavigate as t0}from"react-router-dom";var Py="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",_y="/profile";function ep(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:g}=t,h=t0(),{showProfileBanner:f}=oe();return Ce.createElement(R,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(et.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement(Dy,{type:"success",title:Br.t("Swap Successful")},Ce.createElement(RA,{direction:"vertical",tooltipContainer:N(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),Ce.createElement(Wr,{size:12}),Ce.createElement($y,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Ce.createElement(Dy,{type:"error",title:Br.t("Transaction Failed"),description:d}),Ce.createElement(Wr,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,f&&Ce.createElement(Ce.Fragment,null,Ce.createElement(e0,{to:_y},Ce.createElement(Iy,{src:Py,alt:"Profile Banner"})),Ce.createElement(Wr,{size:30})),Ce.createElement(Rc,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Br.t("Done"))),Ce.createElement(Wr,{size:12}),g&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Rc,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(g,"_blank")},Br.t("Diagnosis")),Ce.createElement(Wr,{size:12})),Ce.createElement(Rc,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement($y,{variant:"title",size:"medium",color:"primary"},Br.t("See Details"))))}i(ep,"SwapDetailsCompleteModal");import{i18n as Pa}from"@lingui/core";import{CopyIcon as d0,DoneIcon as m0,IconButton as f0,RangoExplorerIcon as g0,Tooltip as aS,Typography as sS,useCopyToClipboard as h0}from"@rango-dev/ui";import At from"react";import u0 from"react";import{i18n as s0}from"@lingui/core";import{Alert as oS,IconButton as l0,LinkIcon as c0}from"@rango-dev/ui";import So,{Fragment as p0}from"react";import{Alert as n0,ChevronDownIcon as r0,IconButton as i0}from"@rango-dev/ui";import xn,{useState as a0}from"react";import{css as Lr,darkTheme as Fy,styled as $t,Typography as o0}from"@rango-dev/ui";var Oy=$t(ae,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Fy} &`]:{color:"$secondary500"}}}}}),Uy=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),zy=$t("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),qy=$t("div",{padding:"$0 $20 $20 $20"}),XX=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),Hy=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),YX=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),zo=Lr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Fy} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Qy=Lr({padding:"$5 0"}),La=Lr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Gy=Lr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Vy=Lr({width:"100%",padding:"0 $20 $10"}),Ky=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),jy=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ma=$t(o0,{wordBreak:"break-word"});import{styled as tp}from"@rango-dev/ui";var Xy=tp("div",{display:"flex",flexDirection:"column",gap:"$10"}),Yy=tp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Zy=tp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Jy(t){let{message:e}=t,[o,n]=a0(!1);return xn.createElement(n0,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&xn.createElement(i0,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},xn.createElement(Yy,{rotated:o},xn.createElement(r0,{size:12,color:"gray"}))),footer:xn.createElement(Zy,{open:o},xn.createElement(Ma,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Jy,"FailedAlert");import{i18n as Ry}from"@lingui/core";import{Alert as op,Button as eS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as np}from"rango-types";import Mr from"react";function tS(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Mr.createElement(op,{type:"warning",id:"widget-swap-details-change-network-alert",title:n.shortMessage,action:Mr.createElement(eS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(np.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Ry.t("Change"))}):r===np.WaitingForConnectingWallet?Mr.createElement(op,{type:"warning",title:n.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Mr.createElement(eS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(np.WaitingForConnectingWallet)}},Ry.t("Connect"))}):Mr.createElement(op,{id:"widget-swap-details-short-alert",type:"warning",title:n.shortMessage})}i(tS,"WarningAlert");function rp(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,c=Vn(a),l=a.status==="waitingForApproval"&&!c,p=a.status==="running"&&!c,u=p&&!s||l&&!a.explorerUrl?.length;return So.createElement(Xy,null,a.explorerUrl?.map((d,g,h)=>{let f=g+d.url,m=g===h.length-1,T=(m&&p||l)&&!u,y=m&&a.status==="failed";return So.createElement(p0,{key:f},So.createElement(oS,{id:"widget-swap-details-tx-alert",type:m&&(T&&"loading"||y&&"error")||"success",title:d.description?`${d.description} Tx`:s0.t("View transaction"),action:d.url&&So.createElement(l0,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},So.createElement(c0,{size:12}))}))}),u&&So.createElement(oS,{id:"widget-swap-details-loading-alert",type:"loading",title:r.shortMessage}),a.status!=="failed"&&c&&So.createElement(tS,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&So.createElement(Jy,{message:r}))}i(rp,"SwapDetailsAlerts");var nS=2e3;var rS=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:ft(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:_(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ft(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:_(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:In(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:ft(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:ft(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:In(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:u0.createElement(rp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function iS(t){if(Vn(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(iS,"getStepState");function lS(t){let{requestId:e}=t,[o,n]=h0(nS);return At.createElement(zy,{className:zo()},At.createElement(sS,{variant:"label",size:"large",color:"neutral700"},Pa.t("Request ID")),At.createElement("div",{className:La()},At.createElement(sS,{variant:"label",size:"small",color:"neutral700"},e),At.createElement(aS,{container:N(),content:o?Pa.t("Copied To Clipboard"):Pa.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},At.createElement(f0,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?At.createElement(m0,{size:16,color:"secondary"}):At.createElement(d0,{size:16,color:"gray"}))),At.createElement(Ky,{target:"_blank",href:`${Pp}/swap/${e}`},At.createElement(aS,{container:N(),content:Pa.t("View on Rango Explorer"),side:"bottom"},At.createElement(g0,{size:20})))))}i(lS,"RequestIdRow");import{i18n as cS}from"@lingui/core";import{Typography as pS}from"@rango-dev/ui";import ip from"react";function uS(t){let{date:e,isFinished:o}=t;return ip.createElement("div",{className:zo()},ip.createElement(pS,{variant:"label",size:"large",color:"neutral700"},o?cS.t("Finished at"):cS.t("Created at")),ip.createElement(pS,{variant:"label",size:"small",color:"neutral700"},e))}i(uS,"SwapDateRow");function lp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=w0(),l=S().blockchains(),p=S().swappers(),{findToken:u}=S(),d=O.use.retry(),g=x0(),h=gS(null),[f,m]=sp(!1),[T,y]=sp(null),[C,k]=sp(null),v=gS(!1),b=Be.use.getNotifications(),I=Be.use.removeNotification(),A=b(),E=S0(e),x=E?.networkStatus,w=i(Ae=>{m(!0),y(Ae)},"handleChangeModalState"),B=i(()=>{m(!1)},"handleCloseModal");fS(()=>{A.find(je=>je.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(k(e.status),I(e.requestId),B()):C&&k(null))},[e.status,e.requestId]),fS(()=>{te?w(bn.WaitingForNetworkChange):x===bn.WaitingForConnectingWallet?w(bn.WaitingForConnectingWallet):x===bn.NetworkChanged&&w(bn.NetworkChanged),!te&&v.current&&B(),v.current=te},[x]);let P=$d(e),$=E?y0(e,E):null,q=E?C0(e,E):null,ee=Ty(e),V=Fd(e),L=i(Ae=>!!c(Ae)?.mobileWallet,"isMobileWallet"),te=x===bn.WaitingForNetworkChange&&!!$&&!!q?.walletType&&(L(q.walletType)||a(q.walletType,$.network)),le=te?s.bind(null,q.walletType,[{namespace:$.namespace,network:$.network}]):void 0,J=Dd(e,E,c),X=rS({swap:e,switchNetwork:le,showNetworkModal:x,setNetworkModal:w,message:J,blockchains:l,swappers:p}),j=X.length,[ue,de]=[e.steps[0],e.steps[j-1]],ke=de.outputAmount||de.expectedOutputAmountHumanReadable,Q=e.steps.reduce((Ae,je)=>Ae+parseFloat(je.feeInUsd||""),0),W=e.steps.find(Ae=>Ae.diagnosisUrl)?.diagnosisUrl,H=_(parseFloat(ke||"0")*(de.toUsdPrice||0),4,4),K=_(parseFloat(e.inputAmount)*(ue.fromUsdPrice||0),4,4),Y=ke?new mS(ke).multipliedBy(de.toUsdPrice||0).toString():"",ye=new mS(e.inputAmount).multipliedBy(ue.fromUsdPrice||0).toString(),qe=Ht(K,H),He=J.detailedMessage.content||J.shortMessage,Tt=e.status==="success"?qo.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:_(ke,6,6),token:X[j-1].to.token.displayName,conciseAddress:oo(e.wallets[X[j-1].to.chain.displayName]?.address||""),chain:X[j-1].to.chain.displayName}}):Te.createElement(jy,null,Te.createElement(ap,{variant:"body",size:"medium",color:"neutral700",align:"center"},He?"":qo.t("Transaction was not sent."),P?`${qo.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:P.outputAmount,symbol:P.symbol,blockchain:P.blockchain}})}`:""),He&&Te.createElement(Ma,{align:"center",variant:"body",size:"medium",color:"neutral700"},Te.createElement("b",null,"Reason:")," ",He));return Te.createElement(ie,{header:{title:qo.t("Swap Details"),onCancel:e.status==="running"?()=>w("cancel"):void 0,suffix:e.status!=="running"&&Te.createElement(ao,null,Te.createElement(dS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>w("delete")},Te.createElement(ap,{size:"medium",variant:"label",color:"error"},qo.t("Delete"))))},footer:V&&!C&&Te.createElement(dS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Ae=Ci(e,l,u);d(Ae),setTimeout(()=>{g("../../")},0)}},qo.t("Try again"))},Te.createElement(Oy,{compact:!0,ref:h},Te.createElement(lS,{requestId:o}),Te.createElement(uS,{date:ee,isFinished:!!e.finishTime}),Te.createElement("div",{className:Gy()},Te.createElement(k0,{fee:_(String(Q),2,2),time:Nn(Kr(e.steps)),steps:j}),Te.createElement(rr,{from:{price:{value:_(e.inputAmount,6,6),usdValue:K,realUsdValue:ye,realValue:e.inputAmount},token:{displayName:X[0].from.token.displayName,image:X[0].from.token.image},chain:{image:X[0].from.chain.image,displayName:X[0].from.chain.displayName}},to:{price:{value:_(ke,6,6),usdValue:H,realUsdValue:Y,realValue:ke||""},token:{displayName:X[j-1].to.token.displayName,image:X[j-1].to.token.image},chain:{image:X[j-1].to.chain.image,displayName:X[j-1].to.chain.displayName}},percentageChange:_(qe,2,2),warningLevel:Qt(qe??0)})),Te.createElement("div",{className:Vy()},Te.createElement(ap,{variant:"title",size:"small"},qo.t("Swaps steps"))),Te.createElement(T0,{size:8}),Te.createElement(qy,null,X.map((Ae,je)=>{let Dr=je,En=iS(e.steps[je]),HS=En==="error"||En==="in-progress"||En==="warning"||En==="completed"&&je===X.length-1;return Te.createElement(v0,{className:"widget-swap-details-step-item-container",key:Dr,step:Ae,type:"swap-progress",ref:h,state:En,hasSeparator:je!==0,tabIndex:Dr,isFocused:HS,tooltipContainer:N()})}))),Te.createElement(Jc,{isOpen:f,state:T,onClose:B,onCancel:r,onDelete:n,message:J.detailedMessage.content,swap:e}),Te.createElement(ep,{open:!!C,diagnosisUrl:W,onClose:()=>k(null),status:e.status==="success"?"success":"failed",priceValue:_(ke,6,6),usdValue:H,realUsdValue:Y,realValue:ke||"",percentageChange:_(qe,2,2),token:{displayName:X[j-1].to.token.displayName,image:X[j-1].to.token.image},chain:{image:X[j-1].to.chain.image},description:Tt}))}i(lp,"SwapDetails");import{i18n as Da}from"@lingui/core";import{Divider as SS,NotFound as N0,Skeleton as _r,Typography as $a}from"@rango-dev/ui";import Ie from"react";import{i18n as b0}from"@lingui/core";import{Divider as E0,Skeleton as I0,Typography as A0}from"@rango-dev/ui";import Ee from"react";import{css as Nt,styled as cp}from"@rango-dev/ui";var hS=cp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Pr=cp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),_a=cp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),w7=Nt({display:"flex",justifyContent:"space-between",alignItems:"center"}),x7=Nt({display:"flex",justifyContent:"space-between",alignItems:"center"}),b7=Nt({paddingTop:"$15",display:"flex"}),E7=Nt({padding:"$15 $0"}),I7=Nt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),A7=Nt({paddingBottom:"$10"}),N7=Nt({display:"flex",justifyContent:"start",alignItems:"center"}),B7=Nt({paddingTop:"$5",display:"flex",alignItems:"center"}),W7=Nt({display:"flex",alignItems:"center"}),L7=Nt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),yS=Nt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function pp(){return Ee.createElement(hS,null,Ee.createElement(ar,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(A0,{variant:"title",size:"small"},b0.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Pr,null,Ee.createElement(_t,{separator:!1}),Ee.createElement("div",{className:yS()},Ee.createElement(E0,{direction:"horizontal",size:20}),Ee.createElement(I0,{height:22,variant:"rectangular"}))),Ee.createElement(_a,null),Ee.createElement(Pr,null,Ee.createElement(_t,{separator:!1})),Ee.createElement(_a,null),Ee.createElement(Pr,null,Ee.createElement(_t,{separator:!1})),Ee.createElement(_a,null),Ee.createElement(Pr,null,Ee.createElement(_t,{separator:!1}))))}i(pp,"LoadingSwapDetails");function CS(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(ie,{header:{title:Da.t("Swap Details"),suffix:Ie.createElement(ao,null)}},o&&Ie.createElement(Uy,null,Ie.createElement("div",{className:zo()},Ie.createElement($a,{variant:"label",size:"large",color:"neutral700"},`${Da.t("Request ID")}`),Ie.createElement("div",{className:La()},Ie.createElement($a,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"})),Ie.createElement(SS,{direction:"horizontal",size:4}),Ie.createElement(_r,{width:16,height:16,variant:"rectangular"}),Ie.createElement(SS,{direction:"horizontal",size:4}),Ie.createElement(_r,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:zo()},Ie.createElement($a,{className:Qy(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"})),Ie.createElement($a,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"}))),Ie.createElement(pp,null)),!o&&Ie.createElement(Hy,null,Ie.createElement(N0,{title:Da.t("Not found"),description:Da.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(CS,"SwapDetailsPlaceholder");function TS(){let{manager:t,state:e}=L0(),o=!e.loadedFromPersistor,n=St(t),{requestId:r}=P0(),a=Ve(),{fetchStatus:s}=S();if(!r)return up.createElement(M0,{containerStyles:{margin:"20px"},type:"error",title:B0.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:g})=>g.requestId===r):void 0,p=i(()=>{if(l?.id){let g=t?.get(l.id);g&&W0(g)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(g){console.log(g)}},"onDelete"),d=l?.swap;return!d||c?up.createElement(CS,{requestId:r,showSkeleton:c}):up.createElement(lp,{swap:d,requestId:r,onCancel:p,onDelete:u})}i(TS,"SwapDetailsPage");import{i18n as kS}from"@lingui/core";import{Divider as _0,getCategoriesCount as D0,SelectableCategoryList as $0,styled as wS,Typography as F0,Wallet as O0,WalletState as U0}from"@rango-dev/ui";import{useWallets as z0}from"@rango-dev/wallets-react";import Ft,{useState as vS}from"react";var q0=wS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),H0=wS(ae,{textAlign:"center"});function xS(){let{fetchStatus:t}=S(),[e,o]=vS("ALL"),n=S().blockchains(),{config:r}=S(),{state:a}=z0(),[s,c]=vS(),l=oe.use.isActiveTab(),{list:p}=kt(),u=cu(p,n),g=D0(u)!==1,h=pu(p,e),f=i(m=>{Qp(p,r.multiWallets)||c(m)},"handleWalletItemClick");return Ft.createElement(ie,{header:{title:kS.t("Connect Wallets")}},Ft.createElement(H0,null,g&&Ft.createElement(Ft.Fragment,null,Ft.createElement($0,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),Ft.createElement(_0,{size:24})),Ft.createElement(F0,{variant:"title",size:"xmedium",align:"center"},kS.t("Choose a wallet to connect.")),Ft.createElement(q0,null,h.map((m,T)=>{let C=a(m.type).namespaces,k=`wallet-${T}-${m.type}`,v=Ja(m,C);return Ft.createElement(O0,{key:k,...m,state:v?U0.PARTIALLY_CONNECTED:m.state,container:N(),onClick:()=>f(m),isLoading:t==="loading",disabled:!l})}),Ft.createElement(Qn,{id:"widget-state-full-connect-modal",wallet:s,onClose:()=>{c(void 0)}}))))}i(xS,"WalletsPage");function bS(){return qd(),Os(),Q0([{path:F.home,element:ze.createElement(Oh,null)},{path:F.routes,element:ze.createElement(Qh,null)},{path:F.fromSwap,children:[{index:!0,element:ze.createElement(xa,{type:"source"})},{path:F.blockchains,element:ze.createElement(Ta,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:ze.createElement(xa,{type:"destination"})},{path:F.blockchains,element:ze.createElement(Ta,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:ze.createElement(Sy,null)},{path:F.languages,element:ze.createElement(zh,null)},{path:F.exchanges,element:ze.createElement(Dc,{sourceType:"Exchanges"})},{path:F.bridges,element:ze.createElement(Dc,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:ze.createElement(zg,null)},{path:F.addCustomTokens,children:[{index:!0,element:ze.createElement(Dm,null)},{path:F.blockchains,element:ze.createElement(Ta,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:ze.createElement(sh,null)},{path:F.swapDetails,element:ze.createElement(TS,null)}]},{path:F.wallets,element:ze.createElement(xS,null)},{path:F.confirmSwap,element:ze.createElement(Ig,null)}])}i(bS,"AppRoutes");import{useQueueManager as R0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as eN}from"rango-sdk";import{useContext as tN,useEffect as LS,useState as MS}from"react";import{globalCss as G0}from"@rango-dev/ui";var ES=i(()=>G0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function IS(){let{setWatermark:t,setShowProfileBanner:e}=oe();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Ut("BASE_URL")}/meta/dapp/config?apiKey=${Ut("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(IS,"useFetchApiConfig");import{useWallets as V0}from"@rango-dev/wallets-react";import{useEffect as K0,useRef as j0}from"react";function AS(){let{connect:t,state:e}=V0(),o=j0({}),{fetchStatus:n}=S(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);K0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(AS,"useForceAutoConnect");import{isApprovalTX as X0,RouteEventType as NS,StepEventType as BS,StepExecutionEventStatus as Y0,WidgetEvents as Fa}from"@rango-dev/queue-manager-rango-preset";import{useEffect as WS}from"react";function dp(){let t=Be.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=S();WS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===BS.TX_EXECUTION&&s.status===Y0.TX_SENT&&!X0(c)||s.type===BS.SUCCEEDED){let u=[],d=l.wallets[c?.fromBlockchain];if(d){let g=e.find(h=>h.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&h.walletType===d.walletType&&h.chain===c?.fromBlockchain);g&&u.push(g)}if(c?.fromBlockchain!==c?.toBlockchain){let g=l.wallets[c?.toBlockchain];if(g){let h=e.find(f=>f.address?.toLocaleLowerCase()===g.address?.toLocaleLowerCase()&&f.walletType===g.walletType&&f.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let g=n(),f=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(m=>g.some(T=>T.blockchain===m.blockchain&&T.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&T.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:f,shouldFetchCustomTokens:f.length>0})}}t(s,l)},"handleStepEvent");return ve.on(Fa.StepEvent,r),()=>ve.off(Fa.StepEvent,r)},[ve,e]),WS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===NS.FAILED||s.type===NS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return ve.on(Fa.RouteEvent,r),()=>ve.off(Fa.RouteEvent,r)},[ve])}i(dp,"useSubscribeToWidgetEvents");import{useManager as Z0}from"@rango-dev/queue-manager-react";import{useEffect as J0}from"react";function mp(){let{isSynced:t,syncNotifications:e}=Be(),{manager:o,state:n}=Z0();J0(()=>{Be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(St(o))},[Be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(mp,"useSyncNotifications");function fp(){AS(),ES(),dp(),mp();let t=S().blockchains(),{canSwitchNetworkTo:e}=qi(),[o,n]=MS(null),[r,a]=MS(),s=tN(hi),c=t.filter(eN),{fetchApiConfig:l}=IS();LS(()=>()=>zd(),[]),R0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),LS(()=>(bo.init(),Be.persist.hasHydrated()||Be.persist.rehydrate(),s.onConnectWallet(p=>{n(u=>{if(!u||u.walletType!==p.walletType)return p;let d={...u};return p.network&&(d.network=p.network),p.accounts&&(d.accounts=p.accounts),d})}),s.onDisconnectWallet(p=>{a(p),n(u=>p===u?.walletType?null:u)}),l().catch(console.log),bo.destroy),[])}i(fp,"useBootstrap");import{styled as oN}from"@rango-dev/ui";var PS=oN("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Oa(){fp();let{config:t}=S(),{activeTheme:e}=io(t?.theme||{}),{activeLanguage:o}=fo();return gp.createElement(nN,{language:o},gp.createElement(PS,{id:"swap-container",className:e()},gp.createElement(bS,null)))}i(Oa,"Main");import{setSolanaSignerConfig as wN}from"@rango-dev/signer-solana";import yp,{useEffect as US,useMemo as xN}from"react";import{useState as rN}from"react";var iN=i(()=>{let[t,e]=rN(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=Hp(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),_S=iN;import{checkWaitingForNetworkChange as aN,makeQueueDefinition as sN}from"@rango-dev/queue-manager-rango-preset";import{Provider as lN}from"@rango-dev/queue-manager-react";import{useWallets as cN}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as pN}from"@rango-dev/wallets-shared";import{isEvmBlockchain as uN}from"rango-types";import dN,{useMemo as mN}from"react";function fN(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=cN(),c=mN(()=>sN({API_KEY:t.apiKey||Ut("API_KEY"),BASE_URL:Ut("BASE_URL"),emitter:{emit:ve.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=S(),u=l(),d={blockchains:p.map(v=>({accounts:[v],name:v.chain}))},g=i(async(v,b)=>a(v,b.network)?await r(v,[b]):void 0,"switchNetwork"),h=i(v=>!!s(v).mobileWallet,"isMobileWallet"),f=u.filter(v=>v.enabled).reduce((v,b)=>(v[b.name]=b,v),{}),m=u.filter(uN),T=i(v=>{let{supportedChains:b}=s(v);return Ln(b)},"getSupportedChainNames"),y=e(),C={meta:{blockchains:f,evmBasedChains:m,evmNetworkChainInfo:pN(m),getSupportedChainNames:T},getSigners:o,wallets:d,providers:y,switchNetwork:g,canSwitchNetworkTo:a,state:n,isMobileWallet:h},k=oe.use.isActiveTab();return dN.createElement(lN,{queuesDefs:[c],context:C,onPersistedDataLoaded:v=>{aN(v)},isPaused:!k},t.children)}i(fN,"QueueManager");var DS=fN;import{useManager as CN}from"@rango-dev/queue-manager-react";import TN,{createContext as kN,useContext as vN}from"react";function $S(){let{findToken:t}=S(),e=S().blockchains(),o=S().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=O();return i(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:g,toToken:h,requestAmount:f}=p,m={blockchains:e,tokens:o};if(u!==void 0){let T=e.find(y=>y.name===u)??null;n(T)}if(d!==void 0){let T=d?t(d)??null:null;r({meta:m,token:T})}if(g!==void 0){let T=e.find(y=>y.name===g)??null;a(T)}if(h!==void 0){let T=h?t(h)??null:null;s({meta:m,token:T})}f!==void 0&&c(f)},"updateQuoteInputs")}i($S,"useUpdateQuoteInputs");import{cancelSwap as gN,getCurrentNamespaceOfOrNull as hN,getCurrentStep as yN,getRelatedWalletOrNull as SN}from"@rango-dev/queue-manager-rango-preset";var Ua=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return St(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Ci(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&gN(o)}getCurrentStepInfo(e){let o=yN(e);return{step:o,wallet:o?SN(e,o):null,network:o?hN(e,o)?.network:null}}};var FS=kN(void 0);function hp(t){let{manager:e}=CN(),o=oe.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=S(),l=new Ua(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=S(),u=nu(a()),d=S().blockchains(),g=S().tokens(),h=S().swappers(),f=S().fetchStatus,m=fo().resetLanguage,T=Be().getNotifications(),y=Be().clearNotifications,C=$S(),{fromBlockchain:k,toBlockchain:v,fromToken:b,toToken:I,inputAmount:A}=O(),E={isActiveTab:o,setCurrentTabAsActive:bo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async x=>c(x)},meta:{blockchains:d,tokens:g,swappers:h,loadingStatus:f,findToken:r},resetLanguage:m,notifications:{list:T,clearAll:y},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:b?{symbol:b.symbol,blockchain:b.blockchain,address:b.address}:null,toBlockchain:v?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:A},updateQuoteInputs:C}};return TN.createElement(FS.Provider,{value:E},t.children)}i(hp,"WidgetInfo");function OS(){let t=vN(FS);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(OS,"useWidget");function za(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=_S();return US(()=>{n&&r(n)},[n]),xN(()=>{uu({API_KEY:o?.apiKey||qr,BASE_URL:o?.apiUrl||Mp})},[o.apiKey,o.apiUrl]),US(()=>{t.config?.signers?.customSolanaRPC&&wN("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),yp.createElement(yi,{config:o,onUpdateState:e},yp.createElement(DS,{apiKey:o.apiKey},yp.createElement(hp,null,t.children)))}i(za,"WidgetProvider");function zS(t){let e=t.config?.externalWallets;return qa.createElement(cd,null,e?qa.createElement(Oa,null):qa.createElement(za,{config:t.config??Ur},qa.createElement(Oa,null)))}i(zS,"Widget");function qS(){let{on:t,off:e}=ve;return{on:t,off:e}}i(qS,"useWidgetEvents");var OR={DerivationPath:zn,Namespaces:On,Detached:Un,isOnDerivationPath:Hn,isOnNamespace:qn,isOnDetached:Co};export{uR as EventSeverity,Xo as MainEvents,kR as Networks,xR as PendingSwapNetworkStatus,ns as QuoteEventTypes,dR as RouteEventType,Va as SUPPORTED_FONTS,OR as StatefulConnect,mR as StepEventType,fR as StepExecutionBlockedEventStatus,gR as StepExecutionEventStatus,et as UI_ID,is as UiEventTypes,rs as WalletEventTypes,CR as WalletEvents,vR as WalletTypes,zS as Widget,Xo as WidgetEvents,za as WidgetProvider,yi as WidgetWallets,el as customizedThemeTokens,yR as readAccountAddress,Ho as useStatefulConnect,kt as useWalletList,qi as useWallets,OS as useWidget,qS as useWidgetEvents,VC as widgetEventEmitter};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|