@rango-dev/widget-embedded 0.60.2-next.0 → 0.60.2-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/components/WalletStatefulConnect/DerivationPath.helpers.d.ts +1 -1
  2. package/dist/components/WalletStatefulConnect/DerivationPath.helpers.d.ts.map +1 -1
  3. package/dist/components/WalletStatefulConnect/Detached.types.d.ts +1 -1
  4. package/dist/components/WalletStatefulConnect/Detached.types.d.ts.map +1 -1
  5. package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts +2 -2
  6. package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts.map +1 -1
  7. package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts +1 -1
  8. package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts.map +1 -1
  9. package/dist/hooks/useStatefulConnect/useStatefulConnect.state.d.ts +1 -1
  10. package/dist/hooks/useStatefulConnect/useStatefulConnect.state.d.ts.map +1 -1
  11. package/dist/hooks/useStatefulConnect/useStatefulConnect.types.d.ts +1 -1
  12. package/dist/hooks/useStatefulConnect/useStatefulConnect.types.d.ts.map +1 -1
  13. package/dist/hooks/useWalletProviders/useWalletProviders.d.ts +1 -1
  14. package/dist/hooks/useWalletProviders/useWalletProviders.helpers.d.ts +1 -1
  15. package/dist/hooks/useWalletProviders/useWalletProviders.helpers.d.ts.map +1 -1
  16. package/dist/index.js +2 -2
  17. package/dist/index.js.map +3 -3
  18. package/dist/store/slices/config.d.ts +1 -1
  19. package/dist/store/slices/config.d.ts.map +1 -1
  20. package/dist/store/slices/wallets.d.ts +1 -1
  21. package/dist/store/slices/wallets.d.ts.map +1 -1
  22. package/dist/store/utils/wallets.d.ts +1 -1
  23. package/dist/store/utils/wallets.d.ts.map +1 -1
  24. package/dist/types/config.d.ts +1 -1
  25. package/dist/types/config.d.ts.map +1 -1
  26. package/dist/utils/providers.d.ts +2 -1
  27. package/dist/utils/providers.d.ts.map +1 -1
  28. package/dist/widget-embedded.build.json +1 -1
  29. package/package.json +9 -6
  30. package/src/components/StatefulConnectModal/StatefulConnectModal.tsx +1 -1
  31. package/src/components/WalletStatefulConnect/DerivationPath.helpers.ts +1 -1
  32. package/src/components/WalletStatefulConnect/Detached.tsx +1 -1
  33. package/src/components/WalletStatefulConnect/Detached.types.ts +1 -1
  34. package/src/components/WalletStatefulConnect/Namespaces.tsx +1 -1
  35. package/src/components/WalletStatefulConnect/Namespaces.types.tsx +2 -2
  36. package/src/hooks/useStatefulConnect/useStatefulConnect.state.ts +1 -1
  37. package/src/hooks/useStatefulConnect/useStatefulConnect.ts +1 -1
  38. package/src/hooks/useStatefulConnect/useStatefulConnect.types.ts +1 -1
  39. package/src/hooks/useWalletProviders/useWalletProviders.helpers.ts +1 -1
  40. package/src/store/slices/config.ts +1 -1
  41. package/src/store/slices/wallets.ts +1 -1
  42. package/src/store/utils/wallets.ts +1 -1
  43. package/src/types/config.ts +1 -1
  44. package/src/utils/providers.ts +2 -2
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var mC=Object.defineProperty;var i=(t,e)=>mC(t,"name",{value:e,configurable:!0});import{EventSeverity as FR,RouteEventType as OR,StepEventType as UR,StepExecutionBlockedEventStatus as zR,StepExecutionEventStatus as HR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as qR}from"@rango-dev/wallets-core/legacy";import{useWallets as eC,Events as VR}from"@rango-dev/wallets-react";import{Networks as jR,WalletTypes as XR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as ZR}from"rango-types";import{Divider as Ak}from"@rango-dev/ui";import co,{useEffect as Nk,useRef as Bk,useState as md}from"react";import{WalletState as fC}from"@rango-dev/ui";import{useWallets as gC}from"@rango-dev/wallets-react";import{useReducer as hC}from"react";function Ip(t){return!!t.derivationPath}i(Ip,"isStateOnDerivationPathStep");function Ap(t){return!!t.namespace}i(Ap,"isStateOnNamespace");var Xr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Np(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 Xr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Xr;default:throw new Error("Action hasn't been defined.")}}i(Np,"reducer");function en(){let{state:t,disconnect:e,connect:o}=gC(),[n,r]=hC(Np,Xr),a=i(async(d,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(d.type,g),{status:"connected"}}catch(g){let m=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";if(h?.disconnectOnError)try{await u(d)}catch{console.warn("An error happened during disconnecting wallet after error on connecting.")}throw new Error(m,{cause:g})}},"runConnect"),s=i(async(d,f)=>{let h=d.state===fC.DISCONNECTED,g=f?.forceConnectToNamespaces;if(h){let m=!!d.isHub,y=m?d.properties?.find(C=>C.name==="namespaces")?.value:d.needsNamespace,S=m?d.properties?.find(C=>C.name==="derivationPath")?.value:d.needsDerivationPath;if(g){let C=g.find(k=>!y?.data?.map(v=>v.value).includes(k));if(C)throw new Error(`One of the forced namespaces is not available in the wallet. Forced namespace: ${C}`);if(g.length>1&&S)throw new Error("Derivation path is not supported when multiple namespaces are selected.");return g.length===1&&g[0]&&S?(r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:g[0]}}),{status:"derivation-path"}):await a(d,g.map(k=>({namespace:k})),{...f,disconnectOnError:!0})}if(!y?.data?.length)return await a(d,void 0,f);if(y?.data.length&&y.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(y?.data.length===1&&y.data[0]){if(S){let C=y.data[0];return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:C.value}}),{status:"derivation-path"}}return await a(d,y?.data?.map(C=>({namespace:C.value})),f)}}if(d.isHub&&!f?.forceConnectToNamespaces){let m=d.properties?.find(y=>y.name==="namespaces")?.value;if(m?.data.length&&m.data.length>1)return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(d,f)=>{let h=!!d.isHub,g=h?d.properties?.find(k=>k.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(k=>k.name==="derivationPath")?.value:d.needsDerivationPath,y=g?.selection==="single",S=f[0];if(!S)throw new Error("To confirm a namespace, you should select at least one namespace.");if(y&&m)return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:S}}),{status:"derivation-path"};if(!Ap(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=f.map(k=>({namespace:k}));return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:C??null}}),{status:"Detached"}},"handleNamespace"),l=i(async(d,f,h)=>{if(!f)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Ip(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let m=[{namespace:n.derivationPath.namespace,derivationPath:f}],S=!!d.isHub?d.properties?.find(v=>v.name==="namespaces")?.value:d.needsNamespace,C=!!S?.data&&S.data.length>1,k=!!h?.forceConnectToNamespaces;return C&&!k?(r({type:"detached",payload:{targetWallet:d,selectedNamespaces:m??null,derivationPath:f}}),{status:"Detached"}):await a(d,m)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let f=t(d.type);return f.connected||f.connecting?(await e(d.type),Io(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(en,"useStatefulConnect");import{WalletState as Ss}from"@rango-dev/ui";import{useWallets as bT}from"@rango-dev/wallets-react";import{detectMobileScreens as xT,WalletTypes as Yn}from"@rango-dev/wallets-shared";import{useCallback as ET,useEffect as IT}from"react";import CT,{createContext as TT,useContext as kT,useEffect as wT,useRef as vT}from"react";import{create as yT}from"zustand";import{persist as ST}from"zustand/middleware";import{allProviders as yC}from"@rango-dev/provider-all";var ja=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()}},tn=new ja;import{defineVersions as Wp,pickVersion as Lp,Provider as Xa}from"@rango-dev/wallets-core";function Mp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=Ya(a);return s instanceof Xa?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 Xa?o.push(Wp().version("1.0.0",n).build()):o.push(Wp().version("0.0.0",n).build())}),o}return t}i(Mp,"matchAndGenerateProviders");function Ya(t){try{return Lp(t,"1.0.0")[1]}catch{return Lp(t,"0.0.0")[1]}}i(Ya,"pickProviderVersionWithFallbackToLegacy");function Pp(t){return t.map(o=>Ya(o)).map(o=>o instanceof Xa?o.id:o.config.type)}i(Pp,"configWalletsToWalletName");function _p(t,e){return e.find(o=>o.name===t)?.displayName}i(_p,"getBlockchainDisplayNameFor");function ft(t,e){return e.find(o=>o.name===t)?.shortName}i(ft,"getBlockchainShortNameFor");function Dp(t,e){return e.find(o=>o.name===t)?.logo}i(Dp,"getBlockchainImage");function zn(t,e){return e.find(o=>o.id===t)?.title}i(zn,"getSwapperDisplayName");function Ao(t,e){return e.find(o=>o.name===t)??null}i(Ao,"findBlockchain");function Za(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Za,"isTokenNative");function gt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(gt,"createTokenHash");function on(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(on,"isValidTokenAddress");function Hn(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=>{let p=o.tokensMapByBlockchainName[l];!c.has(l)&&p&&a(p)})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded&&o.tokensMapByBlockchainName[c]?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=gt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Hn,"matchTokensFromConfigWithMeta");function Yr(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(Yr,"getSupportedBlockchainsFromConfig");function Fp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Fp,"makeProvidersOptionsFromConfig");var nn={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/assets/refs/heads/main/manifests/tonconnect/manifest.json"}},SC={clientUrl:void 0},CC={liquiditySources:void 0};function $p(t){let e=Fp(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 yC(o).map(a=>a())}i($p,"generateProviders");var Op=i((t,e,o)=>{let n=$p({...nn,...t});return{config:{...nn,...t},iframe:SC,campaignMode:CC,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=Hn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=Hn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});tn.set("supportedSourceTokens",l),tn.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=$p(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Fp(a);return Mp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Up}from"rango-types";var zp=[Up.EVM,Up.SOLANA],Zr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as LC}from"rango-sdk";function Hp(){return process.env.REACT_APP_RANGO_API_KEY}i(Hp,"getApiKeyFromEnv");function Qp(){let t=Hp();if(t)return t;throw new Error("Ensure you have set REACT_APP_RANGO_API_KEY in your env variables.")}i(Qp,"getApiKeyFromEnvOrThrow");function qp(){return Hp()||"NOT_SET"}i(qp,"getApiKeyFromEnvOrNotSet");import{BlockchainCategories as EC,WalletState as it}from"@rango-dev/ui";import{legacyReadAccountAddress as IC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as AC,isEvmAddress as NC,Networks as gu}from"@rango-dev/wallets-shared";import an from"bignumber.js";import TC from"bignumber.js";var pe=new TC(0);var No="~",Gp=[];import{BlockchainCategories as Ra,WalletState as xC}from"@rango-dev/ui";import{TransactionType as es}from"rango-sdk";import{UI_ID as kC}from"@rango-dev/ui";var Vp="https://api.rango.exchange",Kp="https://explorer.rango.exchange",ht={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...kC};var jp="Roboto",Ja=[{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 rn(t){return Array.from(new Set(t))}i(rn,"removeDuplicateFrom");function Jr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Jr,"debounce");function rt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(rt,"containsText");function Zp(t,e){return t.toLowerCase()===e.toLowerCase()}i(Zp,"exactText");function Jp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Jp,"startWithText");var N=i(()=>document.getElementById(ht.SWAP_BOX_ID),"getContainer"),Bo=i(()=>document.getElementById(ht.EXPANDED_BOX_ID),"getExpanded");function Rp(t,e,o){let n=!!e&&Zp(e,t),r=!!o&&Zp(o,t);return n!==r?n?-1:1:0}i(Rp,"compareExactMatchText");function ts(t,e,o){let n=!!e&&rt(e,t),r=!!o&&rt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ts,"compareContainsText");function os(t,e,o){let n=!!e&&Jp(e,t),r=!!o&&Jp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(os,"compareStartWithText");function eu(t,e,o){if(!o)return 0;let n=Rp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Rp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=os(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ts(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=os(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ts(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=os(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ts(o,t.address,e.address);if(r!==0)return r}return 0}i(eu,"compareWithSearchFor");var Rr=i((t,e)=>{switch(e){case Ra.ALL:return!0;case Ra.UTXO:return t===es.TRANSFER;case Ra.OTHER:return t!==es.TRANSFER&&t!==es.EVM;default:return t===e}},"isBlockchainTypeInCategory"),tu=i(t=>Ja.find(o=>o.value===t)?.url,"getFontUrlByName");function ou(t,e){let o=!!t.find(n=>n.state===xC.CONNECTED);return e===!1&&o}i(ou,"isSingleWalletActive");function nu(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(nu,"memoizedResult");function ru(t,e){let o=new Set;return e.forEach(n=>{o.add(n.blockchain)}),t.filter(n=>o.has(n.name))}i(ru,"filterBlockchainsWithAtLeastOneToken");import{BigNumber as mu}from"bignumber.js";function iu(t){return t.replace(/^0+(?=\d)/g,"")}i(iu,"removeLeadingZeros");function au(t){return t.replace(/^\.(\d+)/,"0.$1")}i(au,"ensureLeadingZeroForDecimal");function su(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(su,"formatThousandsWithCommas");function lu(t){return t.replace(/\s+/g,"-")}i(lu,"replaceSpacesWithDash");function cu(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(cu,"stripTrailingZeros");function pu(t){return t=t.replace(/[^\d.]/g,"").replace(/\./g,(e,o,n)=>n.indexOf(".")===o?".":""),t}i(pu,"parseNumericValue");function ei(t){return/^0+(?:\.0+)?$/.test(t)}i(ei,"isZeroValue");function uu(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(uu,"isValidCurrencyFormat");function du(t){return/\d+$/.test(t)}i(du,"isColorKeyOverridden");var Qn=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"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new mu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new mu(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var ti=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Lt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),qn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function fu(t){return ei(t)?"0":t.endsWith(".")?t.slice(0,-1):cu(t)}i(fu,"sanitizeInputAmount");function Gn(t,e){return WC(t,e)?it.PARTIALLY_CONNECTED:e.connected?it.CONNECTED:e.connecting?it.CONNECTING:e.installed?it.DISCONNECTED:it.NOT_INSTALLED}i(Gn,"getWalletConnectionStatus");function hu(t,e,o,n){return o.filter(r=>!Gp.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:d,properties:f,isHub:h}=e(r),g=rn(u.map(y=>y.type)),m=Gn(e(r),t(r));return{title:a,image:s,link:AC(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:d,properties:f,isHub:h}})}i(hu,"mapWalletTypesToWalletInfo");function Vn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Vn,"walletAndSupportedChainsNames");function rs(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(f=>f.chain===l)){let f={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(f)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=IC(l),d=c.length>0,f=c.includes(u),h=u===gu.Unknown;if(d&&!f&&!h)return;let m=u===gu.Unknown&&NC(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(rs,"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,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(Wo,"getQuoteChains");function Kn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Kn,"isAccountAndWalletMatched");var yu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ns(n.usdValue,n.decimals):pe.toFixed();return o.plus(r)},new an(pe));return BC(e.toString())},"calculateWalletUsdValue");function BC(t){let e=t.toString().split(".");return e[0]&&(e[0]=su(e[0])),e.join(".")}i(BC,"numberWithThousandSeparator");function ns(t,e){return new an(t).shiftedBy(-e).toFixed()}i(ns,"representAmountInNumber");function ri(t){if(!t)return null;let e=ns(t.amount,t.decimals),o=t.usdValue?ns(t.usdValue,t.decimals):null,n=M(e,8,8),r=o?M(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(ri,"formatBalance");function Su(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new an(t.usdValue).shiftedBy(-t.decimals):pe,n=e&&e.usdValue?new an(e.usdValue).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new an(t.amount).shiftedBy(-t.decimals):pe,n=e&&e.amount?new an(e.amount).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Su,"compareTokenBalance");function Qt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Qt,"areTokensEqual");function Cu(t){return t.sort((e,o)=>+(o.state===it.CONNECTED)-+(e.state===it.CONNECTED)||+(o.state===it.PARTIALLY_CONNECTED)-+(e.state===it.PARTIALLY_CONNECTED)||+(o.state===it.DISCONNECTED||o.state===it.CONNECTING)-+(e.state===it.DISCONNECTED||e.state===it.CONNECTING))}i(Cu,"sortWalletsBasedOnConnectionState");function so(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(so,"getConciseAddress");function Tu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Tu,"getAddress");var ku=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function wu(t){return t.map(e=>e.state).join("-")}i(wu,"hashWalletsState");function vu(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(vu,"filterBlockchainsByWalletTypes");function bu(t,e){return e===EC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Rr(n,e))return!0;return!1})}i(bu,"filterWalletsByCategory");function WC(t,e){if(!t.isHub||!t.needsNamespace||!e.connected)return!1;let n=t.needsNamespace.data.filter(r=>!r.unsupported);return t.needsNamespace.selection==="multiple"&&n.some(r=>!e.namespaces?.get(r.value)?.connected)}i(WC,"checkIsWalletPartiallyConnected");var is={API_KEY:qp()};function qt(t){return is[t]||""}i(qt,"getConfig");function xu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),is=e,is}i(xu,"initConfig");var Eu=20,Iu=25,as="theme-widget",ss=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Qt(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>Qt(a,t));let r=n.isExcluded;return!r&&!o||r&&o}}}return o},"isTokenExcludedInConfig"),ls=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Au=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var ii,at=i(()=>ii||(ii=new LC(qt("API_KEY"),qt("BASE_URL")),ii),"httpService");import{i18n as Bu}from"@lingui/core";var ai=[.5,1,3],si=1,sn=5,jn=30,li=0;var Xe=(a=>(a[a.NO_RESULT=0]="NO_RESULT",a[a.REQUEST_FAILED=1]="REQUEST_FAILED",a[a.REQUEST_CANCELED=2]="REQUEST_CANCELED",a[a.BRIDGE_LIMIT=3]="BRIDGE_LIMIT",a[a.INSUFFICIENT_SLIPPAGE=4]="INSUFFICIENT_SLIPPAGE",a))(Xe||{});import{WidgetEvents as Nu}from"@rango-dev/queue-manager-rango-preset";var cs=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(cs||{}),ps=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(ps||{}),us=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(us||{}),ln=(a=>(a[a.RouteEvent=Nu.RouteEvent]="RouteEvent",a[a.StepEvent=Nu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(ln||{});function ci(t,e){let o=t.map(a=>a.swapperGroup),n=[];return rn(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(ci,"getUniqueSwappersGroups");function Wu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Wu,"sortLiquiditySourcesByGroupTitle");function Re(t,e){return e?.[t]==="hidden"}i(Re,"isFeatureHidden");function cn(t,e){return e?.[t]==="enabled"}i(cn,"isRoutingEnabled");var Lu=i((t,e,o)=>Re("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function pn(t){return t==li?{type:"error",message:Bu.t("Slippage must be greater than or equal to 0.01")}:t>sn&&t<=jn?{type:"warning",message:Bu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(pn,"getSlippageValidation");var Mu=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=Yr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>zp.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=tn.get(u);d?.length||(d=Hn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),tn.set(u,d)),d=Lu(d,s,a.features);let f=e().blockchains({type:o.type});return d.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(m=>m.name===g.blockchain)?!1:o.searchFor?!!(rt(g.symbol,o.searchFor)||rt(g.address||"",o.searchFor)||rt(g.name||"",o.searchFor)):!0).sort((g,m)=>{let y=e().isTokenPinned(g,o.type),S=e().isTokenPinned(m,o.type);if(y!==S)return y?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(g),A=o.getBalanceFor(m),b=Su(I,A);if(b!==0)return b}let C=l.get(g.blockchain),k=l.get(m.blockchain),v=Za(g,C),w=Za(m,k);if(v!==w)return v?-1:1;if(g.isPopular!==m.isPopular)return g.isPopular?-1:1;if(o.searchFor){let I=eu(g,m,o.searchFor);if(I)return I}return g.isSecondaryCoin!==m.isSecondaryCoin?g.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},findNativeToken:o=>{let n=o.feeAssets[0];return e().findToken({blockchain:o.name,address:n.address,symbol:n.symbol})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Qt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(Wu)},fetch:async()=>{try{let{routing:o}=e().config,n=cn("enableCentralizedSwappers",o),r=await at().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=r.popularTokens,p=r.swappers.filter(d=>d.enabled);r.blockchains.sort((d,f)=>d.sort-f.sort).forEach(d=>{d.enabled&&a.set(d.name,d)}),r.tokens.forEach(d=>{let f=gt(d);c[d.blockchain]||(c[d.blockchain]=[]),s.set(f,d),c[d.blockchain]?.push(f)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as MC,Catalonia as PC,Chinese as Pu,Denmark as _C,English as DC,Finland as $C,French as FC,German as OC,Greece as UC,Hungary as zC,India as HC,Indonesian as QC,Italian as qC,Japanese as GC,Korea as VC,Lithuania as KC,Malay as jC,Netherlands as XC,Pakistan as YC,Philippines as ZC,Poland as JC,Portuguese as RC,Russian as eT,SaudiArabia as tT,Serbia as oT,Slovakia as nT,SouthAfrica as rT,Spanish as iT,Swahili as aT,Swedish as sT,Thai as lT,Turkish as cT,Ukrainian as pT,Vietnamese as uT}from"@rango-dev/ui";var _u=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:rT},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:tT},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:MC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:PC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Pu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Pu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:_C},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:XC},{title:"English",label:"English",local:"en",SVGFlag:DC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:ZC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:$C},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:FC},{title:"German",label:"Deutsch",local:"de",SVGFlag:OC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:UC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:HC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:zC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:QC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:qC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:GC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:VC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:KC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:jC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:JC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:RC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:eT},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:oT},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:nT},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:iT},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:aT},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:sT},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:lT},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:cT},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:pT},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:YC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:uT}],un="en";var Du=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:si,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=rn(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Re("theme",n),s=Re("language",n),c=Re("liquiditySource",n),l=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||un},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||un}})},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=Yr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import ys from"bignumber.js";import dT from"mitt";var ke=dT(),mT={on:ke.on,off:ke.off};var $u=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 Fu from"bignumber.js";function Gt(t){return`${t.blockchain}${No}${t.address}${No}${t.symbol}`}i(Gt,"createAssetKey");function Ou(t,e){return`${Gt(e)}${No}${t}`}i(Ou,"createBalanceKey");function Xn(t){let[e,o,n]=t.split(No);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Xn,"extractAssetFromBalanceKey");function ms(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Gt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Fu(r??pe).multipliedBy(o[s].amount).toString():""})})}),o}i(ms,"computeNextBalancesWithNewPrices");function fs(t,e){let o={};return t.balances?.forEach(n=>{let r=Ou(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Fu(c??pe).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(fs,"createBalanceStateForNewAccount");function gs(t,e){for(let o in e){let n=Xn(o);if(n){let r=Gt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(gs,"updateAggregatedBalanceStateForNewAccount");function fT(t,e){let o=Xn(e);if(!o)return t;let n=Gt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(fT,"removeBalanceFromAggregatedBalance");function hs(t,e,o){let n=t.connectedWallets.filter(l=>e.includes(l.walletType));t.connectedWallets.forEach(l=>{e.includes(l.walletType)||(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=Xn(l);if(!p)return;!!n.find(d=>Ou(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=fT(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(hs,"computeNextStateAfterWalletBalanceRemoval");function gT(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(gT,"matchWalletDetailsWithConnectedWallet");var hT=nu(),Uu=$u((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Kn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Kn(s,a))?{...a,loading:!1,error:!1,explorerUrl:gT(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Kn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Kn(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 at().getMultipleTokenBalance({assets:p.map(({symbol:d,address:f,blockchain:h})=>({symbol:d,address:f,blockchain:h})),walletAddress:l});if(u){let d=e()._balances,f=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};ms(m,g,d);let y=fs(g,e);f=gs(f,y),d={...d,...y}}),t(h=>({_balances:{...h._balances,...d},_aggregatedBalances:f}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{let a=o[0];a&&(ke.emit("walletEvent",{type:"connect",payload:{walletType:a.walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o))},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=hs(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(ke.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0||!o[0])return;let r=[...new Set(o.map(l=>l.walletType))];e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await at().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(d=>{if(d.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};ms(f,d,l);let{_balances:h,_aggregatedBalances:g}=hs(f,r,{chains:[d.blockChain]});if(p=g,l=h,!e().connectedWallets.find(y=>r.includes(y.walletType)&&y.address===d.address&&y.chain===d.blockChain))return;let m=fs(d,e);p=gs(p,m),l={...l,...m}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let d=c.filter(f=>f.failed).map(f=>{let h=e().connectedWallets.find(g=>g.chain===f.blockChain&&g.address)?.walletType;return h?{chain:f.blockChain,walletType:h,address:f.address}:null}).filter(f=>!!f);d.length>0&&await e().fetchMainTokensBalances(d,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=Gt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0||!a[0])return null;let s=a[0];if(a.length===1&&n[s])return n[s];let c=n[a[0]];if(!c)return null;let l=c;return a.forEach(p=>{let u=n[p];if(!u)return;let d=new ys(u.amount),f=new ys(l.amount);d.isGreaterThan(f)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(No);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>hT(()=>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=Xn(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),d=l?.amount?new ys(l.amount).shiftedBy(-l.decimals):pe;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 zu(t){return yT()(ST((...e)=>({...Uu(...e),...Mu(...e),...Du(...e),...Op(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(zu,"createAppStore");var Hu=TT(null);function T(){let t=kT(Hu);if(wT(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(T,"useAppStore");function Qu(t){let e=vT();return e.current||(e.current=zu(t.config)),CT.createElement(Hu.Provider,{value:e.current},t.children)}i(Qu,"AppStoreProvider");function vt(t){let{chain:e}=t||{},{getAvailableProviders:o}=T(),{state:n,getWalletInfo:r}=bT(),{handleDisconnect:a}=en(),s=Pp(o()),c=hu(n,r,s,e);c=xT()?c.filter(f=>f.showOnMobile!==!1&&n(f.type).installed):c;let l=Cu(c),p=ET(()=>{let f=c?.filter(h=>h.state===Ss.CONNECTING)||[];for(let h of f)a(h)},[wu(c)]);IT(()=>()=>{p()},[]);let u=i(f=>{let h=f.find(m=>m.type===Yn.DEFAULT);return!h||h.state===Ss.NOT_INSTALLED?!1:f.filter(m=>m.state!=Ss.NOT_INSTALLED&&![Yn.DEFAULT,Yn.WALLET_CONNECT_2,Yn.LEDGER].includes(m.type)&&r(m.type).supportedChains.filter(y=>y.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),d=i(f=>f==Yn.DEFAULT&&!u(c),"shouldExcludeWallet");return{list:l.filter(f=>!d(f.type)),terminateConnectingWallets:p}}i(vt,"useWalletList");import{Modal as WT}from"@rango-dev/ui";import LT from"react";import{create as BT}from"zustand";var qu="rango-widget";var Zn=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(qu),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 NT=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"),lo=NT;var oe=lo(BT()((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})}}))),Mo=new Zn({onInit:()=>oe.setState({tabManagerInitiated:!0}),onClaim:()=>oe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>oe.setState({isActiveTab:!1})});function ne(t){let{watermark:e}=oe();return LT.createElement(WT,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import{i18n as fn}from"@lingui/core";import{Alert as VT,Button as KT,Divider as gn,Image as jT,MessageBox as XT,RadioRoot as YT,WalletImageContainer as ZT}from"@rango-dev/ui";import se,{useEffect as JT,useMemo as RT,useState as ek}from"react";import{i18n as DT}from"@lingui/core";import{Typography as Ju}from"@rango-dev/ui";import dn from"react";function pi(t,e){return t.find(o=>o.name===e)?.logo}i(pi,"getBlockchainLogo");import{darkTheme as MT,Image as PT,styled as Vt,Typography as _T}from"@rango-dev/ui";var ui=Vt("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"}}}}),di=Vt("div",{display:"flex",gap:"$8",alignItems:"center"}),Vu=Vt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Ku=Vt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),ju=Vt("div",{display:"flex",gap:"$6",alignItems:"center"}),Xu=Vt("div",{paddingLeft:"48px"}),Yu=Vt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),Zu=Vt(_T,{maxWidth:"100px"}),mi=Vt(PT,{variants:{disabled:{true:{opacity:"0.5"}}}});function fi(t){let{namespace:e}=t,o=T().blockchains();return dn.createElement(ui,{unsupported:!0},dn.createElement(di,null,dn.createElement(mi,{src:pi(o,e.id),size:40,disabled:!0}),dn.createElement(Ku,null,dn.createElement(Ju,{variant:"label",size:"large"},e.label),dn.createElement(Ju,{variant:"body",size:"xsmall"},DT.t("(Currently not supported)")))))}i(fi,"NamespaceUnsupportedItem");import{Checkbox as QT,Radio as qT}from"@rango-dev/ui";import ws from"react";import{i18n as ks}from"@lingui/core";import{ChevronDownIcon as FT,ChevronUpIcon as OT,Divider as UT,Typography as Jn}from"@rango-dev/ui";import Ae,{useEffect as zT,useState as HT}from"react";import{Image as ed,Tooltip as td,Typography as $T}from"@rango-dev/ui";import Mt from"react";import{styled as Ru}from"@rango-dev/ui";var Cs=Ru("div",{display:"flex",alignItems:"center",padding:0,margin:0}),gi=Ru("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var Ts=3;function od(t){let{chains:e}=t;return Mt.createElement(Cs,{id:"widget-supported-chains-container"},e.slice(0,Ts).map((o,n)=>Mt.createElement(td,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Mt.createElement(gi,{firstItem:n===0},Mt.createElement(ed,{src:o.logo,size:15})))),e.length>Ts&&Mt.createElement(td,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Mt.createElement(Cs,null,e.map((o,n)=>Mt.createElement(gi,{key:o.name,firstItem:n===0},Mt.createElement(ed,{src:o.logo,size:15}))))},Mt.createElement(gi,null,Mt.createElement($T,{variant:"body",size:"xsmall"},"+",e.length-Ts))))}i(od,"SupportedChainsList");function Po(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=HT(!1),p=T().blockchains();zT(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!o&&!r&&u.length>1;return Ae.createElement(ui,{hasError:!!o,clickable:!!s,onClick:s},Ae.createElement(di,null,Ae.createElement(mi,{src:pi(p,e.id),size:40}),Ae.createElement(Vu,{showSupportedChains:d||r||!!o},Ae.createElement(ju,null,Ae.createElement(Jn,{variant:"label",size:"large"},e.label),r&&Ae.createElement(Jn,{variant:"body",size:"small",color:"success500"},ks.t("Connected")),!!o&&Ae.createElement(Jn,{variant:"body",size:"small",color:"error500"},ks.t("Connection failed"))),d&&Ae.createElement(od,{chains:u}),r&&Ae.createElement(Zu,{variant:"body",size:"small",color:"neutral700"},a),o&&Ae.createElement(Yu,{onClick:()=>l(f=>!f)},Ae.createElement(Jn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},ks.t("See why")),c?Ae.createElement(OT,{size:12,color:"gray"}):Ae.createElement(FT,{size:12,color:"gray"}))),n),!!o&&c&&Ae.createElement(Ae.Fragment,null,Ae.createElement(UT,{size:4}),Ae.createElement(Xu,null,Ae.createElement(Jn,{variant:"body",size:"small",color:"neutral700"},o))))}i(Po,"NamespaceItem");function nd(t){let{onClick:e,type:o,namespace:n}=t;return ws.createElement(Po,{namespace:n,onClick:e,suffix:o==="radio"?ws.createElement(qT,{value:n.value}):ws.createElement(QT,{checked:t.value})})}i(nd,"NamespaceListItem");import{Button as GT,styled as rd}from"@rango-dev/ui";var hi=rd("ul",{padding:0,paddingBottom:"$20",margin:0}),mn=rd(GT,{minHeight:"$40"});function Rn(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,p]=ek([]),u=RT(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:y=>y.includes(m)?y.filter(S=>S!==m):y.concat(m))},"onSelect"),f=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");f?p([]):u&&p(u.map(m=>m.value))},"onSelectAll"),g=i(m=>r?se.createElement(YT,{value:l?.[0]},m):se.createElement(se.Fragment,null,m),"wrapRadioRoot");return JT(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(y=>y.getSupportedChains(c).some(S=>t.value.defaultSelectedChains?.includes(S.name)));p(m.map(y=>y.value))}else p(u.map(m=>m.value))},[]),se.createElement(se.Fragment,null,se.createElement(XT,{type:"info",title:fn.t("Connect {wallet}",{wallet:e.title}),description:fn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:se.createElement(ZT,null,se.createElement(jT,{src:s,size:45}))}),r?se.createElement(se.Fragment,null,se.createElement(gn,{size:20,className:"_initial_namespace_list_header_alert_top_divider"}),se.createElement(VT,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:fn.t("This wallet can only connect to one chain at a time. ")}),se.createElement(gn,{size:30,className:"_initial_namespace_list_header_alert_bottom_divider"})):se.createElement(se.Fragment,null,se.createElement(gn,{size:30,className:"_initial_namespace_list_header_button_top_divider"}),se.createElement(KT,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?fn.t("Deselect all"):fn.t("Select all")),se.createElement(gn,{size:10,className:"_initial_namespace_list_header_button_bottom_divider"})),se.createElement(hi,null,g(se.createElement(se.Fragment,null,a?.data.map((m,y,S)=>se.createElement(se.Fragment,{key:m.id},m.unsupported?se.createElement(fi,{namespace:m}):se.createElement(nd,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),y!==S.length-1&&se.createElement(gn,{size:10})))))),se.createElement(gn,{size:20}),se.createElement(mn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},fn.t("Connect")))}i(Rn,"Namespaces");import{i18n as er}from"@lingui/core";import{Alert as sk,Button as lk,Divider as hn,Image as ck,MessageBox as pk,WalletImageContainer as uk}from"@rango-dev/ui";import{useWallets as dk}from"@rango-dev/wallets-react";import ue from"react";import{styled as tk}from"@rango-dev/ui";var id=tk("div",{display:"flex",justifyContent:"end"});import{i18n as vs}from"@lingui/core";import{Button as ok,Spinner as nk}from"@rango-dev/ui";import bs,{useLayoutEffect as rk,useRef as ik,useState as ak}from"react";function ad(t){let{namespace:e,initialConnect:o,disabled:n,state:r,handleConnect:a,handleDisconnect:s}=t,[c,l]=ak(null),p=ik(!1);rk(()=>{o&&!p.current&&u()},[]);let u=i(async g=>{try{p.current=!0,await a(g)}catch(m){l(m)}finally{p.current=!1}},"handleConnectNamespace"),d=i(async()=>{l(null),r.connected?await s():u({shouldAskForDerivationPath:!0})},"handleButtonClick"),f=i(()=>{let g=r.accounts?.[0]?.split(":"),m=g?.[g.length-1];return!r.connected||!m?null:so(m)},"getConnectedAddress"),h=i(()=>r.connected?vs.t("Disconnect"):c?vs.t("Try again"):vs.t("Connect"),"getButtonText");return bs.createElement(Po,{namespace:e,connected:r.connected,error:c?.message,address:f(),suffix:r.connecting?bs.createElement(nk,{color:"info"}):bs.createElement(ok,{id:"widget-name-space-connect-btn",variant:"ghost",type:r.connected?"error":"primary",size:"xsmall",onClick:async()=>d(),disabled:n},h())})}i(ad,"NamespaceDetachedItem");function tr(t){let{value:e,selectedNamespaces:o,onConfirm:n,confirmText:r=er.t("Done"),onDisconnectWallet:a,navigateToDerivationPath:s}=t,{targetWallet:c}=e,{connect:l,disconnect:p,state:u}=dk(),d=c.type,f=u(d),h=c.properties?.find(v=>v.name==="namespaces"),g=c.properties?.find(v=>v.name==="derivationPath"),m=h?.value.selection==="single",y=i(async(v,w)=>{m&&await p(d),g&&w?.shouldAskForDerivationPath?s(v):await l(d,[{namespace:v,network:"",derivationPath:w?.derivationPath??void 0}])},"handleConnectNamespace"),S=i(async v=>{await p(d,[v])},"handleDisconnectNamespace"),C=i(()=>m?ue.createElement(ue.Fragment,null,ue.createElement(hn,{size:20,className:"_detached_namespace_list_header_alert_top_divider"}),ue.createElement(sk,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:er.t("This wallet can only connect to one chain at a time.")}),ue.createElement(hn,{size:30,className:"_detached_namespace_list_header_alert_bottom_divider"})):ue.createElement(ue.Fragment,null,ue.createElement(hn,{size:30,className:"_detached_namespace_list_header_button_top_divider"}),ue.createElement(id,null,ue.createElement(lk,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:f.connecting||!f.connected,onClick:a},er.t("Disconnect wallet"))),ue.createElement(hn,{size:16,className:"_detached_namespace_list_header_button_bottom_divider"})),"renderNamespaceListHeader"),k=i(v=>{if(v.unsupported)return ue.createElement(fi,{namespace:v});let w=o?.find(b=>b.namespace===v.value),I=f.namespaces?.get(v.value);if(!I)throw new Error(`State for ${v.value} was not found!`);let A=m&&f.connecting;return ue.createElement(ad,{namespace:v,initialConnect:!!w,disabled:A,state:I,handleConnect:async b=>y(v.value,{derivationPath:w?.derivationPath,shouldAskForDerivationPath:b?.shouldAskForDerivationPath}),handleDisconnect:async()=>S(v.value)})},"renderNamespaceItem");return ue.createElement(ue.Fragment,null,ue.createElement(pk,{type:"info",title:er.t("Connect {wallet}",{wallet:c.type}),description:er.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:ue.createElement(uk,null,ue.createElement(ck,{src:c.image,size:45}))}),C(),ue.createElement(hi,{id:"widget-detached-namespace-list"},c.needsNamespace?.data.map((v,w,I)=>ue.createElement(ue.Fragment,{key:v.id},k(v),w!==I.length-1&&ue.createElement(hn,{size:10})))),ue.createElement(hn,{size:20}),ue.createElement(mn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:n},r))}i(tr,"Detached");import{i18n as yn}from"@lingui/core";import{Divider as hk,Image as yk,MessageBox as Sk,Select as Ck,TextField as Tk}from"@rango-dev/ui";import bt,{useEffect as kk,useState as ld}from"react";import{namespaces as mk}from"@rango-dev/wallets-shared";var yi={id:"custom",label:"Custom",generateDerivationPath:t=>t};function xs(t){let e=t?mk[t]?.derivationPaths:null;return e?[...e,yi]:[]}i(xs,"getDerivationPaths");import{Button as fk,styled as Es,Typography as gk}from"@rango-dev/ui";var sd=Es("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Is=Es(gk,{paddingLeft:"$10"}),As={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},FP=Es(fk,{minHeight:"$40"});var cd="0";function or(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=ld(null),[c,l]=ld(cd),p=a===yi.id,u=xs(o),d=i(({value:h})=>{let g=u?.find(m=>m.id===h);g&&(a===yi.id&&Number.isNaN(Number(c))&&l(cd),s(g.id))},"handleDerivationPathItemClick"),f=i(()=>{let h=u.find(g=>g.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return kk(()=>{s(xs(o)[0]?.id||null)},[o]),bt.createElement(bt.Fragment,null,bt.createElement(Sk,{type:"info",title:yn.t("Select Derivation Path"),description:yn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:bt.createElement(yk,{src:n,size:45})}),bt.createElement(sd,{className:"_derivation_path_inputs_container"},bt.createElement(Is,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},yn.t("Choose Derivation Path Template")),bt.createElement(Ck,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:As}}),bt.createElement(hk,{size:20}),bt.createElement(Is,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},p?yn.t("Enter Path"):yn.t("Enter Index")),bt.createElement(Tk,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:As})),bt.createElement(mn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},yn.t("Confirm")))}i(or,"DerivationPath");import{i18n as Sn}from"@lingui/core";import{Image as bk,MessageBox as Bs,WalletImageContainer as xk,WalletState as Ek}from"@rango-dev/ui";import{useWallets as Ik}from"@rango-dev/wallets-react";import _o from"react";import{keyframes as wk,styled as Ns}from"@rango-dev/ui";var XP=Ns("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),pd=Ns("div",{position:"relative"}),vk=wk({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),ud=Ns("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${vk} 1s linear infinite`,top:0,bottom:0,right:0,left:0});function Ws(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a,getWalletInfo:s}=Ik();return Gn(s(n),a(n))===Ek.CONNECTED?_o.createElement(Bs,{type:"success",title:Sn.t("Wallet Connected"),description:Sn.t("Your wallet is connected, you can use it to swap.")}):o?_o.createElement(Bs,{type:"error",title:Sn.t("Failed to Connect"),description:o||Sn.t("Your wallet is not connected. Please try again.")}):_o.createElement(Bs,{type:"loading",title:Sn.t("Connecting to your wallet"),description:Sn.t("Click connect in your wallet popup."),icon:_o.createElement(pd,null,_o.createElement(xk,null,_o.createElement(bk,{src:r,size:45})),_o.createElement(ud,null))})}i(Ws,"ConnectStatus");function dd(t,e){return t().status==="init"&&!!e}i(dd,"isOnStatus");function nr(t){return t().status==="namespace"}i(nr,"isOnNamespace");function rr(t){return t().status==="derivationPath"}i(rr,"isOnDerivationPath");function Io(t){return t().status==="detached"}i(Io,"isOnDetached");var Wk=3e3,Lk=300;function ir(t){let e=Bk(),[o,n]=md(!1),[r,a]=md(),s=i(w=>{a(w.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=vt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:f,handleDisconnect:h}=en(),g=i(w=>{u(t.wallet,w).then(k).catch(s)},"handleConfirmNamespaces"),m=i(()=>{S()},"handleDetachedConfirm"),y=i(w=>{if(!w)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(t.wallet,w).then(k).catch(s)},"handleDerivationPathConfirm"),S=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),k=i((w,I)=>{let A=w.status==="connected",b=["disconnected","disconnected-unhandled"].includes(w.status);A?(t.onConnect?.(),I||(e.current=setTimeout(S,Wk))):b&&S()},"afterConnected"),v=i(w=>{t.wallet?.needsDerivationPath&&u(t.wallet,[w])},"handleNavigateToDerivationPath");return Nk(()=>{if(t.wallet){C();let w=!1,I=!0;i(()=>{setTimeout(()=>{I=!1,w||n(!0)},Lk)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(b=>{["namespace","Detached","derivation-path"].includes(b.status)||(w=!0),k(b,I)}).catch(s)}},[t.wallet]),co.createElement(ne,{id:t.id,open:o,onClose:S,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},dd(d,t.wallet)&&co.createElement(co.Fragment,null,co.createElement(Ws,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),co.createElement(Ak,{direction:"vertical",size:32})),nr(d)&&co.createElement(Rn,{onConfirm:g,value:d().namespace}),rr(d)&&co.createElement(or,{onConfirm:y,value:d().derivationPath}),Io(d)&&co.createElement(tr,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces,navigateToDerivationPath:v}))}i(ir,"StatefulConnectModal");import Ga from"react";import Mk,{Fragment as Pk}from"react";import{MemoryRouter as _k,useInRouterContext as Dk}from"react-router";function Si({children:t}){let o=Dk()?Pk:_k;return Mk.createElement(o,null,t)}i(Si,"AppRouter");import{I18nManager as M0}from"@rango-dev/ui";import wp from"react";import Ue from"react";import{useRoutes as p0}from"react-router-dom";var D={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 Tn,useRef as xi}from"react";import tt from"bignumber.js";import{create as Vd}from"zustand";import{subscribeWithSelector as Kd}from"zustand/middleware";import{createContext as $k,useContext as Fk}from"react";var fd=$k({swapMode:"swap",isMultiMode:!1});function et(){let{swapMode:t,isMultiMode:e}=Fk(fd);return{swapMode:t,isMultiMode:e}}i(et,"useSwapMode");import{i18n as St}from"@lingui/core";import{getRelatedWalletOrNull as zk,RouteEventType as aD}from"@rango-dev/queue-manager-rango-preset";import He from"bignumber.js";import{PendingSwapNetworkStatus as sr}from"rango-types";import{i18n as ze}from"@lingui/core";var re=i(()=>({genericServerError:ze.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:ze.t("Please reset your liquidity sources."),description:ze.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:ze.t("No Routes Found."),description:ze.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:ze.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:ze.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:ze.t("High Price Impact"),title:ze.t("Price impact is too high!"),description:ze.t("The price impact is significantly higher than the allowed amount."),confirmMessage:ze.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:ze.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:ze.t("USD Price Unknown"),title:ze.t("USD Price Unknown, Cannot calculate Price Impact."),description:ze.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:ze.t("Confirm USD Price Unknown")}}),"errorMessages");function gd(t){return t.type===0?t.diagnosisMessage??re().noResultError.title:t.type===1?t.diagnosisMessage??re().genericServerError:""}i(gd,"getQuoteErrorMessage");import{i18n as Ci}from"@lingui/core";var Do=i(()=>({connectWallet:Ci.t("Connect Wallet"),swap:Ci.t("Swap"),swapAnyway:Ci.t("Swap anyway"),ethWarning:Ci.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ls(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(Ls,"getFeeLabel");var Ms=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],hd=100,yd=30,Sd=15,Cd=60;var Td=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],kd=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as Uk}from"@rango-dev/queue-manager-rango-preset";import V_ from"bignumber.js";function vd(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(vd,"getRequiredBalanceOfWallet");function jt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(jt,"getPriceImpactLevel");function Ti(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Uk(t.steps);if(!r||!n)return{fromBlockchain:null,fromToken:void 0,toBlockchain:null,toToken:void 0,inputAmount:""};let s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=Ao(a?a.toBlockchain:n.fromBlockchain,e),l=Ao(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(Ti,"createRetryQuote");function Cn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=ar(o),s=yt(o);if(o&&a&&s){let p=Kt(a.toString(),s.toString());if(!!p&&Ad(a,p)){let d=wi(o?.swaps,n),f=jt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:f}}}if(e&&Wd(e,o))return{type:4,usdValueChange:M(yt(o)?.minus(yt(e)??0).toString()??"0",null,2),percentageChange:M(Kt(yt(e)??"1",yt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=vi(o.swaps),l=r>sn;if(Bd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Nd(o,r),minRequiredSlippage:c};return null}i(Cn,"generateQuoteWarnings");function bd(t){return![4].includes(t.type)}i(bd,"isQuoteWarningConfirmationRequired");function Kt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ps(t.toString(),e.toString());return n&&n<0?n:null}i(Kt,"getPriceImpact");var xd=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"),ki=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"),Ed=i((t,e,o)=>{let n=e[0];if(!e.length||!n)return null;if(!t)return{requestAmount:o,validationStatus:null,...n};let r=new Set(t.swaps.map(s=>s.swapperId)),a=e.find(s=>{let c=new Set(s.swaps.map(l=>l.swapperId));return Array.from(r).every(l=>c.has(l))});return{requestAmount:o,validationStatus:null,...a||n}},"getDefaultQuote"),Id=i(t=>{let e=i((o,n)=>{let r=Ms.indexOf(o.value),a=Ms.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Ad(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return Td.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new He(r)))}i(Ad,"hasHighValueLoss");function Ld(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new He(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new He(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(Ld,"hasLimitError");function Md(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new He(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new He(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0];if(!e)return{swap:void 0,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new He(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new He(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=St.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=St.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=St.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=St.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Md,"getLimitErrorMessage");function Pd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Do().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Do().swap,action:"confirm-swap",disabled:!0}:s?{title:Do().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Do().ethWarning,action:"confirm-warning",disabled:!1}:{title:Do().swap,action:"confirm-swap",disabled:!1}:{title:Do().connectWallet,action:"connect-wallet",disabled:!1}}i(Pd,"getSwapButtonState");function _s(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(pe))&&e&&e!=="0"&&n!==0)}i(_s,"canComputePriceImpact");function Ds(t,e){let o=pe;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(!r||r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new He(r.amount).multipliedBy(a||0))}return o}i(Ds,"getUsdFeeOfStep");function wi(t,e){return t.reduce((o,n)=>o.plus(Ds(n,e)),pe)}i(wi,"getTotalFeeInUsd");function $s(t){let e=pe,o=new He(t.price||0);return e=e.plus(new He(t.amount).multipliedBy(o)),e}i($s,"getUsdFee");function _d(t){return t.reduce((e,o)=>e.plus($s(o)),pe)}i(_d,"getTotalFeesInUsd");function Dd(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(Dd,"getFeesGroup");function $d(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?Object.fromEntries(e):null}i($d,"checkSlippageErrors");function Nd(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?Object.fromEntries(o):null}i(Nd,"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 Fd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:d,affiliateWallets:f,destination:h,contractCall:g}=t,m=a?.reduce((C,k)=>(C[k.chain]=k.address,C),{}),y=[];return r?.forEach(C=>{y.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:y,selectedWallets:m??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1}}}i(Fd,"createQuoteRequestBody");function Od(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Od,"getWalletsForNewSwap");function ar(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(ar,"getUsdInputFrom");function yt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(yt,"getUsdOutputFrom");function Ps(t,e){return new He(e).div(new He(t)).minus(1).multipliedBy(hd).toNumber()}i(Ps,"getPercentageChange");function Wd(t,e){let o=ar(t),n=yt(t),r=yt(e);if(!o||!n||!r)return!1;let a=Ps(n.toString(),r.toString());return kd.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Wd,"isOutputAmountChangedExcessively");function Ud(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=>vd(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=M(new He(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=M(new He(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=St.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=St.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=St.t(" for input and network fee")),St.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(Ud,"generateBalanceWarnings");function lr(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==sr.NetworkChanged}i(lr,"isNetworkStatusInWarningState");function zd(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,"")),lr(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?zk(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case sr.WaitingForConnectingWallet:r=u?St.t("Connect {wallet}",{wallet:u}):r;break;case sr.WaitingForQueue:r=r||St.t("Waiting for other running tasks to be finished");break;case sr.WaitingForNetworkChange:r=r||St.t("Waiting for changing wallet network");break;case sr.NetworkChangeFailed:r=r||St.t("The network switch could not be completed. Please try again, or switch the network manually in your wallet.");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(zd,"getSwapMessages");function Hd(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(Hd,"getLastConvertedTokenInFailedSwap");function Qd(t){return t.status==="failed"}i(Qd,"shouldRetrySwap");function qd(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(f=>f.chain===d)),p=c.every(d=>r.some(f=>f.chain===d)),u=o&&a?on(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(qd,"isConfirmSwapDisabled");function Gd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Gd,"isTokensIdentical");var bi=i((t,e)=>t?.usdPrice?new tt(e||pe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),jd=i(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=pe,a=o.inputUsdValue;return qn(o.inputAmount)?(e&&(n=e?.outputAmount?new tt(e?.outputAmount):null,a=ar(e)??pe,r=yt(e)??pe),{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:bi(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=fu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=pu(e);ei(e)||(o=iu(o),o=au(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new tt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:bi(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:bi(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?bi(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})}),"initializer"),Xd=Vd()(Kd(jd)),Yd=Vd()(Kd(jd)),Hk=lo(Xd),Qk=lo(Yd);function z(){let{swapMode:t}=et();return lo(t==="refuel"?Yd:Xd)}i(z,"useQuoteStore");var Zd=i((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ke.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&&ke.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})},"subscribeCallback"),Jd=Hk.subscribe(Zd),Rd=Qk.subscribe(Zd);function em(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=z()(),u=T().config,d=T().fetchStatus,f=T().blockchains(),{findToken:h}=T(),{setAffiliateRef:g,setAffiliatePercent:m,setAffiliateWallets:y}=T(),S=u?.from?.tokens,C=u?.from?.blockchains,k=u?.to?.tokens,v=u?.to?.blockchains,w=xi(void 0),I=xi(void 0),A=xi(void 0),b=xi(void 0);Tn(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),Tn(()=>{if(d==="success"){r();let E=f.find(P=>P.name===u?.from?.blockchain),x=u?.from?.token,W=x&&h(x);(E||!E&&A.current)&&n(E??null),W?a({token:W,meta:{blockchains:f}}):!W&&w.current&&a({token:null}),A.current=u?.from?.blockchain,w.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),Tn(()=>{ss(s,S)&&a({token:null}),ls(l,C)&&n(null)},[S,C]),Tn(()=>{ss(c,k)&&a({token:null}),ls(p,v)&&o(null)},[k,v]),Tn(()=>{if(d==="success"){r();let E=f.find(P=>P.name===u?.to?.blockchain),x=u?.to?.token,W=x&&h(x);(E||!E&&b.current)&&o(E??null),W?e({token:W,meta:{blockchains:f}}):!W&&I.current&&e({token:null}),b.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]),Tn(()=>{g(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),y(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(em,"useSyncStoresWithConfig");import{useEffect as Us,useRef as qk}from"react";import{useInRouterContext as Gk,useLocation as Vk,useSearchParams as Kk}from"react-router-dom";function Fs(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(Fs,"convertTokenSearchParamToAsset");function Os(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Os,"tokenToSearchParam");function Hs(){let t=Vk(),[e,o]=Kk(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:f}=z()(),h=T().fetchStatus,g=T().blockchains(),m=Gk(),{updateIframe:y,updateCampaignMode:S}=T(),C=T().isInCampaignMode(),k=qk(),{findToken:v}=T(),w=i(()=>{let A={};for(let[B,R]of e.entries())(B.startsWith("utm_")||B.startsWith("privy_"))&&(A[B]=R);let b=e.get("fromAmount"),E=e.get("fromBlockchain"),x=e.get("fromToken"),W=e.get("toBlockchain"),P=e.get("toToken"),U=e.get("autoConnect"),G=e.get("clientUrl"),K=e.get("liquiditySources"),J=e.get("blockchain");return{fromAmount:b,fromBlockchain:E,fromToken:x,toBlockchain:W,toToken:P,autoConnect:U,clientUrl:G,liquiditySources:K,extraQueryParams:A,blockchain:J}},"getUrlSearchParams"),I=i(A=>{for(let b in A)A[b]||delete A[b];o(A,{replace:!0})},"updateUrlSearchParams");Us(()=>{let{autoConnect:A,clientUrl:b,extraQueryParams:E,blockchain:x}=w();m&&h==="success"&&I({fromBlockchain:n?.name,fromToken:Os(a),toBlockchain:r?.name,toToken:Os(s),fromAmount:c,autoConnect:A??void 0,clientUrl:b??void 0,blockchain:x??void 0,liquiditySources:C?k.current:void 0,...E})},[t.pathname,c,n,a,r,s,C,h]),Us(()=>{if(!m)return;let A=w();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&f(A.fromAmount),h==="success"){let b=g.find(G=>G.name===A.fromBlockchain),E=A.fromToken&&b&&Fs(A.fromToken,b),x=E?v(E):void 0,W=g.find(G=>G.name===A.toBlockchain),P=A.toToken&&W&&Fs(A.toToken,W),U=P?v(P):void 0;b&&(l(b),x&&u({token:x,meta:{blockchains:g}})),W&&(p(W),U&&d({token:U,meta:{blockchains:g}}))}},[h]),Us(()=>{let{clientUrl:A,liquiditySources:b}=w();y("clientUrl",A||void 0),S("liquiditySources",b?.split(",")??void 0)},[])}i(Hs,"useSyncUrlAndStore");import{i18n as vn}from"@lingui/core";import{Alert as fv,Button as gv,darkTheme as hv,Divider as Sl,DoneIcon as yv,styled as Sv,TextField as Cv,Typography as Tv}from"@rango-dev/ui";import qe,{useState as kv}from"react";import{useNavigate as wv,useSearchParams as vv}from"react-router-dom";import{ChevronRightIcon as jk,Divider as im,Image as Xk,Typography as am}from"@rango-dev/ui";import xt from"react";import{darkTheme as tm,styled as Qs}from"@rango-dev/ui";var om=Qs("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${tm} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${tm} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),nm=Qs("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),rm=Qs("div",{display:"flex"});function qs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return xt.createElement(nm,null,xt.createElement(am,{size:"large",variant:"label"},n),xt.createElement(im,{size:10}),xt.createElement(om,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},xt.createElement(rm,null,r&&xt.createElement(xt.Fragment,null,xt.createElement(Xk,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),xt.createElement(im,{size:4,direction:"horizontal"})),xt.createElement(am,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),xt.createElement(jk,{size:12,color:"black"})))}i(qs,"BlockchainSelectorButton");import{i18n as js}from"@lingui/core";import{Button as nw,Divider as dm,MessageBox as rw}from"@rango-dev/ui";import po,{useEffect as mm,useState as Xs}from"react";import{i18n as Ei}from"@lingui/core";import{Divider as $o,ExternalLinkIcon as Jk,Image as Rk,InfoIcon as ew,Tooltip as tw,Typography as pr}from"@rango-dev/ui";import de from"react";var sm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function lm(t,e){let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(lm,"generateExplorerLink");import{Button as Yk,darkTheme as kn,styled as cr,Typography as Zk}from"@rango-dev/ui";var Gs=cr("a",{textDecoration:"none",color:"$colors$neutral700",[`.${kn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${kn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${kn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${kn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),cm=cr("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${kn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${kn} &`]:{color:"$colors$neutral900"}}}),Vs=cr(Yk,{minHeight:"$40"}),pm=cr(Zk,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"96px"}),um=cr("div",{display:"flex",justifyContent:"center",alignItems:"center"});var ow=9;function Ks(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=lm(n.address,s),l=i(()=>window.open(sm,"_blank"),"onClickLearnMore");return de.createElement(ne,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},de.createElement(cm,null,de.createElement(Rk,{src:n.image===""?Zr:n.image,size:45,type:"circular"}),de.createElement($o,{size:4}),de.createElement(um,null,de.createElement(pm,{variant:"title",size:"medium"},n.symbol),n.symbol.length>ow&&de.createElement(tw,{content:n.symbol,container:N()},de.createElement(ew,{size:12,color:"gray"}))),de.createElement(pr,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),de.createElement($o,{size:4}),de.createElement(pr,{variant:"body",size:"medium"},c?de.createElement(Gs,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,de.createElement(Jk,{size:12,color:"gray"})):de.createElement(Gs,null,n.address)),de.createElement($o,{size:4}),n.coinSource&&de.createElement(pr,{className:"_coin-source",variant:"body",size:"xsmall"},Ei.t("via")," ",de.createElement(pr,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),de.createElement($o,{size:"32"}),de.createElement(pr,{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."))),de.createElement($o,{size:40}),de.createElement($o,{size:10}),de.createElement(Vs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Ei.t("Import Anyway")),de.createElement($o,{size:10}),de.createElement(Vs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Ei.t("Learn More")))}i(Ks,"CustomTokenModal");function ur(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=T(),[d,f]=Xs(!1),[h,g]=Xs(!1),[m,y]=Xs(!1),S=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),k=i(()=>{y(!0),C()},"handleErrorModalButtonClick"),v=i(()=>{m&&n?.type==="network-error"&&(y(!1),S()),l()},"handleExit"),w=i(()=>{e&&(u(e),c())},"handleSubmit");return mm(()=>{n&&f(!0)},[n]),mm(()=>{o&&e&&g(!0)},[o,e]),po.createElement(po.Fragment,null,po.createElement(ne,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:C,onExit:v,container:N()},po.createElement(rw,{title:n?.title??"",type:"error",description:n?.message||js.t("Failed Network, Please retry.")},po.createElement(dm,{size:40}),po.createElement(dm,{size:10}),po.createElement(nw,{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"?js.t("Retry"):js.t("Add another custom token")))),o&&e&&po.createElement(Ks,{blockchain:o,token:e,onSubmitClick:w,onClose:()=>g(!1),open:h,onExit:p}))}i(ur,"ImportCustomToken");import{useManager as lv}from"@rango-dev/queue-manager-react";import{BottomLogo as cv,Divider as Km,Header as pv}from"@rango-dev/ui";import Be,{useEffect as Di,useLayoutEffect as uv,useRef as jm,useState as Xm}from"react";import{useRef as iw}from"react";function Ii(){return window.self!==window.top}i(Ii,"isAppLoadedIntoIframe");function Ys(){let t=iw(null),{iframe:e}=T(),o=Ii()&&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(Ys,"useIframe");import{useNavigate as aw}from"react-router-dom";function Qe(){let t=aw();return()=>t(-1)}i(Qe,"useNavigateBack");import{createTheme as nl,darkTheme as Cw,lightTheme as Tw}from"@rango-dev/ui";import{useEffect as kw,useState as ww}from"react";import{theme as yw,darkColors as Sw}from"@rango-dev/ui";import tl from"react";var Ai=16,Ni=255,fm=.11;function sw(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(sw,"expandShortHexColor");function lw(t,e){return t.padStart(e,"0")}i(lw,"pad");function Zs(t){let e=Math.min(Math.max(Math.round(t),0),Ni);return lw(e.toString(Ai),2)}i(Zs,"intToHex");function cw(t){return`#${Zs(t.red)}${Zs(t.green)}${Zs(t.blue)}`}i(cw,"rgbToHex");function pw(t){let e=parseInt(t.slice(1,3),Ai),o=parseInt(t.slice(3,5),Ai),n=parseInt(t.slice(5,7),Ai);return{red:e,green:o,blue:n}}i(pw,"hexToRGB");function uw(t,e){let o=1-fm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(uw,"generateShade");function dw(t,e){let o=fm*e;return{red:t.red+(Ni-t.red)*o,green:t.green+(Ni-t.green)*o,blue:t.blue+(Ni-t.blue)*o}}i(dw,"generateTint");function mw(t){return gm(t,uw)}i(mw,"calculateShades");function fw(t){return gm(t,dw)}i(fw,"calculateTints");function gm(t,e){let o=pw(t),n=[];for(let r=1;r<9;r++)n.push(cw(e(o,r)));return n}i(gm,"calculateColors");function Js(t,e,o){let a=fw(t).reverse().concat(t),s=mw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let d=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${d}`]=f)}return l}i(Js,"createTintsAndShades");function Rs(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)&&!du(r)){let l=sw(a);Object.assign(n,Js(l,r,s))}}return{...n,...e}}i(Rs,"expandToGenerateThemeColors");var hm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),gw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=hm(o%52)+e;return hm(o%52)+e},"toAlphabeticName"),hw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),el=i(t=>gw(hw(5381,JSON.stringify(t))>>>0),"toHash");function ol(t){let e=yw.colors,o={...e,...Sw},n,r;if(t?.light){let s={colors:Rs(e,t.light)};n={id:`${as}-light-${el(s)}`,tokens:s}}if(t?.dark){let s={colors:Rs(o,t.dark,{reverseNeutralRange:!0})};r={id:`${as}-dark-${el(s)}`,tokens:s}}return{light:n,dark:r}}i(ol,"customizedThemeTokens");function ym(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>tl.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(tl.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(tl.cloneElement(e,{key:c}))}}),o}i(ym,"joinList");function Sm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Sm,"doesWindowPreferDarkColorScheme");function uo(t){let{colors:e,fontFamily:o=jp,borderRadius:n=Eu,secondaryBorderRadius:r=Iu}=t,[a,s]=ww(Sm()?"dark":"light"),{theme:c}=T(),{dark:l,light:p}=ol(e),u=nl({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,Tw.className],f=[u.className,Cw.className];if(p){let g=nl(p.id,p.tokens);d.push(g.className)}if(l){let g=nl(l.id,l.tokens);f.push(g.className)}return kw(()=>{let g=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return Sm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=d.join(" "),m=f.join(" ");return c==="auto"?a==="dark"?m:g:c==="dark"?m:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(uo,"useTheme");var Ct=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 vw,Button as bw}from"@rango-dev/ui";import Tm from"react";function rl(t){return Tm.createElement(vw,{action:Tm.createElement(bw,{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(rl,"ActivateTabAlert");import{i18n as il}from"@lingui/core";import{Button as xw,Divider as Ew,MessageBox as Iw}from"@rango-dev/ui";import Bi from"react";function al(t){let{open:e,onClose:o,onConfirm:n}=t;return Bi.createElement(ne,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},Bi.createElement(Iw,{title:il.t("Activate current tab"),type:"warning",description:il.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},Bi.createElement(Ew,{size:20}),Bi.createElement(xw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},il.t("Confirm"))))}i(al,"ActivateTabModal");import{ChevronLeftIcon as Bw}from"@rango-dev/ui";import Am from"react";import{css as Aw,darkTheme as km,IconButton as Nw,styled as Fo}from"@rango-dev/ui";var Pt=Fo(Nw,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${km} &`]:{backgroundColor:"$neutral"}}}),wm=Fo("div",{position:"absolute",background:"$secondary500",[`.${km} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),mo=Fo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),vm=Fo("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),bm=Fo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),xm=Fo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Em=Aw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Im=Fo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function sl(t){return Am.createElement(Pt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Am.createElement(Bw,{color:"black",size:16}))}i(sl,"BackButton");import{i18n as Ww}from"@lingui/core";import{Button as Lw,Typography as Mw}from"@rango-dev/ui";import ll from"react";function cl(t){return ll.createElement(mo,null,ll.createElement(Lw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},ll.createElement(Mw,{variant:"label",size:"medium",color:"error500"},Ww.t("Cancel"))))}i(cl,"CancelButton");import{i18n as Pw}from"@lingui/core";import{Image as _w,Tooltip as Dw,WalletIcon as $w,WalletState as Nm}from"@rango-dev/ui";import Oo from"react";function pl(t){let{list:e}=vt(),o=e.filter(r=>r.state===Nm.CONNECTED||r.state===Nm.PARTIALLY_CONNECTED),n=o.length?Oo.createElement("div",{className:Em()},o.map(r=>Oo.createElement(Im,{key:r.title},Oo.createElement(_w,{src:r.image,size:14})))):Pw.t("Connect Wallet");return Oo.createElement(Dw,{container:t.container,side:"bottom",content:n},Oo.createElement(Pt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Oo.createElement(wm,null),Oo.createElement($w,{size:18,color:"black"})))}i(pl,"WalletButton");import{i18n as Li}from"@lingui/core";import{NotificationsIcon as Rw,Popover as ev,SettingsIcon as tv,Tooltip as Mi,TransactionIcon as ov}from"@rango-dev/ui";import Me from"react";import{Notifications as zw}from"@rango-dev/ui";import Hw from"react";import{useNavigate as Qw}from"react-router-dom";import{create as Fw}from"zustand";import{persist as Ow,subscribeWithSelector as Uw}from"zustand/middleware";var Ne=lo(Fw()(Ow(Uw((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1];if(!r||!a)return;let s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function ul(){let t=Qw(),{getNotifications:e,clearNotifications:o}=Ne(),n=e(),r=T().blockchains(),{findToken:a}=T();return Hw.createElement(zw,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Dp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${D.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(ul,"NotificationContent");import{useManager as qw}from"@rango-dev/queue-manager-react";import{InProgressIcon as Gw}from"@rango-dev/ui";import Bm from"react";var Vw=i(()=>{let{manager:t}=qw();return Ct(t).map(({swap:o})=>o).find(o=>o.status==="running")?Bm.createElement(xm,{id:"widget-header-history-badge-container"},Bm.createElement(Gw,{color:"info",size:6})):null},"InProgressTransactionBadge"),Wm=Vw;import{EventSeverity as Kw}from"@rango-dev/queue-manager-rango-preset";import{Typography as jw}from"@rango-dev/ui";import Lm from"react";function Mm(){let{getNotifications:t}=Ne(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Kw.WARNING);return o?Lm.createElement(vm,{isSever:n},Lm.createElement(jw,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Mm,"NotificationsBadge");import{RefreshProgressButton as Xw}from"@rango-dev/ui";import dl,{useEffect as Yw,useState as Pm}from"react";var Zw=1e3,_m=60,Jw=100;function Wi({onClick:t}){let[e,o]=Pm(0),[n,r]=Pm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Yw(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===_m&&c()},Zw):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 dl.createElement(Pt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},dl.createElement(bm,{onTransitionEnd:()=>r(!1),isRefetched:n},dl.createElement(Xw,{size:22,color:t?"black":"gray",progress:e/_m*Jw})))}i(Wi,"RefreshButton");function Uo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=T(),c=Re("notification",s)||r.includes("notifications");return Me.createElement(Me.Fragment,null,!r.includes("refresh")&&Me.createElement(Mi,{container:a||N(),side:"top",content:Li.t("Refresh")},Me.createElement(Wi,{onClick:e})),!c&&Me.createElement(ev,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:Me.createElement(ul,null)},Me.createElement("div",null,Me.createElement(Mi,{container:N(),side:"top",content:Li.t("Notifications")},Me.createElement(Pt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Me.createElement(Rw,{size:18,color:"black"}),Me.createElement(Mm,null))))),!r.includes("settings")&&Me.createElement(Mi,{container:N(),side:"top",content:Li.t("Settings")},Me.createElement(Pt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Me.createElement(tv,{size:18,color:"black"}))),!r.includes("history")&&Me.createElement(Mi,{container:N(),side:"top",content:Li.t("History")},Me.createElement(Pt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Me.createElement(ov,{size:18,color:"black"}),Me.createElement(Wm,null))))}i(Uo,"HeaderButtons");import{i18n as ml}from"@lingui/core";import{Divider as $m,MessageBox as iv,RefreshIcon as av}from"@rango-dev/ui";import wn from"react";import{Button as nv,styled as rv}from"@rango-dev/ui";var Dm=rv(nv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function fl(t){let{open:e,onClose:o}=t;return wn.createElement(ne,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},wn.createElement(iv,{title:ml.t("Something went wrong"),type:"error",description:ml.t("Something went wrong. Please refresh the app.")},wn.createElement($m,{size:30}),wn.createElement(Dm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},wn.createElement(av,{size:20,color:"primary"}),wn.createElement($m,{size:4,direction:"horizontal"}),ml.t("Refresh"))))}i(fl,"RefreshModal");var Fm="700px",Om="425px",Um="550px",zm="640px",Hm="800px";function gl(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(gl,"onScrollContentAttachStatusToContainer");import{css as sv,styled as Pi}from"@rango-dev/ui";var _i=sv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Qm=Pi("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",maxHeight:Fm,variants:{height:{auto:{height:"auto"},fixed:{height:"100%",minHeight:Om,[`@media screen and (min-height: ${Hm})`]:{minHeight:Um}}},showBanner:{true:{overflow:"visible"}}}}),qm=Pi("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Gm=Pi("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"}}}),Vm=Pi("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ae(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ys(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=T(),[u,d]=Xm(!1),{config:{features:f,theme:h}}=T(),{watermark:g}=oe(),m=g==="FULL",{activeTheme:y}=uo(h||{}),[S,C]=Xm(!1),k=Re("connectWalletButton",f),{isActiveTab:v,tabManagerInitiated:w,showActivateTabModal:I,setShowActivateTabModal:A,activateCurrentTab:b,setShowCompactTokenSelector:E}=oe(),x=Qe(),{manager:W}=lv(),U=Ct(W).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),G=i(()=>b(Mo.forceClaim,U),"onActivateTab"),K=i(()=>{r.onWallet?.()},"onConnectWallet"),J=typeof r.hasBackButton>"u"||r.hasBackButton,B=jm(null),R=jm(null);return Di(()=>{let Y=(p?.swapBoxBanner?.routes?.length??0)===0,le=!!p?.swapBoxBanner?.routes?.some(ve=>location.pathname.endsWith(ve));C(!!p?.swapBoxBanner&&(Y||le))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),Di(()=>(Ii()&&R.current&&e(R.current),()=>{o()}),[]),Di(()=>(B.current?.addEventListener("scroll",gl),()=>{B.current?.removeEventListener("scroll",gl)}),[]),Di(()=>{d(c==="failed")},[c]),uv(()=>{if(!R.current)return;let Y=new ResizeObserver(le=>{for(let ve of le)ve.contentRect&&E(ve.contentRect.height<parseInt(zm))});return Y.observe(R.current),()=>Y.disconnect()},[]),Be.createElement(Qm,{height:s,id:ht.SWAP_BOX_ID,className:`${y()} ${_i()}`,ref:R,showBanner:S},Be.createElement(pv,{prefix:J?Be.createElement(sl,{onClick:()=>{x(),r.onBack?.()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!k&&Be.createElement(pl,{container:N(),onClick:K,isConnected:!!l?.length}),r.onCancel&&Be.createElement(cl,{onClick:r.onCancel}))}),Be.createElement(qm,{ref:B},n),Be.createElement(al,{open:I,onClose:()=>A(!1),onConfirm:G}),Be.createElement(Gm,null,Be.createElement("div",{className:"footer__content"},w&&!v&&Be.createElement("div",{className:"footer__alert"},Be.createElement(rl,{onActivateTab:G}),Be.createElement(Km,{size:10})),a),Be.createElement(Km,{size:12}),Be.createElement("div",{className:`footer__logo ${m?"logo__show":"logo__hidden"}`},Be.createElement(cv,null))),S&&Be.createElement(Vm,null,p?.swapBoxBanner?.element),Be.createElement(fl,{open:u,onClose:()=>d(!1)}))}i(ae,"Layout");import{styled as dv}from"@rango-dev/ui";var Ym="$20 $20 $10 $20",hl=dv("div",{padding:Ym,overflowY:"auto",flexGrow:1});import{styled as mv}from"@rango-dev/ui";var ce=mv("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 fo}from"@lingui/core";import{useState as yl}from"react";function Zm(){let[t,e]=yl(!1),[o,n]=yl(null),[r,a]=yl(null),{findToken:s}=T(),c=T().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(d,f){switch(d){case"duplicated":return{type:d,title:fo.t("Duplicate Token"),message:fo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:fo.t("Token Already Exists"),message:fo.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:fo.t("Token Not Found"),message:fo.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:f}})};case"network-error":return{type:d,title:fo.t("Network error"),message:fo.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:f})=>{e(!0);try{if(c.some(S=>S.address?.toLowerCase()===f.toLowerCase())){let S=p("duplicated");n(S);return}let g=await at().getCustomToken({blockchain:d,address:f});if(!g||!g.token||g.error){let S=p("not-found",d);n(S);return}let m=g.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let S=p("token-exist");n(S);return}return a({...m,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",d);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(Zm,"useFetchCustomToken");var bv=Sv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${hv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Jm(){let t=wv(),[e]=vv(),o=Qe(),n=T().blockchains(),r=e.get("blockchain")||"",a=Ao(r,n),[s,c]=kv(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:f}=Zm(),h=!!a&&on(a,s),g=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return qe.createElement(ae,{header:{title:vn.t("Add Custom Token")}},qe.createElement(ce,null,qe.createElement(bv,null,qe.createElement("div",null,qe.createElement(qs,{onClick:()=>t(D.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:vn.t("Select chain"),placeholder:vn.t("Select chain")}),qe.createElement(Sl,{size:"24"}),qe.createElement(Tv,{size:"large",variant:"label"},vn.t("Enter Address")),qe.createElement(Sl,{size:10}),qe.createElement(Cv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:vn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&qe.createElement(yv,{color:"success",size:12}),onChange:y=>c(y.target.value)}),!h&&!!s&&qe.createElement(qe.Fragment,null,qe.createElement(Sl,{size:4}),qe.createElement(fv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),qe.createElement(gv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},vn.t("Import"))),qe.createElement(ur,{token:p,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(Jm,"AddCustomTokenPage");import{i18n as Zl}from"@lingui/core";import{useManager as cx}from"@rango-dev/queue-manager-react";import{Alert as px,Button as ux,css as Rl,Divider as Jl,IconButton as zg,styled as dx,Typography as mx,WalletIcon as fx}from"@rango-dev/ui";import De,{useEffect as ca,useLayoutEffect as gx,useRef as hx,useState as wr}from"react";import{useNavigate as yx}from"react-router-dom";import{i18n as Ho}from"@lingui/core";import{Alert as Gv,BalanceErrors as Vv,Button as kf,ChevronLeftIcon as Kv,Divider as bl,MessageBox as jv,Typography as xl}from"@rango-dev/ui";import ie,{useCallback as Xv,useEffect as wf,useMemo as Yv,useState as xn}from"react";import{useNavigate as Zv}from"react-router-dom";import{i18n as wl}from"@lingui/core";import{Alert as Nv,ChevronDownIcon as Bv,CloseIcon as Wv,Divider as af,IconButton as sf,PasteIcon as Lv,Typography as Mv,WalletIcon as Pv}from"@rango-dev/ui";import Pe,{useEffect as _v,useRef as Dv}from"react";import Ui,{useRef as Iv}from"react";import*as bn from"@radix-ui/react-collapsible";import{keyframes as Rm,styled as $i}from"@rango-dev/ui";var Cl=300,xv=Rm({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Ev=Rm({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),ef=$i(bn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Tl=$i(bn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Fi=$i(bn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${xv} ${Cl}ms ease-out`},false:{animation:`${Ev} ${Cl}ms ease-out`}}}}),Oi=$i("div",{transition:`all ${Cl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function zi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Iv(null);return Ui.createElement(ef,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&Ui.createElement(Tl,{className:"collapsible_trigger",onClick:a},s),Ui.createElement(Fi,{className:"collapsible_content",open:e},r),c==="bottom"&&Ui.createElement(Tl,{className:"collapsible_trigger",onClick:a},s))}i(zi,"CustomCollapsible");import{darkTheme as tf,styled as kl,TextField as Av}from"@rango-dev/ui";var of=kl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),nf=kl(Av,{backgroundColor:"$neutral100"}),rf=kl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${tf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${tf} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function lf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=z()(),{config:s}=T(),c=T().blockchains(),l=_p(e.name,c),p=Dv(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!on(e,r),g=i(()=>{a("")},"handleClear"),m=i(async S=>{if(S.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),p?.current?.focus()}},"handlePaste"),y=i(()=>r?Pe.createElement(sf,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},Pe.createElement(Wv,{size:12,color:"gray"})):d?null:Pe.createElement(sf,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},Pe.createElement(Lv,{size:16})),"renderSuffix");return _v(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),Pe.createElement(of,null,Pe.createElement(zi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Pe.createElement(rf,{id:"widget-custom-destination-collapsible-btn"},Pe.createElement("div",{className:"button__content"},Pe.createElement(Pv,{size:18,color:"info"}),Pe.createElement(af,{size:4,direction:"horizontal"}),Pe.createElement(Mv,{variant:"label",size:"medium",color:n?"$neutral600":void 0},wl.t("Send to a different address"))),Pe.createElement(Oi,{orientation:n?"up":"down"},Pe.createElement(Bv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Pe.createElement(nf,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:wl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:y(),onChange:S=>{let C=S.target.value;a(C)}})),h&&Pe.createElement(Pe.Fragment,null,Pe.createElement(af,{size:4}),Pe.createElement(Nv,{variant:"alarm",type:"error",title:wl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(lf,"CustomDestination");import{css as $v,IconButton as Fv,SelectableWalletButton as Ov,styled as go}from"@rango-dev/ui";var cf=go("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),pf=go("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),uf=go(Ov,{justifyContent:"center"}),df=go("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),mf=go(Fv,{position:"absolute",left:"$20"}),ff=go("div",{paddingTop:"$20"}),gf=$v({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),hf=go("div",{display:"flex"}),yf=go("div",{overflow:"visible",width:"100%"});import{i18n as Sf}from"@lingui/core";import{warn as Uv}from"@rango-dev/logging-core";import{makeInfo as zv,SelectableWallet as Hv,Typography as Cf,WalletState as dr}from"@rango-dev/ui";import zo,{useEffect as Qv,useState as Tf}from"react";var qv=7;function vl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{connectedWallets:l}=T(),[p,u]=Tf(),{list:d}=vt({chain:e}),[f,h]=Tf(d),g=d.length,m=a&&g-a>0;return Qv(()=>{h(y=>{let S=d.findIndex(C=>n(C.type,e));return m&&S>1?[d[S]].concat(d.filter((C,k)=>k!==S)):y.map(C=>d.find(k=>k.type===C.type)??C)})},[JSON.stringify(d)]),zo.createElement(zo.Fragment,null,f.slice(0,a).map(y=>{let S=Tu({connectedWallets:l,walletType:y.type,chain:e}),C=y.state===dr.CONNECTED||y.state===dr.PARTIALLY_CONNECTED,k=S?so(S,qv):"",v=C&&!!y.needsNamespace&&!k,w=i(async()=>{y.state===dr.DISCONNECTED||v?u(y):r({walletType:y.type,chain:e,address:S??""})},"onSelectableWalletClick"),I=zv(y.state),A=i(()=>v?Sf.t("Chain not connected"):k||I.description,"getWalletDescription"),b=i(()=>y.state===dr.CONNECTED||y.state===dr.PARTIALLY_CONNECTED?v?"neutral600":"neutral700":I.color,"getWalletDescriptionColor");return zo.createElement(Hv,{key:y.type,id:"widget-wallets-list-selectable-wallet-btn",description:A(),descriptionColor:b(),onClick:w,selected:n(y.type,e),disabled:!c,...y})}),zo.createElement(ir,{id:"widget-wallets-list-stateful-connect-modal",wallet:p,options:{defaultSelectedChains:o||[e]},onClose:()=>{u(void 0)},onConnect:()=>{t.onConnect&&(p?.type?t.onConnect(p.type):Uv(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),m&&zo.createElement(uf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},zo.createElement(Cf,{variant:"label",size:"medium"},Sf.t("Show more wallets"),zo.createElement(Cf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",g-(a??0)))))}i(vl,"WalletList");var Jv=2;function vf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Zv(),c=T().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:f,setCustomDestination:h}=z()(),{config:g,connectedWallets:m,setWalletsAsSelected:y}=T(),[S,C]=xn(""),[k,v]=xn([]),[w,I]=xn(""),[A,b]=xn(!!f),E=Yv(()=>Wo({filter:"all",quote:l}),[l]),x=Wo({filter:"required",quote:l}),W=c.find(F=>F.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),P=i(F=>x.includes(F),"isWalletRequiredFor"),U=Xv(()=>m.filter(F=>F.selected&&E.includes(F.chain)),[m,E]),[G,K]=xn(U()),[J,B]=xn([]),R=i((F,O)=>B(X=>X.concat({blockchain:F,walletType:O})),"addNextSelectedWallets"),Y=k.length>0,le=i((F,O)=>!!G.find(X=>X.walletType===F&&X.chain===O&&X.selected&&(P(O)||!P(O)&&!f)),"isSelected"),ve=i((F,O,X)=>{let ee=!1;return F.map(j=>{if(j.chain===O){let Q=j.selected;return!ee&&X?(ee=!0,Q=!0):X||(Q=!1),{...j,selected:Q}}return j})},"updateSelectableWallets"),Ht=i(F=>{b(F),F?P(W?.name??"")||K(O=>ve(O,W?.name||"",!1)):(h(""),K(O=>ve(O,W?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),be=i(F=>{if(S&&C(""),le(F.walletType,F.chain))return;let X=m.find(ee=>ee.walletType===F.walletType&&ee.chain===F.chain);X&&(n(),F.chain===W?.name&&A&&!P(W.name)&&(b(!1),h(null)),K(ee=>ee.filter(j=>j.chain!==F.chain).concat({...X,selected:!0})))},"onChange"),dt=i(()=>{let F=G.filter(O=>O.selected);y(F),p(F),d(!0),o()},"onConfirmBalance"),kt=i(async()=>{v([]),I("");let F=await r?.({selectedWallets:G.filter(X=>X.selected),customDestination:f}),O=F.warnings;O?.balance?.messages&&v(O.balance.messages),F.error&&I(gd(F.error)),!F.error&&!O?.balance?.messages.length?dt():v(O?.balance?.messages??[])},"onConfirmWallets");wf(()=>{K(F=>{let O=[];return F.forEach(X=>{!m.some(j=>j.chain===X.chain&&j.walletType===X.walletType&&j.address===X.address)||O.push(X)}),O=O.concat(m.filter(X=>!!!O.find(j=>j.chain===X.chain)&&X.selected&&E.includes(X.chain))),O})},[m,E]),wf(()=>{let F=[];J.length>0&&(J.forEach(O=>{let X=m.find(ee=>ee.chain===O.blockchain&&ee.walletType===O.walletType);X?be(X):F.push(O)}),B(F))},[m,J]);let wt=document.getElementById(ht.SWAP_BOX_ID);return ie.createElement(ne,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!S,container:wt,...!S&&{styles:{container:{height:"100%"}},footer:ie.createElement(hf,null,ie.createElement(kf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:qd(a,A,f,l,G,W),onClick:kt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Ho.t("Confirm")))},...S&&{styles:{container:{height:"100%",padding:"$0"}},header:ie.createElement(df,null,ie.createElement(mf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},ie.createElement(Kv,{size:16})),ie.createElement(xl,{variant:"headline",size:"small"},Ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:ft(S,c)}})))},anchor:"center"},ie.createElement(ne,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:Y,onClose:v.bind(null,[]),container:wt},ie.createElement(jv,{title:Ho.t("Insufficient account balance"),type:"error",description:ie.createElement(Vv,{messages:k??[]})},ie.createElement(kf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:dt},Ho.t("Proceed anyway")))),S&&ie.createElement(ff,null,ie.createElement("div",{className:gf()},ie.createElement(vl,{chain:S,quoteChains:E,isSelected:le,selectWallet:be,onShowMore:()=>C(S),onConnect:F=>{R(S,F)}}))),!S&&ie.createElement(ie.Fragment,null,w&&ie.createElement(ie.Fragment,null,ie.createElement(Gv,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Ho.t(w)}),ie.createElement(bl,{size:12})),ie.createElement(yf,null,E.map((F,O)=>{let X=c.find(Ve=>Ve.name===F),ee=`wallet-${O}`,j=O===E.length-1,Q=j&&W&&g?.customDestination!==!1;return ie.createElement("div",{key:ee},ie.createElement(cf,null,ie.createElement(xl,{variant:"title",size:"xmedium"},Ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),ie.createElement(xl,{variant:"label",color:"$neutral700",size:"medium"},Ho.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),ie.createElement(bl,{size:24}),ie.createElement(pf,null,ie.createElement(vl,{chain:F,quoteChains:E,isSelected:le,selectWallet:be,limit:Jv,onShowMore:()=>C(X?.name??""),onConnect:Ve=>{R(F,Ve)}})),!j&&ie.createElement(bl,{size:32}),Q&&ie.createElement(lf,{blockchain:W,open:A,handleOpenChange:Ht}))}))))}i(vf,"ConfirmWalletsModal");import{i18n as bb}from"@lingui/core";import{Alert as xb,Button as Eb,Divider as Qf,InfoIcon as Ib}from"@rango-dev/ui";import Fe from"react";import{Alert as tb,Button as ob,Divider as Al,NoRouteIcon as nb,RefreshIcon as rb,Typography as Bf}from"@rango-dev/ui";import st from"react";import{i18n as bf}from"@lingui/core";var Rv=24,eb=60;function xf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:re().genericServerError,action:{onClick:n,title:bf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:re().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:bf.t("Reset")}},description:re().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:re().noResultError.description}}i(xf,"makeInfo");var El=(o=>(o[o.small=Rv]="small",o[o.large=eb]="large",o))(El||{}),Il=(o=>(o.small="small",o.large="medium",o))(Il||{});import{styled as Hi}from"@rango-dev/ui";var Ef=Hi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),If=Hi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Af=Hi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Nf=Hi("div",{padding:"$6 $0"});function mr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=T().getDisabledLiquiditySources(),s=T().toggleAllLiquiditySources,c=T().swappers(),l=xf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),st.createElement(Ef,{id:"widget-no-result-container"},st.createElement(nb,{size:El[n],color:"gray"}),st.createElement(Al,{size:4}),st.createElement(Bf,{variant:"title",size:Il[n]},re().noResultError.title),n==="large"&&st.createElement(Al,{size:4}),!!l.description&&st.createElement(If,{size:n},st.createElement(Bf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),st.createElement(Al,{size:n==="large"?"24":"4"}),!!l.alert&&st.createElement(Af,{size:n},st.createElement(tb,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&st.createElement(ob,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:st.createElement(Nf,null,st.createElement(rb,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(mr,"NoResult");import{i18n as fr}from"@lingui/core";import{Button as db,Divider as mb,MessageBox as fb,Typography as gb,WarningIcon as hb}from"@rango-dev/ui";import Xt from"react";import{InfoIcon as lb,Tooltip as cb,Typography as pb}from"@rango-dev/ui";import En from"react";import{Button as ib,darkTheme as ab,styled as Qo,Typography as sb}from"@rango-dev/ui";var Wf=Qo("div",{width:"100%"}),Nl=Qo("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Lf=Qo("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${ab} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Mf=Qo("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$2"}),Pf=Qo(sb,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"250px"}),_f=Qo("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Df=Qo(ib,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});var ub=35;function $f(t){let{title:e,value:o,valueColor:n}=t,r=N();return En.createElement(Lf,null,En.createElement(pb,{size:"medium",variant:"label",className:"_title"},e),En.createElement(Mf,null,En.createElement(Pf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`),o.length>ub&&En.createElement(cb,{content:o,container:r},En.createElement(lb,{size:12,color:"gray"}))))}i($f,"QuoteErrorsModalItem");function Ff(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:fr.t("Swapping"),value:M(r.inputUsdValue)},{title:fr.t("Gas cost"),value:M(r.totalFee,2,2)},{title:fr.t("Receiving"),value:M(r.outputUsdValue)},{title:fr.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Xt.createElement(ne,{id:"widget-high-value-loss-warning-modal",footer:Xt.createElement(db,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Xt.createElement(hb,null),fullWidth:!0,disabled:a,onClick:n},re().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},Xt.createElement(fb,{type:s,title:re().highValueLossError.impactTitle,description:re().highValueLossError.description}),Xt.createElement(Nl,null,Xt.createElement(mb,{size:"4"}),Xt.createElement(gb,{size:"small",variant:"title"},fr.t("Details")),Xt.createElement(Nl,null,c.map((l,p)=>Xt.createElement($f,{key:p,...l})))))}i(Ff,"HighValueLossWarningModal");import{i18n as In}from"@lingui/core";function Of(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=In.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=In.t("Increase")),o;if(t){switch(t.type){case 0:{jt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=re().highValueLossError.title;break}case 4:{o.title=In.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=re().unknownPriceError.title;break}case 2:{o.title=In.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=In.t("Increase");break}case 3:{o.title=In.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Of,"makeAlerts");function Uf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(Uf,"getRequiredSlippage");import{i18n as An}from"@lingui/core";import{Button as yb,Divider as Bl,MessageBox as Sb,WarningIcon as Cb}from"@rango-dev/ui";import So from"react";import{useNavigate as Tb}from"react-router-dom";function zf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=Tb();return So.createElement(ne,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},So.createElement(Sb,{type:"warning",title:r.type===3?An.t("High slippage"):An.t("Low slippage"),description:r.type===3?An.t("Caution, your slippage is high. Your trade may be front run."):An.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},So.createElement(Bl,{size:18}),So.createElement(Bl,{size:32}),So.createElement(Df,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},So.createElement(Cb,{color:"white",size:16}),An.t("Swap anyway")),So.createElement(Bl,{size:10}),So.createElement(yb,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+D.settings)},An.t("Change Slippage"))))}i(zf,"SlippageWarningModal");import{Button as kb,MessageBox as wb,WarningIcon as vb}from"@rango-dev/ui";import Qi from"react";function Hf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Qi.createElement(ne,{id:"widget-unknown-price-warning-modal",footer:Qi.createElement(kb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Qi.createElement(vb,null),fullWidth:!0,disabled:r,onClick:n},re().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Qi.createElement(wb,{type:"warning",title:re().unknownPriceError.impactTitle,description:re().unknownPriceError.description}))}i(Hf,"UnknownPriceWarningModal");function gr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:d,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,m=Of(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let y=!!m&&!s,S=i(C=>{if(C==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,v=Uf(e,k);f?.(v)}else C==="change-settings"&&d()},"onclickActionButton");return Fe.createElement(Fe.Fragment,null,g&&Fe.createElement(Fe.Fragment,null,Fe.createElement(Qf,{size:10}),Fe.createElement(mr,{skipAlerts:s,error:o,fetch:c})),y&&Fe.createElement(Wf,null,Fe.createElement(Qf,{size:10}),Fe.createElement(xb,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Fe.createElement(_f,{onClick:l},Fe.createElement(Ib,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Fe.createElement(Eb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>S(m.action)},m.actionButtonTitle||bb.t("Change"))}})),e&&Fe.createElement(Fe.Fragment,null,e.type===0&&Fe.createElement(Ff,{...h,warning:e}),(e.type===3||e.type===2)&&Fe.createElement(zf,{...h,warning:e}),e.type===1&&Fe.createElement(Hf,{...h,warning:e})))}i(gr,"QuoteWarningsAndErrors");import ox from"bignumber.js";import ia from"react";import{i18n as qo}from"@lingui/core";import{Alert as qb,CampaignQuoteTag as Gb,Divider as Bn,FullExpandedQuote as Vb,InfoIcon as zl,NumericTooltip as Hl,QuoteTag as Kb,StepDetails as jb,TokenAmount as Xb,Typography as Wn,useIsTruncated as Ql}from"@rango-dev/ui";import ql from"bignumber.js";import $,{useRef as oa,useState as Yb}from"react";import{styled as Wl}from"@rango-dev/ui";var Ll=Wl("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),qf=Wl("div",{paddingBottom:"$15","& .from-amount-text":{wordBreak:"break-word"},variants:{dense:{true:{paddingBottom:0}}}}),Gf=Wl("div",{width:"100%",display:"flex"});import*as qi from"@radix-ui/react-collapsible";import{Button as Ab,css as Gi,darkTheme as _e,Image as Vf,styled as Ge,Typography as Ml}from"@rango-dev/ui";var Nb=300,Kf=Ge(qi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${_e} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${_e} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${_e} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),jf=Gi({padding:"$10 $15"}),Xf=Ge(Ab,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${_e} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${_e} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${_e} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Yf=Ge("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",[`.${_e} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${_e} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${_e} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${_e} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${_e} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${_e} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${_e} &`]:{backgroundColor:"$neutral400"}}}}]}),Zf=Gi({width:"100%",padding:"$15 $15 $10 $15"}),Jf=Gi({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Nn=Gi({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Rf=Ge(qi.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Vf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Vf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${_e} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${_e} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${_e} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),eg=Ge("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"}}}}),tg=Ge(Fi,{width:"100%",background:"inherit"}),Pl=Ge("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Nb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),PH=Ge("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),og=Ge("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${_e} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),ng=Ge("div",{display:"flex",flexDirection:"row",alignItems:"center",gap:"$2",flex:"1 1 auto",minWidth:0}),_l=Ge(Ml,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"$30"}),Dl=Ge(Ml,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:"0 1 auto"}),$l=Ge("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"}}}}),rg=Ge("div",{display:"flex"}),Vi=Ge("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${_e} &`]:{borderTopColor:"$neutral800"}}),ig=Ge(Ml,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,flexShrink:3});import{i18n as _t}from"@lingui/core";import{ChevronDownIcon as Wb,CloseIcon as Lb,Divider as Xi,IconButton as Mb,NumericTooltip as Pb,QuoteCost as _b,Typography as Et}from"@rango-dev/ui";import Z,{useState as cg}from"react";import{css as Bb,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"}}),Fl=Ki("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),ag=Ki("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),sg=Ki("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),lg=Bb({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Db=i(t=>t.fee.isZero()?null:Z.createElement(ji,null,Z.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(Et,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Ol(t){let[e,o]=cg(!1),[n,r]=cg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?Bo():N(),m=Dd(h),y=M(c,2,2);return Z.createElement(Z.Fragment,null,Z.createElement(_b,{onClickFee:d?S=>{S.stopPropagation(),o(!e)}:void 0,fee:y,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?_t.t("View more info"):void 0,tooltipContainer:g}),Z.createElement(ne,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:Z.createElement(sg,{style:{textAlign:f?"left":"center"}},Z.createElement(Et,{variant:"title",size:"medium"},_t.t("Gas & Fee Explanation")),Z.createElement(Mb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Z.createElement(Lb,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(ag,null,Z.createElement(Et,{variant:"title",size:"small"},_t.t("Details")),Z.createElement(Xi,{size:10}),Object.entries(m.payable).flatMap(([S,C])=>C.map((k,v)=>{let w=`payable-fee-${v}`,I=$s(k);return Z.createElement(ji,{key:w},Z.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},Ls(S,_t.t)),Z.createElement(Pb,{content:k.amount,container:g},Z.createElement(Et,{variant:"label",size:"medium"},M(k.amount,2,2),k.asset.symbol," ($",M(I,4,4),")")))})),Z.createElement(ji,{className:"total_payable_fee"},Z.createElement(Et,{variant:"label",size:"medium"},_t.t("Total Payable Fee")),Z.createElement(Et,{variant:"label",size:"medium"},"$",M(c,4,4))),Z.createElement(Fl,null),!!Object.keys(m.nonePayable).length&&Z.createElement(zi,{triggerAnchor:"bottom",onClickTrigger:()=>r(S=>!S),trigger:Z.createElement("div",{className:lg()},Z.createElement(Et,{size:"small",variant:"body",color:"neutral700"},n?_t.t("Hide non-payable fees"):_t.t("Show non-payable fees")),Z.createElement(Xi,{size:4,direction:"horizontal"}),Z.createElement(Oi,{orientation:n?"up":"down"},Z.createElement(Wb,{size:12,color:"gray"}))),open:n},Z.createElement(Et,{size:"small",variant:"title"},_t.t("Description")),Z.createElement(Xi,{size:4}),Z.createElement(Et,{size:"small",variant:"body",color:"neutral700"},_t.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),Z.createElement(Xi,{size:10}),Object.entries(m.nonePayable).map(([S,C],k)=>{let v=_d(C),w=Ls(S,_t.t),I=`non-payable-fee-${k}`;return Z.createElement(Db,{key:I,fee:v,label:w})}),Z.createElement(Fl,null)))))}i(Ol,"QuoteCostDetails");import{i18n as dg}from"@lingui/core";import{TokenAmount as mg}from"@rango-dev/ui";import Yi from"react";import{css as $b,styled as Fb}from"@rango-dev/ui";var pg=Fb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),ug=$b({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function hr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Yi.createElement(pg,null,Yi.createElement(mg,{direction:"horizontal",label:dg.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:ug()}),Yi.createElement(mg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:dg.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(hr,"QuoteSummary");import{i18n as Sg}from"@lingui/core";import{ChevronDownIcon as zb,ChevronRightIcon as Hb,Divider as Ul,Image as Qb,Tooltip as ta,Typography as Ji}from"@rango-dev/ui";import H from"react";import{useLayoutEffect as Ob,useState as yr}from"react";var fg=480,gg=768,hg=1024,yg=1200,Ub=i(()=>{let[t,e]=yr(!1),[o,n]=yr(!1),[r,a]=yr(!1),[s,c]=yr(!1),[l,p]=yr(!1),u=i(()=>{e(window.innerWidth<=fg),n(window.innerWidth>fg&&window.innerWidth<=gg),a(window.innerWidth>gg&&window.innerWidth<=hg),c(window.innerWidth>hg&&window.innerWidth<=yg),p(window.innerWidth>yg)},"handleResize");return Ob(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),Zi=Ub;var Ri=4,ea=6,Sr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return H.createElement(ta,{container:c,side:"bottom",sideOffset:4,open:r,content:e},H.createElement(eg,{className:n,state:a},H.createElement(Qb,{src:o,size:16})))},"ImageComponent");function Cg(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),p=r.length,u=xd(r),{isTablet:d,isMobile:f}=Zi();return H.createElement(Rf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},H.createElement("div",{className:Nn()},H.createElement(Ji,{variant:"body",size:"xsmall"},Sg.t("Via:")),H.createElement(Ul,{direction:"horizontal",size:4}),r.map((h,g)=>{let m=`item-${g}`,y=H.createElement(Pl,null,H.createElement(Hb,{size:12,color:"black"}));return f||d?H.createElement(H.Fragment,{key:m},H.createElement(Sr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&H.createElement(H.Fragment,null,y)):H.createElement(H.Fragment,{key:m},p<=Ri||p>Ri&&g<Ri-1?H.createElement(H.Fragment,null,H.createElement(Sr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&H.createElement(H.Fragment,null,y)):g===Ri-1&&H.createElement(ta,{container:l,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:Nn()},y,r.map((S,C)=>{let k=`image-${C}`;return C>=g&&H.createElement(H.Fragment,{key:k},H.createElement(Sr,{content:S.swapper.displayName,src:S.swapper.image??"",state:S.state,open:!1}),C!==p-1&&H.createElement(H.Fragment,null,y))}))},H.createElement($l,{state:r.find((S,C)=>C>=g&&(S.state==="error"||S.state==="warning"))?.state},H.createElement(Ji,{size:"xsmall",variant:"body"},"+",p-g))))})),H.createElement("div",{className:Nn()},H.createElement("div",{className:"blockchains_section"},H.createElement("div",{className:Nn()},H.createElement(Ji,{variant:"body",size:"xsmall"},Sg.t("Chains:")),H.createElement(Ul,{direction:"horizontal",size:4}),u.map((h,g)=>H.createElement(H.Fragment,{key:h.displayName},u.length<=ea||u.length>ea&&g<ea-1?H.createElement(ta,{container:l,side:"bottom",content:h.displayName,sideOffset:4},H.createElement(Sr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===ea-1&&H.createElement(ta,{container:l,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:Nn()},u.map((m,y)=>y>=g&&H.createElement(Sr,{key:m.displayName,content:"",src:m.image??"",open:!1,className:y>g?"blockchainImage":"",container:c})))},H.createElement($l,{className:"blockchainImage"},H.createElement(Ji,{size:"xsmall",variant:"body"},"+",u.length-g))))),H.createElement(Ul,{direction:"horizontal",size:32}))),H.createElement(Pl,{orientation:a?"up":"down"},H.createElement(zb,{size:12,color:"black"}))))}i(Cg,"QuoteTrigger");function Gl(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:d=!1,container:f}=t,h=T().blockchains(),{findToken:g}=T(),m=T().swappers(),{customSlippage:y,slippage:S}=T(),C=y||S,[k,v]=Yb(t.expanded),w=oa(null),I=M(n.value,6,6),A=n.usdValue?M(n.usdValue,4,4):"",{config:{__UNSTABLE_OR_INTERNAL__:b}}=T(),E=Kt(o.usdValue,n.usdValue??null),x=M(E,2,2),W=jt(E??0),P=i((Q,Ve)=>Q.map((q,ye)=>{let Je,mt=r?.type===3&&r.swap.swapperId===q.swapperId,ao=r?.type===4&&!!r.recommendedSlippages?.[ye],On=a?.type===2&&!!a.recommendedSlippages?.[ye],Eo=mt||ao,jr=On;Eo?Je="error":jr&&(Je="warning");let Ro=Eo?qo.t("Slippage Error"):qo.t("Slippage Warning");return mt&&(Ro=qo.t("Bridge Limit Error")),{swapper:{displayName:zn(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:ye===0&&!Ve?M(o.value,6,6):M(q.fromAmount,6,6),usdValue:M((q.from.usdPrice??0)*parseFloat(q.fromAmount),4,4),realValue:ye===0?o.value:q.fromAmount,realUsdValue:new ql(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:M(q.toAmount,6,6),usdValue:M((q.to.usdPrice??0)*parseFloat(q.toAmount),4,4),realValue:q.toAmount,realUsdValue:new ql(q.to.usdPrice??0).multipliedBy(q.toAmount).toString()}},state:Je,alerts:Eo||jr?$.createElement(qf,{dense:d},$.createElement(qb,{variant:"alarm",type:Eo?"error":"warning",title:Ro,id:"widget-quote-footer-step-alarm-alert",footer:$.createElement(Gf,null,mt&&$.createElement("div",null,$.createElement(Wn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),$.createElement(Bn,{direction:"vertical",size:2}),$.createElement(Wn,{size:"xsmall",variant:"body",className:"from-amount-text",color:"neutral900"},qo.t({id:"Yours: {amount} {symbol}",values:{amount:M(q.fromAmount,6,6),symbol:q?.from.symbol}}))),(ao||On)&&!mt&&$.createElement("div",null,$.createElement(Wn,{size:"xsmall",variant:"body",color:"neutral900"},qo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[ye]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[ye]}}})),$.createElement(Bn,{direction:"vertical",size:2}),$.createElement(Wn,{size:"xsmall",variant:"body",color:"neutral900"},qo.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Qn(q.estimatedTimeInSeconds),fee:M(Ds(q,g),2,2),internalSwaps:q.internalSwaps?P(q.internalSwaps):void 0}}),"getQuoteSteps"),U=P(e?.swaps??[]),G=U.length,K=f||N(),J=Id(t.quote.tags||[]),B=!!u,R=ti(e?.swaps),Y=Qn(R),le=wi(e?.swaps??[],g),ve=M(le,2,2),Ht=le.gte(new ql(yd)),be=R/Cd>=Sd,dt=oa(null),kt=Ql(o.value,dt),wt=oa(null),F=Ql(n.value,wt),O=oa(null),X=Ql(A,O),ee=U[G-1],j=U[0];return!j||!ee?null:d?$.createElement(Vb,{selected:c,fee:ve,time:Y,tooltipContainer:Bo(),steps:U,tags:J,campaignTag:b?.campaignTag,id:"widget-quote-full-expanded-quote-container",quoteCost:$.createElement(Ol,{quote:e,fullExpandedMode:!0,time:Y,fee:le,feeWarning:Ht,timeWarning:be,showModalFee:p,steps:G}),percentageChange:x,warningLevel:W,outputPrice:{value:I,usdValue:A,realValue:n.value,realUsdValue:n.usdValue}}):$.createElement(Yf,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},$.createElement("div",{className:Zf()},!l&&J.length?$.createElement($.Fragment,null,$.createElement(rg,null,J.map((Q,Ve)=>{let q=`${Q.value}_${Ve}`;return $.createElement($.Fragment,{key:q},Q.value=="CAMPAIGN"&&b?.campaignTag?$.createElement(Gb,{routeTag:Q,...b.campaignTag}):$.createElement(Kb,{label:Q.label,value:Q.value}),$.createElement(Bn,{size:4,direction:"horizontal"}))})),$.createElement(Vi,null),!B&&$.createElement(Bn,{size:4})):null,$.createElement("div",{id:"portal-root",className:Jf()},$.createElement(Ol,{quote:e,time:Y,fee:le,feeWarning:Ht,timeWarning:be,showModalFee:p,steps:G}),B&&$.createElement(Xf,{onClick:Q=>{Q.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},$.createElement(Wn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},qo.t("See All Routes")))),s==="basic"&&$.createElement(ng,null,$.createElement(Dl,{ref:dt,size:"small",variant:"body"},o.value),kt&&$.createElement(Hl,{content:o.value,container:K,open:o.value?void 0:!1},$.createElement(zl,{size:12,color:"gray"})),$.createElement(_l,{size:"small",variant:"body"},U[0]?.from.token.displayName),$.createElement(Wn,{size:"small",variant:"body"},"="),$.createElement(Dl,{ref:wt,size:"small",variant:"body"},n.value),F&&$.createElement(Hl,{content:n.value,container:K,open:n.value?void 0:!1},$.createElement(zl,{size:12,color:"gray"})),$.createElement(_l,{size:"small",variant:"body"},ee?.to.token.displayName),$.createElement(Bn,{size:2,direction:"horizontal"}),$.createElement(ig,{ref:O,color:"$neutral600",size:"xsmall",variant:"body"},`($${A})`),X&&$.createElement(Hl,{content:n.usdValue,container:K},$.createElement(zl,{size:12,color:"gray"}))),s==="list-item"&&$.createElement(Xb,{id:"widget-quote-token-amount-container",tooltipContainer:K,type:"output",direction:"vertical",price:{value:I,usdValue:A,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:ee.to.token.displayName,image:ee.to.token.image},chain:{image:ee.to.chain.image},percentageChange:x,warningLevel:W}),s==="swap-preview"&&$.createElement($.Fragment,null,$.createElement(hr,{from:j.from,to:ee.to,percentageChange:x,warningLevel:W}),$.createElement(Bn,{size:4}))),$.createElement(Kf,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},$.createElement(Cg,{type:s,quoteRef:w,selected:c,setExpanded:v,container:K,expanded:k,steps:U}),$.createElement(tg,{open:k},$.createElement(og,null),$.createElement("div",{className:jf()},U.map((Q,Ve)=>{let q=`item-${Ve}`;return $.createElement(jb,{type:"quote-details",className:"widget-quote-step-details-container",key:q,tooltipContainer:K,step:Q,hasSeparator:Ve!==U.length-1,state:Q.state})})))))}i(Gl,"Quote");import{Divider as ex,Skeleton as tx}from"@rango-dev/ui";import Rt from"react";import{darkTheme as Zb,styled as na}from"@rango-dev/ui";var Tg=na("div",{$$color:"$colors$neutral100",[`.${Zb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),kg=na("div",{paddingTop:"$2"}),wg=na("div",{paddingLeft:"$8"}),vg=na("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Mg,Divider as It,Skeleton as lt}from"@rango-dev/ui";import V from"react";import{css as Jb,styled as Jt}from"@rango-dev/ui";var Vl=Jt("div",{display:"flex"}),bg=Jt("div",{padding:"$10 $0 $20"}),xg=Jt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Eg=Jt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Ig=Jt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Ag=Jt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Ng=Jt("div",{width:"65%",display:"flex",justifyContent:"start"}),Bg=Jt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Wg=Jt("div",{padding:"$15 $0 $15 $0"}),Lg=Jb({display:"flex",justifyContent:"space-between",alignItems:"center"});function Cr(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(Ig,null,V.createElement(Ng,null,V.createElement(Mg,{loading:!0,size:"medium"}),V.createElement(It,{size:8,direction:"horizontal"}),V.createElement(Bg,null,V.createElement(lt,{height:10,width:60,variant:"rounded"}),V.createElement(It,{size:4}),V.createElement(lt,{height:15,variant:"rounded"}))),V.createElement(lt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(Vl,null,V.createElement(lt,{width:65,height:20,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(lt,{width:65,height:20,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(lt,{width:65,height:20,variant:"rounded"})),V.createElement(Vi,null),!r&&V.createElement(It,{size:4})),V.createElement("div",{className:Lg()},V.createElement(Vl,null,V.createElement(lt,{width:60,height:10,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(lt,{width:60,height:10,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(lt,{width:60,height:10,variant:"rounded"})),r&&V.createElement(lt,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(bg,null,V.createElement(lt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(xg,null,V.createElement(Eg,null,V.createElement(Mg,{loading:!0,size:"medium"}),V.createElement(It,{direction:"horizontal",size:4}),V.createElement(lt,{height:15,width:150,variant:"rounded"})),V.createElement(It,{size:10}),V.createElement(lt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(It,{size:4}),V.createElement(Wg,null,n,V.createElement(Ag,null),n),V.createElement(It,{size:12})))}i(Cr,"QuoteSummarySkeleton");import{ChainToken as Fg,Divider as jl,NextIcon as Rb,Skeleton as ra}from"@rango-dev/ui";import We from"react";import{styled as Tr}from"@rango-dev/ui";var Pg=Tr("div",{display:"flex",alignItems:"start"}),_g=Tr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Kl=Tr("div",{display:"flex",alignItems:"center",flexGrow:1}),Dg=Tr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),$g=Tr("div",{display:"flex",alignItems:"center"});function Dt(t){let{separator:e=!0}=t;return We.createElement(We.Fragment,null,We.createElement($g,null,We.createElement(ra,{height:22,width:22,variant:"circular"}),We.createElement(jl,{direction:"horizontal",size:8}),We.createElement(ra,{height:15,width:148,variant:"rounded"})),We.createElement(Pg,null,We.createElement(vg,{hideSeparator:!e}),We.createElement(_g,{extraSpace:e},We.createElement(Kl,null,We.createElement(Fg,{size:"small",loading:!0}),We.createElement(jl,{direction:"horizontal",size:8}),We.createElement(ra,{height:12,variant:"rounded"})),We.createElement(Dg,null,We.createElement(Rb,{color:"gray",size:16})),We.createElement(Kl,null,We.createElement(Fg,{size:"small",loading:!0}),We.createElement(jl,{direction:"horizontal",size:8}),We.createElement(ra,{height:12,variant:"rounded"})))))}i(Dt,"StepSkeleton");function kr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Rt.createElement(Tg,{expanded:o,rounded:e!=="basic"},Rt.createElement(Cr,{type:e,tagHidden:n}),Rt.createElement(kg,null,Rt.createElement(tx,{height:15,variant:"rounded"})),o&&Rt.createElement(wg,null,Rt.createElement(ex,{size:24}),Rt.createElement(Dt,null),Rt.createElement(Dt,null),Rt.createElement(Dt,{separator:!1})))}i(kr,"QuoteSkeleton");function Go(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:d,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:m,inputUsdValue:y}=z()(),S=e?.outputAmount?new ox(e?.outputAmount):null,C=e?yt(e):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?ia.createElement(Ll,null,ia.createElement(kr,{tagHidden:c,type:o,expanded:s})):v?ia.createElement(Ll,{onClick:()=>l?.(e),id:d},ia.createElement(Gl,{quote:e,error:r,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:h,input:{value:m,usdValue:y?.toString()??""},output:{value:S?.toString()??"",usdValue:C?.toString()??""}})):null}i(Go,"QuoteInfo");import{warn as ax}from"@rango-dev/logging-core";import{calculatePendingSwap as sx}from"@rango-dev/queue-manager-rango-preset";import{useEffect as lx}from"react";import{useRef as nx,useState as rx}from"react";var ix=2e3;function aa({request:t}){let[e,o]=rx(!1),n=nx(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,ix)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(c,{signal:n.current.signal});return n.current=null,p}catch(p){if(l)return await a(c);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(aa,"useFetch");function Og(){let{fetch:t,loading:e,cancelFetch:o}=aa({request:async(n,r)=>await at().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Og,"useFetchConfirmQuote");function sa(t){if(!t.swaps)throw new Error(re().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Xl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(sa,"throwErrorIfResponseIsNotValid");function Xl(t){if(Ld(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=Md(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=$d(t);if(o){let n=vi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Xl,"getQuoteError");function Ug(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=Cn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=Ud(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(Ug,"generateWarnings");function la(t){return t?.code==="ERR_CANCELED"?{type:2}:t.cause?t.cause:t?.code==="ERR_BAD_REQUEST"?{type:0,diagnosisMessage:t.response.data.error}:{type:1,diagnosisMessage:t.message}}i(la,"handleQuoteErrors");function Yl(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=z()(),{slippage:l,customSlippage:p}=T(),u=T().getDisabledLiquiditySources(),d=T().blockchains(),f=T().tokens(),{findToken:h}=T(),{swapMode:g}=et(),m=p||l,{fetch:y,cancelFetch:S,loading:C}=Og();return lx(()=>S,[]),{loading:C,fetch:i(async v=>{let w=v.selectedWallets,I=v?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=w.reduce((E,x)=>(E[x.chain]=x.address,E),{}),b={requestId:a?.requestId||"",selectedWallets:A,destination:I||void 0};try{return await y(b,!0).then(E=>{let{result:x}=E;if(!x)throw new Error(E.error??"Error fetching updated quote");sa({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 P={slippage:m.toString(),disabledSwappersGroups:u},U=Ug({previousQuote:a??void 0,currentQuote:W,meta:{blockchains:d},selectedWallets:w,userSlippage:m,inputUsdValue:n,findToken:h});c();let G=!!U.balance,K=sx({inputAmount:o.toString(),bestRoute:x,wallets:Od(w),settings:P,validateBalanceOrFee:!G,meta:{blockchains:d,tokens:f},swapMode:g});return{quote:W,swap:K,error:null,warnings:U}})}catch(E){let x=la(E);return x.type!==2&&ax(new Error("confirm swap error"),{tags:{...x,type:Xe[x.type],initialQuote:a,requestBody:b}}),{swap:null,error:x,warnings:null}}},"fetch"),cancelFetch:S}}i(Yl,"useConfirmSwap");var Sx=dx("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${zg}`]:{width:"$48",height:"$48"}}),Cx=Rl({flexGrow:1,paddingRight:"$10"}),Tx=Rl({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),kx=Rl({display:"flex",justifyContent:"space-between",alignItems:"center"});function Hg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=z()(),s=yx(),[c,l]=wr(""),p=!n,[u,d]=wr(!1),[f,h]=wr(!1),{isActiveTab:g}=oe(),m=T().getDisabledLiquiditySources(),y=hx(m),{manager:S}=cx(),{fetch:C,loading:k,cancelFetch:v}=Yl(),[w,I]=wr({swap:null,error:null,warnings:null}),[A,b]=wr(!1),E=i(async({selectedWallets:B,customDestination:R})=>{let Y=await C?.({selectedWallets:B,customDestination:R});return I(Y),Y},"onConfirmSwap"),x=i(async()=>{if(w.swap&&n)try{await S?.create("swap",{swapDetails:w.swap},{id:w.swap.requestId});let B=`../${D.swaps}/${w.swap.requestId}`;s(B,{replace:!0}),setTimeout(()=>{e("")},0)}catch(B){l("Error: "+B?.message)}},"addNewSwap"),W=i(async()=>{h(!0),await x(),h(!1)},"onConfirm"),P=i(async()=>{w.warnings?.quote&&bd(w.warnings.quote)&&!a?b(!0):await W()},"onStartConfirmSwap"),U=i(async()=>{I({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(B=>{I(B)}).catch(B=>console.error(B))},"onRefresh");ca(()=>{!!y.current.length&&!m.length&&U(),y.current=m},[m.length]),ca(()=>{p&&v()},[p]),ca(()=>{p&&d(p)},[p]),ca(()=>{p||C({selectedWallets:o,customDestination:r}).then(B=>I(B)).catch(B=>console.error(B))},[]),gx(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let G=w.warnings?.quote??null,K=w.error,J=[];if(c&&J.push(De.createElement(px,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),G||K){let B=`../${D.settings}`;J.push(De.createElement(gr,{warning:G,error:K,couldChangeSettings:!1,refetchQuote:U,skipAlerts:K?.type===4||G?.type===2,showWarningModal:A,confirmationDisabled:!g,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await x()},onChangeSettings:()=>s(B)}))}return De.createElement(ae,{header:{title:Zl.t("Confirm Swap"),onWallet:()=>{let B=`../${D.wallets}`;s(B)}},footer:De.createElement(Sx,null,De.createElement("div",{className:Cx()},De.createElement(ux,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!w.error||!g,onClick:P},Zl.t("Start Swap"))),De.createElement(zg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:d.bind(null,!0)},De.createElement(fx,{size:24})))},u&&De.createElement(vf,{open:u,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:E}),De.createElement(ce,null,De.createElement("div",{className:kx()},De.createElement(mx,{variant:"title",size:"small"},Zl.t("You get")),De.createElement("div",{className:Tx()},De.createElement(Wi,{onClick:!k&&!u&&!A?U:void 0}))),De.createElement(Jl,{size:"12"}),ym(J.map((B,R)=>({element:B,key:`alert-${R}`})),De.createElement(Jl,{size:10})),J.length>0?De.createElement(Jl,{size:10}):null,De.createElement(Go,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:w.error,loading:k,warning:w.warnings?.quote??null})))}i(Hg,"ConfirmSwapPage");import{i18n as to}from"@lingui/core";import{Button as uc,CustomTokensZeroStateDarkIcon as zx,CustomTokensZeroStateIcon as Hx,DeleteIcon as Qx,Divider as Ir,IconButton as qx,MessageBox as Gx,NotFound as Vx,styled as mc}from"@rango-dev/ui";import ge,{useState as dc}from"react";import{useNavigate as Kx}from"react-router-dom";import{CloseIcon as wx,IconButton as vx,SearchIcon as bx,TextField as xx}from"@rango-dev/ui";import Ln from"react";import{styled as Qg}from"@rango-dev/ui";var qg=Qg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),Gg=Qg("div",{width:"100%","& ._text-field":{paddingLeft:"$10","& input":{paddingLeft:"$2",paddingTop:"$12",paddingBottom:"$12"}}});function At(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...d}=t,f=s.length?Ln.createElement(vx,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},Ln.createElement(wx,{color:"gray",size:10})):null;return p&&(f=p),Ln.createElement(Gg,null,Ln.createElement(xx,{prefix:Ln.createElement(qg,null,Ln.createElement(bx,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d}))}i(At,"SearchInput");import{i18n as pc}from"@lingui/core";import{Button as Nx,CustomTokenWarning as Bx,darkTheme as nh,Divider as eo,ExternalLinkIcon as Wx,Image as Lx,ListItem as Mx,NotFound as Px,PinIcon as _x,Skeleton as Vo,Typography as xr,VirtualizedList as Dx}from"@rango-dev/ui";import L,{useState as $x}from"react";import{useTranslation as Fx}from"react-i18next";import{Divider as th,ListItem as Ax,Skeleton as br}from"@rango-dev/ui";import Nt from"react";import{css as Mn,darkTheme as ec,ImageContainer as Ex,ListItemButton as Ix,styled as ot,Typography as Vg}from"@rango-dev/ui";var tc=Mn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),oc=Mn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),nc=Mn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),rc=Mn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ec} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),ic=Mn({}),ac=Mn(),Kg=ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),sc=ot("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),pa=ot("ul",{flexGrow:1,height:"100%",padding:0,margin:0,display:"flex",flexDirection:"column",listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${oc}`]:{[`& .${rc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${ic}`]:{bottom:"-15px"},[`& .${tc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${nc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),jg=ot(Ix,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),lc=ot("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),cc=ot(Vg,{}),Xg=ot("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${ac}`]:{$$color:"$colors$neutral600",[`.${ec} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),vr=ot("div",{display:"flex",alignItems:"end",flexDirection:"column"}),LG=ot("div",{display:"flex",alignItems:"center"}),Yg=ot("div",{position:"relative",[`& ${Ex}`]:{borderRadius:"$xm",overflow:"hidden"}}),Zg=ot("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Jg=ot(Vg,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Rg=ot("a",{"& svg:hover":{color:"$colors$info"}}),eh=ot("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${ec} &`]:{color:"$foreground"}}}});function oh(t){return Nt.createElement(pa,null,Array.from(Array(t.size),e=>Nt.createElement(Ax,{key:e,hasDivider:!0,start:Nt.createElement(br,{variant:"circular",width:35,height:35}),end:Nt.createElement(vr,null,Nt.createElement(br,{variant:"text",size:"large",width:70}),Nt.createElement(th,{size:4}),Nt.createElement(br,{variant:"text",size:"medium",width:50})),title:Nt.createElement("div",null,Nt.createElement(br,{variant:"text",size:"large",width:90}),Nt.createElement(th,{size:4}),Nt.createElement(br,{variant:"text",size:"medium",width:90}))})))}i(oh,"LoadingTokenList");var Ox=20,Ux=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return L.createElement("div",{className:oc()},o?L.createElement("div",{className:tc()},o):L.createElement(sc,{className:nc()},L.createElement(xr,{variant:"title",size:"xmedium"},r.symbol),L.createElement(eo,{direction:"horizontal",size:4}),L.createElement(lc,{css:a},L.createElement(cc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&L.createElement("div",{className:`${rc()} ${!o&&ic()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",L.createElement(eo,{size:4,direction:"horizontal"}),L.createElement(Rg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},L.createElement(Wx,{size:12}))))},"renderDesc");function Er(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=T().fetchStatus,u=T().blockchains(),{getBalanceFor:d,fetchingWallets:f}=T(),{isTokenPinned:h}=T(),{setFromToken:g,setToToken:m}=z()(),{t:y}=Fx(),S=Qe(),[C,k]=$x(null),v=i(()=>{c==="source"?g({token:C,meta:{blockchains:u}}):m({token:C,meta:{blockchains:u}})},"updateToken"),w=i(()=>{v(),S()},"handleImportToken"),I=i(E=>{if(E.customToken){let{customToken:W,...P}=E;return L.createElement(Nx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(G=>{G.stopPropagation(),k({...P,warning:!0})},"handleClick")},L.createElement(xr,{variant:"body",size:"xsmall",color:"background"},y("import")))}let x=ri(d(E));return s?s(E):f?L.createElement(vr,null,L.createElement(Vo,{variant:"text",size:"large",width:70}),L.createElement(eo,{size:4}),L.createElement(Vo,{variant:"text",size:"medium",width:50})):x&&L.createElement(Xg,null,L.createElement(Jg,{variant:"title",size:"small"},x.amount),L.createElement("div",null),x.usdValue&&L.createElement(xr,{variant:"body",className:ac(),size:"xsmall"},`$${x.usdValue}`))},"endRenderer"),A=i(()=>L.createElement(Dx,{style:{flexGrow:1,minHeight:0},itemContent:E=>{let x=e[E];if(x==="skeleton")return L.createElement(Mx,{hasDivider:!0,start:L.createElement(Vo,{variant:"circular",width:35,height:35}),end:L.createElement(vr,null,L.createElement(Vo,{variant:"text",size:"large",width:70}),L.createElement(eo,{size:4}),L.createElement(Vo,{variant:"text",size:"medium",width:50})),title:L.createElement("div",null,L.createElement(Vo,{variant:"text",size:"large",width:90}),L.createElement(eo,{size:4}),L.createElement(Vo,{variant:"text",size:"medium",width:90}))});let W=u.find(B=>B.name===x?.blockchain);if(!W||!x)return null;let P=x.address,U=Js(W.color,"main"),G={$$color:U.main150,[`.${nh} &`]:{$$color:U.main750},backgroundColor:"$$color"},K={$$color:U.main750,[`.${nh} &`]:{$$color:U.main150},color:"$$color"},J=i(()=>{typeof x!="string"&&!x.customToken&&n?.(x)},"handleClick");return L.createElement(eh,null,L.createElement(jg,{"tab-index":E,key:`${x.symbol}${P}`,id:`${x.symbol}${P}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:x?.customToken,onClick:J,start:L.createElement(Yg,null,L.createElement(Lx,{src:x.image===""?Zr:x.image,size:30}),t.type!=="custom-token"&&x&&h(x,t.type)&&L.createElement(Zg,null,L.createElement(_x,{size:12,color:"gray"}))),title:x.name||!x.name&&!P?L.createElement(sc,null,L.createElement(xr,{variant:"title",size:"xmedium"},x.symbol),L.createElement(eo,{direction:"horizontal",size:4}),L.createElement(lc,{css:G},L.createElement(cc,{variant:"body",size:"xsmall",css:K},x.blockchain)),l&&x.warning&&L.createElement(L.Fragment,null,L.createElement(eo,{direction:"horizontal",size:4}),L.createElement(Bx,{container:N()}))):void 0,description:typeof x!="string"&&W.info&&P?Ux({address:P,token:x,customCssForTag:G,customCssForTagTitle:K,name:x.name,url:W.info.addressUrl.split("{wallet}").join(P)}):x.name||void 0,end:I(x)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),b=C?Ao(C?.blockchain,u):null;return L.createElement(L.Fragment,null,a&&L.createElement(L.Fragment,null,L.createElement(xr,{variant:"label",size:"large"},pc.t("Select Token")),L.createElement(eo,{size:4})),L.createElement(Kg,null,L.createElement(eo,{size:4}),p==="loading"&&L.createElement(oh,{size:Ox}),p==="success"&&(e.length?L.createElement(L.Fragment,null,L.createElement(ur,{token:C,address:C?.address??"",blockchain:b??void 0,onImport:w,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),L.createElement(pa,{as:"ul"},A())):!!o&&L.createElement(Px,{title:pc.t("No results found"),description:pc.t("Try using different keywords")}))))}i(Er,"TokenList");var jx=mc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Xx=mc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Yx=mc(qx,{"&:hover":{"& svg":{color:"$secondary550"}}});function rh(){let[t,e]=dc(""),{deleteCustomToken:o}=T(),n=T().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=z()(),{mode:l}=uo({}),p=Kx(),[u,d]=dc(!1),[f,h]=dc(),g=i(C=>{let k=C.target.value;e(k)},"handleSearch"),m=l==="dark",y=n.filter(C=>rt(C.symbol,t)||rt(C.address||"",t)||rt(C.name||"",t)),S=i(()=>{if(f){let C=a?gt(a):null,k=r?gt(r):null,v=gt(f);C===v?c({token:null}):k===v&&s({token:null}),o(f)}d(!1)},"handleDeleteCustomToken");return ge.createElement(ae,{header:{title:to.t("Custom Tokens")}},ge.createElement(ce,null,ge.createElement(jx,null,n.length?ge.createElement(ge.Fragment,null,ge.createElement(At,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:to.t("Search Token"),onChange:g}),ge.createElement(Ir,{size:16}),ge.createElement(Er,{list:y,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>ge.createElement(Yx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(C)}},ge.createElement(Qx,{size:12,color:"gray"}))})):ge.createElement(Xx,null,ge.createElement(Vx,{icon:m?ge.createElement(zx,{size:200}):ge.createElement(Hx,{size:200}),title:to.t("No custom tokens"),description:to.t("press the button to add your custom token")})),ge.createElement(Ir,{size:20}),ge.createElement(uc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(D.addCustomTokens)},to.t("Add Custom Token"))),ge.createElement(ne,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:N()},ge.createElement(Gx,{title:to.t("Delete Custom Token"),type:"error",description:to.t("Are you sure you want to Delete this Token?")},ge.createElement(Ir,{size:40}),ge.createElement(Ir,{size:10}),ge.createElement(uc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},to.t("Yes, Delete it")),ge.createElement(Ir,{size:12}),ge.createElement(uc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},to.t("No, Continue"))))))}i(rh,"CustomTokensPage");import{i18n as $e}from"@lingui/core";import{useManager as hE}from"@rango-dev/queue-manager-react";import{Button as Tc,darkTheme as yE,Divider as Co,MessageBox as SE,NotFound as CE,styled as kc,Tabs as TE,Typography as ma}from"@rango-dev/ui";import{TransactionStatus as Br}from"rango-types";import te,{useMemo as vh,useState as Wr}from"react";import{useNavigate as kE}from"react-router-dom";import{FilterIcon as nE,Popover as rE}from"@rango-dev/ui";import Ko from"react";import{css as Zx,darkTheme as ua,IconButton as Jx,styled as Ar}from"@rango-dev/ui";var fc=Ar("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ua} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),ih=Ar(Jx,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ua} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ua} &`]:{backgroundColor:"$neutral"},[`& ${fc}::before`]:{backgroundColor:"$secondary100",[`.${ua} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),ah=Ar("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),sh=Ar("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),lh=Zx({display:"flex",justifyContent:"space-between",alignItems:"center"}),ch=Ar("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as ph}from"@lingui/core";import{Button as Rx,Divider as uh,ListItemButton as eE,Radio as tE,RadioRoot as oE,Typography as dh}from"@rango-dev/ui";import ct from"react";function mh(t){let{filterBy:e,onClickItem:o}=t;return ct.createElement(sh,null,ct.createElement("div",{className:lh()},ct.createElement(dh,{size:"small",variant:"body"},ph.t("Status")),ct.createElement(Rx,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},ph.t("Reset"))),ct.createElement(uh,{size:10}),ct.createElement(oE,{value:e},ct.createElement(ch,null,t.list.map((n,r)=>ct.createElement(eE,{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:ct.createElement(ct.Fragment,null,ct.createElement(uh,{direction:"horizontal",size:4}),ct.createElement(dh,{size:"medium",variant:"body"},n.title)),start:ct.createElement(tE,{value:n.id}),onClick:o})))))}i(mh,"FilterSelectorContent");function gc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Ko.createElement("div",null,Ko.createElement(rE,{open:a,align:"end",onOpenChange:o,container:N(),content:Ko.createElement(mh,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Ko.createElement(ih,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Ko.createElement(fc,{isSelect:!!n},Ko.createElement(nE,{size:16,color:"black"}),!!n&&Ko.createElement(ah,null)))))}i(gc,"FilterSelector");import{i18n as sE}from"@lingui/core";import{getCurrentStep as lE}from"@rango-dev/queue-manager-rango-preset";import{Divider as Sh,GroupedVirtualizedList as cE,Skeleton as pE,SwapListItem as Ch,Typography as uE}from"@rango-dev/ui";import Ye,{useCallback as Th,useEffect as dE,useRef as mE,useState as fE}from"react";function fh(t,e){let o=[],n=0;do{let r=t[n];r&&(o.push(Math.min(r,e)),e-=r),n++}while(e>0&&n<=t.length);return o}i(fh,"calculateGroupsSoFar");import{css as iE,darkTheme as aE,styled as Nr}from"@rango-dev/ui";var hc=iE(),gh=Nr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),yc=Nr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${hc}`]:{$$color:"$colors$neutral600",[`.${aE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Sc=Nr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),hh=Nr("div",{gap:"$10",display:"flex",flexDirection:"column"}),yh=Nr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var gE=10;function Cc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=fE([]),c=mE(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=Th(fh,[]),f=Th(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,gE),s(d(p,c.current)))},[e.length]);if(dE(()=>{r||f()},[r,f]),r){let h=[1,2];return Ye.createElement(Ye.Fragment,null,[h,h].map((m,y)=>Ye.createElement(yc,{key:y},Ye.createElement(Sc,null,Ye.createElement(pE,{variant:"text",width:60,size:"small"}),Ye.createElement(Sh,{size:16})),Ye.createElement(Sh,{size:4}),Ye.createElement(hh,null,m.map((C,k)=>Ye.createElement(Ch,{isLoading:!0,key:k}))))))}return Ye.createElement(cE,{style:{flexGrow:1,minHeight:0},endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>Ye.createElement(yc,null,Ye.createElement(Sc,null,Ye.createElement(uE,{variant:"label",size:"medium",className:hc()},u[h]))),itemContent:(h,g)=>{let m=l[h];if(!m)return null;let y=lE(m),S=m.steps[0],C=m.steps[m.steps.length-1];return!S||!C?null:Ye.createElement(gh,{key:m.requestId},Ye.createElement(Ch,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:y,tooltipContainer:N(),onlyShowTime:u[g]===sE.t("Today"),swapTokenData:{from:{token:{image:S.fromLogo,displayName:S.fromSymbol},blockchain:{image:S.fromBlockchainLogo||""},amount:M(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:M(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(Cc,"HistoryGroupedList");import{i18n as da}from"@lingui/core";import kh from"dayjs";var wh=i(t=>{let e=new Map([["today",{title:da.t("Today"),swaps:[]}],["week",{title:da.t("This week"),swaps:[]}],["month",{title:da.t("This month"),swaps:[]}],["year",{title:da.t("This year"),swaps:[]}]]);function o(l,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}i(o,"addYearsToOutput");let n=kh();t.forEach(l=>{let p=Number(l.creationTime),u=kh(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 wE=kc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%",minHeight:0,flexGrow:1}),vE=kc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),bE=kc("div",{"._typography":{color:"$neutral700",[`.${yE}&`]:{color:"$neutral900"}}}),xE=i((t,e)=>t?.length?t.filter(o=>Lt(o.fromBlockchain,e)||Lt(o.toBlockchain,e)||Lt(o.toSymbol,e)||Lt(o.fromSymbol,e)).length:!1,"isStepContainsText");function bh(){let t=kE(),{manager:e,state:o}=hE(),n=Ct(e).map(({swap:b})=>b),[r,a]=Wr(""),[s,c]=Wr(!1),l=!o.loadedFromPersistor,[p,u]=Wr(""),[d,f]=Wr(!1),[h,g]=Wr("all"),m=i(b=>{let E=b.target.value;a(E)},"handleSearch"),{isMultiMode:y}=et(),S=[{id:Br.SUCCESS,title:$e.t("Complete")},{id:Br.RUNNING,title:$e.t("Running")},{id:Br.FAILED,title:$e.t("Failed")}],C=[{id:"all",title:$e.t("All")},{id:"swap",title:$e.t("Swap")},{id:"refuel",title:$e.t("Refuel")}],k=vh(()=>!r&&!p&&h==="all"?n:n.filter(b=>{let{inputAmount:E,status:x,steps:W,requestId:P,mode:U}=b;return(!r||Lt(E,r)||Lt(x,r)||xE(W,r)||Lt(P,r))&&(!p||p===x)&&(h==="all"?!0:h==="swap"?!U||U==="swap":h==="refuel"?U==="refuel":!1)}),[n,r,p,h]),v=!k?.length&&!l,w=i(()=>f(!1),"onCloseModal"),I=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(b){console.log(b)}},"onClear"),A=vh(()=>!n.some(b=>b.status===Br.SUCCESS||b.status===Br.FAILED),[n]);return te.createElement(ae,{header:{title:$e.t("History"),suffix:te.createElement(mo,null,te.createElement(Tc,{id:"widget-history-clear-btn",disabled:A,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},te.createElement(ma,{size:"medium",variant:"label",color:"error"},$e.t("Clear"))))}},te.createElement(ce,null,te.createElement(vE,null,te.createElement(At,{setValue:a,fullWidth:!0,variant:"contained",placeholder:$e.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:m,style:{height:36},value:r}),te.createElement(Co,{size:10,direction:"horizontal"}),te.createElement(gc,{filterBy:p,open:s,onOpenChange:b=>c(b),onClickItem:b=>u(b),list:S})),te.createElement(Co,{size:"16"}),y&&!l&&te.createElement(te.Fragment,null,te.createElement(TE,{items:C,onChange:b=>g(b.id),value:h,type:"secondary"}),te.createElement(Co,{size:"12"})),te.createElement(wE,null,v&&te.createElement(yh,null,te.createElement(Co,{size:32}),te.createElement(CE,{title:r?$e.t("No results found"):$e.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?$e.t("Try using different keywords"):$e.t("Your transaction history is stored locally and will appear here after you start a swap")})),!v&&te.createElement(Cc,{list:k,onSwapClick:t,groupBy:wh,isLoading:l}))),te.createElement(ne,{open:d,onClose:w,id:"widget-history-clear-modal",container:N()},te.createElement(Co,{size:20}),te.createElement(SE,{type:"warning",title:$e.t("Clear Transaction History"),description:te.createElement(bE,null,te.createElement(ma,{variant:"body",size:"medium"},$e.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),te.createElement(Co,{size:"24"}),te.createElement(ma,{variant:"body",size:"small"},$e.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),te.createElement(Co,{size:30}),te.createElement(Tc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:I},$e.t("Yes, Clear the history")),te.createElement(Co,{size:10}),te.createElement(Tc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:w},te.createElement(ma,{variant:"title",size:"medium",color:"primary"},$e.t("No, Cancel")))))}i(bh,"HistoryPage");import{i18n as ey}from"@lingui/core";import{Button as sI,Divider as _c,styled as lI,WarningIcon as cI}from"@rango-dev/ui";import pI from"bignumber.js";import Se,{useEffect as ty,useState as oy}from"react";import{useNavigate as uI}from"react-router-dom";import{i18n as Eh}from"@lingui/core";import{Alert as IE,Divider as wc,NoRouteIcon as AE,Typography as NE}from"@rango-dev/ui";import jo from"react";import{styled as EE}from"@rango-dev/ui";var xh=EE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function vc(){let{fromToken:t,toToken:e}=z()();return!!t&&!!e&&Qt(t,e)?jo.createElement(xh,null,jo.createElement(wc,{size:10}),jo.createElement(AE,{size:24,color:"gray"}),jo.createElement(wc,{size:4}),jo.createElement(NE,{variant:"title",size:"small"},Eh.t("No Routes Found")),jo.createElement(wc,{size:4}),jo.createElement(IE,{title:Eh.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(vc,"SameTokensWarning");import{Alert as BE,Button as WE}from"@rango-dev/ui";import Ah from"react";import{i18n as fa}from"@lingui/core";function Ih(t){let e=null;return t===li?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:fa.t("Reset"),title:fa.t("Slippage cannot be set lower than 0.01%.")},e):t>sn?(e={alertType:"warning",action:"change-settings",actionButtonTitle:fa.t("Change"),title:fa.t("Caution, your slippage is high!")},e):null}i(Ih,"makeAlerts");function Nh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=T(),{onChangeSettings:a}=t,c=Ih(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(si),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Ah.createElement(BE,{title:c.title,type:c.alertType,variant:"alarm",action:Ah.createElement(WE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(Nh,"SlippageWarningsAndErrors");import{i18n as DE}from"@lingui/core";import{IconButton as $E,ReverseIcon as FE,Skeleton as OE,Tooltip as UE,Typography as Lr}from"@rango-dev/ui";import pt from"react";import ga from"bignumber.js";function Wh(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(Wh,"getSlippageColor");function Lh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new ga(e),r=new ga(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(Lh,"getUsdExchangeRate");function Mh(t,e){let o=new ga(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,ga.ROUND_DOWN).toFormat(2)}`}i(Mh,"formatTokenValueInUsd");import{darkTheme as PE,styled as xc,Typography as _E}from"@rango-dev/ui";var Ph=xc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),_h=xc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${PE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Ec=xc(_E,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Ic(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=T(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:f}=uo({}),h=pn(d),g=f==="dark",m=n==="default",y={quoteError:a,slippageError:h?.type==="error"?h.message:null},S={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,w=m?k:C,I=Number(m?p?.outputAmount:p?.requestAmount),A=Number(m?p?.requestAmount:p?.outputAmount),b=I||v.usdPrice,E=A||w.usdPrice,{rawValue:x,displayValue:W}=Lh({toTokenUsdPrice:E,fromTokenUsdPrice:b});return pt.createElement(Ph,null,pt.createElement(Lr,{variant:y||S?"label":"body",size:y||S?"medium":"small",color:Wh({error:y,warning:S,isDarkTheme:g})},DE.t("Slippage:")," ",d,"%"),u?pt.createElement(OE,{height:16,width:104,variant:"rounded"}):b&&E&&pt.createElement(_h,null,pt.createElement(Lr,{className:"rate-text",variant:"body",size:"small"},"1"),pt.createElement(Ec,{className:"rate-text",variant:"body",size:"small"},w.symbol),pt.createElement($E,{id:"widget-home-page-change-rate-button",onClick:r},pt.createElement(FE,{size:14,color:"secondary"})),pt.createElement(UE,{container:N(),side:"top",sideOffset:4,content:pt.createElement(Lr,{className:"rate-text",variant:"body",size:"small"},x)},pt.createElement(Lr,{className:"rate-text",variant:"body",size:"small"},W)),pt.createElement(Ec,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&pt.createElement(Lr,{color:"neutral600",variant:"body",size:"small"},"~",Mh(Number(x),v.usdPrice))))}i(Ic,"SwapMetrics");import{i18n as VE}from"@lingui/core";import{Header as KE}from"@rango-dev/ui";import To,{useEffect as jE,useState as XE}from"react";import{i18n as HE}from"@lingui/core";import{Divider as Nc,FullExpandedQuote as QE,Typography as qE}from"@rango-dev/ui";import we from"react";import{styled as Ac}from"@rango-dev/ui";var Dh=Ac("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),$h=Ac("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Fh=Ac("div",{width:"146px"});import{i18n as Mr}from"@lingui/core";import{Select as zE}from"@rango-dev/ui";import Oh from"react";function ha(t){let{updateQuotePartialState:e,sortStrategy:o}=z()(),n=[{value:"SMART",label:Mr.t("Smart Routing")},{value:"FEE",label:Mr.t("Lowest Fee")},{value:"SPEED",label:Mr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Mr.t("Maximum Return")},{value:"PRICE",label:Mr.t("Maximum Output")}];return Oh.createElement(Fh,null,Oh.createElement(zE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ha,"SelectStrategy");var Uh=3;function Pr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:d,toToken:f,sortStrategy:h,error:g}=z()(),{slippage:m,customSlippage:y}=T(),{findToken:S}=T(),C=c||N(),k=!!p&&p.results.length,v=y??m,{config:{__UNSTABLE_OR_INTERNAL__:w}}=T(),I=i(E=>{if(!d||!f||!p)return null;let x={requestAmount:p.requestAmount,validationStatus:null,...E};return Cn({currentQuote:x,userSlippage:v,findToken:S})},"getQuoteWarning"),A=g?.type===0||g?.type===1,b=p?.results?ki(h,p?.results):[];return we.createElement(we.Fragment,null,a&&we.createElement(we.Fragment,null,we.createElement($h,null,we.createElement(qE,{size:"xmedium",variant:"title"},HE.t("Sort by")),we.createElement(ha,{container:C})),we.createElement(Nc,{size:"10"})),e&&Array.from({length:Uh},(E,x)=>we.createElement(we.Fragment,{key:x},s?we.createElement(QE,{campaignTag:w?.campaignTag,loading:!0}):we.createElement(kr,{tagHidden:!1,type:"list-item",expanded:!1}),x!==Uh-1&&we.createElement(Nc,{size:16}))),!e&&we.createElement(we.Fragment,null,k?b.map((E,x)=>{let W=I(E),P=Xl(E.swaps),U=b.length-1===x;return we.createElement(we.Fragment,{key:E.requestId},we.createElement(Go,{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:P?.options||null,warning:W,fullExpandedMode:s,onClick:G=>{P||u("warning",W),u("error",P?.options||null),o(G)},type:"list-item"}),!U&&we.createElement(Nc,{size:16}))}):A&&we.createElement(Dh,null,we.createElement(mr,{size:s?"large":"small",error:g,fetch:n}))))}i(Pr,"Quotes");import{darkTheme as GE,styled as zh}from"@rango-dev/ui";var Hh=zh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${GE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Qh=zh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var YE=100;function Bc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=XE(!1),l=s?"":"is-hidden",{config:p}=T(),u=p?.variant==="full-expanded",d=Bo();return jE(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},YE):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),To.createElement(Hh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${_i()} widget-expanded-quotes-container`,id:ht.EXPANDED_BOX_ID},To.createElement(KE,{title:VE.t("Routes"),suffix:To.createElement(To.Fragment,null,To.createElement(ha,{container:d}),To.createElement(Uo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),To.createElement(Qh,null,To.createElement(Pr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:Bo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Bc,"ExpandedQuotes");import{i18n as Yh}from"@lingui/core";import{SwapInput as Zh}from"@rango-dev/ui";import eI from"bignumber.js";import _r from"react";import{ReverseIcon as RE}from"@rango-dev/ui";import Lc from"react";import{keyframes as ZE,styled as qh}from"@rango-dev/ui";var Wc=450,JE=ZE({"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)"}}),Gh=qh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Vh=qh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${JE} ${Wc}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 Mc(){let t=z().use.switchFromAndTo();return Lc.createElement(Gh,null,Lc.createElement(Vh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Wc),t()}},Lc.createElement(RE,{size:12})))}i(Mc,"SwitchFromAndToButton");import{styled as Kh}from"@rango-dev/ui";var jh=Kh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Xh=Kh("div",{position:"relative"});function Pc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:d,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:m}=z()(),{swapMode:y}=et(),{connectedWallets:S,getBalanceFor:C}=T(),k=a?C(a):null,v=ri(k)?.amount??"0",w=k?new eI(k.amount).shiftedBy(-k.decimals):pe,I=!!s&&ku(S,s.name),A=!_s(m,d,f),b=!_s(m,d,g),E=!f||!g||!g.gt(0)?null:Kt(f.toString(),g.toString());return _r.createElement(jh,null,_r.createElement(Xh,null,_r.createElement(Zh,{label:Yh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:v,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:A?void 0:M(f,4,4),realUsdValue:A?void 0:f?.toString(),error:A?re().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:I,tooltipContainer:N(),onSelectMaxBalance:()=>{let x=w.isGreaterThan(pe)?w.toFixed():"";p(x)},anyWalletConnected:S.length>0}),y==="swap"&&_r.createElement(Mc,null)),_r.createElement(Zh,{selectionType:y==="swap"?"token":"chain",sharpBottomStyle:!r&&(!!m||e),label:Yh.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:M(Kt(f,g),2,2),warningLevel:jt(E??0),price:{value:M(h,6,6),usdValue:b?void 0:M(g,4,4),realValue:h?.toString(),realUsdValue:b?void 0:g?.toString(),error:b?re().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(Pc,"Inputs");import{warn as tI}from"@rango-dev/logging-core";import{useCallback as oI,useEffect as nI,useRef as rI,useState as iI}from"react";function Jh(){let{fetch:t,loading:e,cancelFetch:o}=aa({request:async(n,r)=>await at().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Jh,"useFetchAllQuotes");var aI=600;function ya({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Jh(),{excludeLiquiditySources:n,routing:r}=T().config,{connectedWallets:a}=T(),c=a.some(be=>be.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:f,sortStrategy:h,resetQuote:g,error:m,warning:y,setSelectedQuote:S,updateQuotePartialState:C}=z()(),{slippage:k,customSlippage:v,affiliatePercent:w,affiliateRef:I,affiliateWallets:A,fetchStatus:b}=T(),E=T().getLiquiditySources(),x=T().getDisabledLiquiditySources(),W=T().excludeLiquiditySources(),{findToken:P}=T(),{swapMode:U}=et(),[G,K]=iI(!0),J=rI(u),B=v??k,Y=!l||!p||Qt(l,p)||!qn(u),le=i(be=>{K(be)},"resetState"),ve=i(be=>{let{fromToken:dt,toToken:kt,inputAmount:wt,liquiditySources:F,excludeLiquiditySources:O,disabledLiquiditySources:X,slippage:ee,affiliateRef:j,affiliatePercent:Q,affiliateWallets:Ve}=be;if(G||le(!0),!Y&&dt&&kt){g();let q=Fd({fromToken:dt,toToken:kt,inputAmount:wt,liquiditySources:F,excludeLiquiditySources:O,disabledLiquiditySources:X,wallets:a,slippage:ee,affiliateRef:j,affiliatePercent:Q,affiliateWallets:Ve,contractCall:c});cn("experimental",r)&&(q.experimental=!0),cn("avoidNativeFee",r)&&(q.avoidNativeFee=!0),cn("enableCentralizedSwappers",r)&&(q.enableCentralizedSwappers=!0),r?.maxLength&&(q.maxLength=r.maxLength),U==="refuel"&&(q.maxLength=1),e(q).then(ye=>{let Je=ki(h,ye.results),mt=Ed(f,Je,ye.requestAmount);K(!1),C("quotes",ye),S(mt),sa({diagnosisMessages:ye.diagnosisMessages,requestId:mt?.requestId||"",swaps:mt?.swaps});let ao=mt&&Cn({currentQuote:mt,userSlippage:B,findToken:P});C("warning",ao)}).catch(ye=>{let Je=la(ye);(Je.type===0||Je.type===1)&&g(),Je.type!==2&&(C("error",Je),K(!1),tI(new Error("quote error"),{tags:{...Je,type:Xe[Je.type],requestBody:q}}))})}},"fetch"),Ht=oI(Jr(be=>{ve(be)},aI),[Y]);return nI(()=>{if(!t){K(!1);return}if(b!=="success")return;if(Y){K(!1),(f||m||y)&&g();return}if(!qn(u)&&d?.eq(0)){le(!1),o();return}g(),le(!0);let be=ve;return J.current&&J.current!=u&&(be=Ht),J.current=u,be({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:W,disabledLiquiditySources:x,slippage:B,affiliateRef:I,affiliatePercent:w,affiliateWallets:A,contractCall:c}),o},[b,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,Y,E?.length,n,x.length,B,I,w,c,JSON.stringify(A)]),{fetch:()=>ve({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:W,disabledLiquiditySources:x,slippage:B,affiliateRef:I,affiliatePercent:w,affiliateWallets:A,contractCall:c}),loading:G}}i(ya,"useSwapInput");function Rh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};ke.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Rh,"emitPreventableEvent");var dI=lI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),mI=300;function ny(){let t=uI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:f}=z()(),[h,g]=oy(!1),{isLargeScreen:m,isExtraLargeScreen:y}=Zi(),{fetch:S,loading:C}=ya({refetchQuote:a}),{config:k,fetchStatus:v,connectedWallets:w,customSlippage:I,slippage:A,setSlippage:b,setCustomSlippage:E}=T(),{isActiveTab:x}=oe(),[W,P]=oy(!1),U=I!==null?I:A,{swapMode:G}=et(),K=pn(U),B=Pd({fetchMetaStatus:v,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:w.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),R=Au(m,y,k?.variant),Y=!!n&&!!e&&!!o&&new pI(n).gt(0)&&!Gd(e,o),le=Y&&v==="success"&&C,ve=K?.quoteValidation||c,dt=(!R||R&&l?.results.length)&&(ve||s),kt=!!e&&!!o,wt=kt&&!!K,F=(r||s)&&!W?S:void 0,O=i(Q=>{R&&h?(g(!1),setTimeout(()=>{t(Q)},mI)):t(Q)},"onHandleNavigation"),X=i(Q=>{r?.requestId!==Q.requestId&&(P(!1),p(Q))},"onClickOnQuote"),ee=i(Q=>{if(Q){if(ai.includes(Q)){b(Q),E(null);return}E(Q)}},"onChangeSlippage"),j=i(Q=>{O(Q==="from"?D.fromSwap:G==="swap"?D.toSwap:D.toSwap+"/"+D.blockchains)},"handleInputTokenClick");return ty(()=>{u(),f("refetchQuote",!0)},[]),ty(()=>{g(Y)},[Y]),Se.createElement(dI,null,Se.createElement(ae,{height:"auto",footer:Se.createElement(sI,{id:`widget-swap-${B.action}-btn`,type:"primary",size:"large",disabled:B.disabled||!x,prefix:B.action==="confirm-warning"&&Se.createElement(cI,null),fullWidth:!0,onClick:()=>{B.action==="connect-wallet"?Rh({type:"clickConnectWallet"},()=>O(D.wallets)):B.action==="confirm-warning"?P(!0):O(D.confirmSwap)}},B.title),header:{onWallet:()=>{O(D.wallets)},hasBackButton:!1,title:k.title||(G==="swap"?ey.t("Swap"):ey.t("Refuel")),suffix:Se.createElement(Uo,{hidden:R?["refresh"]:void 0,onClickRefresh:F,onClickHistory:()=>O(D.swaps),onClickSettings:()=>{O(D.settings)}})}},Se.createElement(ce,null,Se.createElement(Pc,{fetchingQuote:le,fetchMetaStatus:v,isExpandable:R,onClickToken:j}),Se.createElement(_c,{size:"2"}),R?null:Se.createElement(Go,{quote:r,loading:le,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:ve,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),O(D.routes)}:void 0}),kt&&Se.createElement(Se.Fragment,null,Se.createElement(_c,{size:8}),Se.createElement(Ic,{quoteError:s,quoteWarning:ve,fromToken:e,toToken:o,quote:r,loading:le})),dt?Se.createElement(Se.Fragment,null,Se.createElement(gr,{warning:ve,error:s,skipAlerts:!!K,couldChangeSettings:!0,refetchQuote:S,showWarningModal:W,confirmationDisabled:!x,onOpenWarningModal:()=>P(!0),onCloseWarningModal:()=>P(!1),onChangeSlippage:ee,onConfirmWarningModal:()=>{P(!1),d(!0),O(D.confirmSwap)},onChangeSettings:()=>O(D.settings)})):null,wt&&Se.createElement(Se.Fragment,null,Se.createElement(_c,{size:"10"}),Se.createElement(Nh,{onChangeSettings:()=>O(D.settings)})),Se.createElement(vc,null))),R?Se.createElement(Bc,{loading:le,onClickOnQuote:X,fetch:S,onClickRefresh:F,isVisible:h}):null)}i(ny,"Home");import{i18n as ry}from"@lingui/core";import{Alert as fI,Divider as gI,List as hI,ListItemButton as yI,Radio as SI,RadioRoot as CI,Typography as TI}from"@rango-dev/ui";import $t from"react";function ko(){let{setLanguage:t,language:e,config:o}=T(),n=_u,r=o?.language||un;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||un),resetLanguage:()=>t(null)}}i(ko,"useLanguage");function iy(){let{activeLanguage:t,changeLanguage:e,languages:o}=ko(),n=Qe(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:$t.createElement(TI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:$t.createElement(SI,{value:s}),start:$t.createElement(l,null)}});return $t.createElement(ae,{header:{title:ry.t("Language")}},$t.createElement(ce,null,$t.createElement(fI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),$t.createElement(gI,{size:"8"}),$t.createElement(CI,{value:t},$t.createElement(hI,{type:$t.createElement(yI,{title:ry.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(iy,"LanguagePage");import{i18n as oo}from"@lingui/core";import{Button as xI,Checkbox as EI,Image as II,ListItemButton as AI,NotFound as NI,Typography as BI}from"@rango-dev/ui";import Ze,{useState as WI}from"react";import{Checkbox as vI,Skeleton as sy}from"@rango-dev/ui";import $r from"react";import{styled as Dc}from"@rango-dev/ui";var Dr=Dc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),$c=Dc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Fc=Dc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as kI,styled as wI}from"@rango-dev/ui";var ay=wI(kI,{height:61});var bI=30;function Oc(){return $r.createElement(Dr,null,Array.from(Array(bI),(t,e)=>$r.createElement(ay,{hasDivider:!0,key:e,start:$r.createElement(sy,{variant:"circular",width:35,height:35}),title:$r.createElement(sy,{variant:"text",size:"large",width:90}),end:$r.createElement(vI,{checked:!1})})))}i(Oc,"LoadingLiquiditySourceList");function Uc({sourceType:t}){let e=T().fetchStatus,o=T().swappers(),n=T().getDisabledLiquiditySources(),[r,a]=WI(""),s=T().toggleLiquiditySource,c=T().isInCampaignMode(),l=ci(o,n),p={Exchanges:oo.t("Exchanges"),Bridges:oo.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(S=>u.includes(S.type)),f=d.length===d.filter(S=>S.selected).length,h=i(()=>{d.forEach(S=>{f?s(S.groupTitle):S.selected||s(S.groupTitle)})},"toggleAllSources"),g=d.map(S=>{let{selected:C,groupTitle:k,logo:v,id:w,...I}=S;return{id:`widget-setting-liquidity-source-${lu(w.toLowerCase())}-item-btn`,start:Ze.createElement(II,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:Ze.createElement(EI,{checked:C,disabled:c}),title:Ze.createElement(BI,{variant:"title",size:"xmedium"},oo.t(k)),selected:C,groupTitle:k,logo:v,...I}}),m=i(S=>{let C=S.target.value;a(C)},"handleSearch"),y=g;return r&&(y=g.filter(S=>Lt(S.groupTitle,r))),Ze.createElement(ae,{header:{title:oo.t(t),suffix:Ze.createElement($c,null,Ze.createElement(xI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},f?oo.t("Deselect all"):oo.t("Select all")))}},Ze.createElement(ce,{view:!0},Ze.createElement(At,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:oo.t("Search {sourceType}",{sourceType:p[t]}),onChange:m}),e==="loading"&&Ze.createElement(Oc,null),!y.length&&r?Ze.createElement(Fc,null,Ze.createElement(NI,{title:oo.t("No results found"),description:oo.t("Try using different keywords")})):e==="success"&&Ze.createElement(Dr,{disabled:c,className:"widget-liquidity-source-list"},y.map(S=>{let{groupTitle:C,...k}=S;return Ze.createElement(Ze.Fragment,{key:S.id},Ze.createElement(AI,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Uc,"LiquiditySourcePage");import{i18n as LI}from"@lingui/core";import Sa from"react";import{useNavigate as MI}from"react-router-dom";function ly(){let t=MI(),e=Qe(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=z()(),{fetch:c,loading:l}=ya({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${D.settings}`,d=`../${D.wallets}`;return Sa.createElement(ae,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:LI.t("Routes"),suffix:Sa.createElement(Uo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Sa.createElement(ce,null,Sa.createElement(Pr,{fetch:c,loading:l,onClickOnQuote:p})))}i(ly,"RoutesPage");import{i18n as gy}from"@lingui/core";import{Divider as hy,getCategoriesCount as QI,SelectableCategoryList as qI}from"@rango-dev/ui";import no,{useMemo as GI,useState as yy}from"react";import{useNavigate as VI}from"react-router-dom";import{i18n as zc}from"@lingui/core";import{Divider as $I,Image as FI,ListItemButton as OI,NotFound as UI,Typography as fy}from"@rango-dev/ui";import ut,{useEffect as zI,useState as HI}from"react";var cy=i((t,e,o)=>t.filter(n=>Rr(n.type,o)).filter(n=>rt(n.name,e)||rt(n.displayName,e)),"filterBlockchains");import{ImageContainer as PI,styled as py}from"@rango-dev/ui";var uy=py("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Ca=py(hl,{padding:0,margin:0,listStyle:"none",[`& ${PI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as _I,Skeleton as dy}from"@rango-dev/ui";import Ta from"react";var DI=20;function my(){return Ta.createElement(Ca,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(DI),t=>Ta.createElement(_I,{key:t,hasDivider:!0,start:Ta.createElement(dy,{variant:"circular",width:35,height:35}),title:Ta.createElement(dy,{variant:"text",size:"large",width:90})})))}i(my,"LoadingBlockchainList");function Hc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=HI(e),{fetchStatus:l}=T();zI(()=>{c([...cy(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ut.createElement(UI,{title:zc.t("No results found"),description:zc.t("Try using different keywords")}):ut.createElement(Ca,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ut.createElement(OI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ut.createElement(FI,{src:u.logo,size:30}),title:ut.createElement(fy,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ut.createElement(ut.Fragment,null,a&&ut.createElement(ut.Fragment,null,ut.createElement(fy,{variant:"label",size:"large"},zc.t("Select Chain")),ut.createElement($I,{size:4})),ut.createElement(uy,null,l==="loading"&&ut.createElement(my,null),l==="success"&&p()))}i(Hc,"BlockchainList");function ka(t){let{type:e}=t,o=Qe(),[n,r]=yy(""),[a,s]=yy("ALL"),c=z().use.setToBlockchain(),l=z().use.setFromBlockchain(),p=z().use.setToToken(),{fetchStatus:u,findNativeToken:d}=T(),f=VI(),{swapMode:h}=et(),g=T().blockchains({type:e}),m=T().tokens(),y=GI(()=>ru(g,m),[g.length,m.length]),S=QI(y),C=!t.hideCategory&&S!==1,k=i(v=>{if(e==="custom-token")f(`..?blockchain=${v.name}`,{replace:!0});else{if(e==="source")l(v);else if(h==="swap")c(v);else{let w=d(v);w&&p({token:w,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return no.createElement(ae,{header:{title:gy.t("Select Chain")}},no.createElement(ce,{view:!0},C&&no.createElement(no.Fragment,null,no.createElement(qI,{setCategory:s,category:a,blockchains:y,isLoading:u==="loading"}),no.createElement(hy,{size:24})),no.createElement(At,{value:n,autoFocus:!0,placeholder:gy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:v=>r(v.target.value)}),no.createElement(hy,{size:16}),no.createElement(Hc,{list:y,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:k})))}i(ka,"SelectBlockchainPage");import{i18n as ba}from"@lingui/core";import{Divider as by,Spinner as sA}from"@rango-dev/ui";import wo,{useEffect as lA,useState as cA}from"react";import{useNavigate as pA}from"react-router-dom";import{i18n as Gc}from"@lingui/core";import{BlockchainsChip as wa,Divider as ky,Image as wy,Skeleton as JI,Tooltip as RI,Typography as Vc}from"@rango-dev/ui";import xe from"react";import{useEffect as XI}from"react";var Sy=["ETH"];function Qc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(KI),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(jI(s)),r=n.splice(a)}return{list:n,more:r}}i(Qc,"prepare");function KI(t,e){let o=Sy,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(KI,"sortByMostUsedBlockchains");function jI(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(jI,"generateSortByPreferredBlockchainsFor");function Cy(t,e){return!!e.list.find(o=>o.name===t)}i(Cy,"isInVisibleList");function qc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=T();XI(()=>{if(e?.selected){let a=Qc(t,o,e);Cy(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Qc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(qc,"usePrepareBlockchainList");import{styled as YI}from"@rango-dev/ui";var Ty=YI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var eA=6,tA=12;function Kc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=qc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=T(),p=z().use.resetToBlockchain(),u=z().use.resetFromBlockchain(),d=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&d;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(ky,{size:12}),xe.createElement(Vc,{variant:"label",size:"large"},Gc.t("Select Chain"))),xe.createElement(ky,{size:12}),xe.createElement(Ty,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?eA:tA),(m,y)=>xe.createElement(JI,{key:y,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(wa,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(Vc,{variant:"body",size:"xsmall",color:"secondary500"},Gc.t("All"))),c.list.map(m=>xe.createElement(RI,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:N()},xe.createElement(wa,{className:"widget-blockchains-section-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},xe.createElement(wy,{src:m.logo,size:30})))),h?xe.createElement(wa,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(wy,{src:f.logo,size:30})):null,g?xe.createElement(wa,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(Vc,{variant:"body",size:"xsmall",color:"secondary500"},Gc._("More +{count}",{count:c.more.length}))):null)))}i(Kc,"BlockchainsSection");import{useCallback as nA,useRef as rA,useState as jc}from"react";function Xc(){let t=T().blockchains(),e=rA(null),{customTokens:o}=T(),[n,r]=jc(!1),[a,s]=jc([]),[c,l]=jc(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await at().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(C=>Gt(C))),y=new Set(t.map(C=>C.name)),S=g.tokens.filter(C=>y.has(C.blockchain)&&!m.has(Gt(C)));s(S),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=nA(Jr((f,h)=>{e.current?.signal.aborted||p(f,h)},600),[t.length]);return{fetch:(f,h)=>{e.current=new AbortController,s([]),r(!0),u(f,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Xc,"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 vy(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(vy,"prepareTokensList");function xa(t){let{type:e}=t,o=pA(),n=Qe(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=z()(),{getBalanceFor:u}=T(),{fetch:d,loading:f,tokens:h,cancel:g}=Xc(),[m,y]=cA(""),S=e==="source"?r:a,C=S?.name??"",k=T().blockchains({type:e}),v=T().tokens({type:e,blockchain:C,searchFor:m,getBalanceFor:u}),w=vy(v,h,m,f,S?.name),I=i(E=>{e==="source"?l(E):p(E)},"updateBlockchain"),A=i(E=>{e==="source"?s({token:E,meta:{blockchains:k}}):c({token:E,meta:{blockchains:k}})},"updateToken"),b={source:ba.t("Source"),destination:ba.t("Destination")};return lA(()=>(va(v,m,S?.name)&&d(m,S?.name??void 0),()=>{g()}),[v.length,m,S?.name]),wo.createElement(ae,{header:{title:ba.t("Swap {type}",{type:b[e]})}},wo.createElement(ce,null,wo.createElement(Kc,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(D.blockchains),onChange:E=>{I(E)}}),wo.createElement(by,{size:24}),wo.createElement(At,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:ba.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>y(""),onChange:E=>y(E.target.value),suffix:va(v,m,S?.name)&&f?wo.createElement(sA,{size:12,color:"secondary"}):void 0}),wo.createElement(by,{size:16}),wo.createElement(Er,{list:w,selectedBlockchain:C,searchedFor:m,type:e,onChange:E=>{A(E);let x=k.find(W=>E.blockchain===W.name);x&&I(x),n()}})))}i(xa,"SelectSwapItemsPage");import{i18n as Rc}from"@lingui/core";import{Alert as $A,Button as FA,styled as OA}from"@rango-dev/ui";import Xo from"react";import{useInRouterContext as UA,useSearchParams as zA}from"react-router-dom";import{i18n as By}from"@lingui/core";import{Alert as fA,Divider as Zc,InfoIcon as gA,SlippageIcon as hA,TextField as yA,Tooltip as SA,Typography as Wy}from"@rango-dev/ui";import Oe from"react";import{Chip as uA,styled as Fr,TextField as dA}from"@rango-dev/ui";var xy=Fr("div",{paddingTop:"$5",padding:"$10 $5"}),Ey=Fr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${dA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),Iy=Fr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Ea=Fr("div",{maxWidth:"280px",padding:"$10"}),Ay=Fr(uA,{width:"61px",flexShrink:0});import{i18n as Yc}from"@lingui/core";import{Typography as mA}from"@rango-dev/ui";import Or from"react";function Ny(){return Or.createElement(Ea,null,Or.createElement(mA,{variant:"label",size:"medium",color:"neutral700"},Yc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Or.createElement("br",null),Or.createElement("br",null),Or.createElement("b",null,Yc.t("Warning")),":\xA0",Yc.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(Ny,"SlippageTooltipContent");function Jc(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=T(),r=o!==null?pn(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let d=u;u>jn&&(d=jn),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;uu(u)||(p.value=u.slice(0,-1))},"onInput");return Oe.createElement(xy,null,Oe.createElement(Iy,null,Oe.createElement(hA,{size:16,color:"gray"}),Oe.createElement(Zc,{direction:"horizontal",size:4}),Oe.createElement(Wy,{variant:"title",size:"xmedium"},By.t("Slippage tolerance per swap")),Oe.createElement(Zc,{direction:"horizontal",size:4}),Oe.createElement(SA,{container:N(),side:"top",sideOffset:4,content:Oe.createElement(Ny,null)},Oe.createElement(gA,{color:"gray"}))),Oe.createElement(Ey,null,ai.map((l,p)=>{let u=`slippage-${p}`;return Oe.createElement(Ay,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),Oe.createElement(yA,{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&&Oe.createElement(Wy,{variant:"body",size:"small"},"%"),placeholder:By.t("Custom")})),r&&Oe.createElement(Oe.Fragment,null,Oe.createElement(Zc,{size:10}),Oe.createElement(fA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(Jc,"Slippage");import{i18n as Tt}from"@lingui/core";import{AutoThemeIcon as Ly,BridgesIcon as CA,ChevronRightIcon as Ia,DarkModeIcon as My,Divider as Ur,ExchangeIcon as TA,InfinityIcon as kA,InfoIcon as wA,LanguageIcon as vA,LightModeIcon as Py,List as bA,ListItem as xA,ListItemButton as EA,Skeleton as IA,styled as AA,Switch as NA,Tabs as BA,TargetIcon as WA,Tooltip as LA,Typography as nt}from"@rango-dev/ui";import _ from"react";import{useNavigate as MA}from"react-router-dom";var PA=AA("div",{width:"202px",height:"$40"}),_A=[{id:"light",icon:_.createElement(Py,{color:"black",size:24}),tooltip:_.createElement(nt,{size:"xsmall",variant:"body"},Tt.t("Light"))},{id:"dark",icon:_.createElement(My,{color:"black",size:24}),tooltip:_.createElement(nt,{size:"xsmall",variant:"body"},Tt.t("Dark"))},{id:"auto",icon:_.createElement(Ly,{color:"black",size:24}),tooltip:_.createElement(nt,{size:"xsmall",variant:"body"},Tt.t("Auto"))}],DA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return _.createElement(Ly,{...e});case"dark":return _.createElement(My,{...e});default:return _.createElement(Py,{...e})}},"getThemeIcon");function _y(){let t=MA(),{theme:e}=T().config,{setTheme:o,theme:n}=T(),{activeLanguage:r,languages:a}=ko(),s=a.find(B=>B.local===r)?.label,c=T().fetchStatus,l=T().swappers(),p=T().getDisabledLiquiditySources(),{config:{features:u}}=T(),d=T().customTokens(),f=Re("theme",u),h=Re("liquiditySource",u),g=Re("language",u),m=Re("customTokens",u),y=T().infiniteApprove,S=T().toggleInfiniteApprove,C=ci(l,p),k=C.filter(B=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(B.type)),v=k.length,w=k.filter(B=>B.selected).length,I=C.filter(B=>B.type==="DEX"),A=I.length,b=I.filter(B=>B.selected).length,E=i((B,R)=>{switch(c){case"loading":return _.createElement(IA,{variant:"text",size:"medium",width:50});case"failed":return _.createElement(nt,{variant:"body",size:"medium",color:"$error500"},Tt.t("Loading failed"));default:return _.createElement(nt,{variant:"body",size:"medium"},`${B} / ${R}`)}},"handleSwapperEndItem"),x={id:"widget-setting-bridge-item-btn",title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Bridges")),end:_.createElement(_.Fragment,null,E(w,v),_.createElement(Ur,{direction:"horizontal",size:8}),_.createElement(Ia,{color:"black"})),onClick:()=>t(D.bridges),start:_.createElement(CA,{color:"gray",size:16})},W={id:"widget-setting-exchange-item-btn",title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Exchanges")),end:_.createElement(_.Fragment,null,E(b,A),_.createElement(Ur,{direction:"horizontal",size:8}),_.createElement(Ia,{color:"black"})),start:_.createElement(TA,{color:"gray",size:16}),onClick:()=>t(D.exchanges)},P={id:"widget-setting-custom-tokens-item-btn",title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Custom Tokens")),end:_.createElement(_.Fragment,null,_.createElement(nt,{variant:"body",size:"medium"},`${d.length}`),_.createElement(Ur,{direction:"horizontal",size:8}),_.createElement(Ia,{color:"black"})),start:_.createElement(WA,{color:"gray",size:16}),onClick:()=>t(D.customTokens)},U={id:"widget-setting-language-item-btn",title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Language")),start:_.createElement(vA,{color:"gray",size:16}),end:_.createElement(_.Fragment,null,_.createElement(nt,{variant:"body",size:"medium"},s),_.createElement(Ur,{direction:"horizontal",size:8}),_.createElement(Ia,{color:"black"})),onClick:()=>t(D.languages)},G={id:"widget-setting-infinite-approval-item-btn",title:_.createElement(_.Fragment,null,_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Infinite approval")),_.createElement(Ur,{direction:"horizontal",size:4}),_.createElement(LA,{side:"top",sideOffset:4,container:N(),content:_.createElement(Ea,null,_.createElement(nt,{variant:"label",size:"medium",color:"neutral700"},_.createElement("b",null,Tt.t("Warning")),":\xA0",Tt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},_.createElement(wA,{color:"gray"}))),start:_.createElement(kA,{color:"gray",size:16}),end:_.createElement(NA,{checked:y}),onClick:S},K={id:"widget-setting-theme-item-btn",type:_.createElement(xA,null),title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Theme")),end:_.createElement(PA,null,_.createElement(BA,{container:N(),items:_A,value:n,className:"widget-setting-theme-item-tabs-container",onChange:B=>o(B.id),type:"primary",borderRadius:"small"})),start:DA(n)},J=h?[]:[x,W];return m||J.push(P),g||J.push(U),J.push(G),!e?.singleTheme&&!f&&J.push(K),_.createElement(bA,{type:_.createElement(EA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:J})}i(_y,"SettingsLists");var HA=OA("div",{paddingLeft:"$8"});function Dy(){let{isInCampaignMode:t,updateCampaignMode:e}=T(),o=t(),[,n]=zA(),r=UA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Xo.createElement(ae,{header:{title:Rc.t("Settings")}},Xo.createElement(ce,null,o&&Xo.createElement($A,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:Rc.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:Xo.createElement(HA,null,Xo.createElement(FA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Rc.t("Reset")))}),Xo.createElement(Jc,null),Xo.createElement(_y,null)))}i(Dy,"SettingsPage");import{i18n as JN}from"@lingui/core";import{cancelSwap as RN}from"@rango-dev/queue-manager-rango-preset";import{useManager as e0}from"@rango-dev/queue-manager-react";import{Alert as t0}from"@rango-dev/ui";import hp from"react";import{useParams as o0}from"react-router-dom";import{i18n as Ot}from"@lingui/core";import{getCurrentNamespaceOfOrNull as FN,getCurrentStep as ON,getRelatedWalletOrNull as UN}from"@rango-dev/queue-manager-rango-preset";import{Button as BS,Divider as zN,QuoteCost as HN,StepDetails as QN,Typography as pp}from"@rango-dev/ui";import{useWallets as qN}from"@rango-dev/wallets-react";import WS from"bignumber.js";import{PendingSwapNetworkStatus as Dn}from"rango-types";import Te,{useEffect as up,useRef as dp,useState as Da}from"react";import{useNavigate as GN}from"react-router-dom";import{i18n as vo}from"@lingui/core";var QA=[vo.t("Sunday"),vo.t("Monday"),vo.t("Tuesday"),vo.t("Wednesday"),vo.t("Thursday"),vo.t("Friday"),vo.t("Saturday")];function $y(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?vo.t("Today"):`${QA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i($y,"timeSince");function Fy(t){return t.finishTime?$y(parseInt(t.finishTime)):$y(parseInt(t.creationTime))}i(Fy,"getSwapDate");import zr from"react";import{i18n as Aa}from"@lingui/core";import{Button as Oy,Divider as ep,MessageBox as qA}from"@rango-dev/ui";import bo from"react";var Uy=i(({onCancel:t,onClose:e})=>bo.createElement(bo.Fragment,null,bo.createElement(ep,{size:20}),bo.createElement(qA,{type:"error",title:Aa.t("Cancel Swap"),description:Aa.t("Are you sure you want to cancel this swap?")}),bo.createElement(ep,{size:32}),bo.createElement(Oy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Aa.t("Yes, Cancel it")),bo.createElement(ep,{size:12}),bo.createElement(Oy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Aa.t("No, Continue"))),"CancelContent");import{i18n as Na}from"@lingui/core";import{Button as zy,Divider as tp,MessageBox as GA,Typography as VA}from"@rango-dev/ui";import ro from"react";var Hy=i(({onDelete:t,onClose:e})=>ro.createElement(ro.Fragment,null,ro.createElement(tp,{size:20}),ro.createElement(GA,{type:"error",title:Na.t("Delete Transaction"),description:Na.t("Are you sure you want to delete this swap?")}),ro.createElement(tp,{size:32}),ro.createElement(zy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Na.t("Yes, Delete it")),ro.createElement(tp,{size:12}),ro.createElement(zy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},ro.createElement(VA,{variant:"title",size:"medium",color:"primary"},Na.t("No, Cancel")))),"DeleteContent");import{i18n as KA}from"@lingui/core";import{Button as jA,Divider as XA,MessageBox as YA}from"@rango-dev/ui";import Yo from"react";var Qy=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Yo.createElement(Yo.Fragment,null,Yo.createElement(YA,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Yo.createElement(Yo.Fragment,null,Yo.createElement(XA,{size:"30"}),Yo.createElement(jA,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},KA.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as fN,getCurrentStep as gN,getRelatedWalletOrNull as hN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as yN}from"@rango-dev/ui";import{useWallets as SN}from"@rango-dev/wallets-react";import Yy from"react";import{i18n as Pn}from"@lingui/core";import{Alert as Vy,Button as RA,Checkbox as eN,Divider as La,Image as tN,MessageBox as oN,Spinner as nN,WarningIcon as rN}from"@rango-dev/ui";import{useWallets as iN}from"@rango-dev/wallets-react";import he,{useState as aN}from"react";import{css as ZA,darkTheme as JA,styled as op}from"@rango-dev/ui";var qy=ZA({wordWrap:"break-word",display:"block"}),Gy=op("img",{width:"100%"}),Ba=op("div",{position:"relative"}),Wa=op("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${JA} &`]:{$$color:"$warning600"}});var Ky=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=aN(null),{list:s}=vt(),c=oe.use.isActiveTab(),{state:l,connect:p}=iN(),u=s.find(w=>w.type===e.walletType),d=u?.needsNamespace?.data.find(w=>w.value===o?.namespace);if(!u)return null;let f=l(e.walletType),h=u.isHub&&o?.namespace?f.namespaces?.get(o.namespace):null,g=f.connecting||h?.connecting,m=u.isHub?h?.connected:f.connected,y=i(()=>m?Pn.t("Done"):r?Pn.t("Try again"):Pn.t("Connect"),"getButtonTitle"),S=i(()=>g?he.createElement(nN,{color:"info"}):r||m?null:he.createElement(eN,{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(w){a(w)}},"handleConnect"),k=i(async()=>{if(m){n();return}C()},"handleClickButton"),v=i(()=>{if(!m)return null;let w=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),I=w?.[w?.length-1];return I?so(I):null},"getAddress");return he.createElement(he.Fragment,null,he.createElement(oN,{type:"warning",title:Pn.t("Connect {wallet}",{wallet:u.title}),description:Pn.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:he.createElement(Ba,null,he.createElement(tN,{src:u.image,size:45}),he.createElement(Wa,null,he.createElement(rN,{color:"warning",size:10})))}),m&&!d&&he.createElement(he.Fragment,null,he.createElement(La,{size:10}),he.createElement(Vy,{type:"success",variant:"alarm",title:Pn.t("Wallet connected successfully.")})),r&&!d&&he.createElement(he.Fragment,null,he.createElement(La,{size:10}),he.createElement(Vy,{type:"error",title:r?.message,variant:"alarm"})),d&&he.createElement(he.Fragment,null,he.createElement(La,{size:30}),he.createElement(Po,{namespace:d,suffix:S(),error:r?.message,connected:m,address:v()})),he.createElement(La,{size:"40"}),he.createElement(RA,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:k,disabled:!c},y()))},"ConnectWalletContent");import{i18n as jy}from"@lingui/core";import{Button as sN,Divider as lN,Image as cN,MessageBox as pN,WarningIcon as uN}from"@rango-dev/ui";import{useWallets as dN}from"@rango-dev/wallets-react";import{detectInstallLink as mN}from"@rango-dev/wallets-shared";import io from"react";var Xy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=dN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(mN(n.installLink),"_blank"),"handleButtonClick");return io.createElement(io.Fragment,null,io.createElement(pN,{type:"warning",title:jy.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:io.createElement(Ba,null,io.createElement(cN,{src:n.img,size:45}),io.createElement(Wa,null,io.createElement(uN,{color:"warning",size:10})))}),io.createElement(lN,{size:"40"}),io.createElement(sN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},jy.t("Install")))},"InstallWalletContent");var Zy=i(t=>{let{swap:e,onClose:o}=t,{state:n,getWalletInfo:r}=SN(),a=gN(e),s=a?hN(e,a):null,c=s?.walletType,l=c?Gn(r(c),n(c)):null,p=a?fN(e,a):null;return c?l===yN.NOT_INSTALLED?Yy.createElement(Xy,{walletType:c}):Yy.createElement(Ky,{wallet:s,namespace:p,onClose:o}):null},"WalletStateContent");function np(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return zr.createElement(ne,{open:e,onClose:r,container:N()},o==="connectWallet"&&zr.createElement(Zy,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&zr.createElement(Qy,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&zr.createElement(Hy,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&zr.createElement(Uy,{onClose:r,onCancel:()=>{r(),s()}}))}i(np,"SwapDetailsModal");import{i18n as Hr}from"@lingui/core";import{Button as rp,Divider as Qr,MessageBox as eS,TokenAmount as CN,Typography as tS}from"@rango-dev/ui";import Ce from"react";import{Link as TN,useNavigate as kN}from"react-router-dom";var Jy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Ry="/profile";function ip(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:d,diagnosisUrl:f}=t,h=kN(),{showProfileBanner:g}=oe();return Ce.createElement(ne,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(ht.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement(eS,{type:"success",title:Hr.t("Swap Successful")},Ce.createElement(CN,{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(Qr,{size:12}),Ce.createElement(tS,{className:qy(),variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Ce.createElement(eS,{type:"error",title:Hr.t("Transaction Failed"),description:d}),Ce.createElement(Qr,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,g&&Ce.createElement(Ce.Fragment,null,Ce.createElement(TN,{to:Ry},Ce.createElement(Gy,{src:Jy,alt:"Profile Banner"})),Ce.createElement(Qr,{size:30})),Ce.createElement(rp,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Hr.t("Done"))),Ce.createElement(Qr,{size:12}),f&&Ce.createElement(Ce.Fragment,null,Ce.createElement(rp,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Hr.t("Diagnosis")),Ce.createElement(Qr,{size:12})),Ce.createElement(rp,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement(tS,{variant:"title",size:"medium",color:"primary"},Hr.t("See Details"))))}i(ip,"SwapDetailsCompleteModal");import{i18n as _a}from"@lingui/core";import{CopyIcon as MN,DoneIcon as PN,IconButton as _N,RangoExplorerIcon as DN,Tooltip as bS,Typography as xS,useCopyToClipboard as $N}from"@rango-dev/ui";import Bt from"react";import LN from"react";import{i18n as AN}from"@lingui/core";import{Alert as TS,IconButton as NN,LinkIcon as BN}from"@rango-dev/ui";import xo,{Fragment as WN}from"react";import{Alert as vN,ChevronDownIcon as bN,IconButton as xN}from"@rango-dev/ui";import _n,{useState as EN}from"react";import{css as qr,darkTheme as oS,styled as Ft,Typography as wN}from"@rango-dev/ui";var nS=Ft(ce,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${oS} &`]:{color:"$secondary500"}}}}}),rS=Ft("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),iS=Ft("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),aS=Ft("div",{padding:"$0 $20 $20 $20"}),DX=Ft("div",{display:"flex",flexDirection:"column",gap:"$10"}),sS=Ft("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),$X=Ft("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Zo=qr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${oS} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),lS=qr({padding:"$5 0"}),Ma=qr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),cS=qr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),pS=qr({width:"100%",padding:"0 $20 $10"}),uS=Ft("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),dS=Ft("div",{display:"flex",flexDirection:"column",gap:"$5"}),Pa=Ft(wN,{wordBreak:"break-word"});import{styled as ap}from"@rango-dev/ui";var mS=ap("div",{display:"flex",flexDirection:"column",gap:"$10"}),fS=ap("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),gS=ap("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function hS(t){let{message:e}=t,[o,n]=EN(!1);return _n.createElement(vN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&_n.createElement(xN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},_n.createElement(fS,{rotated:o},_n.createElement(bN,{size:12,color:"gray"}))),footer:_n.createElement(gS,{open:o},_n.createElement(Pa,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(hS,"FailedAlert");import{i18n as yS}from"@lingui/core";import{Alert as sp,Button as SS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as IN}from"rango-types";import Gr from"react";function CS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?Gr.createElement(sp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:Gr.createElement(SS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},yS.t("Change"))}):a===IN.WaitingForConnectingWallet?Gr.createElement(sp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Gr.createElement(SS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},yS.t("Connect"))}):Gr.createElement(sp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(CS,"WarningAlert");function lp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=lr(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,d=u&&!c||p&&!s.explorerUrl?.length;return xo.createElement(mS,null,s.explorerUrl?.map((f,h,g)=>{let m=h+f.url,y=h===g.length-1,S=(y&&u||p)&&!d,C=y&&s.status==="failed";return xo.createElement(WN,{key:m},xo.createElement(TS,{id:"widget-swap-details-tx-alert",type:y&&(S&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:AN.t("View transaction"),action:f.url&&xo.createElement(NN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},xo.createElement(BN,{size:12}))}))}),d&&xo.createElement(TS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&xo.createElement(CS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&xo.createElement(hS,{message:a}))}i(lp,"SwapDetailsAlerts");var kS=2e3;var wS=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:M(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ft(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:zn(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:zn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:LN.createElement(lp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function vS(t){if(lr(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(vS,"getStepState");function ES(t){let{requestId:e}=t,[o,n]=$N(kS);return Bt.createElement(iS,{className:Zo()},Bt.createElement(xS,{variant:"label",size:"large",color:"neutral700"},_a.t("Request ID")),Bt.createElement("div",{className:Ma()},Bt.createElement(xS,{variant:"label",size:"small",color:"neutral700"},e),Bt.createElement(bS,{container:N(),content:o?_a.t("Copied To Clipboard"):_a.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Bt.createElement(_N,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Bt.createElement(PN,{size:16,color:"secondary"}):Bt.createElement(MN,{size:16,color:"gray"}))),Bt.createElement(uS,{target:"_blank",href:`${Kp}/swap/${e}`},Bt.createElement(bS,{container:N(),content:_a.t("View on Rango Explorer"),side:"bottom"},Bt.createElement(DN,{size:20})))))}i(ES,"RequestIdRow");import{i18n as IS}from"@lingui/core";import{Typography as AS}from"@rango-dev/ui";import cp from"react";function NS(t){let{date:e,isFinished:o}=t;return cp.createElement("div",{className:Zo()},cp.createElement(AS,{variant:"label",size:"large",color:"neutral700"},o?IS.t("Finished at"):IS.t("Created at")),cp.createElement(AS,{variant:"label",size:"small",color:"neutral700"},e))}i(NS,"SwapDateRow");var VN=3e3;function mp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=qN(),l=T().blockchains(),p=T().swappers(),{findToken:u}=T(),d=z().use.retry(),f=GN(),h=dp(null),[g,m]=Da(!1),[y,S]=Da(null),[C,k]=Da(null),[v,w]=Da(null),I=dp(y),A=dp(C),b=Ne.use.getNotifications(),E=Ne.use.removeNotification(),x=b(),W=ON(e),P=W?.networkStatus,U=i(Le=>{m(!0),S(Le)},"handleChangeModalState"),G=i(()=>{m(!1)},"handleCloseModal"),K=i(()=>{k({type:"loading",title:Ot.t("Change Network"),description:`We\u2019re switching the connected network to ${Y?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),J=i(()=>{k({type:"success",title:Ot.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),B=i(Le=>{k({type:"error",title:Ot.t("Network Switch Failed"),description:Le?.message||ee.detailedMessage.content})},"handleShowSwitchNetworkFailed"),R=Hd(e),Y=W?FN(e,W):null,le=W?UN(e,W):null,ve=Fy(e),Ht=Qd(e),be=i(Le=>!!c(Le)?.mobileWallet,"checkIsMobileWallet"),dt=!!P&&[Dn.WaitingForNetworkChange,Dn.NetworkChangeFailed].includes(P),kt=!!le?.walletType&&be(le.walletType),wt=!!le&&!!Y&&a(le.walletType,Y.network,Y),F=!!Y&&dt&&(kt||wt),O=i(()=>{F&&(K(),s(le.walletType,[{namespace:Y.namespace,network:Y.network}]).then(()=>{J()}).catch(Le=>{B(Le)}))},"handleSwitchNetwork"),X=i(()=>{U("switchNetwork"),O()},"handleSwitchNetworkClick"),ee=zd(e,W,c),j=wS({swap:e,switchNetworkIsAvailable:F,handleSwitchNetworkClick:X,showNetworkModal:P,setNetworkModal:U,message:ee,blockchains:l,swappers:p}),Q=j.length,[Ve,q]=[e.steps[0],e.steps[Q-1]],ye=q?.outputAmount||q?.expectedOutputAmountHumanReadable,Je=e.steps.reduce((Le,Wt)=>Le+parseFloat(Wt.feeInUsd||""),0),mt=e.steps.find(Le=>Le.diagnosisUrl)?.diagnosisUrl,ao=M(parseFloat(ye||"0")*(q?.toUsdPrice||0),4,4),On=M(parseFloat(e.inputAmount)*(Ve?.fromUsdPrice||0),4,4),Eo=ye?new WS(ye).multipliedBy(q.toUsdPrice||0).toString():"",jr=new WS(e.inputAmount).multipliedBy(Ve?.fromUsdPrice||0).toString(),Ro=Kt(On,ao),Ka=ee.detailedMessage.content||ee.shortMessage,uC=e.status==="success"?Ot.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(ye,6,6),token:j[Q-1]?.to.token.displayName,conciseAddress:so(e.wallets[j[Q-1]?.to.chain.displayName||""]?.address||""),chain:j[Q-1]?.to.chain.displayName}}):Te.createElement(dS,null,Te.createElement(pp,{variant:"body",size:"medium",color:"neutral700",align:"center"},Ka?"":Ot.t("Transaction was not sent."),R?`${Ot.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:R.outputAmount,symbol:R.symbol,blockchain:R.blockchain}})}`:""),Ka&&Te.createElement(Pa,{align:"center",variant:"body",size:"medium",color:"neutral700"},Te.createElement("b",null,"Reason:")," ",Ka));return up(()=>{x.find(Wt=>Wt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),E(e.requestId),G()):v&&w(null))},[e.status,e.requestId]),up(()=>{if(F){if(U("switchNetwork"),P===Dn.WaitingForNetworkChange){K();return}if(P===Dn.NetworkChangeFailed){B();return}return}if(P===Dn.WaitingForConnectingWallet){U("connectWallet");return}if(P===Dn.NetworkChanged){U("switchNetwork"),J();return}y&&["connectWallet","switchNetwork"].includes(y)&&G()},[P]),up(()=>{if(I.current=y,A.current=C,y==="switchNetwork"&&C?.type==="success"){let Le=setTimeout(()=>{I.current==="switchNetwork"&&A.current?.type==="success"&&G()},VN);return()=>clearTimeout(Le)}},[y,C]),Te.createElement(ae,{header:{title:Ot.t("Swap Details"),onCancel:e.status==="running"?()=>U("cancel"):void 0,suffix:e.status!=="running"&&Te.createElement(mo,null,Te.createElement(BS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>U("delete")},Te.createElement(pp,{size:"medium",variant:"label",color:"error"},Ot.t("Delete"))))},footer:Ht&&!v&&Te.createElement(BS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Le=Ti(e,l,u);d(Le),setTimeout(()=>{f("../../")},0)}},Ot.t("Try again"))},Te.createElement(nS,{compact:!0,ref:h},Te.createElement(ES,{requestId:o}),Te.createElement(NS,{date:ve,isFinished:!!e.finishTime}),Te.createElement("div",{className:cS()},Te.createElement(HN,{fee:M(String(Je),2,2),time:Qn(ti(e.steps)),steps:Q}),Te.createElement(hr,{from:{price:{value:M(e.inputAmount,6,6),usdValue:On,realUsdValue:jr,realValue:e.inputAmount},token:{displayName:j[0]?.from.token.displayName||"",image:j[0]?.from.token.image},chain:{image:j[0]?.from.chain.image,displayName:j[0]?.from.chain.displayName||""}},to:{price:{value:M(ye,6,6),usdValue:ao,realUsdValue:Eo,realValue:ye||""},token:{displayName:j[Q-1]?.to.token.displayName||"",image:j[Q-1]?.to.token.image},chain:{image:j[Q-1]?.to.chain.image,displayName:j[Q-1]?.to.chain.displayName||""}},percentageChange:M(Ro,2,2),warningLevel:jt(Ro??0)})),Te.createElement("div",{className:pS()},Te.createElement(pp,{variant:"title",size:"small"},Ot.t("Swaps steps"))),Te.createElement(zN,{size:8}),Te.createElement(aS,null,j.map((Le,Wt)=>{let Ep=Wt,Un=e.steps[Wt]&&vS(e.steps[Wt]),dC=Un==="error"||Un==="in-progress"||Un==="warning"||Un==="completed"&&Wt===j.length-1;return Te.createElement(QN,{className:"widget-swap-details-step-item-container",key:Ep,step:Le,type:"swap-progress",ref:h,state:Un,hasSeparator:Wt!==0,tabIndex:Ep,isFocused:dC,tooltipContainer:N()})}))),Te.createElement(np,{isOpen:g,state:y,switchNetworkModalState:C,onClose:G,onCancel:r,onDelete:n,message:ee.detailedMessage.content,swap:e,handleSwitchNetwork:X}),Te.createElement(ip,{open:!!v,diagnosisUrl:mt,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:M(ye,6,6),usdValue:ao,realUsdValue:Eo,realValue:ye||"",percentageChange:M(Ro,2,2),token:{displayName:j[Q-1]?.to.token.displayName||"",image:j[Q-1]?.to.token.image},chain:{image:j[Q-1]?.to.chain.image},description:uC}))}i(mp,"SwapDetails");import{i18n as Fa}from"@lingui/core";import{Divider as PS,NotFound as ZN,Skeleton as Kr,Typography as Oa}from"@rango-dev/ui";import Ie from"react";import{i18n as KN}from"@lingui/core";import{Divider as jN,Skeleton as XN,Typography as YN}from"@rango-dev/ui";import Ee from"react";import{css as Ut,styled as fp}from"@rango-dev/ui";var LS=fp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Vr=fp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),$a=fp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),p7=Ut({display:"flex",justifyContent:"space-between",alignItems:"center"}),u7=Ut({paddingTop:"$15",display:"flex"}),d7=Ut({padding:"$15 $0"}),m7=Ut({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),f7=Ut({paddingBottom:"$10"}),g7=Ut({display:"flex",justifyContent:"start",alignItems:"center"}),h7=Ut({paddingTop:"$5",display:"flex",alignItems:"center"}),y7=Ut({display:"flex",alignItems:"center"}),S7=Ut({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),MS=Ut({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function gp(){return Ee.createElement(LS,null,Ee.createElement(Cr,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(YN,{variant:"title",size:"small"},KN.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1}),Ee.createElement("div",{className:MS()},Ee.createElement(jN,{direction:"horizontal",size:20}),Ee.createElement(XN,{height:22,variant:"rectangular"}))),Ee.createElement($a,null),Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1})),Ee.createElement($a,null),Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1})),Ee.createElement($a,null),Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1}))))}i(gp,"LoadingSwapDetails");function _S(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(ae,{header:{title:Fa.t("Swap Details"),suffix:Ie.createElement(mo,null)}},o&&Ie.createElement(rS,null,Ie.createElement("div",{className:Zo()},Ie.createElement(Oa,{variant:"label",size:"large",color:"neutral700"},`${Fa.t("Request ID")}`),Ie.createElement("div",{className:Ma()},Ie.createElement(Oa,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Kr,{width:60,height:10,variant:"rounded"})),Ie.createElement(PS,{direction:"horizontal",size:4}),Ie.createElement(Kr,{width:16,height:16,variant:"rectangular"}),Ie.createElement(PS,{direction:"horizontal",size:4}),Ie.createElement(Kr,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:Zo()},Ie.createElement(Oa,{className:lS(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(Kr,{width:60,height:10,variant:"rounded"})),Ie.createElement(Oa,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Kr,{width:60,height:10,variant:"rounded"}))),Ie.createElement(gp,null)),!o&&Ie.createElement(sS,null,Ie.createElement(ZN,{title:Fa.t("Not found"),description:Fa.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(_S,"SwapDetailsPlaceholder");function DS(){let{manager:t,state:e}=e0(),o=!e.loadedFromPersistor,n=Ct(t),{requestId:r}=o0(),a=Qe(),{fetchStatus:s}=T();if(!r)return hp.createElement(t0,{containerStyles:{margin:"20px"},type:"error",title:JN.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:f})=>f.requestId===r):void 0,p=i(()=>{if(l?.id){let f=t?.get(l.id);f&&RN(f)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),d=l?.swap;return!d||c?hp.createElement(_S,{requestId:r,showSkeleton:c}):hp.createElement(mp,{swap:d,requestId:r,onCancel:p,onDelete:u})}i(DS,"SwapDetailsPage");import{i18n as $S}from"@lingui/core";import{Divider as n0,getCategoriesCount as r0,SelectableCategoryList as i0,styled as OS,Typography as a0,Wallet as s0}from"@rango-dev/ui";import zt,{useState as FS}from"react";var l0=OS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),c0=OS(ce,{textAlign:"center"});function US(){let{fetchStatus:t}=T(),[e,o]=FS("ALL"),n=T().blockchains(),{config:r}=T(),[a,s]=FS(),c=oe.use.isActiveTab(),{list:l}=vt(),p=vu(l,n),d=r0(p)!==1,f=bu(l,e),h=i(g=>{ou(l,r.multiWallets)||s(g)},"handleWalletItemClick");return zt.createElement(ae,{header:{title:$S.t("Connect Wallets")}},zt.createElement(c0,null,d&&zt.createElement(zt.Fragment,null,zt.createElement(i0,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),zt.createElement(n0,{size:24})),zt.createElement(a0,{variant:"title",size:"xmedium",align:"center"},$S.t("Choose a wallet to connect.")),zt.createElement(l0,null,f.map((g,m)=>{let y=`wallet-${m}-${g.type}`;return zt.createElement(s0,{key:y,...g,state:g.state,container:N(),onClick:()=>h(g),isLoading:t==="loading",disabled:!c})}),zt.createElement(ir,{id:"widget-state-full-connect-modal",wallet:a,onClose:()=>{s(void 0)}}))))}i(US,"WalletsPage");function zS(){return em(),Hs(),p0([{path:D.home,element:Ue.createElement(ny,null)},{path:D.routes,element:Ue.createElement(ly,null)},{path:D.fromSwap,children:[{index:!0,element:Ue.createElement(xa,{type:"source"})},{path:D.blockchains,element:Ue.createElement(ka,{type:"source"})}]},{path:D.toSwap,children:[{index:!0,element:Ue.createElement(xa,{type:"destination"})},{path:D.blockchains,element:Ue.createElement(ka,{type:"destination"})}]},{path:D.settings,children:[{index:!0,element:Ue.createElement(Dy,null)},{path:D.languages,element:Ue.createElement(iy,null)},{path:D.exchanges,element:Ue.createElement(Uc,{sourceType:"Exchanges"})},{path:D.bridges,element:Ue.createElement(Uc,{sourceType:"Bridges"})},{path:D.customTokens,children:[{index:!0,element:Ue.createElement(rh,null)},{path:D.addCustomTokens,children:[{index:!0,element:Ue.createElement(Jm,null)},{path:D.blockchains,element:Ue.createElement(ka,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:D.swaps,children:[{index:!0,element:Ue.createElement(bh,null)},{path:D.swapDetails,element:Ue.createElement(DS,null)}]},{path:D.wallets,element:Ue.createElement(US,null)},{path:D.confirmSwap,element:Ue.createElement(Hg,null)}])}i(zS,"AppRoutes");import{useQueueManager as N0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as B0}from"rango-sdk";import{useContext as W0,useEffect as Tp,useState as RS}from"react";import{Provider as h0}from"@rango-dev/wallets-react";import{WalletTypes as y0}from"@rango-dev/wallets-shared";import Ua,{createContext as S0,useEffect as VS,useMemo as C0,useRef as KS}from"react";import{useEffect as d0}from"react";import{Provider as u0}from"@rango-dev/wallets-core";function HS(t){return t.map(e=>typeof e=="string"?e:e instanceof u0?e.id:e.config.type).join("-")}i(HS,"hashProviders");function yp(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=T(),a=n();return d0(()=>{o(),r()},[HS(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(yp,"useWalletProviders");import{legacyFormatAddressWithNetwork as m0,legacyReadAccountAddress as QS}from"@rango-dev/wallets-core/legacy";import{Events as $n}from"@rango-dev/wallets-react";import{isEvmBlockchain as f0}from"rango-sdk";function qS(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=T(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(f0).map(m=>m.name),u=i((m,y)=>{let[S,,C,k,v]=m,w={walletType:S,network:k.network??void 0,accounts:C};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let I=rs(S,C,p,y.supportedChainNames,v.isContractWallet);I.length&&e(I,v.namespace,k.derivationPath)},"onAccountsEvent"),d=i((m,y,S,C,k)=>{if(y===$n.ACCOUNTS){let v=Vn(k.supportedBlockchains);S&&u([m,y,S,C,k],{supportedChainNames:v})}y===$n.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),y===$n.NAMESPACE_DISCONNECTED&&n(m,S)},"handleUpdatesForHub"),f=i((m,y,S,C,k)=>{if(y===$n.ACCOUNTS){let v=Vn(k.supportedBlockchains),w=[],I=[];if(S?.forEach(b=>{let{network:E}=QS(b);p.includes(E)?w.push(b):I.push(b)}),r.filter(b=>b.walletType===m).map(b=>m0(b.address,b.chain)).length>0){if(w.length>0){let b=rs(m,w,p,v,k.isContractWallet);a(m,{chains:b.map(E=>E.chain)})}I.length>0&&a(m,{chains:I.map(b=>{let{network:E}=QS(b);return E})})}S?u([m,y,S,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,y,S,C,k)=>{if(y===$n.CONNECTED&&S){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(y===$n.NETWORK&&S){let v={walletType:m,network:S,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,y,S,C,k)=>{k.isHub?d(m,y,S,C,k):f(m,y,S,C,k),h(m,y,S,C,k)},"handler")}}i(qS,"useUpdates");import{LegacyEvents as g0}from"@rango-dev/wallets-core/legacy";function GS(t,e){let[o,n,r,a,s]=e;n!==g0.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(GS,"propagateEvents");var za=S0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function T0(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}=yp(s.wallets,c),p=KS(),u=KS(),{handler:d}=qS({onConnectWalletHandler:p,onDisconnectWalletHandler:u});VS(()=>{n().catch(console.log)},[]),VS(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=oe.use.isActiveTab(),h=C0(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Ua.createElement(za.Provider,{value:h},Ua.createElement(h0,{allBlockChains:a,providers:l,onUpdateState:(g,m,y,S,C)=>{let k=[g,m,y,S,C];d(...k),t.onUpdateState&&GS(t.onUpdateState,k)},autoConnect:!!f,configs:{wallets:s.wallets,walletOptions:{[y0.TON_CONNECT]:{provider:{manifestUrl:s.tonConnect?.manifestUrl}}}}},t.children))}i(T0,"Main");function Ha(t){let{config:e,...o}=t;return Ua.createElement(Qu,{config:e},Ua.createElement(T0,{...o,config:e}))}i(Ha,"WidgetWallets");import{globalCss as k0}from"@rango-dev/ui";var jS=i(()=>k0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");import{useWallets as w0}from"@rango-dev/wallets-react";import{useEffect as v0,useRef as b0}from"react";function XS(){let{connect:t,state:e}=w0(),o=b0({}),{fetchStatus:n}=T(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);v0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(XS,"useForceAutoConnect");import{isApprovalTX as x0,RouteEventType as YS,StepEventType as ZS,StepExecutionEventStatus as E0,WidgetEvents as Qa}from"@rango-dev/queue-manager-rango-preset";import{useEffect as JS}from"react";function Sp(){let t=Ne.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=T();JS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===ZS.TX_EXECUTION&&s.status===E0.TX_SENT&&!x0(c)||s.type===ZS.SUCCEEDED){let u=[],d=l.wallets[c?.fromBlockchain];if(d){let f=e.find(h=>h.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&h.walletType===d.walletType&&h.chain===c?.fromBlockchain);f&&u.push(f)}if(c?.fromBlockchain!==c?.toBlockchain){let f=l.wallets[c?.toBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let f=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(m=>f.some(y=>y.blockchain===m.blockchain&&y.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&y.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return ke.on(Qa.StepEvent,r),()=>ke.off(Qa.StepEvent,r)},[ke,e]),JS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===YS.FAILED||s.type===YS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return ke.on(Qa.RouteEvent,r),()=>ke.off(Qa.RouteEvent,r)},[ke])}i(Sp,"useSubscribeToWidgetEvents");import{useManager as I0}from"@rango-dev/queue-manager-react";import{useEffect as A0}from"react";function Cp(){let{isSynced:t,syncNotifications:e}=Ne(),{manager:o,state:n}=I0();A0(()=>{Ne.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Ct(o))},[Ne.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Cp,"useSyncNotifications");function kp(){XS(),jS(),Sp(),Cp();let t=T().blockchains(),{canSwitchNetworkTo:e}=eC(),[o,n]=RS(null),[r,a]=RS(),s=W0(za),c=t.filter(B0);Tp(()=>()=>Jd(),[]),Tp(()=>()=>Rd(),[]),N0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),Tp(()=>(Mo.init(),Ne.persist.hasHydrated()||Ne.persist.rehydrate(),s.onConnectWallet(l=>{n(p=>{if(!p||p.walletType!==l.walletType)return l;let u={...p};return l.network&&(u.network=l.network),l.accounts&&(u.accounts=l.accounts),u})}),s.onDisconnectWallet(l=>{a(l),n(p=>l===p?.walletType?null:p)}),Mo.destroy),[])}i(kp,"useBootstrap");import{styled as L0}from"@rango-dev/ui";var tC=L0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left",height:"100%","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Jo(){kp();let{config:t}=T(),{activeTheme:e}=uo(t?.theme||{}),{activeLanguage:o}=ko();return wp.createElement(M0,{language:o},wp.createElement(tC,{id:"swap-container",className:e()},wp.createElement(zS,null)))}i(Jo,"Main");import{setSolanaSignerConfig as R0}from"@rango-dev/signer-solana";import bp,{useEffect as xp,useMemo as eB}from"react";function oC(){let{setWatermark:t,setShowProfileBanner:e}=oe();return{fetchApiConfig:i(async()=>{let n=await fetch(`${qt("BASE_URL")}/meta/dapp/config?apiKey=${qt("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(oC,"useFetchApiConfig");import{useState as P0}from"react";var _0=i(()=>{let[t,e]=P0(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=tu(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),nC=_0;import{checkWaitingForNetworkChange as D0,makeQueueDefinition as $0}from"@rango-dev/queue-manager-rango-preset";import{Provider as F0}from"@rango-dev/queue-manager-react";import{useWallets as O0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as U0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as z0}from"rango-types";import H0,{useMemo as Q0}from"react";function q0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s,hubProvider:c}=O0(),l=Q0(()=>$0({API_KEY:t.apiKey||qt("API_KEY"),BASE_URL:qt("BASE_URL"),emitter:{emit:ke.emit}}),[t.apiKey]),{blockchains:p,connectedWallets:u}=T(),d=p(),f={blockchains:u.map(w=>({accounts:[w],name:w.chain}))},h=i(async(w,I)=>a(w,I.network,I)?await r(w,[I]):void 0,"switchNetwork"),g=i(w=>!!s(w).mobileWallet,"isMobileWallet"),m=d.filter(w=>w.enabled).reduce((w,I)=>(w[I.name]=I,w),{}),y=d.filter(z0),S=i(w=>{let{supportedChains:I}=s(w);return Vn(I)},"getSupportedChainNames"),C=e(),k={meta:{blockchains:m,evmBasedChains:y,evmNetworkChainInfo:U0(y),getSupportedChainNames:S},getSigners:o,wallets:f,providers:C,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:g,hubProvider:c},v=oe.use.isActiveTab();return H0.createElement(F0,{queuesDefs:[l],context:k,onPersistedDataLoaded:w=>{D0(w)},isPaused:!v},t.children)}i(q0,"QueueManager");var rC=q0;import{useManager as X0}from"@rango-dev/queue-manager-react";import Y0,{createContext as Z0,useContext as J0}from"react";function iC(){let{findToken:t}=T(),e=T().blockchains(),o=T().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=z()();return i(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:f,toToken:h,requestAmount:g}=p,m={blockchains:e,tokens:o};if(u!==void 0){let y=e.find(S=>S.name===u)??null;n(y)}if(d!==void 0){let y=d?t(d)??null:null;r({meta:m,token:y})}if(f!==void 0){let y=e.find(S=>S.name===f)??null;a(y)}if(h!==void 0){let y=h?t(h)??null:null;s({meta:m,token:y})}g!==void 0&&c(g)},"updateQuoteInputs")}i(iC,"useUpdateQuoteInputs");import{cancelSwap as G0,getCurrentNamespaceOfOrNull as V0,getCurrentStep as K0,getRelatedWalletOrNull as j0}from"@rango-dev/queue-manager-rango-preset";var qa=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Ct(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=Ti(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&G0(o)}getCurrentStepInfo(e){let o=K0(e);return{step:o,wallet:o?j0(e,o):null,network:o?V0(e,o)?.network:null}}};var aC=Z0(void 0);function vp(t){let{manager:e}=X0(),o=oe.use.isActiveTab(),n=z().use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=T(),l=new qa(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=T(),u=yu(a()),d=T().blockchains(),f=T().tokens(),h=T().swappers(),g=T().fetchStatus,m=ko().resetLanguage,y=Ne().getNotifications(),S=Ne().clearNotifications,C=iC(),{fromBlockchain:k,toBlockchain:v,fromToken:w,toToken:I,inputAmount:A}=z()(),b={isActiveTab:o,setCurrentTabAsActive:Mo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async E=>c(E)},meta:{blockchains:d,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:m,notifications:{list:y,clearAll:S},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:w?{symbol:w.symbol,blockchain:w.blockchain,address:w.address}:null,toBlockchain:v?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:A},updateQuoteInputs:C}};return Y0.createElement(aC.Provider,{value:b},t.children)}i(vp,"WidgetInfo");function sC(){let t=J0(aC);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(sC,"useWidget");function Fn(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=oC(),{handleLoadCustomFont:a}=nC();return xp(()=>{r().catch(console.log)},[]),xp(()=>{n&&a(n)},[n]),eB(()=>{xu({API_KEY:o?.apiKey||Qp(),BASE_URL:o?.apiUrl||Vp})},[o.apiKey,o.apiUrl]),xp(()=>{t.config?.signers?.customSolanaRPC&&R0("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),bp.createElement(Ha,{config:o,onUpdateState:e},bp.createElement(rC,{apiKey:o.apiKey},bp.createElement(vp,null,t.children)))}i(Fn,"WidgetProvider");function lC(t){let e=t.config?.externalWallets;return Ga.createElement(Si,null,e?Ga.createElement(Jo,null):Ga.createElement(Fn,{config:t.config??nn},Ga.createElement(Jo,null)))}i(lC,"Refuel");import Va from"react";function cC(t){let e=t.config?.externalWallets;return Va.createElement(Si,null,e?Va.createElement(Jo,null):Va.createElement(Fn,{config:t.config??nn},Va.createElement(Jo,null)))}i(cC,"Widget");function pC(){let{on:t,off:e}=ke;return{on:t,off:e}}i(pC,"useWidgetEvents");var gee={DerivationPath:or,Namespaces:Rn,Detached:tr,isOnDerivationPath:rr,isOnNamespace:nr,isOnDetached:Io};export{FR as EventSeverity,ln as MainEvents,jR as Networks,ZR as PendingSwapNetworkStatus,cs as QuoteEventTypes,lC as Refuel,OR as RouteEventType,Ja as SUPPORTED_FONTS,gee as StatefulConnect,UR as StepEventType,zR as StepExecutionBlockedEventStatus,HR as StepExecutionEventStatus,fd as SwapModeContext,ht as UI_ID,us as UiEventTypes,ps as WalletEventTypes,VR as WalletEvents,XR as WalletTypes,cC as Widget,ln as WidgetEvents,Fn as WidgetProvider,Ha as WidgetWallets,ol as customizedThemeTokens,Ya as pickProviderVersionWithFallbackToLegacy,qR as readAccountAddress,en as useStatefulConnect,vt as useWalletList,eC as useWallets,sC as useWidget,pC as useWidgetEvents,mT as widgetEventEmitter};
1
+ var mC=Object.defineProperty;var i=(t,e)=>mC(t,"name",{value:e,configurable:!0});import{EventSeverity as OR,RouteEventType as UR,StepEventType as zR,StepExecutionBlockedEventStatus as HR,StepExecutionEventStatus as QR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as GR}from"@rango-dev/wallets-core/legacy";import{useWallets as eC,Events as KR}from"@rango-dev/wallets-react";import{Networks as XR,WalletTypes as YR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as JR}from"rango-types";import{Divider as Ak}from"@rango-dev/ui";import co,{useEffect as Nk,useRef as Bk,useState as md}from"react";import{WalletState as fC}from"@rango-dev/ui";import{useWallets as gC}from"@rango-dev/wallets-react";import{useReducer as hC}from"react";function Ip(t){return!!t.derivationPath}i(Ip,"isStateOnDerivationPathStep");function Ap(t){return!!t.namespace}i(Ap,"isStateOnNamespace");var Xr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Np(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 Xr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Xr;default:throw new Error("Action hasn't been defined.")}}i(Np,"reducer");function en(){let{state:t,disconnect:e,connect:o}=gC(),[n,r]=hC(Np,Xr),a=i(async(d,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(d.type,g),{status:"connected"}}catch(g){let m=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";if(h?.disconnectOnError)try{await u(d)}catch{console.warn("An error happened during disconnecting wallet after error on connecting.")}throw new Error(m,{cause:g})}},"runConnect"),s=i(async(d,f)=>{let h=d.state===fC.DISCONNECTED,g=f?.forceConnectToNamespaces;if(h){let m=!!d.isHub,y=m?d.properties?.find(C=>C.name==="namespaces")?.value:d.needsNamespace,S=m?d.properties?.find(C=>C.name==="derivationPath")?.value:d.needsDerivationPath;if(g){let C=g.find(k=>!y?.data?.map(v=>v.value).includes(k));if(C)throw new Error(`One of the forced namespaces is not available in the wallet. Forced namespace: ${C}`);if(g.length>1&&S)throw new Error("Derivation path is not supported when multiple namespaces are selected.");return g.length===1&&g[0]&&S?(r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:g[0]}}),{status:"derivation-path"}):await a(d,g.map(k=>({namespace:k})),{...f,disconnectOnError:!0})}if(!y?.data?.length)return await a(d,void 0,f);if(y?.data.length&&y.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(y?.data.length===1&&y.data[0]){if(S){let C=y.data[0];return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:C.value}}),{status:"derivation-path"}}return await a(d,y?.data?.map(C=>({namespace:C.value})),f)}}if(d.isHub&&!f?.forceConnectToNamespaces){let m=d.properties?.find(y=>y.name==="namespaces")?.value;if(m?.data.length&&m.data.length>1)return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(d,f)=>{let h=!!d.isHub,g=h?d.properties?.find(k=>k.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(k=>k.name==="derivationPath")?.value:d.needsDerivationPath,y=g?.selection==="single",S=f[0];if(!S)throw new Error("To confirm a namespace, you should select at least one namespace.");if(y&&m)return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:S}}),{status:"derivation-path"};if(!Ap(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=f.map(k=>({namespace:k}));return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:C??null}}),{status:"Detached"}},"handleNamespace"),l=i(async(d,f,h)=>{if(!f)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Ip(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let m=[{namespace:n.derivationPath.namespace,derivationPath:f}],S=!!d.isHub?d.properties?.find(v=>v.name==="namespaces")?.value:d.needsNamespace,C=!!S?.data&&S.data.length>1,k=!!h?.forceConnectToNamespaces;return C&&!k?(r({type:"detached",payload:{targetWallet:d,selectedNamespaces:m??null,derivationPath:f}}),{status:"Detached"}):await a(d,m)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let f=t(d.type);return f.connected||f.connecting?(await e(d.type),Io(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(en,"useStatefulConnect");import{WalletState as Ss}from"@rango-dev/ui";import{useWallets as bT}from"@rango-dev/wallets-react";import{detectMobileScreens as xT,WalletTypes as Yn}from"@rango-dev/wallets-shared";import{useCallback as ET,useEffect as IT}from"react";import CT,{createContext as TT,useContext as kT,useEffect as wT,useRef as vT}from"react";import{create as yT}from"zustand";import{persist as ST}from"zustand/middleware";import{allProviders as yC}from"@rango-dev/provider-all";var ja=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()}},tn=new ja;import{Provider as Xa}from"@hub3js/core";import{defineVersions as Wp,pickVersion as Lp}from"@hub3js/core/utils";function Mp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=Ya(a);return s instanceof Xa?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 Xa?o.push(Wp().version("1.0.0",n).build()):o.push(Wp().version("0.0.0",n).build())}),o}return t}i(Mp,"matchAndGenerateProviders");function Ya(t){try{return Lp(t,"1.0.0")[1]}catch{return Lp(t,"0.0.0")[1]}}i(Ya,"pickProviderVersionWithFallbackToLegacy");function Pp(t){return t.map(o=>Ya(o)).map(o=>o instanceof Xa?o.id:o.config.type)}i(Pp,"configWalletsToWalletName");function _p(t,e){return e.find(o=>o.name===t)?.displayName}i(_p,"getBlockchainDisplayNameFor");function ft(t,e){return e.find(o=>o.name===t)?.shortName}i(ft,"getBlockchainShortNameFor");function Dp(t,e){return e.find(o=>o.name===t)?.logo}i(Dp,"getBlockchainImage");function zn(t,e){return e.find(o=>o.id===t)?.title}i(zn,"getSwapperDisplayName");function Ao(t,e){return e.find(o=>o.name===t)??null}i(Ao,"findBlockchain");function Za(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Za,"isTokenNative");function gt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(gt,"createTokenHash");function on(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(on,"isValidTokenAddress");function Hn(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=>{let p=o.tokensMapByBlockchainName[l];!c.has(l)&&p&&a(p)})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded&&o.tokensMapByBlockchainName[c]?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=gt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Hn,"matchTokensFromConfigWithMeta");function Yr(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(Yr,"getSupportedBlockchainsFromConfig");function Fp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Fp,"makeProvidersOptionsFromConfig");var nn={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/assets/refs/heads/main/manifests/tonconnect/manifest.json"}},SC={clientUrl:void 0},CC={liquiditySources:void 0};function $p(t){let e=Fp(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 yC(o).map(a=>a())}i($p,"generateProviders");var Op=i((t,e,o)=>{let n=$p({...nn,...t});return{config:{...nn,...t},iframe:SC,campaignMode:CC,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=Hn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=Hn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});tn.set("supportedSourceTokens",l),tn.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=$p(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Fp(a);return Mp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Up}from"rango-types";var zp=[Up.EVM,Up.SOLANA],Zr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as LC}from"rango-sdk";function Hp(){return process.env.REACT_APP_RANGO_API_KEY}i(Hp,"getApiKeyFromEnv");function Qp(){let t=Hp();if(t)return t;throw new Error("Ensure you have set REACT_APP_RANGO_API_KEY in your env variables.")}i(Qp,"getApiKeyFromEnvOrThrow");function qp(){return Hp()||"NOT_SET"}i(qp,"getApiKeyFromEnvOrNotSet");import{BlockchainCategories as EC,WalletState as it}from"@rango-dev/ui";import{legacyReadAccountAddress as IC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as AC,isEvmAddress as NC,Networks as gu}from"@rango-dev/wallets-shared";import an from"bignumber.js";import TC from"bignumber.js";var pe=new TC(0);var No="~",Gp=[];import{BlockchainCategories as Ra,WalletState as xC}from"@rango-dev/ui";import{TransactionType as es}from"rango-sdk";import{UI_ID as kC}from"@rango-dev/ui";var Vp="https://api.rango.exchange",Kp="https://explorer.rango.exchange",ht={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...kC};var jp="Roboto",Ja=[{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 rn(t){return Array.from(new Set(t))}i(rn,"removeDuplicateFrom");function Jr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Jr,"debounce");function rt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(rt,"containsText");function Zp(t,e){return t.toLowerCase()===e.toLowerCase()}i(Zp,"exactText");function Jp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Jp,"startWithText");var N=i(()=>document.getElementById(ht.SWAP_BOX_ID),"getContainer"),Bo=i(()=>document.getElementById(ht.EXPANDED_BOX_ID),"getExpanded");function Rp(t,e,o){let n=!!e&&Zp(e,t),r=!!o&&Zp(o,t);return n!==r?n?-1:1:0}i(Rp,"compareExactMatchText");function ts(t,e,o){let n=!!e&&rt(e,t),r=!!o&&rt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ts,"compareContainsText");function os(t,e,o){let n=!!e&&Jp(e,t),r=!!o&&Jp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(os,"compareStartWithText");function eu(t,e,o){if(!o)return 0;let n=Rp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Rp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=os(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ts(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=os(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ts(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=os(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ts(o,t.address,e.address);if(r!==0)return r}return 0}i(eu,"compareWithSearchFor");var Rr=i((t,e)=>{switch(e){case Ra.ALL:return!0;case Ra.UTXO:return t===es.TRANSFER;case Ra.OTHER:return t!==es.TRANSFER&&t!==es.EVM;default:return t===e}},"isBlockchainTypeInCategory"),tu=i(t=>Ja.find(o=>o.value===t)?.url,"getFontUrlByName");function ou(t,e){let o=!!t.find(n=>n.state===xC.CONNECTED);return e===!1&&o}i(ou,"isSingleWalletActive");function nu(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(nu,"memoizedResult");function ru(t,e){let o=new Set;return e.forEach(n=>{o.add(n.blockchain)}),t.filter(n=>o.has(n.name))}i(ru,"filterBlockchainsWithAtLeastOneToken");import{BigNumber as mu}from"bignumber.js";function iu(t){return t.replace(/^0+(?=\d)/g,"")}i(iu,"removeLeadingZeros");function au(t){return t.replace(/^\.(\d+)/,"0.$1")}i(au,"ensureLeadingZeroForDecimal");function su(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(su,"formatThousandsWithCommas");function lu(t){return t.replace(/\s+/g,"-")}i(lu,"replaceSpacesWithDash");function cu(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(cu,"stripTrailingZeros");function pu(t){return t=t.replace(/[^\d.]/g,"").replace(/\./g,(e,o,n)=>n.indexOf(".")===o?".":""),t}i(pu,"parseNumericValue");function ei(t){return/^0+(?:\.0+)?$/.test(t)}i(ei,"isZeroValue");function uu(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(uu,"isValidCurrencyFormat");function du(t){return/\d+$/.test(t)}i(du,"isColorKeyOverridden");var Qn=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"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new mu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new mu(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var ti=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Lt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),qn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function fu(t){return ei(t)?"0":t.endsWith(".")?t.slice(0,-1):cu(t)}i(fu,"sanitizeInputAmount");function Gn(t,e){return WC(t,e)?it.PARTIALLY_CONNECTED:e.connected?it.CONNECTED:e.connecting?it.CONNECTING:e.installed?it.DISCONNECTED:it.NOT_INSTALLED}i(Gn,"getWalletConnectionStatus");function hu(t,e,o,n){return o.filter(r=>!Gp.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:d,properties:f,isHub:h}=e(r),g=rn(u.map(y=>y.type)),m=Gn(e(r),t(r));return{title:a,image:s,link:AC(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:d,properties:f,isHub:h}})}i(hu,"mapWalletTypesToWalletInfo");function Vn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Vn,"walletAndSupportedChainsNames");function rs(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(f=>f.chain===l)){let f={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(f)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=IC(l),d=c.length>0,f=c.includes(u),h=u===gu.Unknown;if(d&&!f&&!h)return;let m=u===gu.Unknown&&NC(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(rs,"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,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(Wo,"getQuoteChains");function Kn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Kn,"isAccountAndWalletMatched");var yu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ns(n.usdValue,n.decimals):pe.toFixed();return o.plus(r)},new an(pe));return BC(e.toString())},"calculateWalletUsdValue");function BC(t){let e=t.toString().split(".");return e[0]&&(e[0]=su(e[0])),e.join(".")}i(BC,"numberWithThousandSeparator");function ns(t,e){return new an(t).shiftedBy(-e).toFixed()}i(ns,"representAmountInNumber");function ri(t){if(!t)return null;let e=ns(t.amount,t.decimals),o=t.usdValue?ns(t.usdValue,t.decimals):null,n=M(e,8,8),r=o?M(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(ri,"formatBalance");function Su(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new an(t.usdValue).shiftedBy(-t.decimals):pe,n=e&&e.usdValue?new an(e.usdValue).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new an(t.amount).shiftedBy(-t.decimals):pe,n=e&&e.amount?new an(e.amount).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Su,"compareTokenBalance");function Qt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Qt,"areTokensEqual");function Cu(t){return t.sort((e,o)=>+(o.state===it.CONNECTED)-+(e.state===it.CONNECTED)||+(o.state===it.PARTIALLY_CONNECTED)-+(e.state===it.PARTIALLY_CONNECTED)||+(o.state===it.DISCONNECTED||o.state===it.CONNECTING)-+(e.state===it.DISCONNECTED||e.state===it.CONNECTING))}i(Cu,"sortWalletsBasedOnConnectionState");function so(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(so,"getConciseAddress");function Tu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Tu,"getAddress");var ku=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function wu(t){return t.map(e=>e.state).join("-")}i(wu,"hashWalletsState");function vu(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(vu,"filterBlockchainsByWalletTypes");function bu(t,e){return e===EC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Rr(n,e))return!0;return!1})}i(bu,"filterWalletsByCategory");function WC(t,e){if(!t.isHub||!t.needsNamespace||!e.connected)return!1;let n=t.needsNamespace.data.filter(r=>!r.unsupported);return t.needsNamespace.selection==="multiple"&&n.some(r=>!e.namespaces?.get(r.value)?.connected)}i(WC,"checkIsWalletPartiallyConnected");var is={API_KEY:qp()};function qt(t){return is[t]||""}i(qt,"getConfig");function xu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),is=e,is}i(xu,"initConfig");var Eu=20,Iu=25,as="theme-widget",ss=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Qt(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>Qt(a,t));let r=n.isExcluded;return!r&&!o||r&&o}}}return o},"isTokenExcludedInConfig"),ls=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Au=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var ii,at=i(()=>ii||(ii=new LC(qt("API_KEY"),qt("BASE_URL")),ii),"httpService");import{i18n as Bu}from"@lingui/core";var ai=[.5,1,3],si=1,sn=5,jn=30,li=0;var Xe=(a=>(a[a.NO_RESULT=0]="NO_RESULT",a[a.REQUEST_FAILED=1]="REQUEST_FAILED",a[a.REQUEST_CANCELED=2]="REQUEST_CANCELED",a[a.BRIDGE_LIMIT=3]="BRIDGE_LIMIT",a[a.INSUFFICIENT_SLIPPAGE=4]="INSUFFICIENT_SLIPPAGE",a))(Xe||{});import{WidgetEvents as Nu}from"@rango-dev/queue-manager-rango-preset";var cs=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(cs||{}),ps=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(ps||{}),us=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(us||{}),ln=(a=>(a[a.RouteEvent=Nu.RouteEvent]="RouteEvent",a[a.StepEvent=Nu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(ln||{});function ci(t,e){let o=t.map(a=>a.swapperGroup),n=[];return rn(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(ci,"getUniqueSwappersGroups");function Wu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Wu,"sortLiquiditySourcesByGroupTitle");function Re(t,e){return e?.[t]==="hidden"}i(Re,"isFeatureHidden");function cn(t,e){return e?.[t]==="enabled"}i(cn,"isRoutingEnabled");var Lu=i((t,e,o)=>Re("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function pn(t){return t==li?{type:"error",message:Bu.t("Slippage must be greater than or equal to 0.01")}:t>sn&&t<=jn?{type:"warning",message:Bu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(pn,"getSlippageValidation");var Mu=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=Yr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>zp.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=tn.get(u);d?.length||(d=Hn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),tn.set(u,d)),d=Lu(d,s,a.features);let f=e().blockchains({type:o.type});return d.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(m=>m.name===g.blockchain)?!1:o.searchFor?!!(rt(g.symbol,o.searchFor)||rt(g.address||"",o.searchFor)||rt(g.name||"",o.searchFor)):!0).sort((g,m)=>{let y=e().isTokenPinned(g,o.type),S=e().isTokenPinned(m,o.type);if(y!==S)return y?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(g),A=o.getBalanceFor(m),b=Su(I,A);if(b!==0)return b}let C=l.get(g.blockchain),k=l.get(m.blockchain),v=Za(g,C),w=Za(m,k);if(v!==w)return v?-1:1;if(g.isPopular!==m.isPopular)return g.isPopular?-1:1;if(o.searchFor){let I=eu(g,m,o.searchFor);if(I)return I}return g.isSecondaryCoin!==m.isSecondaryCoin?g.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},findNativeToken:o=>{let n=o.feeAssets[0];return e().findToken({blockchain:o.name,address:n.address,symbol:n.symbol})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Qt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(Wu)},fetch:async()=>{try{let{routing:o}=e().config,n=cn("enableCentralizedSwappers",o),r=await at().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=r.popularTokens,p=r.swappers.filter(d=>d.enabled);r.blockchains.sort((d,f)=>d.sort-f.sort).forEach(d=>{d.enabled&&a.set(d.name,d)}),r.tokens.forEach(d=>{let f=gt(d);c[d.blockchain]||(c[d.blockchain]=[]),s.set(f,d),c[d.blockchain]?.push(f)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as MC,Catalonia as PC,Chinese as Pu,Denmark as _C,English as DC,Finland as $C,French as FC,German as OC,Greece as UC,Hungary as zC,India as HC,Indonesian as QC,Italian as qC,Japanese as GC,Korea as VC,Lithuania as KC,Malay as jC,Netherlands as XC,Pakistan as YC,Philippines as ZC,Poland as JC,Portuguese as RC,Russian as eT,SaudiArabia as tT,Serbia as oT,Slovakia as nT,SouthAfrica as rT,Spanish as iT,Swahili as aT,Swedish as sT,Thai as lT,Turkish as cT,Ukrainian as pT,Vietnamese as uT}from"@rango-dev/ui";var _u=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:rT},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:tT},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:MC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:PC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Pu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Pu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:_C},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:XC},{title:"English",label:"English",local:"en",SVGFlag:DC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:ZC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:$C},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:FC},{title:"German",label:"Deutsch",local:"de",SVGFlag:OC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:UC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:HC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:zC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:QC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:qC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:GC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:VC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:KC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:jC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:JC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:RC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:eT},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:oT},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:nT},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:iT},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:aT},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:sT},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:lT},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:cT},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:pT},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:YC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:uT}],un="en";var Du=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:si,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=rn(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Re("theme",n),s=Re("language",n),c=Re("liquiditySource",n),l=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||un},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||un}})},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=Yr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import ys from"bignumber.js";import dT from"mitt";var ke=dT(),mT={on:ke.on,off:ke.off};var $u=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 Fu from"bignumber.js";function Gt(t){return`${t.blockchain}${No}${t.address}${No}${t.symbol}`}i(Gt,"createAssetKey");function Ou(t,e){return`${Gt(e)}${No}${t}`}i(Ou,"createBalanceKey");function Xn(t){let[e,o,n]=t.split(No);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Xn,"extractAssetFromBalanceKey");function ms(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Gt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Fu(r??pe).multipliedBy(o[s].amount).toString():""})})}),o}i(ms,"computeNextBalancesWithNewPrices");function fs(t,e){let o={};return t.balances?.forEach(n=>{let r=Ou(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Fu(c??pe).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(fs,"createBalanceStateForNewAccount");function gs(t,e){for(let o in e){let n=Xn(o);if(n){let r=Gt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(gs,"updateAggregatedBalanceStateForNewAccount");function fT(t,e){let o=Xn(e);if(!o)return t;let n=Gt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(fT,"removeBalanceFromAggregatedBalance");function hs(t,e,o){let n=t.connectedWallets.filter(l=>e.includes(l.walletType));t.connectedWallets.forEach(l=>{e.includes(l.walletType)||(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=Xn(l);if(!p)return;!!n.find(d=>Ou(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=fT(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(hs,"computeNextStateAfterWalletBalanceRemoval");function gT(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(gT,"matchWalletDetailsWithConnectedWallet");var hT=nu(),Uu=$u((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Kn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Kn(s,a))?{...a,loading:!1,error:!1,explorerUrl:gT(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Kn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Kn(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 at().getMultipleTokenBalance({assets:p.map(({symbol:d,address:f,blockchain:h})=>({symbol:d,address:f,blockchain:h})),walletAddress:l});if(u){let d=e()._balances,f=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};ms(m,g,d);let y=fs(g,e);f=gs(f,y),d={...d,...y}}),t(h=>({_balances:{...h._balances,...d},_aggregatedBalances:f}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{let a=o[0];a&&(ke.emit("walletEvent",{type:"connect",payload:{walletType:a.walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o))},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=hs(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(ke.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0||!o[0])return;let r=[...new Set(o.map(l=>l.walletType))];e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await at().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(d=>{if(d.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};ms(f,d,l);let{_balances:h,_aggregatedBalances:g}=hs(f,r,{chains:[d.blockChain]});if(p=g,l=h,!e().connectedWallets.find(y=>r.includes(y.walletType)&&y.address===d.address&&y.chain===d.blockChain))return;let m=fs(d,e);p=gs(p,m),l={...l,...m}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let d=c.filter(f=>f.failed).map(f=>{let h=e().connectedWallets.find(g=>g.chain===f.blockChain&&g.address)?.walletType;return h?{chain:f.blockChain,walletType:h,address:f.address}:null}).filter(f=>!!f);d.length>0&&await e().fetchMainTokensBalances(d,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=Gt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0||!a[0])return null;let s=a[0];if(a.length===1&&n[s])return n[s];let c=n[a[0]];if(!c)return null;let l=c;return a.forEach(p=>{let u=n[p];if(!u)return;let d=new ys(u.amount),f=new ys(l.amount);d.isGreaterThan(f)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(No);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>hT(()=>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=Xn(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),d=l?.amount?new ys(l.amount).shiftedBy(-l.decimals):pe;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 zu(t){return yT()(ST((...e)=>({...Uu(...e),...Mu(...e),...Du(...e),...Op(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(zu,"createAppStore");var Hu=TT(null);function T(){let t=kT(Hu);if(wT(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(T,"useAppStore");function Qu(t){let e=vT();return e.current||(e.current=zu(t.config)),CT.createElement(Hu.Provider,{value:e.current},t.children)}i(Qu,"AppStoreProvider");function vt(t){let{chain:e}=t||{},{getAvailableProviders:o}=T(),{state:n,getWalletInfo:r}=bT(),{handleDisconnect:a}=en(),s=Pp(o()),c=hu(n,r,s,e);c=xT()?c.filter(f=>f.showOnMobile!==!1&&n(f.type).installed):c;let l=Cu(c),p=ET(()=>{let f=c?.filter(h=>h.state===Ss.CONNECTING)||[];for(let h of f)a(h)},[wu(c)]);IT(()=>()=>{p()},[]);let u=i(f=>{let h=f.find(m=>m.type===Yn.DEFAULT);return!h||h.state===Ss.NOT_INSTALLED?!1:f.filter(m=>m.state!=Ss.NOT_INSTALLED&&![Yn.DEFAULT,Yn.WALLET_CONNECT_2,Yn.LEDGER].includes(m.type)&&r(m.type).supportedChains.filter(y=>y.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),d=i(f=>f==Yn.DEFAULT&&!u(c),"shouldExcludeWallet");return{list:l.filter(f=>!d(f.type)),terminateConnectingWallets:p}}i(vt,"useWalletList");import{Modal as WT}from"@rango-dev/ui";import LT from"react";import{create as BT}from"zustand";var qu="rango-widget";var Zn=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(qu),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 NT=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"),lo=NT;var oe=lo(BT()((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})}}))),Mo=new Zn({onInit:()=>oe.setState({tabManagerInitiated:!0}),onClaim:()=>oe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>oe.setState({isActiveTab:!1})});function ne(t){let{watermark:e}=oe();return LT.createElement(WT,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import{i18n as fn}from"@lingui/core";import{Alert as VT,Button as KT,Divider as gn,Image as jT,MessageBox as XT,RadioRoot as YT,WalletImageContainer as ZT}from"@rango-dev/ui";import se,{useEffect as JT,useMemo as RT,useState as ek}from"react";import{i18n as DT}from"@lingui/core";import{Typography as Ju}from"@rango-dev/ui";import dn from"react";function pi(t,e){return t.find(o=>o.name===e)?.logo}i(pi,"getBlockchainLogo");import{darkTheme as MT,Image as PT,styled as Vt,Typography as _T}from"@rango-dev/ui";var ui=Vt("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"}}}}),di=Vt("div",{display:"flex",gap:"$8",alignItems:"center"}),Vu=Vt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Ku=Vt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),ju=Vt("div",{display:"flex",gap:"$6",alignItems:"center"}),Xu=Vt("div",{paddingLeft:"48px"}),Yu=Vt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),Zu=Vt(_T,{maxWidth:"100px"}),mi=Vt(PT,{variants:{disabled:{true:{opacity:"0.5"}}}});function fi(t){let{namespace:e}=t,o=T().blockchains();return dn.createElement(ui,{unsupported:!0},dn.createElement(di,null,dn.createElement(mi,{src:pi(o,e.id),size:40,disabled:!0}),dn.createElement(Ku,null,dn.createElement(Ju,{variant:"label",size:"large"},e.label),dn.createElement(Ju,{variant:"body",size:"xsmall"},DT.t("(Currently not supported)")))))}i(fi,"NamespaceUnsupportedItem");import{Checkbox as QT,Radio as qT}from"@rango-dev/ui";import ws from"react";import{i18n as ks}from"@lingui/core";import{ChevronDownIcon as FT,ChevronUpIcon as OT,Divider as UT,Typography as Jn}from"@rango-dev/ui";import Ae,{useEffect as zT,useState as HT}from"react";import{Image as ed,Tooltip as td,Typography as $T}from"@rango-dev/ui";import Mt from"react";import{styled as Ru}from"@rango-dev/ui";var Cs=Ru("div",{display:"flex",alignItems:"center",padding:0,margin:0}),gi=Ru("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var Ts=3;function od(t){let{chains:e}=t;return Mt.createElement(Cs,{id:"widget-supported-chains-container"},e.slice(0,Ts).map((o,n)=>Mt.createElement(td,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Mt.createElement(gi,{firstItem:n===0},Mt.createElement(ed,{src:o.logo,size:15})))),e.length>Ts&&Mt.createElement(td,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Mt.createElement(Cs,null,e.map((o,n)=>Mt.createElement(gi,{key:o.name,firstItem:n===0},Mt.createElement(ed,{src:o.logo,size:15}))))},Mt.createElement(gi,null,Mt.createElement($T,{variant:"body",size:"xsmall"},"+",e.length-Ts))))}i(od,"SupportedChainsList");function Po(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=HT(!1),p=T().blockchains();zT(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!o&&!r&&u.length>1;return Ae.createElement(ui,{hasError:!!o,clickable:!!s,onClick:s},Ae.createElement(di,null,Ae.createElement(mi,{src:pi(p,e.id),size:40}),Ae.createElement(Vu,{showSupportedChains:d||r||!!o},Ae.createElement(ju,null,Ae.createElement(Jn,{variant:"label",size:"large"},e.label),r&&Ae.createElement(Jn,{variant:"body",size:"small",color:"success500"},ks.t("Connected")),!!o&&Ae.createElement(Jn,{variant:"body",size:"small",color:"error500"},ks.t("Connection failed"))),d&&Ae.createElement(od,{chains:u}),r&&Ae.createElement(Zu,{variant:"body",size:"small",color:"neutral700"},a),o&&Ae.createElement(Yu,{onClick:()=>l(f=>!f)},Ae.createElement(Jn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},ks.t("See why")),c?Ae.createElement(OT,{size:12,color:"gray"}):Ae.createElement(FT,{size:12,color:"gray"}))),n),!!o&&c&&Ae.createElement(Ae.Fragment,null,Ae.createElement(UT,{size:4}),Ae.createElement(Xu,null,Ae.createElement(Jn,{variant:"body",size:"small",color:"neutral700"},o))))}i(Po,"NamespaceItem");function nd(t){let{onClick:e,type:o,namespace:n}=t;return ws.createElement(Po,{namespace:n,onClick:e,suffix:o==="radio"?ws.createElement(qT,{value:n.value}):ws.createElement(QT,{checked:t.value})})}i(nd,"NamespaceListItem");import{Button as GT,styled as rd}from"@rango-dev/ui";var hi=rd("ul",{padding:0,paddingBottom:"$20",margin:0}),mn=rd(GT,{minHeight:"$40"});function Rn(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,p]=ek([]),u=RT(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:y=>y.includes(m)?y.filter(S=>S!==m):y.concat(m))},"onSelect"),f=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");f?p([]):u&&p(u.map(m=>m.value))},"onSelectAll"),g=i(m=>r?se.createElement(YT,{value:l?.[0]},m):se.createElement(se.Fragment,null,m),"wrapRadioRoot");return JT(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(y=>y.getSupportedChains(c).some(S=>t.value.defaultSelectedChains?.includes(S.name)));p(m.map(y=>y.value))}else p(u.map(m=>m.value))},[]),se.createElement(se.Fragment,null,se.createElement(XT,{type:"info",title:fn.t("Connect {wallet}",{wallet:e.title}),description:fn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:se.createElement(ZT,null,se.createElement(jT,{src:s,size:45}))}),r?se.createElement(se.Fragment,null,se.createElement(gn,{size:20,className:"_initial_namespace_list_header_alert_top_divider"}),se.createElement(VT,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:fn.t("This wallet can only connect to one chain at a time. ")}),se.createElement(gn,{size:30,className:"_initial_namespace_list_header_alert_bottom_divider"})):se.createElement(se.Fragment,null,se.createElement(gn,{size:30,className:"_initial_namespace_list_header_button_top_divider"}),se.createElement(KT,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?fn.t("Deselect all"):fn.t("Select all")),se.createElement(gn,{size:10,className:"_initial_namespace_list_header_button_bottom_divider"})),se.createElement(hi,null,g(se.createElement(se.Fragment,null,a?.data.map((m,y,S)=>se.createElement(se.Fragment,{key:m.id},m.unsupported?se.createElement(fi,{namespace:m}):se.createElement(nd,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),y!==S.length-1&&se.createElement(gn,{size:10})))))),se.createElement(gn,{size:20}),se.createElement(mn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},fn.t("Connect")))}i(Rn,"Namespaces");import{i18n as er}from"@lingui/core";import{Alert as sk,Button as lk,Divider as hn,Image as ck,MessageBox as pk,WalletImageContainer as uk}from"@rango-dev/ui";import{useWallets as dk}from"@rango-dev/wallets-react";import ue from"react";import{styled as tk}from"@rango-dev/ui";var id=tk("div",{display:"flex",justifyContent:"end"});import{i18n as vs}from"@lingui/core";import{Button as ok,Spinner as nk}from"@rango-dev/ui";import bs,{useLayoutEffect as rk,useRef as ik,useState as ak}from"react";function ad(t){let{namespace:e,initialConnect:o,disabled:n,state:r,handleConnect:a,handleDisconnect:s}=t,[c,l]=ak(null),p=ik(!1);rk(()=>{o&&!p.current&&u()},[]);let u=i(async g=>{try{p.current=!0,await a(g)}catch(m){l(m)}finally{p.current=!1}},"handleConnectNamespace"),d=i(async()=>{l(null),r.connected?await s():u({shouldAskForDerivationPath:!0})},"handleButtonClick"),f=i(()=>{let g=r.accounts?.[0]?.split(":"),m=g?.[g.length-1];return!r.connected||!m?null:so(m)},"getConnectedAddress"),h=i(()=>r.connected?vs.t("Disconnect"):c?vs.t("Try again"):vs.t("Connect"),"getButtonText");return bs.createElement(Po,{namespace:e,connected:r.connected,error:c?.message,address:f(),suffix:r.connecting?bs.createElement(nk,{color:"info"}):bs.createElement(ok,{id:"widget-name-space-connect-btn",variant:"ghost",type:r.connected?"error":"primary",size:"xsmall",onClick:async()=>d(),disabled:n},h())})}i(ad,"NamespaceDetachedItem");function tr(t){let{value:e,selectedNamespaces:o,onConfirm:n,confirmText:r=er.t("Done"),onDisconnectWallet:a,navigateToDerivationPath:s}=t,{targetWallet:c}=e,{connect:l,disconnect:p,state:u}=dk(),d=c.type,f=u(d),h=c.properties?.find(v=>v.name==="namespaces"),g=c.properties?.find(v=>v.name==="derivationPath"),m=h?.value.selection==="single",y=i(async(v,w)=>{m&&await p(d),g&&w?.shouldAskForDerivationPath?s(v):await l(d,[{namespace:v,network:"",derivationPath:w?.derivationPath??void 0}])},"handleConnectNamespace"),S=i(async v=>{await p(d,[v])},"handleDisconnectNamespace"),C=i(()=>m?ue.createElement(ue.Fragment,null,ue.createElement(hn,{size:20,className:"_detached_namespace_list_header_alert_top_divider"}),ue.createElement(sk,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:er.t("This wallet can only connect to one chain at a time.")}),ue.createElement(hn,{size:30,className:"_detached_namespace_list_header_alert_bottom_divider"})):ue.createElement(ue.Fragment,null,ue.createElement(hn,{size:30,className:"_detached_namespace_list_header_button_top_divider"}),ue.createElement(id,null,ue.createElement(lk,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:f.connecting||!f.connected,onClick:a},er.t("Disconnect wallet"))),ue.createElement(hn,{size:16,className:"_detached_namespace_list_header_button_bottom_divider"})),"renderNamespaceListHeader"),k=i(v=>{if(v.unsupported)return ue.createElement(fi,{namespace:v});let w=o?.find(b=>b.namespace===v.value),I=f.namespaces?.get(v.value);if(!I)throw new Error(`State for ${v.value} was not found!`);let A=m&&f.connecting;return ue.createElement(ad,{namespace:v,initialConnect:!!w,disabled:A,state:I,handleConnect:async b=>y(v.value,{derivationPath:w?.derivationPath,shouldAskForDerivationPath:b?.shouldAskForDerivationPath}),handleDisconnect:async()=>S(v.value)})},"renderNamespaceItem");return ue.createElement(ue.Fragment,null,ue.createElement(pk,{type:"info",title:er.t("Connect {wallet}",{wallet:c.type}),description:er.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:ue.createElement(uk,null,ue.createElement(ck,{src:c.image,size:45}))}),C(),ue.createElement(hi,{id:"widget-detached-namespace-list"},c.needsNamespace?.data.map((v,w,I)=>ue.createElement(ue.Fragment,{key:v.id},k(v),w!==I.length-1&&ue.createElement(hn,{size:10})))),ue.createElement(hn,{size:20}),ue.createElement(mn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:n},r))}i(tr,"Detached");import{i18n as yn}from"@lingui/core";import{Divider as hk,Image as yk,MessageBox as Sk,Select as Ck,TextField as Tk}from"@rango-dev/ui";import bt,{useEffect as kk,useState as ld}from"react";import{namespaces as mk}from"@rango-dev/wallets-shared";var yi={id:"custom",label:"Custom",generateDerivationPath:t=>t};function xs(t){let e=t?mk[t]?.derivationPaths:null;return e?[...e,yi]:[]}i(xs,"getDerivationPaths");import{Button as fk,styled as Es,Typography as gk}from"@rango-dev/ui";var sd=Es("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Is=Es(gk,{paddingLeft:"$10"}),As={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},OP=Es(fk,{minHeight:"$40"});var cd="0";function or(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=ld(null),[c,l]=ld(cd),p=a===yi.id,u=xs(o),d=i(({value:h})=>{let g=u?.find(m=>m.id===h);g&&(a===yi.id&&Number.isNaN(Number(c))&&l(cd),s(g.id))},"handleDerivationPathItemClick"),f=i(()=>{let h=u.find(g=>g.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return kk(()=>{s(xs(o)[0]?.id||null)},[o]),bt.createElement(bt.Fragment,null,bt.createElement(Sk,{type:"info",title:yn.t("Select Derivation Path"),description:yn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:bt.createElement(yk,{src:n,size:45})}),bt.createElement(sd,{className:"_derivation_path_inputs_container"},bt.createElement(Is,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},yn.t("Choose Derivation Path Template")),bt.createElement(Ck,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:As}}),bt.createElement(hk,{size:20}),bt.createElement(Is,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},p?yn.t("Enter Path"):yn.t("Enter Index")),bt.createElement(Tk,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:As})),bt.createElement(mn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},yn.t("Confirm")))}i(or,"DerivationPath");import{i18n as Sn}from"@lingui/core";import{Image as bk,MessageBox as Bs,WalletImageContainer as xk,WalletState as Ek}from"@rango-dev/ui";import{useWallets as Ik}from"@rango-dev/wallets-react";import _o from"react";import{keyframes as wk,styled as Ns}from"@rango-dev/ui";var YP=Ns("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),pd=Ns("div",{position:"relative"}),vk=wk({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),ud=Ns("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${vk} 1s linear infinite`,top:0,bottom:0,right:0,left:0});function Ws(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a,getWalletInfo:s}=Ik();return Gn(s(n),a(n))===Ek.CONNECTED?_o.createElement(Bs,{type:"success",title:Sn.t("Wallet Connected"),description:Sn.t("Your wallet is connected, you can use it to swap.")}):o?_o.createElement(Bs,{type:"error",title:Sn.t("Failed to Connect"),description:o||Sn.t("Your wallet is not connected. Please try again.")}):_o.createElement(Bs,{type:"loading",title:Sn.t("Connecting to your wallet"),description:Sn.t("Click connect in your wallet popup."),icon:_o.createElement(pd,null,_o.createElement(xk,null,_o.createElement(bk,{src:r,size:45})),_o.createElement(ud,null))})}i(Ws,"ConnectStatus");function dd(t,e){return t().status==="init"&&!!e}i(dd,"isOnStatus");function nr(t){return t().status==="namespace"}i(nr,"isOnNamespace");function rr(t){return t().status==="derivationPath"}i(rr,"isOnDerivationPath");function Io(t){return t().status==="detached"}i(Io,"isOnDetached");var Wk=3e3,Lk=300;function ir(t){let e=Bk(),[o,n]=md(!1),[r,a]=md(),s=i(w=>{a(w.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=vt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:f,handleDisconnect:h}=en(),g=i(w=>{u(t.wallet,w).then(k).catch(s)},"handleConfirmNamespaces"),m=i(()=>{S()},"handleDetachedConfirm"),y=i(w=>{if(!w)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(t.wallet,w).then(k).catch(s)},"handleDerivationPathConfirm"),S=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),k=i((w,I)=>{let A=w.status==="connected",b=["disconnected","disconnected-unhandled"].includes(w.status);A?(t.onConnect?.(),I||(e.current=setTimeout(S,Wk))):b&&S()},"afterConnected"),v=i(w=>{t.wallet?.needsDerivationPath&&u(t.wallet,[w])},"handleNavigateToDerivationPath");return Nk(()=>{if(t.wallet){C();let w=!1,I=!0;i(()=>{setTimeout(()=>{I=!1,w||n(!0)},Lk)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(b=>{["namespace","Detached","derivation-path"].includes(b.status)||(w=!0),k(b,I)}).catch(s)}},[t.wallet]),co.createElement(ne,{id:t.id,open:o,onClose:S,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},dd(d,t.wallet)&&co.createElement(co.Fragment,null,co.createElement(Ws,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),co.createElement(Ak,{direction:"vertical",size:32})),nr(d)&&co.createElement(Rn,{onConfirm:g,value:d().namespace}),rr(d)&&co.createElement(or,{onConfirm:y,value:d().derivationPath}),Io(d)&&co.createElement(tr,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces,navigateToDerivationPath:v}))}i(ir,"StatefulConnectModal");import Ga from"react";import Mk,{Fragment as Pk}from"react";import{MemoryRouter as _k,useInRouterContext as Dk}from"react-router";function Si({children:t}){let o=Dk()?Pk:_k;return Mk.createElement(o,null,t)}i(Si,"AppRouter");import{I18nManager as M0}from"@rango-dev/ui";import wp from"react";import Ue from"react";import{useRoutes as p0}from"react-router-dom";var D={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 Tn,useRef as xi}from"react";import tt from"bignumber.js";import{create as Vd}from"zustand";import{subscribeWithSelector as Kd}from"zustand/middleware";import{createContext as $k,useContext as Fk}from"react";var fd=$k({swapMode:"swap",isMultiMode:!1});function et(){let{swapMode:t,isMultiMode:e}=Fk(fd);return{swapMode:t,isMultiMode:e}}i(et,"useSwapMode");import{i18n as St}from"@lingui/core";import{getRelatedWalletOrNull as zk,RouteEventType as sD}from"@rango-dev/queue-manager-rango-preset";import He from"bignumber.js";import{PendingSwapNetworkStatus as sr}from"rango-types";import{i18n as ze}from"@lingui/core";var re=i(()=>({genericServerError:ze.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:ze.t("Please reset your liquidity sources."),description:ze.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:ze.t("No Routes Found."),description:ze.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:ze.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:ze.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:ze.t("High Price Impact"),title:ze.t("Price impact is too high!"),description:ze.t("The price impact is significantly higher than the allowed amount."),confirmMessage:ze.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:ze.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:ze.t("USD Price Unknown"),title:ze.t("USD Price Unknown, Cannot calculate Price Impact."),description:ze.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:ze.t("Confirm USD Price Unknown")}}),"errorMessages");function gd(t){return t.type===0?t.diagnosisMessage??re().noResultError.title:t.type===1?t.diagnosisMessage??re().genericServerError:""}i(gd,"getQuoteErrorMessage");import{i18n as Ci}from"@lingui/core";var Do=i(()=>({connectWallet:Ci.t("Connect Wallet"),swap:Ci.t("Swap"),swapAnyway:Ci.t("Swap anyway"),ethWarning:Ci.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ls(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(Ls,"getFeeLabel");var Ms=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],hd=100,yd=30,Sd=15,Cd=60;var Td=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],kd=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as Uk}from"@rango-dev/queue-manager-rango-preset";import K_ from"bignumber.js";function vd(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(vd,"getRequiredBalanceOfWallet");function jt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(jt,"getPriceImpactLevel");function Ti(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Uk(t.steps);if(!r||!n)return{fromBlockchain:null,fromToken:void 0,toBlockchain:null,toToken:void 0,inputAmount:""};let s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=Ao(a?a.toBlockchain:n.fromBlockchain,e),l=Ao(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(Ti,"createRetryQuote");function Cn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=ar(o),s=yt(o);if(o&&a&&s){let p=Kt(a.toString(),s.toString());if(!!p&&Ad(a,p)){let d=wi(o?.swaps,n),f=jt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:f}}}if(e&&Wd(e,o))return{type:4,usdValueChange:M(yt(o)?.minus(yt(e)??0).toString()??"0",null,2),percentageChange:M(Kt(yt(e)??"1",yt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=vi(o.swaps),l=r>sn;if(Bd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Nd(o,r),minRequiredSlippage:c};return null}i(Cn,"generateQuoteWarnings");function bd(t){return![4].includes(t.type)}i(bd,"isQuoteWarningConfirmationRequired");function Kt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ps(t.toString(),e.toString());return n&&n<0?n:null}i(Kt,"getPriceImpact");var xd=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"),ki=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"),Ed=i((t,e,o)=>{let n=e[0];if(!e.length||!n)return null;if(!t)return{requestAmount:o,validationStatus:null,...n};let r=new Set(t.swaps.map(s=>s.swapperId)),a=e.find(s=>{let c=new Set(s.swaps.map(l=>l.swapperId));return Array.from(r).every(l=>c.has(l))});return{requestAmount:o,validationStatus:null,...a||n}},"getDefaultQuote"),Id=i(t=>{let e=i((o,n)=>{let r=Ms.indexOf(o.value),a=Ms.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Ad(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return Td.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new He(r)))}i(Ad,"hasHighValueLoss");function Ld(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new He(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new He(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(Ld,"hasLimitError");function Md(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new He(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new He(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0];if(!e)return{swap:void 0,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new He(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new He(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=St.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=St.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=St.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=St.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Md,"getLimitErrorMessage");function Pd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Do().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Do().swap,action:"confirm-swap",disabled:!0}:s?{title:Do().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Do().ethWarning,action:"confirm-warning",disabled:!1}:{title:Do().swap,action:"confirm-swap",disabled:!1}:{title:Do().connectWallet,action:"connect-wallet",disabled:!1}}i(Pd,"getSwapButtonState");function _s(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(pe))&&e&&e!=="0"&&n!==0)}i(_s,"canComputePriceImpact");function Ds(t,e){let o=pe;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(!r||r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new He(r.amount).multipliedBy(a||0))}return o}i(Ds,"getUsdFeeOfStep");function wi(t,e){return t.reduce((o,n)=>o.plus(Ds(n,e)),pe)}i(wi,"getTotalFeeInUsd");function $s(t){let e=pe,o=new He(t.price||0);return e=e.plus(new He(t.amount).multipliedBy(o)),e}i($s,"getUsdFee");function _d(t){return t.reduce((e,o)=>e.plus($s(o)),pe)}i(_d,"getTotalFeesInUsd");function Dd(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(Dd,"getFeesGroup");function $d(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?Object.fromEntries(e):null}i($d,"checkSlippageErrors");function Nd(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?Object.fromEntries(o):null}i(Nd,"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 Fd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:d,affiliateWallets:f,destination:h,contractCall:g}=t,m=a?.reduce((C,k)=>(C[k.chain]=k.address,C),{}),y=[];return r?.forEach(C=>{y.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:y,selectedWallets:m??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1}}}i(Fd,"createQuoteRequestBody");function Od(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Od,"getWalletsForNewSwap");function ar(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(ar,"getUsdInputFrom");function yt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(yt,"getUsdOutputFrom");function Ps(t,e){return new He(e).div(new He(t)).minus(1).multipliedBy(hd).toNumber()}i(Ps,"getPercentageChange");function Wd(t,e){let o=ar(t),n=yt(t),r=yt(e);if(!o||!n||!r)return!1;let a=Ps(n.toString(),r.toString());return kd.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Wd,"isOutputAmountChangedExcessively");function Ud(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=>vd(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=M(new He(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=M(new He(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=St.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=St.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=St.t(" for input and network fee")),St.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(Ud,"generateBalanceWarnings");function lr(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==sr.NetworkChanged}i(lr,"isNetworkStatusInWarningState");function zd(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,"")),lr(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?zk(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case sr.WaitingForConnectingWallet:r=u?St.t("Connect {wallet}",{wallet:u}):r;break;case sr.WaitingForQueue:r=r||St.t("Waiting for other running tasks to be finished");break;case sr.WaitingForNetworkChange:r=r||St.t("Waiting for changing wallet network");break;case sr.NetworkChangeFailed:r=r||St.t("The network switch could not be completed. Please try again, or switch the network manually in your wallet.");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(zd,"getSwapMessages");function Hd(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(Hd,"getLastConvertedTokenInFailedSwap");function Qd(t){return t.status==="failed"}i(Qd,"shouldRetrySwap");function qd(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(f=>f.chain===d)),p=c.every(d=>r.some(f=>f.chain===d)),u=o&&a?on(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(qd,"isConfirmSwapDisabled");function Gd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Gd,"isTokensIdentical");var bi=i((t,e)=>t?.usdPrice?new tt(e||pe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),jd=i(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=pe,a=o.inputUsdValue;return qn(o.inputAmount)?(e&&(n=e?.outputAmount?new tt(e?.outputAmount):null,a=ar(e)??pe,r=yt(e)??pe),{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:bi(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=fu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=pu(e);ei(e)||(o=iu(o),o=au(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new tt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:bi(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:bi(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?bi(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})}),"initializer"),Xd=Vd()(Kd(jd)),Yd=Vd()(Kd(jd)),Hk=lo(Xd),Qk=lo(Yd);function z(){let{swapMode:t}=et();return lo(t==="refuel"?Yd:Xd)}i(z,"useQuoteStore");var Zd=i((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ke.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&&ke.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})},"subscribeCallback"),Jd=Hk.subscribe(Zd),Rd=Qk.subscribe(Zd);function em(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=z()(),u=T().config,d=T().fetchStatus,f=T().blockchains(),{findToken:h}=T(),{setAffiliateRef:g,setAffiliatePercent:m,setAffiliateWallets:y}=T(),S=u?.from?.tokens,C=u?.from?.blockchains,k=u?.to?.tokens,v=u?.to?.blockchains,w=xi(void 0),I=xi(void 0),A=xi(void 0),b=xi(void 0);Tn(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),Tn(()=>{if(d==="success"){r();let E=f.find(P=>P.name===u?.from?.blockchain),x=u?.from?.token,W=x&&h(x);(E||!E&&A.current)&&n(E??null),W?a({token:W,meta:{blockchains:f}}):!W&&w.current&&a({token:null}),A.current=u?.from?.blockchain,w.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),Tn(()=>{ss(s,S)&&a({token:null}),ls(l,C)&&n(null)},[S,C]),Tn(()=>{ss(c,k)&&a({token:null}),ls(p,v)&&o(null)},[k,v]),Tn(()=>{if(d==="success"){r();let E=f.find(P=>P.name===u?.to?.blockchain),x=u?.to?.token,W=x&&h(x);(E||!E&&b.current)&&o(E??null),W?e({token:W,meta:{blockchains:f}}):!W&&I.current&&e({token:null}),b.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]),Tn(()=>{g(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),y(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(em,"useSyncStoresWithConfig");import{useEffect as Us,useRef as qk}from"react";import{useInRouterContext as Gk,useLocation as Vk,useSearchParams as Kk}from"react-router-dom";function Fs(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(Fs,"convertTokenSearchParamToAsset");function Os(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Os,"tokenToSearchParam");function Hs(){let t=Vk(),[e,o]=Kk(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:f}=z()(),h=T().fetchStatus,g=T().blockchains(),m=Gk(),{updateIframe:y,updateCampaignMode:S}=T(),C=T().isInCampaignMode(),k=qk(),{findToken:v}=T(),w=i(()=>{let A={};for(let[B,R]of e.entries())(B.startsWith("utm_")||B.startsWith("privy_"))&&(A[B]=R);let b=e.get("fromAmount"),E=e.get("fromBlockchain"),x=e.get("fromToken"),W=e.get("toBlockchain"),P=e.get("toToken"),U=e.get("autoConnect"),G=e.get("clientUrl"),K=e.get("liquiditySources"),J=e.get("blockchain");return{fromAmount:b,fromBlockchain:E,fromToken:x,toBlockchain:W,toToken:P,autoConnect:U,clientUrl:G,liquiditySources:K,extraQueryParams:A,blockchain:J}},"getUrlSearchParams"),I=i(A=>{for(let b in A)A[b]||delete A[b];o(A,{replace:!0})},"updateUrlSearchParams");Us(()=>{let{autoConnect:A,clientUrl:b,extraQueryParams:E,blockchain:x}=w();m&&h==="success"&&I({fromBlockchain:n?.name,fromToken:Os(a),toBlockchain:r?.name,toToken:Os(s),fromAmount:c,autoConnect:A??void 0,clientUrl:b??void 0,blockchain:x??void 0,liquiditySources:C?k.current:void 0,...E})},[t.pathname,c,n,a,r,s,C,h]),Us(()=>{if(!m)return;let A=w();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&f(A.fromAmount),h==="success"){let b=g.find(G=>G.name===A.fromBlockchain),E=A.fromToken&&b&&Fs(A.fromToken,b),x=E?v(E):void 0,W=g.find(G=>G.name===A.toBlockchain),P=A.toToken&&W&&Fs(A.toToken,W),U=P?v(P):void 0;b&&(l(b),x&&u({token:x,meta:{blockchains:g}})),W&&(p(W),U&&d({token:U,meta:{blockchains:g}}))}},[h]),Us(()=>{let{clientUrl:A,liquiditySources:b}=w();y("clientUrl",A||void 0),S("liquiditySources",b?.split(",")??void 0)},[])}i(Hs,"useSyncUrlAndStore");import{i18n as vn}from"@lingui/core";import{Alert as fv,Button as gv,darkTheme as hv,Divider as Sl,DoneIcon as yv,styled as Sv,TextField as Cv,Typography as Tv}from"@rango-dev/ui";import qe,{useState as kv}from"react";import{useNavigate as wv,useSearchParams as vv}from"react-router-dom";import{ChevronRightIcon as jk,Divider as im,Image as Xk,Typography as am}from"@rango-dev/ui";import xt from"react";import{darkTheme as tm,styled as Qs}from"@rango-dev/ui";var om=Qs("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${tm} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${tm} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),nm=Qs("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),rm=Qs("div",{display:"flex"});function qs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return xt.createElement(nm,null,xt.createElement(am,{size:"large",variant:"label"},n),xt.createElement(im,{size:10}),xt.createElement(om,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},xt.createElement(rm,null,r&&xt.createElement(xt.Fragment,null,xt.createElement(Xk,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),xt.createElement(im,{size:4,direction:"horizontal"})),xt.createElement(am,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),xt.createElement(jk,{size:12,color:"black"})))}i(qs,"BlockchainSelectorButton");import{i18n as js}from"@lingui/core";import{Button as nw,Divider as dm,MessageBox as rw}from"@rango-dev/ui";import po,{useEffect as mm,useState as Xs}from"react";import{i18n as Ei}from"@lingui/core";import{Divider as $o,ExternalLinkIcon as Jk,Image as Rk,InfoIcon as ew,Tooltip as tw,Typography as pr}from"@rango-dev/ui";import de from"react";var sm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function lm(t,e){let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(lm,"generateExplorerLink");import{Button as Yk,darkTheme as kn,styled as cr,Typography as Zk}from"@rango-dev/ui";var Gs=cr("a",{textDecoration:"none",color:"$colors$neutral700",[`.${kn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${kn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${kn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${kn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),cm=cr("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${kn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${kn} &`]:{color:"$colors$neutral900"}}}),Vs=cr(Yk,{minHeight:"$40"}),pm=cr(Zk,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"96px"}),um=cr("div",{display:"flex",justifyContent:"center",alignItems:"center"});var ow=9;function Ks(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=lm(n.address,s),l=i(()=>window.open(sm,"_blank"),"onClickLearnMore");return de.createElement(ne,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},de.createElement(cm,null,de.createElement(Rk,{src:n.image===""?Zr:n.image,size:45,type:"circular"}),de.createElement($o,{size:4}),de.createElement(um,null,de.createElement(pm,{variant:"title",size:"medium"},n.symbol),n.symbol.length>ow&&de.createElement(tw,{content:n.symbol,container:N()},de.createElement(ew,{size:12,color:"gray"}))),de.createElement(pr,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),de.createElement($o,{size:4}),de.createElement(pr,{variant:"body",size:"medium"},c?de.createElement(Gs,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,de.createElement(Jk,{size:12,color:"gray"})):de.createElement(Gs,null,n.address)),de.createElement($o,{size:4}),n.coinSource&&de.createElement(pr,{className:"_coin-source",variant:"body",size:"xsmall"},Ei.t("via")," ",de.createElement(pr,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),de.createElement($o,{size:"32"}),de.createElement(pr,{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."))),de.createElement($o,{size:40}),de.createElement($o,{size:10}),de.createElement(Vs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Ei.t("Import Anyway")),de.createElement($o,{size:10}),de.createElement(Vs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Ei.t("Learn More")))}i(Ks,"CustomTokenModal");function ur(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=T(),[d,f]=Xs(!1),[h,g]=Xs(!1),[m,y]=Xs(!1),S=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),k=i(()=>{y(!0),C()},"handleErrorModalButtonClick"),v=i(()=>{m&&n?.type==="network-error"&&(y(!1),S()),l()},"handleExit"),w=i(()=>{e&&(u(e),c())},"handleSubmit");return mm(()=>{n&&f(!0)},[n]),mm(()=>{o&&e&&g(!0)},[o,e]),po.createElement(po.Fragment,null,po.createElement(ne,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:C,onExit:v,container:N()},po.createElement(rw,{title:n?.title??"",type:"error",description:n?.message||js.t("Failed Network, Please retry.")},po.createElement(dm,{size:40}),po.createElement(dm,{size:10}),po.createElement(nw,{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"?js.t("Retry"):js.t("Add another custom token")))),o&&e&&po.createElement(Ks,{blockchain:o,token:e,onSubmitClick:w,onClose:()=>g(!1),open:h,onExit:p}))}i(ur,"ImportCustomToken");import{useManager as lv}from"@rango-dev/queue-manager-react";import{BottomLogo as cv,Divider as Km,Header as pv}from"@rango-dev/ui";import Be,{useEffect as Di,useLayoutEffect as uv,useRef as jm,useState as Xm}from"react";import{useRef as iw}from"react";function Ii(){return window.self!==window.top}i(Ii,"isAppLoadedIntoIframe");function Ys(){let t=iw(null),{iframe:e}=T(),o=Ii()&&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(Ys,"useIframe");import{useNavigate as aw}from"react-router-dom";function Qe(){let t=aw();return()=>t(-1)}i(Qe,"useNavigateBack");import{createTheme as nl,darkTheme as Cw,lightTheme as Tw}from"@rango-dev/ui";import{useEffect as kw,useState as ww}from"react";import{theme as yw,darkColors as Sw}from"@rango-dev/ui";import tl from"react";var Ai=16,Ni=255,fm=.11;function sw(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(sw,"expandShortHexColor");function lw(t,e){return t.padStart(e,"0")}i(lw,"pad");function Zs(t){let e=Math.min(Math.max(Math.round(t),0),Ni);return lw(e.toString(Ai),2)}i(Zs,"intToHex");function cw(t){return`#${Zs(t.red)}${Zs(t.green)}${Zs(t.blue)}`}i(cw,"rgbToHex");function pw(t){let e=parseInt(t.slice(1,3),Ai),o=parseInt(t.slice(3,5),Ai),n=parseInt(t.slice(5,7),Ai);return{red:e,green:o,blue:n}}i(pw,"hexToRGB");function uw(t,e){let o=1-fm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(uw,"generateShade");function dw(t,e){let o=fm*e;return{red:t.red+(Ni-t.red)*o,green:t.green+(Ni-t.green)*o,blue:t.blue+(Ni-t.blue)*o}}i(dw,"generateTint");function mw(t){return gm(t,uw)}i(mw,"calculateShades");function fw(t){return gm(t,dw)}i(fw,"calculateTints");function gm(t,e){let o=pw(t),n=[];for(let r=1;r<9;r++)n.push(cw(e(o,r)));return n}i(gm,"calculateColors");function Js(t,e,o){let a=fw(t).reverse().concat(t),s=mw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let d=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${d}`]=f)}return l}i(Js,"createTintsAndShades");function Rs(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)&&!du(r)){let l=sw(a);Object.assign(n,Js(l,r,s))}}return{...n,...e}}i(Rs,"expandToGenerateThemeColors");var hm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),gw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=hm(o%52)+e;return hm(o%52)+e},"toAlphabeticName"),hw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),el=i(t=>gw(hw(5381,JSON.stringify(t))>>>0),"toHash");function ol(t){let e=yw.colors,o={...e,...Sw},n,r;if(t?.light){let s={colors:Rs(e,t.light)};n={id:`${as}-light-${el(s)}`,tokens:s}}if(t?.dark){let s={colors:Rs(o,t.dark,{reverseNeutralRange:!0})};r={id:`${as}-dark-${el(s)}`,tokens:s}}return{light:n,dark:r}}i(ol,"customizedThemeTokens");function ym(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>tl.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(tl.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(tl.cloneElement(e,{key:c}))}}),o}i(ym,"joinList");function Sm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Sm,"doesWindowPreferDarkColorScheme");function uo(t){let{colors:e,fontFamily:o=jp,borderRadius:n=Eu,secondaryBorderRadius:r=Iu}=t,[a,s]=ww(Sm()?"dark":"light"),{theme:c}=T(),{dark:l,light:p}=ol(e),u=nl({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,Tw.className],f=[u.className,Cw.className];if(p){let g=nl(p.id,p.tokens);d.push(g.className)}if(l){let g=nl(l.id,l.tokens);f.push(g.className)}return kw(()=>{let g=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return Sm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=d.join(" "),m=f.join(" ");return c==="auto"?a==="dark"?m:g:c==="dark"?m:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(uo,"useTheme");var Ct=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 vw,Button as bw}from"@rango-dev/ui";import Tm from"react";function rl(t){return Tm.createElement(vw,{action:Tm.createElement(bw,{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(rl,"ActivateTabAlert");import{i18n as il}from"@lingui/core";import{Button as xw,Divider as Ew,MessageBox as Iw}from"@rango-dev/ui";import Bi from"react";function al(t){let{open:e,onClose:o,onConfirm:n}=t;return Bi.createElement(ne,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},Bi.createElement(Iw,{title:il.t("Activate current tab"),type:"warning",description:il.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},Bi.createElement(Ew,{size:20}),Bi.createElement(xw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},il.t("Confirm"))))}i(al,"ActivateTabModal");import{ChevronLeftIcon as Bw}from"@rango-dev/ui";import Am from"react";import{css as Aw,darkTheme as km,IconButton as Nw,styled as Fo}from"@rango-dev/ui";var Pt=Fo(Nw,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${km} &`]:{backgroundColor:"$neutral"}}}),wm=Fo("div",{position:"absolute",background:"$secondary500",[`.${km} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),mo=Fo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),vm=Fo("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),bm=Fo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),xm=Fo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Em=Aw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Im=Fo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function sl(t){return Am.createElement(Pt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Am.createElement(Bw,{color:"black",size:16}))}i(sl,"BackButton");import{i18n as Ww}from"@lingui/core";import{Button as Lw,Typography as Mw}from"@rango-dev/ui";import ll from"react";function cl(t){return ll.createElement(mo,null,ll.createElement(Lw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},ll.createElement(Mw,{variant:"label",size:"medium",color:"error500"},Ww.t("Cancel"))))}i(cl,"CancelButton");import{i18n as Pw}from"@lingui/core";import{Image as _w,Tooltip as Dw,WalletIcon as $w,WalletState as Nm}from"@rango-dev/ui";import Oo from"react";function pl(t){let{list:e}=vt(),o=e.filter(r=>r.state===Nm.CONNECTED||r.state===Nm.PARTIALLY_CONNECTED),n=o.length?Oo.createElement("div",{className:Em()},o.map(r=>Oo.createElement(Im,{key:r.title},Oo.createElement(_w,{src:r.image,size:14})))):Pw.t("Connect Wallet");return Oo.createElement(Dw,{container:t.container,side:"bottom",content:n},Oo.createElement(Pt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Oo.createElement(wm,null),Oo.createElement($w,{size:18,color:"black"})))}i(pl,"WalletButton");import{i18n as Li}from"@lingui/core";import{NotificationsIcon as Rw,Popover as ev,SettingsIcon as tv,Tooltip as Mi,TransactionIcon as ov}from"@rango-dev/ui";import Me from"react";import{Notifications as zw}from"@rango-dev/ui";import Hw from"react";import{useNavigate as Qw}from"react-router-dom";import{create as Fw}from"zustand";import{persist as Ow,subscribeWithSelector as Uw}from"zustand/middleware";var Ne=lo(Fw()(Ow(Uw((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1];if(!r||!a)return;let s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function ul(){let t=Qw(),{getNotifications:e,clearNotifications:o}=Ne(),n=e(),r=T().blockchains(),{findToken:a}=T();return Hw.createElement(zw,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Dp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${D.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(ul,"NotificationContent");import{useManager as qw}from"@rango-dev/queue-manager-react";import{InProgressIcon as Gw}from"@rango-dev/ui";import Bm from"react";var Vw=i(()=>{let{manager:t}=qw();return Ct(t).map(({swap:o})=>o).find(o=>o.status==="running")?Bm.createElement(xm,{id:"widget-header-history-badge-container"},Bm.createElement(Gw,{color:"info",size:6})):null},"InProgressTransactionBadge"),Wm=Vw;import{EventSeverity as Kw}from"@rango-dev/queue-manager-rango-preset";import{Typography as jw}from"@rango-dev/ui";import Lm from"react";function Mm(){let{getNotifications:t}=Ne(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Kw.WARNING);return o?Lm.createElement(vm,{isSever:n},Lm.createElement(jw,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Mm,"NotificationsBadge");import{RefreshProgressButton as Xw}from"@rango-dev/ui";import dl,{useEffect as Yw,useState as Pm}from"react";var Zw=1e3,_m=60,Jw=100;function Wi({onClick:t}){let[e,o]=Pm(0),[n,r]=Pm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Yw(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===_m&&c()},Zw):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 dl.createElement(Pt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},dl.createElement(bm,{onTransitionEnd:()=>r(!1),isRefetched:n},dl.createElement(Xw,{size:22,color:t?"black":"gray",progress:e/_m*Jw})))}i(Wi,"RefreshButton");function Uo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=T(),c=Re("notification",s)||r.includes("notifications");return Me.createElement(Me.Fragment,null,!r.includes("refresh")&&Me.createElement(Mi,{container:a||N(),side:"top",content:Li.t("Refresh")},Me.createElement(Wi,{onClick:e})),!c&&Me.createElement(ev,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:Me.createElement(ul,null)},Me.createElement("div",null,Me.createElement(Mi,{container:N(),side:"top",content:Li.t("Notifications")},Me.createElement(Pt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Me.createElement(Rw,{size:18,color:"black"}),Me.createElement(Mm,null))))),!r.includes("settings")&&Me.createElement(Mi,{container:N(),side:"top",content:Li.t("Settings")},Me.createElement(Pt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Me.createElement(tv,{size:18,color:"black"}))),!r.includes("history")&&Me.createElement(Mi,{container:N(),side:"top",content:Li.t("History")},Me.createElement(Pt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Me.createElement(ov,{size:18,color:"black"}),Me.createElement(Wm,null))))}i(Uo,"HeaderButtons");import{i18n as ml}from"@lingui/core";import{Divider as $m,MessageBox as iv,RefreshIcon as av}from"@rango-dev/ui";import wn from"react";import{Button as nv,styled as rv}from"@rango-dev/ui";var Dm=rv(nv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function fl(t){let{open:e,onClose:o}=t;return wn.createElement(ne,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},wn.createElement(iv,{title:ml.t("Something went wrong"),type:"error",description:ml.t("Something went wrong. Please refresh the app.")},wn.createElement($m,{size:30}),wn.createElement(Dm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},wn.createElement(av,{size:20,color:"primary"}),wn.createElement($m,{size:4,direction:"horizontal"}),ml.t("Refresh"))))}i(fl,"RefreshModal");var Fm="700px",Om="425px",Um="550px",zm="640px",Hm="800px";function gl(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(gl,"onScrollContentAttachStatusToContainer");import{css as sv,styled as Pi}from"@rango-dev/ui";var _i=sv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Qm=Pi("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",maxHeight:Fm,variants:{height:{auto:{height:"auto"},fixed:{height:"100%",minHeight:Om,[`@media screen and (min-height: ${Hm})`]:{minHeight:Um}}},showBanner:{true:{overflow:"visible"}}}}),qm=Pi("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Gm=Pi("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"}}}),Vm=Pi("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ae(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ys(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=T(),[u,d]=Xm(!1),{config:{features:f,theme:h}}=T(),{watermark:g}=oe(),m=g==="FULL",{activeTheme:y}=uo(h||{}),[S,C]=Xm(!1),k=Re("connectWalletButton",f),{isActiveTab:v,tabManagerInitiated:w,showActivateTabModal:I,setShowActivateTabModal:A,activateCurrentTab:b,setShowCompactTokenSelector:E}=oe(),x=Qe(),{manager:W}=lv(),U=Ct(W).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),G=i(()=>b(Mo.forceClaim,U),"onActivateTab"),K=i(()=>{r.onWallet?.()},"onConnectWallet"),J=typeof r.hasBackButton>"u"||r.hasBackButton,B=jm(null),R=jm(null);return Di(()=>{let Y=(p?.swapBoxBanner?.routes?.length??0)===0,le=!!p?.swapBoxBanner?.routes?.some(ve=>location.pathname.endsWith(ve));C(!!p?.swapBoxBanner&&(Y||le))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),Di(()=>(Ii()&&R.current&&e(R.current),()=>{o()}),[]),Di(()=>(B.current?.addEventListener("scroll",gl),()=>{B.current?.removeEventListener("scroll",gl)}),[]),Di(()=>{d(c==="failed")},[c]),uv(()=>{if(!R.current)return;let Y=new ResizeObserver(le=>{for(let ve of le)ve.contentRect&&E(ve.contentRect.height<parseInt(zm))});return Y.observe(R.current),()=>Y.disconnect()},[]),Be.createElement(Qm,{height:s,id:ht.SWAP_BOX_ID,className:`${y()} ${_i()}`,ref:R,showBanner:S},Be.createElement(pv,{prefix:J?Be.createElement(sl,{onClick:()=>{x(),r.onBack?.()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!k&&Be.createElement(pl,{container:N(),onClick:K,isConnected:!!l?.length}),r.onCancel&&Be.createElement(cl,{onClick:r.onCancel}))}),Be.createElement(qm,{ref:B},n),Be.createElement(al,{open:I,onClose:()=>A(!1),onConfirm:G}),Be.createElement(Gm,null,Be.createElement("div",{className:"footer__content"},w&&!v&&Be.createElement("div",{className:"footer__alert"},Be.createElement(rl,{onActivateTab:G}),Be.createElement(Km,{size:10})),a),Be.createElement(Km,{size:12}),Be.createElement("div",{className:`footer__logo ${m?"logo__show":"logo__hidden"}`},Be.createElement(cv,null))),S&&Be.createElement(Vm,null,p?.swapBoxBanner?.element),Be.createElement(fl,{open:u,onClose:()=>d(!1)}))}i(ae,"Layout");import{styled as dv}from"@rango-dev/ui";var Ym="$20 $20 $10 $20",hl=dv("div",{padding:Ym,overflowY:"auto",flexGrow:1});import{styled as mv}from"@rango-dev/ui";var ce=mv("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 fo}from"@lingui/core";import{useState as yl}from"react";function Zm(){let[t,e]=yl(!1),[o,n]=yl(null),[r,a]=yl(null),{findToken:s}=T(),c=T().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(d,f){switch(d){case"duplicated":return{type:d,title:fo.t("Duplicate Token"),message:fo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:fo.t("Token Already Exists"),message:fo.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:fo.t("Token Not Found"),message:fo.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:f}})};case"network-error":return{type:d,title:fo.t("Network error"),message:fo.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:f})=>{e(!0);try{if(c.some(S=>S.address?.toLowerCase()===f.toLowerCase())){let S=p("duplicated");n(S);return}let g=await at().getCustomToken({blockchain:d,address:f});if(!g||!g.token||g.error){let S=p("not-found",d);n(S);return}let m=g.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let S=p("token-exist");n(S);return}return a({...m,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",d);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(Zm,"useFetchCustomToken");var bv=Sv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${hv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Jm(){let t=wv(),[e]=vv(),o=Qe(),n=T().blockchains(),r=e.get("blockchain")||"",a=Ao(r,n),[s,c]=kv(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:f}=Zm(),h=!!a&&on(a,s),g=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return qe.createElement(ae,{header:{title:vn.t("Add Custom Token")}},qe.createElement(ce,null,qe.createElement(bv,null,qe.createElement("div",null,qe.createElement(qs,{onClick:()=>t(D.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:vn.t("Select chain"),placeholder:vn.t("Select chain")}),qe.createElement(Sl,{size:"24"}),qe.createElement(Tv,{size:"large",variant:"label"},vn.t("Enter Address")),qe.createElement(Sl,{size:10}),qe.createElement(Cv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:vn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&qe.createElement(yv,{color:"success",size:12}),onChange:y=>c(y.target.value)}),!h&&!!s&&qe.createElement(qe.Fragment,null,qe.createElement(Sl,{size:4}),qe.createElement(fv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),qe.createElement(gv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},vn.t("Import"))),qe.createElement(ur,{token:p,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(Jm,"AddCustomTokenPage");import{i18n as Zl}from"@lingui/core";import{useManager as cx}from"@rango-dev/queue-manager-react";import{Alert as px,Button as ux,css as Rl,Divider as Jl,IconButton as zg,styled as dx,Typography as mx,WalletIcon as fx}from"@rango-dev/ui";import De,{useEffect as ca,useLayoutEffect as gx,useRef as hx,useState as wr}from"react";import{useNavigate as yx}from"react-router-dom";import{i18n as Ho}from"@lingui/core";import{Alert as Gv,BalanceErrors as Vv,Button as kf,ChevronLeftIcon as Kv,Divider as bl,MessageBox as jv,Typography as xl}from"@rango-dev/ui";import ie,{useCallback as Xv,useEffect as wf,useMemo as Yv,useState as xn}from"react";import{useNavigate as Zv}from"react-router-dom";import{i18n as wl}from"@lingui/core";import{Alert as Nv,ChevronDownIcon as Bv,CloseIcon as Wv,Divider as af,IconButton as sf,PasteIcon as Lv,Typography as Mv,WalletIcon as Pv}from"@rango-dev/ui";import Pe,{useEffect as _v,useRef as Dv}from"react";import Ui,{useRef as Iv}from"react";import*as bn from"@radix-ui/react-collapsible";import{keyframes as Rm,styled as $i}from"@rango-dev/ui";var Cl=300,xv=Rm({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Ev=Rm({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),ef=$i(bn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Tl=$i(bn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Fi=$i(bn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${xv} ${Cl}ms ease-out`},false:{animation:`${Ev} ${Cl}ms ease-out`}}}}),Oi=$i("div",{transition:`all ${Cl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function zi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Iv(null);return Ui.createElement(ef,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&Ui.createElement(Tl,{className:"collapsible_trigger",onClick:a},s),Ui.createElement(Fi,{className:"collapsible_content",open:e},r),c==="bottom"&&Ui.createElement(Tl,{className:"collapsible_trigger",onClick:a},s))}i(zi,"CustomCollapsible");import{darkTheme as tf,styled as kl,TextField as Av}from"@rango-dev/ui";var of=kl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),nf=kl(Av,{backgroundColor:"$neutral100"}),rf=kl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${tf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${tf} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function lf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=z()(),{config:s}=T(),c=T().blockchains(),l=_p(e.name,c),p=Dv(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!on(e,r),g=i(()=>{a("")},"handleClear"),m=i(async S=>{if(S.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),p?.current?.focus()}},"handlePaste"),y=i(()=>r?Pe.createElement(sf,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},Pe.createElement(Wv,{size:12,color:"gray"})):d?null:Pe.createElement(sf,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},Pe.createElement(Lv,{size:16})),"renderSuffix");return _v(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),Pe.createElement(of,null,Pe.createElement(zi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Pe.createElement(rf,{id:"widget-custom-destination-collapsible-btn"},Pe.createElement("div",{className:"button__content"},Pe.createElement(Pv,{size:18,color:"info"}),Pe.createElement(af,{size:4,direction:"horizontal"}),Pe.createElement(Mv,{variant:"label",size:"medium",color:n?"$neutral600":void 0},wl.t("Send to a different address"))),Pe.createElement(Oi,{orientation:n?"up":"down"},Pe.createElement(Bv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Pe.createElement(nf,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:wl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:y(),onChange:S=>{let C=S.target.value;a(C)}})),h&&Pe.createElement(Pe.Fragment,null,Pe.createElement(af,{size:4}),Pe.createElement(Nv,{variant:"alarm",type:"error",title:wl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(lf,"CustomDestination");import{css as $v,IconButton as Fv,SelectableWalletButton as Ov,styled as go}from"@rango-dev/ui";var cf=go("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),pf=go("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),uf=go(Ov,{justifyContent:"center"}),df=go("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),mf=go(Fv,{position:"absolute",left:"$20"}),ff=go("div",{paddingTop:"$20"}),gf=$v({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),hf=go("div",{display:"flex"}),yf=go("div",{overflow:"visible",width:"100%"});import{i18n as Sf}from"@lingui/core";import{warn as Uv}from"@rango-dev/logging-core";import{makeInfo as zv,SelectableWallet as Hv,Typography as Cf,WalletState as dr}from"@rango-dev/ui";import zo,{useEffect as Qv,useState as Tf}from"react";var qv=7;function vl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{connectedWallets:l}=T(),[p,u]=Tf(),{list:d}=vt({chain:e}),[f,h]=Tf(d),g=d.length,m=a&&g-a>0;return Qv(()=>{h(y=>{let S=d.findIndex(C=>n(C.type,e));return m&&S>1?[d[S]].concat(d.filter((C,k)=>k!==S)):y.map(C=>d.find(k=>k.type===C.type)??C)})},[JSON.stringify(d)]),zo.createElement(zo.Fragment,null,f.slice(0,a).map(y=>{let S=Tu({connectedWallets:l,walletType:y.type,chain:e}),C=y.state===dr.CONNECTED||y.state===dr.PARTIALLY_CONNECTED,k=S?so(S,qv):"",v=C&&!!y.needsNamespace&&!k,w=i(async()=>{y.state===dr.DISCONNECTED||v?u(y):r({walletType:y.type,chain:e,address:S??""})},"onSelectableWalletClick"),I=zv(y.state),A=i(()=>v?Sf.t("Chain not connected"):k||I.description,"getWalletDescription"),b=i(()=>y.state===dr.CONNECTED||y.state===dr.PARTIALLY_CONNECTED?v?"neutral600":"neutral700":I.color,"getWalletDescriptionColor");return zo.createElement(Hv,{key:y.type,id:"widget-wallets-list-selectable-wallet-btn",description:A(),descriptionColor:b(),onClick:w,selected:n(y.type,e),disabled:!c,...y})}),zo.createElement(ir,{id:"widget-wallets-list-stateful-connect-modal",wallet:p,options:{defaultSelectedChains:o||[e]},onClose:()=>{u(void 0)},onConnect:()=>{t.onConnect&&(p?.type?t.onConnect(p.type):Uv(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),m&&zo.createElement(uf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},zo.createElement(Cf,{variant:"label",size:"medium"},Sf.t("Show more wallets"),zo.createElement(Cf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",g-(a??0)))))}i(vl,"WalletList");var Jv=2;function vf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Zv(),c=T().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:f,setCustomDestination:h}=z()(),{config:g,connectedWallets:m,setWalletsAsSelected:y}=T(),[S,C]=xn(""),[k,v]=xn([]),[w,I]=xn(""),[A,b]=xn(!!f),E=Yv(()=>Wo({filter:"all",quote:l}),[l]),x=Wo({filter:"required",quote:l}),W=c.find(F=>F.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),P=i(F=>x.includes(F),"isWalletRequiredFor"),U=Xv(()=>m.filter(F=>F.selected&&E.includes(F.chain)),[m,E]),[G,K]=xn(U()),[J,B]=xn([]),R=i((F,O)=>B(X=>X.concat({blockchain:F,walletType:O})),"addNextSelectedWallets"),Y=k.length>0,le=i((F,O)=>!!G.find(X=>X.walletType===F&&X.chain===O&&X.selected&&(P(O)||!P(O)&&!f)),"isSelected"),ve=i((F,O,X)=>{let ee=!1;return F.map(j=>{if(j.chain===O){let Q=j.selected;return!ee&&X?(ee=!0,Q=!0):X||(Q=!1),{...j,selected:Q}}return j})},"updateSelectableWallets"),Ht=i(F=>{b(F),F?P(W?.name??"")||K(O=>ve(O,W?.name||"",!1)):(h(""),K(O=>ve(O,W?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),be=i(F=>{if(S&&C(""),le(F.walletType,F.chain))return;let X=m.find(ee=>ee.walletType===F.walletType&&ee.chain===F.chain);X&&(n(),F.chain===W?.name&&A&&!P(W.name)&&(b(!1),h(null)),K(ee=>ee.filter(j=>j.chain!==F.chain).concat({...X,selected:!0})))},"onChange"),dt=i(()=>{let F=G.filter(O=>O.selected);y(F),p(F),d(!0),o()},"onConfirmBalance"),kt=i(async()=>{v([]),I("");let F=await r?.({selectedWallets:G.filter(X=>X.selected),customDestination:f}),O=F.warnings;O?.balance?.messages&&v(O.balance.messages),F.error&&I(gd(F.error)),!F.error&&!O?.balance?.messages.length?dt():v(O?.balance?.messages??[])},"onConfirmWallets");wf(()=>{K(F=>{let O=[];return F.forEach(X=>{!m.some(j=>j.chain===X.chain&&j.walletType===X.walletType&&j.address===X.address)||O.push(X)}),O=O.concat(m.filter(X=>!!!O.find(j=>j.chain===X.chain)&&X.selected&&E.includes(X.chain))),O})},[m,E]),wf(()=>{let F=[];J.length>0&&(J.forEach(O=>{let X=m.find(ee=>ee.chain===O.blockchain&&ee.walletType===O.walletType);X?be(X):F.push(O)}),B(F))},[m,J]);let wt=document.getElementById(ht.SWAP_BOX_ID);return ie.createElement(ne,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!S,container:wt,...!S&&{styles:{container:{height:"100%"}},footer:ie.createElement(hf,null,ie.createElement(kf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:qd(a,A,f,l,G,W),onClick:kt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Ho.t("Confirm")))},...S&&{styles:{container:{height:"100%",padding:"$0"}},header:ie.createElement(df,null,ie.createElement(mf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},ie.createElement(Kv,{size:16})),ie.createElement(xl,{variant:"headline",size:"small"},Ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:ft(S,c)}})))},anchor:"center"},ie.createElement(ne,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:Y,onClose:v.bind(null,[]),container:wt},ie.createElement(jv,{title:Ho.t("Insufficient account balance"),type:"error",description:ie.createElement(Vv,{messages:k??[]})},ie.createElement(kf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:dt},Ho.t("Proceed anyway")))),S&&ie.createElement(ff,null,ie.createElement("div",{className:gf()},ie.createElement(vl,{chain:S,quoteChains:E,isSelected:le,selectWallet:be,onShowMore:()=>C(S),onConnect:F=>{R(S,F)}}))),!S&&ie.createElement(ie.Fragment,null,w&&ie.createElement(ie.Fragment,null,ie.createElement(Gv,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Ho.t(w)}),ie.createElement(bl,{size:12})),ie.createElement(yf,null,E.map((F,O)=>{let X=c.find(Ve=>Ve.name===F),ee=`wallet-${O}`,j=O===E.length-1,Q=j&&W&&g?.customDestination!==!1;return ie.createElement("div",{key:ee},ie.createElement(cf,null,ie.createElement(xl,{variant:"title",size:"xmedium"},Ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),ie.createElement(xl,{variant:"label",color:"$neutral700",size:"medium"},Ho.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),ie.createElement(bl,{size:24}),ie.createElement(pf,null,ie.createElement(vl,{chain:F,quoteChains:E,isSelected:le,selectWallet:be,limit:Jv,onShowMore:()=>C(X?.name??""),onConnect:Ve=>{R(F,Ve)}})),!j&&ie.createElement(bl,{size:32}),Q&&ie.createElement(lf,{blockchain:W,open:A,handleOpenChange:Ht}))}))))}i(vf,"ConfirmWalletsModal");import{i18n as bb}from"@lingui/core";import{Alert as xb,Button as Eb,Divider as Qf,InfoIcon as Ib}from"@rango-dev/ui";import Fe from"react";import{Alert as tb,Button as ob,Divider as Al,NoRouteIcon as nb,RefreshIcon as rb,Typography as Bf}from"@rango-dev/ui";import st from"react";import{i18n as bf}from"@lingui/core";var Rv=24,eb=60;function xf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:re().genericServerError,action:{onClick:n,title:bf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:re().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:bf.t("Reset")}},description:re().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:re().noResultError.description}}i(xf,"makeInfo");var El=(o=>(o[o.small=Rv]="small",o[o.large=eb]="large",o))(El||{}),Il=(o=>(o.small="small",o.large="medium",o))(Il||{});import{styled as Hi}from"@rango-dev/ui";var Ef=Hi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),If=Hi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Af=Hi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Nf=Hi("div",{padding:"$6 $0"});function mr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=T().getDisabledLiquiditySources(),s=T().toggleAllLiquiditySources,c=T().swappers(),l=xf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),st.createElement(Ef,{id:"widget-no-result-container"},st.createElement(nb,{size:El[n],color:"gray"}),st.createElement(Al,{size:4}),st.createElement(Bf,{variant:"title",size:Il[n]},re().noResultError.title),n==="large"&&st.createElement(Al,{size:4}),!!l.description&&st.createElement(If,{size:n},st.createElement(Bf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),st.createElement(Al,{size:n==="large"?"24":"4"}),!!l.alert&&st.createElement(Af,{size:n},st.createElement(tb,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&st.createElement(ob,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:st.createElement(Nf,null,st.createElement(rb,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(mr,"NoResult");import{i18n as fr}from"@lingui/core";import{Button as db,Divider as mb,MessageBox as fb,Typography as gb,WarningIcon as hb}from"@rango-dev/ui";import Xt from"react";import{InfoIcon as lb,Tooltip as cb,Typography as pb}from"@rango-dev/ui";import En from"react";import{Button as ib,darkTheme as ab,styled as Qo,Typography as sb}from"@rango-dev/ui";var Wf=Qo("div",{width:"100%"}),Nl=Qo("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Lf=Qo("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${ab} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Mf=Qo("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$2"}),Pf=Qo(sb,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"250px"}),_f=Qo("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Df=Qo(ib,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});var ub=35;function $f(t){let{title:e,value:o,valueColor:n}=t,r=N();return En.createElement(Lf,null,En.createElement(pb,{size:"medium",variant:"label",className:"_title"},e),En.createElement(Mf,null,En.createElement(Pf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`),o.length>ub&&En.createElement(cb,{content:o,container:r},En.createElement(lb,{size:12,color:"gray"}))))}i($f,"QuoteErrorsModalItem");function Ff(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:fr.t("Swapping"),value:M(r.inputUsdValue)},{title:fr.t("Gas cost"),value:M(r.totalFee,2,2)},{title:fr.t("Receiving"),value:M(r.outputUsdValue)},{title:fr.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Xt.createElement(ne,{id:"widget-high-value-loss-warning-modal",footer:Xt.createElement(db,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Xt.createElement(hb,null),fullWidth:!0,disabled:a,onClick:n},re().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},Xt.createElement(fb,{type:s,title:re().highValueLossError.impactTitle,description:re().highValueLossError.description}),Xt.createElement(Nl,null,Xt.createElement(mb,{size:"4"}),Xt.createElement(gb,{size:"small",variant:"title"},fr.t("Details")),Xt.createElement(Nl,null,c.map((l,p)=>Xt.createElement($f,{key:p,...l})))))}i(Ff,"HighValueLossWarningModal");import{i18n as In}from"@lingui/core";function Of(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=In.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=In.t("Increase")),o;if(t){switch(t.type){case 0:{jt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=re().highValueLossError.title;break}case 4:{o.title=In.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=re().unknownPriceError.title;break}case 2:{o.title=In.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=In.t("Increase");break}case 3:{o.title=In.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Of,"makeAlerts");function Uf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(Uf,"getRequiredSlippage");import{i18n as An}from"@lingui/core";import{Button as yb,Divider as Bl,MessageBox as Sb,WarningIcon as Cb}from"@rango-dev/ui";import So from"react";import{useNavigate as Tb}from"react-router-dom";function zf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=Tb();return So.createElement(ne,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},So.createElement(Sb,{type:"warning",title:r.type===3?An.t("High slippage"):An.t("Low slippage"),description:r.type===3?An.t("Caution, your slippage is high. Your trade may be front run."):An.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},So.createElement(Bl,{size:18}),So.createElement(Bl,{size:32}),So.createElement(Df,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},So.createElement(Cb,{color:"white",size:16}),An.t("Swap anyway")),So.createElement(Bl,{size:10}),So.createElement(yb,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+D.settings)},An.t("Change Slippage"))))}i(zf,"SlippageWarningModal");import{Button as kb,MessageBox as wb,WarningIcon as vb}from"@rango-dev/ui";import Qi from"react";function Hf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Qi.createElement(ne,{id:"widget-unknown-price-warning-modal",footer:Qi.createElement(kb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Qi.createElement(vb,null),fullWidth:!0,disabled:r,onClick:n},re().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Qi.createElement(wb,{type:"warning",title:re().unknownPriceError.impactTitle,description:re().unknownPriceError.description}))}i(Hf,"UnknownPriceWarningModal");function gr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:d,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,m=Of(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let y=!!m&&!s,S=i(C=>{if(C==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,v=Uf(e,k);f?.(v)}else C==="change-settings"&&d()},"onclickActionButton");return Fe.createElement(Fe.Fragment,null,g&&Fe.createElement(Fe.Fragment,null,Fe.createElement(Qf,{size:10}),Fe.createElement(mr,{skipAlerts:s,error:o,fetch:c})),y&&Fe.createElement(Wf,null,Fe.createElement(Qf,{size:10}),Fe.createElement(xb,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Fe.createElement(_f,{onClick:l},Fe.createElement(Ib,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Fe.createElement(Eb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>S(m.action)},m.actionButtonTitle||bb.t("Change"))}})),e&&Fe.createElement(Fe.Fragment,null,e.type===0&&Fe.createElement(Ff,{...h,warning:e}),(e.type===3||e.type===2)&&Fe.createElement(zf,{...h,warning:e}),e.type===1&&Fe.createElement(Hf,{...h,warning:e})))}i(gr,"QuoteWarningsAndErrors");import ox from"bignumber.js";import ia from"react";import{i18n as qo}from"@lingui/core";import{Alert as qb,CampaignQuoteTag as Gb,Divider as Bn,FullExpandedQuote as Vb,InfoIcon as zl,NumericTooltip as Hl,QuoteTag as Kb,StepDetails as jb,TokenAmount as Xb,Typography as Wn,useIsTruncated as Ql}from"@rango-dev/ui";import ql from"bignumber.js";import $,{useRef as oa,useState as Yb}from"react";import{styled as Wl}from"@rango-dev/ui";var Ll=Wl("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),qf=Wl("div",{paddingBottom:"$15","& .from-amount-text":{wordBreak:"break-word"},variants:{dense:{true:{paddingBottom:0}}}}),Gf=Wl("div",{width:"100%",display:"flex"});import*as qi from"@radix-ui/react-collapsible";import{Button as Ab,css as Gi,darkTheme as _e,Image as Vf,styled as Ge,Typography as Ml}from"@rango-dev/ui";var Nb=300,Kf=Ge(qi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${_e} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${_e} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${_e} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),jf=Gi({padding:"$10 $15"}),Xf=Ge(Ab,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${_e} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${_e} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${_e} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Yf=Ge("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",[`.${_e} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${_e} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${_e} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${_e} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${_e} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${_e} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${_e} &`]:{backgroundColor:"$neutral400"}}}}]}),Zf=Gi({width:"100%",padding:"$15 $15 $10 $15"}),Jf=Gi({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Nn=Gi({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Rf=Ge(qi.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Vf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Vf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${_e} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${_e} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${_e} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),eg=Ge("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"}}}}),tg=Ge(Fi,{width:"100%",background:"inherit"}),Pl=Ge("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Nb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),_H=Ge("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),og=Ge("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${_e} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),ng=Ge("div",{display:"flex",flexDirection:"row",alignItems:"center",gap:"$2",flex:"1 1 auto",minWidth:0}),_l=Ge(Ml,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"$30"}),Dl=Ge(Ml,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:"0 1 auto"}),$l=Ge("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"}}}}),rg=Ge("div",{display:"flex"}),Vi=Ge("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${_e} &`]:{borderTopColor:"$neutral800"}}),ig=Ge(Ml,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,flexShrink:3});import{i18n as _t}from"@lingui/core";import{ChevronDownIcon as Wb,CloseIcon as Lb,Divider as Xi,IconButton as Mb,NumericTooltip as Pb,QuoteCost as _b,Typography as Et}from"@rango-dev/ui";import Z,{useState as cg}from"react";import{css as Bb,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"}}),Fl=Ki("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),ag=Ki("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),sg=Ki("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),lg=Bb({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Db=i(t=>t.fee.isZero()?null:Z.createElement(ji,null,Z.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(Et,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Ol(t){let[e,o]=cg(!1),[n,r]=cg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?Bo():N(),m=Dd(h),y=M(c,2,2);return Z.createElement(Z.Fragment,null,Z.createElement(_b,{onClickFee:d?S=>{S.stopPropagation(),o(!e)}:void 0,fee:y,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?_t.t("View more info"):void 0,tooltipContainer:g}),Z.createElement(ne,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:Z.createElement(sg,{style:{textAlign:f?"left":"center"}},Z.createElement(Et,{variant:"title",size:"medium"},_t.t("Gas & Fee Explanation")),Z.createElement(Mb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Z.createElement(Lb,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(ag,null,Z.createElement(Et,{variant:"title",size:"small"},_t.t("Details")),Z.createElement(Xi,{size:10}),Object.entries(m.payable).flatMap(([S,C])=>C.map((k,v)=>{let w=`payable-fee-${v}`,I=$s(k);return Z.createElement(ji,{key:w},Z.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},Ls(S,_t.t)),Z.createElement(Pb,{content:k.amount,container:g},Z.createElement(Et,{variant:"label",size:"medium"},M(k.amount,2,2),k.asset.symbol," ($",M(I,4,4),")")))})),Z.createElement(ji,{className:"total_payable_fee"},Z.createElement(Et,{variant:"label",size:"medium"},_t.t("Total Payable Fee")),Z.createElement(Et,{variant:"label",size:"medium"},"$",M(c,4,4))),Z.createElement(Fl,null),!!Object.keys(m.nonePayable).length&&Z.createElement(zi,{triggerAnchor:"bottom",onClickTrigger:()=>r(S=>!S),trigger:Z.createElement("div",{className:lg()},Z.createElement(Et,{size:"small",variant:"body",color:"neutral700"},n?_t.t("Hide non-payable fees"):_t.t("Show non-payable fees")),Z.createElement(Xi,{size:4,direction:"horizontal"}),Z.createElement(Oi,{orientation:n?"up":"down"},Z.createElement(Wb,{size:12,color:"gray"}))),open:n},Z.createElement(Et,{size:"small",variant:"title"},_t.t("Description")),Z.createElement(Xi,{size:4}),Z.createElement(Et,{size:"small",variant:"body",color:"neutral700"},_t.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),Z.createElement(Xi,{size:10}),Object.entries(m.nonePayable).map(([S,C],k)=>{let v=_d(C),w=Ls(S,_t.t),I=`non-payable-fee-${k}`;return Z.createElement(Db,{key:I,fee:v,label:w})}),Z.createElement(Fl,null)))))}i(Ol,"QuoteCostDetails");import{i18n as dg}from"@lingui/core";import{TokenAmount as mg}from"@rango-dev/ui";import Yi from"react";import{css as $b,styled as Fb}from"@rango-dev/ui";var pg=Fb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),ug=$b({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function hr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Yi.createElement(pg,null,Yi.createElement(mg,{direction:"horizontal",label:dg.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:ug()}),Yi.createElement(mg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:dg.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(hr,"QuoteSummary");import{i18n as Sg}from"@lingui/core";import{ChevronDownIcon as zb,ChevronRightIcon as Hb,Divider as Ul,Image as Qb,Tooltip as ta,Typography as Ji}from"@rango-dev/ui";import H from"react";import{useLayoutEffect as Ob,useState as yr}from"react";var fg=480,gg=768,hg=1024,yg=1200,Ub=i(()=>{let[t,e]=yr(!1),[o,n]=yr(!1),[r,a]=yr(!1),[s,c]=yr(!1),[l,p]=yr(!1),u=i(()=>{e(window.innerWidth<=fg),n(window.innerWidth>fg&&window.innerWidth<=gg),a(window.innerWidth>gg&&window.innerWidth<=hg),c(window.innerWidth>hg&&window.innerWidth<=yg),p(window.innerWidth>yg)},"handleResize");return Ob(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),Zi=Ub;var Ri=4,ea=6,Sr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return H.createElement(ta,{container:c,side:"bottom",sideOffset:4,open:r,content:e},H.createElement(eg,{className:n,state:a},H.createElement(Qb,{src:o,size:16})))},"ImageComponent");function Cg(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),p=r.length,u=xd(r),{isTablet:d,isMobile:f}=Zi();return H.createElement(Rf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},H.createElement("div",{className:Nn()},H.createElement(Ji,{variant:"body",size:"xsmall"},Sg.t("Via:")),H.createElement(Ul,{direction:"horizontal",size:4}),r.map((h,g)=>{let m=`item-${g}`,y=H.createElement(Pl,null,H.createElement(Hb,{size:12,color:"black"}));return f||d?H.createElement(H.Fragment,{key:m},H.createElement(Sr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&H.createElement(H.Fragment,null,y)):H.createElement(H.Fragment,{key:m},p<=Ri||p>Ri&&g<Ri-1?H.createElement(H.Fragment,null,H.createElement(Sr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&H.createElement(H.Fragment,null,y)):g===Ri-1&&H.createElement(ta,{container:l,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:Nn()},y,r.map((S,C)=>{let k=`image-${C}`;return C>=g&&H.createElement(H.Fragment,{key:k},H.createElement(Sr,{content:S.swapper.displayName,src:S.swapper.image??"",state:S.state,open:!1}),C!==p-1&&H.createElement(H.Fragment,null,y))}))},H.createElement($l,{state:r.find((S,C)=>C>=g&&(S.state==="error"||S.state==="warning"))?.state},H.createElement(Ji,{size:"xsmall",variant:"body"},"+",p-g))))})),H.createElement("div",{className:Nn()},H.createElement("div",{className:"blockchains_section"},H.createElement("div",{className:Nn()},H.createElement(Ji,{variant:"body",size:"xsmall"},Sg.t("Chains:")),H.createElement(Ul,{direction:"horizontal",size:4}),u.map((h,g)=>H.createElement(H.Fragment,{key:h.displayName},u.length<=ea||u.length>ea&&g<ea-1?H.createElement(ta,{container:l,side:"bottom",content:h.displayName,sideOffset:4},H.createElement(Sr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===ea-1&&H.createElement(ta,{container:l,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:Nn()},u.map((m,y)=>y>=g&&H.createElement(Sr,{key:m.displayName,content:"",src:m.image??"",open:!1,className:y>g?"blockchainImage":"",container:c})))},H.createElement($l,{className:"blockchainImage"},H.createElement(Ji,{size:"xsmall",variant:"body"},"+",u.length-g))))),H.createElement(Ul,{direction:"horizontal",size:32}))),H.createElement(Pl,{orientation:a?"up":"down"},H.createElement(zb,{size:12,color:"black"}))))}i(Cg,"QuoteTrigger");function Gl(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:d=!1,container:f}=t,h=T().blockchains(),{findToken:g}=T(),m=T().swappers(),{customSlippage:y,slippage:S}=T(),C=y||S,[k,v]=Yb(t.expanded),w=oa(null),I=M(n.value,6,6),A=n.usdValue?M(n.usdValue,4,4):"",{config:{__UNSTABLE_OR_INTERNAL__:b}}=T(),E=Kt(o.usdValue,n.usdValue??null),x=M(E,2,2),W=jt(E??0),P=i((Q,Ve)=>Q.map((q,ye)=>{let Je,mt=r?.type===3&&r.swap.swapperId===q.swapperId,ao=r?.type===4&&!!r.recommendedSlippages?.[ye],On=a?.type===2&&!!a.recommendedSlippages?.[ye],Eo=mt||ao,jr=On;Eo?Je="error":jr&&(Je="warning");let Ro=Eo?qo.t("Slippage Error"):qo.t("Slippage Warning");return mt&&(Ro=qo.t("Bridge Limit Error")),{swapper:{displayName:zn(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:ye===0&&!Ve?M(o.value,6,6):M(q.fromAmount,6,6),usdValue:M((q.from.usdPrice??0)*parseFloat(q.fromAmount),4,4),realValue:ye===0?o.value:q.fromAmount,realUsdValue:new ql(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:M(q.toAmount,6,6),usdValue:M((q.to.usdPrice??0)*parseFloat(q.toAmount),4,4),realValue:q.toAmount,realUsdValue:new ql(q.to.usdPrice??0).multipliedBy(q.toAmount).toString()}},state:Je,alerts:Eo||jr?$.createElement(qf,{dense:d},$.createElement(qb,{variant:"alarm",type:Eo?"error":"warning",title:Ro,id:"widget-quote-footer-step-alarm-alert",footer:$.createElement(Gf,null,mt&&$.createElement("div",null,$.createElement(Wn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),$.createElement(Bn,{direction:"vertical",size:2}),$.createElement(Wn,{size:"xsmall",variant:"body",className:"from-amount-text",color:"neutral900"},qo.t({id:"Yours: {amount} {symbol}",values:{amount:M(q.fromAmount,6,6),symbol:q?.from.symbol}}))),(ao||On)&&!mt&&$.createElement("div",null,$.createElement(Wn,{size:"xsmall",variant:"body",color:"neutral900"},qo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[ye]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[ye]}}})),$.createElement(Bn,{direction:"vertical",size:2}),$.createElement(Wn,{size:"xsmall",variant:"body",color:"neutral900"},qo.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Qn(q.estimatedTimeInSeconds),fee:M(Ds(q,g),2,2),internalSwaps:q.internalSwaps?P(q.internalSwaps):void 0}}),"getQuoteSteps"),U=P(e?.swaps??[]),G=U.length,K=f||N(),J=Id(t.quote.tags||[]),B=!!u,R=ti(e?.swaps),Y=Qn(R),le=wi(e?.swaps??[],g),ve=M(le,2,2),Ht=le.gte(new ql(yd)),be=R/Cd>=Sd,dt=oa(null),kt=Ql(o.value,dt),wt=oa(null),F=Ql(n.value,wt),O=oa(null),X=Ql(A,O),ee=U[G-1],j=U[0];return!j||!ee?null:d?$.createElement(Vb,{selected:c,fee:ve,time:Y,tooltipContainer:Bo(),steps:U,tags:J,campaignTag:b?.campaignTag,id:"widget-quote-full-expanded-quote-container",quoteCost:$.createElement(Ol,{quote:e,fullExpandedMode:!0,time:Y,fee:le,feeWarning:Ht,timeWarning:be,showModalFee:p,steps:G}),percentageChange:x,warningLevel:W,outputPrice:{value:I,usdValue:A,realValue:n.value,realUsdValue:n.usdValue}}):$.createElement(Yf,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},$.createElement("div",{className:Zf()},!l&&J.length?$.createElement($.Fragment,null,$.createElement(rg,null,J.map((Q,Ve)=>{let q=`${Q.value}_${Ve}`;return $.createElement($.Fragment,{key:q},Q.value=="CAMPAIGN"&&b?.campaignTag?$.createElement(Gb,{routeTag:Q,...b.campaignTag}):$.createElement(Kb,{label:Q.label,value:Q.value}),$.createElement(Bn,{size:4,direction:"horizontal"}))})),$.createElement(Vi,null),!B&&$.createElement(Bn,{size:4})):null,$.createElement("div",{id:"portal-root",className:Jf()},$.createElement(Ol,{quote:e,time:Y,fee:le,feeWarning:Ht,timeWarning:be,showModalFee:p,steps:G}),B&&$.createElement(Xf,{onClick:Q=>{Q.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},$.createElement(Wn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},qo.t("See All Routes")))),s==="basic"&&$.createElement(ng,null,$.createElement(Dl,{ref:dt,size:"small",variant:"body"},o.value),kt&&$.createElement(Hl,{content:o.value,container:K,open:o.value?void 0:!1},$.createElement(zl,{size:12,color:"gray"})),$.createElement(_l,{size:"small",variant:"body"},U[0]?.from.token.displayName),$.createElement(Wn,{size:"small",variant:"body"},"="),$.createElement(Dl,{ref:wt,size:"small",variant:"body"},n.value),F&&$.createElement(Hl,{content:n.value,container:K,open:n.value?void 0:!1},$.createElement(zl,{size:12,color:"gray"})),$.createElement(_l,{size:"small",variant:"body"},ee?.to.token.displayName),$.createElement(Bn,{size:2,direction:"horizontal"}),$.createElement(ig,{ref:O,color:"$neutral600",size:"xsmall",variant:"body"},`($${A})`),X&&$.createElement(Hl,{content:n.usdValue,container:K},$.createElement(zl,{size:12,color:"gray"}))),s==="list-item"&&$.createElement(Xb,{id:"widget-quote-token-amount-container",tooltipContainer:K,type:"output",direction:"vertical",price:{value:I,usdValue:A,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:ee.to.token.displayName,image:ee.to.token.image},chain:{image:ee.to.chain.image},percentageChange:x,warningLevel:W}),s==="swap-preview"&&$.createElement($.Fragment,null,$.createElement(hr,{from:j.from,to:ee.to,percentageChange:x,warningLevel:W}),$.createElement(Bn,{size:4}))),$.createElement(Kf,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},$.createElement(Cg,{type:s,quoteRef:w,selected:c,setExpanded:v,container:K,expanded:k,steps:U}),$.createElement(tg,{open:k},$.createElement(og,null),$.createElement("div",{className:jf()},U.map((Q,Ve)=>{let q=`item-${Ve}`;return $.createElement(jb,{type:"quote-details",className:"widget-quote-step-details-container",key:q,tooltipContainer:K,step:Q,hasSeparator:Ve!==U.length-1,state:Q.state})})))))}i(Gl,"Quote");import{Divider as ex,Skeleton as tx}from"@rango-dev/ui";import Rt from"react";import{darkTheme as Zb,styled as na}from"@rango-dev/ui";var Tg=na("div",{$$color:"$colors$neutral100",[`.${Zb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),kg=na("div",{paddingTop:"$2"}),wg=na("div",{paddingLeft:"$8"}),vg=na("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Mg,Divider as It,Skeleton as lt}from"@rango-dev/ui";import V from"react";import{css as Jb,styled as Jt}from"@rango-dev/ui";var Vl=Jt("div",{display:"flex"}),bg=Jt("div",{padding:"$10 $0 $20"}),xg=Jt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Eg=Jt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Ig=Jt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Ag=Jt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Ng=Jt("div",{width:"65%",display:"flex",justifyContent:"start"}),Bg=Jt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Wg=Jt("div",{padding:"$15 $0 $15 $0"}),Lg=Jb({display:"flex",justifyContent:"space-between",alignItems:"center"});function Cr(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(Ig,null,V.createElement(Ng,null,V.createElement(Mg,{loading:!0,size:"medium"}),V.createElement(It,{size:8,direction:"horizontal"}),V.createElement(Bg,null,V.createElement(lt,{height:10,width:60,variant:"rounded"}),V.createElement(It,{size:4}),V.createElement(lt,{height:15,variant:"rounded"}))),V.createElement(lt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(Vl,null,V.createElement(lt,{width:65,height:20,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(lt,{width:65,height:20,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(lt,{width:65,height:20,variant:"rounded"})),V.createElement(Vi,null),!r&&V.createElement(It,{size:4})),V.createElement("div",{className:Lg()},V.createElement(Vl,null,V.createElement(lt,{width:60,height:10,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(lt,{width:60,height:10,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(lt,{width:60,height:10,variant:"rounded"})),r&&V.createElement(lt,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(bg,null,V.createElement(lt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(xg,null,V.createElement(Eg,null,V.createElement(Mg,{loading:!0,size:"medium"}),V.createElement(It,{direction:"horizontal",size:4}),V.createElement(lt,{height:15,width:150,variant:"rounded"})),V.createElement(It,{size:10}),V.createElement(lt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(It,{size:4}),V.createElement(Wg,null,n,V.createElement(Ag,null),n),V.createElement(It,{size:12})))}i(Cr,"QuoteSummarySkeleton");import{ChainToken as Fg,Divider as jl,NextIcon as Rb,Skeleton as ra}from"@rango-dev/ui";import We from"react";import{styled as Tr}from"@rango-dev/ui";var Pg=Tr("div",{display:"flex",alignItems:"start"}),_g=Tr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Kl=Tr("div",{display:"flex",alignItems:"center",flexGrow:1}),Dg=Tr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),$g=Tr("div",{display:"flex",alignItems:"center"});function Dt(t){let{separator:e=!0}=t;return We.createElement(We.Fragment,null,We.createElement($g,null,We.createElement(ra,{height:22,width:22,variant:"circular"}),We.createElement(jl,{direction:"horizontal",size:8}),We.createElement(ra,{height:15,width:148,variant:"rounded"})),We.createElement(Pg,null,We.createElement(vg,{hideSeparator:!e}),We.createElement(_g,{extraSpace:e},We.createElement(Kl,null,We.createElement(Fg,{size:"small",loading:!0}),We.createElement(jl,{direction:"horizontal",size:8}),We.createElement(ra,{height:12,variant:"rounded"})),We.createElement(Dg,null,We.createElement(Rb,{color:"gray",size:16})),We.createElement(Kl,null,We.createElement(Fg,{size:"small",loading:!0}),We.createElement(jl,{direction:"horizontal",size:8}),We.createElement(ra,{height:12,variant:"rounded"})))))}i(Dt,"StepSkeleton");function kr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Rt.createElement(Tg,{expanded:o,rounded:e!=="basic"},Rt.createElement(Cr,{type:e,tagHidden:n}),Rt.createElement(kg,null,Rt.createElement(tx,{height:15,variant:"rounded"})),o&&Rt.createElement(wg,null,Rt.createElement(ex,{size:24}),Rt.createElement(Dt,null),Rt.createElement(Dt,null),Rt.createElement(Dt,{separator:!1})))}i(kr,"QuoteSkeleton");function Go(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:d,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:m,inputUsdValue:y}=z()(),S=e?.outputAmount?new ox(e?.outputAmount):null,C=e?yt(e):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?ia.createElement(Ll,null,ia.createElement(kr,{tagHidden:c,type:o,expanded:s})):v?ia.createElement(Ll,{onClick:()=>l?.(e),id:d},ia.createElement(Gl,{quote:e,error:r,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:h,input:{value:m,usdValue:y?.toString()??""},output:{value:S?.toString()??"",usdValue:C?.toString()??""}})):null}i(Go,"QuoteInfo");import{warn as ax}from"@rango-dev/logging-core";import{calculatePendingSwap as sx}from"@rango-dev/queue-manager-rango-preset";import{useEffect as lx}from"react";import{useRef as nx,useState as rx}from"react";var ix=2e3;function aa({request:t}){let[e,o]=rx(!1),n=nx(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,ix)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(c,{signal:n.current.signal});return n.current=null,p}catch(p){if(l)return await a(c);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(aa,"useFetch");function Og(){let{fetch:t,loading:e,cancelFetch:o}=aa({request:async(n,r)=>await at().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Og,"useFetchConfirmQuote");function sa(t){if(!t.swaps)throw new Error(re().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Xl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(sa,"throwErrorIfResponseIsNotValid");function Xl(t){if(Ld(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=Md(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=$d(t);if(o){let n=vi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Xl,"getQuoteError");function Ug(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=Cn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=Ud(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(Ug,"generateWarnings");function la(t){return t?.code==="ERR_CANCELED"?{type:2}:t.cause?t.cause:t?.code==="ERR_BAD_REQUEST"?{type:0,diagnosisMessage:t.response.data.error}:{type:1,diagnosisMessage:t.message}}i(la,"handleQuoteErrors");function Yl(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=z()(),{slippage:l,customSlippage:p}=T(),u=T().getDisabledLiquiditySources(),d=T().blockchains(),f=T().tokens(),{findToken:h}=T(),{swapMode:g}=et(),m=p||l,{fetch:y,cancelFetch:S,loading:C}=Og();return lx(()=>S,[]),{loading:C,fetch:i(async v=>{let w=v.selectedWallets,I=v?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=w.reduce((E,x)=>(E[x.chain]=x.address,E),{}),b={requestId:a?.requestId||"",selectedWallets:A,destination:I||void 0};try{return await y(b,!0).then(E=>{let{result:x}=E;if(!x)throw new Error(E.error??"Error fetching updated quote");sa({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 P={slippage:m.toString(),disabledSwappersGroups:u},U=Ug({previousQuote:a??void 0,currentQuote:W,meta:{blockchains:d},selectedWallets:w,userSlippage:m,inputUsdValue:n,findToken:h});c();let G=!!U.balance,K=sx({inputAmount:o.toString(),bestRoute:x,wallets:Od(w),settings:P,validateBalanceOrFee:!G,meta:{blockchains:d,tokens:f},swapMode:g});return{quote:W,swap:K,error:null,warnings:U}})}catch(E){let x=la(E);return x.type!==2&&ax(new Error("confirm swap error"),{tags:{...x,type:Xe[x.type],initialQuote:a,requestBody:b}}),{swap:null,error:x,warnings:null}}},"fetch"),cancelFetch:S}}i(Yl,"useConfirmSwap");var Sx=dx("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${zg}`]:{width:"$48",height:"$48"}}),Cx=Rl({flexGrow:1,paddingRight:"$10"}),Tx=Rl({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),kx=Rl({display:"flex",justifyContent:"space-between",alignItems:"center"});function Hg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=z()(),s=yx(),[c,l]=wr(""),p=!n,[u,d]=wr(!1),[f,h]=wr(!1),{isActiveTab:g}=oe(),m=T().getDisabledLiquiditySources(),y=hx(m),{manager:S}=cx(),{fetch:C,loading:k,cancelFetch:v}=Yl(),[w,I]=wr({swap:null,error:null,warnings:null}),[A,b]=wr(!1),E=i(async({selectedWallets:B,customDestination:R})=>{let Y=await C?.({selectedWallets:B,customDestination:R});return I(Y),Y},"onConfirmSwap"),x=i(async()=>{if(w.swap&&n)try{await S?.create("swap",{swapDetails:w.swap},{id:w.swap.requestId});let B=`../${D.swaps}/${w.swap.requestId}`;s(B,{replace:!0}),setTimeout(()=>{e("")},0)}catch(B){l("Error: "+B?.message)}},"addNewSwap"),W=i(async()=>{h(!0),await x(),h(!1)},"onConfirm"),P=i(async()=>{w.warnings?.quote&&bd(w.warnings.quote)&&!a?b(!0):await W()},"onStartConfirmSwap"),U=i(async()=>{I({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(B=>{I(B)}).catch(B=>console.error(B))},"onRefresh");ca(()=>{!!y.current.length&&!m.length&&U(),y.current=m},[m.length]),ca(()=>{p&&v()},[p]),ca(()=>{p&&d(p)},[p]),ca(()=>{p||C({selectedWallets:o,customDestination:r}).then(B=>I(B)).catch(B=>console.error(B))},[]),gx(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let G=w.warnings?.quote??null,K=w.error,J=[];if(c&&J.push(De.createElement(px,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),G||K){let B=`../${D.settings}`;J.push(De.createElement(gr,{warning:G,error:K,couldChangeSettings:!1,refetchQuote:U,skipAlerts:K?.type===4||G?.type===2,showWarningModal:A,confirmationDisabled:!g,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await x()},onChangeSettings:()=>s(B)}))}return De.createElement(ae,{header:{title:Zl.t("Confirm Swap"),onWallet:()=>{let B=`../${D.wallets}`;s(B)}},footer:De.createElement(Sx,null,De.createElement("div",{className:Cx()},De.createElement(ux,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!w.error||!g,onClick:P},Zl.t("Start Swap"))),De.createElement(zg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:d.bind(null,!0)},De.createElement(fx,{size:24})))},u&&De.createElement(vf,{open:u,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:E}),De.createElement(ce,null,De.createElement("div",{className:kx()},De.createElement(mx,{variant:"title",size:"small"},Zl.t("You get")),De.createElement("div",{className:Tx()},De.createElement(Wi,{onClick:!k&&!u&&!A?U:void 0}))),De.createElement(Jl,{size:"12"}),ym(J.map((B,R)=>({element:B,key:`alert-${R}`})),De.createElement(Jl,{size:10})),J.length>0?De.createElement(Jl,{size:10}):null,De.createElement(Go,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:w.error,loading:k,warning:w.warnings?.quote??null})))}i(Hg,"ConfirmSwapPage");import{i18n as to}from"@lingui/core";import{Button as uc,CustomTokensZeroStateDarkIcon as zx,CustomTokensZeroStateIcon as Hx,DeleteIcon as Qx,Divider as Ir,IconButton as qx,MessageBox as Gx,NotFound as Vx,styled as mc}from"@rango-dev/ui";import ge,{useState as dc}from"react";import{useNavigate as Kx}from"react-router-dom";import{CloseIcon as wx,IconButton as vx,SearchIcon as bx,TextField as xx}from"@rango-dev/ui";import Ln from"react";import{styled as Qg}from"@rango-dev/ui";var qg=Qg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),Gg=Qg("div",{width:"100%","& ._text-field":{paddingLeft:"$10","& input":{paddingLeft:"$2",paddingTop:"$12",paddingBottom:"$12"}}});function At(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...d}=t,f=s.length?Ln.createElement(vx,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},Ln.createElement(wx,{color:"gray",size:10})):null;return p&&(f=p),Ln.createElement(Gg,null,Ln.createElement(xx,{prefix:Ln.createElement(qg,null,Ln.createElement(bx,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d}))}i(At,"SearchInput");import{i18n as pc}from"@lingui/core";import{Button as Nx,CustomTokenWarning as Bx,darkTheme as nh,Divider as eo,ExternalLinkIcon as Wx,Image as Lx,ListItem as Mx,NotFound as Px,PinIcon as _x,Skeleton as Vo,Typography as xr,VirtualizedList as Dx}from"@rango-dev/ui";import L,{useState as $x}from"react";import{useTranslation as Fx}from"react-i18next";import{Divider as th,ListItem as Ax,Skeleton as br}from"@rango-dev/ui";import Nt from"react";import{css as Mn,darkTheme as ec,ImageContainer as Ex,ListItemButton as Ix,styled as ot,Typography as Vg}from"@rango-dev/ui";var tc=Mn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),oc=Mn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),nc=Mn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),rc=Mn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ec} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),ic=Mn({}),ac=Mn(),Kg=ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),sc=ot("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),pa=ot("ul",{flexGrow:1,height:"100%",padding:0,margin:0,display:"flex",flexDirection:"column",listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${oc}`]:{[`& .${rc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${ic}`]:{bottom:"-15px"},[`& .${tc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${nc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),jg=ot(Ix,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),lc=ot("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),cc=ot(Vg,{}),Xg=ot("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${ac}`]:{$$color:"$colors$neutral600",[`.${ec} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),vr=ot("div",{display:"flex",alignItems:"end",flexDirection:"column"}),MG=ot("div",{display:"flex",alignItems:"center"}),Yg=ot("div",{position:"relative",[`& ${Ex}`]:{borderRadius:"$xm",overflow:"hidden"}}),Zg=ot("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Jg=ot(Vg,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Rg=ot("a",{"& svg:hover":{color:"$colors$info"}}),eh=ot("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${ec} &`]:{color:"$foreground"}}}});function oh(t){return Nt.createElement(pa,null,Array.from(Array(t.size),e=>Nt.createElement(Ax,{key:e,hasDivider:!0,start:Nt.createElement(br,{variant:"circular",width:35,height:35}),end:Nt.createElement(vr,null,Nt.createElement(br,{variant:"text",size:"large",width:70}),Nt.createElement(th,{size:4}),Nt.createElement(br,{variant:"text",size:"medium",width:50})),title:Nt.createElement("div",null,Nt.createElement(br,{variant:"text",size:"large",width:90}),Nt.createElement(th,{size:4}),Nt.createElement(br,{variant:"text",size:"medium",width:90}))})))}i(oh,"LoadingTokenList");var Ox=20,Ux=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return L.createElement("div",{className:oc()},o?L.createElement("div",{className:tc()},o):L.createElement(sc,{className:nc()},L.createElement(xr,{variant:"title",size:"xmedium"},r.symbol),L.createElement(eo,{direction:"horizontal",size:4}),L.createElement(lc,{css:a},L.createElement(cc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&L.createElement("div",{className:`${rc()} ${!o&&ic()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",L.createElement(eo,{size:4,direction:"horizontal"}),L.createElement(Rg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},L.createElement(Wx,{size:12}))))},"renderDesc");function Er(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=T().fetchStatus,u=T().blockchains(),{getBalanceFor:d,fetchingWallets:f}=T(),{isTokenPinned:h}=T(),{setFromToken:g,setToToken:m}=z()(),{t:y}=Fx(),S=Qe(),[C,k]=$x(null),v=i(()=>{c==="source"?g({token:C,meta:{blockchains:u}}):m({token:C,meta:{blockchains:u}})},"updateToken"),w=i(()=>{v(),S()},"handleImportToken"),I=i(E=>{if(E.customToken){let{customToken:W,...P}=E;return L.createElement(Nx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(G=>{G.stopPropagation(),k({...P,warning:!0})},"handleClick")},L.createElement(xr,{variant:"body",size:"xsmall",color:"background"},y("import")))}let x=ri(d(E));return s?s(E):f?L.createElement(vr,null,L.createElement(Vo,{variant:"text",size:"large",width:70}),L.createElement(eo,{size:4}),L.createElement(Vo,{variant:"text",size:"medium",width:50})):x&&L.createElement(Xg,null,L.createElement(Jg,{variant:"title",size:"small"},x.amount),L.createElement("div",null),x.usdValue&&L.createElement(xr,{variant:"body",className:ac(),size:"xsmall"},`$${x.usdValue}`))},"endRenderer"),A=i(()=>L.createElement(Dx,{style:{flexGrow:1,minHeight:0},itemContent:E=>{let x=e[E];if(x==="skeleton")return L.createElement(Mx,{hasDivider:!0,start:L.createElement(Vo,{variant:"circular",width:35,height:35}),end:L.createElement(vr,null,L.createElement(Vo,{variant:"text",size:"large",width:70}),L.createElement(eo,{size:4}),L.createElement(Vo,{variant:"text",size:"medium",width:50})),title:L.createElement("div",null,L.createElement(Vo,{variant:"text",size:"large",width:90}),L.createElement(eo,{size:4}),L.createElement(Vo,{variant:"text",size:"medium",width:90}))});let W=u.find(B=>B.name===x?.blockchain);if(!W||!x)return null;let P=x.address,U=Js(W.color,"main"),G={$$color:U.main150,[`.${nh} &`]:{$$color:U.main750},backgroundColor:"$$color"},K={$$color:U.main750,[`.${nh} &`]:{$$color:U.main150},color:"$$color"},J=i(()=>{typeof x!="string"&&!x.customToken&&n?.(x)},"handleClick");return L.createElement(eh,null,L.createElement(jg,{"tab-index":E,key:`${x.symbol}${P}`,id:`${x.symbol}${P}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:x?.customToken,onClick:J,start:L.createElement(Yg,null,L.createElement(Lx,{src:x.image===""?Zr:x.image,size:30}),t.type!=="custom-token"&&x&&h(x,t.type)&&L.createElement(Zg,null,L.createElement(_x,{size:12,color:"gray"}))),title:x.name||!x.name&&!P?L.createElement(sc,null,L.createElement(xr,{variant:"title",size:"xmedium"},x.symbol),L.createElement(eo,{direction:"horizontal",size:4}),L.createElement(lc,{css:G},L.createElement(cc,{variant:"body",size:"xsmall",css:K},x.blockchain)),l&&x.warning&&L.createElement(L.Fragment,null,L.createElement(eo,{direction:"horizontal",size:4}),L.createElement(Bx,{container:N()}))):void 0,description:typeof x!="string"&&W.info&&P?Ux({address:P,token:x,customCssForTag:G,customCssForTagTitle:K,name:x.name,url:W.info.addressUrl.split("{wallet}").join(P)}):x.name||void 0,end:I(x)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),b=C?Ao(C?.blockchain,u):null;return L.createElement(L.Fragment,null,a&&L.createElement(L.Fragment,null,L.createElement(xr,{variant:"label",size:"large"},pc.t("Select Token")),L.createElement(eo,{size:4})),L.createElement(Kg,null,L.createElement(eo,{size:4}),p==="loading"&&L.createElement(oh,{size:Ox}),p==="success"&&(e.length?L.createElement(L.Fragment,null,L.createElement(ur,{token:C,address:C?.address??"",blockchain:b??void 0,onImport:w,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),L.createElement(pa,{as:"ul"},A())):!!o&&L.createElement(Px,{title:pc.t("No results found"),description:pc.t("Try using different keywords")}))))}i(Er,"TokenList");var jx=mc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Xx=mc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Yx=mc(qx,{"&:hover":{"& svg":{color:"$secondary550"}}});function rh(){let[t,e]=dc(""),{deleteCustomToken:o}=T(),n=T().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=z()(),{mode:l}=uo({}),p=Kx(),[u,d]=dc(!1),[f,h]=dc(),g=i(C=>{let k=C.target.value;e(k)},"handleSearch"),m=l==="dark",y=n.filter(C=>rt(C.symbol,t)||rt(C.address||"",t)||rt(C.name||"",t)),S=i(()=>{if(f){let C=a?gt(a):null,k=r?gt(r):null,v=gt(f);C===v?c({token:null}):k===v&&s({token:null}),o(f)}d(!1)},"handleDeleteCustomToken");return ge.createElement(ae,{header:{title:to.t("Custom Tokens")}},ge.createElement(ce,null,ge.createElement(jx,null,n.length?ge.createElement(ge.Fragment,null,ge.createElement(At,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:to.t("Search Token"),onChange:g}),ge.createElement(Ir,{size:16}),ge.createElement(Er,{list:y,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>ge.createElement(Yx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(C)}},ge.createElement(Qx,{size:12,color:"gray"}))})):ge.createElement(Xx,null,ge.createElement(Vx,{icon:m?ge.createElement(zx,{size:200}):ge.createElement(Hx,{size:200}),title:to.t("No custom tokens"),description:to.t("press the button to add your custom token")})),ge.createElement(Ir,{size:20}),ge.createElement(uc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(D.addCustomTokens)},to.t("Add Custom Token"))),ge.createElement(ne,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:N()},ge.createElement(Gx,{title:to.t("Delete Custom Token"),type:"error",description:to.t("Are you sure you want to Delete this Token?")},ge.createElement(Ir,{size:40}),ge.createElement(Ir,{size:10}),ge.createElement(uc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},to.t("Yes, Delete it")),ge.createElement(Ir,{size:12}),ge.createElement(uc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},to.t("No, Continue"))))))}i(rh,"CustomTokensPage");import{i18n as $e}from"@lingui/core";import{useManager as hE}from"@rango-dev/queue-manager-react";import{Button as Tc,darkTheme as yE,Divider as Co,MessageBox as SE,NotFound as CE,styled as kc,Tabs as TE,Typography as ma}from"@rango-dev/ui";import{TransactionStatus as Br}from"rango-types";import te,{useMemo as vh,useState as Wr}from"react";import{useNavigate as kE}from"react-router-dom";import{FilterIcon as nE,Popover as rE}from"@rango-dev/ui";import Ko from"react";import{css as Zx,darkTheme as ua,IconButton as Jx,styled as Ar}from"@rango-dev/ui";var fc=Ar("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ua} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),ih=Ar(Jx,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ua} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ua} &`]:{backgroundColor:"$neutral"},[`& ${fc}::before`]:{backgroundColor:"$secondary100",[`.${ua} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),ah=Ar("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),sh=Ar("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),lh=Zx({display:"flex",justifyContent:"space-between",alignItems:"center"}),ch=Ar("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as ph}from"@lingui/core";import{Button as Rx,Divider as uh,ListItemButton as eE,Radio as tE,RadioRoot as oE,Typography as dh}from"@rango-dev/ui";import ct from"react";function mh(t){let{filterBy:e,onClickItem:o}=t;return ct.createElement(sh,null,ct.createElement("div",{className:lh()},ct.createElement(dh,{size:"small",variant:"body"},ph.t("Status")),ct.createElement(Rx,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},ph.t("Reset"))),ct.createElement(uh,{size:10}),ct.createElement(oE,{value:e},ct.createElement(ch,null,t.list.map((n,r)=>ct.createElement(eE,{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:ct.createElement(ct.Fragment,null,ct.createElement(uh,{direction:"horizontal",size:4}),ct.createElement(dh,{size:"medium",variant:"body"},n.title)),start:ct.createElement(tE,{value:n.id}),onClick:o})))))}i(mh,"FilterSelectorContent");function gc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Ko.createElement("div",null,Ko.createElement(rE,{open:a,align:"end",onOpenChange:o,container:N(),content:Ko.createElement(mh,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Ko.createElement(ih,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Ko.createElement(fc,{isSelect:!!n},Ko.createElement(nE,{size:16,color:"black"}),!!n&&Ko.createElement(ah,null)))))}i(gc,"FilterSelector");import{i18n as sE}from"@lingui/core";import{getCurrentStep as lE}from"@rango-dev/queue-manager-rango-preset";import{Divider as Sh,GroupedVirtualizedList as cE,Skeleton as pE,SwapListItem as Ch,Typography as uE}from"@rango-dev/ui";import Ye,{useCallback as Th,useEffect as dE,useRef as mE,useState as fE}from"react";function fh(t,e){let o=[],n=0;do{let r=t[n];r&&(o.push(Math.min(r,e)),e-=r),n++}while(e>0&&n<=t.length);return o}i(fh,"calculateGroupsSoFar");import{css as iE,darkTheme as aE,styled as Nr}from"@rango-dev/ui";var hc=iE(),gh=Nr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),yc=Nr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${hc}`]:{$$color:"$colors$neutral600",[`.${aE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Sc=Nr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),hh=Nr("div",{gap:"$10",display:"flex",flexDirection:"column"}),yh=Nr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var gE=10;function Cc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=fE([]),c=mE(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=Th(fh,[]),f=Th(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,gE),s(d(p,c.current)))},[e.length]);if(dE(()=>{r||f()},[r,f]),r){let h=[1,2];return Ye.createElement(Ye.Fragment,null,[h,h].map((m,y)=>Ye.createElement(yc,{key:y},Ye.createElement(Sc,null,Ye.createElement(pE,{variant:"text",width:60,size:"small"}),Ye.createElement(Sh,{size:16})),Ye.createElement(Sh,{size:4}),Ye.createElement(hh,null,m.map((C,k)=>Ye.createElement(Ch,{isLoading:!0,key:k}))))))}return Ye.createElement(cE,{style:{flexGrow:1,minHeight:0},endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>Ye.createElement(yc,null,Ye.createElement(Sc,null,Ye.createElement(uE,{variant:"label",size:"medium",className:hc()},u[h]))),itemContent:(h,g)=>{let m=l[h];if(!m)return null;let y=lE(m),S=m.steps[0],C=m.steps[m.steps.length-1];return!S||!C?null:Ye.createElement(gh,{key:m.requestId},Ye.createElement(Ch,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:y,tooltipContainer:N(),onlyShowTime:u[g]===sE.t("Today"),swapTokenData:{from:{token:{image:S.fromLogo,displayName:S.fromSymbol},blockchain:{image:S.fromBlockchainLogo||""},amount:M(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:M(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(Cc,"HistoryGroupedList");import{i18n as da}from"@lingui/core";import kh from"dayjs";var wh=i(t=>{let e=new Map([["today",{title:da.t("Today"),swaps:[]}],["week",{title:da.t("This week"),swaps:[]}],["month",{title:da.t("This month"),swaps:[]}],["year",{title:da.t("This year"),swaps:[]}]]);function o(l,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}i(o,"addYearsToOutput");let n=kh();t.forEach(l=>{let p=Number(l.creationTime),u=kh(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 wE=kc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%",minHeight:0,flexGrow:1}),vE=kc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),bE=kc("div",{"._typography":{color:"$neutral700",[`.${yE}&`]:{color:"$neutral900"}}}),xE=i((t,e)=>t?.length?t.filter(o=>Lt(o.fromBlockchain,e)||Lt(o.toBlockchain,e)||Lt(o.toSymbol,e)||Lt(o.fromSymbol,e)).length:!1,"isStepContainsText");function bh(){let t=kE(),{manager:e,state:o}=hE(),n=Ct(e).map(({swap:b})=>b),[r,a]=Wr(""),[s,c]=Wr(!1),l=!o.loadedFromPersistor,[p,u]=Wr(""),[d,f]=Wr(!1),[h,g]=Wr("all"),m=i(b=>{let E=b.target.value;a(E)},"handleSearch"),{isMultiMode:y}=et(),S=[{id:Br.SUCCESS,title:$e.t("Complete")},{id:Br.RUNNING,title:$e.t("Running")},{id:Br.FAILED,title:$e.t("Failed")}],C=[{id:"all",title:$e.t("All")},{id:"swap",title:$e.t("Swap")},{id:"refuel",title:$e.t("Refuel")}],k=vh(()=>!r&&!p&&h==="all"?n:n.filter(b=>{let{inputAmount:E,status:x,steps:W,requestId:P,mode:U}=b;return(!r||Lt(E,r)||Lt(x,r)||xE(W,r)||Lt(P,r))&&(!p||p===x)&&(h==="all"?!0:h==="swap"?!U||U==="swap":h==="refuel"?U==="refuel":!1)}),[n,r,p,h]),v=!k?.length&&!l,w=i(()=>f(!1),"onCloseModal"),I=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(b){console.log(b)}},"onClear"),A=vh(()=>!n.some(b=>b.status===Br.SUCCESS||b.status===Br.FAILED),[n]);return te.createElement(ae,{header:{title:$e.t("History"),suffix:te.createElement(mo,null,te.createElement(Tc,{id:"widget-history-clear-btn",disabled:A,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},te.createElement(ma,{size:"medium",variant:"label",color:"error"},$e.t("Clear"))))}},te.createElement(ce,null,te.createElement(vE,null,te.createElement(At,{setValue:a,fullWidth:!0,variant:"contained",placeholder:$e.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:m,style:{height:36},value:r}),te.createElement(Co,{size:10,direction:"horizontal"}),te.createElement(gc,{filterBy:p,open:s,onOpenChange:b=>c(b),onClickItem:b=>u(b),list:S})),te.createElement(Co,{size:"16"}),y&&!l&&te.createElement(te.Fragment,null,te.createElement(TE,{items:C,onChange:b=>g(b.id),value:h,type:"secondary"}),te.createElement(Co,{size:"12"})),te.createElement(wE,null,v&&te.createElement(yh,null,te.createElement(Co,{size:32}),te.createElement(CE,{title:r?$e.t("No results found"):$e.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?$e.t("Try using different keywords"):$e.t("Your transaction history is stored locally and will appear here after you start a swap")})),!v&&te.createElement(Cc,{list:k,onSwapClick:t,groupBy:wh,isLoading:l}))),te.createElement(ne,{open:d,onClose:w,id:"widget-history-clear-modal",container:N()},te.createElement(Co,{size:20}),te.createElement(SE,{type:"warning",title:$e.t("Clear Transaction History"),description:te.createElement(bE,null,te.createElement(ma,{variant:"body",size:"medium"},$e.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),te.createElement(Co,{size:"24"}),te.createElement(ma,{variant:"body",size:"small"},$e.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),te.createElement(Co,{size:30}),te.createElement(Tc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:I},$e.t("Yes, Clear the history")),te.createElement(Co,{size:10}),te.createElement(Tc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:w},te.createElement(ma,{variant:"title",size:"medium",color:"primary"},$e.t("No, Cancel")))))}i(bh,"HistoryPage");import{i18n as ey}from"@lingui/core";import{Button as sI,Divider as _c,styled as lI,WarningIcon as cI}from"@rango-dev/ui";import pI from"bignumber.js";import Se,{useEffect as ty,useState as oy}from"react";import{useNavigate as uI}from"react-router-dom";import{i18n as Eh}from"@lingui/core";import{Alert as IE,Divider as wc,NoRouteIcon as AE,Typography as NE}from"@rango-dev/ui";import jo from"react";import{styled as EE}from"@rango-dev/ui";var xh=EE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function vc(){let{fromToken:t,toToken:e}=z()();return!!t&&!!e&&Qt(t,e)?jo.createElement(xh,null,jo.createElement(wc,{size:10}),jo.createElement(AE,{size:24,color:"gray"}),jo.createElement(wc,{size:4}),jo.createElement(NE,{variant:"title",size:"small"},Eh.t("No Routes Found")),jo.createElement(wc,{size:4}),jo.createElement(IE,{title:Eh.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(vc,"SameTokensWarning");import{Alert as BE,Button as WE}from"@rango-dev/ui";import Ah from"react";import{i18n as fa}from"@lingui/core";function Ih(t){let e=null;return t===li?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:fa.t("Reset"),title:fa.t("Slippage cannot be set lower than 0.01%.")},e):t>sn?(e={alertType:"warning",action:"change-settings",actionButtonTitle:fa.t("Change"),title:fa.t("Caution, your slippage is high!")},e):null}i(Ih,"makeAlerts");function Nh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=T(),{onChangeSettings:a}=t,c=Ih(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(si),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Ah.createElement(BE,{title:c.title,type:c.alertType,variant:"alarm",action:Ah.createElement(WE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(Nh,"SlippageWarningsAndErrors");import{i18n as DE}from"@lingui/core";import{IconButton as $E,ReverseIcon as FE,Skeleton as OE,Tooltip as UE,Typography as Lr}from"@rango-dev/ui";import pt from"react";import ga from"bignumber.js";function Wh(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(Wh,"getSlippageColor");function Lh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new ga(e),r=new ga(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(Lh,"getUsdExchangeRate");function Mh(t,e){let o=new ga(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,ga.ROUND_DOWN).toFormat(2)}`}i(Mh,"formatTokenValueInUsd");import{darkTheme as PE,styled as xc,Typography as _E}from"@rango-dev/ui";var Ph=xc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),_h=xc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${PE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Ec=xc(_E,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Ic(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=T(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:f}=uo({}),h=pn(d),g=f==="dark",m=n==="default",y={quoteError:a,slippageError:h?.type==="error"?h.message:null},S={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,w=m?k:C,I=Number(m?p?.outputAmount:p?.requestAmount),A=Number(m?p?.requestAmount:p?.outputAmount),b=I||v.usdPrice,E=A||w.usdPrice,{rawValue:x,displayValue:W}=Lh({toTokenUsdPrice:E,fromTokenUsdPrice:b});return pt.createElement(Ph,null,pt.createElement(Lr,{variant:y||S?"label":"body",size:y||S?"medium":"small",color:Wh({error:y,warning:S,isDarkTheme:g})},DE.t("Slippage:")," ",d,"%"),u?pt.createElement(OE,{height:16,width:104,variant:"rounded"}):b&&E&&pt.createElement(_h,null,pt.createElement(Lr,{className:"rate-text",variant:"body",size:"small"},"1"),pt.createElement(Ec,{className:"rate-text",variant:"body",size:"small"},w.symbol),pt.createElement($E,{id:"widget-home-page-change-rate-button",onClick:r},pt.createElement(FE,{size:14,color:"secondary"})),pt.createElement(UE,{container:N(),side:"top",sideOffset:4,content:pt.createElement(Lr,{className:"rate-text",variant:"body",size:"small"},x)},pt.createElement(Lr,{className:"rate-text",variant:"body",size:"small"},W)),pt.createElement(Ec,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&pt.createElement(Lr,{color:"neutral600",variant:"body",size:"small"},"~",Mh(Number(x),v.usdPrice))))}i(Ic,"SwapMetrics");import{i18n as VE}from"@lingui/core";import{Header as KE}from"@rango-dev/ui";import To,{useEffect as jE,useState as XE}from"react";import{i18n as HE}from"@lingui/core";import{Divider as Nc,FullExpandedQuote as QE,Typography as qE}from"@rango-dev/ui";import we from"react";import{styled as Ac}from"@rango-dev/ui";var Dh=Ac("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),$h=Ac("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Fh=Ac("div",{width:"146px"});import{i18n as Mr}from"@lingui/core";import{Select as zE}from"@rango-dev/ui";import Oh from"react";function ha(t){let{updateQuotePartialState:e,sortStrategy:o}=z()(),n=[{value:"SMART",label:Mr.t("Smart Routing")},{value:"FEE",label:Mr.t("Lowest Fee")},{value:"SPEED",label:Mr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Mr.t("Maximum Return")},{value:"PRICE",label:Mr.t("Maximum Output")}];return Oh.createElement(Fh,null,Oh.createElement(zE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ha,"SelectStrategy");var Uh=3;function Pr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:d,toToken:f,sortStrategy:h,error:g}=z()(),{slippage:m,customSlippage:y}=T(),{findToken:S}=T(),C=c||N(),k=!!p&&p.results.length,v=y??m,{config:{__UNSTABLE_OR_INTERNAL__:w}}=T(),I=i(E=>{if(!d||!f||!p)return null;let x={requestAmount:p.requestAmount,validationStatus:null,...E};return Cn({currentQuote:x,userSlippage:v,findToken:S})},"getQuoteWarning"),A=g?.type===0||g?.type===1,b=p?.results?ki(h,p?.results):[];return we.createElement(we.Fragment,null,a&&we.createElement(we.Fragment,null,we.createElement($h,null,we.createElement(qE,{size:"xmedium",variant:"title"},HE.t("Sort by")),we.createElement(ha,{container:C})),we.createElement(Nc,{size:"10"})),e&&Array.from({length:Uh},(E,x)=>we.createElement(we.Fragment,{key:x},s?we.createElement(QE,{campaignTag:w?.campaignTag,loading:!0}):we.createElement(kr,{tagHidden:!1,type:"list-item",expanded:!1}),x!==Uh-1&&we.createElement(Nc,{size:16}))),!e&&we.createElement(we.Fragment,null,k?b.map((E,x)=>{let W=I(E),P=Xl(E.swaps),U=b.length-1===x;return we.createElement(we.Fragment,{key:E.requestId},we.createElement(Go,{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:P?.options||null,warning:W,fullExpandedMode:s,onClick:G=>{P||u("warning",W),u("error",P?.options||null),o(G)},type:"list-item"}),!U&&we.createElement(Nc,{size:16}))}):A&&we.createElement(Dh,null,we.createElement(mr,{size:s?"large":"small",error:g,fetch:n}))))}i(Pr,"Quotes");import{darkTheme as GE,styled as zh}from"@rango-dev/ui";var Hh=zh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${GE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Qh=zh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var YE=100;function Bc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=XE(!1),l=s?"":"is-hidden",{config:p}=T(),u=p?.variant==="full-expanded",d=Bo();return jE(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},YE):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),To.createElement(Hh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${_i()} widget-expanded-quotes-container`,id:ht.EXPANDED_BOX_ID},To.createElement(KE,{title:VE.t("Routes"),suffix:To.createElement(To.Fragment,null,To.createElement(ha,{container:d}),To.createElement(Uo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),To.createElement(Qh,null,To.createElement(Pr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:Bo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Bc,"ExpandedQuotes");import{i18n as Yh}from"@lingui/core";import{SwapInput as Zh}from"@rango-dev/ui";import eI from"bignumber.js";import _r from"react";import{ReverseIcon as RE}from"@rango-dev/ui";import Lc from"react";import{keyframes as ZE,styled as qh}from"@rango-dev/ui";var Wc=450,JE=ZE({"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)"}}),Gh=qh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Vh=qh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${JE} ${Wc}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 Mc(){let t=z().use.switchFromAndTo();return Lc.createElement(Gh,null,Lc.createElement(Vh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Wc),t()}},Lc.createElement(RE,{size:12})))}i(Mc,"SwitchFromAndToButton");import{styled as Kh}from"@rango-dev/ui";var jh=Kh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Xh=Kh("div",{position:"relative"});function Pc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:d,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:m}=z()(),{swapMode:y}=et(),{connectedWallets:S,getBalanceFor:C}=T(),k=a?C(a):null,v=ri(k)?.amount??"0",w=k?new eI(k.amount).shiftedBy(-k.decimals):pe,I=!!s&&ku(S,s.name),A=!_s(m,d,f),b=!_s(m,d,g),E=!f||!g||!g.gt(0)?null:Kt(f.toString(),g.toString());return _r.createElement(jh,null,_r.createElement(Xh,null,_r.createElement(Zh,{label:Yh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:v,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:A?void 0:M(f,4,4),realUsdValue:A?void 0:f?.toString(),error:A?re().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:I,tooltipContainer:N(),onSelectMaxBalance:()=>{let x=w.isGreaterThan(pe)?w.toFixed():"";p(x)},anyWalletConnected:S.length>0}),y==="swap"&&_r.createElement(Mc,null)),_r.createElement(Zh,{selectionType:y==="swap"?"token":"chain",sharpBottomStyle:!r&&(!!m||e),label:Yh.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:M(Kt(f,g),2,2),warningLevel:jt(E??0),price:{value:M(h,6,6),usdValue:b?void 0:M(g,4,4),realValue:h?.toString(),realUsdValue:b?void 0:g?.toString(),error:b?re().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(Pc,"Inputs");import{warn as tI}from"@rango-dev/logging-core";import{useCallback as oI,useEffect as nI,useRef as rI,useState as iI}from"react";function Jh(){let{fetch:t,loading:e,cancelFetch:o}=aa({request:async(n,r)=>await at().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Jh,"useFetchAllQuotes");var aI=600;function ya({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Jh(),{excludeLiquiditySources:n,routing:r}=T().config,{connectedWallets:a}=T(),c=a.some(be=>be.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:f,sortStrategy:h,resetQuote:g,error:m,warning:y,setSelectedQuote:S,updateQuotePartialState:C}=z()(),{slippage:k,customSlippage:v,affiliatePercent:w,affiliateRef:I,affiliateWallets:A,fetchStatus:b}=T(),E=T().getLiquiditySources(),x=T().getDisabledLiquiditySources(),W=T().excludeLiquiditySources(),{findToken:P}=T(),{swapMode:U}=et(),[G,K]=iI(!0),J=rI(u),B=v??k,Y=!l||!p||Qt(l,p)||!qn(u),le=i(be=>{K(be)},"resetState"),ve=i(be=>{let{fromToken:dt,toToken:kt,inputAmount:wt,liquiditySources:F,excludeLiquiditySources:O,disabledLiquiditySources:X,slippage:ee,affiliateRef:j,affiliatePercent:Q,affiliateWallets:Ve}=be;if(G||le(!0),!Y&&dt&&kt){g();let q=Fd({fromToken:dt,toToken:kt,inputAmount:wt,liquiditySources:F,excludeLiquiditySources:O,disabledLiquiditySources:X,wallets:a,slippage:ee,affiliateRef:j,affiliatePercent:Q,affiliateWallets:Ve,contractCall:c});cn("experimental",r)&&(q.experimental=!0),cn("avoidNativeFee",r)&&(q.avoidNativeFee=!0),cn("enableCentralizedSwappers",r)&&(q.enableCentralizedSwappers=!0),r?.maxLength&&(q.maxLength=r.maxLength),U==="refuel"&&(q.maxLength=1),e(q).then(ye=>{let Je=ki(h,ye.results),mt=Ed(f,Je,ye.requestAmount);K(!1),C("quotes",ye),S(mt),sa({diagnosisMessages:ye.diagnosisMessages,requestId:mt?.requestId||"",swaps:mt?.swaps});let ao=mt&&Cn({currentQuote:mt,userSlippage:B,findToken:P});C("warning",ao)}).catch(ye=>{let Je=la(ye);(Je.type===0||Je.type===1)&&g(),Je.type!==2&&(C("error",Je),K(!1),tI(new Error("quote error"),{tags:{...Je,type:Xe[Je.type],requestBody:q}}))})}},"fetch"),Ht=oI(Jr(be=>{ve(be)},aI),[Y]);return nI(()=>{if(!t){K(!1);return}if(b!=="success")return;if(Y){K(!1),(f||m||y)&&g();return}if(!qn(u)&&d?.eq(0)){le(!1),o();return}g(),le(!0);let be=ve;return J.current&&J.current!=u&&(be=Ht),J.current=u,be({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:W,disabledLiquiditySources:x,slippage:B,affiliateRef:I,affiliatePercent:w,affiliateWallets:A,contractCall:c}),o},[b,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,Y,E?.length,n,x.length,B,I,w,c,JSON.stringify(A)]),{fetch:()=>ve({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:W,disabledLiquiditySources:x,slippage:B,affiliateRef:I,affiliatePercent:w,affiliateWallets:A,contractCall:c}),loading:G}}i(ya,"useSwapInput");function Rh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};ke.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Rh,"emitPreventableEvent");var dI=lI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),mI=300;function ny(){let t=uI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:f}=z()(),[h,g]=oy(!1),{isLargeScreen:m,isExtraLargeScreen:y}=Zi(),{fetch:S,loading:C}=ya({refetchQuote:a}),{config:k,fetchStatus:v,connectedWallets:w,customSlippage:I,slippage:A,setSlippage:b,setCustomSlippage:E}=T(),{isActiveTab:x}=oe(),[W,P]=oy(!1),U=I!==null?I:A,{swapMode:G}=et(),K=pn(U),B=Pd({fetchMetaStatus:v,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:w.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),R=Au(m,y,k?.variant),Y=!!n&&!!e&&!!o&&new pI(n).gt(0)&&!Gd(e,o),le=Y&&v==="success"&&C,ve=K?.quoteValidation||c,dt=(!R||R&&l?.results.length)&&(ve||s),kt=!!e&&!!o,wt=kt&&!!K,F=(r||s)&&!W?S:void 0,O=i(Q=>{R&&h?(g(!1),setTimeout(()=>{t(Q)},mI)):t(Q)},"onHandleNavigation"),X=i(Q=>{r?.requestId!==Q.requestId&&(P(!1),p(Q))},"onClickOnQuote"),ee=i(Q=>{if(Q){if(ai.includes(Q)){b(Q),E(null);return}E(Q)}},"onChangeSlippage"),j=i(Q=>{O(Q==="from"?D.fromSwap:G==="swap"?D.toSwap:D.toSwap+"/"+D.blockchains)},"handleInputTokenClick");return ty(()=>{u(),f("refetchQuote",!0)},[]),ty(()=>{g(Y)},[Y]),Se.createElement(dI,null,Se.createElement(ae,{height:"auto",footer:Se.createElement(sI,{id:`widget-swap-${B.action}-btn`,type:"primary",size:"large",disabled:B.disabled||!x,prefix:B.action==="confirm-warning"&&Se.createElement(cI,null),fullWidth:!0,onClick:()=>{B.action==="connect-wallet"?Rh({type:"clickConnectWallet"},()=>O(D.wallets)):B.action==="confirm-warning"?P(!0):O(D.confirmSwap)}},B.title),header:{onWallet:()=>{O(D.wallets)},hasBackButton:!1,title:k.title||(G==="swap"?ey.t("Swap"):ey.t("Refuel")),suffix:Se.createElement(Uo,{hidden:R?["refresh"]:void 0,onClickRefresh:F,onClickHistory:()=>O(D.swaps),onClickSettings:()=>{O(D.settings)}})}},Se.createElement(ce,null,Se.createElement(Pc,{fetchingQuote:le,fetchMetaStatus:v,isExpandable:R,onClickToken:j}),Se.createElement(_c,{size:"2"}),R?null:Se.createElement(Go,{quote:r,loading:le,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:ve,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),O(D.routes)}:void 0}),kt&&Se.createElement(Se.Fragment,null,Se.createElement(_c,{size:8}),Se.createElement(Ic,{quoteError:s,quoteWarning:ve,fromToken:e,toToken:o,quote:r,loading:le})),dt?Se.createElement(Se.Fragment,null,Se.createElement(gr,{warning:ve,error:s,skipAlerts:!!K,couldChangeSettings:!0,refetchQuote:S,showWarningModal:W,confirmationDisabled:!x,onOpenWarningModal:()=>P(!0),onCloseWarningModal:()=>P(!1),onChangeSlippage:ee,onConfirmWarningModal:()=>{P(!1),d(!0),O(D.confirmSwap)},onChangeSettings:()=>O(D.settings)})):null,wt&&Se.createElement(Se.Fragment,null,Se.createElement(_c,{size:"10"}),Se.createElement(Nh,{onChangeSettings:()=>O(D.settings)})),Se.createElement(vc,null))),R?Se.createElement(Bc,{loading:le,onClickOnQuote:X,fetch:S,onClickRefresh:F,isVisible:h}):null)}i(ny,"Home");import{i18n as ry}from"@lingui/core";import{Alert as fI,Divider as gI,List as hI,ListItemButton as yI,Radio as SI,RadioRoot as CI,Typography as TI}from"@rango-dev/ui";import $t from"react";function ko(){let{setLanguage:t,language:e,config:o}=T(),n=_u,r=o?.language||un;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||un),resetLanguage:()=>t(null)}}i(ko,"useLanguage");function iy(){let{activeLanguage:t,changeLanguage:e,languages:o}=ko(),n=Qe(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:$t.createElement(TI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:$t.createElement(SI,{value:s}),start:$t.createElement(l,null)}});return $t.createElement(ae,{header:{title:ry.t("Language")}},$t.createElement(ce,null,$t.createElement(fI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),$t.createElement(gI,{size:"8"}),$t.createElement(CI,{value:t},$t.createElement(hI,{type:$t.createElement(yI,{title:ry.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(iy,"LanguagePage");import{i18n as oo}from"@lingui/core";import{Button as xI,Checkbox as EI,Image as II,ListItemButton as AI,NotFound as NI,Typography as BI}from"@rango-dev/ui";import Ze,{useState as WI}from"react";import{Checkbox as vI,Skeleton as sy}from"@rango-dev/ui";import $r from"react";import{styled as Dc}from"@rango-dev/ui";var Dr=Dc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),$c=Dc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Fc=Dc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as kI,styled as wI}from"@rango-dev/ui";var ay=wI(kI,{height:61});var bI=30;function Oc(){return $r.createElement(Dr,null,Array.from(Array(bI),(t,e)=>$r.createElement(ay,{hasDivider:!0,key:e,start:$r.createElement(sy,{variant:"circular",width:35,height:35}),title:$r.createElement(sy,{variant:"text",size:"large",width:90}),end:$r.createElement(vI,{checked:!1})})))}i(Oc,"LoadingLiquiditySourceList");function Uc({sourceType:t}){let e=T().fetchStatus,o=T().swappers(),n=T().getDisabledLiquiditySources(),[r,a]=WI(""),s=T().toggleLiquiditySource,c=T().isInCampaignMode(),l=ci(o,n),p={Exchanges:oo.t("Exchanges"),Bridges:oo.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(S=>u.includes(S.type)),f=d.length===d.filter(S=>S.selected).length,h=i(()=>{d.forEach(S=>{f?s(S.groupTitle):S.selected||s(S.groupTitle)})},"toggleAllSources"),g=d.map(S=>{let{selected:C,groupTitle:k,logo:v,id:w,...I}=S;return{id:`widget-setting-liquidity-source-${lu(w.toLowerCase())}-item-btn`,start:Ze.createElement(II,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:Ze.createElement(EI,{checked:C,disabled:c}),title:Ze.createElement(BI,{variant:"title",size:"xmedium"},oo.t(k)),selected:C,groupTitle:k,logo:v,...I}}),m=i(S=>{let C=S.target.value;a(C)},"handleSearch"),y=g;return r&&(y=g.filter(S=>Lt(S.groupTitle,r))),Ze.createElement(ae,{header:{title:oo.t(t),suffix:Ze.createElement($c,null,Ze.createElement(xI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},f?oo.t("Deselect all"):oo.t("Select all")))}},Ze.createElement(ce,{view:!0},Ze.createElement(At,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:oo.t("Search {sourceType}",{sourceType:p[t]}),onChange:m}),e==="loading"&&Ze.createElement(Oc,null),!y.length&&r?Ze.createElement(Fc,null,Ze.createElement(NI,{title:oo.t("No results found"),description:oo.t("Try using different keywords")})):e==="success"&&Ze.createElement(Dr,{disabled:c,className:"widget-liquidity-source-list"},y.map(S=>{let{groupTitle:C,...k}=S;return Ze.createElement(Ze.Fragment,{key:S.id},Ze.createElement(AI,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Uc,"LiquiditySourcePage");import{i18n as LI}from"@lingui/core";import Sa from"react";import{useNavigate as MI}from"react-router-dom";function ly(){let t=MI(),e=Qe(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=z()(),{fetch:c,loading:l}=ya({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${D.settings}`,d=`../${D.wallets}`;return Sa.createElement(ae,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:LI.t("Routes"),suffix:Sa.createElement(Uo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Sa.createElement(ce,null,Sa.createElement(Pr,{fetch:c,loading:l,onClickOnQuote:p})))}i(ly,"RoutesPage");import{i18n as gy}from"@lingui/core";import{Divider as hy,getCategoriesCount as QI,SelectableCategoryList as qI}from"@rango-dev/ui";import no,{useMemo as GI,useState as yy}from"react";import{useNavigate as VI}from"react-router-dom";import{i18n as zc}from"@lingui/core";import{Divider as $I,Image as FI,ListItemButton as OI,NotFound as UI,Typography as fy}from"@rango-dev/ui";import ut,{useEffect as zI,useState as HI}from"react";var cy=i((t,e,o)=>t.filter(n=>Rr(n.type,o)).filter(n=>rt(n.name,e)||rt(n.displayName,e)),"filterBlockchains");import{ImageContainer as PI,styled as py}from"@rango-dev/ui";var uy=py("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Ca=py(hl,{padding:0,margin:0,listStyle:"none",[`& ${PI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as _I,Skeleton as dy}from"@rango-dev/ui";import Ta from"react";var DI=20;function my(){return Ta.createElement(Ca,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(DI),t=>Ta.createElement(_I,{key:t,hasDivider:!0,start:Ta.createElement(dy,{variant:"circular",width:35,height:35}),title:Ta.createElement(dy,{variant:"text",size:"large",width:90})})))}i(my,"LoadingBlockchainList");function Hc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=HI(e),{fetchStatus:l}=T();zI(()=>{c([...cy(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ut.createElement(UI,{title:zc.t("No results found"),description:zc.t("Try using different keywords")}):ut.createElement(Ca,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ut.createElement(OI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ut.createElement(FI,{src:u.logo,size:30}),title:ut.createElement(fy,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ut.createElement(ut.Fragment,null,a&&ut.createElement(ut.Fragment,null,ut.createElement(fy,{variant:"label",size:"large"},zc.t("Select Chain")),ut.createElement($I,{size:4})),ut.createElement(uy,null,l==="loading"&&ut.createElement(my,null),l==="success"&&p()))}i(Hc,"BlockchainList");function ka(t){let{type:e}=t,o=Qe(),[n,r]=yy(""),[a,s]=yy("ALL"),c=z().use.setToBlockchain(),l=z().use.setFromBlockchain(),p=z().use.setToToken(),{fetchStatus:u,findNativeToken:d}=T(),f=VI(),{swapMode:h}=et(),g=T().blockchains({type:e}),m=T().tokens(),y=GI(()=>ru(g,m),[g.length,m.length]),S=QI(y),C=!t.hideCategory&&S!==1,k=i(v=>{if(e==="custom-token")f(`..?blockchain=${v.name}`,{replace:!0});else{if(e==="source")l(v);else if(h==="swap")c(v);else{let w=d(v);w&&p({token:w,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return no.createElement(ae,{header:{title:gy.t("Select Chain")}},no.createElement(ce,{view:!0},C&&no.createElement(no.Fragment,null,no.createElement(qI,{setCategory:s,category:a,blockchains:y,isLoading:u==="loading"}),no.createElement(hy,{size:24})),no.createElement(At,{value:n,autoFocus:!0,placeholder:gy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:v=>r(v.target.value)}),no.createElement(hy,{size:16}),no.createElement(Hc,{list:y,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:k})))}i(ka,"SelectBlockchainPage");import{i18n as ba}from"@lingui/core";import{Divider as by,Spinner as sA}from"@rango-dev/ui";import wo,{useEffect as lA,useState as cA}from"react";import{useNavigate as pA}from"react-router-dom";import{i18n as Gc}from"@lingui/core";import{BlockchainsChip as wa,Divider as ky,Image as wy,Skeleton as JI,Tooltip as RI,Typography as Vc}from"@rango-dev/ui";import xe from"react";import{useEffect as XI}from"react";var Sy=["ETH"];function Qc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(KI),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(jI(s)),r=n.splice(a)}return{list:n,more:r}}i(Qc,"prepare");function KI(t,e){let o=Sy,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(KI,"sortByMostUsedBlockchains");function jI(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(jI,"generateSortByPreferredBlockchainsFor");function Cy(t,e){return!!e.list.find(o=>o.name===t)}i(Cy,"isInVisibleList");function qc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=T();XI(()=>{if(e?.selected){let a=Qc(t,o,e);Cy(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Qc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(qc,"usePrepareBlockchainList");import{styled as YI}from"@rango-dev/ui";var Ty=YI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var eA=6,tA=12;function Kc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=qc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=T(),p=z().use.resetToBlockchain(),u=z().use.resetFromBlockchain(),d=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&d;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(ky,{size:12}),xe.createElement(Vc,{variant:"label",size:"large"},Gc.t("Select Chain"))),xe.createElement(ky,{size:12}),xe.createElement(Ty,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?eA:tA),(m,y)=>xe.createElement(JI,{key:y,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(wa,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(Vc,{variant:"body",size:"xsmall",color:"secondary500"},Gc.t("All"))),c.list.map(m=>xe.createElement(RI,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:N()},xe.createElement(wa,{className:"widget-blockchains-section-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},xe.createElement(wy,{src:m.logo,size:30})))),h?xe.createElement(wa,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(wy,{src:f.logo,size:30})):null,g?xe.createElement(wa,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(Vc,{variant:"body",size:"xsmall",color:"secondary500"},Gc._("More +{count}",{count:c.more.length}))):null)))}i(Kc,"BlockchainsSection");import{useCallback as nA,useRef as rA,useState as jc}from"react";function Xc(){let t=T().blockchains(),e=rA(null),{customTokens:o}=T(),[n,r]=jc(!1),[a,s]=jc([]),[c,l]=jc(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await at().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(C=>Gt(C))),y=new Set(t.map(C=>C.name)),S=g.tokens.filter(C=>y.has(C.blockchain)&&!m.has(Gt(C)));s(S),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=nA(Jr((f,h)=>{e.current?.signal.aborted||p(f,h)},600),[t.length]);return{fetch:(f,h)=>{e.current=new AbortController,s([]),r(!0),u(f,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Xc,"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 vy(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(vy,"prepareTokensList");function xa(t){let{type:e}=t,o=pA(),n=Qe(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=z()(),{getBalanceFor:u}=T(),{fetch:d,loading:f,tokens:h,cancel:g}=Xc(),[m,y]=cA(""),S=e==="source"?r:a,C=S?.name??"",k=T().blockchains({type:e}),v=T().tokens({type:e,blockchain:C,searchFor:m,getBalanceFor:u}),w=vy(v,h,m,f,S?.name),I=i(E=>{e==="source"?l(E):p(E)},"updateBlockchain"),A=i(E=>{e==="source"?s({token:E,meta:{blockchains:k}}):c({token:E,meta:{blockchains:k}})},"updateToken"),b={source:ba.t("Source"),destination:ba.t("Destination")};return lA(()=>(va(v,m,S?.name)&&d(m,S?.name??void 0),()=>{g()}),[v.length,m,S?.name]),wo.createElement(ae,{header:{title:ba.t("Swap {type}",{type:b[e]})}},wo.createElement(ce,null,wo.createElement(Kc,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(D.blockchains),onChange:E=>{I(E)}}),wo.createElement(by,{size:24}),wo.createElement(At,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:ba.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>y(""),onChange:E=>y(E.target.value),suffix:va(v,m,S?.name)&&f?wo.createElement(sA,{size:12,color:"secondary"}):void 0}),wo.createElement(by,{size:16}),wo.createElement(Er,{list:w,selectedBlockchain:C,searchedFor:m,type:e,onChange:E=>{A(E);let x=k.find(W=>E.blockchain===W.name);x&&I(x),n()}})))}i(xa,"SelectSwapItemsPage");import{i18n as Rc}from"@lingui/core";import{Alert as $A,Button as FA,styled as OA}from"@rango-dev/ui";import Xo from"react";import{useInRouterContext as UA,useSearchParams as zA}from"react-router-dom";import{i18n as By}from"@lingui/core";import{Alert as fA,Divider as Zc,InfoIcon as gA,SlippageIcon as hA,TextField as yA,Tooltip as SA,Typography as Wy}from"@rango-dev/ui";import Oe from"react";import{Chip as uA,styled as Fr,TextField as dA}from"@rango-dev/ui";var xy=Fr("div",{paddingTop:"$5",padding:"$10 $5"}),Ey=Fr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${dA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),Iy=Fr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Ea=Fr("div",{maxWidth:"280px",padding:"$10"}),Ay=Fr(uA,{width:"61px",flexShrink:0});import{i18n as Yc}from"@lingui/core";import{Typography as mA}from"@rango-dev/ui";import Or from"react";function Ny(){return Or.createElement(Ea,null,Or.createElement(mA,{variant:"label",size:"medium",color:"neutral700"},Yc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Or.createElement("br",null),Or.createElement("br",null),Or.createElement("b",null,Yc.t("Warning")),":\xA0",Yc.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(Ny,"SlippageTooltipContent");function Jc(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=T(),r=o!==null?pn(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let d=u;u>jn&&(d=jn),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;uu(u)||(p.value=u.slice(0,-1))},"onInput");return Oe.createElement(xy,null,Oe.createElement(Iy,null,Oe.createElement(hA,{size:16,color:"gray"}),Oe.createElement(Zc,{direction:"horizontal",size:4}),Oe.createElement(Wy,{variant:"title",size:"xmedium"},By.t("Slippage tolerance per swap")),Oe.createElement(Zc,{direction:"horizontal",size:4}),Oe.createElement(SA,{container:N(),side:"top",sideOffset:4,content:Oe.createElement(Ny,null)},Oe.createElement(gA,{color:"gray"}))),Oe.createElement(Ey,null,ai.map((l,p)=>{let u=`slippage-${p}`;return Oe.createElement(Ay,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),Oe.createElement(yA,{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&&Oe.createElement(Wy,{variant:"body",size:"small"},"%"),placeholder:By.t("Custom")})),r&&Oe.createElement(Oe.Fragment,null,Oe.createElement(Zc,{size:10}),Oe.createElement(fA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(Jc,"Slippage");import{i18n as Tt}from"@lingui/core";import{AutoThemeIcon as Ly,BridgesIcon as CA,ChevronRightIcon as Ia,DarkModeIcon as My,Divider as Ur,ExchangeIcon as TA,InfinityIcon as kA,InfoIcon as wA,LanguageIcon as vA,LightModeIcon as Py,List as bA,ListItem as xA,ListItemButton as EA,Skeleton as IA,styled as AA,Switch as NA,Tabs as BA,TargetIcon as WA,Tooltip as LA,Typography as nt}from"@rango-dev/ui";import _ from"react";import{useNavigate as MA}from"react-router-dom";var PA=AA("div",{width:"202px",height:"$40"}),_A=[{id:"light",icon:_.createElement(Py,{color:"black",size:24}),tooltip:_.createElement(nt,{size:"xsmall",variant:"body"},Tt.t("Light"))},{id:"dark",icon:_.createElement(My,{color:"black",size:24}),tooltip:_.createElement(nt,{size:"xsmall",variant:"body"},Tt.t("Dark"))},{id:"auto",icon:_.createElement(Ly,{color:"black",size:24}),tooltip:_.createElement(nt,{size:"xsmall",variant:"body"},Tt.t("Auto"))}],DA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return _.createElement(Ly,{...e});case"dark":return _.createElement(My,{...e});default:return _.createElement(Py,{...e})}},"getThemeIcon");function _y(){let t=MA(),{theme:e}=T().config,{setTheme:o,theme:n}=T(),{activeLanguage:r,languages:a}=ko(),s=a.find(B=>B.local===r)?.label,c=T().fetchStatus,l=T().swappers(),p=T().getDisabledLiquiditySources(),{config:{features:u}}=T(),d=T().customTokens(),f=Re("theme",u),h=Re("liquiditySource",u),g=Re("language",u),m=Re("customTokens",u),y=T().infiniteApprove,S=T().toggleInfiniteApprove,C=ci(l,p),k=C.filter(B=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(B.type)),v=k.length,w=k.filter(B=>B.selected).length,I=C.filter(B=>B.type==="DEX"),A=I.length,b=I.filter(B=>B.selected).length,E=i((B,R)=>{switch(c){case"loading":return _.createElement(IA,{variant:"text",size:"medium",width:50});case"failed":return _.createElement(nt,{variant:"body",size:"medium",color:"$error500"},Tt.t("Loading failed"));default:return _.createElement(nt,{variant:"body",size:"medium"},`${B} / ${R}`)}},"handleSwapperEndItem"),x={id:"widget-setting-bridge-item-btn",title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Bridges")),end:_.createElement(_.Fragment,null,E(w,v),_.createElement(Ur,{direction:"horizontal",size:8}),_.createElement(Ia,{color:"black"})),onClick:()=>t(D.bridges),start:_.createElement(CA,{color:"gray",size:16})},W={id:"widget-setting-exchange-item-btn",title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Exchanges")),end:_.createElement(_.Fragment,null,E(b,A),_.createElement(Ur,{direction:"horizontal",size:8}),_.createElement(Ia,{color:"black"})),start:_.createElement(TA,{color:"gray",size:16}),onClick:()=>t(D.exchanges)},P={id:"widget-setting-custom-tokens-item-btn",title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Custom Tokens")),end:_.createElement(_.Fragment,null,_.createElement(nt,{variant:"body",size:"medium"},`${d.length}`),_.createElement(Ur,{direction:"horizontal",size:8}),_.createElement(Ia,{color:"black"})),start:_.createElement(WA,{color:"gray",size:16}),onClick:()=>t(D.customTokens)},U={id:"widget-setting-language-item-btn",title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Language")),start:_.createElement(vA,{color:"gray",size:16}),end:_.createElement(_.Fragment,null,_.createElement(nt,{variant:"body",size:"medium"},s),_.createElement(Ur,{direction:"horizontal",size:8}),_.createElement(Ia,{color:"black"})),onClick:()=>t(D.languages)},G={id:"widget-setting-infinite-approval-item-btn",title:_.createElement(_.Fragment,null,_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Infinite approval")),_.createElement(Ur,{direction:"horizontal",size:4}),_.createElement(LA,{side:"top",sideOffset:4,container:N(),content:_.createElement(Ea,null,_.createElement(nt,{variant:"label",size:"medium",color:"neutral700"},_.createElement("b",null,Tt.t("Warning")),":\xA0",Tt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},_.createElement(wA,{color:"gray"}))),start:_.createElement(kA,{color:"gray",size:16}),end:_.createElement(NA,{checked:y}),onClick:S},K={id:"widget-setting-theme-item-btn",type:_.createElement(xA,null),title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Theme")),end:_.createElement(PA,null,_.createElement(BA,{container:N(),items:_A,value:n,className:"widget-setting-theme-item-tabs-container",onChange:B=>o(B.id),type:"primary",borderRadius:"small"})),start:DA(n)},J=h?[]:[x,W];return m||J.push(P),g||J.push(U),J.push(G),!e?.singleTheme&&!f&&J.push(K),_.createElement(bA,{type:_.createElement(EA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:J})}i(_y,"SettingsLists");var HA=OA("div",{paddingLeft:"$8"});function Dy(){let{isInCampaignMode:t,updateCampaignMode:e}=T(),o=t(),[,n]=zA(),r=UA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Xo.createElement(ae,{header:{title:Rc.t("Settings")}},Xo.createElement(ce,null,o&&Xo.createElement($A,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:Rc.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:Xo.createElement(HA,null,Xo.createElement(FA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Rc.t("Reset")))}),Xo.createElement(Jc,null),Xo.createElement(_y,null)))}i(Dy,"SettingsPage");import{i18n as JN}from"@lingui/core";import{cancelSwap as RN}from"@rango-dev/queue-manager-rango-preset";import{useManager as e0}from"@rango-dev/queue-manager-react";import{Alert as t0}from"@rango-dev/ui";import hp from"react";import{useParams as o0}from"react-router-dom";import{i18n as Ot}from"@lingui/core";import{getCurrentNamespaceOfOrNull as FN,getCurrentStep as ON,getRelatedWalletOrNull as UN}from"@rango-dev/queue-manager-rango-preset";import{Button as BS,Divider as zN,QuoteCost as HN,StepDetails as QN,Typography as pp}from"@rango-dev/ui";import{useWallets as qN}from"@rango-dev/wallets-react";import WS from"bignumber.js";import{PendingSwapNetworkStatus as Dn}from"rango-types";import Te,{useEffect as up,useRef as dp,useState as Da}from"react";import{useNavigate as GN}from"react-router-dom";import{i18n as vo}from"@lingui/core";var QA=[vo.t("Sunday"),vo.t("Monday"),vo.t("Tuesday"),vo.t("Wednesday"),vo.t("Thursday"),vo.t("Friday"),vo.t("Saturday")];function $y(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?vo.t("Today"):`${QA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i($y,"timeSince");function Fy(t){return t.finishTime?$y(parseInt(t.finishTime)):$y(parseInt(t.creationTime))}i(Fy,"getSwapDate");import zr from"react";import{i18n as Aa}from"@lingui/core";import{Button as Oy,Divider as ep,MessageBox as qA}from"@rango-dev/ui";import bo from"react";var Uy=i(({onCancel:t,onClose:e})=>bo.createElement(bo.Fragment,null,bo.createElement(ep,{size:20}),bo.createElement(qA,{type:"error",title:Aa.t("Cancel Swap"),description:Aa.t("Are you sure you want to cancel this swap?")}),bo.createElement(ep,{size:32}),bo.createElement(Oy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Aa.t("Yes, Cancel it")),bo.createElement(ep,{size:12}),bo.createElement(Oy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Aa.t("No, Continue"))),"CancelContent");import{i18n as Na}from"@lingui/core";import{Button as zy,Divider as tp,MessageBox as GA,Typography as VA}from"@rango-dev/ui";import ro from"react";var Hy=i(({onDelete:t,onClose:e})=>ro.createElement(ro.Fragment,null,ro.createElement(tp,{size:20}),ro.createElement(GA,{type:"error",title:Na.t("Delete Transaction"),description:Na.t("Are you sure you want to delete this swap?")}),ro.createElement(tp,{size:32}),ro.createElement(zy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Na.t("Yes, Delete it")),ro.createElement(tp,{size:12}),ro.createElement(zy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},ro.createElement(VA,{variant:"title",size:"medium",color:"primary"},Na.t("No, Cancel")))),"DeleteContent");import{i18n as KA}from"@lingui/core";import{Button as jA,Divider as XA,MessageBox as YA}from"@rango-dev/ui";import Yo from"react";var Qy=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Yo.createElement(Yo.Fragment,null,Yo.createElement(YA,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Yo.createElement(Yo.Fragment,null,Yo.createElement(XA,{size:"30"}),Yo.createElement(jA,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},KA.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as fN,getCurrentStep as gN,getRelatedWalletOrNull as hN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as yN}from"@rango-dev/ui";import{useWallets as SN}from"@rango-dev/wallets-react";import Yy from"react";import{i18n as Pn}from"@lingui/core";import{Alert as Vy,Button as RA,Checkbox as eN,Divider as La,Image as tN,MessageBox as oN,Spinner as nN,WarningIcon as rN}from"@rango-dev/ui";import{useWallets as iN}from"@rango-dev/wallets-react";import he,{useState as aN}from"react";import{css as ZA,darkTheme as JA,styled as op}from"@rango-dev/ui";var qy=ZA({wordWrap:"break-word",display:"block"}),Gy=op("img",{width:"100%"}),Ba=op("div",{position:"relative"}),Wa=op("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${JA} &`]:{$$color:"$warning600"}});var Ky=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=aN(null),{list:s}=vt(),c=oe.use.isActiveTab(),{state:l,connect:p}=iN(),u=s.find(w=>w.type===e.walletType),d=u?.needsNamespace?.data.find(w=>w.value===o?.namespace);if(!u)return null;let f=l(e.walletType),h=u.isHub&&o?.namespace?f.namespaces?.get(o.namespace):null,g=f.connecting||h?.connecting,m=u.isHub?h?.connected:f.connected,y=i(()=>m?Pn.t("Done"):r?Pn.t("Try again"):Pn.t("Connect"),"getButtonTitle"),S=i(()=>g?he.createElement(nN,{color:"info"}):r||m?null:he.createElement(eN,{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(w){a(w)}},"handleConnect"),k=i(async()=>{if(m){n();return}C()},"handleClickButton"),v=i(()=>{if(!m)return null;let w=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),I=w?.[w?.length-1];return I?so(I):null},"getAddress");return he.createElement(he.Fragment,null,he.createElement(oN,{type:"warning",title:Pn.t("Connect {wallet}",{wallet:u.title}),description:Pn.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:he.createElement(Ba,null,he.createElement(tN,{src:u.image,size:45}),he.createElement(Wa,null,he.createElement(rN,{color:"warning",size:10})))}),m&&!d&&he.createElement(he.Fragment,null,he.createElement(La,{size:10}),he.createElement(Vy,{type:"success",variant:"alarm",title:Pn.t("Wallet connected successfully.")})),r&&!d&&he.createElement(he.Fragment,null,he.createElement(La,{size:10}),he.createElement(Vy,{type:"error",title:r?.message,variant:"alarm"})),d&&he.createElement(he.Fragment,null,he.createElement(La,{size:30}),he.createElement(Po,{namespace:d,suffix:S(),error:r?.message,connected:m,address:v()})),he.createElement(La,{size:"40"}),he.createElement(RA,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:k,disabled:!c},y()))},"ConnectWalletContent");import{i18n as jy}from"@lingui/core";import{Button as sN,Divider as lN,Image as cN,MessageBox as pN,WarningIcon as uN}from"@rango-dev/ui";import{useWallets as dN}from"@rango-dev/wallets-react";import{detectInstallLink as mN}from"@rango-dev/wallets-shared";import io from"react";var Xy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=dN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(mN(n.installLink),"_blank"),"handleButtonClick");return io.createElement(io.Fragment,null,io.createElement(pN,{type:"warning",title:jy.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:io.createElement(Ba,null,io.createElement(cN,{src:n.img,size:45}),io.createElement(Wa,null,io.createElement(uN,{color:"warning",size:10})))}),io.createElement(lN,{size:"40"}),io.createElement(sN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},jy.t("Install")))},"InstallWalletContent");var Zy=i(t=>{let{swap:e,onClose:o}=t,{state:n,getWalletInfo:r}=SN(),a=gN(e),s=a?hN(e,a):null,c=s?.walletType,l=c?Gn(r(c),n(c)):null,p=a?fN(e,a):null;return c?l===yN.NOT_INSTALLED?Yy.createElement(Xy,{walletType:c}):Yy.createElement(Ky,{wallet:s,namespace:p,onClose:o}):null},"WalletStateContent");function np(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return zr.createElement(ne,{open:e,onClose:r,container:N()},o==="connectWallet"&&zr.createElement(Zy,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&zr.createElement(Qy,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&zr.createElement(Hy,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&zr.createElement(Uy,{onClose:r,onCancel:()=>{r(),s()}}))}i(np,"SwapDetailsModal");import{i18n as Hr}from"@lingui/core";import{Button as rp,Divider as Qr,MessageBox as eS,TokenAmount as CN,Typography as tS}from"@rango-dev/ui";import Ce from"react";import{Link as TN,useNavigate as kN}from"react-router-dom";var Jy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Ry="/profile";function ip(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:d,diagnosisUrl:f}=t,h=kN(),{showProfileBanner:g}=oe();return Ce.createElement(ne,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(ht.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement(eS,{type:"success",title:Hr.t("Swap Successful")},Ce.createElement(CN,{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(Qr,{size:12}),Ce.createElement(tS,{className:qy(),variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Ce.createElement(eS,{type:"error",title:Hr.t("Transaction Failed"),description:d}),Ce.createElement(Qr,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,g&&Ce.createElement(Ce.Fragment,null,Ce.createElement(TN,{to:Ry},Ce.createElement(Gy,{src:Jy,alt:"Profile Banner"})),Ce.createElement(Qr,{size:30})),Ce.createElement(rp,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Hr.t("Done"))),Ce.createElement(Qr,{size:12}),f&&Ce.createElement(Ce.Fragment,null,Ce.createElement(rp,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Hr.t("Diagnosis")),Ce.createElement(Qr,{size:12})),Ce.createElement(rp,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement(tS,{variant:"title",size:"medium",color:"primary"},Hr.t("See Details"))))}i(ip,"SwapDetailsCompleteModal");import{i18n as _a}from"@lingui/core";import{CopyIcon as MN,DoneIcon as PN,IconButton as _N,RangoExplorerIcon as DN,Tooltip as bS,Typography as xS,useCopyToClipboard as $N}from"@rango-dev/ui";import Bt from"react";import LN from"react";import{i18n as AN}from"@lingui/core";import{Alert as TS,IconButton as NN,LinkIcon as BN}from"@rango-dev/ui";import xo,{Fragment as WN}from"react";import{Alert as vN,ChevronDownIcon as bN,IconButton as xN}from"@rango-dev/ui";import _n,{useState as EN}from"react";import{css as qr,darkTheme as oS,styled as Ft,Typography as wN}from"@rango-dev/ui";var nS=Ft(ce,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${oS} &`]:{color:"$secondary500"}}}}}),rS=Ft("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),iS=Ft("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),aS=Ft("div",{padding:"$0 $20 $20 $20"}),$X=Ft("div",{display:"flex",flexDirection:"column",gap:"$10"}),sS=Ft("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),FX=Ft("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Zo=qr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${oS} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),lS=qr({padding:"$5 0"}),Ma=qr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),cS=qr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),pS=qr({width:"100%",padding:"0 $20 $10"}),uS=Ft("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),dS=Ft("div",{display:"flex",flexDirection:"column",gap:"$5"}),Pa=Ft(wN,{wordBreak:"break-word"});import{styled as ap}from"@rango-dev/ui";var mS=ap("div",{display:"flex",flexDirection:"column",gap:"$10"}),fS=ap("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),gS=ap("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function hS(t){let{message:e}=t,[o,n]=EN(!1);return _n.createElement(vN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&_n.createElement(xN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},_n.createElement(fS,{rotated:o},_n.createElement(bN,{size:12,color:"gray"}))),footer:_n.createElement(gS,{open:o},_n.createElement(Pa,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(hS,"FailedAlert");import{i18n as yS}from"@lingui/core";import{Alert as sp,Button as SS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as IN}from"rango-types";import Gr from"react";function CS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?Gr.createElement(sp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:Gr.createElement(SS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},yS.t("Change"))}):a===IN.WaitingForConnectingWallet?Gr.createElement(sp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Gr.createElement(SS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},yS.t("Connect"))}):Gr.createElement(sp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(CS,"WarningAlert");function lp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=lr(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,d=u&&!c||p&&!s.explorerUrl?.length;return xo.createElement(mS,null,s.explorerUrl?.map((f,h,g)=>{let m=h+f.url,y=h===g.length-1,S=(y&&u||p)&&!d,C=y&&s.status==="failed";return xo.createElement(WN,{key:m},xo.createElement(TS,{id:"widget-swap-details-tx-alert",type:y&&(S&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:AN.t("View transaction"),action:f.url&&xo.createElement(NN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},xo.createElement(BN,{size:12}))}))}),d&&xo.createElement(TS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&xo.createElement(CS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&xo.createElement(hS,{message:a}))}i(lp,"SwapDetailsAlerts");var kS=2e3;var wS=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:M(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ft(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:zn(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:zn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:LN.createElement(lp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function vS(t){if(lr(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(vS,"getStepState");function ES(t){let{requestId:e}=t,[o,n]=$N(kS);return Bt.createElement(iS,{className:Zo()},Bt.createElement(xS,{variant:"label",size:"large",color:"neutral700"},_a.t("Request ID")),Bt.createElement("div",{className:Ma()},Bt.createElement(xS,{variant:"label",size:"small",color:"neutral700"},e),Bt.createElement(bS,{container:N(),content:o?_a.t("Copied To Clipboard"):_a.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Bt.createElement(_N,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Bt.createElement(PN,{size:16,color:"secondary"}):Bt.createElement(MN,{size:16,color:"gray"}))),Bt.createElement(uS,{target:"_blank",href:`${Kp}/swap/${e}`},Bt.createElement(bS,{container:N(),content:_a.t("View on Rango Explorer"),side:"bottom"},Bt.createElement(DN,{size:20})))))}i(ES,"RequestIdRow");import{i18n as IS}from"@lingui/core";import{Typography as AS}from"@rango-dev/ui";import cp from"react";function NS(t){let{date:e,isFinished:o}=t;return cp.createElement("div",{className:Zo()},cp.createElement(AS,{variant:"label",size:"large",color:"neutral700"},o?IS.t("Finished at"):IS.t("Created at")),cp.createElement(AS,{variant:"label",size:"small",color:"neutral700"},e))}i(NS,"SwapDateRow");var VN=3e3;function mp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=qN(),l=T().blockchains(),p=T().swappers(),{findToken:u}=T(),d=z().use.retry(),f=GN(),h=dp(null),[g,m]=Da(!1),[y,S]=Da(null),[C,k]=Da(null),[v,w]=Da(null),I=dp(y),A=dp(C),b=Ne.use.getNotifications(),E=Ne.use.removeNotification(),x=b(),W=ON(e),P=W?.networkStatus,U=i(Le=>{m(!0),S(Le)},"handleChangeModalState"),G=i(()=>{m(!1)},"handleCloseModal"),K=i(()=>{k({type:"loading",title:Ot.t("Change Network"),description:`We\u2019re switching the connected network to ${Y?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),J=i(()=>{k({type:"success",title:Ot.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),B=i(Le=>{k({type:"error",title:Ot.t("Network Switch Failed"),description:Le?.message||ee.detailedMessage.content})},"handleShowSwitchNetworkFailed"),R=Hd(e),Y=W?FN(e,W):null,le=W?UN(e,W):null,ve=Fy(e),Ht=Qd(e),be=i(Le=>!!c(Le)?.mobileWallet,"checkIsMobileWallet"),dt=!!P&&[Dn.WaitingForNetworkChange,Dn.NetworkChangeFailed].includes(P),kt=!!le?.walletType&&be(le.walletType),wt=!!le&&!!Y&&a(le.walletType,Y.network,Y),F=!!Y&&dt&&(kt||wt),O=i(()=>{F&&(K(),s(le.walletType,[{namespace:Y.namespace,network:Y.network}]).then(()=>{J()}).catch(Le=>{B(Le)}))},"handleSwitchNetwork"),X=i(()=>{U("switchNetwork"),O()},"handleSwitchNetworkClick"),ee=zd(e,W,c),j=wS({swap:e,switchNetworkIsAvailable:F,handleSwitchNetworkClick:X,showNetworkModal:P,setNetworkModal:U,message:ee,blockchains:l,swappers:p}),Q=j.length,[Ve,q]=[e.steps[0],e.steps[Q-1]],ye=q?.outputAmount||q?.expectedOutputAmountHumanReadable,Je=e.steps.reduce((Le,Wt)=>Le+parseFloat(Wt.feeInUsd||""),0),mt=e.steps.find(Le=>Le.diagnosisUrl)?.diagnosisUrl,ao=M(parseFloat(ye||"0")*(q?.toUsdPrice||0),4,4),On=M(parseFloat(e.inputAmount)*(Ve?.fromUsdPrice||0),4,4),Eo=ye?new WS(ye).multipliedBy(q.toUsdPrice||0).toString():"",jr=new WS(e.inputAmount).multipliedBy(Ve?.fromUsdPrice||0).toString(),Ro=Kt(On,ao),Ka=ee.detailedMessage.content||ee.shortMessage,uC=e.status==="success"?Ot.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(ye,6,6),token:j[Q-1]?.to.token.displayName,conciseAddress:so(e.wallets[j[Q-1]?.to.chain.displayName||""]?.address||""),chain:j[Q-1]?.to.chain.displayName}}):Te.createElement(dS,null,Te.createElement(pp,{variant:"body",size:"medium",color:"neutral700",align:"center"},Ka?"":Ot.t("Transaction was not sent."),R?`${Ot.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:R.outputAmount,symbol:R.symbol,blockchain:R.blockchain}})}`:""),Ka&&Te.createElement(Pa,{align:"center",variant:"body",size:"medium",color:"neutral700"},Te.createElement("b",null,"Reason:")," ",Ka));return up(()=>{x.find(Wt=>Wt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),E(e.requestId),G()):v&&w(null))},[e.status,e.requestId]),up(()=>{if(F){if(U("switchNetwork"),P===Dn.WaitingForNetworkChange){K();return}if(P===Dn.NetworkChangeFailed){B();return}return}if(P===Dn.WaitingForConnectingWallet){U("connectWallet");return}if(P===Dn.NetworkChanged){U("switchNetwork"),J();return}y&&["connectWallet","switchNetwork"].includes(y)&&G()},[P]),up(()=>{if(I.current=y,A.current=C,y==="switchNetwork"&&C?.type==="success"){let Le=setTimeout(()=>{I.current==="switchNetwork"&&A.current?.type==="success"&&G()},VN);return()=>clearTimeout(Le)}},[y,C]),Te.createElement(ae,{header:{title:Ot.t("Swap Details"),onCancel:e.status==="running"?()=>U("cancel"):void 0,suffix:e.status!=="running"&&Te.createElement(mo,null,Te.createElement(BS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>U("delete")},Te.createElement(pp,{size:"medium",variant:"label",color:"error"},Ot.t("Delete"))))},footer:Ht&&!v&&Te.createElement(BS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Le=Ti(e,l,u);d(Le),setTimeout(()=>{f("../../")},0)}},Ot.t("Try again"))},Te.createElement(nS,{compact:!0,ref:h},Te.createElement(ES,{requestId:o}),Te.createElement(NS,{date:ve,isFinished:!!e.finishTime}),Te.createElement("div",{className:cS()},Te.createElement(HN,{fee:M(String(Je),2,2),time:Qn(ti(e.steps)),steps:Q}),Te.createElement(hr,{from:{price:{value:M(e.inputAmount,6,6),usdValue:On,realUsdValue:jr,realValue:e.inputAmount},token:{displayName:j[0]?.from.token.displayName||"",image:j[0]?.from.token.image},chain:{image:j[0]?.from.chain.image,displayName:j[0]?.from.chain.displayName||""}},to:{price:{value:M(ye,6,6),usdValue:ao,realUsdValue:Eo,realValue:ye||""},token:{displayName:j[Q-1]?.to.token.displayName||"",image:j[Q-1]?.to.token.image},chain:{image:j[Q-1]?.to.chain.image,displayName:j[Q-1]?.to.chain.displayName||""}},percentageChange:M(Ro,2,2),warningLevel:jt(Ro??0)})),Te.createElement("div",{className:pS()},Te.createElement(pp,{variant:"title",size:"small"},Ot.t("Swaps steps"))),Te.createElement(zN,{size:8}),Te.createElement(aS,null,j.map((Le,Wt)=>{let Ep=Wt,Un=e.steps[Wt]&&vS(e.steps[Wt]),dC=Un==="error"||Un==="in-progress"||Un==="warning"||Un==="completed"&&Wt===j.length-1;return Te.createElement(QN,{className:"widget-swap-details-step-item-container",key:Ep,step:Le,type:"swap-progress",ref:h,state:Un,hasSeparator:Wt!==0,tabIndex:Ep,isFocused:dC,tooltipContainer:N()})}))),Te.createElement(np,{isOpen:g,state:y,switchNetworkModalState:C,onClose:G,onCancel:r,onDelete:n,message:ee.detailedMessage.content,swap:e,handleSwitchNetwork:X}),Te.createElement(ip,{open:!!v,diagnosisUrl:mt,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:M(ye,6,6),usdValue:ao,realUsdValue:Eo,realValue:ye||"",percentageChange:M(Ro,2,2),token:{displayName:j[Q-1]?.to.token.displayName||"",image:j[Q-1]?.to.token.image},chain:{image:j[Q-1]?.to.chain.image},description:uC}))}i(mp,"SwapDetails");import{i18n as Fa}from"@lingui/core";import{Divider as PS,NotFound as ZN,Skeleton as Kr,Typography as Oa}from"@rango-dev/ui";import Ie from"react";import{i18n as KN}from"@lingui/core";import{Divider as jN,Skeleton as XN,Typography as YN}from"@rango-dev/ui";import Ee from"react";import{css as Ut,styled as fp}from"@rango-dev/ui";var LS=fp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Vr=fp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),$a=fp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),u7=Ut({display:"flex",justifyContent:"space-between",alignItems:"center"}),d7=Ut({paddingTop:"$15",display:"flex"}),m7=Ut({padding:"$15 $0"}),f7=Ut({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),g7=Ut({paddingBottom:"$10"}),h7=Ut({display:"flex",justifyContent:"start",alignItems:"center"}),y7=Ut({paddingTop:"$5",display:"flex",alignItems:"center"}),S7=Ut({display:"flex",alignItems:"center"}),C7=Ut({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),MS=Ut({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function gp(){return Ee.createElement(LS,null,Ee.createElement(Cr,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(YN,{variant:"title",size:"small"},KN.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1}),Ee.createElement("div",{className:MS()},Ee.createElement(jN,{direction:"horizontal",size:20}),Ee.createElement(XN,{height:22,variant:"rectangular"}))),Ee.createElement($a,null),Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1})),Ee.createElement($a,null),Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1})),Ee.createElement($a,null),Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1}))))}i(gp,"LoadingSwapDetails");function _S(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(ae,{header:{title:Fa.t("Swap Details"),suffix:Ie.createElement(mo,null)}},o&&Ie.createElement(rS,null,Ie.createElement("div",{className:Zo()},Ie.createElement(Oa,{variant:"label",size:"large",color:"neutral700"},`${Fa.t("Request ID")}`),Ie.createElement("div",{className:Ma()},Ie.createElement(Oa,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Kr,{width:60,height:10,variant:"rounded"})),Ie.createElement(PS,{direction:"horizontal",size:4}),Ie.createElement(Kr,{width:16,height:16,variant:"rectangular"}),Ie.createElement(PS,{direction:"horizontal",size:4}),Ie.createElement(Kr,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:Zo()},Ie.createElement(Oa,{className:lS(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(Kr,{width:60,height:10,variant:"rounded"})),Ie.createElement(Oa,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Kr,{width:60,height:10,variant:"rounded"}))),Ie.createElement(gp,null)),!o&&Ie.createElement(sS,null,Ie.createElement(ZN,{title:Fa.t("Not found"),description:Fa.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(_S,"SwapDetailsPlaceholder");function DS(){let{manager:t,state:e}=e0(),o=!e.loadedFromPersistor,n=Ct(t),{requestId:r}=o0(),a=Qe(),{fetchStatus:s}=T();if(!r)return hp.createElement(t0,{containerStyles:{margin:"20px"},type:"error",title:JN.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:f})=>f.requestId===r):void 0,p=i(()=>{if(l?.id){let f=t?.get(l.id);f&&RN(f)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),d=l?.swap;return!d||c?hp.createElement(_S,{requestId:r,showSkeleton:c}):hp.createElement(mp,{swap:d,requestId:r,onCancel:p,onDelete:u})}i(DS,"SwapDetailsPage");import{i18n as $S}from"@lingui/core";import{Divider as n0,getCategoriesCount as r0,SelectableCategoryList as i0,styled as OS,Typography as a0,Wallet as s0}from"@rango-dev/ui";import zt,{useState as FS}from"react";var l0=OS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),c0=OS(ce,{textAlign:"center"});function US(){let{fetchStatus:t}=T(),[e,o]=FS("ALL"),n=T().blockchains(),{config:r}=T(),[a,s]=FS(),c=oe.use.isActiveTab(),{list:l}=vt(),p=vu(l,n),d=r0(p)!==1,f=bu(l,e),h=i(g=>{ou(l,r.multiWallets)||s(g)},"handleWalletItemClick");return zt.createElement(ae,{header:{title:$S.t("Connect Wallets")}},zt.createElement(c0,null,d&&zt.createElement(zt.Fragment,null,zt.createElement(i0,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),zt.createElement(n0,{size:24})),zt.createElement(a0,{variant:"title",size:"xmedium",align:"center"},$S.t("Choose a wallet to connect.")),zt.createElement(l0,null,f.map((g,m)=>{let y=`wallet-${m}-${g.type}`;return zt.createElement(s0,{key:y,...g,state:g.state,container:N(),onClick:()=>h(g),isLoading:t==="loading",disabled:!c})}),zt.createElement(ir,{id:"widget-state-full-connect-modal",wallet:a,onClose:()=>{s(void 0)}}))))}i(US,"WalletsPage");function zS(){return em(),Hs(),p0([{path:D.home,element:Ue.createElement(ny,null)},{path:D.routes,element:Ue.createElement(ly,null)},{path:D.fromSwap,children:[{index:!0,element:Ue.createElement(xa,{type:"source"})},{path:D.blockchains,element:Ue.createElement(ka,{type:"source"})}]},{path:D.toSwap,children:[{index:!0,element:Ue.createElement(xa,{type:"destination"})},{path:D.blockchains,element:Ue.createElement(ka,{type:"destination"})}]},{path:D.settings,children:[{index:!0,element:Ue.createElement(Dy,null)},{path:D.languages,element:Ue.createElement(iy,null)},{path:D.exchanges,element:Ue.createElement(Uc,{sourceType:"Exchanges"})},{path:D.bridges,element:Ue.createElement(Uc,{sourceType:"Bridges"})},{path:D.customTokens,children:[{index:!0,element:Ue.createElement(rh,null)},{path:D.addCustomTokens,children:[{index:!0,element:Ue.createElement(Jm,null)},{path:D.blockchains,element:Ue.createElement(ka,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:D.swaps,children:[{index:!0,element:Ue.createElement(bh,null)},{path:D.swapDetails,element:Ue.createElement(DS,null)}]},{path:D.wallets,element:Ue.createElement(US,null)},{path:D.confirmSwap,element:Ue.createElement(Hg,null)}])}i(zS,"AppRoutes");import{useQueueManager as N0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as B0}from"rango-sdk";import{useContext as W0,useEffect as Tp,useState as RS}from"react";import{Provider as h0}from"@rango-dev/wallets-react";import{WalletTypes as y0}from"@rango-dev/wallets-shared";import Ua,{createContext as S0,useEffect as VS,useMemo as C0,useRef as KS}from"react";import{useEffect as d0}from"react";import{Provider as u0}from"@hub3js/core";function HS(t){return t.map(e=>typeof e=="string"?e:e instanceof u0?e.id:e.config.type).join("-")}i(HS,"hashProviders");function yp(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=T(),a=n();return d0(()=>{o(),r()},[HS(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(yp,"useWalletProviders");import{legacyFormatAddressWithNetwork as m0,legacyReadAccountAddress as QS}from"@rango-dev/wallets-core/legacy";import{Events as $n}from"@rango-dev/wallets-react";import{isEvmBlockchain as f0}from"rango-sdk";function qS(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=T(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(f0).map(m=>m.name),u=i((m,y)=>{let[S,,C,k,v]=m,w={walletType:S,network:k.network??void 0,accounts:C};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let I=rs(S,C,p,y.supportedChainNames,v.isContractWallet);I.length&&e(I,v.namespace,k.derivationPath)},"onAccountsEvent"),d=i((m,y,S,C,k)=>{if(y===$n.ACCOUNTS){let v=Vn(k.supportedBlockchains);S&&u([m,y,S,C,k],{supportedChainNames:v})}y===$n.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),y===$n.NAMESPACE_DISCONNECTED&&n(m,S)},"handleUpdatesForHub"),f=i((m,y,S,C,k)=>{if(y===$n.ACCOUNTS){let v=Vn(k.supportedBlockchains),w=[],I=[];if(S?.forEach(b=>{let{network:E}=QS(b);p.includes(E)?w.push(b):I.push(b)}),r.filter(b=>b.walletType===m).map(b=>m0(b.address,b.chain)).length>0){if(w.length>0){let b=rs(m,w,p,v,k.isContractWallet);a(m,{chains:b.map(E=>E.chain)})}I.length>0&&a(m,{chains:I.map(b=>{let{network:E}=QS(b);return E})})}S?u([m,y,S,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,y,S,C,k)=>{if(y===$n.CONNECTED&&S){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(y===$n.NETWORK&&S){let v={walletType:m,network:S,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,y,S,C,k)=>{k.isHub?d(m,y,S,C,k):f(m,y,S,C,k),h(m,y,S,C,k)},"handler")}}i(qS,"useUpdates");import{LegacyEvents as g0}from"@rango-dev/wallets-core/legacy";function GS(t,e){let[o,n,r,a,s]=e;n!==g0.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(GS,"propagateEvents");var za=S0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function T0(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}=yp(s.wallets,c),p=KS(),u=KS(),{handler:d}=qS({onConnectWalletHandler:p,onDisconnectWalletHandler:u});VS(()=>{n().catch(console.log)},[]),VS(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=oe.use.isActiveTab(),h=C0(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Ua.createElement(za.Provider,{value:h},Ua.createElement(h0,{allBlockChains:a,providers:l,onUpdateState:(g,m,y,S,C)=>{let k=[g,m,y,S,C];d(...k),t.onUpdateState&&GS(t.onUpdateState,k)},autoConnect:!!f,configs:{wallets:s.wallets,walletOptions:{[y0.TON_CONNECT]:{provider:{manifestUrl:s.tonConnect?.manifestUrl}}}}},t.children))}i(T0,"Main");function Ha(t){let{config:e,...o}=t;return Ua.createElement(Qu,{config:e},Ua.createElement(T0,{...o,config:e}))}i(Ha,"WidgetWallets");import{globalCss as k0}from"@rango-dev/ui";var jS=i(()=>k0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");import{useWallets as w0}from"@rango-dev/wallets-react";import{useEffect as v0,useRef as b0}from"react";function XS(){let{connect:t,state:e}=w0(),o=b0({}),{fetchStatus:n}=T(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);v0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(XS,"useForceAutoConnect");import{isApprovalTX as x0,RouteEventType as YS,StepEventType as ZS,StepExecutionEventStatus as E0,WidgetEvents as Qa}from"@rango-dev/queue-manager-rango-preset";import{useEffect as JS}from"react";function Sp(){let t=Ne.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=T();JS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===ZS.TX_EXECUTION&&s.status===E0.TX_SENT&&!x0(c)||s.type===ZS.SUCCEEDED){let u=[],d=l.wallets[c?.fromBlockchain];if(d){let f=e.find(h=>h.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&h.walletType===d.walletType&&h.chain===c?.fromBlockchain);f&&u.push(f)}if(c?.fromBlockchain!==c?.toBlockchain){let f=l.wallets[c?.toBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let f=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(m=>f.some(y=>y.blockchain===m.blockchain&&y.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&y.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return ke.on(Qa.StepEvent,r),()=>ke.off(Qa.StepEvent,r)},[ke,e]),JS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===YS.FAILED||s.type===YS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return ke.on(Qa.RouteEvent,r),()=>ke.off(Qa.RouteEvent,r)},[ke])}i(Sp,"useSubscribeToWidgetEvents");import{useManager as I0}from"@rango-dev/queue-manager-react";import{useEffect as A0}from"react";function Cp(){let{isSynced:t,syncNotifications:e}=Ne(),{manager:o,state:n}=I0();A0(()=>{Ne.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Ct(o))},[Ne.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Cp,"useSyncNotifications");function kp(){XS(),jS(),Sp(),Cp();let t=T().blockchains(),{canSwitchNetworkTo:e}=eC(),[o,n]=RS(null),[r,a]=RS(),s=W0(za),c=t.filter(B0);Tp(()=>()=>Jd(),[]),Tp(()=>()=>Rd(),[]),N0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),Tp(()=>(Mo.init(),Ne.persist.hasHydrated()||Ne.persist.rehydrate(),s.onConnectWallet(l=>{n(p=>{if(!p||p.walletType!==l.walletType)return l;let u={...p};return l.network&&(u.network=l.network),l.accounts&&(u.accounts=l.accounts),u})}),s.onDisconnectWallet(l=>{a(l),n(p=>l===p?.walletType?null:p)}),Mo.destroy),[])}i(kp,"useBootstrap");import{styled as L0}from"@rango-dev/ui";var tC=L0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left",height:"100%","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Jo(){kp();let{config:t}=T(),{activeTheme:e}=uo(t?.theme||{}),{activeLanguage:o}=ko();return wp.createElement(M0,{language:o},wp.createElement(tC,{id:"swap-container",className:e()},wp.createElement(zS,null)))}i(Jo,"Main");import{setSolanaSignerConfig as R0}from"@rango-dev/signer-solana";import bp,{useEffect as xp,useMemo as eB}from"react";function oC(){let{setWatermark:t,setShowProfileBanner:e}=oe();return{fetchApiConfig:i(async()=>{let n=await fetch(`${qt("BASE_URL")}/meta/dapp/config?apiKey=${qt("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(oC,"useFetchApiConfig");import{useState as P0}from"react";var _0=i(()=>{let[t,e]=P0(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=tu(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),nC=_0;import{checkWaitingForNetworkChange as D0,makeQueueDefinition as $0}from"@rango-dev/queue-manager-rango-preset";import{Provider as F0}from"@rango-dev/queue-manager-react";import{useWallets as O0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as U0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as z0}from"rango-types";import H0,{useMemo as Q0}from"react";function q0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s,hubProvider:c}=O0(),l=Q0(()=>$0({API_KEY:t.apiKey||qt("API_KEY"),BASE_URL:qt("BASE_URL"),emitter:{emit:ke.emit}}),[t.apiKey]),{blockchains:p,connectedWallets:u}=T(),d=p(),f={blockchains:u.map(w=>({accounts:[w],name:w.chain}))},h=i(async(w,I)=>a(w,I.network,I)?await r(w,[I]):void 0,"switchNetwork"),g=i(w=>!!s(w).mobileWallet,"isMobileWallet"),m=d.filter(w=>w.enabled).reduce((w,I)=>(w[I.name]=I,w),{}),y=d.filter(z0),S=i(w=>{let{supportedChains:I}=s(w);return Vn(I)},"getSupportedChainNames"),C=e(),k={meta:{blockchains:m,evmBasedChains:y,evmNetworkChainInfo:U0(y),getSupportedChainNames:S},getSigners:o,wallets:f,providers:C,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:g,hubProvider:c},v=oe.use.isActiveTab();return H0.createElement(F0,{queuesDefs:[l],context:k,onPersistedDataLoaded:w=>{D0(w)},isPaused:!v},t.children)}i(q0,"QueueManager");var rC=q0;import{useManager as X0}from"@rango-dev/queue-manager-react";import Y0,{createContext as Z0,useContext as J0}from"react";function iC(){let{findToken:t}=T(),e=T().blockchains(),o=T().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=z()();return i(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:f,toToken:h,requestAmount:g}=p,m={blockchains:e,tokens:o};if(u!==void 0){let y=e.find(S=>S.name===u)??null;n(y)}if(d!==void 0){let y=d?t(d)??null:null;r({meta:m,token:y})}if(f!==void 0){let y=e.find(S=>S.name===f)??null;a(y)}if(h!==void 0){let y=h?t(h)??null:null;s({meta:m,token:y})}g!==void 0&&c(g)},"updateQuoteInputs")}i(iC,"useUpdateQuoteInputs");import{cancelSwap as G0,getCurrentNamespaceOfOrNull as V0,getCurrentStep as K0,getRelatedWalletOrNull as j0}from"@rango-dev/queue-manager-rango-preset";var qa=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Ct(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=Ti(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&G0(o)}getCurrentStepInfo(e){let o=K0(e);return{step:o,wallet:o?j0(e,o):null,network:o?V0(e,o)?.network:null}}};var aC=Z0(void 0);function vp(t){let{manager:e}=X0(),o=oe.use.isActiveTab(),n=z().use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=T(),l=new qa(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=T(),u=yu(a()),d=T().blockchains(),f=T().tokens(),h=T().swappers(),g=T().fetchStatus,m=ko().resetLanguage,y=Ne().getNotifications(),S=Ne().clearNotifications,C=iC(),{fromBlockchain:k,toBlockchain:v,fromToken:w,toToken:I,inputAmount:A}=z()(),b={isActiveTab:o,setCurrentTabAsActive:Mo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async E=>c(E)},meta:{blockchains:d,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:m,notifications:{list:y,clearAll:S},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:w?{symbol:w.symbol,blockchain:w.blockchain,address:w.address}:null,toBlockchain:v?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:A},updateQuoteInputs:C}};return Y0.createElement(aC.Provider,{value:b},t.children)}i(vp,"WidgetInfo");function sC(){let t=J0(aC);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(sC,"useWidget");function Fn(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=oC(),{handleLoadCustomFont:a}=nC();return xp(()=>{r().catch(console.log)},[]),xp(()=>{n&&a(n)},[n]),eB(()=>{xu({API_KEY:o?.apiKey||Qp(),BASE_URL:o?.apiUrl||Vp})},[o.apiKey,o.apiUrl]),xp(()=>{t.config?.signers?.customSolanaRPC&&R0("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),bp.createElement(Ha,{config:o,onUpdateState:e},bp.createElement(rC,{apiKey:o.apiKey},bp.createElement(vp,null,t.children)))}i(Fn,"WidgetProvider");function lC(t){let e=t.config?.externalWallets;return Ga.createElement(Si,null,e?Ga.createElement(Jo,null):Ga.createElement(Fn,{config:t.config??nn},Ga.createElement(Jo,null)))}i(lC,"Refuel");import Va from"react";function cC(t){let e=t.config?.externalWallets;return Va.createElement(Si,null,e?Va.createElement(Jo,null):Va.createElement(Fn,{config:t.config??nn},Va.createElement(Jo,null)))}i(cC,"Widget");function pC(){let{on:t,off:e}=ke;return{on:t,off:e}}i(pC,"useWidgetEvents");var hee={DerivationPath:or,Namespaces:Rn,Detached:tr,isOnDerivationPath:rr,isOnNamespace:nr,isOnDetached:Io};export{OR as EventSeverity,ln as MainEvents,XR as Networks,JR as PendingSwapNetworkStatus,cs as QuoteEventTypes,lC as Refuel,UR as RouteEventType,Ja as SUPPORTED_FONTS,hee as StatefulConnect,zR as StepEventType,HR as StepExecutionBlockedEventStatus,QR as StepExecutionEventStatus,fd as SwapModeContext,ht as UI_ID,us as UiEventTypes,ps as WalletEventTypes,KR as WalletEvents,YR as WalletTypes,cC as Widget,ln as WidgetEvents,Fn as WidgetProvider,Ha as WidgetWallets,ol as customizedThemeTokens,Ya as pickProviderVersionWithFallbackToLegacy,GR as readAccountAddress,en as useStatefulConnect,vt as useWalletList,eC as useWallets,sC as useWidget,pC as useWidgetEvents,mT as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map