@rango-dev/widget-embedded 0.47.1-next.4 → 0.48.1-next.0

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 (59) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/containers/Inputs/Inputs.d.ts.map +1 -1
  3. package/dist/containers/Refuel/Refuel.d.ts +5 -0
  4. package/dist/containers/Refuel/Refuel.d.ts.map +1 -0
  5. package/dist/containers/Refuel/Refuel.types.d.ts +5 -0
  6. package/dist/containers/Refuel/Refuel.types.d.ts.map +1 -0
  7. package/dist/containers/Refuel/index.d.ts +2 -0
  8. package/dist/containers/Refuel/index.d.ts.map +1 -0
  9. package/dist/containers/WidgetProvider/WidgetProvider.d.ts.map +1 -1
  10. package/dist/hooks/useBootstrap/useBootstrap.d.ts.map +1 -1
  11. package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts.map +1 -1
  12. package/dist/hooks/useSwapMode.d.ts +11 -0
  13. package/dist/hooks/useSwapMode.d.ts.map +1 -0
  14. package/dist/index.d.ts +3 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +2 -2
  17. package/dist/index.js.map +4 -4
  18. package/dist/pages/HistoryPage.d.ts.map +1 -1
  19. package/dist/pages/Home.d.ts.map +1 -1
  20. package/dist/pages/SelectBlockchainPage.d.ts.map +1 -1
  21. package/dist/store/quote.d.ts +119 -4
  22. package/dist/store/quote.d.ts.map +1 -1
  23. package/dist/store/slices/data.d.ts +1 -0
  24. package/dist/store/slices/data.d.ts.map +1 -1
  25. package/dist/widget-embedded.build.json +1 -1
  26. package/package.json +8 -8
  27. package/src/components/BlockchainsSection/BlockchainsSection.tsx +2 -2
  28. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +1 -1
  29. package/src/components/CustomDestination/CustomDestination.tsx +1 -1
  30. package/src/components/Quotes/Quotes.tsx +1 -1
  31. package/src/components/Quotes/SelectStrategy.tsx +1 -1
  32. package/src/components/SameTokensWarning/SameTokensWarning.tsx +1 -1
  33. package/src/components/SwapDetails/SwapDetails.tsx +1 -1
  34. package/src/components/SwitchFromAndTo/SwitchFromAndTo.tsx +1 -1
  35. package/src/components/TokenList/TokenList.tsx +1 -1
  36. package/src/containers/Inputs/Inputs.tsx +5 -2
  37. package/src/containers/QuoteInfo/QuoteInfo.tsx +1 -1
  38. package/src/containers/Refuel/Refuel.tsx +25 -0
  39. package/src/containers/Refuel/Refuel.types.ts +5 -0
  40. package/src/containers/Refuel/index.ts +1 -0
  41. package/src/containers/WidgetInfo/WidgetInfo.tsx +2 -2
  42. package/src/containers/WidgetProvider/WidgetProvider.tsx +6 -0
  43. package/src/hooks/useBootstrap/useBootstrap.ts +6 -7
  44. package/src/hooks/useConfirmSwap/useConfirmSwap.ts +12 -9
  45. package/src/hooks/useSwapInput.ts +1 -1
  46. package/src/hooks/useSwapMode.ts +20 -0
  47. package/src/hooks/useSyncStoresWithConfig.ts +1 -1
  48. package/src/hooks/useSyncUrlAndStore/useSyncUrlAndStore.ts +1 -1
  49. package/src/hooks/useUpdateQuoteInputs/useUpdateQuoteInputs.ts +1 -1
  50. package/src/index.ts +4 -0
  51. package/src/pages/ConfirmSwapPage.tsx +1 -1
  52. package/src/pages/CustomTokensPage.tsx +1 -1
  53. package/src/pages/HistoryPage.tsx +51 -4
  54. package/src/pages/Home.tsx +19 -9
  55. package/src/pages/Routes.tsx +1 -1
  56. package/src/pages/SelectBlockchainPage.tsx +29 -15
  57. package/src/pages/SelectSwapItemPage/SelectSwapItemsPage.tsx +1 -1
  58. package/src/store/quote.ts +282 -253
  59. package/src/store/slices/data.ts +9 -0
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var tC=Object.defineProperty;var i=(t,e)=>tC(t,"name",{value:e,configurable:!0});import{EventSeverity as BR,RouteEventType as WR,StepEventType as LR,StepExecutionBlockedEventStatus as MR,StepExecutionEventStatus as PR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as DR}from"@rango-dev/wallets-core/legacy";import{useWallets as Hi,Events as FR}from"@rango-dev/wallets-react";import{Networks as UR,WalletTypes as zR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as QR}from"rango-types";import{Divider as yT}from"@rango-dev/ui";import ao,{useEffect as ST,useRef as CT,useState as dd}from"react";import{WalletState as oC}from"@rango-dev/ui";import{useWallets as nC}from"@rango-dev/wallets-react";import{useReducer as rC}from"react";function Ap(t){return!!t.derivationPath}i(Ap,"isStateOnDerivationPathStep");function Np(t){return!!t.namespace}i(Np,"isStateOnNamespace");var Ur={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Bp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return Ur;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Ur;default:throw new Error("Action hasn't been defined.")}}i(Bp,"reducer");function Vo(){let{state:t,disconnect:e,connect:o}=nC(),[n,r]=rC(Bp,Ur),a=i(async(m,f,h)=>{r({type:"reset"});try{let g=f?.map(d=>({...d,network:void 0}));return await o(m,g),{status:"connected"}}catch(g){let d=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(d,{cause:g})}},"runConnect"),s=i(async(m,f)=>{if(m.state===oC.DISCONNECTED){let g=!!m.isHub,d=g?m.properties?.find(y=>y.name==="namespaces")?.value:m.needsNamespace,S=g?m.properties?.find(y=>y.name==="derivationPath")?.value:m.needsDerivationPath;if(!d?.data?.length)return await a(m.type,void 0,f);if(d?.data.length&&d.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:m,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(d?.data.length===1&&d.data[0]){if(S){let y=d.data[0];return r({type:"needsDerivationPath",payload:{providerType:m.type,providerImage:m.image,namespace:y.value}}),{status:"derivation-path"}}return await a(m.type,d?.data?.map(y=>({namespace:y.value})),f)}}if(m.isHub){let g=m.properties?.find(d=>d.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:m,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(m),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(m,f)=>{let h=!!m.isHub,g=h?m.properties?.find(T=>T.name==="namespaces")?.value:m.needsNamespace,d=h?m.properties?.find(T=>T.name==="derivationPath")?.value:m.needsDerivationPath,S=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(S&&d)return r({type:"needsDerivationPath",payload:{providerType:m.type,providerImage:m.image,namespace:y}}),{status:"derivation-path"};if(!Np(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=f.map(T=>({namespace:T}));return r({type:"detached",payload:{targetWallet:m,selectedNamespaces:C?.map(T=>T.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async m=>{if(!m)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Ap(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let f=n.derivationPath.providerType,g=[{namespace:n.derivationPath.namespace,derivationPath:m}];return await a(f,g)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async m=>{let f=t(m.type);return f.connected||f.connecting?(await e(m.type),wo(p)?(r({type:"needsNamespace",payload:{targetWallet:m}}),{status:"namespace"}):{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:p,resetState:m=>{r(m==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Vo,"useStatefulConnect");import{WalletState as Cs}from"@rango-dev/ui";import{useWallets as fk}from"@rango-dev/wallets-react";import{detectMobileScreens as gk,KEPLR_COMPATIBLE_WALLETS as hk,WalletTypes as Un}from"@rango-dev/wallets-shared";import{useCallback as yk,useEffect as Sk}from"react";import ck,{createContext as pk,useContext as uk,useEffect as dk,useRef as mk}from"react";import{create as sk}from"zustand";import{persist as lk}from"zustand/middleware";import{allProviders as iC}from"@rango-dev/provider-all";var Ya=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},Ko=new Ya;import{defineVersions as Lp,pickVersion as Mp,Provider as Za}from"@rango-dev/wallets-core";function Pp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=_p(a);return s instanceof Za?s.id===n:s.config.type===n});r?o.push(r):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else n instanceof Za?o.push(Lp().version("1.0.0",n).build()):o.push(Lp().version("0.0.0",n).build())}),o}return t}i(Pp,"matchAndGenerateProviders");function _p(t){try{return Mp(t,"1.0.0")[1]}catch{return Mp(t,"0.0.0")[1]}}i(_p,"pickProviderVersionWithFallbackToLegacy");function Dp(t){return t.map(o=>_p(o)).map(o=>o instanceof Za?o.id:o.config.type)}i(Dp,"configWalletsToWalletName");function zr(t,e){return e.find(o=>o.name===t)?.displayName}i(zr,"getBlockchainDisplayNameFor");function gt(t,e){return e.find(o=>o.name===t)?.shortName}i(gt,"getBlockchainShortNameFor");function $p(t,e){return e.find(o=>o.name===t)?.logo}i($p,"getBlockchainImage");function Wn(t,e){return e.find(o=>o.id===t)?.title}i(Wn,"getSwapperDisplayName");function vo(t,e){return e.find(o=>o.name===t)??null}i(vo,"findBlockchain");function Ja(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Ja,"isTokenNative");function ht(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(ht,"createTokenHash");function jo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(jo,"isValidTokenAddress");function Ln(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=ht(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{let p=o.tokensMapByBlockchainName[l];!c.has(l)&&p&&a(p)})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded&&o.tokensMapByBlockchainName[c]?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=ht(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Ln,"matchTokensFromConfigWithMeta");function qr(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(qr,"getSupportedBlockchainsFromConfig");function Op(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Op,"makeProvidersOptionsFromConfig");var Qr={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/manifests/tonconnect-manifest.json"}},aC={clientUrl:void 0},sC={liquiditySources:void 0};function Fp(t){let e=Op(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return iC(o).map(a=>a())}i(Fp,"generateProviders");var Up=i((t,e,o)=>{let n=Fp({...Qr,...t});return{config:{...Qr,...t},iframe:aC,campaignMode:sC,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c}=o(),l=Ln({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=Ln({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});Ko.set("supportedSourceTokens",l),Ko.set("supportedDestinationTokens",p),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=Fp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Op(a);return Pp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as zp}from"rango-types";var qp=[zp.EVM,zp.SOLANA],Hr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as wC}from"rango-sdk";import{UI_ID as lC}from"@rango-dev/ui";var Gr="c6381a79-2817-4602-83bf-6a641a409e32",Qp="https://api.rango.exchange",Hp="https://explorer.rango.exchange",tt={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...lC};import{BlockchainCategories as gC,WalletState as lt}from"@rango-dev/ui";import{legacyReadAccountAddress as hC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as yC,getCosmosExperimentalChainInfo as SC,isEvmAddress as CC,KEPLR_COMPATIBLE_WALLETS as RB,Networks as uu}from"@rango-dev/wallets-shared";import Yo from"bignumber.js";import{isCosmosBlockchain as kC}from"rango-types";import cC from"bignumber.js";var le=new cC(0);import{WalletTypes as pC}from"@rango-dev/wallets-shared";var bo="~",Gp=[pC.LEAP];import{BlockchainCategories as es,WalletState as fC}from"@rango-dev/ui";import{TransactionType as Vr}from"rango-sdk";var Vp="Roboto",Ra=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];function Xo(t){return Array.from(new Set(t))}i(Xo,"removeDuplicateFrom");function Kr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Kr,"debounce");function st(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(st,"containsText");function Xp(t,e){return t.toLowerCase()===e.toLowerCase()}i(Xp,"exactText");function Yp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Yp,"startWithText");var N=i(()=>document.getElementById(tt.SWAP_BOX_ID),"getContainer"),xo=i(()=>document.getElementById(tt.EXPANDED_BOX_ID),"getExpanded");function Zp(t,e,o){let n=!!e&&Xp(e,t),r=!!o&&Xp(o,t);return n!==r?n?-1:1:0}i(Zp,"compareExactMatchText");function ts(t,e,o){let n=!!e&&st(e,t),r=!!o&&st(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ts,"compareContainsText");function os(t,e,o){let n=!!e&&Yp(e,t),r=!!o&&Yp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(os,"compareStartWithText");function Jp(t,e,o){if(!o)return 0;let n=Zp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Zp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=os(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ts(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=os(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ts(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=os(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ts(o,t.address,e.address);if(r!==0)return r}return 0}i(Jp,"compareWithSearchFor");var jr=i((t,e)=>{switch(e){case es.ALL:return!0;case es.UTXO:return t===Vr.TRANSFER;case es.OTHER:return t!==Vr.TRANSFER&&t!==Vr.COSMOS&&t!==Vr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Rp=i(t=>Ra.find(o=>o.value===t)?.url,"getFontUrlByName");function eu(t,e){let o=!!t.find(n=>n.state===fC.CONNECTED);return e===!1&&o}i(eu,"isSingleWalletActive");function tu(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(tu,"memoizedResult");import{BigNumber as cu}from"bignumber.js";function ou(t){return t.replace(/^0+(?=\d)/g,"")}i(ou,"removeLeadingZeros");function nu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(nu,"ensureLeadingZeroForDecimal");function ru(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(ru,"formatThousandsWithCommas");function iu(t){return t.replace(/\s+/g,"-")}i(iu,"replaceSpacesWithDash");function au(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(au,"stripTrailingZeros");function Xr(t){return/^0+(?:\.0+)?$/.test(t)}i(Xr,"isZeroValue");function su(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(su,"isValidCurrencyFormat");function lu(t){return/\d+$/.test(t)}i(lu,"isColorKeyOverridden");var Mn=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),D=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new cu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new cu(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Yr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Mt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Pn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function pu(t){return Xr(t)?"0":au(t)}i(pu,"sanitizeInputAmount");function _n(t){return t.connected?lt.CONNECTED:t.connecting?lt.CONNECTING:t.installed?lt.DISCONNECTED:lt.NOT_INSTALLED}i(_n,"mapStatusToWalletState");function du(t,e,o,n){return o.filter(r=>!Gp.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:m,properties:f,isHub:h}=e(r),g=Xo(u.map(S=>S.type)),d=_n(t(r));return{title:a,image:s,link:yC(c),state:d,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:m,properties:f,isHub:h}})}i(du,"mapWalletTypesToWalletInfo");function Dn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Dn,"walletAndSupportedChainsNames");function rs(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(f=>f.chain===l)){let f={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(f)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=hC(l),m=c.length>0,f=c.includes(u),h=u===uu.Unknown;if(m&&!f&&!h)return;let d=u===uu.Unknown&&CC(p);if(h&&!d)return;o.includes(u)||d?r?s(u,p.toLowerCase(),r):c.filter(C=>o.includes(C)).forEach(C=>{s(C,p.toLowerCase())}):s(u,p)}),a}i(rs,"prepareAccountsForWalletStore");function Eo(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((p,u)=>{let m=p.from.blockchain,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(Eo,"getQuoteChains");function $n(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i($n,"isAccountAndWalletMatched");var mu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ns(n.usdValue,n.decimals):le.toFixed();return o.plus(r)},new Yo(le));return TC(e.toString())},"calculateWalletUsdValue");function TC(t){let e=t.toString().split(".");return e[0]&&(e[0]=ru(e[0])),e.join(".")}i(TC,"numberWithThousandSeparator");var Rr=i((t,e)=>{let o=SC(Object.entries(t).map(([,n])=>n).filter(kC));return o&&!!o[e]?.experimental},"isExperimentalChain");function ns(t,e){return new Yo(t).shiftedBy(-e).toFixed()}i(ns,"representAmountInNumber");function ei(t){if(!t)return null;let e=ns(t.amount,t.decimals),o=t.usdValue?ns(t.usdValue,t.decimals):null,n=D(e,8,8),r=o?D(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(ei,"formatBalance");function fu(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Yo(t.usdValue).shiftedBy(-t.decimals):le,n=e&&e.usdValue?new Yo(e.usdValue).shiftedBy(-e.decimals):le;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Yo(t.amount).shiftedBy(-t.decimals):le,n=e&&e.amount?new Yo(e.amount).shiftedBy(-e.decimals):le;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(fu,"compareTokenBalance");function qt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(qt,"areTokensEqual");function gu(t,e){return t.map(o=>({isPartiallyConnected:is(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===lt.CONNECTED&&!n.isPartiallyConnected)-+(o.state===lt.CONNECTED&&!o.isPartiallyConnected)||+(n.state===lt.CONNECTED)-+(o.state===lt.CONNECTED)||+(n.state===lt.DISCONNECTED||n.state===lt.CONNECTING)-+(o.state===lt.DISCONNECTED||o.state===lt.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(gu,"sortWalletsBasedOnConnectionState");function io(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(io,"getConciseAddress");function hu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(hu,"getAddress");var yu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Su(t){return t.map(e=>e.state).join("-")}i(Su,"hashWalletsState");function Cu(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(Cu,"filterBlockchainsByWalletTypes");function ku(t,e){return e===gC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(jr(n,e))return!0;return!1})}i(ku,"filterWalletsByCategory");function is(t,e){return!t.isHub||!t.needsNamespace||t.state!==lt.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(is,"checkIsWalletPartiallyConnected");var as={API_KEY:Gr};function Qt(t){return as[t]||""}i(Qt,"getConfig");function Tu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),as=e,as}i(Tu,"initConfig");var wu=20,vu=25,ss="theme-widget",ls=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>qt(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>qt(a,t));let r=n.isExcluded;return!r&&!o||r&&o}}}return o},"isTokenExcludedInConfig"),cs=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),bu=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var ti,ct=i(()=>ti||(ti=new wC(Qt("API_KEY"),Qt("BASE_URL")),ti),"httpService");import{i18n as Eu}from"@lingui/core";var oi=[.5,1,3],ni=1,Zo=5,Fn=30,ri=0;var Xe=(a=>(a[a.NO_RESULT=0]="NO_RESULT",a[a.REQUEST_FAILED=1]="REQUEST_FAILED",a[a.REQUEST_CANCELED=2]="REQUEST_CANCELED",a[a.BRIDGE_LIMIT=3]="BRIDGE_LIMIT",a[a.INSUFFICIENT_SLIPPAGE=4]="INSUFFICIENT_SLIPPAGE",a))(Xe||{});import{WidgetEvents as xu}from"@rango-dev/queue-manager-rango-preset";var ps=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ps||{}),us=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(us||{}),ds=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(ds||{}),Jo=(a=>(a[a.RouteEvent=xu.RouteEvent]="RouteEvent",a[a.StepEvent=xu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Jo||{});function ii(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Xo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(c=>c.swapperGroup===a);if(s){let c=!0;o&&(c=o.some(l=>l===s.swapperGroup)),c&&s.types.map(l=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:l,selected:!e.includes(s.swapperGroup)})})}}),n}i(ii,"getUniqueSwappersGroups");function Iu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Iu,"sortLiquiditySourcesByGroupTitle");function ot(t,e){return e?.[t]==="hidden"}i(ot,"isFeatureHidden");function Ro(t,e){return e?.[t]==="enabled"}i(Ro,"isRoutingEnabled");var Au=i((t,e,o)=>ot("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function en(t){return t==ri?{type:"error",message:Eu.t("Slippage must be greater than or equal to 0.01")}:t>Zo&&t<=Fn?{type:"warning",message:Eu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(en,"getSlippageValidation");var Nu=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let l=qr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>qp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",m=Ko.get(u);m?.length||(m=Ln({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Ko.set(u,m)),m=Au(m,s,a.features);let f=e().blockchains({type:o.type});return m.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(d=>d.name===g.blockchain)?!1:o.searchFor?!!(st(g.symbol,o.searchFor)||st(g.address||"",o.searchFor)||st(g.name||"",o.searchFor)):!0).sort((g,d)=>{let S=e().isTokenPinned(g,o.type),y=e().isTokenPinned(d,o.type);if(S!==y)return S?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(g),I=o.getBalanceFor(d),E=fu(A,I);if(E!==0)return E}let C=l.get(g.blockchain),T=l.get(d.blockchain),w=Ja(g,C),x=Ja(d,T);if(w!==x)return w?-1:1;if(g.isPopular!==d.isPopular)return g.isPopular?-1:1;if(o.searchFor){let A=Jp(g,d,o.searchFor);if(A)return A}return g.isSecondaryCoin!==d.isSecondaryCoin?g.isSecondaryCoin?1:-1:C&&T?C.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=ht(o),s=n.get(a);return s||(s=r.find(c=>ht(c)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>qt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(Iu)},fetch:async()=>{try{let{routing:o}=e().config,n=Ro("enableCentralizedSwappers",o),r=await ct().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],p=r.popularTokens,u=r.swappers.filter(h=>h.enabled),m=new Set;r.tokens.forEach(h=>{m.add(h.blockchain),l.push(h)}),r.blockchains.sort((h,g)=>h.sort-g.sort).forEach(h=>{h.enabled&&m.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let g=ht(h);c[h.blockchain]||(c[h.blockchain]=[]),s.set(g,h),c[h.blockchain]?.push(g)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as vC,Catalonia as bC,Chinese as Bu,Denmark as xC,English as EC,Finland as IC,French as AC,German as NC,Greece as BC,Hungary as WC,India as LC,Indonesian as MC,Italian as PC,Japanese as _C,Korea as DC,Lithuania as $C,Malay as FC,Netherlands as OC,Pakistan as UC,Philippines as zC,Poland as qC,Portuguese as QC,Russian as HC,SaudiArabia as GC,Serbia as VC,Slovakia as KC,SouthAfrica as jC,Spanish as XC,Swahili as YC,Swedish as ZC,Thai as JC,Turkish as RC,Ukrainian as ek,Vietnamese as tk}from"@rango-dev/ui";var Wu=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:jC},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:GC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:vC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:bC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Bu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Bu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:xC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:OC},{title:"English",label:"English",local:"en",SVGFlag:EC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:zC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:IC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:AC},{title:"German",label:"Deutsch",local:"de",SVGFlag:NC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:BC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:LC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:WC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:MC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:PC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:_C},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:DC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:$C},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:FC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:qC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:QC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:HC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:VC},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:KC},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:XC},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:YC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:ZC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:JC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:RC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:ek},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:UC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:tk}],tn="en";var Lu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:ni,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],quoteTokensRate:"default",changeQuoteTokensRate:()=>t(o=>({quoteTokensRate:o.quoteTokensRate==="default"?"reversed":"default"})),addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,c)=>{let l=s===o,p=c<=9;return l&&p}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=Xo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=ot("theme",n),s=ot("language",n),c=ot("liquiditySource",n),l=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||tn},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||tn}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=qr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import Ss from"bignumber.js";import ok from"mitt";var Ce=ok(),nk={on:Ce.on,off:Ce.off};var Mu=i(t=>(e,o,n)=>t(i((...a)=>{let[s,...c]=a;e(l=>({...typeof s=="function"?s(l):s,lastUpdatedAt:+new Date}),...c)},"modifedSet"),o,n),"keepLastUpdated");import Pu from"bignumber.js";function Ht(t){return`${t.blockchain}${bo}${t.address}${bo}${t.symbol}`}i(Ht,"createAssetKey");function _u(t,e){return`${Ht(e)}${bo}${t}`}i(_u,"createBalanceKey");function On(t){let[e,o,n]=t.split(bo);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(On,"extractAssetFromBalanceKey");function fs(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Ht(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Pu(r??le).multipliedBy(o[s].amount).toString():""})})}),o}i(fs,"computeNextBalancesWithNewPrices");function gs(t,e){let o={};return t.balances?.forEach(n=>{let r=_u(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Pu(c??le).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(gs,"createBalanceStateForNewAccount");function hs(t,e){for(let o in e){let n=On(o);if(n){let r=Ht(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(hs,"updateAggregatedBalanceStateForNewAccount");function rk(t,e){let o=On(e);if(!o)return t;let n=Ht(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(rk,"removeBalanceFromAggregatedBalance");function ys(t,e,o){let n=t.connectedWallets.filter(l=>l.walletType===e);t.connectedWallets.forEach(l=>{l.walletType!==e&&(n=n.filter(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=On(l);if(!p)return;!!n.find(m=>_u(m.address,{address:p.address,blockchain:m.chain,symbol:p.symbol})===l)?a=rk(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(ys,"computeNextStateAfterWalletBalanceRemoval");function ik(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(ik,"matchWalletDetailsWithConnectedWallet");var ak=tu(),Du=Mu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>$n(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>$n(s,a))?{...a,loading:!1,error:!1,explorerUrl:ik(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>$n(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>$n(c,l)));if(s.length>0){let c=s.map(l=>{let p=!a.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:p,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!c.some(m=>m.walletType===u.walletType&&m.chain===u.chain)),...c]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=r.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address]?.push(...a[p.chain]||[]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await ct().getMultipleTokenBalance({assets:p.map(({symbol:m,address:f,blockchain:h})=>({symbol:m,address:f,blockchain:h})),walletAddress:l});if(u){let m=e()._balances,f=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},d={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};fs(d,g,m);let S=gs(g,e);f=hs(f,S),m={...m,...S}}),t(h=>({_balances:{...h._balances,...m},_aggregatedBalances:f}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{let a=o[0];a&&(Ce.emit("walletEvent",{type:"connect",payload:{walletType:a.walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o))},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=ys(r,o,n);t({_balances:a,_aggregatedBalances:s})},disconnectNamespaces:(o,n)=>{if(e().connectedWallets.find(a=>a.walletType===o)){e().removeBalancesForWallet(o,{namespaces:n}),e()._changeSelectedWalletIfNeededOnRemove(o,{namespaces:n});let a=e().connectedWallets.filter(s=>s.namespace?!(s.walletType===o&&n.includes(s.namespace)):!0);t({connectedWallets:a})}},disconnectWallet:o=>{let n=e().connectedWallets.find(r=>r.walletType===o);if(Ce.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0||!o[0])return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await ct().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(m=>{if(m.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};fs(f,m,l);let{_balances:h,_aggregatedBalances:g}=ys(f,r,{chains:[m.blockChain]});if(p=g,l=h,!e().connectedWallets.find(S=>S.walletType===r&&S.address===m.address&&S.chain===m.blockChain))return;let d=gs(m,e);p=hs(p,d),l={...l,...d}}),t(m=>({_balances:{...m._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let m=c.filter(f=>f.failed).map(f=>({chain:f.blockChain,walletType:r,address:f.address}));m.length>0&&await e().fetchMainTokensBalances(m,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=Ht(o),a=e()._aggregatedBalances[r]||[];if(a.length===0||!a[0])return null;let s=a[0];if(a.length===1&&n[s])return n[s];let c=n[a[0]];if(!c)return null;let l=c;return a.forEach(p=>{let u=n[p];if(!u)return;let m=new Ss(u.amount),f=new Ss(l.amount);m.isGreaterThan(f)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(bo);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>ak(()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,c)=>{let l=r[c],p=On(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),m=l?.amount?new Ss(l.amount).shiftedBy(-l.decimals):le;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:m.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function $u(t){return sk()(lk((...e)=>({...Du(...e),...Nu(...e),...Lu(...e),...Up(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i($u,"createAppStore");var Fu=pk(null);function k(){let t=uk(Fu);if(dk(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(k,"useAppStore");function Ou(t){let e=mk();return e.current||(e.current=$u(t.config)),ck.createElement(Fu.Provider,{value:e.current},t.children)}i(Ou,"AppStoreProvider");function vt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=k(),{state:r,getWalletInfo:a}=fk(),s=k().blockchains(),{handleDisconnect:c}=Vo(),l=Dp(n()),p=du(r,a,l,e);p=gk()?p.filter(d=>d.showOnMobile!==!1&&r(d.type).installed):p;let u=gu(p,r),m=i(d=>!o.find(S=>S.walletType===d&&S.chain===e),"isExperimentalChainNotAdded"),f=yk(()=>{let d=p?.filter(S=>S.state===Cs.CONNECTING)||[];for(let S of d)c(S)},[Su(p)]);Sk(()=>()=>{f()},[]);let h=i(d=>{let S=d.find(C=>C.type===Un.DEFAULT);return!S||S.state===Cs.NOT_INSTALLED?!1:d.filter(C=>C.state!=Cs.NOT_INSTALLED&&![Un.DEFAULT,Un.WALLET_CONNECT_2,Un.LEDGER].includes(C.type)&&a(C.type).supportedChains.filter(T=>T.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),g=i((d,S,y)=>Rr(y,S)&&m(d)&&!hk.includes(d)||d==Un.DEFAULT&&!h(p),"shouldExcludeWallet");return{list:u.filter(d=>!g(d.type,e??"",s)),terminateConnectingWallets:f}}i(vt,"useWalletList");import{Modal as wk}from"@rango-dev/ui";import vk from"react";import{create as Tk}from"zustand";var Uu="rango-widget";var zn=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(Uu),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var kk=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),on=kk;var te=on(Tk()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),Ao=new zn({onInit:()=>te.setState({tabManagerInitiated:!0}),onClaim:()=>te.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>te.setState({isActiveTab:!1})});function J(t){let{watermark:e}=te();return vk.createElement(wk,{hasWatermark:e==="FULL",...t},t.children)}i(J,"WatermarkedModal");import{i18n as an}from"@lingui/core";import{Alert as $k,Button as Fk,Divider as mi,Image as Ok,MessageBox as Uk,RadioRoot as zk}from"@rango-dev/ui";import ce,{useEffect as qk,useMemo as Qk,useState as Hk}from"react";import{i18n as Ik}from"@lingui/core";import{Typography as ju}from"@rango-dev/ui";import nn from"react";function ai(t,e){return t.find(o=>o.name===e)?.logo}i(ai,"getBlockchainLogo");import{darkTheme as bk,Image as xk,styled as Gt,Typography as Ek}from"@rango-dev/ui";var si=Gt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${bk} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),li=Gt("div",{display:"flex",gap:"$8",alignItems:"center"}),qu=Gt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Qu=Gt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Hu=Gt("div",{display:"flex",gap:"$6",alignItems:"center"}),Gu=Gt("div",{paddingLeft:"48px"}),Vu=Gt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),Ku=Gt(Ek,{maxWidth:"100px"}),ci=Gt(xk,{variants:{disabled:{true:{opacity:"0.5"}}}});function pi(t){let{namespace:e}=t,o=k().blockchains();return nn.createElement(si,{unsupported:!0},nn.createElement(li,null,nn.createElement(ci,{src:ai(o,e.id),size:40,disabled:!0}),nn.createElement(Qu,null,nn.createElement(ju,{variant:"label",size:"large"},e.label),nn.createElement(ju,{variant:"body",size:"xsmall"},Ik.t("(Currently not supported)")))))}i(pi,"NamespaceUnsupportedItem");import{Checkbox as Pk,Radio as _k}from"@rango-dev/ui";import vs from"react";import{i18n as ws}from"@lingui/core";import{ChevronDownIcon as Nk,ChevronUpIcon as Bk,Divider as Wk,Typography as qn}from"@rango-dev/ui";import Ae,{useEffect as Lk,useState as Mk}from"react";import{Image as Yu,Tooltip as Zu,Typography as Ak}from"@rango-dev/ui";import Pt from"react";import{styled as Xu}from"@rango-dev/ui";var ks=Xu("div",{display:"flex",alignItems:"center",padding:0,margin:0}),ui=Xu("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var Ts=3;function Ju(t){let{chains:e}=t;return Pt.createElement(ks,{id:"widget-supported-chains-container"},e.slice(0,Ts).map((o,n)=>Pt.createElement(Zu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Pt.createElement(ui,{firstItem:n===0},Pt.createElement(Yu,{src:o.logo,size:15})))),e.length>Ts&&Pt.createElement(Zu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Pt.createElement(ks,null,e.map((o,n)=>Pt.createElement(ui,{key:o.name,firstItem:n===0},Pt.createElement(Yu,{src:o.logo,size:15}))))},Pt.createElement(ui,null,Pt.createElement(Ak,{variant:"body",size:"xsmall"},"+",e.length-Ts))))}i(Ju,"SupportedChainsList");function No(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=Mk(!1),p=k().blockchains();Lk(()=>l(!1),[o]);let u=e.getSupportedChains(p),m=!o&&!r&&u.length>1;return Ae.createElement(si,{hasError:!!o,clickable:!!s,onClick:s},Ae.createElement(li,null,Ae.createElement(ci,{src:ai(p,e.id),size:40}),Ae.createElement(qu,{showSupportedChains:m||r||!!o},Ae.createElement(Hu,null,Ae.createElement(qn,{variant:"label",size:"large"},e.label),r&&Ae.createElement(qn,{variant:"body",size:"small",color:"success500"},ws.t("Connected")),!!o&&Ae.createElement(qn,{variant:"body",size:"small",color:"error500"},ws.t("Connection failed"))),m&&Ae.createElement(Ju,{chains:u}),r&&Ae.createElement(Ku,{variant:"body",size:"small",color:"neutral700"},a),o&&Ae.createElement(Vu,{onClick:()=>l(f=>!f)},Ae.createElement(qn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},ws.t("See why")),c?Ae.createElement(Bk,{size:12,color:"gray"}):Ae.createElement(Nk,{size:12,color:"gray"}))),n),!!o&&c&&Ae.createElement(Ae.Fragment,null,Ae.createElement(Wk,{size:4}),Ae.createElement(Gu,null,Ae.createElement(qn,{variant:"body",size:"small",color:"neutral700"},o))))}i(No,"NamespaceItem");function Ru(t){let{onClick:e,type:o,namespace:n}=t;return vs.createElement(No,{namespace:n,onClick:e,suffix:o==="radio"?vs.createElement(_k,{value:n.value}):vs.createElement(Pk,{checked:t.value})})}i(Ru,"NamespaceListItem");import{Button as Dk,styled as ed}from"@rango-dev/ui";var di=ed("ul",{padding:0,paddingTop:"$16",paddingBottom:"$20",margin:0}),rn=ed(Dk,{minHeight:"$40"});function Qn(t){let{targetWallet:e}=t.value,o=e.properties?.find(d=>d.name==="namespaces"),n=e.isHub,r=e.isHub?o?.value.selection==="single":e.needsNamespace?.selection==="single",a=n?o?.value:e.needsNamespace,s=e.image,c=k().blockchains(),[l,p]=Hk([]),u=Qk(()=>a?.data.filter(d=>!d.unsupported),[e?.type]),m=i(d=>{p(r?[d]:S=>S.includes(d)?S.filter(y=>y!==d):S.concat(d))},"onSelect"),f=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");f?p([]):u&&p(u.map(d=>d.value))},"onSelectAll"),g=i(d=>r?ce.createElement(zk,{value:l?.[0]},d):ce.createElement(ce.Fragment,null,d),"wrapRadioRoot");return qk(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let d=u.filter(S=>S.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(d.map(S=>S.value))}else p(u.map(d=>d.value))},[]),ce.createElement(ce.Fragment,null,ce.createElement(Uk,{type:"info",title:an.t("Connect {wallet}",{wallet:e.title}),description:an.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:ce.createElement(Ok,{src:s,size:45})}),r?ce.createElement(ce.Fragment,null,ce.createElement(mi,{size:20}),ce.createElement($k,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:an.t("This wallet can only connect to one chain at a time. ")})):ce.createElement(ce.Fragment,null,ce.createElement(mi,{size:30}),ce.createElement(Fk,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?an.t("Deselect all"):an.t("Select all"))),ce.createElement(di,null,g(ce.createElement(ce.Fragment,null,a?.data.map((d,S,y)=>ce.createElement(ce.Fragment,{key:d.id},d.unsupported?ce.createElement(pi,{namespace:d}):ce.createElement(Ru,{value:l.includes(d.value),namespace:d,type:r?"radio":"checkbox",onClick:()=>m(d.value)}),S!==y.length-1&&ce.createElement(mi,{size:10})))))),ce.createElement(mi,{size:20}),ce.createElement(rn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},an.t("Connect")))}i(Qn,"Namespaces");import{i18n as fi}from"@lingui/core";import{Button as Jk,Divider as Es,Image as Rk,MessageBox as eT}from"@rango-dev/ui";import{useWallets as tT}from"@rango-dev/wallets-react";import Ye from"react";import{styled as Gk}from"@rango-dev/ui";var td=Gk("div",{display:"flex",justifyContent:"end"});import{i18n as bs}from"@lingui/core";import{Button as Vk,Spinner as Kk}from"@rango-dev/ui";import{useWallets as jk}from"@rango-dev/wallets-react";import xs,{useLayoutEffect as Xk,useRef as Yk,useState as Zk}from"react";var od=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,{connect:a,disconnect:s,state:c}=jk(),[l,p]=Zk(null),m=c(o).namespaces?.get(n.value),f=m.accounts?.[0]?.split(":"),h=Yk(!1);Xk(()=>{r&&!h.current&&g(o,n.value)},[]);let g=i(async(y,C)=>{try{h.current=!0,await a(y,[{namespace:C,network:""}])}catch(T){p(T)}finally{h.current=!1}},"handleConnectNamespace"),d=i(async y=>{p(null),y.connected?await s(o,[n.value]):g(o,n.value)},"handleButtonClick"),S=i(()=>m.connected?bs.t("Disconnect"):l?bs.t("Try again"):bs.t("Connect"),"getButtonText");return xs.createElement(No,{namespace:n,connected:m.connected,error:l?.message,address:m.connected?io(f?.[f?.length-1]):"",suffix:m.connecting?xs.createElement(Kk,{color:"info"}):xs.createElement(Vk,{id:"widget-name-space-connect-btn",variant:"ghost",type:m.connected?"error":"primary",size:"xsmall",onClick:async()=>d(m)},S())})},"NamespaceDetachedItem");function Hn(t){let{selectedNamespaces:e,value:o,onDisconnectWallet:n}=t,{targetWallet:r}=o,{state:a}=tT(),s=a(r.type);return Ye.createElement(Ye.Fragment,null,Ye.createElement(eT,{type:"info",title:fi.t("Connect {wallet}",{wallet:r.type}),description:fi.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:Ye.createElement(Rk,{src:r.image,size:45})}),Ye.createElement(Es,{size:30}),Ye.createElement(td,null,Ye.createElement(Jk,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:s.connecting||!s.connected,onClick:n},fi.t("Disconnect wallet"))),Ye.createElement(di,{id:"widget-detached-namespace-list",as:"ul"},r.needsNamespace?.data.map((c,l,p)=>Ye.createElement(Ye.Fragment,{key:c.id},c.unsupported?Ye.createElement(pi,{namespace:c}):Ye.createElement(od,{walletType:r.type,namespace:c,initialConnect:e?.includes(c.value)}),l!==p.length-1&&Ye.createElement(Es,{size:10})))),Ye.createElement(Es,{size:20}),Ye.createElement(rn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},fi.t("Done")))}i(Hn,"Detached");import{i18n as sn}from"@lingui/core";import{Divider as rd,Image as iT,MessageBox as aT,Select as sT,TextField as lT}from"@rango-dev/ui";import yt,{useEffect as cT,useState as id}from"react";import{namespaces as oT}from"@rango-dev/wallets-shared";var gi={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Is(t){let e=t?oT[t]?.derivationPaths:null;return e?[...e,gi]:[]}i(Is,"getDerivationPaths");import{Button as nT,styled as As,Typography as rT}from"@rango-dev/ui";var nd=As("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ns=As(rT,{paddingLeft:"$10"}),Bs={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},EP=As(nT,{minHeight:"$40"});var ad="0";function Gn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=id(null),[c,l]=id(ad),p=a===gi.id,u=Is(o),m=i(({value:h})=>{let g=u?.find(d=>d.id===h);g&&(a===gi.id&&Number.isNaN(Number(c))&&l(ad),s(g.id))},"handleDerivationPathItemClick"),f=i(()=>{let h=u.find(g=>g.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return cT(()=>{s(Is(o)[0]?.id||null)},[o]),yt.createElement(yt.Fragment,null,yt.createElement(rd,{size:20}),yt.createElement(aT,{type:"info",title:sn.t("Select Derivation Path"),description:sn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:yt.createElement(iT,{src:n,size:45})}),yt.createElement(nd,null,yt.createElement(Ns,{variant:"body",size:"xsmall",color:"$neutral600"},sn.t("Choose Derivation Path Template")),yt.createElement(sT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:m,styles:{trigger:Bs}}),yt.createElement(rd,{size:20}),yt.createElement(Ns,{variant:"body",size:"xsmall",color:"$neutral600"},p?sn.t("Enter Path"):sn.t("Enter Index")),yt.createElement(lT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Bs})),yt.createElement(rn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},sn.t("Confirm")))}i(Gn,"DerivationPath");import{i18n as ln}from"@lingui/core";import{Image as dT,MessageBox as Ws,WalletState as mT}from"@rango-dev/ui";import{useWallets as fT}from"@rango-dev/wallets-react";import Bo from"react";import{keyframes as pT,styled as hi}from"@rango-dev/ui";var $P=hi("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),sd=hi("div",{position:"relative"}),uT=pT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),ld=hi("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${uT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),cd=hi("div",{"& img":{borderRadius:"50%"}});function Ls(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=fT();return _n(a(n))===mT.CONNECTED?Bo.createElement(Ws,{type:"success",title:ln.t("Wallet Connected"),description:ln.t("Your wallet is connected, you can use it to swap.")}):o?Bo.createElement(Ws,{type:"error",title:ln.t("Failed to Connect"),description:o||ln.t("Your wallet is not connected. Please try again.")}):Bo.createElement(Ws,{type:"loading",title:ln.t("Connecting to your wallet"),description:ln.t("Click connect in your wallet popup."),icon:Bo.createElement(sd,null,Bo.createElement(cd,null,Bo.createElement(dT,{src:r,size:45})),Bo.createElement(ld,null))})}i(Ls,"ConnectStatus");import{i18n as Ms}from"@lingui/core";import{Button as gT,Divider as pd,MessageBox as hT}from"@rango-dev/ui";import yi from"react";function Ps(t){let{displayName:e,onConfirm:o,id:n}=t;return yi.createElement(hT,{id:n,title:Ms.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Ms.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},yi.createElement(pd,{size:18}),yi.createElement(pd,{size:32}),yi.createElement(gT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Ms.t("Confirm")))}i(Ps,"ExperimentalChain");function ud(t,e){return t().status==="init"&&!!e}i(ud,"isOnStatus");function Vn(t){return t().status==="namespace"}i(Vn,"isOnNamespace");function Kn(t){return t().status==="derivationPath"}i(Kn,"isOnDerivationPath");function wo(t){return t().status==="detached"}i(wo,"isOnDetached");var kT=3e3,TT=300;function jn(t){let e=CT(),[o,n]=dd(!1),[r,a]=dd(),s=i(w=>{a(w.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=vt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:m,resetState:f,handleDisconnect:h}=Vo(),g=i(w=>{u(t.wallet,w).then(T).catch(s)},"handleConfirmNamespaces"),d=i(()=>{y()},"handleDetachedConfirm"),S=i(w=>{if(!w)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(w).then(T).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),T=i((w,x)=>{let A=w.status==="connected",I=["disconnected","disconnected-unhandled"].includes(w.status);A?(t.onConnect?.(),x||(e.current=setTimeout(y,kT))):I&&y()},"afterConnected");return ST(()=>{if(t.wallet){C();let w=!1,x=!0;i(()=>{setTimeout(()=>{x=!1,w||n(!0)},TT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(I=>{["namespace","Detached","derivation-path"].includes(I.status)||(w=!0),T(I,x)}).catch(s)}},[t.wallet]),ao.createElement(J,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},ud(m,t.wallet)&&ao.createElement(ao.Fragment,null,ao.createElement(Ls,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),ao.createElement(yT,{direction:"vertical",size:32})),Vn(m)&&ao.createElement(Qn,{onConfirm:g,value:m().namespace}),Kn(m)&&ao.createElement(Gn,{onConfirm:S,value:m().derivationPath}),wo(m)&&ao.createElement(Hn,{onConfirm:d,onDisconnectWallet:()=>void h(m().namespace.targetWallet),value:m().namespace,selectedNamespaces:m().selectedNamespaces}))}i(jn,"StatefulConnectModal");import{Provider as ET}from"@rango-dev/wallets-react";import Si,{createContext as IT,useEffect as yd,useMemo as AT,useRef as Sd}from"react";import{useEffect as wT}from"react";function md(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(md,"hashProviders");function _s(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=k(),a=n();return wT(()=>{o(),r()},[md(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(_s,"useWalletProviders");import{legacyFormatAddressWithNetwork as vT,legacyReadAccountAddress as fd}from"@rango-dev/wallets-core/legacy";import{Events as cn}from"@rango-dev/wallets-react";import{isEvmBlockchain as bT}from"rango-sdk";function gd(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=k(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(bT).map(d=>d.name),u=i((d,S)=>{let[y,,C,T,w]=d,x={walletType:y,network:T.network??void 0,accounts:C};c.current?c.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let A=rs(y,C,p,S.supportedChainNames,w.isContractWallet);A.length&&e(A,w.namespace,T.derivationPath)},"onAccountsEvent"),m=i((d,S,y,C,T)=>{if(S===cn.ACCOUNTS){let w=Dn(T.supportedBlockchains);y&&u([d,S,y,C,T],{supportedChainNames:w})}S===cn.PROVIDER_DISCONNECTED&&(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),S===cn.NAMESPACE_DISCONNECTED&&n(d,y)},"handleUpdatesForHub"),f=i((d,S,y,C,T)=>{if(S===cn.ACCOUNTS){let w=Dn(T.supportedBlockchains),x=[],A=[];if(y?.forEach(E=>{let{network:v}=fd(E);p.includes(v)?x.push(E):A.push(E)}),r.filter(E=>E.walletType===d).map(E=>vT(E.address,E.chain)).length>0){if(x.length>0){let E=rs(d,x,p,w,T.isContractWallet);a(d,{chains:E.map(v=>v.chain)})}A.length>0&&a(d,{chains:A.map(E=>{let{network:v}=fd(E);return v})})}y?u([d,S,y,C,T],{supportedChainNames:w}):(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((d,S,y,C,T)=>{if(S===cn.CONNECTED&&y){let w={walletType:d,network:C.network??void 0,accounts:C.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(S===cn.NETWORK&&y){let w={walletType:d,network:y,accounts:C.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((d,S,y,C,T)=>{T.isHub?m(d,S,y,C,T):f(d,S,y,C,T),h(d,S,y,C,T)},"handler")}}i(gd,"useUpdates");import{LegacyEvents as xT}from"@rango-dev/wallets-core/legacy";function hd(t,e){let[o,n,r,a,s]=e;n!==xT.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(hd,"propagateEvents");var Ci=IT({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function NT(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=k(),a=k().blockchains(),s=k().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=_s(s.wallets,c),p=Sd(),u=Sd(),{handler:m}=gd({onConnectWalletHandler:p,onDisconnectWalletHandler:u});yd(()=>{n().catch(console.log)},[]),yd(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=te.use.isActiveTab(),h=AT(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Si.createElement(Ci.Provider,{value:h},Si.createElement(ET,{allBlockChains:a,providers:l,onUpdateState:(g,d,S,y,C)=>{let T=[g,d,S,y,C];m(...T),t.onUpdateState&&hd(t.onUpdateState,T)},autoConnect:!!f,configs:{wallets:s.wallets}},t.children))}i(NT,"Main");function ki(t){let{config:e,...o}=t;return Si.createElement(Ou,{config:e},Si.createElement(NT,{...o,config:e}))}i(ki,"WidgetWallets");import Ga from"react";import BT,{Fragment as WT}from"react";import{MemoryRouter as LT,useInRouterContext as MT}from"react-router";function Cd({children:t}){let o=MT()?WT:LT;return BT.createElement(o,null,t)}i(Cd,"AppRouter");import{I18nManager as C0}from"@rango-dev/ui";import wp from"react";import qe from"react";import{useRoutes as a0}from"react-router-dom";var O={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as un,useRef as Ii}from"react";import nt from"bignumber.js";import{create as $T}from"zustand";import{subscribeWithSelector as FT}from"zustand/middleware";import{i18n as Ct}from"@lingui/core";import{getRelatedWalletOrNull as DT,RouteEventType as ID}from"@rango-dev/queue-manager-rango-preset";import Ve from"bignumber.js";import{PendingSwapNetworkStatus as Yn}from"rango-types";import{i18n as Ge}from"@lingui/core";var oe=i(()=>({genericServerError:Ge.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Ge.t("Please reset your liquidity sources."),description:Ge.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Ge.t("No Routes Found."),description:Ge.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Ge.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Ge.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Ge.t("High Price Impact"),title:Ge.t("Price impact is too high!"),description:Ge.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Ge.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Ge.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Ge.t("USD Price Unknown"),title:Ge.t("USD Price Unknown, Cannot calculate Price Impact."),description:Ge.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Ge.t("Confirm USD Price Unknown")}}),"errorMessages");function kd(t){return t.type===0?t.diagnosisMessage??oe().noResultError.title:t.type===1?t.diagnosisMessage??oe().genericServerError:""}i(kd,"getQuoteErrorMessage");import{i18n as Ti}from"@lingui/core";var Wo=i(()=>({connectWallet:Ti.t("Connect Wallet"),swap:Ti.t("Swap"),swapAnyway:Ti.t("Swap anyway"),ethWarning:Ti.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ds(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Ds,"getFeeLabel");var $s=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Td=100,wd=30,vd=15,bd=60;var xd=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Ed=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as _T}from"@rango-dev/queue-manager-rango-preset";import mD from"bignumber.js";function Ad(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(Ad,"getRequiredBalanceOfWallet");function Kt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Kt,"getPriceImpactLevel");function wi(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=_T(t.steps);if(!r||!n)return{fromBlockchain:null,fromToken:void 0,toBlockchain:null,toToken:void 0,inputAmount:""};let s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=vo(a?a.toBlockchain:n.fromBlockchain,e),l=vo(r.toBlockchain,e),p=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:m}}i(wi,"createRetryQuote");function pn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=Xn(o),s=St(o);if(o&&a&&s){let p=Vt(a.toString(),s.toString());if(!!p&&Md(a,p)){let m=bi(o?.swaps,n),f=Kt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:m,warningLevel:f}}}if(e&&Dd(e,o))return{type:4,usdValueChange:D(St(o)?.minus(St(e)??0).toString()??"0",null,2),percentageChange:D(Vt(St(e)??"1",St(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=xi(o.swaps),l=r>Zo;if(_d(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Pd(o,r),minRequiredSlippage:c};return null}i(pn,"generateQuoteWarnings");function Nd(t){return![4].includes(t.type)}i(Nd,"isQuoteWarningConfirmationRequired");function Vt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Fs(t.toString(),e.toString());return n&&n<0?n:null}i(Vt,"getPriceImpact");var Bd=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),vi=i((t,e)=>e.sort((o,n)=>{let r=i(p=>p.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),Wd=i((t,e,o)=>{let n=e[0];if(!e.length||!n)return null;if(!t)return{requestAmount:o,validationStatus:null,...n};let r=new Set(t.swaps.map(s=>s.swapperId)),a=e.find(s=>{let c=new Set(s.swaps.map(l=>l.swapperId));return Array.from(r).every(l=>c.has(l))});return{requestAmount:o,validationStatus:null,...a||n}},"getDefaultQuote"),Ld=i(t=>{let e=i((o,n)=>{let r=$s.indexOf(o.value),a=$s.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Md(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return xd.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ve(r)))}i(Md,"hasHighValueLoss");function $d(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ve(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i($d,"hasLimitError");function Fd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new Ve(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new Ve(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0];if(!e)return{swap:void 0,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new Ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ve(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=Ct.t({id:"Required: >= {min} {symbol}",values:{min:D(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=Ct.t({id:"Required: > {min} {symbol}",values:{min:D(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=Ct.t({id:"Required: <= {max} {symbol}",values:{max:D(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=Ct.t({id:"Required: < {max} {symbol}",values:{max:D(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Fd,"getLimitErrorMessage");function Od(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Wo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Wo().swap,action:"confirm-swap",disabled:!0}:s?{title:Wo().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Wo().ethWarning,action:"confirm-warning",disabled:!1}:{title:Wo().swap,action:"confirm-swap",disabled:!1}:{title:Wo().connectWallet,action:"connect-wallet",disabled:!1}}i(Od,"getSwapButtonState");function Os(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(le))&&e&&e!=="0"&&n!==0)}i(Os,"canComputePriceImpact");function Us(t,e){let o=le;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(!r||r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ve(r.amount).multipliedBy(a||0))}return o}i(Us,"getUsdFeeOfStep");function bi(t,e){return t.reduce((o,n)=>o.plus(Us(n,e)),le)}i(bi,"getTotalFeeInUsd");function zs(t){let e=le,o=new Ve(t.price||0);return e=e.plus(new Ve(t.amount).multipliedBy(o)),e}i(zs,"getUsdFee");function Ud(t){return t.reduce((e,o)=>e.plus(zs(o)),le)}i(Ud,"getTotalFeesInUsd");function zd(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(zd,"getFeesGroup");function qd(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?Object.fromEntries(e):null}i(qd,"checkSlippageErrors");function Pd(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?Object.fromEntries(o):null}i(Pd,"checkSlippageWarnings");function xi(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(xi,"getMinRequiredSlippage");function _d(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(_d,"hasProperSlippage");function Qd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:m,affiliateWallets:f,destination:h,contractCall:g}=t,d=a?.reduce((C,T)=>(C[T.chain]=T.address,C),{}),S=[];return r?.forEach(C=>{S.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:m??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:d??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1}}}i(Qd,"createQuoteRequestBody");function Hd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Hd,"getWalletsForNewSwap");function Xn(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new Ve(e).multipliedBy(o)}i(Xn,"getUsdInputFrom");function St(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new Ve(e).multipliedBy(o)}i(St,"getUsdOutputFrom");function Fs(t,e){return new Ve(e).div(new Ve(t)).minus(1).multipliedBy(Td).toNumber()}i(Fs,"getPercentageChange");function Dd(t,e){let o=Xn(t),n=St(t),r=St(e);if(!o||!n||!r)return!1;let a=Fs(n.toString(),r.toString());return Ed.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Dd,"isOutputAmountChangedExcessively");function Gd(t,e,o){let n=t.validationStatus,r=Eo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>Ad(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=D(new Ve(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=D(new Ve(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=Ct.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=Ct.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=Ct.t(" for input and network fee")),Ct.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:gt(s.asset.blockchain,o)}})})}i(Gd,"generateBalanceWarnings");function Zn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Yn.NetworkChanged}i(Zn,"isNetworkStatusInWarningState");function Vd(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),Zn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?DT(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case Yn.WaitingForConnectingWallet:r=u?Ct.t("Connect {wallet}",{wallet:u}):r;break;case Yn.WaitingForQueue:r=r||Ct.t("Waiting for other running tasks to be finished");break;case Yn.WaitingForNetworkChange:r=r||Ct.t("Waiting for changing wallet network");break;case Yn.NetworkChangeFailed:r=r||Ct.t("The network switch could not be completed. Please try again, or switch the network manually in your wallet.");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(Vd,"getSwapMessages");function Kd(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(Kd,"getLastConvertedTokenInFailedSwap");function jd(t){return t.status==="failed"}i(jd,"shouldRetrySwap");function Xd(t,e,o,n,r,a){if(!n||t)return!0;let s=Eo({filter:"all",quote:n}),c=Eo({filter:"required",quote:n}),l=s.every(m=>r.some(f=>f.chain===m)),p=c.every(m=>r.some(f=>f.chain===m)),u=o&&a?jo(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Xd,"isConfirmSwapDisabled");function Yd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Yd,"isTokensIdentical");var Ei=i((t,e)=>t?.usdPrice?new nt(e||le).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),U=on($T()(FT(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new nt(0),outputUsdValue:new nt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=le,a=o.inputUsdValue;return Pn(o.inputAmount)?(e&&(n=e?.outputAmount?new nt(e?.outputAmount):null,a=Xn(e)??le,r=St(e)??le),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new nt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new nt(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new nt(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:Ei(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new nt(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),sanitizeInputAmount:e=>{let o=pu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;Xr(e)||(o=ou(o),o=nu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new nt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Ei(n.fromToken,o)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:Ei(n??null,s),outputUsdValue:new nt(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?Ei(e.toToken,e.outputAmount?.toString()||""):new nt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new nt(0),inputUsdValue:new nt(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new nt(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),Zd=U.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Ce.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&Ce.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function Jd(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=U(),u=k().config,m=k().fetchStatus,f=k().blockchains(),{findToken:h}=k(),{setAffiliateRef:g,setAffiliatePercent:d,setAffiliateWallets:S}=k(),y=u?.from?.tokens,C=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,x=Ii(void 0),A=Ii(void 0),I=Ii(void 0),E=Ii(void 0);un(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),un(()=>{if(m==="success"){r();let v=f.find(P=>P.name===u?.from?.blockchain),b=u?.from?.token,B=b&&h(b);(v||!v&&I.current)&&n(v??null),B?a({token:B,meta:{blockchains:f}}):!B&&x.current&&a({token:null}),I.current=u?.from?.blockchain,x.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),un(()=>{ls(s,y)&&a({token:null}),cs(l,C)&&n(null)},[y,C]),un(()=>{ls(c,T)&&a({token:null}),cs(p,w)&&o(null)},[T,w]),un(()=>{if(m==="success"){r();let v=f.find(P=>P.name===u?.to?.blockchain),b=u?.to?.token,B=b&&h(b);(v||!v&&E.current)&&o(v??null),B?e({token:B,meta:{blockchains:f}}):!B&&A.current&&e({token:null}),E.current=u?.to?.blockchain,A.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),un(()=>{g(u?.affiliate?.ref??null),d(u?.affiliate?.percent??null),S(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Jd,"useSyncStoresWithConfig");import{useEffect as Hs,useRef as OT}from"react";import{useInRouterContext as UT,useLocation as zT,useSearchParams as qT}from"react-router-dom";function qs(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(qs,"convertTokenSearchParamToAsset");function Qs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Qs,"tokenToSearchParam");function Vs(){let t=zT(),[e,o]=qT(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:m,setInputAmount:f}=U(),h=k().fetchStatus,g=k().blockchains(),d=UT(),{updateIframe:S,updateCampaignMode:y}=k(),C=k().isInCampaignMode(),T=OT(),{findToken:w}=k(),x=i(()=>{let I={};for(let[M,ee]of e.entries())M.startsWith("utm_")&&(I[M]=ee);let E=e.get("fromAmount"),v=e.get("fromBlockchain"),b=e.get("fromToken"),B=e.get("toBlockchain"),P=e.get("toToken"),F=e.get("autoConnect"),q=e.get("clientUrl"),Z=e.get("liquiditySources"),V=e.get("blockchain");return{fromAmount:E,fromBlockchain:v,fromToken:b,toBlockchain:B,toToken:P,autoConnect:F,clientUrl:q,liquiditySources:Z,utmQueryParams:I,blockchain:V}},"getUrlSearchParams"),A=i(I=>{for(let E in I)I[E]||delete I[E];o(I,{replace:!0})},"updateUrlSearchParams");Hs(()=>{let{autoConnect:I,clientUrl:E,utmQueryParams:v,blockchain:b}=x();d&&h==="success"&&A({fromBlockchain:n?.name,fromToken:Qs(a),toBlockchain:r?.name,toToken:Qs(s),fromAmount:c,autoConnect:I??void 0,clientUrl:E??void 0,blockchain:b??void 0,liquiditySources:C?T.current:void 0,...v})},[t.pathname,c,n,a,r,s,C,h]),Hs(()=>{if(!d)return;let I=x();if(!T.current&&I.liquiditySources&&(T.current=I.liquiditySources),I.fromAmount&&f(I.fromAmount),h==="success"){let E=g.find(q=>q.name===I.fromBlockchain),v=I.fromToken&&E&&qs(I.fromToken,E),b=v?w(v):void 0,B=g.find(q=>q.name===I.toBlockchain),P=I.toToken&&B&&qs(I.toToken,B),F=P?w(P):void 0;E&&(l(E),b&&u({token:b,meta:{blockchains:g}})),B&&(p(B),F&&m({token:F,meta:{blockchains:g}}))}},[h]),Hs(()=>{let{clientUrl:I,liquiditySources:E}=x();S("clientUrl",I||void 0),y("liquiditySources",E?.split(",")??void 0)},[])}i(Vs,"useSyncUrlAndStore");import{i18n as hn}from"@lingui/core";import{Alert as cv,Button as pv,darkTheme as uv,Divider as vl,DoneIcon as dv,styled as mv,TextField as fv,Typography as gv}from"@rango-dev/ui";import je,{useState as hv}from"react";import{useNavigate as yv,useSearchParams as Sv}from"react-router-dom";import{ChevronRightIcon as QT,Divider as nm,Image as HT,Typography as rm}from"@rango-dev/ui";import bt from"react";import{darkTheme as Rd,styled as Ks}from"@rango-dev/ui";var em=Ks("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Rd} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Rd} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),tm=Ks("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),om=Ks("div",{display:"flex"});function js(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return bt.createElement(tm,null,bt.createElement(rm,{size:"large",variant:"label"},n),bt.createElement(nm,{size:10}),bt.createElement(em,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},bt.createElement(om,null,r&&bt.createElement(bt.Fragment,null,bt.createElement(HT,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),bt.createElement(nm,{size:4,direction:"horizontal"})),bt.createElement(rm,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),bt.createElement(QT,{size:12,color:"black"})))}i(js,"BlockchainSelectorButton");import{i18n as Rs}from"@lingui/core";import{Button as jT,Divider as lm,MessageBox as XT}from"@rango-dev/ui";import so,{useEffect as cm,useState as el}from"react";import{i18n as Ai}from"@lingui/core";import{Divider as Lo,ExternalLinkIcon as VT,Image as KT,Typography as mn}from"@rango-dev/ui";import ke from"react";var im="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function am(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(am,"generateExplorerLink");import{Button as GT,darkTheme as dn,styled as Xs}from"@rango-dev/ui";var Ys=Xs("a",{textDecoration:"none",color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${dn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${dn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),sm=Xs("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${dn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"}}}),Zs=Xs(GT,{minHeight:"$40"});function Js(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=am(n.address,s),l=i(()=>window.open(im,"_blank"),"onClickLearnMore");return ke.createElement(J,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},ke.createElement(sm,null,ke.createElement(KT,{src:n.image===""?Hr:n.image,size:45,type:"circular"}),ke.createElement(Lo,{size:4}),ke.createElement(mn,{variant:"title",size:"medium"},n.symbol),ke.createElement(mn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),ke.createElement(Lo,{size:4}),ke.createElement(mn,{variant:"body",size:"medium"},c?ke.createElement(Ys,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,ke.createElement(VT,{size:12,color:"gray"})):ke.createElement(Ys,null,n.address)),ke.createElement(Lo,{size:4}),n.coinSource&&ke.createElement(mn,{className:"_coin-source",variant:"body",size:"xsmall"},Ai.t("via")," ",ke.createElement(mn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),ke.createElement(Lo,{size:"32"}),ke.createElement(mn,{size:"medium",variant:"body",className:"_custom-token-description"},Ai.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),ke.createElement(Lo,{size:40}),ke.createElement(Lo,{size:10}),ke.createElement(Zs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Ai.t("Import Anyway")),ke.createElement(Lo,{size:10}),ke.createElement(Zs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Ai.t("Learn More")))}i(Js,"CustomTokenModal");function Jn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=k(),[m,f]=el(!1),[h,g]=el(!1),[d,S]=el(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),T=i(()=>{S(!0),C()},"handleErrorModalButtonClick"),w=i(()=>{d&&n?.type==="network-error"&&(S(!1),y()),l()},"handleExit"),x=i(()=>{e&&(u(e),c())},"handleSubmit");return cm(()=>{n&&f(!0)},[n]),cm(()=>{o&&e&&g(!0)},[o,e]),so.createElement(so.Fragment,null,so.createElement(J,{open:m,dismissible:!0,id:"widget-add-custom-token-modal",onClose:C,onExit:w,container:N()},so.createElement(XT,{title:n?.title??"",type:"error",description:n?.message||Rs.t("Failed Network, Please retry.")},so.createElement(lm,{size:40}),so.createElement(lm,{size:10}),so.createElement(jT,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:T},n?.type==="network-error"?Rs.t("Retry"):Rs.t("Add another custom token")))),o&&e&&so.createElement(Js,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>g(!1),open:h,onExit:p}))}i(Jn,"ImportCustomToken");import{useManager as nv}from"@rango-dev/queue-manager-react";import{BottomLogo as rv,Divider as zm,Header as iv}from"@rango-dev/ui";import Be,{useEffect as $i,useLayoutEffect as av,useRef as qm,useState as Qm}from"react";import{useRef as YT}from"react";function Rn(){return window.self!==window.top}i(Rn,"isAppLoadedIntoIframe");function tl(){let t=YT(null),{iframe:e}=k(),o=Rn()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(tl,"useIframe");import{useNavigate as ZT}from"react-router-dom";function Ke(){let t=ZT();return()=>t(-1)}i(Ke,"useNavigateBack");import{useLayoutEffect as JT,useState as er}from"react";var pm=480,um=768,dm=1024,mm=1200,RT=i(()=>{let[t,e]=er(!1),[o,n]=er(!1),[r,a]=er(!1),[s,c]=er(!1),[l,p]=er(!1),u=i(()=>{e(window.innerWidth<=pm),n(window.innerWidth>pm&&window.innerWidth<=um),a(window.innerWidth>um&&window.innerWidth<=dm),c(window.innerWidth>dm&&window.innerWidth<=mm),p(window.innerWidth>mm)},"handleResize");return JT(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),fn=RT;import{createTheme as ll,darkTheme as dw,lightTheme as mw}from"@rango-dev/ui";import{useEffect as fw,useState as gw}from"react";import{theme as pw,darkColors as uw}from"@rango-dev/ui";import al from"react";var Ni=16,Bi=255,fm=.11;function ew(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(ew,"expandShortHexColor");function tw(t,e){return t.padStart(e,"0")}i(tw,"pad");function ol(t){let e=Math.min(Math.max(Math.round(t),0),Bi);return tw(e.toString(Ni),2)}i(ol,"intToHex");function ow(t){return`#${ol(t.red)}${ol(t.green)}${ol(t.blue)}`}i(ow,"rgbToHex");function nw(t){let e=parseInt(t.slice(1,3),Ni),o=parseInt(t.slice(3,5),Ni),n=parseInt(t.slice(5,7),Ni);return{red:e,green:o,blue:n}}i(nw,"hexToRGB");function rw(t,e){let o=1-fm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(rw,"generateShade");function iw(t,e){let o=fm*e;return{red:t.red+(Bi-t.red)*o,green:t.green+(Bi-t.green)*o,blue:t.blue+(Bi-t.blue)*o}}i(iw,"generateTint");function aw(t){return gm(t,rw)}i(aw,"calculateShades");function sw(t){return gm(t,iw)}i(sw,"calculateTints");function gm(t,e){let o=nw(t),n=[];for(let r=1;r<9;r++)n.push(ow(e(o,r)));return n}i(gm,"calculateColors");function nl(t,e,o){let a=sw(t).reverse().concat(t),s=aw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let m=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${m}`]=f)}return l}i(nl,"createTintsAndShades");function rl(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!lu(r)){let l=ew(a);Object.assign(n,nl(l,r,s))}}return{...n,...e}}i(rl,"expandToGenerateThemeColors");var hm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),lw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=hm(o%52)+e;return hm(o%52)+e},"toAlphabeticName"),cw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),il=i(t=>lw(cw(5381,JSON.stringify(t))>>>0),"toHash");function sl(t){let e=pw.colors,o={...e,...uw},n,r;if(t?.light){let s={colors:rl(e,t.light)};n={id:`${ss}-light-${il(s)}`,tokens:s}}if(t?.dark){let s={colors:rl(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ss}-dark-${il(s)}`,tokens:s}}return{light:n,dark:r}}i(sl,"customizedThemeTokens");function ym(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>al.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(al.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(al.cloneElement(e,{key:c}))}}),o}i(ym,"joinList");function Sm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Sm,"doesWindowPreferDarkColorScheme");function lo(t){let{colors:e,fontFamily:o=Vp,borderRadius:n=wu,secondaryBorderRadius:r=vu}=t,[a,s]=gw(Sm()?"dark":"light"),{theme:c}=k(),{dark:l,light:p}=sl(e),u=ll({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[u.className,mw.className],f=[u.className,dw.className];if(p){let g=ll(p.id,p.tokens);m.push(g.className)}if(l){let g=ll(l.id,l.tokens);f.push(g.className)}return fw(()=>{let g=i(d=>{d.matches?s("dark"):s("light")},"switchThemeListener");return Sm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),d=f.join(" ");return c==="auto"?a==="dark"?d:g:c==="dark"?d:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(lo,"useTheme");var kt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Cm}from"@lingui/core";import{Alert as hw,Button as yw}from"@rango-dev/ui";import km from"react";function cl(t){return km.createElement(hw,{action:km.createElement(yw,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Cm.t("Activate this tab")),type:"warning",variant:"alarm",title:Cm.t("Another tab is open and handles transactions.")})}i(cl,"ActivateTabAlert");import{i18n as pl}from"@lingui/core";import{Button as Sw,Divider as Cw,MessageBox as kw}from"@rango-dev/ui";import Wi from"react";function ul(t){let{open:e,onClose:o,onConfirm:n}=t;return Wi.createElement(J,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},Wi.createElement(kw,{title:pl.t("Activate current tab"),type:"warning",description:pl.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},Wi.createElement(Cw,{size:20}),Wi.createElement(Sw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},pl.t("Confirm"))))}i(ul,"ActivateTabModal");import{ChevronLeftIcon as vw}from"@rango-dev/ui";import Am from"react";import{css as Tw,darkTheme as Tm,IconButton as ww,styled as Mo}from"@rango-dev/ui";var _t=Mo(ww,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Tm} &`]:{backgroundColor:"$neutral"}}}),wm=Mo("div",{position:"absolute",background:"$secondary500",[`.${Tm} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),co=Mo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),vm=Mo("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),bm=Mo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),xm=Mo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Em=Tw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Im=Mo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function dl(t){return Am.createElement(_t,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Am.createElement(vw,{color:"black",size:16}))}i(dl,"BackButton");import{i18n as bw}from"@lingui/core";import{Button as xw,Typography as Ew}from"@rango-dev/ui";import ml from"react";function fl(t){return ml.createElement(co,null,ml.createElement(xw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},ml.createElement(Ew,{variant:"label",size:"medium",color:"error500"},bw.t("Cancel"))))}i(fl,"CancelButton");import{i18n as Iw}from"@lingui/core";import{Image as Aw,Tooltip as Nw,WalletIcon as Bw}from"@rango-dev/ui";import Po from"react";function gl(t){let{list:e}=vt(),o=e.filter(r=>r.state==="connected"),n=o.length?Po.createElement("div",{className:Em()},o.map(r=>Po.createElement(Im,{key:r.title},Po.createElement(Aw,{src:r.image,size:14})))):Iw.t("Connect Wallet");return Po.createElement(Nw,{container:t.container,side:"bottom",content:n},Po.createElement(_t,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Po.createElement(wm,null),Po.createElement(Bw,{size:18,color:"black"})))}i(gl,"WalletButton");import{i18n as Mi}from"@lingui/core";import{NotificationsIcon as Vw,Popover as Kw,SettingsIcon as jw,Tooltip as Pi,TransactionIcon as Xw}from"@rango-dev/ui";import De from"react";import{Notifications as Pw}from"@rango-dev/ui";import _w from"react";import{useNavigate as Dw}from"react-router-dom";import{create as Ww}from"zustand";import{persist as Lw,subscribeWithSelector as Mw}from"zustand/middleware";var Ne=on(Ww()(Lw(Mw((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1];if(!r||!a)return;let s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function hl(){let t=Dw(),{getNotifications:e,clearNotifications:o}=Ne(),n=e(),r=k().blockchains(),{findToken:a}=k();return _w.createElement(Pw,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>$p(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${O.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(hl,"NotificationContent");import{useManager as $w}from"@rango-dev/queue-manager-react";import{InProgressIcon as Fw}from"@rango-dev/ui";import Nm from"react";var Ow=i(()=>{let{manager:t}=$w();return kt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Nm.createElement(xm,{id:"widget-header-history-badge-container"},Nm.createElement(Fw,{color:"info",size:6})):null},"InProgressTransactionBadge"),Bm=Ow;import{EventSeverity as Uw}from"@rango-dev/queue-manager-rango-preset";import{Typography as zw}from"@rango-dev/ui";import Wm from"react";function Lm(){let{getNotifications:t}=Ne(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Uw.WARNING);return o?Wm.createElement(vm,{isSever:n},Wm.createElement(zw,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Lm,"NotificationsBadge");import{RefreshProgressButton as qw}from"@rango-dev/ui";import yl,{useEffect as Qw,useState as Mm}from"react";var Hw=1e3,Pm=60,Gw=100;function Li({onClick:t}){let[e,o]=Mm(0),[n,r]=Mm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Qw(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===Pm&&c()},Hw):s(l),document.addEventListener("visibilitychange",()=>a(l)),()=>{document.removeEventListener("visibilitychange",()=>a(l)),l&&clearInterval(l)}},[e,t]);let s=i(l=>{l&&clearInterval(l),o(0)},"clearTimeout"),c=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return yl.createElement(_t,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},yl.createElement(bm,{onTransitionEnd:()=>r(!1),isRefetched:n},yl.createElement(qw,{size:22,color:t?"black":"gray",progress:e/Pm*Gw})))}i(Li,"RefreshButton");function _o(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=k(),c=ot("notification",s)||r.includes("notifications");return De.createElement(De.Fragment,null,!r.includes("refresh")&&De.createElement(Pi,{container:a||N(),side:"top",content:Mi.t("Refresh")},De.createElement(Li,{onClick:e})),!c&&De.createElement(Kw,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:De.createElement(hl,null)},De.createElement("div",null,De.createElement(Pi,{container:N(),side:"top",content:Mi.t("Notifications")},De.createElement(_t,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},De.createElement(Vw,{size:18,color:"black"}),De.createElement(Lm,null))))),!r.includes("settings")&&De.createElement(Pi,{container:N(),side:"top",content:Mi.t("Settings")},De.createElement(_t,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},De.createElement(jw,{size:18,color:"black"}))),!r.includes("history")&&De.createElement(Pi,{container:N(),side:"top",content:Mi.t("History")},De.createElement(_t,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},De.createElement(Xw,{size:18,color:"black"}),De.createElement(Bm,null))))}i(_o,"HeaderButtons");import{i18n as Sl}from"@lingui/core";import{Divider as Dm,MessageBox as Jw,RefreshIcon as Rw}from"@rango-dev/ui";import gn from"react";import{Button as Yw,styled as Zw}from"@rango-dev/ui";var _m=Zw(Yw,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Cl(t){let{open:e,onClose:o}=t;return gn.createElement(J,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},gn.createElement(Jw,{title:Sl.t("Something went wrong"),type:"error",description:Sl.t("Something went wrong. Please refresh the app.")},gn.createElement(Dm,{size:30}),gn.createElement(_m,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},gn.createElement(Rw,{size:20,color:"primary"}),gn.createElement(Dm,{size:4,direction:"horizontal"}),Sl.t("Refresh"))))}i(Cl,"RefreshModal");function kl(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(kl,"onScrollContentAttachStatusToContainer");import{css as tv,styled as _i}from"@rango-dev/ui";var Di=tv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),$m=_i("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:700},fixed:{minHeight:425,maxHeight:700,height:700}},showBanner:{true:{overflow:"visible"}}}}),Fm=_i("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Om=_i("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}}),Um=_i("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function re(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=tl(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=k(),[u,m]=Qm(!1),{config:{features:f,theme:h}}=k(),{watermark:g,setShowCompactTokenSelector:d}=te(),S=g==="FULL",{activeTheme:y}=lo(h||{}),[C,T]=Qm(!1),w=ot("connectWalletButton",f),{isActiveTab:x,tabManagerInitiated:A,showActivateTabModal:I,setShowActivateTabModal:E,activateCurrentTab:v}=te(),b=Ke(),{manager:B}=nv(),{isTablet:P,isMobile:F}=fn(),Z=kt(B).map(({swap:we})=>we).some(we=>we.status==="running"),V=i(()=>v(Ao.forceClaim,Z),"onActivateTab"),M=i(()=>{r.onWallet?.()},"onConnectWallet"),ee=typeof r.hasBackButton>"u"||r.hasBackButton,R=qm(null),X=qm(null);return $i(()=>{let we=(p?.swapBoxBanner?.routes?.length??0)===0,se=!!p?.swapBoxBanner?.routes?.some(de=>location.pathname.endsWith(de));T(!!p?.swapBoxBanner&&(we||se))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),$i(()=>(Rn()&&X.current&&e(X.current),()=>{o()}),[]),$i(()=>(R.current?.addEventListener("scroll",kl),()=>{R.current?.removeEventListener("scroll",kl)}),[]),$i(()=>{m(c==="failed")},[c]),av(()=>{let we=s==="auto"||!X.current||Rn(),se=F||P,de=i(()=>{we||(se?X.current.style.height=`${window.innerHeight-X.current.offsetTop}px`:X.current.style.height=`${700}px`,d(parseFloat(X.current.style.height)<640))},"handler");return de(),window.addEventListener("resize",de),()=>window.removeEventListener("resize",de)},[s,F,P]),Be.createElement($m,{height:s,id:tt.SWAP_BOX_ID,className:`${y()} ${Di()}`,ref:X,showBanner:C},Be.createElement(iv,{prefix:ee?Be.createElement(dl,{onClick:()=>{b(),r.onBack?.()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!w&&Be.createElement(gl,{container:N(),onClick:M,isConnected:!!l?.length}),r.onCancel&&Be.createElement(fl,{onClick:r.onCancel}))}),Be.createElement(Fm,{ref:R},n),Be.createElement(ul,{open:I,onClose:()=>E(!1),onConfirm:V}),Be.createElement(Om,null,Be.createElement("div",{className:"footer__content"},A&&!x&&Be.createElement("div",{className:"footer__alert"},Be.createElement(cl,{onActivateTab:V}),Be.createElement(zm,{size:10})),a),Be.createElement(zm,{size:12}),Be.createElement("div",{className:`footer__logo ${S?"logo__show":"logo__hidden"}`},Be.createElement(rv,null))),C&&Be.createElement(Um,null,p?.swapBoxBanner?.element),Be.createElement(Cl,{open:u,onClose:()=>m(!1)}))}i(re,"Layout");import{styled as sv}from"@rango-dev/ui";var Hm="$20 $20 $10 $20",Tl=sv("div",{padding:Hm,overflowY:"auto",flexGrow:1});import{styled as lv}from"@rango-dev/ui";var ie=lv("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as po}from"@lingui/core";import{useState as wl}from"react";function Gm(){let[t,e]=wl(!1),[o,n]=wl(null),[r,a]=wl(null),{findToken:s}=k(),c=k().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(m,f){switch(m){case"duplicated":return{type:m,title:po.t("Duplicate Token"),message:po.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:m,title:po.t("Token Already Exists"),message:po.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:m,title:po.t("Token Not Found"),message:po.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:f}})};case"network-error":return{type:m,title:po.t("Network error"),message:po.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:m,tokenAddress:f})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===f.toLowerCase())){let y=p("duplicated");n(y);return}let g=await ct().getCustomToken({blockchain:m,address:f});if(!g||!g.token||g.error){let y=p("not-found",m);n(y);return}let d=g.token;if(s({blockchain:d.blockchain,address:d.address,symbol:d.symbol})){let y=p("token-exist");n(y);return}return a({...d,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",m);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(Gm,"useFetchCustomToken");var Cv=mv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${uv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Vm(){let t=yv(),[e]=Sv(),o=Ke(),n=k().blockchains(),r=e.get("blockchain")||"",a=vo(r,n),[s,c]=hv(""),{fetchCustomToken:l,token:p,loading:u,error:m,resetState:f}=Gm(),h=!!a&&jo(a,s),g=!a||!s||!h,d=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return je.createElement(re,{header:{title:hn.t("Add Custom Token")}},je.createElement(ie,null,je.createElement(Cv,null,je.createElement("div",null,je.createElement(js,{onClick:()=>t(O.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:hn.t("Select chain"),placeholder:hn.t("Select chain")}),je.createElement(vl,{size:"24"}),je.createElement(gv,{size:"large",variant:"label"},hn.t("Enter Address")),je.createElement(vl,{size:10}),je.createElement(fv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:hn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&je.createElement(dv,{color:"success",size:12}),onChange:S=>c(S.target.value)}),!h&&!!s&&je.createElement(je.Fragment,null,je.createElement(vl,{size:4}),je.createElement(cv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),je.createElement(pv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:d},hn.t("Import"))),je.createElement(Jn,{token:p,blockchain:a??void 0,address:s,error:m??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{m?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(Vm,"AddCustomTokenPage");import{i18n as ec}from"@lingui/core";import{useManager as rx}from"@rango-dev/queue-manager-react";import{Alert as ix,Button as ax,css as oc,Divider as tc,IconButton as Dg,styled as sx,Typography as lx,WalletIcon as cx}from"@rango-dev/ui";import Fe,{useEffect as ca,useLayoutEffect as px,useRef as ux,useState as fr}from"react";import{useNavigate as dx}from"react-router-dom";import{i18n as Do}from"@lingui/core";import{Alert as Gv,BalanceErrors as Vv,Button as Cf,ChevronLeftIcon as Kv,Divider as Wl,MessageBox as jv,Typography as Ll}from"@rango-dev/ui";import ne,{useCallback as Xv,useEffect as kf,useMemo as Yv,useState as Cn}from"react";import{useNavigate as Zv}from"react-router-dom";import{i18n as Il}from"@lingui/core";import{Alert as bv,ChevronDownIcon as xv,CloseIcon as Ev,Divider as Rm,IconButton as ef,PasteIcon as Iv,Typography as Av,WalletIcon as Nv}from"@rango-dev/ui";import $e,{useEffect as Bv,useRef as Wv}from"react";import zi,{useRef as wv}from"react";import*as yn from"@radix-ui/react-collapsible";import{keyframes as Km,styled as Fi}from"@rango-dev/ui";var bl=300,kv=Km({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Tv=Km({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),jm=Fi(yn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),xl=Fi(yn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Oi=Fi(yn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${kv} ${bl}ms ease-out`},false:{animation:`${Tv} ${bl}ms ease-out`}}}}),Ui=Fi("div",{transition:`all ${bl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function qi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=wv(null);return zi.createElement(jm,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&zi.createElement(xl,{className:"collapsible_trigger",onClick:a},s),zi.createElement(Oi,{className:"collapsible_content",open:e},r),c==="bottom"&&zi.createElement(xl,{className:"collapsible_trigger",onClick:a},s))}i(qi,"CustomCollapsible");import{darkTheme as Xm,styled as El,TextField as vv}from"@rango-dev/ui";var Ym=El("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),Zm=El(vv,{backgroundColor:"$neutral100"}),Jm=El("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Xm} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Xm} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function tf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=U(),{config:s}=k(),c=k().blockchains(),l=zr(e.name,c),p=Wv(null),u=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!jo(e,r),g=i(()=>{a("")},"handleClear"),d=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),p?.current?.focus()}},"handlePaste"),S=i(()=>r?$e.createElement(ef,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},$e.createElement(Ev,{size:12,color:"gray"})):m?null:$e.createElement(ef,{id:"widget-custom-destination-paste-icon-btn",onClick:d,variant:"ghost"},$e.createElement(Iv,{size:16})),"renderSuffix");return Bv(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),$e.createElement(Ym,null,$e.createElement(qi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:$e.createElement(Jm,{id:"widget-custom-destination-collapsible-btn"},$e.createElement("div",{className:"button__content"},$e.createElement(Nv,{size:18,color:"info"}),$e.createElement(Rm,{size:4,direction:"horizontal"}),$e.createElement(Av,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Il.t("Send to a different address"))),$e.createElement(Ui,{orientation:n?"up":"down"},$e.createElement(xv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},$e.createElement(Zm,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Il.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:S(),onChange:y=>{let C=y.target.value;a(C)}})),h&&$e.createElement($e.Fragment,null,$e.createElement(Rm,{size:4}),$e.createElement(bv,{variant:"alarm",type:"error",title:Il.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(tf,"CustomDestination");import{css as Lv,IconButton as Mv,SelectableWalletButton as Pv,styled as uo}from"@rango-dev/ui";var of=uo("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),nf=uo("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),rf=uo(Pv,{justifyContent:"center"}),af=uo("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),sf=uo(Mv,{position:"absolute",left:"$20"}),lf=uo("div",{paddingTop:"$20"}),cf=Lv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),pf=uo("div",{display:"flex"}),uf=uo("div",{overflow:"visible",width:"100%"});import{i18n as Nl}from"@lingui/core";import{warn as Ov}from"@rango-dev/logging-core";import{Divider as Uv,makeInfo as zv,SelectableWallet as qv,Typography as yf,WalletState as Qi}from"@rango-dev/ui";import rt,{useEffect as Sf,useState as nr}from"react";import{Image as $v,MessageBox as Fv}from"@rango-dev/ui";import or from"react";import{keyframes as _v,styled as Al}from"@rango-dev/ui";var df=Al("div",{position:"relative"}),Dv=_v({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),mf=Al("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Dv} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),ff=Al("div",{"& img":{borderRadius:"50%"}});import{i18n as Sn}from"@lingui/core";function gf(t,e){switch(t){case"in-progress":return{type:"loading",title:Sn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Sn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Sn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Sn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Sn.t("Request Rejected"),description:Sn.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(gf,"generateMessageByStatus");function hf(t){let{status:e,displayName:o,image:n}=t,r=gf(e,o),a=e=="in-progress";return or.createElement(Fv,{type:r.type,title:r.title,description:r.description,icon:a?or.createElement(df,null,or.createElement(ff,null,or.createElement($v,{src:n,size:45})),or.createElement(mf,null)):void 0})}i(hf,"ExperimentalChainStatus");var Qv=7,Hv=3e3;function Bl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=te.use.isActiveTab(),{blockchains:l,connectedWallets:p}=k(),[u,m]=nr(),[f,h]=nr(null),[g,d]=nr(!1),[S,y]=nr(null),{suggestAndConnect:C}=Hi(),{list:T}=vt({chain:e}),[w,x]=nr(T),A=T.length,I=a&&A-a>0,E=i(async b=>{d(!1),y("in-progress");try{await C(b.walletType,b.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");Sf(()=>{x(b=>{let B=T.findIndex(P=>n(P.type,e));return I&&B>1?[T[B]].concat(T.filter((P,F)=>F!==B)):b.map(P=>T.find(F=>F.type===P.type)??P)})},[JSON.stringify(T)]);let v=document.getElementById(tt.SWAP_BOX_ID);return Sf(()=>{let b=null;return(S==="completed"||S==="rejected")&&(b=setTimeout(()=>y(null),Hv)),()=>{b&&clearTimeout(b)}},[S]),rt.createElement(rt.Fragment,null,w.slice(0,a).map(b=>{let B=hu({connectedWallets:p,walletType:b.type,chain:e}),P=b.state===Qi.CONNECTED,F=B?io(B,Qv):"",q=P&&!!b.needsNamespace&&!F,Z=Rr(l(),e),V=!p.find(de=>de.walletType===b.type&&de.chain===e),M=Z&&V&&b.state===Qi.CONNECTED,ee=i(async()=>{b.state===Qi.DISCONNECTED||q?m(b):M?(h({walletType:b.type,chain:e,address:B??""}),d(!0)):r({walletType:b.type,chain:e,address:B??""})},"onSelectableWalletClick"),R=zv(b.state),X=i(()=>M?Nl.t({id:"Add {chain} chain",values:{chain:e}}):q?Nl.t("Chain not connected"):F||R.description,"getWalletDescription"),we=i(()=>b.state===Qi.CONNECTED?q?"neutral600":"neutral700":R.color,"getWalletDescriptionColor"),se=f?.chain?zr(f.chain,l()):void 0;return rt.createElement(rt.Fragment,{key:`${b.title}_${se}`},!!f&&rt.createElement(J,{id:"widget-wallets-list-watermarked-modal",open:!!f&&g,container:v,onClose:()=>{h(null)}},rt.createElement(Ps,{id:"widget-wallets-list-experimental-chain-container",displayName:se,onConfirm:()=>{E(f)}})),S&&rt.createElement(J,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!S,onClose:y.bind(null,null),container:v},rt.createElement(hf,{status:S,displayName:se,image:b.image}),rt.createElement(Uv,{direction:"vertical",size:32})),rt.createElement(qv,{key:b.type,id:"widget-wallets-list-selectable-wallet-btn",description:X(),descriptionColor:we(),onClick:ee,selected:n(b.type,e),disabled:!c,...b}))}),rt.createElement(jn,{id:"widget-wallets-list-stateful-connect-modal",wallet:u,options:{defaultSelectedChains:o||[e]},onClose:()=>{m(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):Ov(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),I&&rt.createElement(rf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},rt.createElement(yf,{variant:"label",size:"medium"},Nl.t("Show more wallets"),rt.createElement(yf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",A-(a??0)))))}i(Bl,"WalletList");var Jv=2;function Tf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Zv(),c=k().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:m,customDestination:f,setCustomDestination:h}=U(),{config:g,connectedWallets:d,setWalletsAsSelected:S}=k(),[y,C]=Cn(""),[T,w]=Cn([]),[x,A]=Cn(""),[I,E]=Cn(!!f),v=Yv(()=>Eo({filter:"all",quote:l}),[l]),b=Eo({filter:"required",quote:l}),B=c.find(L=>L.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),P=i(L=>b.includes(L),"isWalletRequiredFor"),F=Xv(()=>d.filter(L=>L.selected&&v.includes(L.chain)),[d,v]),[q,Z]=Cn(F()),[V,M]=Cn([]),ee=i((L,W)=>M(H=>H.concat({blockchain:L,walletType:W})),"addNextSelectedWallets"),R=T.length>0,X=i((L,W)=>!!q.find(H=>H.walletType===L&&H.chain===W&&H.selected&&(P(W)||!P(W)&&!f)),"isSelected"),we=i((L,W,H)=>{let j=!1;return L.map(K=>{if(K.chain===W){let me=K.selected;return!j&&H?(j=!0,me=!0):H||(me=!1),{...K,selected:me}}return K})},"updateSelectableWallets"),se=i(L=>{E(L),L?P(B?.name??"")||Z(W=>we(W,B?.name||"",!1)):(h(""),Z(W=>we(W,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),de=i(L=>{if(y&&C(""),X(L.walletType,L.chain))return;let H=d.find(j=>j.walletType===L.walletType&&j.chain===L.chain);H&&(n(),L.chain===B?.name&&I&&!P(B.name)&&(E(!1),h(null)),Z(j=>j.filter(K=>K.chain!==L.chain).concat({...H,selected:!0})))},"onChange"),Oe=i(()=>{let L=q.filter(W=>W.selected);S(L),p(L),m(!0),o()},"onConfirmBalance"),wt=i(async()=>{w([]),A("");let L=await r?.({selectedWallets:q.filter(H=>H.selected),customDestination:f}),W=L.warnings;W?.balance?.messages&&w(W.balance.messages),L.error&&A(kd(L.error)),!L.error&&!W?.balance?.messages.length?Oe():w(W?.balance?.messages??[])},"onConfirmWallets");kf(()=>{Z(L=>{let W=[];return L.forEach(H=>{!d.some(K=>K.chain===H.chain&&K.walletType===H.walletType&&K.address===H.address)||W.push(H)}),W=W.concat(d.filter(H=>!!!W.find(K=>K.chain===H.chain)&&H.selected&&v.includes(H.chain))),W})},[d,v]),kf(()=>{let L=[];V.length>0&&(V.forEach(W=>{let H=d.find(j=>j.chain===W.blockchain&&j.walletType===W.walletType);H?de(H):L.push(W)}),M(L))},[d,V]);let ve=document.getElementById(tt.SWAP_BOX_ID);return ne.createElement(J,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:ve,...!y&&{styles:{container:{height:"100%"}},footer:ne.createElement(pf,null,ne.createElement(Cf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Xd(a,I,f,l,q,B),onClick:wt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Do.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:ne.createElement(af,null,ne.createElement(sf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},ne.createElement(Kv,{size:16})),ne.createElement(Ll,{variant:"headline",size:"small"},Do.t({id:"Your {blockchainName} wallets",values:{blockchainName:gt(y,c)}})))},anchor:"center"},ne.createElement(J,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:R,onClose:w.bind(null,[]),container:ve},ne.createElement(jv,{title:Do.t("Insufficient account balance"),type:"error",description:ne.createElement(Vv,{messages:T??[]})},ne.createElement(Cf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Oe},Do.t("Proceed anyway")))),y&&ne.createElement(lf,null,ne.createElement("div",{className:cf()},ne.createElement(Bl,{chain:y,quoteChains:v,isSelected:X,selectWallet:de,onShowMore:()=>C(y),onConnect:L=>{ee(y,L)}}))),!y&&ne.createElement(ne.Fragment,null,x&&ne.createElement(ne.Fragment,null,ne.createElement(Gv,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Do.t(x)}),ne.createElement(Wl,{size:12})),ne.createElement(uf,null,v.map((L,W)=>{let H=c.find(Qe=>Qe.name===L),j=`wallet-${W}`,K=W===v.length-1,me=K&&B&&g?.customDestination!==!1;return ne.createElement("div",{key:j},ne.createElement(of,null,ne.createElement(Ll,{variant:"title",size:"xmedium"},Do.t({id:"Your {blockchainName} wallets",values:{blockchainName:H?.shortName}})),ne.createElement(Ll,{variant:"label",color:"$neutral700",size:"medium"},Do.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:H?.shortName}}))),ne.createElement(Wl,{size:24}),ne.createElement(nf,null,ne.createElement(Bl,{chain:L,quoteChains:v,isSelected:X,selectWallet:de,limit:Jv,onShowMore:()=>C(H?.name??""),onConnect:Qe=>{ee(L,Qe)}})),!K&&ne.createElement(Wl,{size:32}),me&&ne.createElement(tf,{blockchain:B,open:I,handleOpenChange:se}))}))))}i(Tf,"ConfirmWalletsModal");import{i18n as Cb}from"@lingui/core";import{Alert as kb,Button as Tb,Divider as Uf,InfoIcon as wb}from"@rango-dev/ui";import Ue from"react";import{Alert as tb,Button as ob,Divider as _l,NoRouteIcon as nb,RefreshIcon as rb,Typography as Af}from"@rango-dev/ui";import pt from"react";import{i18n as wf}from"@lingui/core";var Rv=24,eb=60;function vf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:wf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:wf.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(vf,"makeInfo");var Ml=(o=>(o[o.small=Rv]="small",o[o.large=eb]="large",o))(Ml||{}),Pl=(o=>(o.small="small",o.large="medium",o))(Pl||{});import{styled as Gi}from"@rango-dev/ui";var bf=Gi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),xf=Gi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Ef=Gi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),If=Gi("div",{padding:"$6 $0"});function rr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=k().getDisabledLiquiditySources(),s=k().toggleAllLiquiditySources,c=k().swappers(),l=vf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),pt.createElement(bf,{id:"widget-no-result-container"},pt.createElement(nb,{size:Ml[n],color:"gray"}),pt.createElement(_l,{size:4}),pt.createElement(Af,{variant:"title",size:Pl[n]},oe().noResultError.title),n==="large"&&pt.createElement(_l,{size:4}),!!l.description&&pt.createElement(xf,{size:n},pt.createElement(Af,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),pt.createElement(_l,{size:n==="large"?"24":"4"}),!!l.alert&&pt.createElement(Ef,{size:n},pt.createElement(tb,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&pt.createElement(ob,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:pt.createElement(If,null,pt.createElement(rb,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(rr,"NoResult");import{i18n as ar}from"@lingui/core";import{Button as sb,Divider as lb,MessageBox as cb,Typography as pb,WarningIcon as ub}from"@rango-dev/ui";import jt from"react";import{Typography as Mf}from"@rango-dev/ui";import $l from"react";import{Button as ib,darkTheme as ab,styled as ir}from"@rango-dev/ui";var Nf=ir("div",{width:"100%"}),Dl=ir("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Bf=ir("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${ab} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wf=ir("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Lf=ir(ib,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function Pf(t){let{title:e,value:o,valueColor:n}=t;return $l.createElement(Bf,null,$l.createElement(Mf,{size:"medium",variant:"label",className:"_title"},e),$l.createElement(Mf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Pf,"QuoteErrorsModalItem");function _f(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:ar.t("Swapping"),value:D(r.inputUsdValue,4,4)},{title:ar.t("Gas cost"),value:D(r.totalFee,2,2)},{title:ar.t("Receiving"),value:D(r.outputUsdValue,4,4)},{title:ar.t("Price impact"),value:D(r.priceImpact,2,2),valueColor:`${s}500`}];return jt.createElement(J,{id:"widget-high-value-loss-warning-modal",footer:jt.createElement(sb,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:jt.createElement(ub,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},jt.createElement(cb,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),jt.createElement(Dl,null,jt.createElement(lb,{size:"4"}),jt.createElement(pb,{size:"small",variant:"title"},ar.t("Details")),jt.createElement(Dl,null,c.map((l,p)=>jt.createElement(Pf,{key:p,...l})))))}i(_f,"HighValueLossWarningModal");import{i18n as kn}from"@lingui/core";function Df(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=kn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=kn.t("Increase")),o;if(t){switch(t.type){case 0:{Kt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title;break}case 4:{o.title=kn.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=oe().unknownPriceError.title;break}case 2:{o.title=kn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=kn.t("Increase");break}case 3:{o.title=kn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Df,"makeAlerts");function $f(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i($f,"getRequiredSlippage");import{i18n as Tn}from"@lingui/core";import{Button as db,Divider as Fl,MessageBox as mb,WarningIcon as fb}from"@rango-dev/ui";import go from"react";import{useNavigate as gb}from"react-router-dom";function Ff(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=gb();return go.createElement(J,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},go.createElement(mb,{type:"warning",title:r.type===3?Tn.t("High slippage"):Tn.t("Low slippage"),description:r.type===3?Tn.t("Caution, your slippage is high. Your trade may be front run."):Tn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},go.createElement(Fl,{size:18}),go.createElement(Fl,{size:32}),go.createElement(Lf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},go.createElement(fb,{color:"white",size:16}),Tn.t("Swap anyway")),go.createElement(Fl,{size:10}),go.createElement(db,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+O.settings)},Tn.t("Change Slippage"))))}i(Ff,"SlippageWarningModal");import{Button as hb,MessageBox as yb,WarningIcon as Sb}from"@rango-dev/ui";import Vi from"react";function Of(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Vi.createElement(J,{id:"widget-unknown-price-warning-modal",footer:Vi.createElement(hb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Vi.createElement(Sb,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Vi.createElement(yb,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Of,"UnknownPriceWarningModal");function sr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:m,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,d=Df(e,o?.type===3||o?.type===4?o:null);d&&!n&&(d.action=null);let S=!!d&&!s,y=i(C=>{if(C==="change-slippage"){let T=o?.type===3||o?.type===4?o:null,w=$f(e,T);f?.(w)}else C==="change-settings"&&m()},"onclickActionButton");return Ue.createElement(Ue.Fragment,null,g&&Ue.createElement(Ue.Fragment,null,Ue.createElement(Uf,{size:10}),Ue.createElement(rr,{skipAlerts:s,error:o,fetch:c})),S&&Ue.createElement(Nf,null,Ue.createElement(Uf,{size:10}),Ue.createElement(kb,{id:"widget-quote-warning-and-errors-alert",title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:Ue.createElement(Wf,{onClick:l},Ue.createElement(wb,{size:12,color:"gray"}))},...(d.action==="change-settings"||d.action==="change-slippage")&&{action:Ue.createElement(Tb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:d.alertType,onClick:()=>y(d.action)},d.actionButtonTitle||Cb.t("Change"))}})),e&&Ue.createElement(Ue.Fragment,null,e.type===0&&Ue.createElement(_f,{...h,warning:e}),(e.type===3||e.type===2)&&Ue.createElement(Ff,{...h,warning:e}),e.type===1&&Ue.createElement(Of,{...h,warning:e})))}i(sr,"QuoteWarningsAndErrors");import Zb from"bignumber.js";import ia from"react";import{i18n as $o}from"@lingui/core";import{Alert as Fb,Divider as vn,FullExpandedQuote as Ob,InfoIcon as Ub,NumericTooltip as fg,QuoteTag as zb,StepDetails as qb,TokenAmount as Qb,Typography as bn}from"@rango-dev/ui";import Kl from"bignumber.js";import z,{useRef as Hb,useState as Gb}from"react";import{styled as Ol}from"@rango-dev/ui";var Ul=Ol("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),zf=Ol("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),qf=Ol("div",{width:"100%",display:"flex"});import*as Ki from"@radix-ui/react-collapsible";import{Button as vb,css as lr,darkTheme as We,Image as Qf,styled as Ze,Typography as bb}from"@rango-dev/ui";var xb=300,Hf=Ze(Ki.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${We} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Gf=lr({padding:"$10 $15"}),Vf=Ze(vb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${We} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${We} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${We} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Kf=Ze("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${We} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${We} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${We} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${We} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${We} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${We} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${We} &`]:{backgroundColor:"$neutral400"}}}}]}),jf=lr({width:"100%",padding:"$15 $15 $10 $15"}),Xf=lr({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),wn=lr({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Yf=lr({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${We} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Zf=Ze(Ki.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Qf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Qf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${We} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Jf=Ze("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Rf=Ze(Oi,{width:"100%",background:"inherit"}),zl=Ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${xb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),kQ=Ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),eg=Ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${We} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),tg=Ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),ql=Ze(bb,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),og=Ze("div",{display:"flex",flexWrap:"wrap"}),Ql=Ze("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),ng=Ze("div",{display:"flex"}),ji=Ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${We} &`]:{borderTopColor:"$neutral800"}});import{i18n as Dt}from"@lingui/core";import{ChevronDownIcon as Ib,CloseIcon as Ab,Divider as Zi,IconButton as Nb,NumericTooltip as Bb,QuoteCost as Wb,Typography as xt}from"@rango-dev/ui";import Y,{useState as sg}from"react";import{css as Eb,styled as Xi}from"@rango-dev/ui";var Yi=Xi("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Hl=Xi("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),rg=Xi("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),ig=Xi("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),ag=Eb({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Lb=i(t=>t.fee.isZero()?null:Y.createElement(Yi,null,Y.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(xt,{variant:"label",size:"medium"},"$",D(t.fee,4,4))),"NonPayableFee");function Gl(t){let[e,o]=sg(!1),[n,r]=sg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:m,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?xo():N(),d=zd(h),S=D(c,2,2);return Y.createElement(Y.Fragment,null,Y.createElement(Wb,{onClickFee:m?y=>{y.stopPropagation(),o(!e)}:void 0,fee:S,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:m?Dt.t("View more info"):void 0,tooltipContainer:g}),Y.createElement(J,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:Y.createElement(ig,{style:{textAlign:f?"left":"center"}},Y.createElement(xt,{variant:"title",size:"medium"},Dt.t("Gas & Fee Explanation")),Y.createElement(Nb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement(Ab,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(rg,null,Y.createElement(xt,{variant:"title",size:"small"},Dt.t("Details")),Y.createElement(Zi,{size:10}),Object.entries(d.payable).flatMap(([y,C])=>C.map((T,w)=>{let x=`payable-fee-${w}`,A=zs(T);return Y.createElement(Yi,{key:x},Y.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},Ds(y,Dt.t)),Y.createElement(Bb,{content:T.amount,container:g},Y.createElement(xt,{variant:"label",size:"medium"},D(T.amount,2,2),T.asset.symbol," ($",D(A,4,4),")")))})),Y.createElement(Yi,{className:"total_payable_fee"},Y.createElement(xt,{variant:"label",size:"medium"},Dt.t("Total Payable Fee")),Y.createElement(xt,{variant:"label",size:"medium"},"$",D(c,4,4))),Y.createElement(Hl,null),!!Object.keys(d.nonePayable).length&&Y.createElement(qi,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:Y.createElement("div",{className:ag()},Y.createElement(xt,{size:"small",variant:"body",color:"neutral700"},n?Dt.t("Hide non-payable fees"):Dt.t("Show non-payable fees")),Y.createElement(Zi,{size:4,direction:"horizontal"}),Y.createElement(Ui,{orientation:n?"up":"down"},Y.createElement(Ib,{size:12,color:"gray"}))),open:n},Y.createElement(xt,{size:"small",variant:"title"},Dt.t("Description")),Y.createElement(Zi,{size:4}),Y.createElement(xt,{size:"small",variant:"body",color:"neutral700"},Dt.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),Y.createElement(Zi,{size:10}),Object.entries(d.nonePayable).map(([y,C],T)=>{let w=Ud(C),x=Ds(y,Dt.t),A=`non-payable-fee-${T}`;return Y.createElement(Lb,{key:A,fee:w,label:x})}),Y.createElement(Hl,null)))))}i(Gl,"QuoteCostDetails");import{i18n as pg}from"@lingui/core";import{TokenAmount as ug}from"@rango-dev/ui";import Ji from"react";import{css as Mb,styled as Pb}from"@rango-dev/ui";var lg=Pb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),cg=Mb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function cr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Ji.createElement(lg,null,Ji.createElement(ug,{direction:"horizontal",label:pg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Ji.createElement("div",{className:cg()}),Ji.createElement(ug,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:pg.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(cr,"QuoteSummary");import{i18n as dg}from"@lingui/core";import{ChevronDownIcon as _b,ChevronRightIcon as Db,Divider as Vl,Image as $b,Tooltip as oa,Typography as Ri}from"@rango-dev/ui";import Q from"react";var ea=4,ta=6,pr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return Q.createElement(oa,{container:c,side:"bottom",sideOffset:4,open:r,content:e},Q.createElement(Jf,{className:n,state:a},Q.createElement($b,{src:o,size:16})))},"ImageComponent");function mg(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),p=r.length,u=Bd(r),{isTablet:m,isMobile:f}=fn();return Q.createElement(Zf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},Q.createElement("div",{className:wn()},Q.createElement(Ri,{variant:"body",size:"xsmall"},dg.t("Via:")),Q.createElement(Vl,{direction:"horizontal",size:4}),r.map((h,g)=>{let d=`item-${g}`,S=Q.createElement(zl,null,Q.createElement(Db,{size:12,color:"black"}));return f||m?Q.createElement(Q.Fragment,{key:d},Q.createElement(pr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&Q.createElement(Q.Fragment,null,S)):Q.createElement(Q.Fragment,{key:d},p<=ea||p>ea&&g<ea-1?Q.createElement(Q.Fragment,null,Q.createElement(pr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&Q.createElement(Q.Fragment,null,S)):g===ea-1&&Q.createElement(oa,{container:l,side:"bottom",align:"end",sideOffset:4,content:Q.createElement("div",{className:wn()},S,r.map((y,C)=>{let T=`image-${C}`;return C>=g&&Q.createElement(Q.Fragment,{key:T},Q.createElement(pr,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),C!==p-1&&Q.createElement(Q.Fragment,null,S))}))},Q.createElement(Ql,{state:r.find((y,C)=>C>=g&&(y.state==="error"||y.state==="warning"))?.state},Q.createElement(Ri,{size:"xsmall",variant:"body"},"+",p-g))))})),Q.createElement("div",{className:wn()},Q.createElement("div",{className:"blockchains_section"},Q.createElement("div",{className:wn()},Q.createElement(Ri,{variant:"body",size:"xsmall"},dg.t("Chains:")),Q.createElement(Vl,{direction:"horizontal",size:4}),u.map((h,g)=>Q.createElement(Q.Fragment,{key:h.displayName},u.length<=ta||u.length>ta&&g<ta-1?Q.createElement(oa,{container:l,side:"bottom",content:h.displayName,sideOffset:4},Q.createElement(pr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===ta-1&&Q.createElement(oa,{container:l,side:"bottom",align:"end",sideOffset:4,content:Q.createElement("div",{className:wn()},u.map((d,S)=>S>=g&&Q.createElement(pr,{key:d.displayName,content:"",src:d.image??"",open:!1,className:S>g?"blockchainImage":"",container:c})))},Q.createElement(Ql,{className:"blockchainImage"},Q.createElement(Ri,{size:"xsmall",variant:"body"},"+",u.length-g))))),Q.createElement(Vl,{direction:"horizontal",size:32}))),Q.createElement(zl,{orientation:a?"up":"down"},Q.createElement(_b,{size:12,color:"black"}))))}i(mg,"QuoteTrigger");function jl(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:m=!1,container:f}=t,h=k().blockchains(),{findToken:g}=k(),d=k().swappers(),{customSlippage:S,slippage:y}=k(),C=S||y,[T,w]=Gb(t.expanded),x=Hb(null),A=D(o.value,6,6),I=D(n.value,6,6),E=n.usdValue?D(n.usdValue,4,4):"",v=Vt(o.usdValue,n.usdValue??null),b=D(v,2,2),B=Kt(v??0),P=i((ve,L)=>ve.map((W,H)=>{let j,K=r?.type===3&&r.swap.swapperId===W.swapperId,me=r?.type===4&&!!r.recommendedSlippages?.[H],Qe=a?.type===2&&!!a.recommendedSlippages?.[H],He=K||me,be=Qe;He?j="error":be&&(j="warning");let Wt=He?$o.t("Slippage Error"):$o.t("Slippage Warning");return K&&(Wt=$o.t("Bridge Limit Error")),{swapper:{displayName:Wn(W.swapperId,d)??"",image:W.swapperLogo},from:{token:{displayName:W.from.symbol,image:W.from.logo},chain:{displayName:gt(W.from.blockchain,h)??"",image:W.from.blockchainLogo},price:{value:H===0&&!L?D(o.value,6,6):D(W.fromAmount,6,6),usdValue:D((W.from.usdPrice??0)*parseFloat(W.fromAmount),4,4),realValue:H===0?o.value:W.fromAmount,realUsdValue:new Kl(W.from.usdPrice??0).multipliedBy(W.fromAmount).toString()}},to:{token:{displayName:W.to.symbol,image:W.to.logo},chain:{displayName:gt(W.to.blockchain,h)||"",image:W.to.blockchainLogo},price:{value:D(W.toAmount,6,6),usdValue:D((W.to.usdPrice??0)*parseFloat(W.toAmount),4,4),realValue:W.toAmount,realUsdValue:new Kl(W.to.usdPrice??0).multipliedBy(W.toAmount).toString()}},state:j,alerts:He||be?z.createElement(zf,{dense:m},z.createElement(Fb,{variant:"alarm",type:He?"error":"warning",title:Wt,id:"widget-quote-footer-step-alarm-alert",footer:z.createElement(qf,null,K&&z.createElement("div",null,z.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),z.createElement(vn,{direction:"vertical",size:2}),z.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Yours: {amount} {symbol}",values:{amount:D(W.fromAmount,6,6),symbol:W?.from.symbol}}))),(me||Qe)&&!K&&z.createElement("div",null,z.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[H]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[H]}}})),z.createElement(vn,{direction:"vertical",size:2}),z.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Mn(W.estimatedTimeInSeconds),fee:D(Us(W,g),2,2),internalSwaps:W.internalSwaps?P(W.internalSwaps):void 0}}),"getQuoteSteps"),F=P(e?.swaps??[]),q=F.length,Z=f||N(),V=Ld(t.quote.tags||[]),M=!!u,ee=Yr(e?.swaps),R=Mn(ee),X=bi(e?.swaps??[],g),we=D(X,2,2),se=X.gte(new Kl(wd)),de=ee/bd>=vd,Oe=F[q-1],wt=F[0];return!wt||!Oe?null:m?z.createElement(Ob,{selected:c,fee:we,time:R,tooltipContainer:xo(),steps:F,tags:V,id:"widget-quote-full-expanded-quote-container",quoteCost:z.createElement(Gl,{quote:e,fullExpandedMode:!0,time:R,fee:X,feeWarning:se,timeWarning:de,showModalFee:p,steps:q}),percentageChange:b,warningLevel:B,outputPrice:{value:I,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):z.createElement(Kf,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},z.createElement("div",{className:jf()},!l&&V.length?z.createElement(z.Fragment,null,z.createElement(ng,null,V.map((ve,L)=>{let W=`${ve.value}_${L}`;return z.createElement(z.Fragment,{key:W},z.createElement(zb,{label:ve.label,value:ve.value}),z.createElement(vn,{size:4,direction:"horizontal"}))})),z.createElement(ji,null),!M&&z.createElement(vn,{size:4})):null,z.createElement("div",{id:"portal-root",className:Xf()},z.createElement(Gl,{quote:e,time:R,fee:X,feeWarning:se,timeWarning:de,showModalFee:p,steps:q}),M&&z.createElement(Vf,{onClick:ve=>{ve.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},z.createElement(bn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},$o.t("See All Routes")))),s==="basic"&&z.createElement("div",{className:Yf()},z.createElement(tg,null,z.createElement(Ub,{size:12,color:"gray"})),z.createElement(og,null,z.createElement(ql,{size:"small",variant:"body"},`${A} ${wt.from.token.displayName} = `),z.createElement(fg,{content:n.value,container:Z,open:n.value?void 0:!1},z.createElement(ql,{size:"small",variant:"body"},"\xA0",`${I} ${Oe.to.token.displayName}`))),z.createElement(fg,{content:n.usdValue,container:Z},z.createElement(vn,{size:2,direction:"horizontal"}),z.createElement(bn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&z.createElement(Qb,{id:"widget-quote-token-amount-container",tooltipContainer:Z,type:"output",direction:"vertical",price:{value:I,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:Oe.to.token.displayName,image:Oe.to.token.image},chain:{image:Oe.to.chain.image},percentageChange:b,warningLevel:B}),s==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(cr,{from:wt.from,to:Oe.to,percentageChange:b,warningLevel:B}),z.createElement(vn,{size:4}))),z.createElement(Hf,{selected:c,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:w},z.createElement(mg,{type:s,quoteRef:x,selected:c,setExpanded:w,container:Z,expanded:T,steps:F}),z.createElement(Rf,{open:T},z.createElement(eg,null),z.createElement("div",{className:Gf()},F.map((ve,L)=>{let W=`item-${L}`;return z.createElement(qb,{type:"quote-details",className:"widget-quote-step-details-container",key:W,tooltipContainer:Z,step:ve,hasSeparator:L!==F.length-1,state:ve.state})})))))}i(jl,"Quote");import{Divider as Xb,Skeleton as Yb}from"@rango-dev/ui";import Jt from"react";import{darkTheme as Vb,styled as na}from"@rango-dev/ui";var gg=na("div",{$$color:"$colors$neutral100",[`.${Vb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),hg=na("div",{paddingTop:"$2"}),yg=na("div",{paddingLeft:"$8"}),Sg=na("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Ag,Divider as Et,Skeleton as ut}from"@rango-dev/ui";import G from"react";import{css as Kb,styled as Zt}from"@rango-dev/ui";var Xl=Zt("div",{display:"flex"}),Cg=Zt("div",{padding:"$10 $0 $20"}),kg=Zt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Tg=Zt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),wg=Zt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),vg=Zt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),bg=Zt("div",{width:"65%",display:"flex",justifyContent:"start"}),xg=Zt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Eg=Zt("div",{padding:"$15 $0 $15 $0"}),Ig=Kb({display:"flex",justifyContent:"space-between",alignItems:"center"});function ur(t){let{type:e,tagHidden:o=!0}=t,n=G.createElement(wg,null,G.createElement(bg,null,G.createElement(Ag,{loading:!0,size:"medium"}),G.createElement(Et,{size:8,direction:"horizontal"}),G.createElement(xg,null,G.createElement(ut,{height:10,width:60,variant:"rounded"}),G.createElement(Et,{size:4}),G.createElement(ut,{height:15,variant:"rounded"}))),G.createElement(ut,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return G.createElement("div",null,!o&&G.createElement(G.Fragment,null,G.createElement(Xl,null,G.createElement(ut,{width:65,height:20,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:65,height:20,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:65,height:20,variant:"rounded"})),G.createElement(ji,null),!r&&G.createElement(Et,{size:4})),G.createElement("div",{className:Ig()},G.createElement(Xl,null,G.createElement(ut,{width:60,height:10,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:60,height:10,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:60,height:10,variant:"rounded"})),r&&G.createElement(ut,{width:85,height:24,variant:"rounded"})),e==="basic"&&G.createElement(Cg,null,G.createElement(ut,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(kg,null,G.createElement(Tg,null,G.createElement(Ag,{loading:!0,size:"medium"}),G.createElement(Et,{direction:"horizontal",size:4}),G.createElement(ut,{height:15,width:150,variant:"rounded"})),G.createElement(Et,{size:10}),G.createElement(ut,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(Et,{size:4}),G.createElement(Eg,null,n,G.createElement(vg,null),n),G.createElement(Et,{size:12})))}i(ur,"QuoteSummarySkeleton");import{ChainToken as Mg,Divider as Zl,NextIcon as jb,Skeleton as ra}from"@rango-dev/ui";import Le from"react";import{styled as dr}from"@rango-dev/ui";var Ng=dr("div",{display:"flex",alignItems:"start"}),Bg=dr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Yl=dr("div",{display:"flex",alignItems:"center",flexGrow:1}),Wg=dr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Lg=dr("div",{display:"flex",alignItems:"center"});function $t(t){let{separator:e=!0}=t;return Le.createElement(Le.Fragment,null,Le.createElement(Lg,null,Le.createElement(ra,{height:22,width:22,variant:"circular"}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:15,width:148,variant:"rounded"})),Le.createElement(Ng,null,Le.createElement(Sg,{hideSeparator:!e}),Le.createElement(Bg,{extraSpace:e},Le.createElement(Yl,null,Le.createElement(Mg,{size:"small",loading:!0}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:12,variant:"rounded"})),Le.createElement(Wg,null,Le.createElement(jb,{color:"gray",size:16})),Le.createElement(Yl,null,Le.createElement(Mg,{size:"small",loading:!0}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:12,variant:"rounded"})))))}i($t,"StepSkeleton");function mr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Jt.createElement(gg,{expanded:o,rounded:e!=="basic"},Jt.createElement(ur,{type:e,tagHidden:n}),Jt.createElement(hg,null,Jt.createElement(Yb,{height:15,variant:"rounded"})),o&&Jt.createElement(yg,null,Jt.createElement(Xb,{size:24}),Jt.createElement($t,null),Jt.createElement($t,null),Jt.createElement($t,{separator:!1})))}i(mr,"QuoteSkeleton");function Fo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:m,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:d,inputUsdValue:S}=U(),y=e?.outputAmount?new Zb(e?.outputAmount):null,C=e?St(e):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?ia.createElement(Ul,null,ia.createElement(mr,{tagHidden:c,type:o,expanded:s})):w?ia.createElement(Ul,{onClick:()=>l?.(e),id:m},ia.createElement(jl,{quote:e,error:r,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:h,input:{value:d,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:C?.toString()??""}})):null}i(Fo,"QuoteInfo");import{warn as tx}from"@rango-dev/logging-core";import{calculatePendingSwap as ox}from"@rango-dev/queue-manager-rango-preset";import{useEffect as nx}from"react";import{useRef as Jb,useState as Rb}from"react";var ex=2e3;function aa({request:t}){let[e,o]=Rb(!1),n=Jb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,ex)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(c,{signal:n.current.signal});return n.current=null,p}catch(p){if(l)return await a(c);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(aa,"useFetch");function Pg(){let{fetch:t,loading:e,cancelFetch:o}=aa({request:async(n,r)=>await ct().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Pg,"useFetchConfirmQuote");function sa(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Jl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(sa,"throwErrorIfResponseIsNotValid");function Jl(t){if($d(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=Fd(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=qd(t);if(o){let n=xi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Jl,"getQuoteError");function _g(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=pn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=Gd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(_g,"generateWarnings");function la(t){return t?.code==="ERR_CANCELED"?{type:2}:t.cause?t.cause:t?.code==="ERR_BAD_REQUEST"?{type:0,diagnosisMessage:t.response.data.error}:{type:1,diagnosisMessage:t.message}}i(la,"handleQuoteErrors");function Rl(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=U(),{slippage:l,customSlippage:p}=k(),u=k().getDisabledLiquiditySources(),m=k().blockchains(),f=k().tokens(),{findToken:h}=k(),g=p||l,{fetch:d,cancelFetch:S,loading:y}=Pg();return nx(()=>S,[]),{loading:y,fetch:i(async T=>{let w=T.selectedWallets,x=T?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=w.reduce((E,v)=>(E[v.chain]=v.address,E),{}),I={requestId:a?.requestId||"",selectedWallets:A,destination:x||void 0};try{return await d(I,!0).then(E=>{let{result:v}=E;if(!v)throw new Error(E.error??"Error fetching updated quote");sa({diagnosisMessages:v.diagnosisMessages,requestId:v.requestId,swaps:v.result?.swaps});let b={outputAmount:v.result?.outputAmount,requestId:v.requestId,resultType:v.result?.resultType,swaps:v.result?.swaps||[],validationStatus:v.validationStatus,requestAmount:v.requestAmount};r(b);let B={slippage:g.toString(),disabledSwappersGroups:u},P=_g({previousQuote:a??void 0,currentQuote:b,meta:{blockchains:m},selectedWallets:w,userSlippage:g,inputUsdValue:n,findToken:h});c();let F=!!P.balance,q=ox(o.toString(),v,Hd(w),B,!F,{blockchains:m,tokens:f});return{quote:b,swap:q,error:null,warnings:P}})}catch(E){let v=la(E);return v.type!==2&&tx(new Error("confirm swap error"),{tags:{...v,type:Xe[v.type],initialQuote:a,requestBody:I}}),{swap:null,error:v,warnings:null}}},"fetch"),cancelFetch:S}}i(Rl,"useConfirmSwap");var mx=sx("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Dg}`]:{width:"$48",height:"$48"}}),fx=oc({flexGrow:1,paddingRight:"$10"}),gx=oc({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),hx=oc({display:"flex",justifyContent:"space-between",alignItems:"center"});function $g(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=U(),s=dx(),[c,l]=fr(""),p=!n,[u,m]=fr(!1),[f,h]=fr(!1),{isActiveTab:g}=te(),d=k().getDisabledLiquiditySources(),S=ux(d),{manager:y}=rx(),{fetch:C,loading:T,cancelFetch:w}=Rl(),[x,A]=fr({swap:null,error:null,warnings:null}),[I,E]=fr(!1),v=i(async({selectedWallets:M,customDestination:ee})=>{let R=await C?.({selectedWallets:M,customDestination:ee});return A(R),R},"onConfirmSwap"),b=i(async()=>{if(x.swap&&n)try{await y?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let M=`../${O.swaps}/${x.swap.requestId}`;s(M,{replace:!0}),setTimeout(()=>{e("")},0)}catch(M){l("Error: "+M?.message)}},"addNewSwap"),B=i(async()=>{h(!0),await b(),h(!1)},"onConfirm"),P=i(async()=>{x.warnings?.quote&&Nd(x.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),F=i(async()=>{A({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(M=>{A(M)}).catch(M=>console.error(M))},"onRefresh");ca(()=>{!!S.current.length&&!d.length&&F(),S.current=d},[d.length]),ca(()=>{p&&w()},[p]),ca(()=>{p&&m(p)},[p]),ca(()=>{p||C({selectedWallets:o,customDestination:r}).then(M=>A(M)).catch(M=>console.error(M))},[]),px(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=x.warnings?.quote??null,Z=x.error,V=[];if(c&&V.push(Fe.createElement(ix,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||Z){let M=`../${O.settings}`;V.push(Fe.createElement(sr,{warning:q,error:Z,couldChangeSettings:!1,refetchQuote:F,skipAlerts:Z?.type===4||q?.type===2,showWarningModal:I,confirmationDisabled:!g,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await b()},onChangeSettings:()=>s(M)}))}return Fe.createElement(re,{header:{title:ec.t("Confirm Swap"),onWallet:()=>{let M=`../${O.wallets}`;s(M)}},footer:Fe.createElement(mx,null,Fe.createElement("div",{className:fx()},Fe.createElement(ax,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||f,disabled:!!x.error||!g,onClick:P},ec.t("Start Swap"))),Fe.createElement(Dg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||f,disabled:!g,onClick:m.bind(null,!0)},Fe.createElement(cx,{size:24})))},u&&Fe.createElement(Tf,{open:u,onClose:()=>m(!1),onCancel:w,loading:T,onCheckBalance:v}),Fe.createElement(ie,null,Fe.createElement("div",{className:hx()},Fe.createElement(lx,{variant:"title",size:"small"},ec.t("You get")),Fe.createElement("div",{className:gx()},Fe.createElement(Li,{onClick:!T&&!u&&!I?F:void 0}))),Fe.createElement(tc,{size:"12"}),ym(V.map((M,ee)=>({element:M,key:`alert-${ee}`})),Fe.createElement(tc,{size:10})),V.length>0?Fe.createElement(tc,{size:10}):null,Fe.createElement(Fo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:x.error,loading:T,warning:x.warnings?.quote??null})))}i($g,"ConfirmSwapPage");import{i18n as eo}from"@lingui/core";import{Button as fc,CustomTokensZeroStateDarkIcon as Dx,CustomTokensZeroStateIcon as $x,DeleteIcon as Fx,Divider as Cr,IconButton as Ox,MessageBox as Ux,NotFound as zx,styled as hc}from"@rango-dev/ui";import fe,{useState as gc}from"react";import{useNavigate as qx}from"react-router-dom";import{CloseIcon as yx,IconButton as Sx,SearchIcon as Cx,TextField as kx}from"@rango-dev/ui";import xn from"react";import{styled as Fg}from"@rango-dev/ui";var Og=Fg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),Ug=Fg("div",{width:"100%","& ._text-field":{paddingLeft:"$10","& input":{paddingLeft:"$2",paddingTop:"$12",paddingBottom:"$12"}}});function It(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...m}=t,f=s.length?xn.createElement(Sx,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},xn.createElement(yx,{color:"gray",size:10})):null;return p&&(f=p),xn.createElement(Ug,null,xn.createElement(kx,{prefix:xn.createElement(Og,null,xn.createElement(Cx,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...m}))}i(It,"SearchInput");import{i18n as mc}from"@lingui/core";import{Button as bx,CustomTokenWarning as xx,darkTheme as Jg,Divider as Rt,ExternalLinkIcon as Ex,Image as Ix,ListItem as Ax,NotFound as Nx,PinIcon as Bx,Skeleton as Oo,Typography as yr,VirtualizedList as Wx}from"@rango-dev/ui";import _,{useState as Lx}from"react";import{useTranslation as Mx}from"react-i18next";import{Divider as Yg,ListItem as vx,Skeleton as hr}from"@rango-dev/ui";import At from"react";import{css as En,darkTheme as nc,ImageContainer as Tx,ListItemButton as wx,styled as it,Typography as zg}from"@rango-dev/ui";var rc=En({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),ic=En({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ac=En({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),sc=En({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${nc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),lc=En({}),cc=En(),qg=it("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),pc=it("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),pa=it("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${ic}`]:{[`& .${sc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${lc}`]:{bottom:"-15px"},[`& .${rc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ac}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Qg=it(wx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),uc=it("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),dc=it(zg,{}),Hg=it("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${cc}`]:{$$color:"$colors$neutral600",[`.${nc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),gr=it("div",{display:"flex",alignItems:"end",flexDirection:"column"}),fV=it("div",{display:"flex",alignItems:"center"}),Gg=it("div",{position:"relative",[`& ${Tx}`]:{borderRadius:"$xm",overflow:"hidden"}}),Vg=it("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Kg=it(zg,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),jg=it("a",{"& svg:hover":{color:"$colors$info"}}),Xg=it("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${nc} &`]:{color:"$foreground"}}}});function Zg(t){return At.createElement(pa,null,Array.from(Array(t.size),e=>At.createElement(vx,{key:e,hasDivider:!0,start:At.createElement(hr,{variant:"circular",width:35,height:35}),end:At.createElement(gr,null,At.createElement(hr,{variant:"text",size:"large",width:70}),At.createElement(Yg,{size:4}),At.createElement(hr,{variant:"text",size:"medium",width:50})),title:At.createElement("div",null,At.createElement(hr,{variant:"text",size:"large",width:90}),At.createElement(Yg,{size:4}),At.createElement(hr,{variant:"text",size:"medium",width:90}))})))}i(Zg,"LoadingTokenList");var Px=20,_x=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return _.createElement("div",{className:ic()},o?_.createElement("div",{className:rc()},o):_.createElement(pc,{className:ac()},_.createElement(yr,{variant:"title",size:"xmedium"},r.symbol),_.createElement(Rt,{direction:"horizontal",size:4}),_.createElement(uc,{css:a},_.createElement(dc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&_.createElement("div",{className:`${sc()} ${!o&&lc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",_.createElement(Rt,{size:4,direction:"horizontal"}),_.createElement(jg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},_.createElement(Ex,{size:12}))))},"renderDesc");function Sr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=k().fetchStatus,u=k().blockchains(),{getBalanceFor:m,fetchingWallets:f}=k(),{isTokenPinned:h}=k(),{setFromToken:g,setToToken:d}=U(),{t:S}=Mx(),y=Ke(),[C,T]=Lx(null),w=i(()=>{c==="source"?g({token:C,meta:{blockchains:u}}):d({token:C,meta:{blockchains:u}})},"updateToken"),x=i(()=>{w(),y()},"handleImportToken"),A=i(v=>{if(v.customToken){let{customToken:B,...P}=v;return _.createElement(bx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),T({...P,warning:!0})},"handleClick")},_.createElement(yr,{variant:"body",size:"xsmall",color:"background"},S("import")))}let b=ei(m(v));return s?s(v):f?_.createElement(gr,null,_.createElement(Oo,{variant:"text",size:"large",width:70}),_.createElement(Rt,{size:4}),_.createElement(Oo,{variant:"text",size:"medium",width:50})):b&&_.createElement(Hg,null,_.createElement(Kg,{variant:"title",size:"small"},b.amount),_.createElement("div",null),b.usdValue&&_.createElement(yr,{variant:"body",className:cc(),size:"xsmall"},`$${b.usdValue}`))},"endRenderer"),I=i(()=>_.createElement(Wx,{itemContent:v=>{let b=e[v];if(b==="skeleton")return _.createElement(Ax,{hasDivider:!0,start:_.createElement(Oo,{variant:"circular",width:35,height:35}),end:_.createElement(gr,null,_.createElement(Oo,{variant:"text",size:"large",width:70}),_.createElement(Rt,{size:4}),_.createElement(Oo,{variant:"text",size:"medium",width:50})),title:_.createElement("div",null,_.createElement(Oo,{variant:"text",size:"large",width:90}),_.createElement(Rt,{size:4}),_.createElement(Oo,{variant:"text",size:"medium",width:90}))});let B=u.find(M=>M.name===b?.blockchain);if(!B||!b)return null;let P=b.address,F=nl(B.color,"main"),q={$$color:F.main150,[`.${Jg} &`]:{$$color:F.main750},backgroundColor:"$$color"},Z={$$color:F.main750,[`.${Jg} &`]:{$$color:F.main150},color:"$$color"},V=i(()=>{typeof b!="string"&&!b.customToken&&n?.(b)},"handleClick");return _.createElement(Xg,null,_.createElement(Qg,{"tab-index":v,key:`${b.symbol}${P}`,id:`${b.symbol}${P}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:b?.customToken,onClick:V,start:_.createElement(Gg,null,_.createElement(Ix,{src:b.image===""?Hr:b.image,size:30}),t.type!=="custom-token"&&b&&h(b,t.type)&&_.createElement(Vg,null,_.createElement(Bx,{size:12,color:"gray"}))),title:B.type==="COSMOS"||b.name||!b.name&&!P?_.createElement(pc,null,_.createElement(yr,{variant:"title",size:"xmedium"},b.symbol),_.createElement(Rt,{direction:"horizontal",size:4}),_.createElement(uc,{css:q},_.createElement(dc,{variant:"body",size:"xsmall",css:Z},b.blockchain)),l&&b.warning&&_.createElement(_.Fragment,null,_.createElement(Rt,{direction:"horizontal",size:4}),_.createElement(xx,{container:N()}))):void 0,description:typeof b!="string"&&B.info&&P&&B.type!=="COSMOS"?_x({address:P,token:b,customCssForTag:q,customCssForTagTitle:Z,name:b.name,url:B.info.addressUrl.split("{wallet}").join(P)}):b.name||void 0,end:A(b)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=C?vo(C?.blockchain,u):null;return _.createElement(_.Fragment,null,a&&_.createElement(_.Fragment,null,_.createElement(yr,{variant:"label",size:"large"},mc.t("Select Token")),_.createElement(Rt,{size:4})),_.createElement(qg,null,_.createElement(Rt,{size:4}),p==="loading"&&_.createElement(Zg,{size:Px}),p==="success"&&(e.length?_.createElement(_.Fragment,null,_.createElement(Jn,{token:C,address:C?.address??"",blockchain:E??void 0,onImport:x,onExitErrorModal:()=>T(null),onExitImportModal:()=>T(null)}),_.createElement(pa,{as:"ul"},I())):!!o&&_.createElement(Nx,{title:mc.t("No results found"),description:mc.t("Try using different keywords")}))))}i(Sr,"TokenList");var Qx=hc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Hx=hc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Gx=hc(Ox,{"&:hover":{"& svg":{color:"$secondary550"}}});function Rg(){let[t,e]=gc(""),{deleteCustomToken:o}=k(),n=k().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=U(),{mode:l}=lo({}),p=qx(),[u,m]=gc(!1),[f,h]=gc(),g=i(C=>{let T=C.target.value;e(T)},"handleSearch"),d=l==="dark",S=n.filter(C=>st(C.symbol,t)||st(C.address||"",t)||st(C.name||"",t)),y=i(()=>{if(f){let C=a?ht(a):null,T=r?ht(r):null,w=ht(f);C===w?c({token:null}):T===w&&s({token:null}),o(f)}m(!1)},"handleDeleteCustomToken");return fe.createElement(re,{header:{title:eo.t("Custom Tokens")}},fe.createElement(ie,null,fe.createElement(Qx,null,n.length?fe.createElement(fe.Fragment,null,fe.createElement(It,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:eo.t("Search Token"),onChange:g}),fe.createElement(Cr,{size:16}),fe.createElement(Sr,{list:S,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>fe.createElement(Gx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{m(!0),h(C)}},fe.createElement(Fx,{size:12,color:"gray"}))})):fe.createElement(Hx,null,fe.createElement(zx,{icon:d?fe.createElement(Dx,{size:200}):fe.createElement($x,{size:200}),title:eo.t("No custom tokens"),description:eo.t("press the button to add your custom token")})),fe.createElement(Cr,{size:20}),fe.createElement(fc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(O.addCustomTokens)},eo.t("Add Custom Token"))),fe.createElement(J,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>m(!1),container:N()},fe.createElement(Ux,{title:eo.t("Delete Custom Token"),type:"error",description:eo.t("Are you sure you want to Delete this Token?")},fe.createElement(Cr,{size:40}),fe.createElement(Cr,{size:10}),fe.createElement(fc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},eo.t("Yes, Delete it")),fe.createElement(Cr,{size:12}),fe.createElement(fc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},eo.t("No, Continue"))))))}i(Rg,"CustomTokensPage");import{i18n as Re}from"@lingui/core";import{useManager as uE}from"@rango-dev/queue-manager-react";import{Button as vc,darkTheme as dE,Divider as zo,MessageBox as mE,NotFound as fE,styled as bc,Typography as ma}from"@rango-dev/ui";import{TransactionStatus as wr}from"rango-types";import ae,{useMemo as Sh,useState as fa}from"react";import{useNavigate as gE}from"react-router-dom";import{FilterIcon as Jx,Popover as Rx}from"@rango-dev/ui";import Uo from"react";import{css as Vx,darkTheme as ua,IconButton as Kx,styled as kr}from"@rango-dev/ui";var yc=kr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ua} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),eh=kr(Kx,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ua} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ua} &`]:{backgroundColor:"$neutral"},[`& ${yc}::before`]:{backgroundColor:"$secondary100",[`.${ua} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),th=kr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),oh=kr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),nh=Vx({display:"flex",justifyContent:"space-between",alignItems:"center"}),rh=kr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as ih}from"@lingui/core";import{Button as jx,Divider as ah,ListItemButton as Xx,Radio as Yx,RadioRoot as Zx,Typography as sh}from"@rango-dev/ui";import dt from"react";function lh(t){let{filterBy:e,onClickItem:o}=t;return dt.createElement(oh,null,dt.createElement("div",{className:nh()},dt.createElement(sh,{size:"small",variant:"body"},ih.t("Status")),dt.createElement(jx,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},ih.t("Reset"))),dt.createElement(ah,{size:10}),dt.createElement(Zx,{value:e},dt.createElement(rh,null,t.list.map((n,r)=>dt.createElement(Xx,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:dt.createElement(dt.Fragment,null,dt.createElement(ah,{direction:"horizontal",size:4}),dt.createElement(sh,{size:"medium",variant:"body"},n.title)),start:dt.createElement(Yx,{value:n.id}),onClick:o})))))}i(lh,"FilterSelectorContent");function Sc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Uo.createElement("div",null,Uo.createElement(Rx,{open:a,align:"end",onOpenChange:o,container:N(),content:Uo.createElement(lh,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Uo.createElement(eh,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Uo.createElement(yc,{isSelect:!!n},Uo.createElement(Jx,{size:16,color:"black"}),!!n&&Uo.createElement(th,null)))))}i(Sc,"FilterSelector");import{i18n as oE}from"@lingui/core";import{getCurrentStep as nE}from"@rango-dev/queue-manager-rango-preset";import{Divider as mh,GroupedVirtualizedList as rE,Skeleton as iE,SwapListItem as fh,Typography as aE}from"@rango-dev/ui";import Je,{useCallback as gh,useEffect as sE,useRef as lE,useState as cE}from"react";function ch(t,e){let o=[],n=0;do{let r=t[n];r&&(o.push(Math.min(r,e)),e-=r),n++}while(e>0&&n<=t.length);return o}i(ch,"calculateGroupsSoFar");import{css as eE,darkTheme as tE,styled as Tr}from"@rango-dev/ui";var Cc=eE(),ph=Tr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),kc=Tr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Cc}`]:{$$color:"$colors$neutral600",[`.${tE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Tc=Tr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),uh=Tr("div",{gap:"$10",display:"flex",flexDirection:"column"}),dh=Tr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var pE=10;function wc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=cE([]),c=lE(0),{swaps:l,groupCounts:p,groups:u}=n(e),m=gh(ch,[]),f=gh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,pE),s(m(p,c.current)))},[e.length]);if(sE(()=>{r||f()},[r,f]),r){let h=[1,2];return Je.createElement(Je.Fragment,null,[h,h].map((d,S)=>Je.createElement(kc,{key:S},Je.createElement(Tc,null,Je.createElement(iE,{variant:"text",width:60,size:"small"}),Je.createElement(mh,{size:16})),Je.createElement(mh,{size:4}),Je.createElement(uh,null,d.map((C,T)=>Je.createElement(fh,{isLoading:!0,key:T}))))))}return Je.createElement(rE,{endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>Je.createElement(kc,null,Je.createElement(Tc,null,Je.createElement(aE,{variant:"label",size:"medium",className:Cc()},u[h]))),itemContent:(h,g)=>{let d=l[h];if(!d)return null;let S=nE(d),y=d.steps[0],C=d.steps[d.steps.length-1];return!y||!C?null:Je.createElement(ph,{key:d.requestId},Je.createElement(fh,{className:"widget-history-group-list-swap-item-btn",requestId:d.requestId,creationTime:d.creationTime,status:d.status,onClick:o,currentStep:S,tooltipContainer:N(),onlyShowTime:u[g]===oE.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:D(d.inputAmount,6,6),realAmount:d.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:D(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(wc,"HistoryGroupedList");import{i18n as da}from"@lingui/core";import hh from"dayjs";var yh=i(t=>{let e=new Map([["today",{title:da.t("Today"),swaps:[]}],["week",{title:da.t("This week"),swaps:[]}],["month",{title:da.t("This month"),swaps:[]}],["year",{title:da.t("This year"),swaps:[]}]]);function o(l,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}i(o,"addYearsToOutput");let n=hh();t.forEach(l=>{let p=Number(l.creationTime),u=hh(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(l);else{let m=new Date(p).getFullYear().toString();o(m,l)}});let r=Array.from(e.values()).filter(l=>l.swaps.length>0),a=r.flatMap(l=>l.swaps),s=r.map(l=>l.swaps.length),c=r.map(l=>l.title);return{swaps:a,groupCounts:s,groups:c}},"groupSwapsByDate");var hE=bc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),yE=bc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),SE=bc("div",{"._typography":{color:"$neutral700",[`.${dE}&`]:{color:"$neutral900"}}}),CE=[{id:wr.SUCCESS,title:Re.t("Complete")},{id:wr.RUNNING,title:Re.t("Running")},{id:wr.FAILED,title:Re.t("Failed")}],kE=i((t,e)=>t?.length?t.filter(o=>Mt(o.fromBlockchain,e)||Mt(o.toBlockchain,e)||Mt(o.toSymbol,e)||Mt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Ch(){let t=gE(),{manager:e,state:o}=uE(),n=kt(e).map(({swap:T})=>T),[r,a]=fa(""),[s,c]=fa(!1),l=!o.loadedFromPersistor,[p,u]=fa(""),[m,f]=fa(!1),h=i(T=>{let w=T.target.value;a(w)},"handleSearch"),g=Sh(()=>!r&&!p?n:n.filter(T=>{let{inputAmount:w,status:x,steps:A,requestId:I}=T;return(!r||Mt(w,r)||Mt(x,r)||kE(A,r)||Mt(I,r))&&(!p||p===x)}),[n,r,p]),d=!g?.length&&!l,S=i(()=>f(!1),"onCloseModal"),y=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(T){console.log(T)}},"onClear"),C=Sh(()=>!n.some(T=>T.status===wr.SUCCESS||T.status===wr.FAILED),[n]);return ae.createElement(re,{header:{title:Re.t("History"),suffix:ae.createElement(co,null,ae.createElement(vc,{id:"widget-history-clear-btn",disabled:C,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},ae.createElement(ma,{size:"medium",variant:"label",color:"error"},Re.t("Clear"))))}},ae.createElement(ie,null,ae.createElement(yE,null,ae.createElement(It,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Re.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:h,style:{height:36},value:r}),ae.createElement(zo,{size:10,direction:"horizontal"}),ae.createElement(Sc,{filterBy:p,open:s,onOpenChange:T=>c(T),onClickItem:T=>u(T),list:CE})),ae.createElement(zo,{size:"16"}),ae.createElement(hE,null,d&&ae.createElement(dh,null,ae.createElement(zo,{size:32}),ae.createElement(fE,{title:r?Re.t("No results found"):Re.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Re.t("Try using different keywords"):Re.t("Your transaction history is stored locally and will appear here after you start a swap")})),!d&&ae.createElement(wc,{list:g,onSwapClick:t,groupBy:yh,isLoading:l}))),ae.createElement(J,{open:m,onClose:S,id:"widget-history-clear-modal",container:N()},ae.createElement(zo,{size:20}),ae.createElement(mE,{type:"warning",title:Re.t("Clear Transaction History"),description:ae.createElement(SE,null,ae.createElement(ma,{variant:"body",size:"medium"},Re.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ae.createElement(zo,{size:"24"}),ae.createElement(ma,{variant:"body",size:"small"},Re.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ae.createElement(zo,{size:30}),ae.createElement(vc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},Re.t("Yes, Clear the history")),ae.createElement(zo,{size:10}),ae.createElement(vc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:S},ae.createElement(ma,{variant:"title",size:"medium",color:"primary"},Re.t("No, Cancel")))))}i(Ch,"HistoryPage");import{i18n as oI}from"@lingui/core";import{Button as nI,Divider as Fc,styled as rI,WarningIcon as iI}from"@rango-dev/ui";import aI from"bignumber.js";import he,{useEffect as Xh,useState as Yh}from"react";import{useNavigate as sI}from"react-router-dom";import{i18n as Th}from"@lingui/core";import{Alert as wE,Divider as xc,NoRouteIcon as vE,Typography as bE}from"@rango-dev/ui";import qo from"react";import{styled as TE}from"@rango-dev/ui";var kh=TE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Ec(){let{fromToken:t,toToken:e}=U();return!!t&&!!e&&qt(t,e)?qo.createElement(kh,null,qo.createElement(xc,{size:10}),qo.createElement(vE,{size:24,color:"gray"}),qo.createElement(xc,{size:4}),qo.createElement(bE,{variant:"title",size:"small"},Th.t("No Routes Found")),qo.createElement(xc,{size:4}),qo.createElement(wE,{title:Th.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Ec,"SameTokensWarning");import{Alert as xE,Button as EE}from"@rango-dev/ui";import vh from"react";import{i18n as ga}from"@lingui/core";function wh(t){let e=null;return t===ri?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ga.t("Reset"),title:ga.t("Slippage cannot be set lower than 0.01%.")},e):t>Zo?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ga.t("Change"),title:ga.t("Caution, your slippage is high!")},e):null}i(wh,"makeAlerts");function bh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=k(),{onChangeSettings:a}=t,c=wh(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(ni),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?vh.createElement(xE,{title:c.title,type:c.alertType,variant:"alarm",action:vh.createElement(EE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(bh,"SlippageWarningsAndErrors");import{i18n as WE}from"@lingui/core";import{IconButton as LE,ReverseIcon as ME,Skeleton as PE,Tooltip as _E,Typography as vr}from"@rango-dev/ui";import mt from"react";import ha from"bignumber.js";function Eh(t){let{error:e,isDarkTheme:o,warning:n}=t,{quoteError:r,slippageError:a}=e,{quoteWarning:s,slippageWarning:c}=n,l=!!a||r?.type===4,p=!!c||s?.type===2;return l?"$error500":p?"$warning500":o?"$neutral600":"$neutral700"}i(Eh,"getSlippageColor");function Ih(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new ha(e),r=new ha(o),a=n.dividedBy(r),s;return a.isLessThan(1)?s=a.toFixed(14).replace(/\.?0+$/,""):a.toFixed(0).length>10?s=a.toFixed(0).slice(0,10):s=a.toFixed(2),{displayValue:s,rawValue:a.toFixed()}}i(Ih,"getUsdExchangeRate");function Ah(t,e){let o=new ha(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,ha.ROUND_DOWN).toFormat(2)}`}i(Ah,"formatTokenValueInUsd");import{darkTheme as NE,styled as Ac,Typography as BE}from"@rango-dev/ui";var Nh=Ac("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),Bh=Ac("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${NE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Nc=Ac(BE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Bc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=k(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,m=o!==null?o:e,{mode:f}=lo({}),h=en(m),g=f==="dark",d=n==="default",S={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},C=p?.swaps[0]?.from||c,T=p?.swaps[p?.swaps.length-1]?.to||l,w=d?C:T,x=d?T:C,A=Number(d?p?.outputAmount:p?.requestAmount),I=Number(d?p?.requestAmount:p?.outputAmount),E=A||w.usdPrice,v=I||x.usdPrice,{rawValue:b,displayValue:B}=Ih({toTokenUsdPrice:v,fromTokenUsdPrice:E});return mt.createElement(Nh,null,mt.createElement(vr,{variant:S||y?"label":"body",size:S||y?"medium":"small",color:Eh({error:S,warning:y,isDarkTheme:g})},WE.t("Slippage:")," ",m,"%"),u?mt.createElement(PE,{height:16,width:104,variant:"rounded"}):E&&v&&mt.createElement(Bh,null,mt.createElement(vr,{className:"rate-text",variant:"body",size:"small"},"1"),mt.createElement(Nc,{className:"rate-text",variant:"body",size:"small"},x.symbol),mt.createElement(LE,{id:"widget-home-page-change-rate-button",onClick:r},mt.createElement(ME,{size:14,color:"secondary"})),mt.createElement(_E,{container:N(),side:"top",sideOffset:4,content:mt.createElement(vr,{className:"rate-text",variant:"body",size:"small"},b)},mt.createElement(vr,{className:"rate-text",variant:"body",size:"small"},B)),mt.createElement(Nc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&&mt.createElement(vr,{color:"neutral600",variant:"body",size:"small"},"~",Ah(Number(b),w.usdPrice))))}i(Bc,"SwapMetrics");import{i18n as zE}from"@lingui/core";import{Header as qE}from"@rango-dev/ui";import ho,{useEffect as QE,useState as HE}from"react";import{i18n as $E}from"@lingui/core";import{Divider as Lc,FullExpandedQuote as FE,Typography as OE}from"@rango-dev/ui";import Te from"react";import{styled as Wc}from"@rango-dev/ui";var Wh=Wc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Lh=Wc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Mh=Wc("div",{width:"146px"});import{i18n as br}from"@lingui/core";import{Select as DE}from"@rango-dev/ui";import Ph from"react";function ya(t){let{updateQuotePartialState:e,sortStrategy:o}=U(),n=[{value:"SMART",label:br.t("Smart Routing")},{value:"FEE",label:br.t("Lowest Fee")},{value:"SPEED",label:br.t("Fastest Transfer")},{value:"NET_OUTPUT",label:br.t("Maximum Return")},{value:"PRICE",label:br.t("Maximum Output")}];return Ph.createElement(Mh,null,Ph.createElement(DE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ya,"SelectStrategy");var _h=3;function xr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:m,toToken:f,sortStrategy:h,error:g}=U(),{slippage:d,customSlippage:S}=k(),{findToken:y}=k(),C=c||N(),T=!!p&&p.results.length,w=S??d,x=i(E=>{if(!m||!f||!p)return null;let v={requestAmount:p.requestAmount,validationStatus:null,...E};return pn({currentQuote:v,userSlippage:w,findToken:y})},"getQuoteWarning"),A=g?.type===0||g?.type===1,I=p?.results?vi(h,p?.results):[];return Te.createElement(Te.Fragment,null,a&&Te.createElement(Te.Fragment,null,Te.createElement(Lh,null,Te.createElement(OE,{size:"xmedium",variant:"title"},$E.t("Sort by")),Te.createElement(ya,{container:C})),Te.createElement(Lc,{size:"10"})),e&&Array.from({length:_h},(E,v)=>Te.createElement(Te.Fragment,{key:v},s?Te.createElement(FE,{loading:!0}):Te.createElement(mr,{tagHidden:!1,type:"list-item",expanded:!1}),v!==_h-1&&Te.createElement(Lc,{size:16}))),!e&&Te.createElement(Te.Fragment,null,T?I.map((E,v)=>{let b=x(E),B=Jl(E.swaps),P=I.length-1===v;return Te.createElement(Te.Fragment,{key:E.requestId},Te.createElement(Fo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:C,selected:l?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:b,fullExpandedMode:s,onClick:F=>{B||u("warning",b),u("error",B?.options||null),o(F)},type:"list-item"}),!P&&Te.createElement(Lc,{size:16}))}):A&&Te.createElement(Wh,null,Te.createElement(rr,{size:s?"large":"small",error:g,fetch:n}))))}i(xr,"Quotes");import{darkTheme as UE,styled as Dh}from"@rango-dev/ui";var $h=Dh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${UE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Fh=Dh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var GE=100;function Mc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=HE(!1),l=s?"":"is-hidden",{config:p}=k(),u=p?.variant==="full-expanded",m=xo();return QE(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},GE):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),ho.createElement($h,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Di()} widget-expanded-quotes-container`,id:tt.EXPANDED_BOX_ID},ho.createElement(qE,{title:zE.t("Routes"),suffix:ho.createElement(ho.Fragment,null,ho.createElement(ya,{container:m}),ho.createElement(_o,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),ho.createElement(Fh,null,ho.createElement(xr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:xo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Mc,"ExpandedQuotes");import{i18n as Gh}from"@lingui/core";import{SwapInput as Vh}from"@rango-dev/ui";import XE from"bignumber.js";import Er from"react";import{ReverseIcon as jE}from"@rango-dev/ui";import _c from"react";import{keyframes as VE,styled as Oh}from"@rango-dev/ui";var Pc=450,KE=VE({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Uh=Oh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),zh=Oh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${KE} ${Pc}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function Dc(){let t=U.use.switchFromAndTo();return _c.createElement(Uh,null,_c.createElement(zh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Pc),t()}},_c.createElement(jE,{size:12})))}i(Dc,"SwitchFromAndToButton");import{styled as qh}from"@rango-dev/ui";var Qh=qh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Hh=qh("div",{position:"relative"});function $c(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:m,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:d}=U(),{connectedWallets:S,getBalanceFor:y}=k(),C=a?y(a):null,T=ei(C)?.amount??"0",w=C?new XE(C.amount).shiftedBy(-C.decimals):le,x=!!s&&yu(S,s.name),A=!Os(d,m,f),I=!Os(d,m,g),E=!f||!g||!g.gt(0)?null:Vt(f.toString(),g.toString());return Er.createElement(Qh,null,Er.createElement(Hh,null,Er.createElement(Vh,{label:Gh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:m,usdValue:A?void 0:D(f,4,4),realUsdValue:A?void 0:f?.toString(),error:A?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:N(),onSelectMaxBalance:()=>{let v=D(w,C?.decimals),b=C?.amount?v.split(",").join(""):"";p(b)},anyWalletConnected:S.length>0}),Er.createElement(Dc,null)),Er.createElement(Vh,{sharpBottomStyle:!r&&(!!d||e),label:Gh.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:D(Vt(f,g),2,2),warningLevel:Kt(E??0),price:{value:D(h,6,6),usdValue:I?void 0:D(g,4,4),realValue:h?.toString(),realUsdValue:I?void 0:g?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i($c,"Inputs");import{warn as YE}from"@rango-dev/logging-core";import{useCallback as ZE,useEffect as JE,useRef as RE,useState as eI}from"react";function Kh(){let{fetch:t,loading:e,cancelFetch:o}=aa({request:async(n,r)=>await ct().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Kh,"useFetchAllQuotes");var tI=600;function Sa({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Kh(),{excludeLiquiditySources:n,routing:r}=k().config,{connectedWallets:a}=k(),c=a.some(se=>se.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:m,selectedQuote:f,sortStrategy:h,resetQuote:g,error:d,warning:S,setSelectedQuote:y,updateQuotePartialState:C}=U(),{slippage:T,customSlippage:w,affiliatePercent:x,affiliateRef:A,affiliateWallets:I,fetchStatus:E}=k(),v=k().getLiquiditySources(),b=k().getDisabledLiquiditySources(),B=k().excludeLiquiditySources(),{findToken:P}=k(),[F,q]=eI(!0),Z=RE(u),V=w??T,ee=!l||!p||qt(l,p)||!Pn(u),R=i(se=>{q(se)},"resetState"),X=i(se=>{let{fromToken:de,toToken:Oe,inputAmount:wt,liquiditySources:ve,excludeLiquiditySources:L,disabledLiquiditySources:W,slippage:H,affiliateRef:j,affiliatePercent:K,affiliateWallets:me}=se;if(F||R(!0),!ee&&de&&Oe){g();let Qe=Qd({fromToken:de,toToken:Oe,inputAmount:wt,liquiditySources:ve,excludeLiquiditySources:L,disabledLiquiditySources:W,wallets:a,slippage:H,affiliateRef:j,affiliatePercent:K,affiliateWallets:me,contractCall:c});Ro("experimental",r)&&(Qe.experimental=!0),Ro("avoidNativeFee",r)&&(Qe.avoidNativeFee=!0),Ro("enableCentralizedSwappers",r)&&(Qe.enableCentralizedSwappers=!0),r?.maxLength&&(Qe.maxLength=r.maxLength),e(Qe).then(He=>{let be=vi(h,He.results),Wt=Wd(f,be,He.requestAmount);q(!1),C("quotes",He),y(Wt),sa({diagnosisMessages:He.diagnosisMessages,requestId:Wt?.requestId||"",swaps:Wt?.swaps});let Va=Wt&&pn({currentQuote:Wt,userSlippage:V,findToken:P});C("warning",Va)}).catch(He=>{let be=la(He);(be.type===0||be.type===1)&&g(),be.type!==2&&(C("error",be),q(!1),YE(new Error("quote error"),{tags:{...be,type:Xe[be.type],requestBody:Qe}}))})}},"fetch"),we=ZE(Kr(se=>{X(se)},tI),[ee]);return JE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(ee){q(!1),(f||d||S)&&g();return}if(!Pn(u)&&m?.eq(0)){R(!1),o();return}g(),R(!0);let se=X;return Z.current&&Z.current!=u&&(se=we),Z.current=u,se({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:B,disabledLiquiditySources:b,slippage:V,affiliateRef:A,affiliatePercent:x,affiliateWallets:I,contractCall:c}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,ee,v?.length,n,b.length,V,A,x,c,JSON.stringify(I)]),{fetch:()=>X({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:B,disabledLiquiditySources:b,slippage:V,affiliateRef:A,affiliatePercent:x,affiliateWallets:I,contractCall:c}),loading:F}}i(Sa,"useSwapInput");function jh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Ce.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(jh,"emitPreventableEvent");var lI=rI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),cI=300;function Zh(){let t=sI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=U(),[h,g]=Yh(!1),{isLargeScreen:d,isExtraLargeScreen:S}=fn(),{fetch:y,loading:C}=Sa({refetchQuote:a}),{config:T,fetchStatus:w,connectedWallets:x,customSlippage:A,slippage:I,setSlippage:E,setCustomSlippage:v}=k(),{isActiveTab:b}=te(),[B,P]=Yh(!1),q=en(A!==null?A:I),V=Od({fetchMetaStatus:w,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),M=bu(d,S,T?.variant),ee=!!n&&!!e&&!!o&&new aI(n).gt(0)&&!Yd(e,o),R=ee&&w==="success"&&C,X=q?.quoteValidation||c,de=(!M||M&&l?.results.length)&&(X||s),Oe=!!e&&!!o,wt=Oe&&!!q,ve=(r||s)&&!B?y:void 0,L=i(j=>{M&&h?(g(!1),setTimeout(()=>{t(j)},cI)):t(j)},"onHandleNavigation"),W=i(j=>{r?.requestId!==j.requestId&&(P(!1),p(j))},"onClickOnQuote"),H=i(j=>{if(j){if(oi.includes(j)){E(j),v(null);return}v(j)}},"onChangeSlippage");return Xh(()=>{u(),f("refetchQuote",!0)},[]),Xh(()=>{g(ee)},[ee]),he.createElement(lI,null,he.createElement(re,{height:"auto",footer:he.createElement(nI,{id:`widget-swap-${V.action}-btn`,type:"primary",size:"large",disabled:V.disabled||!b,prefix:V.action==="confirm-warning"&&he.createElement(iI,null),fullWidth:!0,onClick:()=>{V.action==="connect-wallet"?jh({type:"clickConnectWallet"},()=>L(O.wallets)):V.action==="confirm-warning"?P(!0):L(O.confirmSwap)}},V.title),header:{onWallet:()=>{L(O.wallets)},hasBackButton:!1,title:T.title||oI.t("Swap"),suffix:he.createElement(_o,{hidden:M?["refresh"]:void 0,onClickRefresh:ve,onClickHistory:()=>L(O.swaps),onClickSettings:()=>{L(O.settings)}})}},he.createElement(ie,null,he.createElement($c,{fetchingQuote:R,fetchMetaStatus:w,isExpandable:M,onClickToken:j=>{L(j==="from"?O.fromSwap:O.toSwap)}}),he.createElement(Fc,{size:"2"}),M?null:he.createElement(Fo,{quote:r,loading:R,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:X,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),L(O.routes)}:void 0}),Oe&&he.createElement(he.Fragment,null,he.createElement(Fc,{size:8}),he.createElement(Bc,{quoteError:s,quoteWarning:X,fromToken:e,toToken:o,quote:r,loading:R})),de?he.createElement(he.Fragment,null,he.createElement(sr,{warning:X,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:y,showWarningModal:B,confirmationDisabled:!b,onOpenWarningModal:()=>P(!0),onCloseWarningModal:()=>P(!1),onChangeSlippage:H,onConfirmWarningModal:()=>{P(!1),m(!0),L(O.confirmSwap)},onChangeSettings:()=>L(O.settings)})):null,wt&&he.createElement(he.Fragment,null,he.createElement(Fc,{size:"10"}),he.createElement(bh,{onChangeSettings:()=>L(O.settings)})),he.createElement(Ec,null))),M?he.createElement(Mc,{loading:R,onClickOnQuote:W,fetch:y,onClickRefresh:ve,isVisible:h}):null)}i(Zh,"Home");import{i18n as Jh}from"@lingui/core";import{Alert as pI,Divider as uI,List as dI,ListItemButton as mI,Radio as fI,RadioRoot as gI,Typography as hI}from"@rango-dev/ui";import Ft from"react";function yo(){let{setLanguage:t,language:e,config:o}=k(),n=Wu,r=o?.language||tn;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||tn),resetLanguage:()=>t(null)}}i(yo,"useLanguage");function Rh(){let{activeLanguage:t,changeLanguage:e,languages:o}=yo(),n=Ke(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Ft.createElement(hI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Ft.createElement(fI,{value:s}),start:Ft.createElement(l,null)}});return Ft.createElement(re,{header:{title:Jh.t("Language")}},Ft.createElement(ie,null,Ft.createElement(pI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Ft.createElement(uI,{size:"8"}),Ft.createElement(gI,{value:t},Ft.createElement(dI,{type:Ft.createElement(mI,{title:Jh.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(Rh,"LanguagePage");import{i18n as to}from"@lingui/core";import{Button as TI,Checkbox as wI,Image as vI,ListItemButton as bI,NotFound as xI,Typography as EI}from"@rango-dev/ui";import et,{useState as II}from"react";import{Checkbox as CI,Skeleton as ty}from"@rango-dev/ui";import Ar from"react";import{styled as Oc}from"@rango-dev/ui";var Ir=Oc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Uc=Oc("div",{width:80,display:"flex",justifyContent:"flex-end"}),zc=Oc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as yI,styled as SI}from"@rango-dev/ui";var ey=SI(yI,{height:61});var kI=30;function qc(){return Ar.createElement(Ir,null,Array.from(Array(kI),(t,e)=>Ar.createElement(ey,{hasDivider:!0,key:e,start:Ar.createElement(ty,{variant:"circular",width:35,height:35}),title:Ar.createElement(ty,{variant:"text",size:"large",width:90}),end:Ar.createElement(CI,{checked:!1})})))}i(qc,"LoadingLiquiditySourceList");function Qc({sourceType:t}){let e=k().fetchStatus,o=k().swappers(),n=k().getDisabledLiquiditySources(),[r,a]=II(""),s=k().toggleLiquiditySource,c=k().isInCampaignMode(),l=ii(o,n),p={Exchanges:to.t("Exchanges"),Bridges:to.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=l.filter(y=>u.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,h=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:C,groupTitle:T,logo:w,id:x,...A}=y;return{id:`widget-setting-liquidity-source-${iu(x.toLowerCase())}-item-btn`,start:et.createElement(vI,{src:w,size:22,type:"circular"}),onClick:()=>{c||s(T)},end:et.createElement(wI,{checked:C,disabled:c}),title:et.createElement(EI,{variant:"title",size:"xmedium"},to.t(T)),selected:C,groupTitle:T,logo:w,...A}}),d=i(y=>{let C=y.target.value;a(C)},"handleSearch"),S=g;return r&&(S=g.filter(y=>Mt(y.groupTitle,r))),et.createElement(re,{header:{title:to.t(t),suffix:et.createElement(Uc,null,et.createElement(TI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},f?to.t("Deselect all"):to.t("Select all")))}},et.createElement(ie,{view:!0},et.createElement(It,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:to.t("Search {sourceType}",{sourceType:p[t]}),onChange:d}),e==="loading"&&et.createElement(qc,null),!S.length&&r?et.createElement(zc,null,et.createElement(xI,{title:to.t("No results found"),description:to.t("Try using different keywords")})):e==="success"&&et.createElement(Ir,{disabled:c,className:"widget-liquidity-source-list"},S.map(y=>{let{groupTitle:C,...T}=y;return et.createElement(et.Fragment,{key:y.id},et.createElement(bI,{style:{height:"61px"},...T,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Qc,"LiquiditySourcePage");import{i18n as AI}from"@lingui/core";import Ca from"react";import{useNavigate as NI}from"react-router-dom";function oy(){let t=NI(),e=Ke(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=U(),{fetch:c,loading:l}=Sa({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${O.settings}`,m=`../${O.wallets}`;return Ca.createElement(re,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:AI.t("Routes"),suffix:Ca.createElement(_o,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Ca.createElement(ie,null,Ca.createElement(xr,{fetch:c,loading:l,onClickOnQuote:p})))}i(oy,"RoutesPage");import{i18n as cy}from"@lingui/core";import{Divider as py,getCategoriesCount as OI,SelectableCategoryList as UI}from"@rango-dev/ui";import oo,{useState as uy}from"react";import{useNavigate as zI}from"react-router-dom";import{i18n as Hc}from"@lingui/core";import{Divider as MI,Image as PI,ListItemButton as _I,NotFound as DI,Typography as ly}from"@rango-dev/ui";import ft,{useEffect as $I,useState as FI}from"react";var ny=i((t,e,o)=>t.filter(n=>jr(n.type,o)).filter(n=>st(n.name,e)||st(n.displayName,e)),"filterBlockchains");import{ImageContainer as BI,styled as ry}from"@rango-dev/ui";var iy=ry("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),ka=ry(Tl,{padding:0,margin:0,listStyle:"none",[`& ${BI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as WI,Skeleton as ay}from"@rango-dev/ui";import Ta from"react";var LI=20;function sy(){return Ta.createElement(ka,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(LI),t=>Ta.createElement(WI,{key:t,hasDivider:!0,start:Ta.createElement(ay,{variant:"circular",width:35,height:35}),title:Ta.createElement(ay,{variant:"text",size:"large",width:90})})))}i(sy,"LoadingBlockchainList");function Gc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=FI(e),{fetchStatus:l}=k();$I(()=>{c([...ny(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ft.createElement(DI,{title:Hc.t("No results found"),description:Hc.t("Try using different keywords")}):ft.createElement(ka,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ft.createElement(_I,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ft.createElement(PI,{src:u.logo,size:30}),title:ft.createElement(ly,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ft.createElement(ft.Fragment,null,a&&ft.createElement(ft.Fragment,null,ft.createElement(ly,{variant:"label",size:"large"},Hc.t("Select Chain")),ft.createElement(MI,{size:4})),ft.createElement(iy,null,l==="loading"&&ft.createElement(sy,null),l==="success"&&p()))}i(Gc,"BlockchainList");function wa(t){let{type:e}=t,o=Ke(),[n,r]=uy(""),[a,s]=uy("ALL"),c=U.use.setToBlockchain(),l=U.use.setFromBlockchain(),{fetchStatus:p}=k(),u=zI(),m=k().blockchains({type:e}),f=OI(m),h=!t.hideCategory&&f!==1;return oo.createElement(re,{header:{title:cy.t("Select Chain")}},oo.createElement(ie,{view:!0},h&&oo.createElement(oo.Fragment,null,oo.createElement(UI,{setCategory:s,category:a,blockchains:m,isLoading:p==="loading"}),oo.createElement(py,{size:24})),oo.createElement(It,{value:n,autoFocus:!0,placeholder:cy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:g=>r(g.target.value)}),oo.createElement(py,{size:16}),oo.createElement(Gc,{list:m,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:g=>{e==="custom-token"?u(`..?blockchain=${g.name}`,{replace:!0}):(e==="source"?l(g):c(g),o())}})))}i(wa,"SelectBlockchainPage");import{i18n as xa}from"@lingui/core";import{Divider as Sy,Spinner as oA}from"@rango-dev/ui";import So,{useEffect as nA,useState as rA}from"react";import{useNavigate as iA}from"react-router-dom";import{i18n as jc}from"@lingui/core";import{BlockchainsChip as va,Divider as gy,Image as hy,Skeleton as KI,Tooltip as jI,Typography as Xc}from"@rango-dev/ui";import xe from"react";import{useEffect as HI}from"react";var dy=["ETH","COSMOS","OSMOSIS"];function Vc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(qI),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let c=o.limit-e.length;for(let l=0;l<=c;l++){let p=n[l];s=s.filter(u=>p?.name!==u)}}n.sort(QI(s)),r=n.splice(a)}return{list:n,more:r}}i(Vc,"prepare");function qI(t,e){let o=dy,n=o.findIndex(c=>c===t.name),r=o.findIndex(c=>c===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(qI,"sortByMostUsedBlockchains");function QI(t){return i(function(o,n){let r=t.findIndex(l=>l===o.name),a=t.findIndex(l=>l===n.name),s=r>-1,c=a>-1;return s&&c?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(QI,"generateSortByPreferredBlockchainsFor");function my(t,e){return!!e.list.find(o=>o.name===t)}i(my,"isInVisibleList");function Kc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=k();HI(()=>{if(e?.selected){let a=Vc(t,o,e);my(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Vc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Kc,"usePrepareBlockchainList");import{styled as GI}from"@rango-dev/ui";var fy=GI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var XI=6,YI=12;function Yc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=te(),c=Kc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=k(),p=U.use.resetToBlockchain(),u=U.use.resetFromBlockchain(),m=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&m;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(gy,{size:12}),xe.createElement(Xc,{variant:"label",size:"large"},jc.t("Select Chain"))),xe.createElement(gy,{size:12}),xe.createElement(fy,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?XI:YI),(d,S)=>xe.createElement(KI,{key:S,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(va,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(Xc,{variant:"body",size:"xsmall",color:"secondary500"},jc.t("All"))),c.list.map(d=>xe.createElement(jI,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:N()},xe.createElement(va,{className:"widget-blockchains-section-item-btn",key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},xe.createElement(hy,{src:d.logo,size:30})))),h?xe.createElement(va,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(hy,{src:f.logo,size:30})):null,g?xe.createElement(va,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(Xc,{variant:"body",size:"xsmall",color:"secondary500"},jc._("More +{count}",{count:c.more.length}))):null)))}i(Yc,"BlockchainsSection");import{useCallback as JI,useRef as RI,useState as Zc}from"react";function Jc(){let t=k().blockchains(),e=RI(null),{customTokens:o}=k(),[n,r]=Zc(!1),[a,s]=Zc([]),[c,l]=Zc(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await ct().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),d=new Set(o().map(C=>Ht(C))),S=new Set(t.map(C=>C.name)),y=g.tokens.filter(C=>S.has(C.blockchain)&&!d.has(Ht(C)));s(y),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=JI(Kr((f,h)=>{e.current?.signal.aborted||p(f,h)},600),[t.length]);return{fetch:(f,h)=>{e.current=new AbortController,s([]),r(!0),u(f,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Jc,"useSearchCustomTokens");function ba(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(ba,"shouldSearchForCustomTokens");function yy(t,e,o,n,r){let a=[...t];return ba(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(yy,"prepareTokensList");function Ea(t){let{type:e}=t,o=iA(),n=Ke(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=U(),{getBalanceFor:u}=k(),{fetch:m,loading:f,tokens:h,cancel:g}=Jc(),[d,S]=rA(""),y=e==="source"?r:a,C=y?.name??"",T=k().blockchains({type:e}),w=k().tokens({type:e,blockchain:C,searchFor:d,getBalanceFor:u}),x=yy(w,h,d,f,y?.name),A=i(v=>{e==="source"?l(v):p(v)},"updateBlockchain"),I=i(v=>{e==="source"?s({token:v,meta:{blockchains:T}}):c({token:v,meta:{blockchains:T}})},"updateToken"),E={source:xa.t("Source"),destination:xa.t("Destination")};return nA(()=>(ba(w,d,y?.name)&&m(d,y?.name??void 0),()=>{g()}),[w.length,d,y?.name]),So.createElement(re,{header:{title:xa.t("Swap {type}",{type:E[e]})}},So.createElement(ie,null,So.createElement(Yc,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(O.blockchains),onChange:v=>{A(v)}}),So.createElement(Sy,{size:24}),So.createElement(It,{value:d,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:xa.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>S(""),onChange:v=>S(v.target.value),suffix:ba(w,d,y?.name)&&f?So.createElement(oA,{size:12,color:"secondary"}):void 0}),So.createElement(Sy,{size:16}),So.createElement(Sr,{list:x,selectedBlockchain:C,searchedFor:d,type:e,onChange:v=>{I(v);let b=T.find(B=>v.blockchain===B.name);b&&A(b),n()}})))}i(Ea,"SelectSwapItemsPage");import{i18n as op}from"@lingui/core";import{Alert as LA,Button as MA,styled as PA}from"@rango-dev/ui";import Qo from"react";import{useInRouterContext as _A,useSearchParams as DA}from"react-router-dom";import{i18n as by}from"@lingui/core";import{Alert as cA,Divider as ep,InfoIcon as pA,SlippageIcon as uA,TextField as dA,Tooltip as mA,Typography as xy}from"@rango-dev/ui";import ze from"react";import{Chip as aA,styled as Nr,TextField as sA}from"@rango-dev/ui";var Cy=Nr("div",{paddingTop:"$5",padding:"$10 $5"}),ky=Nr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${sA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),Ty=Nr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Ia=Nr("div",{maxWidth:"280px",padding:"$10"}),wy=Nr(aA,{width:"61px",flexShrink:0});import{i18n as Rc}from"@lingui/core";import{Typography as lA}from"@rango-dev/ui";import Br from"react";function vy(){return Br.createElement(Ia,null,Br.createElement(lA,{variant:"label",size:"medium",color:"neutral700"},Rc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Br.createElement("br",null),Br.createElement("br",null),Br.createElement("b",null,Rc.t("Warning")),":\xA0",Rc.t("This setting is applied to each step (e.g. 1Inch, Thorchain, etc.), meaning only that specific step will be reverted, not the entire route.")))}i(vy,"SlippageTooltipContent");function tp(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=k(),r=o!==null?en(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let m=u;u>Fn&&(m=Fn),n(m)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;su(u)||(p.value=u.slice(0,-1))},"onInput");return ze.createElement(Cy,null,ze.createElement(Ty,null,ze.createElement(uA,{size:16,color:"gray"}),ze.createElement(ep,{direction:"horizontal",size:4}),ze.createElement(xy,{variant:"title",size:"xmedium"},by.t("Slippage tolerance per swap")),ze.createElement(ep,{direction:"horizontal",size:4}),ze.createElement(mA,{container:N(),side:"top",sideOffset:4,content:ze.createElement(vy,null)},ze.createElement(pA,{color:"gray"}))),ze.createElement(ky,null,oi.map((l,p)=>{let u=`slippage-${p}`;return ze.createElement(wy,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),ze.createElement(dA,{type:"number",min:"0.01",max:"30",step:"0.01",status:r?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&ze.createElement(xy,{variant:"body",size:"small"},"%"),placeholder:by.t("Custom")})),r&&ze.createElement(ze.Fragment,null,ze.createElement(ep,{size:10}),ze.createElement(cA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(tp,"Slippage");import{i18n as Tt}from"@lingui/core";import{AutoThemeIcon as Ey,BridgesIcon as fA,ChevronRightIcon as Aa,DarkModeIcon as Iy,Divider as Wr,ExchangeIcon as gA,InfinityIcon as hA,InfoIcon as yA,LanguageIcon as SA,LightModeIcon as Ay,List as CA,ListItem as kA,ListItemButton as TA,Skeleton as wA,styled as vA,Switch as bA,Tabs as xA,TargetIcon as EA,Tooltip as IA,Typography as at}from"@rango-dev/ui";import $ from"react";import{useNavigate as AA}from"react-router-dom";var NA=vA("div",{width:"202px",height:"$40"}),BA=[{id:"light",icon:$.createElement(Ay,{color:"black",size:24}),tooltip:$.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Light"))},{id:"dark",icon:$.createElement(Iy,{color:"black",size:24}),tooltip:$.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Dark"))},{id:"auto",icon:$.createElement(Ey,{color:"black",size:24}),tooltip:$.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Auto"))}],WA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return $.createElement(Ey,{...e});case"dark":return $.createElement(Iy,{...e});default:return $.createElement(Ay,{...e})}},"getThemeIcon");function Ny(){let t=AA(),{theme:e}=k().config,{setTheme:o,theme:n}=k(),{activeLanguage:r,languages:a}=yo(),s=a.find(M=>M.local===r)?.label,c=k().fetchStatus,l=k().swappers(),p=k().getDisabledLiquiditySources(),{config:{features:u}}=k(),m=k().customTokens(),f=ot("theme",u),h=ot("liquiditySource",u),g=ot("language",u),d=ot("customTokens",u),S=k().infiniteApprove,y=k().toggleInfiniteApprove,C=ii(l,p),T=C.filter(M=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(M.type)),w=T.length,x=T.filter(M=>M.selected).length,A=C.filter(M=>M.type==="DEX"),I=A.length,E=A.filter(M=>M.selected).length,v=i((M,ee)=>{switch(c){case"loading":return $.createElement(wA,{variant:"text",size:"medium",width:50});case"failed":return $.createElement(at,{variant:"body",size:"medium",color:"$error500"},Tt.t("Loading failed"));default:return $.createElement(at,{variant:"body",size:"medium"},`${M} / ${ee}`)}},"handleSwapperEndItem"),b={id:"widget-setting-bridge-item-btn",title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Bridges")),end:$.createElement($.Fragment,null,v(x,w),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),onClick:()=>t(O.bridges),start:$.createElement(fA,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Exchanges")),end:$.createElement($.Fragment,null,v(E,I),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),start:$.createElement(gA,{color:"gray",size:16}),onClick:()=>t(O.exchanges)},P={id:"widget-setting-custom-tokens-item-btn",title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Custom Tokens")),end:$.createElement($.Fragment,null,$.createElement(at,{variant:"body",size:"medium"},`${m.length}`),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),start:$.createElement(EA,{color:"gray",size:16}),onClick:()=>t(O.customTokens)},F={id:"widget-setting-language-item-btn",title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Language")),start:$.createElement(SA,{color:"gray",size:16}),end:$.createElement($.Fragment,null,$.createElement(at,{variant:"body",size:"medium"},s),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),onClick:()=>t(O.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:$.createElement($.Fragment,null,$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Infinite approval")),$.createElement(Wr,{direction:"horizontal",size:4}),$.createElement(IA,{side:"top",sideOffset:4,container:N(),content:$.createElement(Ia,null,$.createElement(at,{variant:"label",size:"medium",color:"neutral700"},$.createElement("b",null,Tt.t("Warning")),":\xA0",Tt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},$.createElement(yA,{color:"gray"}))),start:$.createElement(hA,{color:"gray",size:16}),end:$.createElement(bA,{checked:S}),onClick:y},Z={id:"widget-setting-theme-item-btn",type:$.createElement(kA,null),title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Theme")),end:$.createElement(NA,null,$.createElement(xA,{container:N(),items:BA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:M=>o(M.id),type:"primary",borderRadius:"small"})),start:WA(n)},V=h?[]:[b,B];return d||V.push(P),g||V.push(F),V.push(q),!e?.singleTheme&&!f&&V.push(Z),$.createElement(CA,{type:$.createElement(TA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:V})}i(Ny,"SettingsLists");var $A=PA("div",{paddingLeft:"$8"});function By(){let{isInCampaignMode:t,updateCampaignMode:e}=k(),o=t(),[,n]=DA(),r=_A(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Qo.createElement(re,{header:{title:op.t("Settings")}},Qo.createElement(ie,null,o&&Qo.createElement(LA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:op.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:Qo.createElement($A,null,Qo.createElement(MA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},op.t("Reset")))}),Qo.createElement(tp,null),Qo.createElement(Ny,null)))}i(By,"SettingsPage");import{i18n as VN}from"@lingui/core";import{cancelSwap as KN}from"@rango-dev/queue-manager-rango-preset";import{useManager as jN}from"@rango-dev/queue-manager-react";import{Alert as XN}from"@rango-dev/ui";import Sp from"react";import{useParams as YN}from"react-router-dom";import{i18n as Ut}from"@lingui/core";import{getCurrentNamespaceOfOrNull as LN,getCurrentStep as MN,getRelatedWalletOrNull as PN}from"@rango-dev/queue-manager-rango-preset";import{Button as vS,Divider as _N,QuoteCost as DN,StepDetails as $N,Typography as dp}from"@rango-dev/ui";import{useWallets as FN}from"@rango-dev/wallets-react";import bS from"bignumber.js";import{PendingSwapNetworkStatus as Nn}from"rango-types";import Se,{useEffect as mp,useRef as fp,useState as $a}from"react";import{useNavigate as ON}from"react-router-dom";import{i18n as Co}from"@lingui/core";var FA=[Co.t("Sunday"),Co.t("Monday"),Co.t("Tuesday"),Co.t("Wednesday"),Co.t("Thursday"),Co.t("Friday"),Co.t("Saturday")];function Wy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Co.t("Today"):`${FA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Wy,"timeSince");function Ly(t){return t.finishTime?Wy(parseInt(t.finishTime)):Wy(parseInt(t.creationTime))}i(Ly,"getSwapDate");import Mr from"react";import{i18n as Na}from"@lingui/core";import{Button as My,Divider as np,MessageBox as OA}from"@rango-dev/ui";import ko from"react";var Py=i(({onCancel:t,onClose:e})=>ko.createElement(ko.Fragment,null,ko.createElement(np,{size:20}),ko.createElement(OA,{type:"error",title:Na.t("Cancel Swap"),description:Na.t("Are you sure you want to cancel this swap?")}),ko.createElement(np,{size:32}),ko.createElement(My,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Na.t("Yes, Cancel it")),ko.createElement(np,{size:12}),ko.createElement(My,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Na.t("No, Continue"))),"CancelContent");import{i18n as Ba}from"@lingui/core";import{Button as _y,Divider as rp,MessageBox as UA,Typography as zA}from"@rango-dev/ui";import no from"react";var Dy=i(({onDelete:t,onClose:e})=>no.createElement(no.Fragment,null,no.createElement(rp,{size:20}),no.createElement(UA,{type:"error",title:Ba.t("Delete Transaction"),description:Ba.t("Are you sure you want to delete this swap?")}),no.createElement(rp,{size:32}),no.createElement(_y,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Ba.t("Yes, Delete it")),no.createElement(rp,{size:12}),no.createElement(_y,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},no.createElement(zA,{variant:"title",size:"medium",color:"primary"},Ba.t("No, Cancel")))),"DeleteContent");import{i18n as qA}from"@lingui/core";import{Button as QA,Divider as HA,MessageBox as GA}from"@rango-dev/ui";import Ho from"react";var $y=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Ho.createElement(Ho.Fragment,null,Ho.createElement(GA,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Ho.createElement(Ho.Fragment,null,Ho.createElement(HA,{size:"30"}),Ho.createElement(QA,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},qA.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as lN,getCurrentStep as cN,getRelatedWalletOrNull as pN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as uN}from"@rango-dev/ui";import{useWallets as dN}from"@rango-dev/wallets-react";import Qy from"react";import{i18n as In}from"@lingui/core";import{Alert as Oy,Button as KA,Checkbox as jA,Divider as Ma,Image as XA,MessageBox as YA,Spinner as ZA,WarningIcon as JA}from"@rango-dev/ui";import{useWallets as RA}from"@rango-dev/wallets-react";import ge,{useState as eN}from"react";import{darkTheme as VA,styled as Lr}from"@rango-dev/ui";var pX=Lr("div",{display:"flex",justifyContent:"center"}),uX=Lr("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Fy=Lr("img",{width:"100%"}),Wa=Lr("div",{position:"relative"}),La=Lr("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${VA} &`]:{$$color:"$warning600"}});var Uy=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=eN(null),{list:s}=vt(),c=te.use.isActiveTab(),{state:l,connect:p}=RA(),u=s.find(x=>x.type===e.walletType),m=u?.needsNamespace?.data.find(x=>x.value===o?.namespace);if(!u)return null;let f=l(e.walletType),h=u.isHub&&o?.namespace?f.namespaces?.get(o.namespace):null,g=f.connecting||h?.connecting,d=u.isHub?h?.connected:f.connected,S=i(()=>d?In.t("Done"):r?In.t("Try again"):In.t("Connect"),"getButtonTitle"),y=i(()=>g?ge.createElement(ZA,{color:"info"}):r||d?null:ge.createElement(jA,{checked:!0,disabled:!0}),"getNamespaceSuffix"),C=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(x){a(x)}},"handleConnect"),T=i(async()=>{if(d){n();return}C()},"handleClickButton"),w=i(()=>{if(!d)return null;let x=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),A=x?.[x?.length-1];return A?io(A):null},"getAddress");return ge.createElement(ge.Fragment,null,ge.createElement(YA,{type:"warning",title:In.t("Connect {wallet}",{wallet:u.title}),description:In.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:ge.createElement(Wa,null,ge.createElement(XA,{src:u.image,size:45}),ge.createElement(La,null,ge.createElement(JA,{color:"warning",size:10})))}),d&&!m&&ge.createElement(ge.Fragment,null,ge.createElement(Ma,{size:10}),ge.createElement(Oy,{type:"success",variant:"alarm",title:In.t("Wallet connected successfully.")})),r&&!m&&ge.createElement(ge.Fragment,null,ge.createElement(Ma,{size:10}),ge.createElement(Oy,{type:"error",title:r?.message,variant:"alarm"})),m&&ge.createElement(ge.Fragment,null,ge.createElement(Ma,{size:30}),ge.createElement(No,{namespace:m,suffix:y(),error:r?.message,connected:d,address:w()})),ge.createElement(Ma,{size:"40"}),ge.createElement(KA,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:T,disabled:!c},S()))},"ConnectWalletContent");import{i18n as zy}from"@lingui/core";import{Button as tN,Divider as oN,Image as nN,MessageBox as rN,WarningIcon as iN}from"@rango-dev/ui";import{useWallets as aN}from"@rango-dev/wallets-react";import{detectInstallLink as sN}from"@rango-dev/wallets-shared";import ro from"react";var qy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=aN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(sN(n.installLink),"_blank"),"handleButtonClick");return ro.createElement(ro.Fragment,null,ro.createElement(rN,{type:"warning",title:zy.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:ro.createElement(Wa,null,ro.createElement(nN,{src:n.img,size:45}),ro.createElement(La,null,ro.createElement(iN,{color:"warning",size:10})))}),ro.createElement(oN,{size:"40"}),ro.createElement(tN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},zy.t("Install")))},"InstallWalletContent");var Hy=i(t=>{let{swap:e,onClose:o}=t,{state:n}=dN(),r=cN(e),a=r?pN(e,r):null,s=a?.walletType,c=s?_n(n(s)):null,l=r?lN(e,r):null;return s?c===uN.NOT_INSTALLED?Qy.createElement(qy,{walletType:s}):Qy.createElement(Uy,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function ip(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return Mr.createElement(J,{open:e,onClose:r,container:N()},o==="connectWallet"&&Mr.createElement(Hy,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&Mr.createElement($y,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&Mr.createElement(Dy,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&Mr.createElement(Py,{onClose:r,onCancel:()=>{r(),s()}}))}i(ip,"SwapDetailsModal");import{i18n as Pr}from"@lingui/core";import{Button as ap,Divider as _r,MessageBox as Ky,TokenAmount as mN,Typography as jy}from"@rango-dev/ui";import ye from"react";import{Link as fN,useNavigate as gN}from"react-router-dom";var Gy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Vy="/profile";function sp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:m,diagnosisUrl:f}=t,h=gN(),{showProfileBanner:g}=te();return ye.createElement(J,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(tt.SWAP_BOX_ID)||document.body},n==="success"?ye.createElement(Ky,{type:"success",title:Pr.t("Swap Successful")},ye.createElement(mN,{direction:"vertical",tooltipContainer:N(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),ye.createElement(_r,{size:12}),ye.createElement(jy,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):ye.createElement(Ky,{type:"error",title:Pr.t("Transaction Failed"),description:m}),ye.createElement(_r,{size:30}),n==="success"&&ye.createElement(ye.Fragment,null,g&&ye.createElement(ye.Fragment,null,ye.createElement(fN,{to:Vy},ye.createElement(Fy,{src:Gy,alt:"Profile Banner"})),ye.createElement(_r,{size:30})),ye.createElement(ap,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Pr.t("Done"))),ye.createElement(_r,{size:12}),f&&ye.createElement(ye.Fragment,null,ye.createElement(ap,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Pr.t("Diagnosis")),ye.createElement(_r,{size:12})),ye.createElement(ap,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},ye.createElement(jy,{variant:"title",size:"medium",color:"primary"},Pr.t("See Details"))))}i(sp,"SwapDetailsCompleteModal");import{i18n as Da}from"@lingui/core";import{CopyIcon as IN,DoneIcon as AN,IconButton as NN,RangoExplorerIcon as BN,Tooltip as yS,Typography as SS,useCopyToClipboard as WN}from"@rango-dev/ui";import Nt from"react";import EN from"react";import{i18n as wN}from"@lingui/core";import{Alert as mS,IconButton as vN,LinkIcon as bN}from"@rango-dev/ui";import To,{Fragment as xN}from"react";import{Alert as yN,ChevronDownIcon as SN,IconButton as CN}from"@rango-dev/ui";import An,{useState as kN}from"react";import{css as Dr,darkTheme as Xy,styled as Ot,Typography as hN}from"@rango-dev/ui";var Yy=Ot(ie,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Xy} &`]:{color:"$secondary500"}}}}}),Zy=Ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Jy=Ot("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),Ry=Ot("div",{padding:"$0 $20 $20 $20"}),fY=Ot("div",{display:"flex",flexDirection:"column",gap:"$10"}),eS=Ot("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),gY=Ot("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Go=Dr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Xy} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),tS=Dr({padding:"$5 0"}),Pa=Dr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),oS=Dr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),nS=Dr({width:"100%",padding:"0 $20 $10"}),rS=Ot("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),iS=Ot("div",{display:"flex",flexDirection:"column",gap:"$5"}),_a=Ot(hN,{wordBreak:"break-word"});import{styled as lp}from"@rango-dev/ui";var aS=lp("div",{display:"flex",flexDirection:"column",gap:"$10"}),sS=lp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),lS=lp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function cS(t){let{message:e}=t,[o,n]=kN(!1);return An.createElement(yN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&An.createElement(CN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},An.createElement(sS,{rotated:o},An.createElement(SN,{size:12,color:"gray"}))),footer:An.createElement(lS,{open:o},An.createElement(_a,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(cS,"FailedAlert");import{i18n as pS}from"@lingui/core";import{Alert as cp,Button as uS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as TN}from"rango-types";import $r from"react";function dS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?$r.createElement(cp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:$r.createElement(uS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},pS.t("Change"))}):a===TN.WaitingForConnectingWallet?$r.createElement(cp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:$r.createElement(uS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},pS.t("Connect"))}):$r.createElement(cp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(dS,"WarningAlert");function pp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=Zn(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,m=u&&!c||p&&!s.explorerUrl?.length;return To.createElement(aS,null,s.explorerUrl?.map((f,h,g)=>{let d=h+f.url,S=h===g.length-1,y=(S&&u||p)&&!m,C=S&&s.status==="failed";return To.createElement(xN,{key:d},To.createElement(mS,{id:"widget-swap-details-tx-alert",type:S&&(y&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:wN.t("View transaction"),action:f.url&&To.createElement(vN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},To.createElement(bN,{size:12}))}))}),m&&To.createElement(mS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&To.createElement(dS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&To.createElement(cS,{message:a}))}i(pp,"SwapDetailsAlerts");var fS=2e3;var gS=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1]?.outputAmount||t.steps[s-1]?.expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:gt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:D(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:gt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:D(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Wn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:gt(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:gt(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Wn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:EN.createElement(pp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function hS(t){if(Zn(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(hS,"getStepState");function CS(t){let{requestId:e}=t,[o,n]=WN(fS);return Nt.createElement(Jy,{className:Go()},Nt.createElement(SS,{variant:"label",size:"large",color:"neutral700"},Da.t("Request ID")),Nt.createElement("div",{className:Pa()},Nt.createElement(SS,{variant:"label",size:"small",color:"neutral700"},e),Nt.createElement(yS,{container:N(),content:o?Da.t("Copied To Clipboard"):Da.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Nt.createElement(NN,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Nt.createElement(AN,{size:16,color:"secondary"}):Nt.createElement(IN,{size:16,color:"gray"}))),Nt.createElement(rS,{target:"_blank",href:`${Hp}/swap/${e}`},Nt.createElement(yS,{container:N(),content:Da.t("View on Rango Explorer"),side:"bottom"},Nt.createElement(BN,{size:20})))))}i(CS,"RequestIdRow");import{i18n as kS}from"@lingui/core";import{Typography as TS}from"@rango-dev/ui";import up from"react";function wS(t){let{date:e,isFinished:o}=t;return up.createElement("div",{className:Go()},up.createElement(TS,{variant:"label",size:"large",color:"neutral700"},o?kS.t("Finished at"):kS.t("Created at")),up.createElement(TS,{variant:"label",size:"small",color:"neutral700"},e))}i(wS,"SwapDateRow");var UN=3e3;function gp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=FN(),l=k().blockchains(),p=k().swappers(),{findToken:u}=k(),m=U.use.retry(),f=ON(),h=fp(null),[g,d]=$a(!1),[S,y]=$a(null),[C,T]=$a(null),[w,x]=$a(null),A=fp(S),I=fp(C),E=Ne.use.getNotifications(),v=Ne.use.removeNotification(),b=E(),B=MN(e),P=B?.networkStatus,F=i(Me=>{d(!0),y(Me)},"handleChangeModalState"),q=i(()=>{d(!1)},"handleCloseModal"),Z=i(()=>{T({type:"loading",title:Ut.t("Change Network"),description:`We\u2019re switching the connected network to ${R?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),V=i(()=>{T({type:"success",title:Ut.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),M=i(Me=>{T({type:"error",title:Ut.t("Network Switch Failed"),description:Me?.message||j.detailedMessage.content})},"handleShowSwitchNetworkFailed"),ee=Kd(e),R=B?LN(e,B):null,X=B?PN(e,B):null,we=Ly(e),se=jd(e),de=i(Me=>!!c(Me)?.mobileWallet,"checkIsMobileWallet"),Oe=!!P&&[Nn.WaitingForNetworkChange,Nn.NetworkChangeFailed].includes(P),wt=!!X?.walletType&&de(X.walletType),ve=!!X&&!!R&&a(X.walletType,R.network,R),L=!!R&&Oe&&(wt||ve),W=i(()=>{L&&(Z(),s(X.walletType,[{namespace:R.namespace,network:R.network}]).then(()=>{V()}).catch(Me=>{M(Me)}))},"handleSwitchNetwork"),H=i(()=>{F("switchNetwork"),W()},"handleSwitchNetworkClick"),j=Vd(e,B,c),K=gS({swap:e,switchNetworkIsAvailable:L,handleSwitchNetworkClick:H,showNetworkModal:P,setNetworkModal:F,message:j,blockchains:l,swappers:p}),me=K.length,[Qe,He]=[e.steps[0],e.steps[me-1]],be=He?.outputAmount||He?.expectedOutputAmountHumanReadable,Wt=e.steps.reduce((Me,Lt)=>Me+parseFloat(Lt.feeInUsd||""),0),Va=e.steps.find(Me=>Me.diagnosisUrl)?.diagnosisUrl,Ka=D(parseFloat(be||"0")*(He?.toUsdPrice||0),4,4),xp=D(parseFloat(e.inputAmount)*(Qe?.fromUsdPrice||0),4,4),Ep=be?new bS(be).multipliedBy(He.toUsdPrice||0).toString():"",JS=new bS(e.inputAmount).multipliedBy(Qe?.fromUsdPrice||0).toString(),ja=Vt(xp,Ka),Xa=j.detailedMessage.content||j.shortMessage,RS=e.status==="success"?Ut.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:D(be,6,6),token:K[me-1]?.to.token.displayName,conciseAddress:io(e.wallets[K[me-1]?.to.chain.displayName||""]?.address||""),chain:K[me-1]?.to.chain.displayName}}):Se.createElement(iS,null,Se.createElement(dp,{variant:"body",size:"medium",color:"neutral700",align:"center"},Xa?"":Ut.t("Transaction was not sent."),ee?`${Ut.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:ee.outputAmount,symbol:ee.symbol,blockchain:ee.blockchain}})}`:""),Xa&&Se.createElement(_a,{align:"center",variant:"body",size:"medium",color:"neutral700"},Se.createElement("b",null,"Reason:")," ",Xa));return mp(()=>{b.find(Lt=>Lt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(x(e.status),v(e.requestId),q()):w&&x(null))},[e.status,e.requestId]),mp(()=>{if(L){if(F("switchNetwork"),P===Nn.WaitingForNetworkChange){Z();return}if(P===Nn.NetworkChangeFailed){M();return}return}if(P===Nn.WaitingForConnectingWallet){F("connectWallet");return}if(P===Nn.NetworkChanged){F("switchNetwork"),V();return}S&&["connectWallet","switchNetwork"].includes(S)&&q()},[P]),mp(()=>{if(A.current=S,I.current=C,S==="switchNetwork"&&C?.type==="success"){let Me=setTimeout(()=>{A.current==="switchNetwork"&&I.current?.type==="success"&&q()},UN);return()=>clearTimeout(Me)}},[S,C]),Se.createElement(re,{header:{title:Ut.t("Swap Details"),onCancel:e.status==="running"?()=>F("cancel"):void 0,suffix:e.status!=="running"&&Se.createElement(co,null,Se.createElement(vS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>F("delete")},Se.createElement(dp,{size:"medium",variant:"label",color:"error"},Ut.t("Delete"))))},footer:se&&!w&&Se.createElement(vS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Me=wi(e,l,u);m(Me),setTimeout(()=>{f("../../")},0)}},Ut.t("Try again"))},Se.createElement(Yy,{compact:!0,ref:h},Se.createElement(CS,{requestId:o}),Se.createElement(wS,{date:we,isFinished:!!e.finishTime}),Se.createElement("div",{className:oS()},Se.createElement(DN,{fee:D(String(Wt),2,2),time:Mn(Yr(e.steps)),steps:me}),Se.createElement(cr,{from:{price:{value:D(e.inputAmount,6,6),usdValue:xp,realUsdValue:JS,realValue:e.inputAmount},token:{displayName:K[0]?.from.token.displayName||"",image:K[0]?.from.token.image},chain:{image:K[0]?.from.chain.image,displayName:K[0]?.from.chain.displayName||""}},to:{price:{value:D(be,6,6),usdValue:Ka,realUsdValue:Ep,realValue:be||""},token:{displayName:K[me-1]?.to.token.displayName||"",image:K[me-1]?.to.token.image},chain:{image:K[me-1]?.to.chain.image,displayName:K[me-1]?.to.chain.displayName||""}},percentageChange:D(ja,2,2),warningLevel:Kt(ja??0)})),Se.createElement("div",{className:nS()},Se.createElement(dp,{variant:"title",size:"small"},Ut.t("Swaps steps"))),Se.createElement(_N,{size:8}),Se.createElement(Ry,null,K.map((Me,Lt)=>{let Ip=Lt,Bn=e.steps[Lt]&&hS(e.steps[Lt]),eC=Bn==="error"||Bn==="in-progress"||Bn==="warning"||Bn==="completed"&&Lt===K.length-1;return Se.createElement($N,{className:"widget-swap-details-step-item-container",key:Ip,step:Me,type:"swap-progress",ref:h,state:Bn,hasSeparator:Lt!==0,tabIndex:Ip,isFocused:eC,tooltipContainer:N()})}))),Se.createElement(ip,{isOpen:g,state:S,switchNetworkModalState:C,onClose:q,onCancel:r,onDelete:n,message:j.detailedMessage.content,swap:e,handleSwitchNetwork:H}),Se.createElement(sp,{open:!!w,diagnosisUrl:Va,onClose:()=>x(null),status:e.status==="success"?"success":"failed",priceValue:D(be,6,6),usdValue:Ka,realUsdValue:Ep,realValue:be||"",percentageChange:D(ja,2,2),token:{displayName:K[me-1]?.to.token.displayName||"",image:K[me-1]?.to.token.image},chain:{image:K[me-1]?.to.chain.image},description:RS}))}i(gp,"SwapDetails");import{i18n as Oa}from"@lingui/core";import{Divider as IS,NotFound as GN,Skeleton as Or,Typography as Ua}from"@rango-dev/ui";import Ie from"react";import{i18n as zN}from"@lingui/core";import{Divider as qN,Skeleton as QN,Typography as HN}from"@rango-dev/ui";import Ee from"react";import{css as Bt,styled as hp}from"@rango-dev/ui";var xS=hp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Fr=hp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Fa=hp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),q7=Bt({display:"flex",justifyContent:"space-between",alignItems:"center"}),Q7=Bt({display:"flex",justifyContent:"space-between",alignItems:"center"}),H7=Bt({paddingTop:"$15",display:"flex"}),G7=Bt({padding:"$15 $0"}),V7=Bt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),K7=Bt({paddingBottom:"$10"}),j7=Bt({display:"flex",justifyContent:"start",alignItems:"center"}),X7=Bt({paddingTop:"$5",display:"flex",alignItems:"center"}),Y7=Bt({display:"flex",alignItems:"center"}),Z7=Bt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),ES=Bt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function yp(){return Ee.createElement(xS,null,Ee.createElement(ur,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(HN,{variant:"title",size:"small"},zN.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Fr,null,Ee.createElement($t,{separator:!1}),Ee.createElement("div",{className:ES()},Ee.createElement(qN,{direction:"horizontal",size:20}),Ee.createElement(QN,{height:22,variant:"rectangular"}))),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement($t,{separator:!1})),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement($t,{separator:!1})),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement($t,{separator:!1}))))}i(yp,"LoadingSwapDetails");function AS(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(re,{header:{title:Oa.t("Swap Details"),suffix:Ie.createElement(co,null)}},o&&Ie.createElement(Zy,null,Ie.createElement("div",{className:Go()},Ie.createElement(Ua,{variant:"label",size:"large",color:"neutral700"},`${Oa.t("Request ID")}`),Ie.createElement("div",{className:Pa()},Ie.createElement(Ua,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"})),Ie.createElement(IS,{direction:"horizontal",size:4}),Ie.createElement(Or,{width:16,height:16,variant:"rectangular"}),Ie.createElement(IS,{direction:"horizontal",size:4}),Ie.createElement(Or,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:Go()},Ie.createElement(Ua,{className:tS(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"})),Ie.createElement(Ua,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"}))),Ie.createElement(yp,null)),!o&&Ie.createElement(eS,null,Ie.createElement(GN,{title:Oa.t("Not found"),description:Oa.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(AS,"SwapDetailsPlaceholder");function NS(){let{manager:t,state:e}=jN(),o=!e.loadedFromPersistor,n=kt(t),{requestId:r}=YN(),a=Ke(),{fetchStatus:s}=k();if(!r)return Sp.createElement(XN,{containerStyles:{margin:"20px"},type:"error",title:VN.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:f})=>f.requestId===r):void 0,p=i(()=>{if(l?.id){let f=t?.get(l.id);f&&KN(f)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),m=l?.swap;return!m||c?Sp.createElement(AS,{requestId:r,showSkeleton:c}):Sp.createElement(gp,{swap:m,requestId:r,onCancel:p,onDelete:u})}i(NS,"SwapDetailsPage");import{i18n as BS}from"@lingui/core";import{Divider as ZN,getCategoriesCount as JN,SelectableCategoryList as RN,styled as LS,Typography as e0,Wallet as t0,WalletState as o0}from"@rango-dev/ui";import{useWallets as n0}from"@rango-dev/wallets-react";import zt,{useState as WS}from"react";var r0=LS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),i0=LS(ie,{textAlign:"center"});function MS(){let{fetchStatus:t}=k(),[e,o]=WS("ALL"),n=k().blockchains(),{config:r}=k(),{state:a}=n0(),[s,c]=WS(),l=te.use.isActiveTab(),{list:p}=vt(),u=Cu(p,n),f=JN(u)!==1,h=ku(p,e),g=i(d=>{eu(p,r.multiWallets)||c(d)},"handleWalletItemClick");return zt.createElement(re,{header:{title:BS.t("Connect Wallets")}},zt.createElement(i0,null,f&&zt.createElement(zt.Fragment,null,zt.createElement(RN,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),zt.createElement(ZN,{size:24})),zt.createElement(e0,{variant:"title",size:"xmedium",align:"center"},BS.t("Choose a wallet to connect.")),zt.createElement(r0,null,h.map((d,S)=>{let C=a(d.type).namespaces,T=`wallet-${S}-${d.type}`,w=is(d,C);return zt.createElement(t0,{key:T,...d,state:w?o0.PARTIALLY_CONNECTED:d.state,container:N(),onClick:()=>g(d),isLoading:t==="loading",disabled:!l})}),zt.createElement(jn,{id:"widget-state-full-connect-modal",wallet:s,onClose:()=>{c(void 0)}}))))}i(MS,"WalletsPage");function PS(){return Jd(),Vs(),a0([{path:O.home,element:qe.createElement(Zh,null)},{path:O.routes,element:qe.createElement(oy,null)},{path:O.fromSwap,children:[{index:!0,element:qe.createElement(Ea,{type:"source"})},{path:O.blockchains,element:qe.createElement(wa,{type:"source"})}]},{path:O.toSwap,children:[{index:!0,element:qe.createElement(Ea,{type:"destination"})},{path:O.blockchains,element:qe.createElement(wa,{type:"destination"})}]},{path:O.settings,children:[{index:!0,element:qe.createElement(By,null)},{path:O.languages,element:qe.createElement(Rh,null)},{path:O.exchanges,element:qe.createElement(Qc,{sourceType:"Exchanges"})},{path:O.bridges,element:qe.createElement(Qc,{sourceType:"Bridges"})},{path:O.customTokens,children:[{index:!0,element:qe.createElement(Rg,null)},{path:O.addCustomTokens,children:[{index:!0,element:qe.createElement(Vm,null)},{path:O.blockchains,element:qe.createElement(wa,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:O.swaps,children:[{index:!0,element:qe.createElement(Ch,null)},{path:O.swapDetails,element:qe.createElement(NS,null)}]},{path:O.wallets,element:qe.createElement(MS,null)},{path:O.confirmSwap,element:qe.createElement($g,null)}])}i(PS,"AppRoutes");import{useQueueManager as g0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as h0}from"rango-sdk";import{useContext as y0,useEffect as zS,useState as qS}from"react";import{globalCss as s0}from"@rango-dev/ui";var _S=i(()=>s0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function DS(){let{setWatermark:t,setShowProfileBanner:e}=te();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Qt("BASE_URL")}/meta/dapp/config?apiKey=${Qt("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(DS,"useFetchApiConfig");import{useWallets as l0}from"@rango-dev/wallets-react";import{useEffect as c0,useRef as p0}from"react";function $S(){let{connect:t,state:e}=l0(),o=p0({}),{fetchStatus:n}=k(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);c0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i($S,"useForceAutoConnect");import{isApprovalTX as u0,RouteEventType as FS,StepEventType as OS,StepExecutionEventStatus as d0,WidgetEvents as za}from"@rango-dev/queue-manager-rango-preset";import{useEffect as US}from"react";function Cp(){let t=Ne.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=k();US(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===OS.TX_EXECUTION&&s.status===d0.TX_SENT&&!u0(c)||s.type===OS.SUCCEEDED){let u=[],m=l.wallets[c?.fromBlockchain];if(m){let f=e.find(h=>h.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&h.walletType===m.walletType&&h.chain===c?.fromBlockchain);f&&u.push(f)}if(c?.fromBlockchain!==c?.toBlockchain){let f=l.wallets[c?.toBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let f=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(d=>f.some(S=>S.blockchain===d.blockchain&&S.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&S.symbol?.toLocaleLowerCase()===d.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return Ce.on(za.StepEvent,r),()=>Ce.off(za.StepEvent,r)},[Ce,e]),US(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===FS.FAILED||s.type===FS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return Ce.on(za.RouteEvent,r),()=>Ce.off(za.RouteEvent,r)},[Ce])}i(Cp,"useSubscribeToWidgetEvents");import{useManager as m0}from"@rango-dev/queue-manager-react";import{useEffect as f0}from"react";function kp(){let{isSynced:t,syncNotifications:e}=Ne(),{manager:o,state:n}=m0();f0(()=>{Ne.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(kt(o))},[Ne.persist.hasHydrated(),n.loadedFromPersistor,t])}i(kp,"useSyncNotifications");function Tp(){$S(),_S(),Cp(),kp();let t=k().blockchains(),{canSwitchNetworkTo:e}=Hi(),[o,n]=qS(null),[r,a]=qS(),s=y0(Ci),c=t.filter(h0),{fetchApiConfig:l}=DS();zS(()=>()=>Zd(),[]),g0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),zS(()=>(Ao.init(),Ne.persist.hasHydrated()||Ne.persist.rehydrate(),s.onConnectWallet(p=>{n(u=>{if(!u||u.walletType!==p.walletType)return p;let m={...u};return p.network&&(m.network=p.network),p.accounts&&(m.accounts=p.accounts),m})}),s.onDisconnectWallet(p=>{a(p),n(u=>p===u?.walletType?null:u)}),l().catch(console.log),Ao.destroy),[])}i(Tp,"useBootstrap");import{styled as S0}from"@rango-dev/ui";var QS=S0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function qa(){Tp();let{config:t}=k(),{activeTheme:e}=lo(t?.theme||{}),{activeLanguage:o}=yo();return wp.createElement(C0,{language:o},wp.createElement(QS,{id:"swap-container",className:e()},wp.createElement(PS,null)))}i(qa,"Main");import{setSolanaSignerConfig as O0}from"@rango-dev/signer-solana";import bp,{useEffect as XS,useMemo as U0}from"react";import{useState as k0}from"react";var T0=i(()=>{let[t,e]=k0(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Rp(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),HS=T0;import{checkWaitingForNetworkChange as w0,makeQueueDefinition as v0}from"@rango-dev/queue-manager-rango-preset";import{Provider as b0}from"@rango-dev/queue-manager-react";import{useWallets as x0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as E0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as I0}from"rango-types";import A0,{useMemo as N0}from"react";function B0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=x0(),c=N0(()=>v0({API_KEY:t.apiKey||Qt("API_KEY"),BASE_URL:Qt("BASE_URL"),emitter:{emit:Ce.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=k(),u=l(),m={blockchains:p.map(w=>({accounts:[w],name:w.chain}))},f=i(async(w,x)=>a(w,x.network,x)?await r(w,[x]):void 0,"switchNetwork"),h=i(w=>!!s(w).mobileWallet,"isMobileWallet"),g=u.filter(w=>w.enabled).reduce((w,x)=>(w[x.name]=x,w),{}),d=u.filter(I0),S=i(w=>{let{supportedChains:x}=s(w);return Dn(x)},"getSupportedChainNames"),y=e(),C={meta:{blockchains:g,evmBasedChains:d,evmNetworkChainInfo:E0(d),getSupportedChainNames:S},getSigners:o,wallets:m,providers:y,switchNetwork:f,canSwitchNetworkTo:a,state:n,isMobileWallet:h},T=te.use.isActiveTab();return A0.createElement(b0,{queuesDefs:[c],context:C,onPersistedDataLoaded:w=>{w0(w)},isPaused:!T},t.children)}i(B0,"QueueManager");var GS=B0;import{useManager as _0}from"@rango-dev/queue-manager-react";import D0,{createContext as $0,useContext as F0}from"react";function VS(){let{findToken:t}=k(),e=k().blockchains(),o=k().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=U();return i(p=>{let{fromBlockchain:u,fromToken:m,toBlockchain:f,toToken:h,requestAmount:g}=p,d={blockchains:e,tokens:o};if(u!==void 0){let S=e.find(y=>y.name===u)??null;n(S)}if(m!==void 0){let S=m?t(m)??null:null;r({meta:d,token:S})}if(f!==void 0){let S=e.find(y=>y.name===f)??null;a(S)}if(h!==void 0){let S=h?t(h)??null:null;s({meta:d,token:S})}g!==void 0&&c(g)},"updateQuoteInputs")}i(VS,"useUpdateQuoteInputs");import{cancelSwap as W0,getCurrentNamespaceOfOrNull as L0,getCurrentStep as M0,getRelatedWalletOrNull as P0}from"@rango-dev/queue-manager-rango-preset";var Qa=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return kt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=wi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&W0(o)}getCurrentStepInfo(e){let o=M0(e);return{step:o,wallet:o?P0(e,o):null,network:o?L0(e,o)?.network:null}}};var KS=$0(void 0);function vp(t){let{manager:e}=_0(),o=te.use.isActiveTab(),n=U.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=k(),l=new Qa(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=k(),u=mu(a()),m=k().blockchains(),f=k().tokens(),h=k().swappers(),g=k().fetchStatus,d=yo().resetLanguage,S=Ne().getNotifications(),y=Ne().clearNotifications,C=VS(),{fromBlockchain:T,toBlockchain:w,fromToken:x,toToken:A,inputAmount:I}=U(),E={isActiveTab:o,setCurrentTabAsActive:Ao.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async v=>c(v)},meta:{blockchains:m,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:d,notifications:{list:S,clearAll:y},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:w?.name??null,toToken:A?{symbol:A.symbol,blockchain:A.blockchain,address:A.address}:null,requestAmount:I},updateQuoteInputs:C}};return D0.createElement(KS.Provider,{value:E},t.children)}i(vp,"WidgetInfo");function jS(){let t=F0(KS);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(jS,"useWidget");function Ha(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=HS();return XS(()=>{n&&r(n)},[n]),U0(()=>{Tu({API_KEY:o?.apiKey||Gr,BASE_URL:o?.apiUrl||Qp})},[o.apiKey,o.apiUrl]),XS(()=>{t.config?.signers?.customSolanaRPC&&O0("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),bp.createElement(ki,{config:o,onUpdateState:e},bp.createElement(GS,{apiKey:o.apiKey},bp.createElement(vp,null,t.children)))}i(Ha,"WidgetProvider");function YS(t){let e=t.config?.externalWallets;return Ga.createElement(Cd,null,e?Ga.createElement(qa,null):Ga.createElement(Ha,{config:t.config??Qr},Ga.createElement(qa,null)))}i(YS,"Widget");function ZS(){let{on:t,off:e}=Ce;return{on:t,off:e}}i(ZS,"useWidgetEvents");var ree={DerivationPath:Gn,Namespaces:Qn,Detached:Hn,isOnDerivationPath:Kn,isOnNamespace:Vn,isOnDetached:wo};export{BR as EventSeverity,Jo as MainEvents,UR as Networks,QR as PendingSwapNetworkStatus,ps as QuoteEventTypes,WR as RouteEventType,Ra as SUPPORTED_FONTS,ree as StatefulConnect,LR as StepEventType,MR as StepExecutionBlockedEventStatus,PR as StepExecutionEventStatus,tt as UI_ID,ds as UiEventTypes,us as WalletEventTypes,FR as WalletEvents,zR as WalletTypes,YS as Widget,Jo as WidgetEvents,Ha as WidgetProvider,ki as WidgetWallets,sl as customizedThemeTokens,DR as readAccountAddress,Vo as useStatefulConnect,vt as useWalletList,Hi as useWallets,jS as useWidget,ZS as useWidgetEvents,nk as widgetEventEmitter};
1
+ var mC=Object.defineProperty;var i=(t,e)=>mC(t,"name",{value:e,configurable:!0});import{EventSeverity as cee,RouteEventType as pee,StepEventType as uee,StepExecutionBlockedEventStatus as dee,StepExecutionEventStatus as mee}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as gee}from"@rango-dev/wallets-core/legacy";import{useWallets as Vi,Events as yee}from"@rango-dev/wallets-react";import{Networks as Cee,WalletTypes as kee}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as wee}from"rango-types";import{Divider as NT}from"@rango-dev/ui";import lo,{useEffect as BT,useRef as WT,useState as yd}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 Lp(t){return!!t.derivationPath}i(Lp,"isStateOnDerivationPathStep");function Pp(t){return!!t.namespace}i(Pp,"isStateOnNamespace");var Gr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function _p(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 Gr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Gr;default:throw new Error("Action hasn't been defined.")}}i(_p,"reducer");function Xo(){let{state:t,disconnect:e,connect:o}=gC(),[n,r]=hC(_p,Gr),a=i(async(m,f,h)=>{r({type:"reset"});try{let g=f?.map(d=>({...d,network:void 0}));return await o(m,g),{status:"connected"}}catch(g){let d=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(d,{cause:g})}},"runConnect"),s=i(async(m,f)=>{if(m.state===fC.DISCONNECTED){let g=!!m.isHub,d=g?m.properties?.find(y=>y.name==="namespaces")?.value:m.needsNamespace,S=g?m.properties?.find(y=>y.name==="derivationPath")?.value:m.needsDerivationPath;if(!d?.data?.length)return await a(m.type,void 0,f);if(d?.data.length&&d.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:m,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(d?.data.length===1&&d.data[0]){if(S){let y=d.data[0];return r({type:"needsDerivationPath",payload:{providerType:m.type,providerImage:m.image,namespace:y.value}}),{status:"derivation-path"}}return await a(m.type,d?.data?.map(y=>({namespace:y.value})),f)}}if(m.isHub){let g=m.properties?.find(d=>d.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:m,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(m),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(m,f)=>{let h=!!m.isHub,g=h?m.properties?.find(T=>T.name==="namespaces")?.value:m.needsNamespace,d=h?m.properties?.find(T=>T.name==="derivationPath")?.value:m.needsDerivationPath,S=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(S&&d)return r({type:"needsDerivationPath",payload:{providerType:m.type,providerImage:m.image,namespace:y}}),{status:"derivation-path"};if(!Pp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=f.map(T=>({namespace:T}));return r({type:"detached",payload:{targetWallet:m,selectedNamespaces:C?.map(T=>T.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async m=>{if(!m)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Lp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let f=n.derivationPath.providerType,g=[{namespace:n.derivationPath.namespace,derivationPath:m}];return await a(f,g)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async m=>{let f=t(m.type);return f.connected||f.connecting?(await e(m.type),xo(p)?(r({type:"needsNamespace",payload:{targetWallet:m}}),{status:"namespace"}):{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:p,resetState:m=>{r(m==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Xo,"useStatefulConnect");import{WalletState as ws}from"@rango-dev/ui";import{useWallets as Ek}from"@rango-dev/wallets-react";import{detectMobileScreens as Ik,KEPLR_COMPATIBLE_WALLETS as Ak,WalletTypes as Hn}from"@rango-dev/wallets-shared";import{useCallback as Nk,useEffect as Bk}from"react";import Tk,{createContext as wk,useContext as vk,useEffect as bk,useRef as xk}from"react";import{create as Ck}from"zustand";import{persist as kk}from"zustand/middleware";import{allProviders as yC}from"@rango-dev/provider-all";var Ra=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},Yo=new Ra;import{defineVersions as $p,pickVersion as Fp,Provider as es}from"@rango-dev/wallets-core";function Op({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=Up(a);return s instanceof es?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 es?o.push($p().version("1.0.0",n).build()):o.push($p().version("0.0.0",n).build())}),o}return t}i(Op,"matchAndGenerateProviders");function Up(t){try{return Fp(t,"1.0.0")[1]}catch{return Fp(t,"0.0.0")[1]}}i(Up,"pickProviderVersionWithFallbackToLegacy");function zp(t){return t.map(o=>Up(o)).map(o=>o instanceof es?o.id:o.config.type)}i(zp,"configWalletsToWalletName");function Vr(t,e){return e.find(o=>o.name===t)?.displayName}i(Vr,"getBlockchainDisplayNameFor");function ht(t,e){return e.find(o=>o.name===t)?.shortName}i(ht,"getBlockchainShortNameFor");function Qp(t,e){return e.find(o=>o.name===t)?.logo}i(Qp,"getBlockchainImage");function _n(t,e){return e.find(o=>o.id===t)?.title}i(_n,"getSwapperDisplayName");function Eo(t,e){return e.find(o=>o.name===t)??null}i(Eo,"findBlockchain");function ts(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(ts,"isTokenNative");function yt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(yt,"createTokenHash");function Zo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Zo,"isValidTokenAddress");function Dn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=yt(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{let p=o.tokensMapByBlockchainName[l];!c.has(l)&&p&&a(p)})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded&&o.tokensMapByBlockchainName[c]?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=yt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Dn,"matchTokensFromConfigWithMeta");function Kr(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(Kr,"getSupportedBlockchainsFromConfig");function Hp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Hp,"makeProvidersOptionsFromConfig");var Jo={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/manifests/tonconnect-manifest.json"}},SC={clientUrl:void 0},CC={liquiditySources:void 0};function qp(t){let e=Hp(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(qp,"generateProviders");var Gp=i((t,e,o)=>{let n=qp({...Jo,...t});return{config:{...Jo,...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=Dn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=Dn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});Yo.set("supportedSourceTokens",l),Yo.set("supportedDestinationTokens",p),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=qp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Hp(a);return Op({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Vp}from"rango-types";var Kp=[Vp.EVM,Vp.SOLANA],jr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as PC}from"rango-sdk";import{UI_ID as kC}from"@rango-dev/ui";var Xr="c6381a79-2817-4602-83bf-6a641a409e32",jp="https://api.rango.exchange",Xp="https://explorer.rango.exchange",tt={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...kC};import{BlockchainCategories as IC,WalletState as lt}from"@rango-dev/ui";import{legacyReadAccountAddress as AC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as NC,getCosmosExperimentalChainInfo as BC,isEvmAddress as WC,KEPLR_COMPATIBLE_WALLETS as fW,Networks as hu}from"@rango-dev/wallets-shared";import en from"bignumber.js";import{isCosmosBlockchain as MC}from"rango-types";import TC from"bignumber.js";var ce=new TC(0);import{WalletTypes as wC}from"@rango-dev/wallets-shared";var Io="~",Yp=[wC.LEAP];import{BlockchainCategories as ns,WalletState as EC}from"@rango-dev/ui";import{TransactionType as Yr}from"rango-sdk";var Zp="Roboto",os=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];function Ro(t){return Array.from(new Set(t))}i(Ro,"removeDuplicateFrom");function Zr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Zr,"debounce");function st(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(st,"containsText");function eu(t,e){return t.toLowerCase()===e.toLowerCase()}i(eu,"exactText");function tu(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(tu,"startWithText");var W=i(()=>document.getElementById(tt.SWAP_BOX_ID),"getContainer"),Ao=i(()=>document.getElementById(tt.EXPANDED_BOX_ID),"getExpanded");function ou(t,e,o){let n=!!e&&eu(e,t),r=!!o&&eu(o,t);return n!==r?n?-1:1:0}i(ou,"compareExactMatchText");function rs(t,e,o){let n=!!e&&st(e,t),r=!!o&&st(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(rs,"compareContainsText");function is(t,e,o){let n=!!e&&tu(e,t),r=!!o&&tu(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(is,"compareStartWithText");function nu(t,e,o){if(!o)return 0;let n=ou(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=ou(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=is(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=rs(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=is(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=rs(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=is(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=rs(o,t.address,e.address);if(r!==0)return r}return 0}i(nu,"compareWithSearchFor");var Jr=i((t,e)=>{switch(e){case ns.ALL:return!0;case ns.UTXO:return t===Yr.TRANSFER;case ns.OTHER:return t!==Yr.TRANSFER&&t!==Yr.COSMOS&&t!==Yr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),ru=i(t=>os.find(o=>o.value===t)?.url,"getFontUrlByName");function iu(t,e){let o=!!t.find(n=>n.state===EC.CONNECTED);return e===!1&&o}i(iu,"isSingleWalletActive");function au(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(au,"memoizedResult");import{BigNumber as fu}from"bignumber.js";function su(t){return t.replace(/^0+(?=\d)/g,"")}i(su,"removeLeadingZeros");function lu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(lu,"ensureLeadingZeroForDecimal");function cu(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(cu,"formatThousandsWithCommas");function pu(t){return t.replace(/\s+/g,"-")}i(pu,"replaceSpacesWithDash");function uu(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(uu,"stripTrailingZeros");function Rr(t){return/^0+(?:\.0+)?$/.test(t)}i(Rr,"isZeroValue");function du(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(du,"isValidCurrencyFormat");function mu(t){return/\d+$/.test(t)}i(mu,"isColorKeyOverridden");var $n=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),_=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new fu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new fu(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 ei=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Pt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Fn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function gu(t){return Rr(t)?"0":uu(t)}i(gu,"sanitizeInputAmount");function On(t){return t.connected?lt.CONNECTED:t.connecting?lt.CONNECTING:t.installed?lt.DISCONNECTED:lt.NOT_INSTALLED}i(On,"mapStatusToWalletState");function yu(t,e,o,n){return o.filter(r=>!Yp.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:m,properties:f,isHub:h}=e(r),g=Ro(u.map(S=>S.type)),d=On(t(r));return{title:a,image:s,link:NC(c),state:d,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:m,properties:f,isHub:h}})}i(yu,"mapWalletTypesToWalletInfo");function Un(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Un,"walletAndSupportedChainsNames");function ss(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}=AC(l),m=c.length>0,f=c.includes(u),h=u===hu.Unknown;if(m&&!f&&!h)return;let d=u===hu.Unknown&&WC(p);if(h&&!d)return;o.includes(u)||d?r?s(u,p.toLowerCase(),r):c.filter(C=>o.includes(C)).forEach(C=>{s(C,p.toLowerCase())}):s(u,p)}),a}i(ss,"prepareAccountsForWalletStore");function No(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((p,u)=>{let m=p.from.blockchain,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(No,"getQuoteChains");function zn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(zn,"isAccountAndWalletMatched");var Su=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?as(n.usdValue,n.decimals):ce.toFixed();return o.plus(r)},new en(ce));return LC(e.toString())},"calculateWalletUsdValue");function LC(t){let e=t.toString().split(".");return e[0]&&(e[0]=cu(e[0])),e.join(".")}i(LC,"numberWithThousandSeparator");var ni=i((t,e)=>{let o=BC(Object.entries(t).map(([,n])=>n).filter(MC));return o&&!!o[e]?.experimental},"isExperimentalChain");function as(t,e){return new en(t).shiftedBy(-e).toFixed()}i(as,"representAmountInNumber");function ri(t){if(!t)return null;let e=as(t.amount,t.decimals),o=t.usdValue?as(t.usdValue,t.decimals):null,n=_(e,8,8),r=o?_(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(ri,"formatBalance");function Cu(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new en(t.usdValue).shiftedBy(-t.decimals):ce,n=e&&e.usdValue?new en(e.usdValue).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new en(t.amount).shiftedBy(-t.decimals):ce,n=e&&e.amount?new en(e.amount).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Cu,"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 ku(t,e){return t.map(o=>({isPartiallyConnected:ls(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===lt.CONNECTED&&!n.isPartiallyConnected)-+(o.state===lt.CONNECTED&&!o.isPartiallyConnected)||+(n.state===lt.CONNECTED)-+(o.state===lt.CONNECTED)||+(n.state===lt.DISCONNECTED||n.state===lt.CONNECTING)-+(o.state===lt.DISCONNECTED||o.state===lt.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(ku,"sortWalletsBasedOnConnectionState");function ao(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(ao,"getConciseAddress");function Tu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Tu,"getAddress");var wu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function vu(t){return t.map(e=>e.state).join("-")}i(vu,"hashWalletsState");function bu(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(bu,"filterBlockchainsByWalletTypes");function xu(t,e){return e===IC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Jr(n,e))return!0;return!1})}i(xu,"filterWalletsByCategory");function ls(t,e){return!t.isHub||!t.needsNamespace||t.state!==lt.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(ls,"checkIsWalletPartiallyConnected");var cs={API_KEY:Xr};function Ht(t){return cs[t]||""}i(Ht,"getConfig");function Eu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),cs=e,cs}i(Eu,"initConfig");var Iu=20,Au=25,ps="theme-widget",us=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"),ds=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Nu=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var ii,ct=i(()=>ii||(ii=new PC(Ht("API_KEY"),Ht("BASE_URL")),ii),"httpService");import{i18n as Wu}from"@lingui/core";var ai=[.5,1,3],si=1,tn=5,Qn=30,li=0;var Ye=(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))(Ye||{});import{WidgetEvents as Bu}from"@rango-dev/queue-manager-rango-preset";var ms=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ms||{}),fs=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(fs||{}),gs=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(gs||{}),on=(a=>(a[a.RouteEvent=Bu.RouteEvent]="RouteEvent",a[a.StepEvent=Bu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(on||{});function ci(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Ro(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(c=>c.swapperGroup===a);if(s){let c=!0;o&&(c=o.some(l=>l===s.swapperGroup)),c&&s.types.map(l=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:l,selected:!e.includes(s.swapperGroup)})})}}),n}i(ci,"getUniqueSwappersGroups");function Mu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Mu,"sortLiquiditySourcesByGroupTitle");function ot(t,e){return e?.[t]==="hidden"}i(ot,"isFeatureHidden");function nn(t,e){return e?.[t]==="enabled"}i(nn,"isRoutingEnabled");var Lu=i((t,e,o)=>ot("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function rn(t){return t==li?{type:"error",message:Wu.t("Slippage must be greater than or equal to 0.01")}:t>tn&&t<=Qn?{type:"warning",message:Wu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(rn,"getSlippageValidation");var Pu=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=Kr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>Kp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",m=Yo.get(u);m?.length||(m=Dn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Yo.set(u,m)),m=Lu(m,s,a.features);let f=e().blockchains({type:o.type});return m.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(d=>d.name===g.blockchain)?!1:o.searchFor?!!(st(g.symbol,o.searchFor)||st(g.address||"",o.searchFor)||st(g.name||"",o.searchFor)):!0).sort((g,d)=>{let S=e().isTokenPinned(g,o.type),y=e().isTokenPinned(d,o.type);if(S!==y)return S?-1:1;if(o.getBalanceFor){let E=o.getBalanceFor(g),N=o.getBalanceFor(d),I=Cu(E,N);if(I!==0)return I}let C=l.get(g.blockchain),T=l.get(d.blockchain),v=ts(g,C),b=ts(d,T);if(v!==b)return v?-1:1;if(g.isPopular!==d.isPopular)return g.isPopular?-1:1;if(o.searchFor){let E=nu(g,d,o.searchFor);if(E)return E}return g.isSecondaryCoin!==d.isSecondaryCoin?g.isSecondaryCoin?1:-1:C&&T?C.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=yt(o),s=n.get(a);return s||(s=r.find(c=>yt(c)===a)),s},findNativeToken:o=>{let n=o.feeAssets[0];return e().findToken({blockchain:o.name,address:n.address,symbol:n.symbol})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>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(Mu)},fetch:async()=>{try{let{routing:o}=e().config,n=nn("enableCentralizedSwappers",o),r=await ct().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],p=r.popularTokens,u=r.swappers.filter(h=>h.enabled),m=new Set;r.tokens.forEach(h=>{m.add(h.blockchain),l.push(h)}),r.blockchains.sort((h,g)=>h.sort-g.sort).forEach(h=>{h.enabled&&m.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let g=yt(h);c[h.blockchain]||(c[h.blockchain]=[]),s.set(g,h),c[h.blockchain]?.push(g)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as _C,Catalonia as DC,Chinese as _u,Denmark as $C,English as FC,Finland as OC,French as UC,German as zC,Greece as QC,Hungary as qC,India as HC,Indonesian as GC,Italian as VC,Japanese as KC,Korea as jC,Lithuania as XC,Malay as YC,Netherlands as ZC,Pakistan as JC,Philippines as RC,Poland as ek,Portuguese as tk,Russian as ok,SaudiArabia as nk,Serbia as rk,Slovakia as ik,SouthAfrica as ak,Spanish as sk,Swahili as lk,Swedish as ck,Thai as pk,Turkish as uk,Ukrainian as dk,Vietnamese as mk}from"@rango-dev/ui";var Du=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:ak},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:nk},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:_C},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:DC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:_u},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:_u},{title:"Danish",label:"Dansk",local:"da",SVGFlag:$C},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:ZC},{title:"English",label:"English",local:"en",SVGFlag:FC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:RC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:OC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:UC},{title:"German",label:"Deutsch",local:"de",SVGFlag:zC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:QC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:HC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:qC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:GC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:VC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:KC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:jC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:XC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:YC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:ek},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:tk},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:ok},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:rk},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:ik},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:sk},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:lk},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:ck},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:pk},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:uk},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:dk},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:JC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:mk}],an="en";var $u=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=Ro(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=ot("theme",n),s=ot("language",n),c=ot("liquiditySource",n),l=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||an},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||an}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=Kr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import Ts from"bignumber.js";import fk from"mitt";var ke=fk(),gk={on:ke.on,off:ke.off};var Fu=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 Ou from"bignumber.js";function Gt(t){return`${t.blockchain}${Io}${t.address}${Io}${t.symbol}`}i(Gt,"createAssetKey");function Uu(t,e){return`${Gt(e)}${Io}${t}`}i(Uu,"createBalanceKey");function qn(t){let[e,o,n]=t.split(Io);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(qn,"extractAssetFromBalanceKey");function ys(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 Ou(r??ce).multipliedBy(o[s].amount).toString():""})})}),o}i(ys,"computeNextBalancesWithNewPrices");function Ss(t,e){let o={};return t.balances?.forEach(n=>{let r=Uu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Ou(c??ce).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(Ss,"createBalanceStateForNewAccount");function Cs(t,e){for(let o in e){let n=qn(o);if(n){let r=Gt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(Cs,"updateAggregatedBalanceStateForNewAccount");function hk(t,e){let o=qn(e);if(!o)return t;let n=Gt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(hk,"removeBalanceFromAggregatedBalance");function ks(t,e,o){let n=t.connectedWallets.filter(l=>l.walletType===e);t.connectedWallets.forEach(l=>{l.walletType!==e&&(n=n.filter(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=qn(l);if(!p)return;!!n.find(m=>Uu(m.address,{address:p.address,blockchain:m.chain,symbol:p.symbol})===l)?a=hk(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(ks,"computeNextStateAfterWalletBalanceRemoval");function yk(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(yk,"matchWalletDetailsWithConnectedWallet");var Sk=au(),zu=Fu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>zn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>zn(s,a))?{...a,loading:!1,error:!1,explorerUrl:yk(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>zn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>zn(c,l)));if(s.length>0){let c=s.map(l=>{let p=!a.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:p,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!c.some(m=>m.walletType===u.walletType&&m.chain===u.chain)),...c]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=r.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address]?.push(...a[p.chain]||[]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await ct().getMultipleTokenBalance({assets:p.map(({symbol:m,address:f,blockchain:h})=>({symbol:m,address:f,blockchain:h})),walletAddress:l});if(u){let m=e()._balances,f=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},d={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};ys(d,g,m);let S=Ss(g,e);f=Cs(f,S),m={...m,...S}}),t(h=>({_balances:{...h._balances,...m},_aggregatedBalances:f}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{let a=o[0];a&&(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}=ks(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=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await ct().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(m=>{if(m.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};ys(f,m,l);let{_balances:h,_aggregatedBalances:g}=ks(f,r,{chains:[m.blockChain]});if(p=g,l=h,!e().connectedWallets.find(S=>S.walletType===r&&S.address===m.address&&S.chain===m.blockChain))return;let d=Ss(m,e);p=Cs(p,d),l={...l,...d}}),t(m=>({_balances:{...m._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let m=c.filter(f=>f.failed).map(f=>({chain:f.blockChain,walletType:r,address:f.address}));m.length>0&&await e().fetchMainTokensBalances(m,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=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 m=new Ts(u.amount),f=new Ts(l.amount);m.isGreaterThan(f)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(Io);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>Sk(()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,c)=>{let l=r[c],p=qn(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),m=l?.amount?new Ts(l.amount).shiftedBy(-l.decimals):ce;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:m.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Qu(t){return Ck()(kk((...e)=>({...zu(...e),...Pu(...e),...$u(...e),...Gp(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(Qu,"createAppStore");var qu=wk(null);function k(){let t=vk(qu);if(bk(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(k,"useAppStore");function Hu(t){let e=xk();return e.current||(e.current=Qu(t.config)),Tk.createElement(qu.Provider,{value:e.current},t.children)}i(Hu,"AppStoreProvider");function bt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=k(),{state:r,getWalletInfo:a}=Ek(),s=k().blockchains(),{handleDisconnect:c}=Xo(),l=zp(n()),p=yu(r,a,l,e);p=Ik()?p.filter(d=>d.showOnMobile!==!1&&r(d.type).installed):p;let u=ku(p,r),m=i(d=>!o.find(S=>S.walletType===d&&S.chain===e),"isExperimentalChainNotAdded"),f=Nk(()=>{let d=p?.filter(S=>S.state===ws.CONNECTING)||[];for(let S of d)c(S)},[vu(p)]);Bk(()=>()=>{f()},[]);let h=i(d=>{let S=d.find(C=>C.type===Hn.DEFAULT);return!S||S.state===ws.NOT_INSTALLED?!1:d.filter(C=>C.state!=ws.NOT_INSTALLED&&![Hn.DEFAULT,Hn.WALLET_CONNECT_2,Hn.LEDGER].includes(C.type)&&a(C.type).supportedChains.filter(T=>T.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),g=i((d,S,y)=>ni(y,S)&&m(d)&&!Ak.includes(d)||d==Hn.DEFAULT&&!h(p),"shouldExcludeWallet");return{list:u.filter(d=>!g(d.type,e??"",s)),terminateConnectingWallets:f}}i(bt,"useWalletList");import{Modal as Pk}from"@rango-dev/ui";import _k from"react";import{create as Lk}from"zustand";var Gu="rango-widget";var Gn=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(Gu),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 Mk=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),so=Mk;var oe=so(Lk()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),Wo=new Gn({onInit:()=>oe.setState({tabManagerInitiated:!0}),onClaim:()=>oe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>oe.setState({isActiveTab:!1})});function R(t){let{watermark:e}=oe();return _k.createElement(Pk,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as cn}from"@lingui/core";import{Alert as Xk,Button as Yk,Divider as yi,Image as Zk,MessageBox as Jk,RadioRoot as Rk}from"@rango-dev/ui";import pe,{useEffect as eT,useMemo as tT,useState as oT}from"react";import{i18n as Ok}from"@lingui/core";import{Typography as Ru}from"@rango-dev/ui";import sn from"react";function pi(t,e){return t.find(o=>o.name===e)?.logo}i(pi,"getBlockchainLogo");import{darkTheme as Dk,Image as $k,styled as Vt,Typography as Fk}from"@rango-dev/ui";var ui=Vt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${Dk} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),di=Vt("div",{display:"flex",gap:"$8",alignItems:"center"}),Ku=Vt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),ju=Vt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Xu=Vt("div",{display:"flex",gap:"$6",alignItems:"center"}),Yu=Vt("div",{paddingLeft:"48px"}),Zu=Vt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),Ju=Vt(Fk,{maxWidth:"100px"}),mi=Vt($k,{variants:{disabled:{true:{opacity:"0.5"}}}});function fi(t){let{namespace:e}=t,o=k().blockchains();return sn.createElement(ui,{unsupported:!0},sn.createElement(di,null,sn.createElement(mi,{src:pi(o,e.id),size:40,disabled:!0}),sn.createElement(ju,null,sn.createElement(Ru,{variant:"label",size:"large"},e.label),sn.createElement(Ru,{variant:"body",size:"xsmall"},Ok.t("(Currently not supported)")))))}i(fi,"NamespaceUnsupportedItem");import{Checkbox as Vk,Radio as Kk}from"@rango-dev/ui";import Es from"react";import{i18n as xs}from"@lingui/core";import{ChevronDownIcon as zk,ChevronUpIcon as Qk,Divider as qk,Typography as Vn}from"@rango-dev/ui";import Ae,{useEffect as Hk,useState as Gk}from"react";import{Image as td,Tooltip as od,Typography as Uk}from"@rango-dev/ui";import _t from"react";import{styled as ed}from"@rango-dev/ui";var vs=ed("div",{display:"flex",alignItems:"center",padding:0,margin:0}),gi=ed("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 bs=3;function nd(t){let{chains:e}=t;return _t.createElement(vs,{id:"widget-supported-chains-container"},e.slice(0,bs).map((o,n)=>_t.createElement(od,{key:o.name,container:W(),side:"bottom",align:"start",content:o.name,sideOffset:4},_t.createElement(gi,{firstItem:n===0},_t.createElement(td,{src:o.logo,size:15})))),e.length>bs&&_t.createElement(od,{container:W(),side:"bottom",align:"start",sideOffset:4,content:_t.createElement(vs,null,e.map((o,n)=>_t.createElement(gi,{key:o.name,firstItem:n===0},_t.createElement(td,{src:o.logo,size:15}))))},_t.createElement(gi,null,_t.createElement(Uk,{variant:"body",size:"xsmall"},"+",e.length-bs))))}i(nd,"SupportedChainsList");function Mo(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=Gk(!1),p=k().blockchains();Hk(()=>l(!1),[o]);let u=e.getSupportedChains(p),m=!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(Ku,{showSupportedChains:m||r||!!o},Ae.createElement(Xu,null,Ae.createElement(Vn,{variant:"label",size:"large"},e.label),r&&Ae.createElement(Vn,{variant:"body",size:"small",color:"success500"},xs.t("Connected")),!!o&&Ae.createElement(Vn,{variant:"body",size:"small",color:"error500"},xs.t("Connection failed"))),m&&Ae.createElement(nd,{chains:u}),r&&Ae.createElement(Ju,{variant:"body",size:"small",color:"neutral700"},a),o&&Ae.createElement(Zu,{onClick:()=>l(f=>!f)},Ae.createElement(Vn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},xs.t("See why")),c?Ae.createElement(Qk,{size:12,color:"gray"}):Ae.createElement(zk,{size:12,color:"gray"}))),n),!!o&&c&&Ae.createElement(Ae.Fragment,null,Ae.createElement(qk,{size:4}),Ae.createElement(Yu,null,Ae.createElement(Vn,{variant:"body",size:"small",color:"neutral700"},o))))}i(Mo,"NamespaceItem");function rd(t){let{onClick:e,type:o,namespace:n}=t;return Es.createElement(Mo,{namespace:n,onClick:e,suffix:o==="radio"?Es.createElement(Kk,{value:n.value}):Es.createElement(Vk,{checked:t.value})})}i(rd,"NamespaceListItem");import{Button as jk,styled as id}from"@rango-dev/ui";var hi=id("ul",{padding:0,paddingTop:"$16",paddingBottom:"$20",margin:0}),ln=id(jk,{minHeight:"$40"});function Kn(t){let{targetWallet:e}=t.value,o=e.properties?.find(d=>d.name==="namespaces"),n=e.isHub,r=e.isHub?o?.value.selection==="single":e.needsNamespace?.selection==="single",a=n?o?.value:e.needsNamespace,s=e.image,c=k().blockchains(),[l,p]=oT([]),u=tT(()=>a?.data.filter(d=>!d.unsupported),[e?.type]),m=i(d=>{p(r?[d]:S=>S.includes(d)?S.filter(y=>y!==d):S.concat(d))},"onSelect"),f=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");f?p([]):u&&p(u.map(d=>d.value))},"onSelectAll"),g=i(d=>r?pe.createElement(Rk,{value:l?.[0]},d):pe.createElement(pe.Fragment,null,d),"wrapRadioRoot");return eT(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let d=u.filter(S=>S.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(d.map(S=>S.value))}else p(u.map(d=>d.value))},[]),pe.createElement(pe.Fragment,null,pe.createElement(Jk,{type:"info",title:cn.t("Connect {wallet}",{wallet:e.title}),description:cn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:pe.createElement(Zk,{src:s,size:45})}),r?pe.createElement(pe.Fragment,null,pe.createElement(yi,{size:20}),pe.createElement(Xk,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:cn.t("This wallet can only connect to one chain at a time. ")})):pe.createElement(pe.Fragment,null,pe.createElement(yi,{size:30}),pe.createElement(Yk,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?cn.t("Deselect all"):cn.t("Select all"))),pe.createElement(hi,null,g(pe.createElement(pe.Fragment,null,a?.data.map((d,S,y)=>pe.createElement(pe.Fragment,{key:d.id},d.unsupported?pe.createElement(fi,{namespace:d}):pe.createElement(rd,{value:l.includes(d.value),namespace:d,type:r?"radio":"checkbox",onClick:()=>m(d.value)}),S!==y.length-1&&pe.createElement(yi,{size:10})))))),pe.createElement(yi,{size:20}),pe.createElement(ln,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},cn.t("Connect")))}i(Kn,"Namespaces");import{i18n as Si}from"@lingui/core";import{Button as pT,Divider as Ns,Image as uT,MessageBox as dT}from"@rango-dev/ui";import{useWallets as mT}from"@rango-dev/wallets-react";import Ze from"react";import{styled as nT}from"@rango-dev/ui";var ad=nT("div",{display:"flex",justifyContent:"end"});import{i18n as Is}from"@lingui/core";import{Button as rT,Spinner as iT}from"@rango-dev/ui";import{useWallets as aT}from"@rango-dev/wallets-react";import As,{useLayoutEffect as sT,useRef as lT,useState as cT}from"react";var sd=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,{connect:a,disconnect:s,state:c}=aT(),[l,p]=cT(null),m=c(o).namespaces?.get(n.value),f=m.accounts?.[0]?.split(":"),h=lT(!1);sT(()=>{r&&!h.current&&g(o,n.value)},[]);let g=i(async(y,C)=>{try{h.current=!0,await a(y,[{namespace:C,network:""}])}catch(T){p(T)}finally{h.current=!1}},"handleConnectNamespace"),d=i(async y=>{p(null),y.connected?await s(o,[n.value]):g(o,n.value)},"handleButtonClick"),S=i(()=>m.connected?Is.t("Disconnect"):l?Is.t("Try again"):Is.t("Connect"),"getButtonText");return As.createElement(Mo,{namespace:n,connected:m.connected,error:l?.message,address:m.connected?ao(f?.[f?.length-1]):"",suffix:m.connecting?As.createElement(iT,{color:"info"}):As.createElement(rT,{id:"widget-name-space-connect-btn",variant:"ghost",type:m.connected?"error":"primary",size:"xsmall",onClick:async()=>d(m)},S())})},"NamespaceDetachedItem");function jn(t){let{selectedNamespaces:e,value:o,onDisconnectWallet:n}=t,{targetWallet:r}=o,{state:a}=mT(),s=a(r.type);return Ze.createElement(Ze.Fragment,null,Ze.createElement(dT,{type:"info",title:Si.t("Connect {wallet}",{wallet:r.type}),description:Si.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:Ze.createElement(uT,{src:r.image,size:45})}),Ze.createElement(Ns,{size:30}),Ze.createElement(ad,null,Ze.createElement(pT,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:s.connecting||!s.connected,onClick:n},Si.t("Disconnect wallet"))),Ze.createElement(hi,{id:"widget-detached-namespace-list",as:"ul"},r.needsNamespace?.data.map((c,l,p)=>Ze.createElement(Ze.Fragment,{key:c.id},c.unsupported?Ze.createElement(fi,{namespace:c}):Ze.createElement(sd,{walletType:r.type,namespace:c,initialConnect:e?.includes(c.value)}),l!==p.length-1&&Ze.createElement(Ns,{size:10})))),Ze.createElement(Ns,{size:20}),Ze.createElement(ln,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},Si.t("Done")))}i(jn,"Detached");import{i18n as pn}from"@lingui/core";import{Divider as cd,Image as yT,MessageBox as ST,Select as CT,TextField as kT}from"@rango-dev/ui";import St,{useEffect as TT,useState as pd}from"react";import{namespaces as fT}from"@rango-dev/wallets-shared";var Ci={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Bs(t){let e=t?fT[t]?.derivationPaths:null;return e?[...e,Ci]:[]}i(Bs,"getDerivationPaths");import{Button as gT,styled as Ws,Typography as hT}from"@rango-dev/ui";var ld=Ws("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ms=Ws(hT,{paddingLeft:"$10"}),Ls={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},zP=Ws(gT,{minHeight:"$40"});var ud="0";function Xn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=pd(null),[c,l]=pd(ud),p=a===Ci.id,u=Bs(o),m=i(({value:h})=>{let g=u?.find(d=>d.id===h);g&&(a===Ci.id&&Number.isNaN(Number(c))&&l(ud),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 TT(()=>{s(Bs(o)[0]?.id||null)},[o]),St.createElement(St.Fragment,null,St.createElement(cd,{size:20}),St.createElement(ST,{type:"info",title:pn.t("Select Derivation Path"),description:pn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:St.createElement(yT,{src:n,size:45})}),St.createElement(ld,null,St.createElement(Ms,{variant:"body",size:"xsmall",color:"$neutral600"},pn.t("Choose Derivation Path Template")),St.createElement(CT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:m,styles:{trigger:Ls}}),St.createElement(cd,{size:20}),St.createElement(Ms,{variant:"body",size:"xsmall",color:"$neutral600"},p?pn.t("Enter Path"):pn.t("Enter Index")),St.createElement(kT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Ls})),St.createElement(ln,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},pn.t("Confirm")))}i(Xn,"DerivationPath");import{i18n as un}from"@lingui/core";import{Image as bT,MessageBox as Ps,WalletState as xT}from"@rango-dev/ui";import{useWallets as ET}from"@rango-dev/wallets-react";import Lo from"react";import{keyframes as wT,styled as ki}from"@rango-dev/ui";var JP=ki("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),dd=ki("div",{position:"relative"}),vT=wT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),md=ki("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${vT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),fd=ki("div",{"& img":{borderRadius:"50%"}});function _s(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=ET();return On(a(n))===xT.CONNECTED?Lo.createElement(Ps,{type:"success",title:un.t("Wallet Connected"),description:un.t("Your wallet is connected, you can use it to swap.")}):o?Lo.createElement(Ps,{type:"error",title:un.t("Failed to Connect"),description:o||un.t("Your wallet is not connected. Please try again.")}):Lo.createElement(Ps,{type:"loading",title:un.t("Connecting to your wallet"),description:un.t("Click connect in your wallet popup."),icon:Lo.createElement(dd,null,Lo.createElement(fd,null,Lo.createElement(bT,{src:r,size:45})),Lo.createElement(md,null))})}i(_s,"ConnectStatus");import{i18n as Ds}from"@lingui/core";import{Button as IT,Divider as gd,MessageBox as AT}from"@rango-dev/ui";import Ti from"react";function $s(t){let{displayName:e,onConfirm:o,id:n}=t;return Ti.createElement(AT,{id:n,title:Ds.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Ds.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},Ti.createElement(gd,{size:18}),Ti.createElement(gd,{size:32}),Ti.createElement(IT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Ds.t("Confirm")))}i($s,"ExperimentalChain");function hd(t,e){return t().status==="init"&&!!e}i(hd,"isOnStatus");function Yn(t){return t().status==="namespace"}i(Yn,"isOnNamespace");function Zn(t){return t().status==="derivationPath"}i(Zn,"isOnDerivationPath");function xo(t){return t().status==="detached"}i(xo,"isOnDetached");var MT=3e3,LT=300;function Jn(t){let e=WT(),[o,n]=yd(!1),[r,a]=yd(),s=i(v=>{a(v.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=bt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:m,resetState:f,handleDisconnect:h}=Xo(),g=i(v=>{u(t.wallet,v).then(T).catch(s)},"handleConfirmNamespaces"),d=i(()=>{y()},"handleDetachedConfirm"),S=i(v=>{if(!v)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(v).then(T).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),T=i((v,b)=>{let E=v.status==="connected",N=["disconnected","disconnected-unhandled"].includes(v.status);E?(t.onConnect?.(),b||(e.current=setTimeout(y,MT))):N&&y()},"afterConnected");return BT(()=>{if(t.wallet){C();let v=!1,b=!0;i(()=>{setTimeout(()=>{b=!1,v||n(!0)},LT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(N=>{["namespace","Detached","derivation-path"].includes(N.status)||(v=!0),T(N,b)}).catch(s)}},[t.wallet]),lo.createElement(R,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:W()},hd(m,t.wallet)&&lo.createElement(lo.Fragment,null,lo.createElement(_s,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),lo.createElement(NT,{direction:"vertical",size:32})),Yn(m)&&lo.createElement(Kn,{onConfirm:g,value:m().namespace}),Zn(m)&&lo.createElement(Xn,{onConfirm:S,value:m().derivationPath}),xo(m)&&lo.createElement(jn,{onConfirm:d,onDisconnectWallet:()=>void h(m().namespace.targetWallet),value:m().namespace,selectedNamespaces:m().selectedNamespaces}))}i(Jn,"StatefulConnectModal");import Ka from"react";import PT,{Fragment as _T}from"react";import{MemoryRouter as DT,useInRouterContext as $T}from"react-router";function wi({children:t}){let o=$T()?_T:DT;return PT.createElement(o,null,t)}i(wi,"AppRouter");import{I18nManager as P0}from"@rango-dev/ui";import Ep from"react";import Qe from"react";import{useRoutes as m0}from"react-router-dom";var O={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as mn,useRef as Ni}from"react";import nt from"bignumber.js";import{create as Yd}from"zustand";import{subscribeWithSelector as Zd}from"zustand/middleware";import{createContext as FT,useContext as OT}from"react";var Sd=FT({swapMode:"swap",isMultiMode:!1});function Ct(){let{swapMode:t,isMultiMode:e}=OT(Sd);return{swapMode:t,isMultiMode:e}}i(Ct,"useSwapMode");import{i18n as Tt}from"@lingui/core";import{getRelatedWalletOrNull as QT,RouteEventType as gD}from"@rango-dev/queue-manager-rango-preset";import Ke from"bignumber.js";import{PendingSwapNetworkStatus as er}from"rango-types";import{i18n as Ve}from"@lingui/core";var ne=i(()=>({genericServerError:Ve.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Ve.t("Please reset your liquidity sources."),description:Ve.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Ve.t("No Routes Found."),description:Ve.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:Ve.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Ve.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Ve.t("High Price Impact"),title:Ve.t("Price impact is too high!"),description:Ve.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Ve.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Ve.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Ve.t("USD Price Unknown"),title:Ve.t("USD Price Unknown, Cannot calculate Price Impact."),description:Ve.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Ve.t("Confirm USD Price Unknown")}}),"errorMessages");function Cd(t){return t.type===0?t.diagnosisMessage??ne().noResultError.title:t.type===1?t.diagnosisMessage??ne().genericServerError:""}i(Cd,"getQuoteErrorMessage");import{i18n as vi}from"@lingui/core";var Po=i(()=>({connectWallet:vi.t("Connect Wallet"),swap:vi.t("Swap"),swapAnyway:vi.t("Swap anyway"),ethWarning:vi.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Fs(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(Fs,"getFeeLabel");var Os=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],kd=100,Td=30,wd=15,vd=60;var bd=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],xd=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as zT}from"@rango-dev/queue-manager-rango-preset";import tD from"bignumber.js";function Id(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(Id,"getRequiredBalanceOfWallet");function jt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(jt,"getPriceImpactLevel");function bi(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=zT(t.steps);if(!r||!n)return{fromBlockchain:null,fromToken:void 0,toBlockchain:null,toToken:void 0,inputAmount:""};let s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=Eo(a?a.toBlockchain:n.fromBlockchain,e),l=Eo(r.toBlockchain,e),p=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:m}}i(bi,"createRetryQuote");function dn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=Rn(o),s=kt(o);if(o&&a&&s){let p=Kt(a.toString(),s.toString());if(!!p&&Md(a,p)){let m=Ei(o?.swaps,n),f=jt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:m,warningLevel:f}}}if(e&&_d(e,o))return{type:4,usdValueChange:_(kt(o)?.minus(kt(e)??0).toString()??"0",null,2),percentageChange:_(Kt(kt(e)??"1",kt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=Ii(o.swaps),l=r>tn;if(Pd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Ld(o,r),minRequiredSlippage:c};return null}i(dn,"generateQuoteWarnings");function Ad(t){return![4].includes(t.type)}i(Ad,"isQuoteWarningConfirmationRequired");function Kt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Us(t.toString(),e.toString());return n&&n<0?n:null}i(Kt,"getPriceImpact");var Nd=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"),xi=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"),Bd=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"),Wd=i(t=>{let e=i((o,n)=>{let r=Os.indexOf(o.value),a=Os.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Md(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return bd.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ke(r)))}i(Md,"hasHighValueLoss");function Dd(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ke(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ke(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(Dd,"hasLimitError");function $d(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new Ke(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new Ke(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 Ke(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ke(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=Tt.t({id:"Required: >= {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=Tt.t({id:"Required: > {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=Tt.t({id:"Required: <= {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=Tt.t({id:"Required: < {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i($d,"getLimitErrorMessage");function Fd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Po().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Po().swap,action:"confirm-swap",disabled:!0}:s?{title:Po().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Po().ethWarning,action:"confirm-warning",disabled:!1}:{title:Po().swap,action:"confirm-swap",disabled:!1}:{title:Po().connectWallet,action:"connect-wallet",disabled:!1}}i(Fd,"getSwapButtonState");function zs(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ce))&&e&&e!=="0"&&n!==0)}i(zs,"canComputePriceImpact");function Qs(t,e){let o=ce;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(!r||r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ke(r.amount).multipliedBy(a||0))}return o}i(Qs,"getUsdFeeOfStep");function Ei(t,e){return t.reduce((o,n)=>o.plus(Qs(n,e)),ce)}i(Ei,"getTotalFeeInUsd");function qs(t){let e=ce,o=new Ke(t.price||0);return e=e.plus(new Ke(t.amount).multipliedBy(o)),e}i(qs,"getUsdFee");function Od(t){return t.reduce((e,o)=>e.plus(qs(o)),ce)}i(Od,"getTotalFeesInUsd");function Ud(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(Ud,"getFeesGroup");function zd(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(zd,"checkSlippageErrors");function Ld(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(Ld,"checkSlippageWarnings");function Ii(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(Ii,"getMinRequiredSlippage");function Pd(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Pd,"hasProperSlippage");function Qd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:m,affiliateWallets:f,destination:h,contractCall:g}=t,d=a?.reduce((C,T)=>(C[T.chain]=T.address,C),{}),S=[];return r?.forEach(C=>{S.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:m??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:d??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1}}}i(Qd,"createQuoteRequestBody");function qd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(qd,"getWalletsForNewSwap");function Rn(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new Ke(e).multipliedBy(o)}i(Rn,"getUsdInputFrom");function kt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new Ke(e).multipliedBy(o)}i(kt,"getUsdOutputFrom");function Us(t,e){return new Ke(e).div(new Ke(t)).minus(1).multipliedBy(kd).toNumber()}i(Us,"getPercentageChange");function _d(t,e){let o=Rn(t),n=kt(t),r=kt(e);if(!o||!n||!r)return!1;let a=Us(n.toString(),r.toString());return xd.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(_d,"isOutputAmountChangedExcessively");function Hd(t,e,o){let n=t.validationStatus,r=No({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>Id(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=_(new Ke(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=_(new Ke(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=Tt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=Tt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=Tt.t(" for input and network fee")),Tt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:ht(s.asset.blockchain,o)}})})}i(Hd,"generateBalanceWarnings");function tr(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==er.NetworkChanged}i(tr,"isNetworkStatusInWarningState");function Gd(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,"")),tr(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?QT(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case er.WaitingForConnectingWallet:r=u?Tt.t("Connect {wallet}",{wallet:u}):r;break;case er.WaitingForQueue:r=r||Tt.t("Waiting for other running tasks to be finished");break;case er.WaitingForNetworkChange:r=r||Tt.t("Waiting for changing wallet network");break;case er.NetworkChangeFailed:r=r||Tt.t("The network switch could not be completed. Please try again, or switch the network manually in your wallet.");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(Gd,"getSwapMessages");function Vd(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(Vd,"getLastConvertedTokenInFailedSwap");function Kd(t){return t.status==="failed"}i(Kd,"shouldRetrySwap");function jd(t,e,o,n,r,a){if(!n||t)return!0;let s=No({filter:"all",quote:n}),c=No({filter:"required",quote:n}),l=s.every(m=>r.some(f=>f.chain===m)),p=c.every(m=>r.some(f=>f.chain===m)),u=o&&a?Zo(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(jd,"isConfirmSwapDisabled");function Xd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Xd,"isTokensIdentical");var Ai=i((t,e)=>t?.usdPrice?new nt(e||ce).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Jd=i(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new nt(0),outputUsdValue:new nt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=ce,a=o.inputUsdValue;return Fn(o.inputAmount)?(e&&(n=e?.outputAmount?new nt(e?.outputAmount):null,a=Rn(e)??ce,r=kt(e)??ce),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new nt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new nt(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new nt(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:Ai(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new nt(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),sanitizeInputAmount:e=>{let o=gu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;Rr(e)||(o=su(o),o=lu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new nt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Ai(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:Ai(n??null,s),outputUsdValue:new nt(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?Ai(e.toToken,e.outputAmount?.toString()||""):new nt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new nt(0),inputUsdValue:new nt(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new nt(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}),"initializer"),Rd=Yd()(Zd(Jd)),em=Yd()(Zd(Jd)),qT=so(Rd),HT=so(em);function U(){let{swapMode:t}=Ct();return so(t==="refuel"?em:Rd)}i(U,"useQuoteStore");var tm=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"),om=qT.subscribe(tm),nm=HT.subscribe(tm);function rm(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=U()(),u=k().config,m=k().fetchStatus,f=k().blockchains(),{findToken:h}=k(),{setAffiliateRef:g,setAffiliatePercent:d,setAffiliateWallets:S}=k(),y=u?.from?.tokens,C=u?.from?.blockchains,T=u?.to?.tokens,v=u?.to?.blockchains,b=Ni(void 0),E=Ni(void 0),N=Ni(void 0),I=Ni(void 0);mn(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),mn(()=>{if(m==="success"){r();let x=f.find(M=>M.name===u?.from?.blockchain),w=u?.from?.token,B=w&&h(w);(x||!x&&N.current)&&n(x??null),B?a({token:B,meta:{blockchains:f}}):!B&&b.current&&a({token:null}),N.current=u?.from?.blockchain,b.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),mn(()=>{us(s,y)&&a({token:null}),ds(l,C)&&n(null)},[y,C]),mn(()=>{us(c,T)&&a({token:null}),ds(p,v)&&o(null)},[T,v]),mn(()=>{if(m==="success"){r();let x=f.find(M=>M.name===u?.to?.blockchain),w=u?.to?.token,B=w&&h(w);(x||!x&&I.current)&&o(x??null),B?e({token:B,meta:{blockchains:f}}):!B&&E.current&&e({token:null}),I.current=u?.to?.blockchain,E.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),mn(()=>{g(u?.affiliate?.ref??null),d(u?.affiliate?.percent??null),S(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(rm,"useSyncStoresWithConfig");import{useEffect as Vs,useRef as GT}from"react";import{useInRouterContext as VT,useLocation as KT,useSearchParams as jT}from"react-router-dom";function Hs(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(Hs,"convertTokenSearchParamToAsset");function Gs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Gs,"tokenToSearchParam");function js(){let t=KT(),[e,o]=jT(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:m,setInputAmount:f}=U()(),h=k().fetchStatus,g=k().blockchains(),d=VT(),{updateIframe:S,updateCampaignMode:y}=k(),C=k().isInCampaignMode(),T=GT(),{findToken:v}=k(),b=i(()=>{let N={};for(let[L,Y]of e.entries())L.startsWith("utm_")&&(N[L]=Y);let I=e.get("fromAmount"),x=e.get("fromBlockchain"),w=e.get("fromToken"),B=e.get("toBlockchain"),M=e.get("toToken"),$=e.get("autoConnect"),Q=e.get("clientUrl"),K=e.get("liquiditySources"),j=e.get("blockchain");return{fromAmount:I,fromBlockchain:x,fromToken:w,toBlockchain:B,toToken:M,autoConnect:$,clientUrl:Q,liquiditySources:K,utmQueryParams:N,blockchain:j}},"getUrlSearchParams"),E=i(N=>{for(let I in N)N[I]||delete N[I];o(N,{replace:!0})},"updateUrlSearchParams");Vs(()=>{let{autoConnect:N,clientUrl:I,utmQueryParams:x,blockchain:w}=b();d&&h==="success"&&E({fromBlockchain:n?.name,fromToken:Gs(a),toBlockchain:r?.name,toToken:Gs(s),fromAmount:c,autoConnect:N??void 0,clientUrl:I??void 0,blockchain:w??void 0,liquiditySources:C?T.current:void 0,...x})},[t.pathname,c,n,a,r,s,C,h]),Vs(()=>{if(!d)return;let N=b();if(!T.current&&N.liquiditySources&&(T.current=N.liquiditySources),N.fromAmount&&f(N.fromAmount),h==="success"){let I=g.find(Q=>Q.name===N.fromBlockchain),x=N.fromToken&&I&&Hs(N.fromToken,I),w=x?v(x):void 0,B=g.find(Q=>Q.name===N.toBlockchain),M=N.toToken&&B&&Hs(N.toToken,B),$=M?v(M):void 0;I&&(l(I),w&&u({token:w,meta:{blockchains:g}})),B&&(p(B),$&&m({token:$,meta:{blockchains:g}}))}},[h]),Vs(()=>{let{clientUrl:N,liquiditySources:I}=b();S("clientUrl",N||void 0),y("liquiditySources",I?.split(",")??void 0)},[])}i(js,"useSyncUrlAndStore");import{i18n as Sn}from"@lingui/core";import{Alert as gv,Button as hv,darkTheme as yv,Divider as xl,DoneIcon as Sv,styled as Cv,TextField as kv,Typography as Tv}from"@rango-dev/ui";import Xe,{useState as wv}from"react";import{useNavigate as vv,useSearchParams as bv}from"react-router-dom";import{ChevronRightIcon as XT,Divider as cm,Image as YT,Typography as pm}from"@rango-dev/ui";import xt from"react";import{darkTheme as im,styled as Xs}from"@rango-dev/ui";var am=Xs("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${im} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${im} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),sm=Xs("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),lm=Xs("div",{display:"flex"});function Ys(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return xt.createElement(sm,null,xt.createElement(pm,{size:"large",variant:"label"},n),xt.createElement(cm,{size:10}),xt.createElement(am,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},xt.createElement(lm,null,r&&xt.createElement(xt.Fragment,null,xt.createElement(YT,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),xt.createElement(cm,{size:4,direction:"horizontal"})),xt.createElement(pm,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),xt.createElement(XT,{size:12,color:"black"})))}i(Ys,"BlockchainSelectorButton");import{i18n as tl}from"@lingui/core";import{Button as ew,Divider as fm,MessageBox as tw}from"@rango-dev/ui";import co,{useEffect as gm,useState as ol}from"react";import{i18n as Bi}from"@lingui/core";import{Divider as _o,ExternalLinkIcon as JT,Image as RT,Typography as gn}from"@rango-dev/ui";import Te from"react";var um="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function dm(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(dm,"generateExplorerLink");import{Button as ZT,darkTheme as fn,styled as Zs}from"@rango-dev/ui";var Js=Zs("a",{textDecoration:"none",color:"$colors$neutral700",[`.${fn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${fn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${fn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${fn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),mm=Zs("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${fn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${fn} &`]:{color:"$colors$neutral900"}}}),Rs=Zs(ZT,{minHeight:"$40"});function el(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=dm(n.address,s),l=i(()=>window.open(um,"_blank"),"onClickLearnMore");return Te.createElement(R,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:W()},Te.createElement(mm,null,Te.createElement(RT,{src:n.image===""?jr:n.image,size:45,type:"circular"}),Te.createElement(_o,{size:4}),Te.createElement(gn,{variant:"title",size:"medium"},n.symbol),Te.createElement(gn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),Te.createElement(_o,{size:4}),Te.createElement(gn,{variant:"body",size:"medium"},c?Te.createElement(Js,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,Te.createElement(JT,{size:12,color:"gray"})):Te.createElement(Js,null,n.address)),Te.createElement(_o,{size:4}),n.coinSource&&Te.createElement(gn,{className:"_coin-source",variant:"body",size:"xsmall"},Bi.t("via")," ",Te.createElement(gn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),Te.createElement(_o,{size:"32"}),Te.createElement(gn,{size:"medium",variant:"body",className:"_custom-token-description"},Bi.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."))),Te.createElement(_o,{size:40}),Te.createElement(_o,{size:10}),Te.createElement(Rs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Bi.t("Import Anyway")),Te.createElement(_o,{size:10}),Te.createElement(Rs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Bi.t("Learn More")))}i(el,"CustomTokenModal");function or(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=k(),[m,f]=ol(!1),[h,g]=ol(!1),[d,S]=ol(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),T=i(()=>{S(!0),C()},"handleErrorModalButtonClick"),v=i(()=>{d&&n?.type==="network-error"&&(S(!1),y()),l()},"handleExit"),b=i(()=>{e&&(u(e),c())},"handleSubmit");return gm(()=>{n&&f(!0)},[n]),gm(()=>{o&&e&&g(!0)},[o,e]),co.createElement(co.Fragment,null,co.createElement(R,{open:m,dismissible:!0,id:"widget-add-custom-token-modal",onClose:C,onExit:v,container:W()},co.createElement(tw,{title:n?.title??"",type:"error",description:n?.message||tl.t("Failed Network, Please retry.")},co.createElement(fm,{size:40}),co.createElement(fm,{size:10}),co.createElement(ew,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:T},n?.type==="network-error"?tl.t("Retry"):tl.t("Add another custom token")))),o&&e&&co.createElement(el,{blockchain:o,token:e,onSubmitClick:b,onClose:()=>g(!1),open:h,onExit:p}))}i(or,"ImportCustomToken");import{useManager as cv}from"@rango-dev/queue-manager-react";import{BottomLogo as pv,Divider as Km,Header as uv}from"@rango-dev/ui";import Be,{useEffect as Oi,useLayoutEffect as dv,useRef as jm,useState as Xm}from"react";import{useRef as ow}from"react";function nr(){return window.self!==window.top}i(nr,"isAppLoadedIntoIframe");function nl(){let t=ow(null),{iframe:e}=k(),o=nr()&&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(nl,"useIframe");import{useNavigate as nw}from"react-router-dom";function je(){let t=nw();return()=>t(-1)}i(je,"useNavigateBack");import{useLayoutEffect as rw,useState as rr}from"react";var hm=480,ym=768,Sm=1024,Cm=1200,iw=i(()=>{let[t,e]=rr(!1),[o,n]=rr(!1),[r,a]=rr(!1),[s,c]=rr(!1),[l,p]=rr(!1),u=i(()=>{e(window.innerWidth<=hm),n(window.innerWidth>hm&&window.innerWidth<=ym),a(window.innerWidth>ym&&window.innerWidth<=Sm),c(window.innerWidth>Sm&&window.innerWidth<=Cm),p(window.innerWidth>Cm)},"handleResize");return rw(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),hn=iw;import{createTheme as pl,darkTheme as Sw,lightTheme as Cw}from"@rango-dev/ui";import{useEffect as kw,useState as Tw}from"react";import{theme as hw,darkColors as yw}from"@rango-dev/ui";import ll from"react";var Wi=16,Mi=255,km=.11;function aw(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(aw,"expandShortHexColor");function sw(t,e){return t.padStart(e,"0")}i(sw,"pad");function rl(t){let e=Math.min(Math.max(Math.round(t),0),Mi);return sw(e.toString(Wi),2)}i(rl,"intToHex");function lw(t){return`#${rl(t.red)}${rl(t.green)}${rl(t.blue)}`}i(lw,"rgbToHex");function cw(t){let e=parseInt(t.slice(1,3),Wi),o=parseInt(t.slice(3,5),Wi),n=parseInt(t.slice(5,7),Wi);return{red:e,green:o,blue:n}}i(cw,"hexToRGB");function pw(t,e){let o=1-km*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(pw,"generateShade");function uw(t,e){let o=km*e;return{red:t.red+(Mi-t.red)*o,green:t.green+(Mi-t.green)*o,blue:t.blue+(Mi-t.blue)*o}}i(uw,"generateTint");function dw(t){return Tm(t,pw)}i(dw,"calculateShades");function mw(t){return Tm(t,uw)}i(mw,"calculateTints");function Tm(t,e){let o=cw(t),n=[];for(let r=1;r<9;r++)n.push(lw(e(o,r)));return n}i(Tm,"calculateColors");function il(t,e,o){let a=mw(t).reverse().concat(t),s=dw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let m=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${m}`]=f)}return l}i(il,"createTintsAndShades");function al(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)&&!mu(r)){let l=aw(a);Object.assign(n,il(l,r,s))}}return{...n,...e}}i(al,"expandToGenerateThemeColors");var wm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),fw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=wm(o%52)+e;return wm(o%52)+e},"toAlphabeticName"),gw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),sl=i(t=>fw(gw(5381,JSON.stringify(t))>>>0),"toHash");function cl(t){let e=hw.colors,o={...e,...yw},n,r;if(t?.light){let s={colors:al(e,t.light)};n={id:`${ps}-light-${sl(s)}`,tokens:s}}if(t?.dark){let s={colors:al(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ps}-dark-${sl(s)}`,tokens:s}}return{light:n,dark:r}}i(cl,"customizedThemeTokens");function vm(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ll.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ll.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(ll.cloneElement(e,{key:c}))}}),o}i(vm,"joinList");function bm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(bm,"doesWindowPreferDarkColorScheme");function po(t){let{colors:e,fontFamily:o=Zp,borderRadius:n=Iu,secondaryBorderRadius:r=Au}=t,[a,s]=Tw(bm()?"dark":"light"),{theme:c}=k(),{dark:l,light:p}=cl(e),u=pl({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[u.className,Cw.className],f=[u.className,Sw.className];if(p){let g=pl(p.id,p.tokens);m.push(g.className)}if(l){let g=pl(l.id,l.tokens);f.push(g.className)}return kw(()=>{let g=i(d=>{d.matches?s("dark"):s("light")},"switchThemeListener");return bm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),d=f.join(" ");return c==="auto"?a==="dark"?d:g:c==="dark"?d:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(po,"useTheme");var wt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as xm}from"@lingui/core";import{Alert as ww,Button as vw}from"@rango-dev/ui";import Em from"react";function ul(t){return Em.createElement(ww,{action:Em.createElement(vw,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},xm.t("Activate this tab")),type:"warning",variant:"alarm",title:xm.t("Another tab is open and handles transactions.")})}i(ul,"ActivateTabAlert");import{i18n as dl}from"@lingui/core";import{Button as bw,Divider as xw,MessageBox as Ew}from"@rango-dev/ui";import Li from"react";function ml(t){let{open:e,onClose:o,onConfirm:n}=t;return Li.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:W()},Li.createElement(Ew,{title:dl.t("Activate current tab"),type:"warning",description:dl.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.")},Li.createElement(xw,{size:20}),Li.createElement(bw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},dl.t("Confirm"))))}i(ml,"ActivateTabModal");import{ChevronLeftIcon as Nw}from"@rango-dev/ui";import Pm from"react";import{css as Iw,darkTheme as Im,IconButton as Aw,styled as Do}from"@rango-dev/ui";var Dt=Do(Aw,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Im} &`]:{backgroundColor:"$neutral"}}}),Am=Do("div",{position:"absolute",background:"$secondary500",[`.${Im} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),uo=Do("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Nm=Do("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),Bm=Do("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Wm=Do("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Mm=Iw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Lm=Do("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function fl(t){return Pm.createElement(Dt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Pm.createElement(Nw,{color:"black",size:16}))}i(fl,"BackButton");import{i18n as Bw}from"@lingui/core";import{Button as Ww,Typography as Mw}from"@rango-dev/ui";import gl from"react";function hl(t){return gl.createElement(uo,null,gl.createElement(Ww,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},gl.createElement(Mw,{variant:"label",size:"medium",color:"error500"},Bw.t("Cancel"))))}i(hl,"CancelButton");import{i18n as Lw}from"@lingui/core";import{Image as Pw,Tooltip as _w,WalletIcon as Dw}from"@rango-dev/ui";import $o from"react";function yl(t){let{list:e}=bt(),o=e.filter(r=>r.state==="connected"),n=o.length?$o.createElement("div",{className:Mm()},o.map(r=>$o.createElement(Lm,{key:r.title},$o.createElement(Pw,{src:r.image,size:14})))):Lw.t("Connect Wallet");return $o.createElement(_w,{container:t.container,side:"bottom",content:n},$o.createElement(Dt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&$o.createElement(Am,null),$o.createElement(Dw,{size:18,color:"black"})))}i(yl,"WalletButton");import{i18n as _i}from"@lingui/core";import{NotificationsIcon as Jw,Popover as Rw,SettingsIcon as ev,Tooltip as Di,TransactionIcon as tv}from"@rango-dev/ui";import De from"react";import{Notifications as Uw}from"@rango-dev/ui";import zw from"react";import{useNavigate as Qw}from"react-router-dom";import{create as $w}from"zustand";import{persist as Fw,subscribeWithSelector as Ow}from"zustand/middleware";var Ne=so($w()(Fw(Ow((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 Sl(){let t=Qw(),{getNotifications:e,clearNotifications:o}=Ne(),n=e(),r=k().blockchains(),{findToken:a}=k();return zw.createElement(Uw,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Qp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${O.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(Sl,"NotificationContent");import{useManager as qw}from"@rango-dev/queue-manager-react";import{InProgressIcon as Hw}from"@rango-dev/ui";import _m from"react";var Gw=i(()=>{let{manager:t}=qw();return wt(t).map(({swap:o})=>o).find(o=>o.status==="running")?_m.createElement(Wm,{id:"widget-header-history-badge-container"},_m.createElement(Hw,{color:"info",size:6})):null},"InProgressTransactionBadge"),Dm=Gw;import{EventSeverity as Vw}from"@rango-dev/queue-manager-rango-preset";import{Typography as Kw}from"@rango-dev/ui";import $m from"react";function Fm(){let{getNotifications:t}=Ne(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Vw.WARNING);return o?$m.createElement(Nm,{isSever:n},$m.createElement(Kw,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Fm,"NotificationsBadge");import{RefreshProgressButton as jw}from"@rango-dev/ui";import Cl,{useEffect as Xw,useState as Om}from"react";var Yw=1e3,Um=60,Zw=100;function Pi({onClick:t}){let[e,o]=Om(0),[n,r]=Om(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Xw(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===Um&&c()},Yw):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 Cl.createElement(Dt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},Cl.createElement(Bm,{onTransitionEnd:()=>r(!1),isRefetched:n},Cl.createElement(jw,{size:22,color:t?"black":"gray",progress:e/Um*Zw})))}i(Pi,"RefreshButton");function Fo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=k(),c=ot("notification",s)||r.includes("notifications");return De.createElement(De.Fragment,null,!r.includes("refresh")&&De.createElement(Di,{container:a||W(),side:"top",content:_i.t("Refresh")},De.createElement(Pi,{onClick:e})),!c&&De.createElement(Rw,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:W(),content:De.createElement(Sl,null)},De.createElement("div",null,De.createElement(Di,{container:W(),side:"top",content:_i.t("Notifications")},De.createElement(Dt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},De.createElement(Jw,{size:18,color:"black"}),De.createElement(Fm,null))))),!r.includes("settings")&&De.createElement(Di,{container:W(),side:"top",content:_i.t("Settings")},De.createElement(Dt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},De.createElement(ev,{size:18,color:"black"}))),!r.includes("history")&&De.createElement(Di,{container:W(),side:"top",content:_i.t("History")},De.createElement(Dt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},De.createElement(tv,{size:18,color:"black"}),De.createElement(Dm,null))))}i(Fo,"HeaderButtons");import{i18n as kl}from"@lingui/core";import{Divider as Qm,MessageBox as rv,RefreshIcon as iv}from"@rango-dev/ui";import yn from"react";import{Button as ov,styled as nv}from"@rango-dev/ui";var zm=nv(ov,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Tl(t){let{open:e,onClose:o}=t;return yn.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:W()},yn.createElement(rv,{title:kl.t("Something went wrong"),type:"error",description:kl.t("Something went wrong. Please refresh the app.")},yn.createElement(Qm,{size:30}),yn.createElement(zm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},yn.createElement(iv,{size:20,color:"primary"}),yn.createElement(Qm,{size:4,direction:"horizontal"}),kl.t("Refresh"))))}i(Tl,"RefreshModal");function wl(t){let e=t.target;if(e){let o=e.scrollTop,n=W();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(wl,"onScrollContentAttachStatusToContainer");import{css as sv,styled as $i}from"@rango-dev/ui";var Fi=sv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),qm=$i("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:700},fixed:{minHeight:425,maxHeight:700,height:700}},showBanner:{true:{overflow:"visible"}}}}),Hm=$i("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Gm=$i("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}}),Vm=$i("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=nl(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=k(),[u,m]=Xm(!1),{config:{features:f,theme:h}}=k(),{watermark:g,setShowCompactTokenSelector:d}=oe(),S=g==="FULL",{activeTheme:y}=po(h||{}),[C,T]=Xm(!1),v=ot("connectWalletButton",f),{isActiveTab:b,tabManagerInitiated:E,showActivateTabModal:N,setShowActivateTabModal:I,activateCurrentTab:x}=oe(),w=je(),{manager:B}=cv(),{isTablet:M,isMobile:$}=hn(),K=wt(B).map(({swap:ue})=>ue).some(ue=>ue.status==="running"),j=i(()=>x(Wo.forceClaim,K),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),Y=typeof r.hasBackButton>"u"||r.hasBackButton,ee=jm(null),Z=jm(null);return Oi(()=>{let ue=(p?.swapBoxBanner?.routes?.length??0)===0,le=!!p?.swapBoxBanner?.routes?.some(he=>location.pathname.endsWith(he));T(!!p?.swapBoxBanner&&(ue||le))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),Oi(()=>(nr()&&Z.current&&e(Z.current),()=>{o()}),[]),Oi(()=>(ee.current?.addEventListener("scroll",wl),()=>{ee.current?.removeEventListener("scroll",wl)}),[]),Oi(()=>{m(c==="failed")},[c]),dv(()=>{let ue=s==="auto"||!Z.current||nr(),le=$||M,he=i(()=>{ue||(le?Z.current.style.height=`${window.innerHeight-Z.current.offsetTop}px`:Z.current.style.height=`${700}px`,d(parseFloat(Z.current.style.height)<640))},"handler");return he(),window.addEventListener("resize",he),()=>window.removeEventListener("resize",he)},[s,$,M]),Be.createElement(qm,{height:s,id:tt.SWAP_BOX_ID,className:`${y()} ${Fi()}`,ref:Z,showBanner:C},Be.createElement(uv,{prefix:Y?Be.createElement(fl,{onClick:()=>{w(),r.onBack?.()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!v&&Be.createElement(yl,{container:W(),onClick:L,isConnected:!!l?.length}),r.onCancel&&Be.createElement(hl,{onClick:r.onCancel}))}),Be.createElement(Hm,{ref:ee},n),Be.createElement(ml,{open:N,onClose:()=>I(!1),onConfirm:j}),Be.createElement(Gm,null,Be.createElement("div",{className:"footer__content"},E&&!b&&Be.createElement("div",{className:"footer__alert"},Be.createElement(ul,{onActivateTab:j}),Be.createElement(Km,{size:10})),a),Be.createElement(Km,{size:12}),Be.createElement("div",{className:`footer__logo ${S?"logo__show":"logo__hidden"}`},Be.createElement(pv,null))),C&&Be.createElement(Vm,null,p?.swapBoxBanner?.element),Be.createElement(Tl,{open:u,onClose:()=>m(!1)}))}i(ie,"Layout");import{styled as mv}from"@rango-dev/ui";var Ym="$20 $20 $10 $20",vl=mv("div",{padding:Ym,overflowY:"auto",flexGrow:1});import{styled as fv}from"@rango-dev/ui";var se=fv("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as mo}from"@lingui/core";import{useState as bl}from"react";function Zm(){let[t,e]=bl(!1),[o,n]=bl(null),[r,a]=bl(null),{findToken:s}=k(),c=k().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(m,f){switch(m){case"duplicated":return{type:m,title:mo.t("Duplicate Token"),message:mo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:m,title:mo.t("Token Already Exists"),message:mo.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:m,title:mo.t("Token Not Found"),message:mo.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:f}})};case"network-error":return{type:m,title:mo.t("Network error"),message:mo.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:m,tokenAddress:f})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===f.toLowerCase())){let y=p("duplicated");n(y);return}let g=await ct().getCustomToken({blockchain:m,address:f});if(!g||!g.token||g.error){let y=p("not-found",m);n(y);return}let d=g.token;if(s({blockchain:d.blockchain,address:d.address,symbol:d.symbol})){let y=p("token-exist");n(y);return}return a({...d,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",m);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(Zm,"useFetchCustomToken");var xv=Cv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${yv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Jm(){let t=vv(),[e]=bv(),o=je(),n=k().blockchains(),r=e.get("blockchain")||"",a=Eo(r,n),[s,c]=wv(""),{fetchCustomToken:l,token:p,loading:u,error:m,resetState:f}=Zm(),h=!!a&&Zo(a,s),g=!a||!s||!h,d=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Xe.createElement(ie,{header:{title:Sn.t("Add Custom Token")}},Xe.createElement(se,null,Xe.createElement(xv,null,Xe.createElement("div",null,Xe.createElement(Ys,{onClick:()=>t(O.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:Sn.t("Select chain"),placeholder:Sn.t("Select chain")}),Xe.createElement(xl,{size:"24"}),Xe.createElement(Tv,{size:"large",variant:"label"},Sn.t("Enter Address")),Xe.createElement(xl,{size:10}),Xe.createElement(kv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:Sn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Xe.createElement(Sv,{color:"success",size:12}),onChange:S=>c(S.target.value)}),!h&&!!s&&Xe.createElement(Xe.Fragment,null,Xe.createElement(xl,{size:4}),Xe.createElement(gv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Xe.createElement(hv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:d},Sn.t("Import"))),Xe.createElement(or,{token:p,blockchain:a??void 0,address:s,error:m??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{m?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(Jm,"AddCustomTokenPage");import{i18n as oc}from"@lingui/core";import{useManager as px}from"@rango-dev/queue-manager-react";import{Alert as ux,Button as dx,css as rc,Divider as nc,IconButton as Qg,styled as mx,Typography as fx,WalletIcon as gx}from"@rango-dev/ui";import Fe,{useEffect as ua,useLayoutEffect as hx,useRef as yx,useState as Sr}from"react";import{useNavigate as Sx}from"react-router-dom";import{i18n as Oo}from"@lingui/core";import{Alert as Zv,BalanceErrors as Jv,Button as xf,ChevronLeftIcon as Rv,Divider as Ll,MessageBox as eb,Typography as Pl}from"@rango-dev/ui";import re,{useCallback as tb,useEffect as Ef,useMemo as ob,useState as Tn}from"react";import{useNavigate as nb}from"react-router-dom";import{i18n as Nl}from"@lingui/core";import{Alert as Bv,ChevronDownIcon as Wv,CloseIcon as Mv,Divider as af,IconButton as sf,PasteIcon as Lv,Typography as Pv,WalletIcon as _v}from"@rango-dev/ui";import $e,{useEffect as Dv,useRef as $v}from"react";import qi,{useRef as Av}from"react";import*as Cn from"@radix-ui/react-collapsible";import{keyframes as Rm,styled as Ui}from"@rango-dev/ui";var El=300,Ev=Rm({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Iv=Rm({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),ef=Ui(Cn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Il=Ui(Cn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),zi=Ui(Cn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Ev} ${El}ms ease-out`},false:{animation:`${Iv} ${El}ms ease-out`}}}}),Qi=Ui("div",{transition:`all ${El}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Hi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Av(null);return qi.createElement(ef,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&qi.createElement(Il,{className:"collapsible_trigger",onClick:a},s),qi.createElement(zi,{className:"collapsible_content",open:e},r),c==="bottom"&&qi.createElement(Il,{className:"collapsible_trigger",onClick:a},s))}i(Hi,"CustomCollapsible");import{darkTheme as tf,styled as Al,TextField as Nv}from"@rango-dev/ui";var of=Al("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=Al(Nv,{backgroundColor:"$neutral100"}),rf=Al("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}=U()(),{config:s}=k(),c=k().blockchains(),l=Vr(e.name,c),p=$v(null),u=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!Zo(e,r),g=i(()=>{a("")},"handleClear"),d=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),p?.current?.focus()}},"handlePaste"),S=i(()=>r?$e.createElement(sf,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},$e.createElement(Mv,{size:12,color:"gray"})):m?null:$e.createElement(sf,{id:"widget-custom-destination-paste-icon-btn",onClick:d,variant:"ghost"},$e.createElement(Lv,{size:16})),"renderSuffix");return Dv(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),$e.createElement(of,null,$e.createElement(Hi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:$e.createElement(rf,{id:"widget-custom-destination-collapsible-btn"},$e.createElement("div",{className:"button__content"},$e.createElement(_v,{size:18,color:"info"}),$e.createElement(af,{size:4,direction:"horizontal"}),$e.createElement(Pv,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Nl.t("Send to a different address"))),$e.createElement(Qi,{orientation:n?"up":"down"},$e.createElement(Wv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},$e.createElement(nf,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Nl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:S(),onChange:y=>{let C=y.target.value;a(C)}})),h&&$e.createElement($e.Fragment,null,$e.createElement(af,{size:4}),$e.createElement(Bv,{variant:"alarm",type:"error",title:Nl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(lf,"CustomDestination");import{css as Fv,IconButton as Ov,SelectableWalletButton as Uv,styled as fo}from"@rango-dev/ui";var cf=fo("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),pf=fo("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),uf=fo(Uv,{justifyContent:"center"}),df=fo("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),mf=fo(Ov,{position:"absolute",left:"$20"}),ff=fo("div",{paddingTop:"$20"}),gf=Fv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),hf=fo("div",{display:"flex"}),yf=fo("div",{overflow:"visible",width:"100%"});import{i18n as Wl}from"@lingui/core";import{warn as Gv}from"@rango-dev/logging-core";import{Divider as Vv,makeInfo as Kv,SelectableWallet as jv,Typography as vf,WalletState as Gi}from"@rango-dev/ui";import rt,{useEffect as bf,useState as sr}from"react";import{Image as qv,MessageBox as Hv}from"@rango-dev/ui";import ar from"react";import{keyframes as zv,styled as Bl}from"@rango-dev/ui";var Sf=Bl("div",{position:"relative"}),Qv=zv({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Cf=Bl("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Qv} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),kf=Bl("div",{"& img":{borderRadius:"50%"}});import{i18n as kn}from"@lingui/core";function Tf(t,e){switch(t){case"in-progress":return{type:"loading",title:kn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:kn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:kn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:kn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:kn.t("Request Rejected"),description:kn.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(Tf,"generateMessageByStatus");function wf(t){let{status:e,displayName:o,image:n}=t,r=Tf(e,o),a=e=="in-progress";return ar.createElement(Hv,{type:r.type,title:r.title,description:r.description,icon:a?ar.createElement(Sf,null,ar.createElement(kf,null,ar.createElement(qv,{src:n,size:45})),ar.createElement(Cf,null)):void 0})}i(wf,"ExperimentalChainStatus");var Xv=7,Yv=3e3;function Ml(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{blockchains:l,connectedWallets:p}=k(),[u,m]=sr(),[f,h]=sr(null),[g,d]=sr(!1),[S,y]=sr(null),{suggestAndConnect:C}=Vi(),{list:T}=bt({chain:e}),[v,b]=sr(T),E=T.length,N=a&&E-a>0,I=i(async w=>{d(!1),y("in-progress");try{await C(w.walletType,w.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");bf(()=>{b(w=>{let B=T.findIndex(M=>n(M.type,e));return N&&B>1?[T[B]].concat(T.filter((M,$)=>$!==B)):w.map(M=>T.find($=>$.type===M.type)??M)})},[JSON.stringify(T)]);let x=document.getElementById(tt.SWAP_BOX_ID);return bf(()=>{let w=null;return(S==="completed"||S==="rejected")&&(w=setTimeout(()=>y(null),Yv)),()=>{w&&clearTimeout(w)}},[S]),rt.createElement(rt.Fragment,null,v.slice(0,a).map(w=>{let B=Tu({connectedWallets:p,walletType:w.type,chain:e}),M=w.state===Gi.CONNECTED,$=B?ao(B,Xv):"",Q=M&&!!w.needsNamespace&&!$,K=ni(l(),e),j=!p.find(he=>he.walletType===w.type&&he.chain===e),L=K&&j&&w.state===Gi.CONNECTED,Y=i(async()=>{w.state===Gi.DISCONNECTED||Q?m(w):L?(h({walletType:w.type,chain:e,address:B??""}),d(!0)):r({walletType:w.type,chain:e,address:B??""})},"onSelectableWalletClick"),ee=Kv(w.state),Z=i(()=>L?Wl.t({id:"Add {chain} chain",values:{chain:e}}):Q?Wl.t("Chain not connected"):$||ee.description,"getWalletDescription"),ue=i(()=>w.state===Gi.CONNECTED?Q?"neutral600":"neutral700":ee.color,"getWalletDescriptionColor"),le=f?.chain?Vr(f.chain,l()):void 0;return rt.createElement(rt.Fragment,{key:`${w.title}_${le}`},!!f&&rt.createElement(R,{id:"widget-wallets-list-watermarked-modal",open:!!f&&g,container:x,onClose:()=>{h(null)}},rt.createElement($s,{id:"widget-wallets-list-experimental-chain-container",displayName:le,onConfirm:()=>{I(f)}})),S&&rt.createElement(R,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!S,onClose:y.bind(null,null),container:x},rt.createElement(wf,{status:S,displayName:le,image:w.image}),rt.createElement(Vv,{direction:"vertical",size:32})),rt.createElement(jv,{key:w.type,id:"widget-wallets-list-selectable-wallet-btn",description:Z(),descriptionColor:ue(),onClick:Y,selected:n(w.type,e),disabled:!c,...w}))}),rt.createElement(Jn,{id:"widget-wallets-list-stateful-connect-modal",wallet:u,options:{defaultSelectedChains:o||[e]},onClose:()=>{m(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):Gv(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),N&&rt.createElement(uf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},rt.createElement(vf,{variant:"label",size:"medium"},Wl.t("Show more wallets"),rt.createElement(vf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",E-(a??0)))))}i(Ml,"WalletList");var rb=2;function If(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=nb(),c=k().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:m,customDestination:f,setCustomDestination:h}=U()(),{config:g,connectedWallets:d,setWalletsAsSelected:S}=k(),[y,C]=Tn(""),[T,v]=Tn([]),[b,E]=Tn(""),[N,I]=Tn(!!f),x=ob(()=>No({filter:"all",quote:l}),[l]),w=No({filter:"required",quote:l}),B=c.find(D=>D.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),M=i(D=>w.includes(D),"isWalletRequiredFor"),$=tb(()=>d.filter(D=>D.selected&&x.includes(D.chain)),[d,x]),[Q,K]=Tn($()),[j,L]=Tn([]),Y=i((D,A)=>L(H=>H.concat({blockchain:D,walletType:A})),"addNextSelectedWallets"),ee=T.length>0,Z=i((D,A)=>!!Q.find(H=>H.walletType===D&&H.chain===A&&H.selected&&(M(A)||!M(A)&&!f)),"isSelected"),ue=i((D,A,H)=>{let ae=!1;return D.map(V=>{if(V.chain===A){let X=V.selected;return!ae&&H?(ae=!0,X=!0):H||(X=!1),{...V,selected:X}}return V})},"updateSelectableWallets"),le=i(D=>{I(D),D?M(B?.name??"")||K(A=>ue(A,B?.name||"",!1)):(h(""),K(A=>ue(A,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),he=i(D=>{if(y&&C(""),Z(D.walletType,D.chain))return;let H=d.find(ae=>ae.walletType===D.walletType&&ae.chain===D.chain);H&&(n(),D.chain===B?.name&&N&&!M(B.name)&&(I(!1),h(null)),K(ae=>ae.filter(V=>V.chain!==D.chain).concat({...H,selected:!0})))},"onChange"),qe=i(()=>{let D=Q.filter(A=>A.selected);S(D),p(D),m(!0),o()},"onConfirmBalance"),gt=i(async()=>{v([]),E("");let D=await r?.({selectedWallets:Q.filter(H=>H.selected),customDestination:f}),A=D.warnings;A?.balance?.messages&&v(A.balance.messages),D.error&&E(Cd(D.error)),!D.error&&!A?.balance?.messages.length?qe():v(A?.balance?.messages??[])},"onConfirmWallets");Ef(()=>{K(D=>{let A=[];return D.forEach(H=>{!d.some(V=>V.chain===H.chain&&V.walletType===H.walletType&&V.address===H.address)||A.push(H)}),A=A.concat(d.filter(H=>!!!A.find(V=>V.chain===H.chain)&&H.selected&&x.includes(H.chain))),A})},[d,x]),Ef(()=>{let D=[];j.length>0&&(j.forEach(A=>{let H=d.find(ae=>ae.chain===A.blockchain&&ae.walletType===A.walletType);H?he(H):D.push(A)}),L(D))},[d,j]);let Ie=document.getElementById(tt.SWAP_BOX_ID);return re.createElement(R,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:Ie,...!y&&{styles:{container:{height:"100%"}},footer:re.createElement(hf,null,re.createElement(xf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:jd(a,N,f,l,Q,B),onClick:gt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Oo.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:re.createElement(df,null,re.createElement(mf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},re.createElement(Rv,{size:16})),re.createElement(Pl,{variant:"headline",size:"small"},Oo.t({id:"Your {blockchainName} wallets",values:{blockchainName:ht(y,c)}})))},anchor:"center"},re.createElement(R,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:ee,onClose:v.bind(null,[]),container:Ie},re.createElement(eb,{title:Oo.t("Insufficient account balance"),type:"error",description:re.createElement(Jv,{messages:T??[]})},re.createElement(xf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:qe},Oo.t("Proceed anyway")))),y&&re.createElement(ff,null,re.createElement("div",{className:gf()},re.createElement(Ml,{chain:y,quoteChains:x,isSelected:Z,selectWallet:he,onShowMore:()=>C(y),onConnect:D=>{Y(y,D)}}))),!y&&re.createElement(re.Fragment,null,b&&re.createElement(re.Fragment,null,re.createElement(Zv,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Oo.t(b)}),re.createElement(Ll,{size:12})),re.createElement(yf,null,x.map((D,A)=>{let H=c.find(He=>He.name===D),ae=`wallet-${A}`,V=A===x.length-1,X=V&&B&&g?.customDestination!==!1;return re.createElement("div",{key:ae},re.createElement(cf,null,re.createElement(Pl,{variant:"title",size:"xmedium"},Oo.t({id:"Your {blockchainName} wallets",values:{blockchainName:H?.shortName}})),re.createElement(Pl,{variant:"label",color:"$neutral700",size:"medium"},Oo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:H?.shortName}}))),re.createElement(Ll,{size:24}),re.createElement(pf,null,re.createElement(Ml,{chain:D,quoteChains:x,isSelected:Z,selectWallet:he,limit:rb,onShowMore:()=>C(H?.name??""),onConnect:He=>{Y(D,He)}})),!V&&re.createElement(Ll,{size:32}),X&&re.createElement(lf,{blockchain:B,open:N,handleOpenChange:le}))}))))}i(If,"ConfirmWalletsModal");import{i18n as xb}from"@lingui/core";import{Alert as Eb,Button as Ib,Divider as Vf,InfoIcon as Ab}from"@rango-dev/ui";import Ue from"react";import{Alert as sb,Button as lb,Divider as $l,NoRouteIcon as cb,RefreshIcon as pb,Typography as Pf}from"@rango-dev/ui";import pt from"react";import{i18n as Af}from"@lingui/core";var ib=24,ab=60;function Nf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ne().genericServerError,action:{onClick:n,title:Af.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ne().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Af.t("Reset")}},description:ne().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ne().noResultError.description}}i(Nf,"makeInfo");var _l=(o=>(o[o.small=ib]="small",o[o.large=ab]="large",o))(_l||{}),Dl=(o=>(o.small="small",o.large="medium",o))(Dl||{});import{styled as Ki}from"@rango-dev/ui";var Bf=Ki("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Wf=Ki("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Mf=Ki("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Lf=Ki("div",{padding:"$6 $0"});function lr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=k().getDisabledLiquiditySources(),s=k().toggleAllLiquiditySources,c=k().swappers(),l=Nf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),pt.createElement(Bf,{id:"widget-no-result-container"},pt.createElement(cb,{size:_l[n],color:"gray"}),pt.createElement($l,{size:4}),pt.createElement(Pf,{variant:"title",size:Dl[n]},ne().noResultError.title),n==="large"&&pt.createElement($l,{size:4}),!!l.description&&pt.createElement(Wf,{size:n},pt.createElement(Pf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),pt.createElement($l,{size:n==="large"?"24":"4"}),!!l.alert&&pt.createElement(Mf,{size:n},pt.createElement(sb,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&pt.createElement(lb,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:pt.createElement(Lf,null,pt.createElement(pb,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(lr,"NoResult");import{i18n as pr}from"@lingui/core";import{Button as mb,Divider as fb,MessageBox as gb,Typography as hb,WarningIcon as yb}from"@rango-dev/ui";import Xt from"react";import{Typography as Of}from"@rango-dev/ui";import Ol from"react";import{Button as ub,darkTheme as db,styled as cr}from"@rango-dev/ui";var _f=cr("div",{width:"100%"}),Fl=cr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Df=cr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${db} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),$f=cr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Ff=cr(ub,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function Uf(t){let{title:e,value:o,valueColor:n}=t;return Ol.createElement(Df,null,Ol.createElement(Of,{size:"medium",variant:"label",className:"_title"},e),Ol.createElement(Of,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Uf,"QuoteErrorsModalItem");function zf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:pr.t("Swapping"),value:_(r.inputUsdValue,4,4)},{title:pr.t("Gas cost"),value:_(r.totalFee,2,2)},{title:pr.t("Receiving"),value:_(r.outputUsdValue,4,4)},{title:pr.t("Price impact"),value:_(r.priceImpact,2,2),valueColor:`${s}500`}];return Xt.createElement(R,{id:"widget-high-value-loss-warning-modal",footer:Xt.createElement(mb,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Xt.createElement(yb,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:W()},Xt.createElement(gb,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Xt.createElement(Fl,null,Xt.createElement(fb,{size:"4"}),Xt.createElement(hb,{size:"small",variant:"title"},pr.t("Details")),Xt.createElement(Fl,null,c.map((l,p)=>Xt.createElement(Uf,{key:p,...l})))))}i(zf,"HighValueLossWarningModal");import{i18n as wn}from"@lingui/core";function Qf(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=wn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=wn.t("Increase")),o;if(t){switch(t.type){case 0:{jt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().highValueLossError.title;break}case 4:{o.title=wn.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=ne().unknownPriceError.title;break}case 2:{o.title=wn.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=wn.t("Increase");break}case 3:{o.title=wn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Qf,"makeAlerts");function qf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(qf,"getRequiredSlippage");import{i18n as vn}from"@lingui/core";import{Button as Sb,Divider as Ul,MessageBox as Cb,WarningIcon as kb}from"@rango-dev/ui";import yo from"react";import{useNavigate as Tb}from"react-router-dom";function Hf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=Tb();return yo.createElement(R,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:W(),onClose:o},yo.createElement(Cb,{type:"warning",title:r.type===3?vn.t("High slippage"):vn.t("Low slippage"),description:r.type===3?vn.t("Caution, your slippage is high. Your trade may be front run."):vn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},yo.createElement(Ul,{size:18}),yo.createElement(Ul,{size:32}),yo.createElement(Ff,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},yo.createElement(kb,{color:"white",size:16}),vn.t("Swap anyway")),yo.createElement(Ul,{size:10}),yo.createElement(Sb,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+O.settings)},vn.t("Change Slippage"))))}i(Hf,"SlippageWarningModal");import{Button as wb,MessageBox as vb,WarningIcon as bb}from"@rango-dev/ui";import ji from"react";function Gf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return ji.createElement(R,{id:"widget-unknown-price-warning-modal",footer:ji.createElement(wb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:ji.createElement(bb,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:W()},ji.createElement(vb,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(Gf,"UnknownPriceWarningModal");function ur(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:m,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,d=Qf(e,o?.type===3||o?.type===4?o:null);d&&!n&&(d.action=null);let S=!!d&&!s,y=i(C=>{if(C==="change-slippage"){let T=o?.type===3||o?.type===4?o:null,v=qf(e,T);f?.(v)}else C==="change-settings"&&m()},"onclickActionButton");return Ue.createElement(Ue.Fragment,null,g&&Ue.createElement(Ue.Fragment,null,Ue.createElement(Vf,{size:10}),Ue.createElement(lr,{skipAlerts:s,error:o,fetch:c})),S&&Ue.createElement(_f,null,Ue.createElement(Vf,{size:10}),Ue.createElement(Eb,{id:"widget-quote-warning-and-errors-alert",title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:Ue.createElement($f,{onClick:l},Ue.createElement(Ab,{size:12,color:"gray"}))},...(d.action==="change-settings"||d.action==="change-slippage")&&{action:Ue.createElement(Ib,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:d.alertType,onClick:()=>y(d.action)},d.actionButtonTitle||xb.t("Change"))}})),e&&Ue.createElement(Ue.Fragment,null,e.type===0&&Ue.createElement(zf,{...h,warning:e}),(e.type===3||e.type===2)&&Ue.createElement(Hf,{...h,warning:e}),e.type===1&&Ue.createElement(Gf,{...h,warning:e})))}i(ur,"QuoteWarningsAndErrors");import nx from"bignumber.js";import sa from"react";import{i18n as Uo}from"@lingui/core";import{Alert as Hb,Divider as xn,FullExpandedQuote as Gb,InfoIcon as Vb,NumericTooltip as kg,QuoteTag as Kb,StepDetails as jb,TokenAmount as Xb,Typography as En}from"@rango-dev/ui";import Xl from"bignumber.js";import z,{useRef as Yb,useState as Zb}from"react";import{styled as zl}from"@rango-dev/ui";var Ql=zl("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Kf=zl("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),jf=zl("div",{width:"100%",display:"flex"});import*as Xi from"@radix-ui/react-collapsible";import{Button as Nb,css as dr,darkTheme as We,Image as Xf,styled as Je,Typography as Bb}from"@rango-dev/ui";var Wb=300,Yf=Je(Xi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${We} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Zf=dr({padding:"$10 $15"}),Jf=Je(Nb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${We} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${We} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${We} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Rf=Je("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${We} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${We} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${We} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${We} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${We} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${We} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${We} &`]:{backgroundColor:"$neutral400"}}}}]}),eg=dr({width:"100%",padding:"$15 $15 $10 $15"}),tg=dr({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),bn=dr({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),og=dr({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${We} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ng=Je(Xi.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:{[`& ${Xf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Xf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${We} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),rg=Je("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"}}}}),ig=Je(zi,{width:"100%",background:"inherit"}),ql=Je("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Wb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),cq=Je("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),ag=Je("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${We} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),sg=Je("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Hl=Je(Bb,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),lg=Je("div",{display:"flex",flexWrap:"wrap"}),Gl=Je("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"}}}}),cg=Je("div",{display:"flex"}),Yi=Je("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${We} &`]:{borderTopColor:"$neutral800"}});import{i18n as $t}from"@lingui/core";import{ChevronDownIcon as Lb,CloseIcon as Pb,Divider as Ri,IconButton as _b,NumericTooltip as Db,QuoteCost as $b,Typography as Et}from"@rango-dev/ui";import J,{useState as mg}from"react";import{css as Mb,styled as Zi}from"@rango-dev/ui";var Ji=Zi("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Vl=Zi("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),pg=Zi("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),ug=Zi("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),dg=Mb({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Fb=i(t=>t.fee.isZero()?null:J.createElement(Ji,null,J.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(Et,{variant:"label",size:"medium"},"$",_(t.fee,4,4))),"NonPayableFee");function Kl(t){let[e,o]=mg(!1),[n,r]=mg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:m,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?Ao():W(),d=Ud(h),S=_(c,2,2);return J.createElement(J.Fragment,null,J.createElement($b,{onClickFee:m?y=>{y.stopPropagation(),o(!e)}:void 0,fee:S,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:m?$t.t("View more info"):void 0,tooltipContainer:g}),J.createElement(R,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:J.createElement(ug,{style:{textAlign:f?"left":"center"}},J.createElement(Et,{variant:"title",size:"medium"},$t.t("Gas & Fee Explanation")),J.createElement(_b,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},J.createElement(Pb,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(pg,null,J.createElement(Et,{variant:"title",size:"small"},$t.t("Details")),J.createElement(Ri,{size:10}),Object.entries(d.payable).flatMap(([y,C])=>C.map((T,v)=>{let b=`payable-fee-${v}`,E=qs(T);return J.createElement(Ji,{key:b},J.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},Fs(y,$t.t)),J.createElement(Db,{content:T.amount,container:g},J.createElement(Et,{variant:"label",size:"medium"},_(T.amount,2,2),T.asset.symbol," ($",_(E,4,4),")")))})),J.createElement(Ji,{className:"total_payable_fee"},J.createElement(Et,{variant:"label",size:"medium"},$t.t("Total Payable Fee")),J.createElement(Et,{variant:"label",size:"medium"},"$",_(c,4,4))),J.createElement(Vl,null),!!Object.keys(d.nonePayable).length&&J.createElement(Hi,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:J.createElement("div",{className:dg()},J.createElement(Et,{size:"small",variant:"body",color:"neutral700"},n?$t.t("Hide non-payable fees"):$t.t("Show non-payable fees")),J.createElement(Ri,{size:4,direction:"horizontal"}),J.createElement(Qi,{orientation:n?"up":"down"},J.createElement(Lb,{size:12,color:"gray"}))),open:n},J.createElement(Et,{size:"small",variant:"title"},$t.t("Description")),J.createElement(Ri,{size:4}),J.createElement(Et,{size:"small",variant:"body",color:"neutral700"},$t.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),J.createElement(Ri,{size:10}),Object.entries(d.nonePayable).map(([y,C],T)=>{let v=Od(C),b=Fs(y,$t.t),E=`non-payable-fee-${T}`;return J.createElement(Fb,{key:E,fee:v,label:b})}),J.createElement(Vl,null)))))}i(Kl,"QuoteCostDetails");import{i18n as hg}from"@lingui/core";import{TokenAmount as yg}from"@rango-dev/ui";import ea from"react";import{css as Ob,styled as Ub}from"@rango-dev/ui";var fg=Ub("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),gg=Ob({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function mr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return ea.createElement(fg,null,ea.createElement(yg,{direction:"horizontal",label:hg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:W(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),ea.createElement("div",{className:gg()}),ea.createElement(yg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:W(),label:hg.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(mr,"QuoteSummary");import{i18n as Sg}from"@lingui/core";import{ChevronDownIcon as zb,ChevronRightIcon as Qb,Divider as jl,Image as qb,Tooltip as ra,Typography as ta}from"@rango-dev/ui";import q from"react";var oa=4,na=6,fr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||W();return q.createElement(ra,{container:c,side:"bottom",sideOffset:4,open:r,content:e},q.createElement(rg,{className:n,state:a},q.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||W(),p=r.length,u=Nd(r),{isTablet:m,isMobile:f}=hn();return q.createElement(ng,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},q.createElement("div",{className:bn()},q.createElement(ta,{variant:"body",size:"xsmall"},Sg.t("Via:")),q.createElement(jl,{direction:"horizontal",size:4}),r.map((h,g)=>{let d=`item-${g}`,S=q.createElement(ql,null,q.createElement(Qb,{size:12,color:"black"}));return f||m?q.createElement(q.Fragment,{key:d},q.createElement(fr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&q.createElement(q.Fragment,null,S)):q.createElement(q.Fragment,{key:d},p<=oa||p>oa&&g<oa-1?q.createElement(q.Fragment,null,q.createElement(fr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&q.createElement(q.Fragment,null,S)):g===oa-1&&q.createElement(ra,{container:l,side:"bottom",align:"end",sideOffset:4,content:q.createElement("div",{className:bn()},S,r.map((y,C)=>{let T=`image-${C}`;return C>=g&&q.createElement(q.Fragment,{key:T},q.createElement(fr,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),C!==p-1&&q.createElement(q.Fragment,null,S))}))},q.createElement(Gl,{state:r.find((y,C)=>C>=g&&(y.state==="error"||y.state==="warning"))?.state},q.createElement(ta,{size:"xsmall",variant:"body"},"+",p-g))))})),q.createElement("div",{className:bn()},q.createElement("div",{className:"blockchains_section"},q.createElement("div",{className:bn()},q.createElement(ta,{variant:"body",size:"xsmall"},Sg.t("Chains:")),q.createElement(jl,{direction:"horizontal",size:4}),u.map((h,g)=>q.createElement(q.Fragment,{key:h.displayName},u.length<=na||u.length>na&&g<na-1?q.createElement(ra,{container:l,side:"bottom",content:h.displayName,sideOffset:4},q.createElement(fr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===na-1&&q.createElement(ra,{container:l,side:"bottom",align:"end",sideOffset:4,content:q.createElement("div",{className:bn()},u.map((d,S)=>S>=g&&q.createElement(fr,{key:d.displayName,content:"",src:d.image??"",open:!1,className:S>g?"blockchainImage":"",container:c})))},q.createElement(Gl,{className:"blockchainImage"},q.createElement(ta,{size:"xsmall",variant:"body"},"+",u.length-g))))),q.createElement(jl,{direction:"horizontal",size:32}))),q.createElement(ql,{orientation:a?"up":"down"},q.createElement(zb,{size:12,color:"black"}))))}i(Cg,"QuoteTrigger");function Yl(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:m=!1,container:f}=t,h=k().blockchains(),{findToken:g}=k(),d=k().swappers(),{customSlippage:S,slippage:y}=k(),C=S||y,[T,v]=Zb(t.expanded),b=Yb(null),E=_(o.value,6,6),N=_(n.value,6,6),I=n.usdValue?_(n.usdValue,4,4):"",x=Kt(o.usdValue,n.usdValue??null),w=_(x,2,2),B=jt(x??0),M=i((Ie,D)=>Ie.map((A,H)=>{let ae,V=r?.type===3&&r.swap.swapperId===A.swapperId,X=r?.type===4&&!!r.recommendedSlippages?.[H],He=a?.type===2&&!!a.recommendedSlippages?.[H],Ge=V||X,ve=He;Ge?ae="error":ve&&(ae="warning");let Mt=Ge?Uo.t("Slippage Error"):Uo.t("Slippage Warning");return V&&(Mt=Uo.t("Bridge Limit Error")),{swapper:{displayName:_n(A.swapperId,d)??"",image:A.swapperLogo},from:{token:{displayName:A.from.symbol,image:A.from.logo},chain:{displayName:ht(A.from.blockchain,h)??"",image:A.from.blockchainLogo},price:{value:H===0&&!D?_(o.value,6,6):_(A.fromAmount,6,6),usdValue:_((A.from.usdPrice??0)*parseFloat(A.fromAmount),4,4),realValue:H===0?o.value:A.fromAmount,realUsdValue:new Xl(A.from.usdPrice??0).multipliedBy(A.fromAmount).toString()}},to:{token:{displayName:A.to.symbol,image:A.to.logo},chain:{displayName:ht(A.to.blockchain,h)||"",image:A.to.blockchainLogo},price:{value:_(A.toAmount,6,6),usdValue:_((A.to.usdPrice??0)*parseFloat(A.toAmount),4,4),realValue:A.toAmount,realUsdValue:new Xl(A.to.usdPrice??0).multipliedBy(A.toAmount).toString()}},state:ae,alerts:Ge||ve?z.createElement(Kf,{dense:m},z.createElement(Hb,{variant:"alarm",type:Ge?"error":"warning",title:Mt,id:"widget-quote-footer-step-alarm-alert",footer:z.createElement(jf,null,V&&z.createElement("div",null,z.createElement(En,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),z.createElement(xn,{direction:"vertical",size:2}),z.createElement(En,{size:"xsmall",variant:"body",color:"neutral900"},Uo.t({id:"Yours: {amount} {symbol}",values:{amount:_(A.fromAmount,6,6),symbol:A?.from.symbol}}))),(X||He)&&!V&&z.createElement("div",null,z.createElement(En,{size:"xsmall",variant:"body",color:"neutral900"},Uo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[H]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[H]}}})),z.createElement(xn,{direction:"vertical",size:2}),z.createElement(En,{size:"xsmall",variant:"body",color:"neutral900"},Uo.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:$n(A.estimatedTimeInSeconds),fee:_(Qs(A,g),2,2),internalSwaps:A.internalSwaps?M(A.internalSwaps):void 0}}),"getQuoteSteps"),$=M(e?.swaps??[]),Q=$.length,K=f||W(),j=Wd(t.quote.tags||[]),L=!!u,Y=ei(e?.swaps),ee=$n(Y),Z=Ei(e?.swaps??[],g),ue=_(Z,2,2),le=Z.gte(new Xl(Td)),he=Y/vd>=wd,qe=$[Q-1],gt=$[0];return!gt||!qe?null:m?z.createElement(Gb,{selected:c,fee:ue,time:ee,tooltipContainer:Ao(),steps:$,tags:j,id:"widget-quote-full-expanded-quote-container",quoteCost:z.createElement(Kl,{quote:e,fullExpandedMode:!0,time:ee,fee:Z,feeWarning:le,timeWarning:he,showModalFee:p,steps:Q}),percentageChange:w,warningLevel:B,outputPrice:{value:N,usdValue:I,realValue:n.value,realUsdValue:n.usdValue}}):z.createElement(Rf,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},z.createElement("div",{className:eg()},!l&&j.length?z.createElement(z.Fragment,null,z.createElement(cg,null,j.map((Ie,D)=>{let A=`${Ie.value}_${D}`;return z.createElement(z.Fragment,{key:A},z.createElement(Kb,{label:Ie.label,value:Ie.value}),z.createElement(xn,{size:4,direction:"horizontal"}))})),z.createElement(Yi,null),!L&&z.createElement(xn,{size:4})):null,z.createElement("div",{id:"portal-root",className:tg()},z.createElement(Kl,{quote:e,time:ee,fee:Z,feeWarning:le,timeWarning:he,showModalFee:p,steps:Q}),L&&z.createElement(Jf,{onClick:Ie=>{Ie.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},z.createElement(En,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Uo.t("See All Routes")))),s==="basic"&&z.createElement("div",{className:og()},z.createElement(sg,null,z.createElement(Vb,{size:12,color:"gray"})),z.createElement(lg,null,z.createElement(Hl,{size:"small",variant:"body"},`${E} ${gt.from.token.displayName} = `),z.createElement(kg,{content:n.value,container:K,open:n.value?void 0:!1},z.createElement(Hl,{size:"small",variant:"body"},"\xA0",`${N} ${qe.to.token.displayName}`))),z.createElement(kg,{content:n.usdValue,container:K},z.createElement(xn,{size:2,direction:"horizontal"}),z.createElement(En,{color:"$neutral600",size:"xsmall",variant:"body"},`($${I})`))),s==="list-item"&&z.createElement(Xb,{id:"widget-quote-token-amount-container",tooltipContainer:K,type:"output",direction:"vertical",price:{value:N,usdValue:I,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:qe.to.token.displayName,image:qe.to.token.image},chain:{image:qe.to.chain.image},percentageChange:w,warningLevel:B}),s==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(mr,{from:gt.from,to:qe.to,percentageChange:w,warningLevel:B}),z.createElement(xn,{size:4}))),z.createElement(Yf,{selected:c,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:v},z.createElement(Cg,{type:s,quoteRef:b,selected:c,setExpanded:v,container:K,expanded:T,steps:$}),z.createElement(ig,{open:T},z.createElement(ag,null),z.createElement("div",{className:Zf()},$.map((Ie,D)=>{let A=`item-${D}`;return z.createElement(jb,{type:"quote-details",className:"widget-quote-step-details-container",key:A,tooltipContainer:K,step:Ie,hasSeparator:D!==$.length-1,state:Ie.state})})))))}i(Yl,"Quote");import{Divider as tx,Skeleton as ox}from"@rango-dev/ui";import Rt from"react";import{darkTheme as Jb,styled as ia}from"@rango-dev/ui";var Tg=ia("div",{$$color:"$colors$neutral100",[`.${Jb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),wg=ia("div",{paddingTop:"$2"}),vg=ia("div",{paddingLeft:"$8"}),bg=ia("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Pg,Divider as It,Skeleton as ut}from"@rango-dev/ui";import G from"react";import{css as Rb,styled as Jt}from"@rango-dev/ui";var Zl=Jt("div",{display:"flex"}),xg=Jt("div",{padding:"$10 $0 $20"}),Eg=Jt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Ig=Jt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Ag=Jt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Ng=Jt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Bg=Jt("div",{width:"65%",display:"flex",justifyContent:"start"}),Wg=Jt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Mg=Jt("div",{padding:"$15 $0 $15 $0"}),Lg=Rb({display:"flex",justifyContent:"space-between",alignItems:"center"});function gr(t){let{type:e,tagHidden:o=!0}=t,n=G.createElement(Ag,null,G.createElement(Bg,null,G.createElement(Pg,{loading:!0,size:"medium"}),G.createElement(It,{size:8,direction:"horizontal"}),G.createElement(Wg,null,G.createElement(ut,{height:10,width:60,variant:"rounded"}),G.createElement(It,{size:4}),G.createElement(ut,{height:15,variant:"rounded"}))),G.createElement(ut,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return G.createElement("div",null,!o&&G.createElement(G.Fragment,null,G.createElement(Zl,null,G.createElement(ut,{width:65,height:20,variant:"rounded"}),G.createElement(It,{size:4,direction:"horizontal"}),G.createElement(ut,{width:65,height:20,variant:"rounded"}),G.createElement(It,{size:4,direction:"horizontal"}),G.createElement(ut,{width:65,height:20,variant:"rounded"})),G.createElement(Yi,null),!r&&G.createElement(It,{size:4})),G.createElement("div",{className:Lg()},G.createElement(Zl,null,G.createElement(ut,{width:60,height:10,variant:"rounded"}),G.createElement(It,{size:4,direction:"horizontal"}),G.createElement(ut,{width:60,height:10,variant:"rounded"}),G.createElement(It,{size:4,direction:"horizontal"}),G.createElement(ut,{width:60,height:10,variant:"rounded"})),r&&G.createElement(ut,{width:85,height:24,variant:"rounded"})),e==="basic"&&G.createElement(xg,null,G.createElement(ut,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(Eg,null,G.createElement(Ig,null,G.createElement(Pg,{loading:!0,size:"medium"}),G.createElement(It,{direction:"horizontal",size:4}),G.createElement(ut,{height:15,width:150,variant:"rounded"})),G.createElement(It,{size:10}),G.createElement(ut,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(It,{size:4}),G.createElement(Mg,null,n,G.createElement(Ng,null),n),G.createElement(It,{size:12})))}i(gr,"QuoteSummarySkeleton");import{ChainToken as Og,Divider as Rl,NextIcon as ex,Skeleton as aa}from"@rango-dev/ui";import Me from"react";import{styled as hr}from"@rango-dev/ui";var _g=hr("div",{display:"flex",alignItems:"start"}),Dg=hr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Jl=hr("div",{display:"flex",alignItems:"center",flexGrow:1}),$g=hr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Fg=hr("div",{display:"flex",alignItems:"center"});function Ft(t){let{separator:e=!0}=t;return Me.createElement(Me.Fragment,null,Me.createElement(Fg,null,Me.createElement(aa,{height:22,width:22,variant:"circular"}),Me.createElement(Rl,{direction:"horizontal",size:8}),Me.createElement(aa,{height:15,width:148,variant:"rounded"})),Me.createElement(_g,null,Me.createElement(bg,{hideSeparator:!e}),Me.createElement(Dg,{extraSpace:e},Me.createElement(Jl,null,Me.createElement(Og,{size:"small",loading:!0}),Me.createElement(Rl,{direction:"horizontal",size:8}),Me.createElement(aa,{height:12,variant:"rounded"})),Me.createElement($g,null,Me.createElement(ex,{color:"gray",size:16})),Me.createElement(Jl,null,Me.createElement(Og,{size:"small",loading:!0}),Me.createElement(Rl,{direction:"horizontal",size:8}),Me.createElement(aa,{height:12,variant:"rounded"})))))}i(Ft,"StepSkeleton");function yr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Rt.createElement(Tg,{expanded:o,rounded:e!=="basic"},Rt.createElement(gr,{type:e,tagHidden:n}),Rt.createElement(wg,null,Rt.createElement(ox,{height:15,variant:"rounded"})),o&&Rt.createElement(vg,null,Rt.createElement(tx,{size:24}),Rt.createElement(Ft,null),Rt.createElement(Ft,null),Rt.createElement(Ft,{separator:!1})))}i(yr,"QuoteSkeleton");function zo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:m,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:d,inputUsdValue:S}=U()(),y=e?.outputAmount?new nx(e?.outputAmount):null,C=e?kt(e):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?sa.createElement(Ql,null,sa.createElement(yr,{tagHidden:c,type:o,expanded:s})):v?sa.createElement(Ql,{onClick:()=>l?.(e),id:m},sa.createElement(Yl,{quote:e,error:r,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:h,input:{value:d,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:C?.toString()??""}})):null}i(zo,"QuoteInfo");import{warn as sx}from"@rango-dev/logging-core";import{calculatePendingSwap as lx}from"@rango-dev/queue-manager-rango-preset";import{useEffect as cx}from"react";import{useRef as rx,useState as ix}from"react";var ax=2e3;function la({request:t}){let[e,o]=ix(!1),n=rx(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,ax)),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(la,"useFetch");function Ug(){let{fetch:t,loading:e,cancelFetch:o}=la({request:async(n,r)=>await ct().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Ug,"useFetchConfirmQuote");function ca(t){if(!t.swaps)throw new Error(ne().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=ec(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ca,"throwErrorIfResponseIsNotValid");function ec(t){if(Dd(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=$d(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=zd(t);if(o){let n=Ii(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(ec,"getQuoteError");function zg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=dn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=Hd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(zg,"generateWarnings");function pa(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(pa,"handleQuoteErrors");function tc(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=U()(),{slippage:l,customSlippage:p}=k(),u=k().getDisabledLiquiditySources(),m=k().blockchains(),f=k().tokens(),{findToken:h}=k(),{swapMode:g}=Ct(),d=p||l,{fetch:S,cancelFetch:y,loading:C}=Ug();return cx(()=>y,[]),{loading:C,fetch:i(async v=>{let b=v.selectedWallets,E=v?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let N=b.reduce((x,w)=>(x[w.chain]=w.address,x),{}),I={requestId:a?.requestId||"",selectedWallets:N,destination:E||void 0};try{return await S(I,!0).then(x=>{let{result:w}=x;if(!w)throw new Error(x.error??"Error fetching updated quote");ca({diagnosisMessages:w.diagnosisMessages,requestId:w.requestId,swaps:w.result?.swaps});let B={outputAmount:w.result?.outputAmount,requestId:w.requestId,resultType:w.result?.resultType,swaps:w.result?.swaps||[],validationStatus:w.validationStatus,requestAmount:w.requestAmount};r(B);let M={slippage:d.toString(),disabledSwappersGroups:u},$=zg({previousQuote:a??void 0,currentQuote:B,meta:{blockchains:m},selectedWallets:b,userSlippage:d,inputUsdValue:n,findToken:h});c();let Q=!!$.balance,K=lx({inputAmount:o.toString(),bestRoute:w,wallets:qd(b),settings:M,validateBalanceOrFee:!Q,meta:{blockchains:m,tokens:f},swapMode:g});return{quote:B,swap:K,error:null,warnings:$}})}catch(x){let w=pa(x);return w.type!==2&&sx(new Error("confirm swap error"),{tags:{...w,type:Ye[w.type],initialQuote:a,requestBody:I}}),{swap:null,error:w,warnings:null}}},"fetch"),cancelFetch:y}}i(tc,"useConfirmSwap");var Cx=mx("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Qg}`]:{width:"$48",height:"$48"}}),kx=rc({flexGrow:1,paddingRight:"$10"}),Tx=rc({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),wx=rc({display:"flex",justifyContent:"space-between",alignItems:"center"});function qg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=U()(),s=Sx(),[c,l]=Sr(""),p=!n,[u,m]=Sr(!1),[f,h]=Sr(!1),{isActiveTab:g}=oe(),d=k().getDisabledLiquiditySources(),S=yx(d),{manager:y}=px(),{fetch:C,loading:T,cancelFetch:v}=tc(),[b,E]=Sr({swap:null,error:null,warnings:null}),[N,I]=Sr(!1),x=i(async({selectedWallets:L,customDestination:Y})=>{let ee=await C?.({selectedWallets:L,customDestination:Y});return E(ee),ee},"onConfirmSwap"),w=i(async()=>{if(b.swap&&n)try{await y?.create("swap",{swapDetails:b.swap},{id:b.swap.requestId});let L=`../${O.swaps}/${b.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{h(!0),await w(),h(!1)},"onConfirm"),M=i(async()=>{b.warnings?.quote&&Ad(b.warnings.quote)&&!a?I(!0):await B()},"onStartConfirmSwap"),$=i(async()=>{E({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(L=>{E(L)}).catch(L=>console.error(L))},"onRefresh");ua(()=>{!!S.current.length&&!d.length&&$(),S.current=d},[d.length]),ua(()=>{p&&v()},[p]),ua(()=>{p&&m(p)},[p]),ua(()=>{p||C({selectedWallets:o,customDestination:r}).then(L=>E(L)).catch(L=>console.error(L))},[]),hx(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let Q=b.warnings?.quote??null,K=b.error,j=[];if(c&&j.push(Fe.createElement(ux,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),Q||K){let L=`../${O.settings}`;j.push(Fe.createElement(ur,{warning:Q,error:K,couldChangeSettings:!1,refetchQuote:$,skipAlerts:K?.type===4||Q?.type===2,showWarningModal:N,confirmationDisabled:!g,onOpenWarningModal:()=>I(!0),onCloseWarningModal:()=>I(!1),onConfirmWarningModal:async()=>{I(!1),await w()},onChangeSettings:()=>s(L)}))}return Fe.createElement(ie,{header:{title:oc.t("Confirm Swap"),onWallet:()=>{let L=`../${O.wallets}`;s(L)}},footer:Fe.createElement(Cx,null,Fe.createElement("div",{className:kx()},Fe.createElement(dx,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||f,disabled:!!b.error||!g,onClick:M},oc.t("Start Swap"))),Fe.createElement(Qg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||f,disabled:!g,onClick:m.bind(null,!0)},Fe.createElement(gx,{size:24})))},u&&Fe.createElement(If,{open:u,onClose:()=>m(!1),onCancel:v,loading:T,onCheckBalance:x}),Fe.createElement(se,null,Fe.createElement("div",{className:wx()},Fe.createElement(fx,{variant:"title",size:"small"},oc.t("You get")),Fe.createElement("div",{className:Tx()},Fe.createElement(Pi,{onClick:!T&&!u&&!N?$:void 0}))),Fe.createElement(nc,{size:"12"}),vm(j.map((L,Y)=>({element:L,key:`alert-${Y}`})),Fe.createElement(nc,{size:10})),j.length>0?Fe.createElement(nc,{size:10}):null,Fe.createElement(zo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:b.error,loading:T,warning:b.warnings?.quote??null})))}i(qg,"ConfirmSwapPage");import{i18n as to}from"@lingui/core";import{Button as hc,CustomTokensZeroStateDarkIcon as Qx,CustomTokensZeroStateIcon as qx,DeleteIcon as Hx,Divider as vr,IconButton as Gx,MessageBox as Vx,NotFound as Kx,styled as Sc}from"@rango-dev/ui";import fe,{useState as yc}from"react";import{useNavigate as jx}from"react-router-dom";import{CloseIcon as vx,IconButton as bx,SearchIcon as xx,TextField as Ex}from"@rango-dev/ui";import In from"react";import{styled as Hg}from"@rango-dev/ui";var Gg=Hg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),Vg=Hg("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,...m}=t,f=s.length?In.createElement(bx,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},In.createElement(vx,{color:"gray",size:10})):null;return p&&(f=p),In.createElement(Vg,null,In.createElement(Ex,{prefix:In.createElement(Gg,null,In.createElement(xx,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...m}))}i(At,"SearchInput");import{i18n as gc}from"@lingui/core";import{Button as Bx,CustomTokenWarning as Wx,darkTheme as rh,Divider as eo,ExternalLinkIcon as Mx,Image as Lx,ListItem as Px,NotFound as _x,PinIcon as Dx,Skeleton as Qo,Typography as Tr,VirtualizedList as $x}from"@rango-dev/ui";import P,{useState as Fx}from"react";import{useTranslation as Ox}from"react-i18next";import{Divider as oh,ListItem as Nx,Skeleton as kr}from"@rango-dev/ui";import Nt from"react";import{css as An,darkTheme as ic,ImageContainer as Ix,ListItemButton as Ax,styled as it,Typography as Kg}from"@rango-dev/ui";var ac=An({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),sc=An({position:"relative",height:12,width:"30%",maxWidth:"150px"}),lc=An({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),cc=An({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ic} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),pc=An({}),uc=An(),jg=it("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),dc=it("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),da=it("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${sc}`]:{[`& .${cc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${pc}`]:{bottom:"-15px"},[`& .${ac}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${lc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Xg=it(Ax,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),mc=it("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),fc=it(Kg,{}),Yg=it("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${uc}`]:{$$color:"$colors$neutral600",[`.${ic} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Cr=it("div",{display:"flex",alignItems:"end",flexDirection:"column"}),rV=it("div",{display:"flex",alignItems:"center"}),Zg=it("div",{position:"relative",[`& ${Ix}`]:{borderRadius:"$xm",overflow:"hidden"}}),Jg=it("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Rg=it(Kg,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),eh=it("a",{"& svg:hover":{color:"$colors$info"}}),th=it("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${ic} &`]:{color:"$foreground"}}}});function nh(t){return Nt.createElement(da,null,Array.from(Array(t.size),e=>Nt.createElement(Nx,{key:e,hasDivider:!0,start:Nt.createElement(kr,{variant:"circular",width:35,height:35}),end:Nt.createElement(Cr,null,Nt.createElement(kr,{variant:"text",size:"large",width:70}),Nt.createElement(oh,{size:4}),Nt.createElement(kr,{variant:"text",size:"medium",width:50})),title:Nt.createElement("div",null,Nt.createElement(kr,{variant:"text",size:"large",width:90}),Nt.createElement(oh,{size:4}),Nt.createElement(kr,{variant:"text",size:"medium",width:90}))})))}i(nh,"LoadingTokenList");var Ux=20,zx=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return P.createElement("div",{className:sc()},o?P.createElement("div",{className:ac()},o):P.createElement(dc,{className:lc()},P.createElement(Tr,{variant:"title",size:"xmedium"},r.symbol),P.createElement(eo,{direction:"horizontal",size:4}),P.createElement(mc,{css:a},P.createElement(fc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&P.createElement("div",{className:`${cc()} ${!o&&pc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",P.createElement(eo,{size:4,direction:"horizontal"}),P.createElement(eh,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},P.createElement(Mx,{size:12}))))},"renderDesc");function wr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=k().fetchStatus,u=k().blockchains(),{getBalanceFor:m,fetchingWallets:f}=k(),{isTokenPinned:h}=k(),{setFromToken:g,setToToken:d}=U()(),{t:S}=Ox(),y=je(),[C,T]=Fx(null),v=i(()=>{c==="source"?g({token:C,meta:{blockchains:u}}):d({token:C,meta:{blockchains:u}})},"updateToken"),b=i(()=>{v(),y()},"handleImportToken"),E=i(x=>{if(x.customToken){let{customToken:B,...M}=x;return P.createElement(Bx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(Q=>{Q.stopPropagation(),T({...M,warning:!0})},"handleClick")},P.createElement(Tr,{variant:"body",size:"xsmall",color:"background"},S("import")))}let w=ri(m(x));return s?s(x):f?P.createElement(Cr,null,P.createElement(Qo,{variant:"text",size:"large",width:70}),P.createElement(eo,{size:4}),P.createElement(Qo,{variant:"text",size:"medium",width:50})):w&&P.createElement(Yg,null,P.createElement(Rg,{variant:"title",size:"small"},w.amount),P.createElement("div",null),w.usdValue&&P.createElement(Tr,{variant:"body",className:uc(),size:"xsmall"},`$${w.usdValue}`))},"endRenderer"),N=i(()=>P.createElement($x,{itemContent:x=>{let w=e[x];if(w==="skeleton")return P.createElement(Px,{hasDivider:!0,start:P.createElement(Qo,{variant:"circular",width:35,height:35}),end:P.createElement(Cr,null,P.createElement(Qo,{variant:"text",size:"large",width:70}),P.createElement(eo,{size:4}),P.createElement(Qo,{variant:"text",size:"medium",width:50})),title:P.createElement("div",null,P.createElement(Qo,{variant:"text",size:"large",width:90}),P.createElement(eo,{size:4}),P.createElement(Qo,{variant:"text",size:"medium",width:90}))});let B=u.find(L=>L.name===w?.blockchain);if(!B||!w)return null;let M=w.address,$=il(B.color,"main"),Q={$$color:$.main150,[`.${rh} &`]:{$$color:$.main750},backgroundColor:"$$color"},K={$$color:$.main750,[`.${rh} &`]:{$$color:$.main150},color:"$$color"},j=i(()=>{typeof w!="string"&&!w.customToken&&n?.(w)},"handleClick");return P.createElement(th,null,P.createElement(Xg,{"tab-index":x,key:`${w.symbol}${M}`,id:`${w.symbol}${M}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:w?.customToken,onClick:j,start:P.createElement(Zg,null,P.createElement(Lx,{src:w.image===""?jr:w.image,size:30}),t.type!=="custom-token"&&w&&h(w,t.type)&&P.createElement(Jg,null,P.createElement(Dx,{size:12,color:"gray"}))),title:B.type==="COSMOS"||w.name||!w.name&&!M?P.createElement(dc,null,P.createElement(Tr,{variant:"title",size:"xmedium"},w.symbol),P.createElement(eo,{direction:"horizontal",size:4}),P.createElement(mc,{css:Q},P.createElement(fc,{variant:"body",size:"xsmall",css:K},w.blockchain)),l&&w.warning&&P.createElement(P.Fragment,null,P.createElement(eo,{direction:"horizontal",size:4}),P.createElement(Wx,{container:W()}))):void 0,description:typeof w!="string"&&B.info&&M&&B.type!=="COSMOS"?zx({address:M,token:w,customCssForTag:Q,customCssForTagTitle:K,name:w.name,url:B.info.addressUrl.split("{wallet}").join(M)}):w.name||void 0,end:E(w)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),I=C?Eo(C?.blockchain,u):null;return P.createElement(P.Fragment,null,a&&P.createElement(P.Fragment,null,P.createElement(Tr,{variant:"label",size:"large"},gc.t("Select Token")),P.createElement(eo,{size:4})),P.createElement(jg,null,P.createElement(eo,{size:4}),p==="loading"&&P.createElement(nh,{size:Ux}),p==="success"&&(e.length?P.createElement(P.Fragment,null,P.createElement(or,{token:C,address:C?.address??"",blockchain:I??void 0,onImport:b,onExitErrorModal:()=>T(null),onExitImportModal:()=>T(null)}),P.createElement(da,{as:"ul"},N())):!!o&&P.createElement(_x,{title:gc.t("No results found"),description:gc.t("Try using different keywords")}))))}i(wr,"TokenList");var Xx=Sc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Yx=Sc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Zx=Sc(Gx,{"&:hover":{"& svg":{color:"$secondary550"}}});function ih(){let[t,e]=yc(""),{deleteCustomToken:o}=k(),n=k().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=U()(),{mode:l}=po({}),p=jx(),[u,m]=yc(!1),[f,h]=yc(),g=i(C=>{let T=C.target.value;e(T)},"handleSearch"),d=l==="dark",S=n.filter(C=>st(C.symbol,t)||st(C.address||"",t)||st(C.name||"",t)),y=i(()=>{if(f){let C=a?yt(a):null,T=r?yt(r):null,v=yt(f);C===v?c({token:null}):T===v&&s({token:null}),o(f)}m(!1)},"handleDeleteCustomToken");return fe.createElement(ie,{header:{title:to.t("Custom Tokens")}},fe.createElement(se,null,fe.createElement(Xx,null,n.length?fe.createElement(fe.Fragment,null,fe.createElement(At,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:to.t("Search Token"),onChange:g}),fe.createElement(vr,{size:16}),fe.createElement(wr,{list:S,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>fe.createElement(Zx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{m(!0),h(C)}},fe.createElement(Hx,{size:12,color:"gray"}))})):fe.createElement(Yx,null,fe.createElement(Kx,{icon:d?fe.createElement(Qx,{size:200}):fe.createElement(qx,{size:200}),title:to.t("No custom tokens"),description:to.t("press the button to add your custom token")})),fe.createElement(vr,{size:20}),fe.createElement(hc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(O.addCustomTokens)},to.t("Add Custom Token"))),fe.createElement(R,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>m(!1),container:W()},fe.createElement(Vx,{title:to.t("Delete Custom Token"),type:"error",description:to.t("Are you sure you want to Delete this Token?")},fe.createElement(vr,{size:40}),fe.createElement(vr,{size:10}),fe.createElement(hc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},to.t("Yes, Delete it")),fe.createElement(vr,{size:12}),fe.createElement(hc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},to.t("No, Continue"))))))}i(ih,"CustomTokensPage");import{i18n as Oe}from"@lingui/core";import{useManager as yE}from"@rango-dev/queue-manager-react";import{Button as xc,darkTheme as SE,Divider as So,MessageBox as CE,NotFound as kE,styled as Ec,Tabs as TE,Typography as ga}from"@rango-dev/ui";import{TransactionStatus as Ir}from"rango-types";import te,{useMemo as bh,useState as Er}from"react";import{useNavigate as wE}from"react-router-dom";import{FilterIcon as rE,Popover as iE}from"@rango-dev/ui";import qo from"react";import{css as Jx,darkTheme as ma,IconButton as Rx,styled as br}from"@rango-dev/ui";var Cc=br("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ma} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),ah=br(Rx,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ma} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ma} &`]:{backgroundColor:"$neutral"},[`& ${Cc}::before`]:{backgroundColor:"$secondary100",[`.${ma} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),sh=br("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),lh=br("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),ch=Jx({display:"flex",justifyContent:"space-between",alignItems:"center"}),ph=br("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as uh}from"@lingui/core";import{Button as eE,Divider as dh,ListItemButton as tE,Radio as oE,RadioRoot as nE,Typography as mh}from"@rango-dev/ui";import dt from"react";function fh(t){let{filterBy:e,onClickItem:o}=t;return dt.createElement(lh,null,dt.createElement("div",{className:ch()},dt.createElement(mh,{size:"small",variant:"body"},uh.t("Status")),dt.createElement(eE,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},uh.t("Reset"))),dt.createElement(dh,{size:10}),dt.createElement(nE,{value:e},dt.createElement(ph,null,t.list.map((n,r)=>dt.createElement(tE,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:dt.createElement(dt.Fragment,null,dt.createElement(dh,{direction:"horizontal",size:4}),dt.createElement(mh,{size:"medium",variant:"body"},n.title)),start:dt.createElement(oE,{value:n.id}),onClick:o})))))}i(fh,"FilterSelectorContent");function kc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return qo.createElement("div",null,qo.createElement(iE,{open:a,align:"end",onOpenChange:o,container:W(),content:qo.createElement(fh,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},qo.createElement(ah,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},qo.createElement(Cc,{isSelect:!!n},qo.createElement(rE,{size:16,color:"black"}),!!n&&qo.createElement(sh,null)))))}i(kc,"FilterSelector");import{i18n as lE}from"@lingui/core";import{getCurrentStep as cE}from"@rango-dev/queue-manager-rango-preset";import{Divider as Ch,GroupedVirtualizedList as pE,Skeleton as uE,SwapListItem as kh,Typography as dE}from"@rango-dev/ui";import Re,{useCallback as Th,useEffect as mE,useRef as fE,useState as gE}from"react";function gh(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(gh,"calculateGroupsSoFar");import{css as aE,darkTheme as sE,styled as xr}from"@rango-dev/ui";var Tc=aE(),hh=xr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),wc=xr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Tc}`]:{$$color:"$colors$neutral600",[`.${sE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),vc=xr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),yh=xr("div",{gap:"$10",display:"flex",flexDirection:"column"}),Sh=xr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var hE=10;function bc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=gE([]),c=fE(0),{swaps:l,groupCounts:p,groups:u}=n(e),m=Th(gh,[]),f=Th(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,hE),s(m(p,c.current)))},[e.length]);if(mE(()=>{r||f()},[r,f]),r){let h=[1,2];return Re.createElement(Re.Fragment,null,[h,h].map((d,S)=>Re.createElement(wc,{key:S},Re.createElement(vc,null,Re.createElement(uE,{variant:"text",width:60,size:"small"}),Re.createElement(Ch,{size:16})),Re.createElement(Ch,{size:4}),Re.createElement(yh,null,d.map((C,T)=>Re.createElement(kh,{isLoading:!0,key:T}))))))}return Re.createElement(pE,{endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>Re.createElement(wc,null,Re.createElement(vc,null,Re.createElement(dE,{variant:"label",size:"medium",className:Tc()},u[h]))),itemContent:(h,g)=>{let d=l[h];if(!d)return null;let S=cE(d),y=d.steps[0],C=d.steps[d.steps.length-1];return!y||!C?null:Re.createElement(hh,{key:d.requestId},Re.createElement(kh,{className:"widget-history-group-list-swap-item-btn",requestId:d.requestId,creationTime:d.creationTime,status:d.status,onClick:o,currentStep:S,tooltipContainer:W(),onlyShowTime:u[g]===lE.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:_(d.inputAmount,6,6),realAmount:d.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:_(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(bc,"HistoryGroupedList");import{i18n as fa}from"@lingui/core";import wh from"dayjs";var vh=i(t=>{let e=new Map([["today",{title:fa.t("Today"),swaps:[]}],["week",{title:fa.t("This week"),swaps:[]}],["month",{title:fa.t("This month"),swaps:[]}],["year",{title:fa.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=wh();t.forEach(l=>{let p=Number(l.creationTime),u=wh(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(l);else{let m=new Date(p).getFullYear().toString();o(m,l)}});let r=Array.from(e.values()).filter(l=>l.swaps.length>0),a=r.flatMap(l=>l.swaps),s=r.map(l=>l.swaps.length),c=r.map(l=>l.title);return{swaps:a,groupCounts:s,groups:c}},"groupSwapsByDate");var vE=Ec("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),bE=Ec("div",{display:"flex",justifyContent:"center",alignItems:"center"}),xE=Ec("div",{"._typography":{color:"$neutral700",[`.${SE}&`]:{color:"$neutral900"}}}),EE=[{id:Ir.SUCCESS,title:Oe.t("Complete")},{id:Ir.RUNNING,title:Oe.t("Running")},{id:Ir.FAILED,title:Oe.t("Failed")}],IE=[{id:"all",title:Oe.t("All")},{id:"swap",title:Oe.t("Swap")},{id:"refuel",title:Oe.t("Refuel")}],AE=i((t,e)=>t?.length?t.filter(o=>Pt(o.fromBlockchain,e)||Pt(o.toBlockchain,e)||Pt(o.toSymbol,e)||Pt(o.fromSymbol,e)).length:!1,"isStepContainsText");function xh(){let t=wE(),{manager:e,state:o}=yE(),n=wt(e).map(({swap:E})=>E),[r,a]=Er(""),[s,c]=Er(!1),l=!o.loadedFromPersistor,[p,u]=Er(""),[m,f]=Er(!1),[h,g]=Er("all"),d=i(E=>{let N=E.target.value;a(N)},"handleSearch"),{isMultiMode:S}=Ct(),y=bh(()=>!r&&!p&&h==="all"?n:n.filter(E=>{let{inputAmount:N,status:I,steps:x,requestId:w,mode:B}=E;return(!r||Pt(N,r)||Pt(I,r)||AE(x,r)||Pt(w,r))&&(!p||p===I)&&(h==="all"?!0:h==="swap"?!B||B==="swap":h==="refuel"?B==="refuel":!1)}),[n,r,p,h]),C=!y?.length&&!l,T=i(()=>f(!1),"onCloseModal"),v=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(E){console.log(E)}},"onClear"),b=bh(()=>!n.some(E=>E.status===Ir.SUCCESS||E.status===Ir.FAILED),[n]);return te.createElement(ie,{header:{title:Oe.t("History"),suffix:te.createElement(uo,null,te.createElement(xc,{id:"widget-history-clear-btn",disabled:b,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},te.createElement(ga,{size:"medium",variant:"label",color:"error"},Oe.t("Clear"))))}},te.createElement(se,null,te.createElement(bE,null,te.createElement(At,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Oe.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:d,style:{height:36},value:r}),te.createElement(So,{size:10,direction:"horizontal"}),te.createElement(kc,{filterBy:p,open:s,onOpenChange:E=>c(E),onClickItem:E=>u(E),list:EE})),te.createElement(So,{size:"16"}),S&&!l&&te.createElement(te.Fragment,null,te.createElement(TE,{items:IE,onChange:E=>g(E.id),value:h,type:"secondary"}),te.createElement(So,{size:"12"})),te.createElement(vE,null,C&&te.createElement(Sh,null,te.createElement(So,{size:32}),te.createElement(kE,{title:r?Oe.t("No results found"):Oe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Oe.t("Try using different keywords"):Oe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!C&&te.createElement(bc,{list:y,onSwapClick:t,groupBy:vh,isLoading:l}))),te.createElement(R,{open:m,onClose:T,id:"widget-history-clear-modal",container:W()},te.createElement(So,{size:20}),te.createElement(CE,{type:"warning",title:Oe.t("Clear Transaction History"),description:te.createElement(xE,null,te.createElement(ga,{variant:"body",size:"medium"},Oe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),te.createElement(So,{size:"24"}),te.createElement(ga,{variant:"body",size:"small"},Oe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),te.createElement(So,{size:30}),te.createElement(xc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:v},Oe.t("Yes, Clear the history")),te.createElement(So,{size:10}),te.createElement(xc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:T},te.createElement(ga,{variant:"title",size:"medium",color:"primary"},Oe.t("No, Cancel")))))}i(xh,"HistoryPage");import{i18n as ty}from"@lingui/core";import{Button as pI,Divider as Uc,styled as uI,WarningIcon as dI}from"@rango-dev/ui";import mI from"bignumber.js";import ye,{useEffect as oy,useState as ny}from"react";import{useNavigate as fI}from"react-router-dom";import{i18n as Ih}from"@lingui/core";import{Alert as BE,Divider as Ic,NoRouteIcon as WE,Typography as ME}from"@rango-dev/ui";import Ho from"react";import{styled as NE}from"@rango-dev/ui";var Eh=NE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Ac(){let{fromToken:t,toToken:e}=U()();return!!t&&!!e&&qt(t,e)?Ho.createElement(Eh,null,Ho.createElement(Ic,{size:10}),Ho.createElement(WE,{size:24,color:"gray"}),Ho.createElement(Ic,{size:4}),Ho.createElement(ME,{variant:"title",size:"small"},Ih.t("No Routes Found")),Ho.createElement(Ic,{size:4}),Ho.createElement(BE,{title:Ih.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Ac,"SameTokensWarning");import{Alert as LE,Button as PE}from"@rango-dev/ui";import Nh from"react";import{i18n as ha}from"@lingui/core";function Ah(t){let e=null;return t===li?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ha.t("Reset"),title:ha.t("Slippage cannot be set lower than 0.01%.")},e):t>tn?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ha.t("Change"),title:ha.t("Caution, your slippage is high!")},e):null}i(Ah,"makeAlerts");function Bh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=k(),{onChangeSettings:a}=t,c=Ah(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(si),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Nh.createElement(LE,{title:c.title,type:c.alertType,variant:"alarm",action:Nh.createElement(PE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(Bh,"SlippageWarningsAndErrors");import{i18n as OE}from"@lingui/core";import{IconButton as UE,ReverseIcon as zE,Skeleton as QE,Tooltip as qE,Typography as Ar}from"@rango-dev/ui";import mt from"react";import ya from"bignumber.js";function Mh(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(Mh,"getSlippageColor");function Lh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new ya(e),r=new ya(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 Ph(t,e){let o=new ya(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,ya.ROUND_DOWN).toFormat(2)}`}i(Ph,"formatTokenValueInUsd");import{darkTheme as $E,styled as Bc,Typography as FE}from"@rango-dev/ui";var _h=Bc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),Dh=Bc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${$E} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Wc=Bc(FE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Mc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=k(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,m=o!==null?o:e,{mode:f}=po({}),h=rn(m),g=f==="dark",d=n==="default",S={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},C=p?.swaps[0]?.from||c,T=p?.swaps[p?.swaps.length-1]?.to||l,v=d?C:T,b=d?T:C,E=Number(d?p?.outputAmount:p?.requestAmount),N=Number(d?p?.requestAmount:p?.outputAmount),I=E||v.usdPrice,x=N||b.usdPrice,{rawValue:w,displayValue:B}=Lh({toTokenUsdPrice:x,fromTokenUsdPrice:I});return mt.createElement(_h,null,mt.createElement(Ar,{variant:S||y?"label":"body",size:S||y?"medium":"small",color:Mh({error:S,warning:y,isDarkTheme:g})},OE.t("Slippage:")," ",m,"%"),u?mt.createElement(QE,{height:16,width:104,variant:"rounded"}):I&&x&&mt.createElement(Dh,null,mt.createElement(Ar,{className:"rate-text",variant:"body",size:"small"},"1"),mt.createElement(Wc,{className:"rate-text",variant:"body",size:"small"},b.symbol),mt.createElement(UE,{id:"widget-home-page-change-rate-button",onClick:r},mt.createElement(zE,{size:14,color:"secondary"})),mt.createElement(qE,{container:W(),side:"top",sideOffset:4,content:mt.createElement(Ar,{className:"rate-text",variant:"body",size:"small"},w)},mt.createElement(Ar,{className:"rate-text",variant:"body",size:"small"},B)),mt.createElement(Wc,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&mt.createElement(Ar,{color:"neutral600",variant:"body",size:"small"},"~",Ph(Number(w),v.usdPrice))))}i(Mc,"SwapMetrics");import{i18n as XE}from"@lingui/core";import{Header as YE}from"@rango-dev/ui";import Co,{useEffect as ZE,useState as JE}from"react";import{i18n as GE}from"@lingui/core";import{Divider as Pc,FullExpandedQuote as VE,Typography as KE}from"@rango-dev/ui";import we from"react";import{styled as Lc}from"@rango-dev/ui";var $h=Lc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Fh=Lc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Oh=Lc("div",{width:"146px"});import{i18n as Nr}from"@lingui/core";import{Select as HE}from"@rango-dev/ui";import Uh from"react";function Sa(t){let{updateQuotePartialState:e,sortStrategy:o}=U()(),n=[{value:"SMART",label:Nr.t("Smart Routing")},{value:"FEE",label:Nr.t("Lowest Fee")},{value:"SPEED",label:Nr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Nr.t("Maximum Return")},{value:"PRICE",label:Nr.t("Maximum Output")}];return Uh.createElement(Oh,null,Uh.createElement(HE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Sa,"SelectStrategy");var zh=3;function Br(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:m,toToken:f,sortStrategy:h,error:g}=U()(),{slippage:d,customSlippage:S}=k(),{findToken:y}=k(),C=c||W(),T=!!p&&p.results.length,v=S??d,b=i(I=>{if(!m||!f||!p)return null;let x={requestAmount:p.requestAmount,validationStatus:null,...I};return dn({currentQuote:x,userSlippage:v,findToken:y})},"getQuoteWarning"),E=g?.type===0||g?.type===1,N=p?.results?xi(h,p?.results):[];return we.createElement(we.Fragment,null,a&&we.createElement(we.Fragment,null,we.createElement(Fh,null,we.createElement(KE,{size:"xmedium",variant:"title"},GE.t("Sort by")),we.createElement(Sa,{container:C})),we.createElement(Pc,{size:"10"})),e&&Array.from({length:zh},(I,x)=>we.createElement(we.Fragment,{key:x},s?we.createElement(VE,{loading:!0}):we.createElement(yr,{tagHidden:!1,type:"list-item",expanded:!1}),x!==zh-1&&we.createElement(Pc,{size:16}))),!e&&we.createElement(we.Fragment,null,T?N.map((I,x)=>{let w=b(I),B=ec(I.swaps),M=N.length-1===x;return we.createElement(we.Fragment,{key:I.requestId},we.createElement(zo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:C,selected:l?.requestId===I.requestId,tagHidden:!1,quote:{...I,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:w,fullExpandedMode:s,onClick:$=>{B||u("warning",w),u("error",B?.options||null),o($)},type:"list-item"}),!M&&we.createElement(Pc,{size:16}))}):E&&we.createElement($h,null,we.createElement(lr,{size:s?"large":"small",error:g,fetch:n}))))}i(Br,"Quotes");import{darkTheme as jE,styled as Qh}from"@rango-dev/ui";var qh=Qh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${jE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Hh=Qh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var RE=100;function _c(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=JE(!1),l=s?"":"is-hidden",{config:p}=k(),u=p?.variant==="full-expanded",m=Ao();return ZE(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},RE):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Co.createElement(qh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Fi()} widget-expanded-quotes-container`,id:tt.EXPANDED_BOX_ID},Co.createElement(YE,{title:XE.t("Routes"),suffix:Co.createElement(Co.Fragment,null,Co.createElement(Sa,{container:m}),Co.createElement(Fo,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Co.createElement(Hh,null,Co.createElement(Br,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:Ao(),onClickOnQuote:n,fullExpandedMode:u})))}i(_c,"ExpandedQuotes");import{i18n as Zh}from"@lingui/core";import{SwapInput as Jh}from"@rango-dev/ui";import nI from"bignumber.js";import Wr from"react";import{ReverseIcon as oI}from"@rango-dev/ui";import $c from"react";import{keyframes as eI,styled as Gh}from"@rango-dev/ui";var Dc=450,tI=eI({"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)"}}),Vh=Gh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Kh=Gh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${tI} ${Dc}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 Fc(){let t=U().use.switchFromAndTo();return $c.createElement(Vh,null,$c.createElement(Kh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Dc),t()}},$c.createElement(oI,{size:12})))}i(Fc,"SwitchFromAndToButton");import{styled as jh}from"@rango-dev/ui";var Xh=jh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Yh=jh("div",{position:"relative"});function Oc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:m,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:d}=U()(),{swapMode:S}=Ct(),{connectedWallets:y,getBalanceFor:C}=k(),T=a?C(a):null,v=ri(T)?.amount??"0",b=T?new nI(T.amount).shiftedBy(-T.decimals):ce,E=!!s&&wu(y,s.name),N=!zs(d,m,f),I=!zs(d,m,g),x=!f||!g||!g.gt(0)?null:Kt(f.toString(),g.toString());return Wr.createElement(Xh,null,Wr.createElement(Yh,null,Wr.createElement(Jh,{label:Zh.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:m,usdValue:N?void 0:_(f,4,4),realUsdValue:N?void 0:f?.toString(),error:N?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:E,tooltipContainer:W(),onSelectMaxBalance:()=>{let w=_(b,T?.decimals),B=T?.amount?w.split(",").join(""):"";p(B)},anyWalletConnected:y.length>0}),S==="swap"&&Wr.createElement(Fc,null)),Wr.createElement(Jh,{selectionType:S==="swap"?"token":"chain",sharpBottomStyle:!r&&(!!d||e),label:Zh.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:_(Kt(f,g),2,2),warningLevel:jt(x??0),price:{value:_(h,6,6),usdValue:I?void 0:_(g,4,4),realValue:h?.toString(),realUsdValue:I?void 0:g?.toString(),error:I?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:W()}))}i(Oc,"Inputs");import{warn as rI}from"@rango-dev/logging-core";import{useCallback as iI,useEffect as aI,useRef as sI,useState as lI}from"react";function Rh(){let{fetch:t,loading:e,cancelFetch:o}=la({request:async(n,r)=>await ct().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Rh,"useFetchAllQuotes");var cI=600;function Ca({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Rh(),{excludeLiquiditySources:n,routing:r}=k().config,{connectedWallets:a}=k(),c=a.some(le=>le.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:m,selectedQuote:f,sortStrategy:h,resetQuote:g,error:d,warning:S,setSelectedQuote:y,updateQuotePartialState:C}=U()(),{slippage:T,customSlippage:v,affiliatePercent:b,affiliateRef:E,affiliateWallets:N,fetchStatus:I}=k(),x=k().getLiquiditySources(),w=k().getDisabledLiquiditySources(),B=k().excludeLiquiditySources(),{findToken:M}=k(),[$,Q]=lI(!0),K=sI(u),j=v??T,Y=!l||!p||qt(l,p)||!Fn(u),ee=i(le=>{Q(le)},"resetState"),Z=i(le=>{let{fromToken:he,toToken:qe,inputAmount:gt,liquiditySources:Ie,excludeLiquiditySources:D,disabledLiquiditySources:A,slippage:H,affiliateRef:ae,affiliatePercent:V,affiliateWallets:X}=le;if($||ee(!0),!Y&&he&&qe){g();let He=Qd({fromToken:he,toToken:qe,inputAmount:gt,liquiditySources:Ie,excludeLiquiditySources:D,disabledLiquiditySources:A,wallets:a,slippage:H,affiliateRef:ae,affiliatePercent:V,affiliateWallets:X,contractCall:c});nn("experimental",r)&&(He.experimental=!0),nn("avoidNativeFee",r)&&(He.avoidNativeFee=!0),nn("enableCentralizedSwappers",r)&&(He.enableCentralizedSwappers=!0),r?.maxLength&&(He.maxLength=r.maxLength),e(He).then(Ge=>{let ve=xi(h,Ge.results),Mt=Bd(f,ve,Ge.requestAmount);Q(!1),C("quotes",Ge),y(Mt),ca({diagnosisMessages:Ge.diagnosisMessages,requestId:Mt?.requestId||"",swaps:Mt?.swaps});let Xa=Mt&&dn({currentQuote:Mt,userSlippage:j,findToken:M});C("warning",Xa)}).catch(Ge=>{let ve=pa(Ge);(ve.type===0||ve.type===1)&&g(),ve.type!==2&&(C("error",ve),Q(!1),rI(new Error("quote error"),{tags:{...ve,type:Ye[ve.type],requestBody:He}}))})}},"fetch"),ue=iI(Zr(le=>{Z(le)},cI),[Y]);return aI(()=>{if(!t){Q(!1);return}if(I!=="success")return;if(Y){Q(!1),(f||d||S)&&g();return}if(!Fn(u)&&m?.eq(0)){ee(!1),o();return}g(),ee(!0);let le=Z;return K.current&&K.current!=u&&(le=ue),K.current=u,le({inputAmount:u,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:j,affiliateRef:E,affiliatePercent:b,affiliateWallets:N,contractCall:c}),o},[I,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,Y,x?.length,n,w.length,j,E,b,c,JSON.stringify(N)]),{fetch:()=>Z({inputAmount:u,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:j,affiliateRef:E,affiliatePercent:b,affiliateWallets:N,contractCall:c}),loading:$}}i(Ca,"useSwapInput");function ey(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(ey,"emitPreventableEvent");var gI=uI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),hI=300;function ry(){let t=fI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=U()(),[h,g]=ny(!1),{isLargeScreen:d,isExtraLargeScreen:S}=hn(),{fetch:y,loading:C}=Ca({refetchQuote:a}),{config:T,fetchStatus:v,connectedWallets:b,customSlippage:E,slippage:N,setSlippage:I,setCustomSlippage:x}=k(),{isActiveTab:w}=oe(),[B,M]=ny(!1),$=E!==null?E:N,{swapMode:Q}=Ct(),K=rn($),L=Fd({fetchMetaStatus:v,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:b.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),Y=Nu(d,S,T?.variant),ee=!!n&&!!e&&!!o&&new mI(n).gt(0)&&!Xd(e,o),Z=ee&&v==="success"&&C,ue=K?.quoteValidation||c,qe=(!Y||Y&&l?.results.length)&&(ue||s),gt=!!e&&!!o,Ie=gt&&!!K,D=(r||s)&&!B?y:void 0,A=i(X=>{Y&&h?(g(!1),setTimeout(()=>{t(X)},hI)):t(X)},"onHandleNavigation"),H=i(X=>{r?.requestId!==X.requestId&&(M(!1),p(X))},"onClickOnQuote"),ae=i(X=>{if(X){if(ai.includes(X)){I(X),x(null);return}x(X)}},"onChangeSlippage"),V=i(X=>{A(X==="from"?O.fromSwap:Q==="swap"?O.toSwap:O.toSwap+"/"+O.blockchains)},"handleInputTokenClick");return oy(()=>{u(),f("refetchQuote",!0)},[]),oy(()=>{g(ee)},[ee]),ye.createElement(gI,null,ye.createElement(ie,{height:"auto",footer:ye.createElement(pI,{id:`widget-swap-${L.action}-btn`,type:"primary",size:"large",disabled:L.disabled||!w,prefix:L.action==="confirm-warning"&&ye.createElement(dI,null),fullWidth:!0,onClick:()=>{L.action==="connect-wallet"?ey({type:"clickConnectWallet"},()=>A(O.wallets)):L.action==="confirm-warning"?M(!0):A(O.confirmSwap)}},L.title),header:{onWallet:()=>{A(O.wallets)},hasBackButton:!1,title:T.title||(Q==="swap"?ty.t("Swap"):ty.t("Refuel")),suffix:ye.createElement(Fo,{hidden:Y?["refresh"]:void 0,onClickRefresh:D,onClickHistory:()=>A(O.swaps),onClickSettings:()=>{A(O.settings)}})}},ye.createElement(se,null,ye.createElement(Oc,{fetchingQuote:Z,fetchMetaStatus:v,isExpandable:Y,onClickToken:V}),ye.createElement(Uc,{size:"2"}),Y?null:ye.createElement(zo,{quote:r,loading:Z,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:ue,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),A(O.routes)}:void 0}),gt&&ye.createElement(ye.Fragment,null,ye.createElement(Uc,{size:8}),ye.createElement(Mc,{quoteError:s,quoteWarning:ue,fromToken:e,toToken:o,quote:r,loading:Z})),qe?ye.createElement(ye.Fragment,null,ye.createElement(ur,{warning:ue,error:s,skipAlerts:!!K,couldChangeSettings:!0,refetchQuote:y,showWarningModal:B,confirmationDisabled:!w,onOpenWarningModal:()=>M(!0),onCloseWarningModal:()=>M(!1),onChangeSlippage:ae,onConfirmWarningModal:()=>{M(!1),m(!0),A(O.confirmSwap)},onChangeSettings:()=>A(O.settings)})):null,Ie&&ye.createElement(ye.Fragment,null,ye.createElement(Uc,{size:"10"}),ye.createElement(Bh,{onChangeSettings:()=>A(O.settings)})),ye.createElement(Ac,null))),Y?ye.createElement(_c,{loading:Z,onClickOnQuote:H,fetch:y,onClickRefresh:D,isVisible:h}):null)}i(ry,"Home");import{i18n as iy}from"@lingui/core";import{Alert as yI,Divider as SI,List as CI,ListItemButton as kI,Radio as TI,RadioRoot as wI,Typography as vI}from"@rango-dev/ui";import Ot from"react";function ko(){let{setLanguage:t,language:e,config:o}=k(),n=Du,r=o?.language||an;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||an),resetLanguage:()=>t(null)}}i(ko,"useLanguage");function ay(){let{activeLanguage:t,changeLanguage:e,languages:o}=ko(),n=je(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Ot.createElement(vI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Ot.createElement(TI,{value:s}),start:Ot.createElement(l,null)}});return Ot.createElement(ie,{header:{title:iy.t("Language")}},Ot.createElement(se,null,Ot.createElement(yI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Ot.createElement(SI,{size:"8"}),Ot.createElement(wI,{value:t},Ot.createElement(CI,{type:Ot.createElement(kI,{title:iy.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(ay,"LanguagePage");import{i18n as oo}from"@lingui/core";import{Button as AI,Checkbox as NI,Image as BI,ListItemButton as WI,NotFound as MI,Typography as LI}from"@rango-dev/ui";import et,{useState as PI}from"react";import{Checkbox as EI,Skeleton as ly}from"@rango-dev/ui";import Lr from"react";import{styled as zc}from"@rango-dev/ui";var Mr=zc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Qc=zc("div",{width:80,display:"flex",justifyContent:"flex-end"}),qc=zc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as bI,styled as xI}from"@rango-dev/ui";var sy=xI(bI,{height:61});var II=30;function Hc(){return Lr.createElement(Mr,null,Array.from(Array(II),(t,e)=>Lr.createElement(sy,{hasDivider:!0,key:e,start:Lr.createElement(ly,{variant:"circular",width:35,height:35}),title:Lr.createElement(ly,{variant:"text",size:"large",width:90}),end:Lr.createElement(EI,{checked:!1})})))}i(Hc,"LoadingLiquiditySourceList");function Gc({sourceType:t}){let e=k().fetchStatus,o=k().swappers(),n=k().getDisabledLiquiditySources(),[r,a]=PI(""),s=k().toggleLiquiditySource,c=k().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 m=l.filter(y=>u.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,h=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:C,groupTitle:T,logo:v,id:b,...E}=y;return{id:`widget-setting-liquidity-source-${pu(b.toLowerCase())}-item-btn`,start:et.createElement(BI,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(T)},end:et.createElement(NI,{checked:C,disabled:c}),title:et.createElement(LI,{variant:"title",size:"xmedium"},oo.t(T)),selected:C,groupTitle:T,logo:v,...E}}),d=i(y=>{let C=y.target.value;a(C)},"handleSearch"),S=g;return r&&(S=g.filter(y=>Pt(y.groupTitle,r))),et.createElement(ie,{header:{title:oo.t(t),suffix:et.createElement(Qc,null,et.createElement(AI,{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")))}},et.createElement(se,{view:!0},et.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:d}),e==="loading"&&et.createElement(Hc,null),!S.length&&r?et.createElement(qc,null,et.createElement(MI,{title:oo.t("No results found"),description:oo.t("Try using different keywords")})):e==="success"&&et.createElement(Mr,{disabled:c,className:"widget-liquidity-source-list"},S.map(y=>{let{groupTitle:C,...T}=y;return et.createElement(et.Fragment,{key:y.id},et.createElement(WI,{style:{height:"61px"},...T,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Gc,"LiquiditySourcePage");import{i18n as _I}from"@lingui/core";import ka from"react";import{useNavigate as DI}from"react-router-dom";function cy(){let t=DI(),e=je(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=U()(),{fetch:c,loading:l}=Ca({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${O.settings}`,m=`../${O.wallets}`;return ka.createElement(ie,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:_I.t("Routes"),suffix:ka.createElement(Fo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},ka.createElement(se,null,ka.createElement(Br,{fetch:c,loading:l,onClickOnQuote:p})))}i(cy,"RoutesPage");import{i18n as hy}from"@lingui/core";import{Divider as yy,getCategoriesCount as VI,SelectableCategoryList as KI}from"@rango-dev/ui";import no,{useState as Sy}from"react";import{useNavigate as jI}from"react-router-dom";import{i18n as Vc}from"@lingui/core";import{Divider as UI,Image as zI,ListItemButton as QI,NotFound as qI,Typography as gy}from"@rango-dev/ui";import ft,{useEffect as HI,useState as GI}from"react";var py=i((t,e,o)=>t.filter(n=>Jr(n.type,o)).filter(n=>st(n.name,e)||st(n.displayName,e)),"filterBlockchains");import{ImageContainer as $I,styled as uy}from"@rango-dev/ui";var dy=uy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Ta=uy(vl,{padding:0,margin:0,listStyle:"none",[`& ${$I}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as FI,Skeleton as my}from"@rango-dev/ui";import wa from"react";var OI=20;function fy(){return wa.createElement(Ta,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(OI),t=>wa.createElement(FI,{key:t,hasDivider:!0,start:wa.createElement(my,{variant:"circular",width:35,height:35}),title:wa.createElement(my,{variant:"text",size:"large",width:90})})))}i(fy,"LoadingBlockchainList");function Kc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=GI(e),{fetchStatus:l}=k();HI(()=>{c([...py(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ft.createElement(qI,{title:Vc.t("No results found"),description:Vc.t("Try using different keywords")}):ft.createElement(Ta,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ft.createElement(QI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ft.createElement(zI,{src:u.logo,size:30}),title:ft.createElement(gy,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ft.createElement(ft.Fragment,null,a&&ft.createElement(ft.Fragment,null,ft.createElement(gy,{variant:"label",size:"large"},Vc.t("Select Chain")),ft.createElement(UI,{size:4})),ft.createElement(dy,null,l==="loading"&&ft.createElement(fy,null),l==="success"&&p()))}i(Kc,"BlockchainList");function va(t){let{type:e}=t,o=je(),[n,r]=Sy(""),[a,s]=Sy("ALL"),c=U().use.setToBlockchain(),l=U().use.setFromBlockchain(),p=U().use.setToToken(),{fetchStatus:u,findNativeToken:m}=k(),f=jI(),{swapMode:h}=Ct(),g=k().blockchains({type:e}),d=VI(g),S=!t.hideCategory&&d!==1,y=i(C=>{if(e==="custom-token")f(`..?blockchain=${C.name}`,{replace:!0});else{if(e==="source")l(C);else if(h==="swap")c(C);else{let T=m(C);T&&p({token:T,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return no.createElement(ie,{header:{title:hy.t("Select Chain")}},no.createElement(se,{view:!0},S&&no.createElement(no.Fragment,null,no.createElement(KI,{setCategory:s,category:a,blockchains:g,isLoading:u==="loading"}),no.createElement(yy,{size:24})),no.createElement(At,{value:n,autoFocus:!0,placeholder:hy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:C=>r(C.target.value)}),no.createElement(yy,{size:16}),no.createElement(Kc,{list:g,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:y})))}i(va,"SelectBlockchainPage");import{i18n as Ea}from"@lingui/core";import{Divider as xy,Spinner as cA}from"@rango-dev/ui";import To,{useEffect as pA,useState as uA}from"react";import{useNavigate as dA}from"react-router-dom";import{i18n as Yc}from"@lingui/core";import{BlockchainsChip as ba,Divider as wy,Image as vy,Skeleton as eA,Tooltip as tA,Typography as Zc}from"@rango-dev/ui";import be from"react";import{useEffect as ZI}from"react";var Cy=["ETH","COSMOS","OSMOSIS"];function jc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(XI),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(YI(s)),r=n.splice(a)}return{list:n,more:r}}i(jc,"prepare");function XI(t,e){let o=Cy,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(XI,"sortByMostUsedBlockchains");function YI(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(YI,"generateSortByPreferredBlockchainsFor");function ky(t,e){return!!e.list.find(o=>o.name===t)}i(ky,"isInVisibleList");function Xc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=k();ZI(()=>{if(e?.selected){let a=jc(t,o,e);ky(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=jc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Xc,"usePrepareBlockchainList");import{styled as JI}from"@rango-dev/ui";var Ty=JI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var oA=6,nA=12;function Jc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=Xc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=k(),p=U().use.resetToBlockchain(),u=U().use.resetFromBlockchain(),m=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&m;return be.createElement(be.Fragment,null,!s&&be.createElement(be.Fragment,null,be.createElement(wy,{size:12}),be.createElement(Zc,{variant:"label",size:"large"},Yc.t("Select Chain"))),be.createElement(wy,{size:12}),be.createElement(Ty,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?oA:nA),(d,S)=>be.createElement(eA,{key:S,variant:"rounded",height:50})),l==="success"&&be.createElement(be.Fragment,null,be.createElement(ba,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},be.createElement(Zc,{variant:"body",size:"xsmall",color:"secondary500"},Yc.t("All"))),c.list.map(d=>be.createElement(tA,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:W()},be.createElement(ba,{className:"widget-blockchains-section-item-btn",key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},be.createElement(vy,{src:d.logo,size:30})))),h?be.createElement(ba,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},be.createElement(vy,{src:f.logo,size:30})):null,g?be.createElement(ba,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},be.createElement(Zc,{variant:"body",size:"xsmall",color:"secondary500"},Yc._("More +{count}",{count:c.more.length}))):null)))}i(Jc,"BlockchainsSection");import{useCallback as iA,useRef as aA,useState as Rc}from"react";function ep(){let t=k().blockchains(),e=aA(null),{customTokens:o}=k(),[n,r]=Rc(!1),[a,s]=Rc([]),[c,l]=Rc(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await ct().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),d=new Set(o().map(C=>Gt(C))),S=new Set(t.map(C=>C.name)),y=g.tokens.filter(C=>S.has(C.blockchain)&&!d.has(Gt(C)));s(y),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=iA(Zr((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(ep,"useSearchCustomTokens");function xa(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(xa,"shouldSearchForCustomTokens");function by(t,e,o,n,r){let a=[...t];return xa(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(by,"prepareTokensList");function Ia(t){let{type:e}=t,o=dA(),n=je(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=U()(),{getBalanceFor:u}=k(),{fetch:m,loading:f,tokens:h,cancel:g}=ep(),[d,S]=uA(""),y=e==="source"?r:a,C=y?.name??"",T=k().blockchains({type:e}),v=k().tokens({type:e,blockchain:C,searchFor:d,getBalanceFor:u}),b=by(v,h,d,f,y?.name),E=i(x=>{e==="source"?l(x):p(x)},"updateBlockchain"),N=i(x=>{e==="source"?s({token:x,meta:{blockchains:T}}):c({token:x,meta:{blockchains:T}})},"updateToken"),I={source:Ea.t("Source"),destination:Ea.t("Destination")};return pA(()=>(xa(v,d,y?.name)&&m(d,y?.name??void 0),()=>{g()}),[v.length,d,y?.name]),To.createElement(ie,{header:{title:Ea.t("Swap {type}",{type:I[e]})}},To.createElement(se,null,To.createElement(Jc,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(O.blockchains),onChange:x=>{E(x)}}),To.createElement(xy,{size:24}),To.createElement(At,{value:d,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:Ea.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>S(""),onChange:x=>S(x.target.value),suffix:xa(v,d,y?.name)&&f?To.createElement(cA,{size:12,color:"secondary"}):void 0}),To.createElement(xy,{size:16}),To.createElement(wr,{list:b,selectedBlockchain:C,searchedFor:d,type:e,onChange:x=>{N(x);let w=T.find(B=>x.blockchain===B.name);w&&E(w),n()}})))}i(Ia,"SelectSwapItemsPage");import{i18n as rp}from"@lingui/core";import{Alert as OA,Button as UA,styled as zA}from"@rango-dev/ui";import Go from"react";import{useInRouterContext as QA,useSearchParams as qA}from"react-router-dom";import{i18n as Wy}from"@lingui/core";import{Alert as hA,Divider as op,InfoIcon as yA,SlippageIcon as SA,TextField as CA,Tooltip as kA,Typography as My}from"@rango-dev/ui";import ze from"react";import{Chip as mA,styled as Pr,TextField as fA}from"@rango-dev/ui";var Ey=Pr("div",{paddingTop:"$5",padding:"$10 $5"}),Iy=Pr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${fA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),Ay=Pr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Aa=Pr("div",{maxWidth:"280px",padding:"$10"}),Ny=Pr(mA,{width:"61px",flexShrink:0});import{i18n as tp}from"@lingui/core";import{Typography as gA}from"@rango-dev/ui";import _r from"react";function By(){return _r.createElement(Aa,null,_r.createElement(gA,{variant:"label",size:"medium",color:"neutral700"},tp.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),_r.createElement("br",null),_r.createElement("br",null),_r.createElement("b",null,tp.t("Warning")),":\xA0",tp.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(By,"SlippageTooltipContent");function np(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=k(),r=o!==null?rn(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let m=u;u>Qn&&(m=Qn),n(m)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;du(u)||(p.value=u.slice(0,-1))},"onInput");return ze.createElement(Ey,null,ze.createElement(Ay,null,ze.createElement(SA,{size:16,color:"gray"}),ze.createElement(op,{direction:"horizontal",size:4}),ze.createElement(My,{variant:"title",size:"xmedium"},Wy.t("Slippage tolerance per swap")),ze.createElement(op,{direction:"horizontal",size:4}),ze.createElement(kA,{container:W(),side:"top",sideOffset:4,content:ze.createElement(By,null)},ze.createElement(yA,{color:"gray"}))),ze.createElement(Iy,null,ai.map((l,p)=>{let u=`slippage-${p}`;return ze.createElement(Ny,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),ze.createElement(CA,{type:"number",min:"0.01",max:"30",step:"0.01",status:r?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&ze.createElement(My,{variant:"body",size:"small"},"%"),placeholder:Wy.t("Custom")})),r&&ze.createElement(ze.Fragment,null,ze.createElement(op,{size:10}),ze.createElement(hA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(np,"Slippage");import{i18n as vt}from"@lingui/core";import{AutoThemeIcon as Ly,BridgesIcon as TA,ChevronRightIcon as Na,DarkModeIcon as Py,Divider as Dr,ExchangeIcon as wA,InfinityIcon as vA,InfoIcon as bA,LanguageIcon as xA,LightModeIcon as _y,List as EA,ListItem as IA,ListItemButton as AA,Skeleton as NA,styled as BA,Switch as WA,Tabs as MA,TargetIcon as LA,Tooltip as PA,Typography as at}from"@rango-dev/ui";import F from"react";import{useNavigate as _A}from"react-router-dom";var DA=BA("div",{width:"202px",height:"$40"}),$A=[{id:"light",icon:F.createElement(_y,{color:"black",size:24}),tooltip:F.createElement(at,{size:"xsmall",variant:"body"},vt.t("Light"))},{id:"dark",icon:F.createElement(Py,{color:"black",size:24}),tooltip:F.createElement(at,{size:"xsmall",variant:"body"},vt.t("Dark"))},{id:"auto",icon:F.createElement(Ly,{color:"black",size:24}),tooltip:F.createElement(at,{size:"xsmall",variant:"body"},vt.t("Auto"))}],FA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return F.createElement(Ly,{...e});case"dark":return F.createElement(Py,{...e});default:return F.createElement(_y,{...e})}},"getThemeIcon");function Dy(){let t=_A(),{theme:e}=k().config,{setTheme:o,theme:n}=k(),{activeLanguage:r,languages:a}=ko(),s=a.find(L=>L.local===r)?.label,c=k().fetchStatus,l=k().swappers(),p=k().getDisabledLiquiditySources(),{config:{features:u}}=k(),m=k().customTokens(),f=ot("theme",u),h=ot("liquiditySource",u),g=ot("language",u),d=ot("customTokens",u),S=k().infiniteApprove,y=k().toggleInfiniteApprove,C=ci(l,p),T=C.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),v=T.length,b=T.filter(L=>L.selected).length,E=C.filter(L=>L.type==="DEX"),N=E.length,I=E.filter(L=>L.selected).length,x=i((L,Y)=>{switch(c){case"loading":return F.createElement(NA,{variant:"text",size:"medium",width:50});case"failed":return F.createElement(at,{variant:"body",size:"medium",color:"$error500"},vt.t("Loading failed"));default:return F.createElement(at,{variant:"body",size:"medium"},`${L} / ${Y}`)}},"handleSwapperEndItem"),w={id:"widget-setting-bridge-item-btn",title:F.createElement(at,{variant:"title",size:"xmedium"},vt.t("Bridges")),end:F.createElement(F.Fragment,null,x(b,v),F.createElement(Dr,{direction:"horizontal",size:8}),F.createElement(Na,{color:"black"})),onClick:()=>t(O.bridges),start:F.createElement(TA,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:F.createElement(at,{variant:"title",size:"xmedium"},vt.t("Exchanges")),end:F.createElement(F.Fragment,null,x(I,N),F.createElement(Dr,{direction:"horizontal",size:8}),F.createElement(Na,{color:"black"})),start:F.createElement(wA,{color:"gray",size:16}),onClick:()=>t(O.exchanges)},M={id:"widget-setting-custom-tokens-item-btn",title:F.createElement(at,{variant:"title",size:"xmedium"},vt.t("Custom Tokens")),end:F.createElement(F.Fragment,null,F.createElement(at,{variant:"body",size:"medium"},`${m.length}`),F.createElement(Dr,{direction:"horizontal",size:8}),F.createElement(Na,{color:"black"})),start:F.createElement(LA,{color:"gray",size:16}),onClick:()=>t(O.customTokens)},$={id:"widget-setting-language-item-btn",title:F.createElement(at,{variant:"title",size:"xmedium"},vt.t("Language")),start:F.createElement(xA,{color:"gray",size:16}),end:F.createElement(F.Fragment,null,F.createElement(at,{variant:"body",size:"medium"},s),F.createElement(Dr,{direction:"horizontal",size:8}),F.createElement(Na,{color:"black"})),onClick:()=>t(O.languages)},Q={id:"widget-setting-infinite-approval-item-btn",title:F.createElement(F.Fragment,null,F.createElement(at,{variant:"title",size:"xmedium"},vt.t("Infinite approval")),F.createElement(Dr,{direction:"horizontal",size:4}),F.createElement(PA,{side:"top",sideOffset:4,container:W(),content:F.createElement(Aa,null,F.createElement(at,{variant:"label",size:"medium",color:"neutral700"},F.createElement("b",null,vt.t("Warning")),":\xA0",vt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},F.createElement(bA,{color:"gray"}))),start:F.createElement(vA,{color:"gray",size:16}),end:F.createElement(WA,{checked:S}),onClick:y},K={id:"widget-setting-theme-item-btn",type:F.createElement(IA,null),title:F.createElement(at,{variant:"title",size:"xmedium"},vt.t("Theme")),end:F.createElement(DA,null,F.createElement(MA,{container:W(),items:$A,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:FA(n)},j=h?[]:[w,B];return d||j.push(M),g||j.push($),j.push(Q),!e?.singleTheme&&!f&&j.push(K),F.createElement(EA,{type:F.createElement(AA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:j})}i(Dy,"SettingsLists");var HA=zA("div",{paddingLeft:"$8"});function $y(){let{isInCampaignMode:t,updateCampaignMode:e}=k(),o=t(),[,n]=qA(),r=QA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Go.createElement(ie,{header:{title:rp.t("Settings")}},Go.createElement(se,null,o&&Go.createElement(OA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:rp.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:Go.createElement(HA,null,Go.createElement(UA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},rp.t("Reset")))}),Go.createElement(np,null),Go.createElement(Dy,null)))}i($y,"SettingsPage");import{i18n as RN}from"@lingui/core";import{cancelSwap as e0}from"@rango-dev/queue-manager-rango-preset";import{useManager as t0}from"@rango-dev/queue-manager-react";import{Alert as o0}from"@rango-dev/ui";import kp from"react";import{useParams as n0}from"react-router-dom";import{i18n as zt}from"@lingui/core";import{getCurrentNamespaceOfOrNull as ON,getCurrentStep as UN,getRelatedWalletOrNull as zN}from"@rango-dev/queue-manager-rango-preset";import{Button as BS,Divider as QN,QuoteCost as qN,StepDetails as HN,Typography as fp}from"@rango-dev/ui";import{useWallets as GN}from"@rango-dev/wallets-react";import WS from"bignumber.js";import{PendingSwapNetworkStatus as Wn}from"rango-types";import Ce,{useEffect as gp,useRef as hp,useState as Fa}from"react";import{useNavigate as VN}from"react-router-dom";import{i18n as wo}from"@lingui/core";var GA=[wo.t("Sunday"),wo.t("Monday"),wo.t("Tuesday"),wo.t("Wednesday"),wo.t("Thursday"),wo.t("Friday"),wo.t("Saturday")];function Fy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?wo.t("Today"):`${GA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Fy,"timeSince");function Oy(t){return t.finishTime?Fy(parseInt(t.finishTime)):Fy(parseInt(t.creationTime))}i(Oy,"getSwapDate");import Fr from"react";import{i18n as Ba}from"@lingui/core";import{Button as Uy,Divider as ip,MessageBox as VA}from"@rango-dev/ui";import vo from"react";var zy=i(({onCancel:t,onClose:e})=>vo.createElement(vo.Fragment,null,vo.createElement(ip,{size:20}),vo.createElement(VA,{type:"error",title:Ba.t("Cancel Swap"),description:Ba.t("Are you sure you want to cancel this swap?")}),vo.createElement(ip,{size:32}),vo.createElement(Uy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Ba.t("Yes, Cancel it")),vo.createElement(ip,{size:12}),vo.createElement(Uy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Ba.t("No, Continue"))),"CancelContent");import{i18n as Wa}from"@lingui/core";import{Button as Qy,Divider as ap,MessageBox as KA,Typography as jA}from"@rango-dev/ui";import ro from"react";var qy=i(({onDelete:t,onClose:e})=>ro.createElement(ro.Fragment,null,ro.createElement(ap,{size:20}),ro.createElement(KA,{type:"error",title:Wa.t("Delete Transaction"),description:Wa.t("Are you sure you want to delete this swap?")}),ro.createElement(ap,{size:32}),ro.createElement(Qy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Wa.t("Yes, Delete it")),ro.createElement(ap,{size:12}),ro.createElement(Qy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},ro.createElement(jA,{variant:"title",size:"medium",color:"primary"},Wa.t("No, Cancel")))),"DeleteContent");import{i18n as XA}from"@lingui/core";import{Button as YA,Divider as ZA,MessageBox as JA}from"@rango-dev/ui";import Vo from"react";var Hy=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Vo.createElement(Vo.Fragment,null,Vo.createElement(JA,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Vo.createElement(Vo.Fragment,null,Vo.createElement(ZA,{size:"30"}),Vo.createElement(YA,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},XA.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as gN,getCurrentStep as hN,getRelatedWalletOrNull as yN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as SN}from"@rango-dev/ui";import{useWallets as CN}from"@rango-dev/wallets-react";import Yy from"react";import{i18n as Nn}from"@lingui/core";import{Alert as Vy,Button as eN,Checkbox as tN,Divider as Pa,Image as oN,MessageBox as nN,Spinner as rN,WarningIcon as iN}from"@rango-dev/ui";import{useWallets as aN}from"@rango-dev/wallets-react";import ge,{useState as sN}from"react";import{darkTheme as RA,styled as $r}from"@rango-dev/ui";var rX=$r("div",{display:"flex",justifyContent:"center"}),iX=$r("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Gy=$r("img",{width:"100%"}),Ma=$r("div",{position:"relative"}),La=$r("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${RA} &`]:{$$color:"$warning600"}});var Ky=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=sN(null),{list:s}=bt(),c=oe.use.isActiveTab(),{state:l,connect:p}=aN(),u=s.find(b=>b.type===e.walletType),m=u?.needsNamespace?.data.find(b=>b.value===o?.namespace);if(!u)return null;let f=l(e.walletType),h=u.isHub&&o?.namespace?f.namespaces?.get(o.namespace):null,g=f.connecting||h?.connecting,d=u.isHub?h?.connected:f.connected,S=i(()=>d?Nn.t("Done"):r?Nn.t("Try again"):Nn.t("Connect"),"getButtonTitle"),y=i(()=>g?ge.createElement(rN,{color:"info"}):r||d?null:ge.createElement(tN,{checked:!0,disabled:!0}),"getNamespaceSuffix"),C=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(b){a(b)}},"handleConnect"),T=i(async()=>{if(d){n();return}C()},"handleClickButton"),v=i(()=>{if(!d)return null;let b=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),E=b?.[b?.length-1];return E?ao(E):null},"getAddress");return ge.createElement(ge.Fragment,null,ge.createElement(nN,{type:"warning",title:Nn.t("Connect {wallet}",{wallet:u.title}),description:Nn.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:ge.createElement(Ma,null,ge.createElement(oN,{src:u.image,size:45}),ge.createElement(La,null,ge.createElement(iN,{color:"warning",size:10})))}),d&&!m&&ge.createElement(ge.Fragment,null,ge.createElement(Pa,{size:10}),ge.createElement(Vy,{type:"success",variant:"alarm",title:Nn.t("Wallet connected successfully.")})),r&&!m&&ge.createElement(ge.Fragment,null,ge.createElement(Pa,{size:10}),ge.createElement(Vy,{type:"error",title:r?.message,variant:"alarm"})),m&&ge.createElement(ge.Fragment,null,ge.createElement(Pa,{size:30}),ge.createElement(Mo,{namespace:m,suffix:y(),error:r?.message,connected:d,address:v()})),ge.createElement(Pa,{size:"40"}),ge.createElement(eN,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:T,disabled:!c},S()))},"ConnectWalletContent");import{i18n as jy}from"@lingui/core";import{Button as lN,Divider as cN,Image as pN,MessageBox as uN,WarningIcon as dN}from"@rango-dev/ui";import{useWallets as mN}from"@rango-dev/wallets-react";import{detectInstallLink as fN}from"@rango-dev/wallets-shared";import io from"react";var Xy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=mN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(fN(n.installLink),"_blank"),"handleButtonClick");return io.createElement(io.Fragment,null,io.createElement(uN,{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(Ma,null,io.createElement(pN,{src:n.img,size:45}),io.createElement(La,null,io.createElement(dN,{color:"warning",size:10})))}),io.createElement(cN,{size:"40"}),io.createElement(lN,{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}=CN(),r=hN(e),a=r?yN(e,r):null,s=a?.walletType,c=s?On(n(s)):null,l=r?gN(e,r):null;return s?c===SN.NOT_INSTALLED?Yy.createElement(Xy,{walletType:s}):Yy.createElement(Ky,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function sp(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return Fr.createElement(R,{open:e,onClose:r,container:W()},o==="connectWallet"&&Fr.createElement(Zy,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&Fr.createElement(Hy,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&Fr.createElement(qy,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&Fr.createElement(zy,{onClose:r,onCancel:()=>{r(),s()}}))}i(sp,"SwapDetailsModal");import{i18n as Or}from"@lingui/core";import{Button as lp,Divider as Ur,MessageBox as eS,TokenAmount as kN,Typography as tS}from"@rango-dev/ui";import Se from"react";import{Link as TN,useNavigate as wN}from"react-router-dom";var Jy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Ry="/profile";function cp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:m,diagnosisUrl:f}=t,h=wN(),{showProfileBanner:g}=oe();return Se.createElement(R,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(tt.SWAP_BOX_ID)||document.body},n==="success"?Se.createElement(eS,{type:"success",title:Or.t("Swap Successful")},Se.createElement(kN,{direction:"vertical",tooltipContainer:W(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),Se.createElement(Ur,{size:12}),Se.createElement(tS,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Se.createElement(eS,{type:"error",title:Or.t("Transaction Failed"),description:m}),Se.createElement(Ur,{size:30}),n==="success"&&Se.createElement(Se.Fragment,null,g&&Se.createElement(Se.Fragment,null,Se.createElement(TN,{to:Ry},Se.createElement(Gy,{src:Jy,alt:"Profile Banner"})),Se.createElement(Ur,{size:30})),Se.createElement(lp,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Or.t("Done"))),Se.createElement(Ur,{size:12}),f&&Se.createElement(Se.Fragment,null,Se.createElement(lp,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Or.t("Diagnosis")),Se.createElement(Ur,{size:12})),Se.createElement(lp,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Se.createElement(tS,{variant:"title",size:"medium",color:"primary"},Or.t("See Details"))))}i(cp,"SwapDetailsCompleteModal");import{i18n as $a}from"@lingui/core";import{CopyIcon as PN,DoneIcon as _N,IconButton as DN,RangoExplorerIcon as $N,Tooltip as bS,Typography as xS,useCopyToClipboard as FN}from"@rango-dev/ui";import Bt from"react";import LN from"react";import{i18n as NN}from"@lingui/core";import{Alert as kS,IconButton as BN,LinkIcon as WN}from"@rango-dev/ui";import bo,{Fragment as MN}from"react";import{Alert as bN,ChevronDownIcon as xN,IconButton as EN}from"@rango-dev/ui";import Bn,{useState as IN}from"react";import{css as zr,darkTheme as oS,styled as Ut,Typography as vN}from"@rango-dev/ui";var nS=Ut(se,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${oS} &`]:{color:"$secondary500"}}}}}),rS=Ut("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),iS=Ut("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),aS=Ut("div",{padding:"$0 $20 $20 $20"}),lY=Ut("div",{display:"flex",flexDirection:"column",gap:"$10"}),sS=Ut("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),cY=Ut("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Ko=zr({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=zr({padding:"$5 0"}),_a=zr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),cS=zr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),pS=zr({width:"100%",padding:"0 $20 $10"}),uS=Ut("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),dS=Ut("div",{display:"flex",flexDirection:"column",gap:"$5"}),Da=Ut(vN,{wordBreak:"break-word"});import{styled as pp}from"@rango-dev/ui";var mS=pp("div",{display:"flex",flexDirection:"column",gap:"$10"}),fS=pp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),gS=pp("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]=IN(!1);return Bn.createElement(bN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Bn.createElement(EN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Bn.createElement(fS,{rotated:o},Bn.createElement(xN,{size:12,color:"gray"}))),footer:Bn.createElement(gS,{open:o},Bn.createElement(Da,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(hS,"FailedAlert");import{i18n as yS}from"@lingui/core";import{Alert as up,Button as SS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as AN}from"rango-types";import Qr from"react";function CS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?Qr.createElement(up,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:Qr.createElement(SS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},yS.t("Change"))}):a===AN.WaitingForConnectingWallet?Qr.createElement(up,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Qr.createElement(SS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},yS.t("Connect"))}):Qr.createElement(up,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(CS,"WarningAlert");function dp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=tr(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,m=u&&!c||p&&!s.explorerUrl?.length;return bo.createElement(mS,null,s.explorerUrl?.map((f,h,g)=>{let d=h+f.url,S=h===g.length-1,y=(S&&u||p)&&!m,C=S&&s.status==="failed";return bo.createElement(MN,{key:d},bo.createElement(kS,{id:"widget-swap-details-tx-alert",type:S&&(y&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:NN.t("View transaction"),action:f.url&&bo.createElement(BN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},bo.createElement(WN,{size:12}))}))}),m&&bo.createElement(kS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&bo.createElement(CS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&bo.createElement(hS,{message:a}))}i(dp,"SwapDetailsAlerts");var TS=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:ht(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:_(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ht(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:_(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:_n(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:ht(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:ht(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:_n(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:LN.createElement(dp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function vS(t){if(tr(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]=FN(TS);return Bt.createElement(iS,{className:Ko()},Bt.createElement(xS,{variant:"label",size:"large",color:"neutral700"},$a.t("Request ID")),Bt.createElement("div",{className:_a()},Bt.createElement(xS,{variant:"label",size:"small",color:"neutral700"},e),Bt.createElement(bS,{container:W(),content:o?$a.t("Copied To Clipboard"):$a.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Bt.createElement(DN,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Bt.createElement(_N,{size:16,color:"secondary"}):Bt.createElement(PN,{size:16,color:"gray"}))),Bt.createElement(uS,{target:"_blank",href:`${Xp}/swap/${e}`},Bt.createElement(bS,{container:W(),content:$a.t("View on Rango Explorer"),side:"bottom"},Bt.createElement($N,{size:20})))))}i(ES,"RequestIdRow");import{i18n as IS}from"@lingui/core";import{Typography as AS}from"@rango-dev/ui";import mp from"react";function NS(t){let{date:e,isFinished:o}=t;return mp.createElement("div",{className:Ko()},mp.createElement(AS,{variant:"label",size:"large",color:"neutral700"},o?IS.t("Finished at"):IS.t("Created at")),mp.createElement(AS,{variant:"label",size:"small",color:"neutral700"},e))}i(NS,"SwapDateRow");var KN=3e3;function yp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=GN(),l=k().blockchains(),p=k().swappers(),{findToken:u}=k(),m=U().use.retry(),f=VN(),h=hp(null),[g,d]=Fa(!1),[S,y]=Fa(null),[C,T]=Fa(null),[v,b]=Fa(null),E=hp(S),N=hp(C),I=Ne.use.getNotifications(),x=Ne.use.removeNotification(),w=I(),B=UN(e),M=B?.networkStatus,$=i(Le=>{d(!0),y(Le)},"handleChangeModalState"),Q=i(()=>{d(!1)},"handleCloseModal"),K=i(()=>{T({type:"loading",title:zt.t("Change Network"),description:`We\u2019re switching the connected network to ${ee?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),j=i(()=>{T({type:"success",title:zt.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),L=i(Le=>{T({type:"error",title:zt.t("Network Switch Failed"),description:Le?.message||ae.detailedMessage.content})},"handleShowSwitchNetworkFailed"),Y=Vd(e),ee=B?ON(e,B):null,Z=B?zN(e,B):null,ue=Oy(e),le=Kd(e),he=i(Le=>!!c(Le)?.mobileWallet,"checkIsMobileWallet"),qe=!!M&&[Wn.WaitingForNetworkChange,Wn.NetworkChangeFailed].includes(M),gt=!!Z?.walletType&&he(Z.walletType),Ie=!!Z&&!!ee&&a(Z.walletType,ee.network,ee),D=!!ee&&qe&&(gt||Ie),A=i(()=>{D&&(K(),s(Z.walletType,[{namespace:ee.namespace,network:ee.network}]).then(()=>{j()}).catch(Le=>{L(Le)}))},"handleSwitchNetwork"),H=i(()=>{$("switchNetwork"),A()},"handleSwitchNetworkClick"),ae=Gd(e,B,c),V=wS({swap:e,switchNetworkIsAvailable:D,handleSwitchNetworkClick:H,showNetworkModal:M,setNetworkModal:$,message:ae,blockchains:l,swappers:p}),X=V.length,[He,Ge]=[e.steps[0],e.steps[X-1]],ve=Ge?.outputAmount||Ge?.expectedOutputAmountHumanReadable,Mt=e.steps.reduce((Le,Lt)=>Le+parseFloat(Lt.feeInUsd||""),0),Xa=e.steps.find(Le=>Le.diagnosisUrl)?.diagnosisUrl,Ya=_(parseFloat(ve||"0")*(Ge?.toUsdPrice||0),4,4),Bp=_(parseFloat(e.inputAmount)*(He?.fromUsdPrice||0),4,4),Wp=ve?new WS(ve).multipliedBy(Ge.toUsdPrice||0).toString():"",pC=new WS(e.inputAmount).multipliedBy(He?.fromUsdPrice||0).toString(),Za=Kt(Bp,Ya),Ja=ae.detailedMessage.content||ae.shortMessage,uC=e.status==="success"?zt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:_(ve,6,6),token:V[X-1]?.to.token.displayName,conciseAddress:ao(e.wallets[V[X-1]?.to.chain.displayName||""]?.address||""),chain:V[X-1]?.to.chain.displayName}}):Ce.createElement(dS,null,Ce.createElement(fp,{variant:"body",size:"medium",color:"neutral700",align:"center"},Ja?"":zt.t("Transaction was not sent."),Y?`${zt.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:Y.outputAmount,symbol:Y.symbol,blockchain:Y.blockchain}})}`:""),Ja&&Ce.createElement(Da,{align:"center",variant:"body",size:"medium",color:"neutral700"},Ce.createElement("b",null,"Reason:")," ",Ja));return gp(()=>{w.find(Lt=>Lt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(b(e.status),x(e.requestId),Q()):v&&b(null))},[e.status,e.requestId]),gp(()=>{if(D){if($("switchNetwork"),M===Wn.WaitingForNetworkChange){K();return}if(M===Wn.NetworkChangeFailed){L();return}return}if(M===Wn.WaitingForConnectingWallet){$("connectWallet");return}if(M===Wn.NetworkChanged){$("switchNetwork"),j();return}S&&["connectWallet","switchNetwork"].includes(S)&&Q()},[M]),gp(()=>{if(E.current=S,N.current=C,S==="switchNetwork"&&C?.type==="success"){let Le=setTimeout(()=>{E.current==="switchNetwork"&&N.current?.type==="success"&&Q()},KN);return()=>clearTimeout(Le)}},[S,C]),Ce.createElement(ie,{header:{title:zt.t("Swap Details"),onCancel:e.status==="running"?()=>$("cancel"):void 0,suffix:e.status!=="running"&&Ce.createElement(uo,null,Ce.createElement(BS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>$("delete")},Ce.createElement(fp,{size:"medium",variant:"label",color:"error"},zt.t("Delete"))))},footer:le&&!v&&Ce.createElement(BS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Le=bi(e,l,u);m(Le),setTimeout(()=>{f("../../")},0)}},zt.t("Try again"))},Ce.createElement(nS,{compact:!0,ref:h},Ce.createElement(ES,{requestId:o}),Ce.createElement(NS,{date:ue,isFinished:!!e.finishTime}),Ce.createElement("div",{className:cS()},Ce.createElement(qN,{fee:_(String(Mt),2,2),time:$n(ei(e.steps)),steps:X}),Ce.createElement(mr,{from:{price:{value:_(e.inputAmount,6,6),usdValue:Bp,realUsdValue:pC,realValue:e.inputAmount},token:{displayName:V[0]?.from.token.displayName||"",image:V[0]?.from.token.image},chain:{image:V[0]?.from.chain.image,displayName:V[0]?.from.chain.displayName||""}},to:{price:{value:_(ve,6,6),usdValue:Ya,realUsdValue:Wp,realValue:ve||""},token:{displayName:V[X-1]?.to.token.displayName||"",image:V[X-1]?.to.token.image},chain:{image:V[X-1]?.to.chain.image,displayName:V[X-1]?.to.chain.displayName||""}},percentageChange:_(Za,2,2),warningLevel:jt(Za??0)})),Ce.createElement("div",{className:pS()},Ce.createElement(fp,{variant:"title",size:"small"},zt.t("Swaps steps"))),Ce.createElement(QN,{size:8}),Ce.createElement(aS,null,V.map((Le,Lt)=>{let Mp=Lt,Pn=e.steps[Lt]&&vS(e.steps[Lt]),dC=Pn==="error"||Pn==="in-progress"||Pn==="warning"||Pn==="completed"&&Lt===V.length-1;return Ce.createElement(HN,{className:"widget-swap-details-step-item-container",key:Mp,step:Le,type:"swap-progress",ref:h,state:Pn,hasSeparator:Lt!==0,tabIndex:Mp,isFocused:dC,tooltipContainer:W()})}))),Ce.createElement(sp,{isOpen:g,state:S,switchNetworkModalState:C,onClose:Q,onCancel:r,onDelete:n,message:ae.detailedMessage.content,swap:e,handleSwitchNetwork:H}),Ce.createElement(cp,{open:!!v,diagnosisUrl:Xa,onClose:()=>b(null),status:e.status==="success"?"success":"failed",priceValue:_(ve,6,6),usdValue:Ya,realUsdValue:Wp,realValue:ve||"",percentageChange:_(Za,2,2),token:{displayName:V[X-1]?.to.token.displayName||"",image:V[X-1]?.to.token.image},chain:{image:V[X-1]?.to.chain.image},description:uC}))}i(yp,"SwapDetails");import{i18n as Ua}from"@lingui/core";import{Divider as PS,NotFound as JN,Skeleton as Hr,Typography as za}from"@rango-dev/ui";import Ee from"react";import{i18n as jN}from"@lingui/core";import{Divider as XN,Skeleton as YN,Typography as ZN}from"@rango-dev/ui";import xe from"react";import{css as Wt,styled as Sp}from"@rango-dev/ui";var MS=Sp("div",{width:"100%",height:"100%",padding:"$10 $20"}),qr=Sp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Oa=Sp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),D7=Wt({display:"flex",justifyContent:"space-between",alignItems:"center"}),$7=Wt({display:"flex",justifyContent:"space-between",alignItems:"center"}),F7=Wt({paddingTop:"$15",display:"flex"}),O7=Wt({padding:"$15 $0"}),U7=Wt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),z7=Wt({paddingBottom:"$10"}),Q7=Wt({display:"flex",justifyContent:"start",alignItems:"center"}),q7=Wt({paddingTop:"$5",display:"flex",alignItems:"center"}),H7=Wt({display:"flex",alignItems:"center"}),G7=Wt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),LS=Wt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Cp(){return xe.createElement(MS,null,xe.createElement(gr,{type:"swap-preview"}),xe.createElement("div",{className:"swaps-steps"},xe.createElement(ZN,{variant:"title",size:"small"},jN.t("Swaps steps"))),xe.createElement(xe.Fragment,null,xe.createElement(qr,null,xe.createElement(Ft,{separator:!1}),xe.createElement("div",{className:LS()},xe.createElement(XN,{direction:"horizontal",size:20}),xe.createElement(YN,{height:22,variant:"rectangular"}))),xe.createElement(Oa,null),xe.createElement(qr,null,xe.createElement(Ft,{separator:!1})),xe.createElement(Oa,null),xe.createElement(qr,null,xe.createElement(Ft,{separator:!1})),xe.createElement(Oa,null),xe.createElement(qr,null,xe.createElement(Ft,{separator:!1}))))}i(Cp,"LoadingSwapDetails");function _S(t){let{requestId:e,showSkeleton:o}=t;return Ee.createElement(ie,{header:{title:Ua.t("Swap Details"),suffix:Ee.createElement(uo,null)}},o&&Ee.createElement(rS,null,Ee.createElement("div",{className:Ko()},Ee.createElement(za,{variant:"label",size:"large",color:"neutral700"},`${Ua.t("Request ID")}`),Ee.createElement("div",{className:_a()},Ee.createElement(za,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Hr,{width:60,height:10,variant:"rounded"})),Ee.createElement(PS,{direction:"horizontal",size:4}),Ee.createElement(Hr,{width:16,height:16,variant:"rectangular"}),Ee.createElement(PS,{direction:"horizontal",size:4}),Ee.createElement(Hr,{width:16,height:16,variant:"rectangular"}))),Ee.createElement("div",{className:Ko()},Ee.createElement(za,{className:lS(),variant:"label",size:"large",color:"neutral700"},Ee.createElement(Hr,{width:60,height:10,variant:"rounded"})),Ee.createElement(za,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Hr,{width:60,height:10,variant:"rounded"}))),Ee.createElement(Cp,null)),!o&&Ee.createElement(sS,null,Ee.createElement(JN,{title:Ua.t("Not found"),description:Ua.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(_S,"SwapDetailsPlaceholder");function DS(){let{manager:t,state:e}=t0(),o=!e.loadedFromPersistor,n=wt(t),{requestId:r}=n0(),a=je(),{fetchStatus:s}=k();if(!r)return kp.createElement(o0,{containerStyles:{margin:"20px"},type:"error",title:RN.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&&e0(f)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),m=l?.swap;return!m||c?kp.createElement(_S,{requestId:r,showSkeleton:c}):kp.createElement(yp,{swap:m,requestId:r,onCancel:p,onDelete:u})}i(DS,"SwapDetailsPage");import{i18n as $S}from"@lingui/core";import{Divider as r0,getCategoriesCount as i0,SelectableCategoryList as a0,styled as OS,Typography as s0,Wallet as l0,WalletState as c0}from"@rango-dev/ui";import{useWallets as p0}from"@rango-dev/wallets-react";import Qt,{useState as FS}from"react";var u0=OS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),d0=OS(se,{textAlign:"center"});function US(){let{fetchStatus:t}=k(),[e,o]=FS("ALL"),n=k().blockchains(),{config:r}=k(),{state:a}=p0(),[s,c]=FS(),l=oe.use.isActiveTab(),{list:p}=bt(),u=bu(p,n),f=i0(u)!==1,h=xu(p,e),g=i(d=>{iu(p,r.multiWallets)||c(d)},"handleWalletItemClick");return Qt.createElement(ie,{header:{title:$S.t("Connect Wallets")}},Qt.createElement(d0,null,f&&Qt.createElement(Qt.Fragment,null,Qt.createElement(a0,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),Qt.createElement(r0,{size:24})),Qt.createElement(s0,{variant:"title",size:"xmedium",align:"center"},$S.t("Choose a wallet to connect.")),Qt.createElement(u0,null,h.map((d,S)=>{let C=a(d.type).namespaces,T=`wallet-${S}-${d.type}`,v=ls(d,C);return Qt.createElement(l0,{key:T,...d,state:v?c0.PARTIALLY_CONNECTED:d.state,container:W(),onClick:()=>g(d),isLoading:t==="loading",disabled:!l})}),Qt.createElement(Jn,{id:"widget-state-full-connect-modal",wallet:s,onClose:()=>{c(void 0)}}))))}i(US,"WalletsPage");function zS(){return rm(),js(),m0([{path:O.home,element:Qe.createElement(ry,null)},{path:O.routes,element:Qe.createElement(cy,null)},{path:O.fromSwap,children:[{index:!0,element:Qe.createElement(Ia,{type:"source"})},{path:O.blockchains,element:Qe.createElement(va,{type:"source"})}]},{path:O.toSwap,children:[{index:!0,element:Qe.createElement(Ia,{type:"destination"})},{path:O.blockchains,element:Qe.createElement(va,{type:"destination"})}]},{path:O.settings,children:[{index:!0,element:Qe.createElement($y,null)},{path:O.languages,element:Qe.createElement(ay,null)},{path:O.exchanges,element:Qe.createElement(Gc,{sourceType:"Exchanges"})},{path:O.bridges,element:Qe.createElement(Gc,{sourceType:"Bridges"})},{path:O.customTokens,children:[{index:!0,element:Qe.createElement(ih,null)},{path:O.addCustomTokens,children:[{index:!0,element:Qe.createElement(Jm,null)},{path:O.blockchains,element:Qe.createElement(va,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:O.swaps,children:[{index:!0,element:Qe.createElement(xh,null)},{path:O.swapDetails,element:Qe.createElement(DS,null)}]},{path:O.wallets,element:Qe.createElement(US,null)},{path:O.confirmSwap,element:Qe.createElement(qg,null)}])}i(zS,"AppRoutes");import{useQueueManager as B0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as W0}from"rango-sdk";import{useContext as M0,useEffect as bp,useState as RS}from"react";import{Provider as S0}from"@rango-dev/wallets-react";import Qa,{createContext as C0,useEffect as VS,useMemo as k0,useRef as KS}from"react";import{useEffect as f0}from"react";function QS(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(QS,"hashProviders");function Tp(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=k(),a=n();return f0(()=>{o(),r()},[QS(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(Tp,"useWalletProviders");import{legacyFormatAddressWithNetwork as g0,legacyReadAccountAddress as qS}from"@rango-dev/wallets-core/legacy";import{Events as Mn}from"@rango-dev/wallets-react";import{isEvmBlockchain as h0}from"rango-sdk";function HS(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=k(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(h0).map(d=>d.name),u=i((d,S)=>{let[y,,C,T,v]=d,b={walletType:y,network:T.network??void 0,accounts:C};c.current?c.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let E=ss(y,C,p,S.supportedChainNames,v.isContractWallet);E.length&&e(E,v.namespace,T.derivationPath)},"onAccountsEvent"),m=i((d,S,y,C,T)=>{if(S===Mn.ACCOUNTS){let v=Un(T.supportedBlockchains);y&&u([d,S,y,C,T],{supportedChainNames:v})}S===Mn.PROVIDER_DISCONNECTED&&(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),S===Mn.NAMESPACE_DISCONNECTED&&n(d,y)},"handleUpdatesForHub"),f=i((d,S,y,C,T)=>{if(S===Mn.ACCOUNTS){let v=Un(T.supportedBlockchains),b=[],E=[];if(y?.forEach(I=>{let{network:x}=qS(I);p.includes(x)?b.push(I):E.push(I)}),r.filter(I=>I.walletType===d).map(I=>g0(I.address,I.chain)).length>0){if(b.length>0){let I=ss(d,b,p,v,T.isContractWallet);a(d,{chains:I.map(x=>x.chain)})}E.length>0&&a(d,{chains:E.map(I=>{let{network:x}=qS(I);return x})})}y?u([d,S,y,C,T],{supportedChainNames:v}):(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((d,S,y,C,T)=>{if(S===Mn.CONNECTED&&y){let v={walletType:d,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(S===Mn.NETWORK&&y){let v={walletType:d,network:y,accounts:C.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((d,S,y,C,T)=>{T.isHub?m(d,S,y,C,T):f(d,S,y,C,T),h(d,S,y,C,T)},"handler")}}i(HS,"useUpdates");import{LegacyEvents as y0}from"@rango-dev/wallets-core/legacy";function GS(t,e){let[o,n,r,a,s]=e;n!==y0.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(GS,"propagateEvents");var qa=C0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function T0(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=k(),a=k().blockchains(),s=k().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=Tp(s.wallets,c),p=KS(),u=KS(),{handler:m}=HS({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=k0(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Qa.createElement(qa.Provider,{value:h},Qa.createElement(S0,{allBlockChains:a,providers:l,onUpdateState:(g,d,S,y,C)=>{let T=[g,d,S,y,C];m(...T),t.onUpdateState&&GS(t.onUpdateState,T)},autoConnect:!!f,configs:{wallets:s.wallets}},t.children))}i(T0,"Main");function Ha(t){let{config:e,...o}=t;return Qa.createElement(Hu,{config:e},Qa.createElement(T0,{...o,config:e}))}i(Ha,"WidgetWallets");import{globalCss as w0}from"@rango-dev/ui";var jS=i(()=>w0({"@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 v0}from"@rango-dev/wallets-react";import{useEffect as b0,useRef as x0}from"react";function XS(){let{connect:t,state:e}=v0(),o=x0({}),{fetchStatus:n}=k(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);b0(()=>{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 E0,RouteEventType as YS,StepEventType as ZS,StepExecutionEventStatus as I0,WidgetEvents as Ga}from"@rango-dev/queue-manager-rango-preset";import{useEffect as JS}from"react";function wp(){let t=Ne.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=k();JS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===ZS.TX_EXECUTION&&s.status===I0.TX_SENT&&!E0(c)||s.type===ZS.SUCCEEDED){let u=[],m=l.wallets[c?.fromBlockchain];if(m){let f=e.find(h=>h.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&h.walletType===m.walletType&&h.chain===c?.fromBlockchain);f&&u.push(f)}if(c?.fromBlockchain!==c?.toBlockchain){let f=l.wallets[c?.toBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let f=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(d=>f.some(S=>S.blockchain===d.blockchain&&S.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&S.symbol?.toLocaleLowerCase()===d.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return ke.on(Ga.StepEvent,r),()=>ke.off(Ga.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(Ga.RouteEvent,r),()=>ke.off(Ga.RouteEvent,r)},[ke])}i(wp,"useSubscribeToWidgetEvents");import{useManager as A0}from"@rango-dev/queue-manager-react";import{useEffect as N0}from"react";function vp(){let{isSynced:t,syncNotifications:e}=Ne(),{manager:o,state:n}=A0();N0(()=>{Ne.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(wt(o))},[Ne.persist.hasHydrated(),n.loadedFromPersistor,t])}i(vp,"useSyncNotifications");function xp(){XS(),jS(),wp(),vp();let t=k().blockchains(),{canSwitchNetworkTo:e}=Vi(),[o,n]=RS(null),[r,a]=RS(),s=M0(qa),c=t.filter(W0);bp(()=>()=>om(),[]),bp(()=>()=>nm(),[]),B0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),bp(()=>(Wo.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)}),Wo.destroy),[])}i(xp,"useBootstrap");import{styled as L0}from"@rango-dev/ui";var eC=L0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function jo(){xp();let{config:t}=k(),{activeTheme:e}=po(t?.theme||{}),{activeLanguage:o}=ko();return Ep.createElement(P0,{language:o},Ep.createElement(eC,{id:"swap-container",className:e()},Ep.createElement(zS,null)))}i(jo,"Main");import{setSolanaSignerConfig as eB}from"@rango-dev/signer-solana";import Ap,{useEffect as Np,useMemo as tB}from"react";function tC(){let{setWatermark:t,setShowProfileBanner:e}=oe();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Ht("BASE_URL")}/meta/dapp/config?apiKey=${Ht("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(tC,"useFetchApiConfig");import{useState as _0}from"react";var D0=i(()=>{let[t,e]=_0(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=ru(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),oC=D0;import{checkWaitingForNetworkChange as $0,makeQueueDefinition as F0}from"@rango-dev/queue-manager-rango-preset";import{Provider as O0}from"@rango-dev/queue-manager-react";import{useWallets as U0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as z0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Q0}from"rango-types";import q0,{useMemo as H0}from"react";function G0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=U0(),c=H0(()=>F0({API_KEY:t.apiKey||Ht("API_KEY"),BASE_URL:Ht("BASE_URL"),emitter:{emit:ke.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=k(),u=l(),m={blockchains:p.map(v=>({accounts:[v],name:v.chain}))},f=i(async(v,b)=>a(v,b.network,b)?await r(v,[b]):void 0,"switchNetwork"),h=i(v=>!!s(v).mobileWallet,"isMobileWallet"),g=u.filter(v=>v.enabled).reduce((v,b)=>(v[b.name]=b,v),{}),d=u.filter(Q0),S=i(v=>{let{supportedChains:b}=s(v);return Un(b)},"getSupportedChainNames"),y=e(),C={meta:{blockchains:g,evmBasedChains:d,evmNetworkChainInfo:z0(d),getSupportedChainNames:S},getSigners:o,wallets:m,providers:y,switchNetwork:f,canSwitchNetworkTo:a,state:n,isMobileWallet:h},T=oe.use.isActiveTab();return q0.createElement(O0,{queuesDefs:[c],context:C,onPersistedDataLoaded:v=>{$0(v)},isPaused:!T},t.children)}i(G0,"QueueManager");var nC=G0;import{useManager as Y0}from"@rango-dev/queue-manager-react";import Z0,{createContext as J0,useContext as R0}from"react";function rC(){let{findToken:t}=k(),e=k().blockchains(),o=k().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=U()();return i(p=>{let{fromBlockchain:u,fromToken:m,toBlockchain:f,toToken:h,requestAmount:g}=p,d={blockchains:e,tokens:o};if(u!==void 0){let S=e.find(y=>y.name===u)??null;n(S)}if(m!==void 0){let S=m?t(m)??null:null;r({meta:d,token:S})}if(f!==void 0){let S=e.find(y=>y.name===f)??null;a(S)}if(h!==void 0){let S=h?t(h)??null:null;s({meta:d,token:S})}g!==void 0&&c(g)},"updateQuoteInputs")}i(rC,"useUpdateQuoteInputs");import{cancelSwap as V0,getCurrentNamespaceOfOrNull as K0,getCurrentStep as j0,getRelatedWalletOrNull as X0}from"@rango-dev/queue-manager-rango-preset";var Va=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return wt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=bi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&V0(o)}getCurrentStepInfo(e){let o=j0(e);return{step:o,wallet:o?X0(e,o):null,network:o?K0(e,o)?.network:null}}};var iC=J0(void 0);function Ip(t){let{manager:e}=Y0(),o=oe.use.isActiveTab(),n=U().use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=k(),l=new Va(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=k(),u=Su(a()),m=k().blockchains(),f=k().tokens(),h=k().swappers(),g=k().fetchStatus,d=ko().resetLanguage,S=Ne().getNotifications(),y=Ne().clearNotifications,C=rC(),{fromBlockchain:T,toBlockchain:v,fromToken:b,toToken:E,inputAmount:N}=U()(),I={isActiveTab:o,setCurrentTabAsActive:Wo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async x=>c(x)},meta:{blockchains:m,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:d,notifications:{list:S,clearAll:y},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:b?{symbol:b.symbol,blockchain:b.blockchain,address:b.address}:null,toBlockchain:v?.name??null,toToken:E?{symbol:E.symbol,blockchain:E.blockchain,address:E.address}:null,requestAmount:N},updateQuoteInputs:C}};return Z0.createElement(iC.Provider,{value:I},t.children)}i(Ip,"WidgetInfo");function aC(){let t=R0(iC);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(aC,"useWidget");function Ln(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=tC(),{handleLoadCustomFont:a}=oC();return Np(()=>{r().catch(console.log)},[]),Np(()=>{n&&a(n)},[n]),tB(()=>{Eu({API_KEY:o?.apiKey||Xr,BASE_URL:o?.apiUrl||jp})},[o.apiKey,o.apiUrl]),Np(()=>{t.config?.signers?.customSolanaRPC&&eB("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Ap.createElement(Ha,{config:o,onUpdateState:e},Ap.createElement(nC,{apiKey:o.apiKey},Ap.createElement(Ip,null,t.children)))}i(Ln,"WidgetProvider");function sC(t){let e=t.config?.externalWallets;return Ka.createElement(wi,null,e?Ka.createElement(jo,null):Ka.createElement(Ln,{config:t.config??Jo},Ka.createElement(jo,null)))}i(sC,"Refuel");import ja from"react";function lC(t){let e=t.config?.externalWallets;return ja.createElement(wi,null,e?ja.createElement(jo,null):ja.createElement(Ln,{config:t.config??Jo},ja.createElement(jo,null)))}i(lC,"Widget");function cC(){let{on:t,off:e}=ke;return{on:t,off:e}}i(cC,"useWidgetEvents");var Oee={DerivationPath:Xn,Namespaces:Kn,Detached:jn,isOnDerivationPath:Zn,isOnNamespace:Yn,isOnDetached:xo};export{cee as EventSeverity,on as MainEvents,Cee as Networks,wee as PendingSwapNetworkStatus,ms as QuoteEventTypes,sC as Refuel,pee as RouteEventType,os as SUPPORTED_FONTS,Oee as StatefulConnect,uee as StepEventType,dee as StepExecutionBlockedEventStatus,mee as StepExecutionEventStatus,Sd as SwapModeContext,tt as UI_ID,gs as UiEventTypes,fs as WalletEventTypes,yee as WalletEvents,kee as WalletTypes,lC as Widget,on as WidgetEvents,Ln as WidgetProvider,Ha as WidgetWallets,cl as customizedThemeTokens,gee as readAccountAddress,Xo as useStatefulConnect,bt as useWalletList,Vi as useWallets,aC as useWidget,cC as useWidgetEvents,gk as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map