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

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 (58) hide show
  1. package/dist/components/BlockchainsSection/BlockchainsSection.d.ts.map +1 -1
  2. package/dist/components/HistoryGroupedList/HistoryGroupedList.d.ts.map +1 -1
  3. package/dist/components/HistoryGroupedList/HistoryGroupedList.helpers.d.ts.map +1 -1
  4. package/dist/components/Quote/Quote.d.ts +1 -1
  5. package/dist/components/Quote/Quote.d.ts.map +1 -1
  6. package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
  7. package/dist/components/TokenList/TokenList.d.ts.map +1 -1
  8. package/dist/components/TokenList/TokenList.types.d.ts +6 -6
  9. package/dist/components/TokenList/TokenList.types.d.ts.map +1 -1
  10. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts.map +1 -1
  11. package/dist/hooks/useSyncUrlAndStore/useSyncUrlAndStore.d.ts.map +1 -1
  12. package/dist/hooks/useSyncUrlAndStore/useSyncUrlAndStore.helpers.d.ts +1 -1
  13. package/dist/hooks/useSyncUrlAndStore/useSyncUrlAndStore.helpers.d.ts.map +1 -1
  14. package/dist/index.js +2 -2
  15. package/dist/index.js.map +3 -3
  16. package/dist/store/notification.d.ts.map +1 -1
  17. package/dist/store/slices/wallets.d.ts.map +1 -1
  18. package/dist/store/utils/data.d.ts.map +1 -1
  19. package/dist/store/utils/wallets.d.ts +1 -1
  20. package/dist/store/utils/wallets.d.ts.map +1 -1
  21. package/dist/utils/colors.d.ts.map +1 -1
  22. package/dist/utils/configs.d.ts.map +1 -1
  23. package/dist/utils/quote.d.ts.map +1 -1
  24. package/dist/utils/swap.d.ts +1 -1
  25. package/dist/utils/swap.d.ts.map +1 -1
  26. package/dist/utils/wallets.d.ts.map +1 -1
  27. package/dist/widget-embedded.build.json +1 -1
  28. package/package.json +2 -2
  29. package/src/components/BlockchainsSection/BlockchainsSection.tsx +7 -6
  30. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +1 -1
  31. package/src/components/HistoryGroupedList/HistoryGroupedList.helpers.ts +4 -2
  32. package/src/components/HistoryGroupedList/HistoryGroupedList.tsx +3 -0
  33. package/src/components/Quote/Quote.tsx +14 -9
  34. package/src/components/SwapDetails/SwapDetails.helpers.tsx +2 -2
  35. package/src/components/SwapDetails/SwapDetails.tsx +21 -19
  36. package/src/components/SwapMetrics/SwapMetrics.tsx +2 -2
  37. package/src/components/TokenList/TokenList.tsx +10 -8
  38. package/src/components/TokenList/TokenList.types.ts +9 -6
  39. package/src/components/WalletStatefulConnect/DerivationPath.helpers.ts +1 -1
  40. package/src/hooks/useConfirmSwap/useConfirmSwap.helpers.ts +4 -1
  41. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.ts +1 -1
  42. package/src/hooks/useStatefulConnect/useStatefulConnect.ts +1 -1
  43. package/src/hooks/useSyncUrlAndStore/useSyncUrlAndStore.helpers.ts +4 -2
  44. package/src/hooks/useSyncUrlAndStore/useSyncUrlAndStore.ts +12 -15
  45. package/src/pages/SelectSwapItemPage/SelectSwapItemPage.helpers.ts +1 -1
  46. package/src/store/notification.ts +3 -1
  47. package/src/store/slices/data.test.ts +9 -9
  48. package/src/store/slices/data.ts +1 -1
  49. package/src/store/slices/wallets.ts +22 -9
  50. package/src/store/utils/data.test.ts +27 -14
  51. package/src/store/utils/data.ts +11 -3
  52. package/src/store/utils/wallets.ts +23 -11
  53. package/src/test-utils/fixtures.ts +1 -1
  54. package/src/utils/colors.ts +4 -1
  55. package/src/utils/configs.ts +10 -6
  56. package/src/utils/quote.ts +16 -5
  57. package/src/utils/swap.ts +11 -4
  58. package/src/utils/wallets.ts +4 -2
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var RS=Object.defineProperty;var i=(t,e)=>RS(t,"name",{value:e,configurable:!0});import{EventSeverity as NR,RouteEventType as BR,StepEventType as WR,StepExecutionBlockedEventStatus as LR,StepExecutionEventStatus as MR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as _R}from"@rango-dev/wallets-core/legacy";import{useWallets as Hi,Events as $R}from"@rango-dev/wallets-react";import{Networks as OR,WalletTypes as UR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as qR}from"rango-types";import{Divider as gT}from"@rango-dev/ui";import io,{useEffect as hT,useRef as yT,useState as dd}from"react";import{WalletState as eC}from"@rango-dev/ui";import{useWallets as tC}from"@rango-dev/wallets-react";import{useReducer as oC}from"react";function Ap(t){return!!t.derivationPath}i(Ap,"isStateOnDerivationPathStep");function Np(t){return!!t.namespace}i(Np,"isStateOnNamespace");var Ur={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Bp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return Ur;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Ur;default:throw new Error("Action hasn't been defined.")}}i(Bp,"reducer");function Vo(){let{state:t,disconnect:e,connect:o}=tC(),[n,r]=oC(Bp,Ur),a=i(async(d,g,h)=>{r({type:"reset"});try{let f=g?.map(m=>({...m,network:void 0}));return await o(d,f),{status:"connected"}}catch(f){let m=f?.message?`Error: ${f.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:f})}},"runConnect"),s=i(async(d,g)=>{if(d.state===eC.DISCONNECTED){let f=!!d.isHub,m=f?d.properties?.find(y=>y.name==="namespaces")?.value:d.needsNamespace,S=f?d.properties?.find(y=>y.name==="derivationPath")?.value:d.needsDerivationPath;if(!m?.data?.length)return await a(d.type,void 0,g);if(m?.data.length&&m.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:g?.defaultSelectedChains}}),{status:"namespace"};if(m?.data.length===1){if(S){let y=m.data[0];return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y.value}}),{status:"derivation-path"}}return await a(d.type,m?.data?.map(y=>({namespace:y.value})),g)}}if(d.isHub){let f=d.properties?.find(m=>m.name==="namespaces")?.value;if(f?.data.length&&f.data.length>1)return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return g?.disconnectIfConnected?(await u(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(d,g)=>{let h=!!d.isHub,f=h?d.properties?.find(T=>T.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(T=>T.name==="derivationPath")?.value:d.needsDerivationPath,S=f?.selection==="single",y=g[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(S&&m)return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y}}),{status:"derivation-path"};if(!Np(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=g.map(T=>({namespace:T}));return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:C?.map(T=>T.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async d=>{if(!d)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Ap(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let g=n.derivationPath.providerType,f=[{namespace:n.derivationPath.namespace,derivationPath:d}];return await a(g,f)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let g=t(d.type);return g.connected||g.connecting?(await e(d.type),wo(p)?(r({type:"needsNamespace",payload:{targetWallet:d}}),{status:"namespace"}):{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:p,resetState:d=>{r(d==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Vo,"useStatefulConnect");import{WalletState as Cs}from"@rango-dev/ui";import{useWallets as dk}from"@rango-dev/wallets-react";import{detectMobileScreens as mk,KEPLR_COMPATIBLE_WALLETS as fk,WalletTypes as On}from"@rango-dev/wallets-shared";import{useCallback as gk,useEffect as hk}from"react";import sk,{createContext as lk,useContext as ck,useEffect as pk,useRef as uk}from"react";import{create as ik}from"zustand";import{persist as ak}from"zustand/middleware";import{allProviders as nC}from"@rango-dev/provider-all";var Ya=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},Ko=new Ya;import{defineVersions as Lp,pickVersion as Mp,Provider as Za}from"@rango-dev/wallets-core";function Pp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=_p(a);return s instanceof Za?s.id===n:s.config.type===n});r?o.push(r):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else n instanceof Za?o.push(Lp().version("1.0.0",n).build()):o.push(Lp().version("0.0.0",n).build())}),o}return t}i(Pp,"matchAndGenerateProviders");function _p(t){try{return Mp(t,"1.0.0")[1]}catch{return Mp(t,"0.0.0")[1]}}i(_p,"pickProviderVersionWithFallbackToLegacy");function Dp(t){return t.map(o=>_p(o)).map(o=>o instanceof Za?o.id:o.config.type)}i(Dp,"configWalletsToWalletName");function zr(t,e){return e.find(o=>o.name===t)?.displayName}i(zr,"getBlockchainDisplayNameFor");function ht(t,e){return e.find(o=>o.name===t)?.shortName}i(ht,"getBlockchainShortNameFor");function $p(t,e){return e.find(o=>o.name===t)?.logo}i($p,"getBlockchainImage");function Bn(t,e){return e.find(o=>o.id===t)?.title}i(Bn,"getSwapperDisplayName");function vo(t,e){return e.find(o=>o.name===t)??null}i(vo,"findBlockchain");function Ja(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Ja,"isTokenNative");function yt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(yt,"createTokenHash");function jo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(jo,"isValidTokenAddress");function Wn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=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=>{c.has(l)||a(o.tokensMapByBlockchainName[l])})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=yt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Wn,"matchTokensFromConfigWithMeta");function qr(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(qr,"getSupportedBlockchainsFromConfig");function Op(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Op,"makeProvidersOptionsFromConfig");var Qr={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/manifests/tonconnect-manifest.json"}},rC={clientUrl:void 0},iC={liquiditySources:void 0};function Fp(t){let e=Op(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return nC(o).map(a=>a())}i(Fp,"generateProviders");var Up=i((t,e,o)=>{let n=Fp({...Qr,...t});return{config:{...Qr,...t},iframe:rC,campaignMode:iC,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c}=o(),l=Wn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=Wn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});Ko.set("supportedSourceTokens",l),Ko.set("supportedDestinationTokens",p),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=Fp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Op(a);return Pp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as zp}from"rango-types";var qp=[zp.EVM,zp.SOLANA],Hr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as kC}from"rango-sdk";import{UI_ID as aC}from"@rango-dev/ui";var Gr="c6381a79-2817-4602-83bf-6a641a409e32",Qp="https://api.rango.exchange",Hp="https://explorer.rango.exchange",ot={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...aC};import{BlockchainCategories as mC,WalletState as ct}from"@rango-dev/ui";import{legacyReadAccountAddress as fC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as gC,getCosmosExperimentalChainInfo as hC,isEvmAddress as yC,KEPLR_COMPATIBLE_WALLETS as JB,Networks as uu}from"@rango-dev/wallets-shared";import Yo from"bignumber.js";import{isCosmosBlockchain as SC}from"rango-types";import sC from"bignumber.js";var pe=new sC(0);import{WalletTypes as lC}from"@rango-dev/wallets-shared";var bo="~",Gp=[lC.LEAP];import{BlockchainCategories as es,WalletState as dC}from"@rango-dev/ui";import{TransactionType as Vr}from"rango-sdk";var Vp="Roboto",Ra=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];function Xo(t){return Array.from(new Set(t))}i(Xo,"removeDuplicateFrom");function Kr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Kr,"debounce");function lt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(lt,"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(ot.SWAP_BOX_ID),"getContainer"),xo=i(()=>document.getElementById(ot.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&&lt(e,t),r=!!o&&lt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ts,"compareContainsText");function os(t,e,o){let n=!!e&&Yp(e,t),r=!!o&&Yp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(os,"compareStartWithText");function Jp(t,e,o){if(!o)return 0;let n=Zp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Zp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=os(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ts(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=os(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ts(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=os(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ts(o,t.address,e.address);if(r!==0)return r}return 0}i(Jp,"compareWithSearchFor");var jr=i((t,e)=>{switch(e){case es.ALL:return!0;case es.UTXO:return t===Vr.TRANSFER;case es.OTHER:return t!==Vr.TRANSFER&&t!==Vr.COSMOS&&t!==Vr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Rp=i(t=>Ra.find(o=>o.value===t)?.url,"getFontUrlByName");function eu(t,e){let o=!!t.find(n=>n.state===dC.CONNECTED);return e===!1&&o}i(eu,"isSingleWalletActive");function tu(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(tu,"memoizedResult");import{BigNumber as cu}from"bignumber.js";function ou(t){return t.replace(/^0+(?=\d)/g,"")}i(ou,"removeLeadingZeros");function nu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(nu,"ensureLeadingZeroForDecimal");function ru(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(ru,"formatThousandsWithCommas");function iu(t){return t.replace(/\s+/g,"-")}i(iu,"replaceSpacesWithDash");function au(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(au,"stripTrailingZeros");function Xr(t){return/^0+(?:\.0+)?$/.test(t)}i(Xr,"isZeroValue");function su(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(su,"isValidCurrencyFormat");function lu(t){return/\d+$/.test(t)}i(lu,"isColorKeyOverridden");var Ln=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),_=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 Wt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Mn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function pu(t){return Xr(t)?"0":au(t)}i(pu,"sanitizeInputAmount");function Pn(t){return t.connected?ct.CONNECTED:t.connecting?ct.CONNECTING:t.installed?ct.DISCONNECTED:ct.NOT_INSTALLED}i(Pn,"mapStatusToWalletState");function du(t,e,o,n){return o.filter(r=>!Gp.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:d,properties:g,isHub:h}=e(r),f=Xo(u.map(S=>S.type)),m=Pn(t(r));return{title:a,image:s,link:gC(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:f,needsDerivationPath:d,properties:g,isHub:h}})}i(du,"mapWalletTypesToWalletInfo");function _n(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(_n,"walletAndSupportedChainsNames");function rs(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(g=>g.chain===l)){let g={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(g)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=fC(l),d=c.length>0,g=c.includes(u),h=u===uu.Unknown;if(d&&!g&&!h)return;let m=u===uu.Unknown&&yC(p);if(h&&!m)return;o.includes(u)||m?r?s(u,p.toLowerCase(),r):c.filter(C=>o.includes(C)).forEach(C=>{s(C,p.toLowerCase())}):s(u,p)}),a}i(rs,"prepareAccountsForWalletStore");function 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 d=p.from.blockchain,g=p.to.blockchain,h=a===o.swaps.length-1,f=u===l.length-1;(!h&&!f||h&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(g)})}e==="all"&&n.add(c)}),Array.from(n)}i(Eo,"getQuoteChains");function Dn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Dn,"isAccountAndWalletMatched");var mu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ns(n.usdValue,n.decimals):pe.toFixed();return o.plus(r)},new Yo(pe));return CC(e.toString())},"calculateWalletUsdValue");function CC(t){let e=t.toString().split(".");return e[0]=ru(e[0]),e.join(".")}i(CC,"numberWithThousandSeparator");var Rr=i((t,e)=>{let o=hC(Object.entries(t).map(([,n])=>n).filter(SC));return o&&o[e]?.experimental},"isExperimentalChain");function ns(t,e){return new Yo(t).shiftedBy(-e).toFixed()}i(ns,"representAmountInNumber");function ei(t){if(!t)return null;let e=ns(t.amount,t.decimals),o=t.usdValue?ns(t.usdValue,t.decimals):null,n=_(e,8,8),r=o?_(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):pe,n=e&&e.usdValue?new Yo(e.usdValue).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Yo(t.amount).shiftedBy(-t.decimals):pe,n=e&&e.amount?new Yo(e.amount).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(fu,"compareTokenBalance");function zt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(zt,"areTokensEqual");function gu(t,e){return t.map(o=>({isPartiallyConnected:is(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===ct.CONNECTED&&!n.isPartiallyConnected)-+(o.state===ct.CONNECTED&&!o.isPartiallyConnected)||+(n.state===ct.CONNECTED)-+(o.state===ct.CONNECTED)||+(n.state===ct.DISCONNECTED||n.state===ct.CONNECTING)-+(o.state===ct.DISCONNECTED||o.state===ct.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(gu,"sortWalletsBasedOnConnectionState");function ro(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(ro,"getConciseAddress");function hu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(hu,"getAddress");var yu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Su(t){return t.map(e=>e.state).join("-")}i(Su,"hashWalletsState");function Cu(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(Cu,"filterBlockchainsByWalletTypes");function ku(t,e){return e===mC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(jr(n,e))return!0;return!1})}i(ku,"filterWalletsByCategory");function is(t,e){return!t.isHub||!t.needsNamespace||t.state!==ct.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=>zt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>zt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&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,pt=i(()=>ti||(ti=new kC(qt("API_KEY"),qt("BASE_URL")),ti),"httpService");import{i18n as Eu}from"@lingui/core";var oi=[.5,1,3],ni=1,Zo=5,$n=30,ri=0;var je=(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))(je||{});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 nt(t,e){return e?.[t]==="hidden"}i(nt,"isFeatureHidden");function Ro(t,e){return e?.[t]==="enabled"}i(Ro,"isRoutingEnabled");var Au=i((t,e,o)=>nt("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function en(t){return t==ri?{type:"error",message:Eu.t("Slippage must be greater than or equal to 0.01")}:t>Zo&&t<=$n?{type:"warning",message:Eu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(en,"getSlippageValidation");var Nu=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let l=qr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>qp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",d=Ko.get(u);d?.length||(d=Wn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Ko.set(u,d)),d=Au(d,s,a.features);let g=e().blockchains({type:o.type});return d.filter(f=>o.blockchain&&f.blockchain!==o.blockchain||!g.some(m=>m.name===f.blockchain)?!1:o.searchFor?!!(lt(f.symbol,o.searchFor)||lt(f.address||"",o.searchFor)||lt(f.name||"",o.searchFor)):!0).sort((f,m)=>{let S=e().isTokenPinned(f,o.type),y=e().isTokenPinned(m,o.type);if(S!==y)return S?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(f),I=o.getBalanceFor(m),E=fu(A,I);if(E!==0)return E}let C=l.get(f.blockchain),T=l.get(m.blockchain),w=Ja(f,C),x=Ja(m,T);if(w!==x)return w?-1:1;if(f.isPopular!==m.isPopular)return f.isPopular?-1:1;if(o.searchFor){let A=Jp(f,m,o.searchFor);if(A)return A}return f.isSecondaryCoin!==m.isSecondaryCoin?f.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},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>zt(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 pt().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],p=r.popularTokens,u=r.swappers.filter(h=>h.enabled),d=new Set;r.tokens.forEach(h=>{d.add(h.blockchain),l.push(h)}),r.blockchains.sort((h,f)=>h.sort-f.sort).forEach(h=>{h.enabled&&d.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let f=yt(h);c[h.blockchain]||(c[h.blockchain]=[]),s.set(f,h),c[h.blockchain].push(f)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as TC,Catalonia as wC,Chinese as Bu,Denmark as vC,English as bC,Finland as xC,French as EC,German as IC,Greece as AC,Hungary as NC,India as BC,Indonesian as WC,Italian as LC,Japanese as MC,Korea as PC,Lithuania as _C,Malay as DC,Netherlands as $C,Pakistan as FC,Philippines as OC,Poland as UC,Portuguese as zC,Russian as qC,SaudiArabia as QC,Serbia as HC,Slovakia as GC,SouthAfrica as VC,Spanish as KC,Swahili as jC,Swedish as XC,Thai as YC,Turkish as ZC,Ukrainian as JC,Vietnamese as RC}from"@rango-dev/ui";var Wu=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:VC},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:QC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:TC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:wC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Bu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Bu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:vC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:$C},{title:"English",label:"English",local:"en",SVGFlag:bC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:OC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:xC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:EC},{title:"German",label:"Deutsch",local:"de",SVGFlag:IC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:AC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:BC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:NC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:WC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:LC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:MC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:PC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:_C},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:DC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:UC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:zC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:qC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:HC},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:GC},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:KC},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:jC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:XC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:YC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:ZC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:JC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:FC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:RC}],tn="en";var Lu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:ni,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],quoteTokensRate:"default",changeQuoteTokensRate:()=>t(o=>({quoteTokensRate:o.quoteTokensRate==="default"?"reversed":"default"})),addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,c)=>{let l=s===o,p=c<=9;return l&&p}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=Xo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=nt("theme",n),s=nt("language",n),c=nt("liquiditySource",n),l=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||tn},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||tn}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=qr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import Ss from"bignumber.js";import ek from"mitt";var Te=ek(),tk={on:Te.on,off:Te.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 Qt(t){return`${t.blockchain}${bo}${t.address}${bo}${t.symbol}`}i(Qt,"createAssetKey");function _u(t,e){return`${Qt(e)}${bo}${t}`}i(_u,"createBalanceKey");function Fn(t){let[e,o,n]=t.split(bo);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Fn,"extractAssetFromBalanceKey");function fs(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Qt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Pu(r??pe).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??pe).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(gs,"createBalanceStateForNewAccount");function hs(t,e){for(let o in e){let n=Fn(o),r=Qt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(hs,"updateAggregatedBalanceStateForNewAccount");function ok(t,e){let o=Fn(e),n=Qt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(ok,"removeBalanceFromAggregatedBalance");function ys(t,e,o){let n=t.connectedWallets.filter(l=>l.walletType===e);t.connectedWallets.forEach(l=>{l.walletType!==e&&(n=n.filter(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=Fn(l);!!n.find(d=>_u(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=ok(a,l):r[l]=s[l]}),{_balances:r,_aggregatedBalances:a}}i(ys,"computeNextStateAfterWalletBalanceRemoval");function nk(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(nk,"matchWalletDetailsWithConnectedWallet");var rk=tu(),Du=Mu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Dn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Dn(s,a))?{...a,loading:!1,error:!1,explorerUrl:nk(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Dn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Dn(c,l)));if(s.length>0){let c=s.map(l=>{let p=!a.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:p,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!c.some(d=>d.walletType===u.walletType&&d.chain===u.chain)),...c]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=r.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address].push(...a[p.chain]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await pt().getMultipleTokenBalance({assets:p.map(({symbol:d,address:g,blockchain:h})=>({symbol:d,address:g,blockchain:h})),walletAddress:l});if(u){let d=e()._balances,g=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let f={blockChain:h.asset.blockchain,balances:[h],address:l},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};fs(m,f,d);let S=gs(f,e);g=hs(g,S),d={...d,...S}}),t(h=>({_balances:{...h._balances,...d},_aggregatedBalances:g}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{Te.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=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(Te.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0)return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await pt().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(d=>{if(d.failed)return;let g={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};fs(g,d,l);let{_balances:h,_aggregatedBalances:f}=ys(g,r,{chains:[d.blockChain]});if(p=f,l=h,!e().connectedWallets.find(S=>S.walletType===r&&S.address===d.address&&S.chain===d.blockChain))return;let m=gs(d,e);p=hs(p,m),l={...l,...m}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let d=c.filter(g=>g.failed).map(g=>({chain:g.blockChain,walletType:r,address:g.address}));d.length>0&&await e().fetchMainTokensBalances(d,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=Qt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let l=a[0];return n[l]}let c=n[a[0]];return a.forEach(l=>{let p=n[l],u=new Ss(p.amount),d=new Ss(c.amount);u.isGreaterThan(d)&&(c=p)}),c},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(bo);return p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>rk(()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,c)=>{let l=r[c],p=Fn(c);if(p.blockchain===n.chain){let u=e().findToken(p),d=l.amount?new Ss(l.amount).shiftedBy(-l.decimals):pe;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:d.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function $u(t){return ik()(ak((...e)=>({...Du(...e),...Nu(...e),...Lu(...e),...Up(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i($u,"createAppStore");var Fu=lk(null);function k(){let t=ck(Fu);if(pk(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(k,"useAppStore");function Ou(t){let e=uk();return e.current||(e.current=$u(t.config)),sk.createElement(Fu.Provider,{value:e.current},t.children)}i(Ou,"AppStoreProvider");function vt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=k(),{state:r,getWalletInfo:a}=dk(),s=k().blockchains(),{handleDisconnect:c}=Vo(),l=Dp(n()),p=du(r,a,l,e);p=mk()?p.filter(m=>m.showOnMobile!==!1&&r(m.type).installed):p;let u=gu(p,r),d=i(m=>!o.find(S=>S.walletType===m&&S.chain===e),"isExperimentalChainNotAdded"),g=gk(()=>{let m=p?.filter(S=>S.state===Cs.CONNECTING)||[];for(let S of m)c(S)},[Su(p)]);hk(()=>()=>{g()},[]);let h=i(m=>{let S=m.find(C=>C.type===On.DEFAULT);return!S||S.state===Cs.NOT_INSTALLED?!1:m.filter(C=>C.state!=Cs.NOT_INSTALLED&&![On.DEFAULT,On.WALLET_CONNECT_2,On.LEDGER].includes(C.type)&&a(C.type).supportedChains.filter(T=>T.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),f=i((m,S,y)=>Rr(y,S)&&d(m)&&!fk.includes(m)||m==On.DEFAULT&&!h(p),"shouldExcludeWallet");return{list:u.filter(m=>!f(m.type,e??"",s)),terminateConnectingWallets:g}}i(vt,"useWalletList");import{Modal as kk}from"@rango-dev/ui";import Tk from"react";import{create as Ck}from"zustand";var Uu="rango-widget";var Un=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(Uu),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var Sk=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),on=Sk;var oe=on(Ck()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),Ao=new Un({onInit:()=>oe.setState({tabManagerInitiated:!0}),onClaim:()=>oe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>oe.setState({isActiveTab:!1})});function R(t){let{watermark:e}=oe();return Tk.createElement(kk,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as an}from"@lingui/core";import{Alert as _k,Button as Dk,Divider as mi,Image as $k,MessageBox as Fk,RadioRoot as Ok}from"@rango-dev/ui";import ue,{useEffect as Uk,useMemo as zk,useState as qk}from"react";import{i18n as xk}from"@lingui/core";import{Typography as ju}from"@rango-dev/ui";import nn from"react";function ai(t,e){return t.find(o=>o.name===e)?.logo}i(ai,"getBlockchainLogo");import{darkTheme as wk,Image as vk,styled as Ht,Typography as bk}from"@rango-dev/ui";var si=Ht("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${wk} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),li=Ht("div",{display:"flex",gap:"$8",alignItems:"center"}),qu=Ht("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Qu=Ht("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Hu=Ht("div",{display:"flex",gap:"$6",alignItems:"center"}),Gu=Ht("div",{paddingLeft:"48px"}),Vu=Ht("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),Ku=Ht(bk,{maxWidth:"100px"}),ci=Ht(vk,{variants:{disabled:{true:{opacity:"0.5"}}}});function pi(t){let{namespace:e}=t,o=k().blockchains();return nn.createElement(si,{unsupported:!0},nn.createElement(li,null,nn.createElement(ci,{src:ai(o,e.id),size:40,disabled:!0}),nn.createElement(Qu,null,nn.createElement(ju,{variant:"label",size:"large"},e.label),nn.createElement(ju,{variant:"body",size:"xsmall"},xk.t("(Currently not supported)")))))}i(pi,"NamespaceUnsupportedItem");import{Checkbox as Lk,Radio as Mk}from"@rango-dev/ui";import vs from"react";import{i18n as ws}from"@lingui/core";import{ChevronDownIcon as Ik,ChevronUpIcon as Ak,Divider as Nk,Typography as zn}from"@rango-dev/ui";import Ae,{useEffect as Bk,useState as Wk}from"react";import{Image as Yu,Tooltip as Zu,Typography as Ek}from"@rango-dev/ui";import Lt 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 Lt.createElement(ks,{id:"widget-supported-chains-container"},e.slice(0,Ts).map((o,n)=>Lt.createElement(Zu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Lt.createElement(ui,{firstItem:n===0},Lt.createElement(Yu,{src:o.logo,size:15})))),e.length>Ts&&Lt.createElement(Zu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Lt.createElement(ks,null,e.map((o,n)=>Lt.createElement(ui,{key:o.name,firstItem:n===0},Lt.createElement(Yu,{src:o.logo,size:15}))))},Lt.createElement(ui,null,Lt.createElement(Ek,{variant:"body",size:"xsmall"},"+",e.length-Ts))))}i(Ju,"SupportedChainsList");function No(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=Wk(!1),p=k().blockchains();Bk(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!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:d||r||!!o},Ae.createElement(Hu,null,Ae.createElement(zn,{variant:"label",size:"large"},e.label),r&&Ae.createElement(zn,{variant:"body",size:"small",color:"success500"},ws.t("Connected")),!!o&&Ae.createElement(zn,{variant:"body",size:"small",color:"error500"},ws.t("Connection failed"))),d&&Ae.createElement(Ju,{chains:u}),r&&Ae.createElement(Ku,{variant:"body",size:"small",color:"neutral700"},a),o&&Ae.createElement(Vu,{onClick:()=>l(g=>!g)},Ae.createElement(zn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},ws.t("See why")),c?Ae.createElement(Ak,{size:12,color:"gray"}):Ae.createElement(Ik,{size:12,color:"gray"}))),n),!!o&&c&&Ae.createElement(Ae.Fragment,null,Ae.createElement(Nk,{size:4}),Ae.createElement(Gu,null,Ae.createElement(zn,{variant:"body",size:"small",color:"neutral700"},o))))}i(No,"NamespaceItem");function Ru(t){let{onClick:e,type:o,namespace:n}=t;return vs.createElement(No,{namespace:n,onClick:e,suffix:o==="radio"?vs.createElement(Mk,{value:n.value}):vs.createElement(Lk,{checked:t.value})})}i(Ru,"NamespaceListItem");import{Button as Pk,styled as ed}from"@rango-dev/ui";var di=ed("ul",{padding:0,paddingTop:"$16",paddingBottom:"$20",margin:0}),rn=ed(Pk,{minHeight:"$40"});function qn(t){let{targetWallet:e}=t.value,o=e.properties?.find(m=>m.name==="namespaces"),n=e.isHub,r=e.isHub?o?.value.selection==="single":e.needsNamespace?.selection==="single",a=n?o?.value:e.needsNamespace,s=e.image,c=k().blockchains(),[l,p]=qk([]),u=zk(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:S=>S.includes(m)?S.filter(y=>y!==m):S.concat(m))},"onSelect"),g=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");g?p([]):u&&p(u.map(m=>m.value))},"onSelectAll"),f=i(m=>r?ue.createElement(Ok,{value:l?.[0]},m):ue.createElement(ue.Fragment,null,m),"wrapRadioRoot");return Uk(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(S=>S.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(m.map(S=>S.value))}else p(u.map(m=>m.value))},[]),ue.createElement(ue.Fragment,null,ue.createElement(Fk,{type:"info",title:an.t("Connect {wallet}",{wallet:e.title}),description:an.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:ue.createElement($k,{src:s,size:45})}),r?ue.createElement(ue.Fragment,null,ue.createElement(mi,{size:20}),ue.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. ")})):ue.createElement(ue.Fragment,null,ue.createElement(mi,{size:30}),ue.createElement(Dk,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},g?an.t("Deselect all"):an.t("Select all"))),ue.createElement(di,null,f(ue.createElement(ue.Fragment,null,a?.data.map((m,S,y)=>ue.createElement(ue.Fragment,{key:m.id},m.unsupported?ue.createElement(pi,{namespace:m}):ue.createElement(Ru,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),S!==y.length-1&&ue.createElement(mi,{size:10})))))),ue.createElement(mi,{size:20}),ue.createElement(rn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},an.t("Connect")))}i(qn,"Namespaces");import{i18n as fi}from"@lingui/core";import{Button as Yk,Divider as Es,Image as Zk,MessageBox as Jk}from"@rango-dev/ui";import{useWallets as Rk}from"@rango-dev/wallets-react";import Xe from"react";import{styled as Qk}from"@rango-dev/ui";var td=Qk("div",{display:"flex",justifyContent:"end"});import{i18n as bs}from"@lingui/core";import{Button as Hk,Spinner as Gk}from"@rango-dev/ui";import{useWallets as Vk}from"@rango-dev/wallets-react";import xs,{useLayoutEffect as Kk,useRef as jk,useState as Xk}from"react";var od=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,{connect:a,disconnect:s,state:c}=Vk(),[l,p]=Xk(null),d=c(o).namespaces?.get(n.value),g=d.accounts?.[0]?.split(":"),h=jk(!1);Kk(()=>{r&&!h.current&&f(o,n.value)},[]);let f=i(async(y,C)=>{try{h.current=!0,await a(y,[{namespace:C,network:""}])}catch(T){p(T)}finally{h.current=!1}},"handleConnectNamespace"),m=i(async y=>{p(null),y.connected?await s(o,[n.value]):f(o,n.value)},"handleButtonClick"),S=i(()=>d.connected?bs.t("Disconnect"):l?bs.t("Try again"):bs.t("Connect"),"getButtonText");return xs.createElement(No,{namespace:n,connected:d.connected,error:l?.message,address:d.connected?ro(g?.[g?.length-1]):"",suffix:d.connecting?xs.createElement(Gk,{color:"info"}):xs.createElement(Hk,{id:"widget-name-space-connect-btn",variant:"ghost",type:d.connected?"error":"primary",size:"xsmall",onClick:async()=>m(d)},S())})},"NamespaceDetachedItem");function Qn(t){let{selectedNamespaces:e,value:o,onDisconnectWallet:n}=t,{targetWallet:r}=o,{state:a}=Rk(),s=a(r.type);return Xe.createElement(Xe.Fragment,null,Xe.createElement(Jk,{type:"info",title:fi.t("Connect {wallet}",{wallet:r.type}),description:fi.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:Xe.createElement(Zk,{src:r.image,size:45})}),Xe.createElement(Es,{size:30}),Xe.createElement(td,null,Xe.createElement(Yk,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:s.connecting||!s.connected,onClick:n},fi.t("Disconnect wallet"))),Xe.createElement(di,{id:"widget-detached-namespace-list",as:"ul"},r.needsNamespace?.data.map((c,l,p)=>Xe.createElement(Xe.Fragment,{key:c.id},c.unsupported?Xe.createElement(pi,{namespace:c}):Xe.createElement(od,{walletType:r.type,namespace:c,initialConnect:e?.includes(c.value)}),l!==p.length-1&&Xe.createElement(Es,{size:10})))),Xe.createElement(Es,{size:20}),Xe.createElement(rn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},fi.t("Done")))}i(Qn,"Detached");import{i18n as sn}from"@lingui/core";import{Divider as rd,Image as nT,MessageBox as rT,Select as iT,TextField as aT}from"@rango-dev/ui";import St,{useEffect as sT,useState as id}from"react";import{namespaces as eT}from"@rango-dev/wallets-shared";var gi={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Is(t){let e=t?eT[t].derivationPaths:null;return e?[...e,gi]:[]}i(Is,"getDerivationPaths");import{Button as tT,styled as As,Typography as oT}from"@rango-dev/ui";var nd=As("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ns=As(oT,{paddingLeft:"$10"}),Bs={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},xP=As(tT,{minHeight:"$40"});var ad="0";function Hn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=id(null),[c,l]=id(ad),p=a===gi.id,u=Is(o),d=i(({value:h})=>{let f=u?.find(m=>m.id===h);f&&(a===gi.id&&Number.isNaN(Number(c))&&l(ad),s(f.id))},"handleDerivationPathItemClick"),g=i(()=>{let h=u.find(f=>f.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return sT(()=>{s(Is(o)[0]?.id||null)},[o]),St.createElement(St.Fragment,null,St.createElement(rd,{size:20}),St.createElement(rT,{type:"info",title:sn.t("Select Derivation Path"),description:sn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:St.createElement(nT,{src:n,size:45})}),St.createElement(nd,null,St.createElement(Ns,{variant:"body",size:"xsmall",color:"$neutral600"},sn.t("Choose Derivation Path Template")),St.createElement(iT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:Bs}}),St.createElement(rd,{size:20}),St.createElement(Ns,{variant:"body",size:"xsmall",color:"$neutral600"},p?sn.t("Enter Path"):sn.t("Enter Index")),St.createElement(aT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Bs})),St.createElement(rn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:g,disabled:!u||!a||!c},sn.t("Confirm")))}i(Hn,"DerivationPath");import{i18n as ln}from"@lingui/core";import{Image as pT,MessageBox as Ws,WalletState as uT}from"@rango-dev/ui";import{useWallets as dT}from"@rango-dev/wallets-react";import Bo from"react";import{keyframes as lT,styled as hi}from"@rango-dev/ui";var DP=hi("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),sd=hi("div",{position:"relative"}),cT=lT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),ld=hi("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${cT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),cd=hi("div",{"& img":{borderRadius:"50%"}});function Ls(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=dT();return Pn(a(n))===uT.CONNECTED?Bo.createElement(Ws,{type:"success",title:ln.t("Wallet Connected"),description:ln.t("Your wallet is connected, you can use it to swap.")}):o?Bo.createElement(Ws,{type:"error",title:ln.t("Failed to Connect"),description:o||ln.t("Your wallet is not connected. Please try again.")}):Bo.createElement(Ws,{type:"loading",title:ln.t("Connecting to your wallet"),description:ln.t("Click connect in your wallet popup."),icon:Bo.createElement(sd,null,Bo.createElement(cd,null,Bo.createElement(pT,{src:r,size:45})),Bo.createElement(ld,null))})}i(Ls,"ConnectStatus");import{i18n as Ms}from"@lingui/core";import{Button as mT,Divider as pd,MessageBox as fT}from"@rango-dev/ui";import yi from"react";function Ps(t){let{displayName:e,onConfirm:o,id:n}=t;return yi.createElement(fT,{id:n,title:Ms.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Ms.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},yi.createElement(pd,{size:18}),yi.createElement(pd,{size:32}),yi.createElement(mT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Ms.t("Confirm")))}i(Ps,"ExperimentalChain");function ud(t,e){return t().status==="init"&&!!e}i(ud,"isOnStatus");function Gn(t){return t().status==="namespace"}i(Gn,"isOnNamespace");function Vn(t){return t().status==="derivationPath"}i(Vn,"isOnDerivationPath");function wo(t){return t().status==="detached"}i(wo,"isOnDetached");var ST=3e3,CT=300;function Kn(t){let e=yT(),[o,n]=dd(!1),[r,a]=dd(),s=i(w=>{a(w.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=vt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:g,handleDisconnect:h}=Vo(),f=i(w=>{u(t.wallet,w).then(T).catch(s)},"handleConfirmNamespaces"),m=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),g(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),T=i((w,x)=>{let A=w.status==="connected",I=["disconnected","disconnected-unhandled"].includes(w.status);A?(t.onConnect?.(),x||(e.current=setTimeout(y,ST))):I&&y()},"afterConnected");return hT(()=>{if(t.wallet){C();let w=!1,x=!0;i(()=>{setTimeout(()=>{x=!1,w||n(!0)},CT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(I=>{["namespace","Detached","derivation-path"].includes(I.status)||(w=!0),T(I,x)}).catch(s)}},[t.wallet]),io.createElement(R,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},ud(d,t.wallet)&&io.createElement(io.Fragment,null,io.createElement(Ls,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),io.createElement(gT,{direction:"vertical",size:32})),Gn(d)&&io.createElement(qn,{onConfirm:f,value:d().namespace}),Vn(d)&&io.createElement(Hn,{onConfirm:S,value:d().derivationPath}),wo(d)&&io.createElement(Qn,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces}))}i(Kn,"StatefulConnectModal");import{Provider as bT}from"@rango-dev/wallets-react";import Si,{createContext as xT,useEffect as yd,useMemo as ET,useRef as Sd}from"react";import{useEffect as kT}from"react";function md(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(md,"hashProviders");function _s(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=k(),a=n();return kT(()=>{o(),r()},[md(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(_s,"useWalletProviders");import{legacyFormatAddressWithNetwork as TT,legacyReadAccountAddress as fd}from"@rango-dev/wallets-core/legacy";import{Events as cn}from"@rango-dev/wallets-react";import{isEvmBlockchain as wT}from"rango-sdk";function gd(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=k(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(wT).map(m=>m.name),u=i((m,S)=>{let[y,,C,T,w]=m,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"),d=i((m,S,y,C,T)=>{if(S===cn.ACCOUNTS){let w=_n(T.supportedBlockchains);y&&u([m,S,y,C,T],{supportedChainNames:w})}S===cn.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),S===cn.NAMESPACE_DISCONNECTED&&n(m,y)},"handleUpdatesForHub"),g=i((m,S,y,C,T)=>{if(S===cn.ACCOUNTS){let w=_n(T.supportedBlockchains),x=[],A=[];if(y?.forEach(E=>{let{network:v}=fd(E);p.includes(v)?x.push(E):A.push(E)}),r.filter(E=>E.walletType===m).map(E=>TT(E.address,E.chain)).length>0){if(x.length>0){let E=rs(m,x,p,w,T.isContractWallet);a(m,{chains:E.map(v=>v.chain)})}A.length>0&&a(m,{chains:A.map(E=>{let{network:v}=fd(E);return v})})}y?u([m,S,y,C,T],{supportedChainNames:w}):(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((m,S,y,C,T)=>{if(S===cn.CONNECTED&&y){let w={walletType:m,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:m,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((m,S,y,C,T)=>{T.isHub?d(m,S,y,C,T):g(m,S,y,C,T),h(m,S,y,C,T)},"handler")}}i(gd,"useUpdates");import{LegacyEvents as vT}from"@rango-dev/wallets-core/legacy";function hd(t,e){let[o,n,r,a,s]=e;n!==vT.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(hd,"propagateEvents");var Ci=xT({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function IT(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=k(),a=k().blockchains(),s=k().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=_s(s.wallets,c),p=Sd(),u=Sd(),{handler:d}=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 g=oe.use.isActiveTab(),h=ET(()=>({onConnectWallet:f=>{p.current=f},onDisconnectWallet:f=>{u.current=f}}),[]);return Si.createElement(Ci.Provider,{value:h},Si.createElement(bT,{allBlockChains:a,providers:l,onUpdateState:(f,m,S,y,C)=>{let T=[f,m,S,y,C];d(...T),t.onUpdateState&&hd(t.onUpdateState,T)},autoConnect:!!g,configs:{wallets:s.wallets}},t.children))}i(IT,"Main");function ki(t){let{config:e,...o}=t;return Si.createElement(Ou,{config:e},Si.createElement(IT,{...o,config:e}))}i(ki,"WidgetWallets");import Ga from"react";import AT,{Fragment as NT}from"react";import{MemoryRouter as BT,useInRouterContext as WT}from"react-router";function Cd({children:t}){let o=WT()?NT:BT;return AT.createElement(o,null,t)}i(Cd,"AppRouter");import{I18nManager as S0}from"@rango-dev/ui";import wp from"react";import qe from"react";import{useRoutes as i0}from"react-router-dom";var F={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as un,useRef as Ii}from"react";import rt from"bignumber.js";import{create as _T}from"zustand";import{subscribeWithSelector as DT}from"zustand/middleware";import{i18n as kt}from"@lingui/core";import{getRelatedWalletOrNull as PT,RouteEventType as ED}from"@rango-dev/queue-manager-rango-preset";import Ge from"bignumber.js";import{PendingSwapNetworkStatus as Xn}from"rango-types";import{i18n as He}from"@lingui/core";var ne=i(()=>({genericServerError:He.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:He.t("Please reset your liquidity sources."),description:He.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:He.t("No Routes Found."),description:He.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:He.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:He.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:He.t("High Price Impact"),title:He.t("Price impact is too high!"),description:He.t("The price impact is significantly higher than the allowed amount."),confirmMessage:He.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:He.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:He.t("USD Price Unknown"),title:He.t("USD Price Unknown, Cannot calculate Price Impact."),description:He.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:He.t("Confirm USD Price Unknown")}}),"errorMessages");function kd(t){return t.type===0?t.diagnosisMessage??ne().noResultError.title:t.type===1?t.diagnosisMessage??ne().genericServerError:""}i(kd,"getQuoteErrorMessage");import{i18n as Ti}from"@lingui/core";var Wo=i(()=>({connectWallet:Ti.t("Connect Wallet"),swap:Ti.t("Swap"),swapAnyway:Ti.t("Swap anyway"),ethWarning:Ti.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ds(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Ds,"getFeeLabel");var $s=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Td=100,wd=30,vd=15,bd=60;var xd=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Ed=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as MT}from"@rango-dev/queue-manager-rango-preset";import dD from"bignumber.js";function Ad(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(Ad,"getRequiredBalanceOfWallet");function Vt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Vt,"getPriceImpactLevel");function wi(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=MT(t.steps),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),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:d}}i(wi,"createRetryQuote");function pn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=jn(o),s=Ct(o);if(o&&a&&s){let p=Gt(a.toString(),s.toString());if(!!p&&Md(a,p)){let d=bi(o?.swaps,n),g=Vt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:g}}}if(e&&Dd(e,o))return{type:4,usdValueChange:_(Ct(o)?.minus(Ct(e)??0).toString()??"0",null,2),percentageChange:_(Gt(Ct(e)??"1",Ct(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 Gt(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(Gt,"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)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(c=>c.swapperId));return Array.from(n).every(c=>s.has(c))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),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 Ge(r)))}i(Md,"hasHighValueLoss");function $d(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i($d,"hasLimitError");function Fd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new Ge(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new Ge(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0],o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=kt.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=kt.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=kt.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=kt.t({id:"Required: < {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Fd,"getLimitErrorMessage");function Od(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title: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(pe))&&e&&e!=="0"&&n!==0)}i(Os,"canComputePriceImpact");function Us(t,e){let o=pe;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ge(r.amount).multipliedBy(a||0))}return o}i(Us,"getUsdFeeOfStep");function bi(t,e){return t.reduce((o,n)=>o.plus(Us(n,e)),pe)}i(bi,"getTotalFeeInUsd");function zs(t){let e=pe,o=new Ge(t.price||0);return e=e.plus(new Ge(t.amount).multipliedBy(o)),e}i(zs,"getUsdFee");function Ud(t){return t.reduce((e,o)=>e.plus(zs(o)),pe)}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:d,affiliateWallets:g,destination:h,contractCall:f}=t,m=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:d??void 0,affiliateWallets:g??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:m??{},slippage:p.toString(),contractCall:f,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1}}}i(Qd,"createQuoteRequestBody");function Hd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Hd,"getWalletsForNewSwap");function jn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}i(jn,"getUsdInputFrom");function Ct(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}i(Ct,"getUsdOutputFrom");function Fs(t,e){return new Ge(e).div(new Ge(t)).minus(1).multipliedBy(Td).toNumber()}i(Fs,"getPercentageChange");function Dd(t,e){let o=jn(t),n=Ct(t),r=Ct(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=_(new Ge(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=_(new Ge(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=kt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=kt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=kt.t(" for input and network fee")),kt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:ht(s.asset.blockchain,o)}})})}i(Gd,"generateBalanceWarnings");function Yn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Xn.NetworkChanged}i(Yn,"isNetworkStatusInWarningState");function Vd(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),Yn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?PT(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case Xn.WaitingForConnectingWallet:r=u?kt.t("Connect {wallet}",{wallet:u}):r;break;case Xn.WaitingForQueue:r=r||kt.t("Waiting for other running tasks to be finished");break;case Xn.WaitingForNetworkChange:r=r||kt.t("Waiting for changing wallet network");break;case Xn.NetworkChangeFailed:r=r||kt.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(d=>r.some(g=>g.chain===d)),p=c.every(d=>r.some(g=>g.chain===d)),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 rt(e||pe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=on(_T()(DT(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new rt(0),outputUsdValue:new rt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=pe,a=o.inputUsdValue;return Mn(o.inputAmount)?(e&&(n=e?.outputAmount?new rt(e?.outputAmount):null,a=jn(e)??pe,r=Ct(e)??pe),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new rt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new rt(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new rt(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue: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 rt(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),sanitizeInputAmount:e=>{let o=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 rt(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 rt(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?Ei(e.toToken,e.outputAmount?.toString()||""):new rt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new rt(0),inputUsdValue:new rt(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new rt(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),Zd=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Te.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&&Te.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}=O(),u=k().config,d=k().fetchStatus,g=k().blockchains(),{findToken:h}=k(),{setAffiliateRef:f,setAffiliatePercent:m,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(d==="success"){r();let v=g.find(L=>L.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:g}}):!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,d]),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(d==="success"){r();let v=g.find(L=>L.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:g}}):!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,d]),un(()=>{f(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),S(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Jd,"useSyncStoresWithConfig");import{useEffect as Hs,useRef as $T}from"react";import{useInRouterContext as FT,useLocation as OT,useSearchParams as UT}from"react-router-dom";function qs(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(qs,"convertTokenSearchParamToAsset");function Qs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Qs,"tokenToSearchParam");function Vs(){let t=OT(),[e,o]=UT(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:g}=O(),h=k().fetchStatus,f=k().blockchains(),m=FT(),{updateIframe:S,updateCampaignMode:y}=k(),C=k().isInCampaignMode(),T=$T(),{findToken:w}=k(),x=i(()=>{let I={};for(let[M,te]of e.entries())M.startsWith("utm_")&&(I[M]=te);let E=e.get("fromAmount"),v=e.get("fromBlockchain"),b=e.get("fromToken"),B=e.get("toBlockchain"),L=e.get("toToken"),D=e.get("autoConnect"),q=e.get("clientUrl"),J=e.get("liquiditySources"),G=e.get("blockchain");return{fromAmount:E,fromBlockchain:v,fromToken:b,toBlockchain:B,toToken:L,autoConnect:D,clientUrl:q,liquiditySources:J,utmQueryParams:I,blockchain:G}},"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();m&&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(!m)return;let I=x();if(!T.current&&I.liquiditySources&&(T.current=I.liquiditySources),I.fromAmount&&g(I.fromAmount),h==="success"){let E=f.find(L=>L.name===I.fromBlockchain),v=I.fromToken&&E?w(qs(I.fromToken,E)):void 0,b=f.find(L=>L.name===I.toBlockchain),B=I.toToken&&b?w(qs(I.toToken,b)):void 0;E&&(l(E),v&&u({token:v,meta:{blockchains:f}})),b&&(p(b),B&&d({token:B,meta:{blockchains:f}}))}},[h]),Hs(()=>{let{clientUrl:I,liquiditySources:E}=x();S("clientUrl",I||void 0),y("liquiditySources",E?.split(",")??void 0)},[])}i(Vs,"useSyncUrlAndStore");import{i18n as hn}from"@lingui/core";import{Alert as sv,Button as lv,darkTheme as cv,Divider as vl,DoneIcon as pv,styled as uv,TextField as dv,Typography as mv}from"@rango-dev/ui";import Ke,{useState as fv}from"react";import{useNavigate as gv,useSearchParams as hv}from"react-router-dom";import{ChevronRightIcon as zT,Divider as nm,Image as qT,Typography as rm}from"@rango-dev/ui";import bt from"react";import{darkTheme as Rd,styled as Ks}from"@rango-dev/ui";var em=Ks("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Rd} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Rd} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),tm=Ks("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),om=Ks("div",{display:"flex"});function js(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return bt.createElement(tm,null,bt.createElement(rm,{size:"large",variant:"label"},n),bt.createElement(nm,{size:10}),bt.createElement(em,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},bt.createElement(om,null,r&&bt.createElement(bt.Fragment,null,bt.createElement(qT,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),bt.createElement(nm,{size:4,direction:"horizontal"})),bt.createElement(rm,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),bt.createElement(zT,{size:12,color:"black"})))}i(js,"BlockchainSelectorButton");import{i18n as Rs}from"@lingui/core";import{Button as VT,Divider as lm,MessageBox as KT}from"@rango-dev/ui";import ao,{useEffect as cm,useState as el}from"react";import{i18n as Ai}from"@lingui/core";import{Divider as Lo,ExternalLinkIcon as HT,Image as GT,Typography as mn}from"@rango-dev/ui";import we from"react";var im="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function am(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(am,"generateExplorerLink");import{Button as QT,darkTheme as dn,styled as Xs}from"@rango-dev/ui";var Ys=Xs("a",{textDecoration:"none",color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${dn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${dn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),sm=Xs("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${dn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"}}}),Zs=Xs(QT,{minHeight:"$40"});function Js(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=am(n.address,s),l=i(()=>window.open(im,"_blank"),"onClickLearnMore");return we.createElement(R,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},we.createElement(sm,null,we.createElement(GT,{src:n.image===""?Hr:n.image,size:45,type:"circular"}),we.createElement(Lo,{size:4}),we.createElement(mn,{variant:"title",size:"medium"},n.symbol),we.createElement(mn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),we.createElement(Lo,{size:4}),we.createElement(mn,{variant:"body",size:"medium"},c?we.createElement(Ys,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,we.createElement(HT,{size:12,color:"gray"})):we.createElement(Ys,null,n.address)),we.createElement(Lo,{size:4}),n.coinSource&&we.createElement(mn,{className:"_coin-source",variant:"body",size:"xsmall"},Ai.t("via")," ",we.createElement(mn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),we.createElement(Lo,{size:"32"}),we.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."))),we.createElement(Lo,{size:40}),we.createElement(Lo,{size:10}),we.createElement(Zs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Ai.t("Import Anyway")),we.createElement(Lo,{size:10}),we.createElement(Zs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Ai.t("Learn More")))}i(Js,"CustomTokenModal");function Zn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=k(),[d,g]=el(!1),[h,f]=el(!1),[m,S]=el(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),g(!1)},"closeErrorModal"),T=i(()=>{S(!0),C()},"handleErrorModalButtonClick"),w=i(()=>{m&&n?.type==="network-error"&&(S(!1),y()),l()},"handleExit"),x=i(()=>{e&&(u(e),c())},"handleSubmit");return cm(()=>{n&&g(!0)},[n]),cm(()=>{o&&e&&f(!0)},[o,e]),ao.createElement(ao.Fragment,null,ao.createElement(R,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:C,onExit:w,container:N()},ao.createElement(KT,{title:n?.title??"",type:"error",description:n?.message||Rs.t("Failed Network, Please retry.")},ao.createElement(lm,{size:40}),ao.createElement(lm,{size:10}),ao.createElement(VT,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:T},n?.type==="network-error"?Rs.t("Retry"):Rs.t("Add another custom token")))),o&&e&&ao.createElement(Js,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>f(!1),open:h,onExit:p}))}i(Zn,"ImportCustomToken");import{useManager as tv}from"@rango-dev/queue-manager-react";import{BottomLogo as ov,Divider as zm,Header as nv}from"@rango-dev/ui";import Be,{useEffect as $i,useLayoutEffect as rv,useRef as qm,useState as Qm}from"react";import{useRef as jT}from"react";function Jn(){return window.self!==window.top}i(Jn,"isAppLoadedIntoIframe");function tl(){let t=jT(null),{iframe:e}=k(),o=Jn()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(tl,"useIframe");import{useNavigate as XT}from"react-router-dom";function Ve(){let t=XT();return()=>t(-1)}i(Ve,"useNavigateBack");import{useLayoutEffect as YT,useState as Rn}from"react";var pm=480,um=768,dm=1024,mm=1200,ZT=i(()=>{let[t,e]=Rn(!1),[o,n]=Rn(!1),[r,a]=Rn(!1),[s,c]=Rn(!1),[l,p]=Rn(!1),u=i(()=>{e(window.innerWidth<=pm),n(window.innerWidth>pm&&window.innerWidth<=um),a(window.innerWidth>um&&window.innerWidth<=dm),c(window.innerWidth>dm&&window.innerWidth<=mm),p(window.innerWidth>mm)},"handleResize");return YT(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),fn=ZT;import{createTheme as ll,darkTheme as pw,lightTheme as uw}from"@rango-dev/ui";import{useEffect as dw,useState as mw}from"react";import{theme as lw,darkColors as cw}from"@rango-dev/ui";import al from"react";var Ni=16,Bi=255,fm=.11;function JT(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(JT,"expandShortHexColor");function RT(t,e){return t.padStart(e,"0")}i(RT,"pad");function ol(t){let e=Math.min(Math.max(Math.round(t),0),Bi);return RT(e.toString(Ni),2)}i(ol,"intToHex");function ew(t){return`#${ol(t.red)}${ol(t.green)}${ol(t.blue)}`}i(ew,"rgbToHex");function tw(t){let e=parseInt(t.slice(1,3),Ni),o=parseInt(t.slice(3,5),Ni),n=parseInt(t.slice(5,7),Ni);return{red:e,green:o,blue:n}}i(tw,"hexToRGB");function ow(t,e){let o=1-fm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(ow,"generateShade");function nw(t,e){let o=fm*e;return{red:t.red+(Bi-t.red)*o,green:t.green+(Bi-t.green)*o,blue:t.blue+(Bi-t.blue)*o}}i(nw,"generateTint");function rw(t){return gm(t,ow)}i(rw,"calculateShades");function iw(t){return gm(t,nw)}i(iw,"calculateTints");function gm(t,e){let o=tw(t),n=[];for(let r=1;r<9;r++)n.push(ew(e(o,r)));return n}i(gm,"calculateColors");function nl(t,e,o){let a=iw(t).reverse().concat(t),s=rw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let d=100+(o?p-1-u:u)*50;l[`${e}${d}`]=c[u]}return l}i(nl,"createTintsAndShades");function rl(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!lu(r)){let l=JT(a);Object.assign(n,nl(l,r,s))}}return{...n,...e}}i(rl,"expandToGenerateThemeColors");var hm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),aw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=hm(o%52)+e;return hm(o%52)+e},"toAlphabeticName"),sw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),il=i(t=>aw(sw(5381,JSON.stringify(t))>>>0),"toHash");function sl(t){let e=lw.colors,o={...e,...cw},n,r;if(t?.light){let s={colors:rl(e,t.light)};n={id:`${ss}-light-${il(s)}`,tokens:s}}if(t?.dark){let s={colors:rl(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ss}-dark-${il(s)}`,tokens:s}}return{light:n,dark:r}}i(sl,"customizedThemeTokens");function ym(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>al.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(al.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(al.cloneElement(e,{key:c}))}}),o}i(ym,"joinList");function Sm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Sm,"doesWindowPreferDarkColorScheme");function so(t){let{colors:e,fontFamily:o=Vp,borderRadius:n=wu,secondaryBorderRadius:r=vu}=t,[a,s]=mw(Sm()?"dark":"light"),{theme:c}=k(),{dark:l,light:p}=sl(e),u=ll({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,uw.className],g=[u.className,pw.className];if(p){let f=ll(p.id,p.tokens);d.push(f.className)}if(l){let f=ll(l.id,l.tokens);g.push(f.className)}return dw(()=>{let f=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return Sm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=d.join(" "),m=g.join(" ");return c==="auto"?a==="dark"?m:f:c==="dark"?m:f},"getActiveTheme"),mode:c==="auto"?a:c}}i(so,"useTheme");var Tt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Cm}from"@lingui/core";import{Alert as fw,Button as gw}from"@rango-dev/ui";import km from"react";function cl(t){return km.createElement(fw,{action:km.createElement(gw,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Cm.t("Activate this tab")),type:"warning",variant:"alarm",title:Cm.t("Another tab is open and handles transactions.")})}i(cl,"ActivateTabAlert");import{i18n as pl}from"@lingui/core";import{Button as hw,Divider as yw,MessageBox as Sw}from"@rango-dev/ui";import Wi from"react";function ul(t){let{open:e,onClose:o,onConfirm:n}=t;return Wi.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},Wi.createElement(Sw,{title:pl.t("Activate current tab"),type:"warning",description:pl.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},Wi.createElement(yw,{size:20}),Wi.createElement(hw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},pl.t("Confirm"))))}i(ul,"ActivateTabModal");import{ChevronLeftIcon as Tw}from"@rango-dev/ui";import Am from"react";import{css as Cw,darkTheme as Tm,IconButton as kw,styled as Mo}from"@rango-dev/ui";var Mt=Mo(kw,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Tm} &`]:{backgroundColor:"$neutral"}}}),wm=Mo("div",{position:"absolute",background:"$secondary500",[`.${Tm} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),lo=Mo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),vm=Mo("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),bm=Mo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),xm=Mo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Em=Cw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Im=Mo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function dl(t){return Am.createElement(Mt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Am.createElement(Tw,{color:"black",size:16}))}i(dl,"BackButton");import{i18n as ww}from"@lingui/core";import{Button as vw,Typography as bw}from"@rango-dev/ui";import ml from"react";function fl(t){return ml.createElement(lo,null,ml.createElement(vw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},ml.createElement(bw,{variant:"label",size:"medium",color:"error500"},ww.t("Cancel"))))}i(fl,"CancelButton");import{i18n as xw}from"@lingui/core";import{Image as Ew,Tooltip as Iw,WalletIcon as Aw}from"@rango-dev/ui";import Po from"react";function gl(t){let{list:e}=vt(),o=e.filter(r=>r.state==="connected"),n=o.length?Po.createElement("div",{className:Em()},o.map(r=>Po.createElement(Im,{key:r.title},Po.createElement(Ew,{src:r.image,size:14})))):xw.t("Connect Wallet");return Po.createElement(Iw,{container:t.container,side:"bottom",content:n},Po.createElement(Mt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Po.createElement(wm,null),Po.createElement(Aw,{size:18,color:"black"})))}i(gl,"WalletButton");import{i18n as Mi}from"@lingui/core";import{NotificationsIcon as Hw,Popover as Gw,SettingsIcon as Vw,Tooltip as Pi,TransactionIcon as Kw}from"@rango-dev/ui";import De from"react";import{Notifications as Lw}from"@rango-dev/ui";import Mw from"react";import{useNavigate as Pw}from"react-router-dom";import{create as Nw}from"zustand";import{persist as Bw,subscribeWithSelector as Ww}from"zustand/middleware";var Ne=on(Nw()(Bw(Ww((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function hl(){let t=Pw(),{getNotifications:e,clearNotifications:o}=Ne(),n=e(),r=k().blockchains(),{findToken:a}=k();return Mw.createElement(Lw,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>$p(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${F.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(hl,"NotificationContent");import{useManager as _w}from"@rango-dev/queue-manager-react";import{InProgressIcon as Dw}from"@rango-dev/ui";import Nm from"react";var $w=i(()=>{let{manager:t}=_w();return Tt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Nm.createElement(xm,{id:"widget-header-history-badge-container"},Nm.createElement(Dw,{color:"info",size:6})):null},"InProgressTransactionBadge"),Bm=$w;import{EventSeverity as Fw}from"@rango-dev/queue-manager-rango-preset";import{Typography as Ow}from"@rango-dev/ui";import Wm from"react";function Lm(){let{getNotifications:t}=Ne(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Fw.WARNING);return o?Wm.createElement(vm,{isSever:n},Wm.createElement(Ow,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Lm,"NotificationsBadge");import{RefreshProgressButton as Uw}from"@rango-dev/ui";import yl,{useEffect as zw,useState as Mm}from"react";var qw=1e3,Pm=60,Qw=100;function Li({onClick:t}){let[e,o]=Mm(0),[n,r]=Mm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");zw(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===Pm&&c()},qw):s(l),document.addEventListener("visibilitychange",()=>a(l)),()=>{document.removeEventListener("visibilitychange",()=>a(l)),l&&clearInterval(l)}},[e,t]);let s=i(l=>{l&&clearInterval(l),o(0)},"clearTimeout"),c=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return yl.createElement(Mt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},yl.createElement(bm,{onTransitionEnd:()=>r(!1),isRefetched:n},yl.createElement(Uw,{size:22,color:t?"black":"gray",progress:e/Pm*Qw})))}i(Li,"RefreshButton");function _o(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=k(),c=nt("notification",s)||r.includes("notifications");return De.createElement(De.Fragment,null,!r.includes("refresh")&&De.createElement(Pi,{container:a||N(),side:"top",content:Mi.t("Refresh")},De.createElement(Li,{onClick:e})),!c&&De.createElement(Gw,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:De.createElement(hl,null)},De.createElement("div",null,De.createElement(Pi,{container:N(),side:"top",content:Mi.t("Notifications")},De.createElement(Mt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},De.createElement(Hw,{size:18,color:"black"}),De.createElement(Lm,null))))),!r.includes("settings")&&De.createElement(Pi,{container:N(),side:"top",content:Mi.t("Settings")},De.createElement(Mt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},De.createElement(Vw,{size:18,color:"black"}))),!r.includes("history")&&De.createElement(Pi,{container:N(),side:"top",content:Mi.t("History")},De.createElement(Mt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},De.createElement(Kw,{size:18,color:"black"}),De.createElement(Bm,null))))}i(_o,"HeaderButtons");import{i18n as Sl}from"@lingui/core";import{Divider as Dm,MessageBox as Yw,RefreshIcon as Zw}from"@rango-dev/ui";import gn from"react";import{Button as jw,styled as Xw}from"@rango-dev/ui";var _m=Xw(jw,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Cl(t){let{open:e,onClose:o}=t;return gn.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},gn.createElement(Yw,{title:Sl.t("Something went wrong"),type:"error",description:Sl.t("Something went wrong. Please refresh the app.")},gn.createElement(Dm,{size:30}),gn.createElement(_m,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},gn.createElement(Zw,{size:20,color:"primary"}),gn.createElement(Dm,{size:4,direction:"horizontal"}),Sl.t("Refresh"))))}i(Cl,"RefreshModal");function kl(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(kl,"onScrollContentAttachStatusToContainer");import{css as Rw,styled as _i}from"@rango-dev/ui";var Di=Rw({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),$m=_i("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:700},fixed:{minHeight:425,maxHeight:700,height:700}},showBanner:{true:{overflow:"visible"}}}}),Fm=_i("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Om=_i("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}}),Um=_i("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(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,d]=Qm(!1),{config:{features:g,theme:h}}=k(),{watermark:f,setShowCompactTokenSelector:m}=oe(),S=f==="FULL",{activeTheme:y}=so(h||{}),[C,T]=Qm(!1),w=nt("connectWalletButton",g),{isActiveTab:x,tabManagerInitiated:A,showActivateTabModal:I,setShowActivateTabModal:E,activateCurrentTab:v}=oe(),b=Ve(),{manager:B}=tv(),{isTablet:L,isMobile:D}=fn(),J=Tt(B).map(({swap:be})=>be).some(be=>be.status==="running"),G=i(()=>v(Ao.forceClaim,J),"onActivateTab"),M=i(()=>{r.onWallet?.()},"onConnectWallet"),te=typeof r.hasBackButton>"u"||r.hasBackButton,ee=qm(null),Y=qm(null);return $i(()=>{let be=(p?.swapBoxBanner?.routes?.length??0)===0,le=!!p?.swapBoxBanner?.routes?.some(fe=>location.pathname.endsWith(fe));T(!!p?.swapBoxBanner&&(be||le))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),$i(()=>(Jn()&&Y.current&&e(Y.current),()=>{o()}),[]),$i(()=>(ee.current?.addEventListener("scroll",kl),()=>{ee.current?.removeEventListener("scroll",kl)}),[]),$i(()=>{d(c==="failed")},[c]),rv(()=>{let be=s==="auto"||!Y.current||Jn(),le=D||L,fe=i(()=>{be||(le?Y.current.style.height=`${window.innerHeight-Y.current.offsetTop}px`:Y.current.style.height=`${700}px`,m(parseFloat(Y.current.style.height)<640))},"handler");return fe(),window.addEventListener("resize",fe),()=>window.removeEventListener("resize",fe)},[s,D,L]),Be.createElement($m,{height:s,id:ot.SWAP_BOX_ID,className:`${y()} ${Di()}`,ref:Y,showBanner:C},Be.createElement(nv,{prefix:te?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:ee},n),Be.createElement(ul,{open:I,onClose:()=>E(!1),onConfirm:G}),Be.createElement(Om,null,Be.createElement("div",{className:"footer__content"},A&&!x&&Be.createElement("div",{className:"footer__alert"},Be.createElement(cl,{onActivateTab:G}),Be.createElement(zm,{size:10})),a),Be.createElement(zm,{size:12}),Be.createElement("div",{className:`footer__logo ${S?"logo__show":"logo__hidden"}`},Be.createElement(ov,null))),C&&Be.createElement(Um,null,p?.swapBoxBanner?.element),Be.createElement(Cl,{open:u,onClose:()=>d(!1)}))}i(ie,"Layout");import{styled as iv}from"@rango-dev/ui";var Hm="$20 $20 $10 $20",Tl=iv("div",{padding:Hm,overflowY:"auto",flexGrow:1});import{styled as av}from"@rango-dev/ui";var ae=av("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as co}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(d,g){switch(d){case"duplicated":return{type:d,title:co.t("Duplicate Token"),message:co.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:co.t("Token Already Exists"),message:co.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:d,title:co.t("Token Not Found"),message:co.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:g}})};case"network-error":return{type:d,title:co.t("Network error"),message:co.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:g})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===g.toLowerCase())){let y=p("duplicated");n(y);return}let f=await pt().getCustomToken({blockchain:d,address:g});if(!f||!f.token||f.error){let y=p("not-found",d);n(y);return}let m=f.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let y=p("token-exist");n(y);return}return a({...m,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let f=p("not-found",d);n(f);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(Gm,"useFetchCustomToken");var yv=uv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${cv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Vm(){let t=gv(),[e]=hv(),o=Ve(),n=k().blockchains(),r=e.get("blockchain")||"",a=vo(r,n),[s,c]=fv(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:g}=Gm(),h=!!a&&jo(a,s),f=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ke.createElement(ie,{header:{title:hn.t("Add Custom Token")}},Ke.createElement(ae,null,Ke.createElement(yv,null,Ke.createElement("div",null,Ke.createElement(js,{onClick:()=>t(F.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")}),Ke.createElement(vl,{size:"24"}),Ke.createElement(mv,{size:"large",variant:"label"},hn.t("Enter Address")),Ke.createElement(vl,{size:10}),Ke.createElement(dv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:hn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Ke.createElement(pv,{color:"success",size:12}),onChange:S=>c(S.target.value)}),!h&&!!s&&Ke.createElement(Ke.Fragment,null,Ke.createElement(vl,{size:4}),Ke.createElement(sv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ke.createElement(lv,{id:"widget-add-custom-token-import-btn",disabled:f,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},hn.t("Import"))),Ke.createElement(Zn,{token:p,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:g,onExitImportModal:g})))}i(Vm,"AddCustomTokenPage");import{i18n as ec}from"@lingui/core";import{useManager as ox}from"@rango-dev/queue-manager-react";import{Alert as nx,Button as rx,css as oc,Divider as tc,IconButton as Dg,styled as ix,Typography as ax,WalletIcon as sx}from"@rango-dev/ui";import Fe,{useEffect as ca,useLayoutEffect as lx,useRef as cx,useState as mr}from"react";import{useNavigate as px}from"react-router-dom";import{i18n as Do}from"@lingui/core";import{Alert as Qv,BalanceErrors as Hv,Button as Cf,ChevronLeftIcon as Gv,Divider as Wl,MessageBox as Vv,Typography as Ll}from"@rango-dev/ui";import re,{useCallback as Kv,useEffect as kf,useMemo as jv,useState as Cn}from"react";import{useNavigate as Xv}from"react-router-dom";import{i18n as Il}from"@lingui/core";import{Alert as wv,ChevronDownIcon as vv,CloseIcon as bv,Divider as Rm,IconButton as ef,PasteIcon as xv,Typography as Ev,WalletIcon as Iv}from"@rango-dev/ui";import $e,{useEffect as Av,useRef as Nv}from"react";import zi,{useRef as kv}from"react";import*as yn from"@radix-ui/react-collapsible";import{keyframes as Km,styled as Fi}from"@rango-dev/ui";var bl=300,Sv=Km({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Cv=Km({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),jm=Fi(yn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),xl=Fi(yn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Oi=Fi(yn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Sv} ${bl}ms ease-out`},false:{animation:`${Cv} ${bl}ms ease-out`}}}}),Ui=Fi("div",{transition:`all ${bl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function qi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=kv(null);return zi.createElement(jm,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&zi.createElement(xl,{className:"collapsible_trigger",onClick:a},s),zi.createElement(Oi,{className:"collapsible_content",open:e},r),c==="bottom"&&zi.createElement(xl,{className:"collapsible_trigger",onClick:a},s))}i(qi,"CustomCollapsible");import{darkTheme as Xm,styled as El,TextField as Tv}from"@rango-dev/ui";var Ym=El("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Zm=El(Tv,{backgroundColor:"$neutral100",padding:"$15"}),Jm=El("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Xm} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Xm} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function tf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=k(),c=k().blockchains(),l=zr(e.name,c),p=Nv(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!jo(e,r),f=i(()=>{a("")},"handleClear"),m=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),p?.current?.focus()}},"handlePaste"),S=i(()=>r?$e.createElement(ef,{id:"widget-custom-destination-close-icon-btn",onClick:f,variant:"ghost"},$e.createElement(bv,{size:12,color:"gray"})):d?null:$e.createElement(ef,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},$e.createElement(xv,{size:16})),"renderSuffix");return Av(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),$e.createElement(Ym,null,$e.createElement(qi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:$e.createElement(Jm,{id:"widget-custom-destination-collapsible-btn"},$e.createElement("div",{className:"button__content"},$e.createElement(Iv,{size:18,color:"info"}),$e.createElement(Rm,{size:4,direction:"horizontal"}),$e.createElement(Ev,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Il.t("Send to a different address"))),$e.createElement(Ui,{orientation:n?"up":"down"},$e.createElement(vv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},$e.createElement(Zm,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Il.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:S(),onChange:y=>{let C=y.target.value;a(C)}})),h&&$e.createElement($e.Fragment,null,$e.createElement(Rm,{size:4}),$e.createElement(wv,{variant:"alarm",type:"error",title:Il.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(tf,"CustomDestination");import{css as Bv,IconButton as Wv,SelectableWalletButton as Lv,styled as po}from"@rango-dev/ui";var of=po("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),nf=po("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),rf=po(Lv,{justifyContent:"center"}),af=po("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),sf=po(Wv,{position:"absolute",left:"$20"}),lf=po("div",{paddingTop:"$20"}),cf=Bv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),pf=po("div",{display:"flex"}),uf=po("div",{overflow:"visible",width:"100%"});import{i18n as Nl}from"@lingui/core";import{warn as $v}from"@rango-dev/logging-core";import{Divider as Fv,makeInfo as Ov,SelectableWallet as Uv,Typography as yf,WalletState as Qi}from"@rango-dev/ui";import it,{useEffect as Sf,useState as or}from"react";import{Image as _v,MessageBox as Dv}from"@rango-dev/ui";import tr from"react";import{keyframes as Mv,styled as Al}from"@rango-dev/ui";var df=Al("div",{position:"relative"}),Pv=Mv({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),mf=Al("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Pv} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),ff=Al("div",{"& img":{borderRadius:"50%"}});import{i18n as Sn}from"@lingui/core";function gf(t,e){switch(t){case"in-progress":return{type:"loading",title:Sn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Sn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Sn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Sn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Sn.t("Request Rejected"),description:Sn.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(gf,"generateMessageByStatus");function hf(t){let{status:e,displayName:o,image:n}=t,r=gf(e,o),a=e=="in-progress";return tr.createElement(Dv,{type:r.type,title:r.title,description:r.description,icon:a?tr.createElement(df,null,tr.createElement(ff,null,tr.createElement(_v,{src:n,size:45})),tr.createElement(mf,null)):void 0})}i(hf,"ExperimentalChainStatus");var zv=7,qv=3e3;function Bl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{blockchains:l,connectedWallets:p}=k(),[u,d]=or(),[g,h]=or(null),[f,m]=or(!1),[S,y]=or(null),{suggestAndConnect:C}=Hi(),{list:T}=vt({chain:e}),[w,x]=or(T),A=T.length,I=a&&A-a>0,E=i(async b=>{m(!1),y("in-progress");try{await C(b.walletType,b.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");Sf(()=>{x(b=>{let B=T.findIndex(L=>n(L.type,e));return I&&B>1?[T[B]].concat(T.filter((L,D)=>D!==B)):b.map(L=>T.find(D=>D.type===L.type)??L)})},[JSON.stringify(T)]);let v=document.getElementById(ot.SWAP_BOX_ID);return Sf(()=>{let b=null;return(S==="completed"||S==="rejected")&&(b=setTimeout(()=>y(null),qv)),()=>{b&&clearTimeout(b)}},[S]),it.createElement(it.Fragment,null,w.slice(0,a).map(b=>{let B=hu({connectedWallets:p,walletType:b.type,chain:e}),L=b.state===Qi.CONNECTED,D=B?ro(B,zv):"",q=L&&!!b.needsNamespace&&!D,J=Rr(l(),e),G=!p.find(fe=>fe.walletType===b.type&&fe.chain===e),M=J&&G&&b.state===Qi.CONNECTED,te=i(async()=>{b.state===Qi.DISCONNECTED||q?d(b):M?(h({walletType:b.type,chain:e,address:B??""}),m(!0)):r({walletType:b.type,chain:e,address:B??""})},"onSelectableWalletClick"),ee=Ov(b.state),Y=i(()=>M?Nl.t({id:"Add {chain} chain",values:{chain:e}}):q?Nl.t("Chain not connected"):D||ee.description,"getWalletDescription"),be=i(()=>b.state===Qi.CONNECTED?q?"neutral600":"neutral700":ee.color,"getWalletDescriptionColor"),le=g?.chain?zr(g.chain,l()):void 0;return it.createElement(it.Fragment,{key:`${b.title}_${le}`},!!g&&it.createElement(R,{id:"widget-wallets-list-watermarked-modal",open:!!g&&f,container:v,onClose:()=>{h(null)}},it.createElement(Ps,{id:"widget-wallets-list-experimental-chain-container",displayName:le,onConfirm:()=>{E(g)}})),S&&it.createElement(R,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!S,onClose:y.bind(null,null),container:v},it.createElement(hf,{status:S,displayName:le,image:b.image}),it.createElement(Fv,{direction:"vertical",size:32})),it.createElement(Uv,{key:b.type,id:"widget-wallets-list-selectable-wallet-btn",description:Y(),descriptionColor:be(),onClick:te,selected:n(b.type,e),disabled:!c,...b}))}),it.createElement(Kn,{id:"widget-wallets-list-stateful-connect-modal",wallet:u,options:{defaultSelectedChains:o||[e]},onClose:()=>{d(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):$v(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),I&&it.createElement(rf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},it.createElement(yf,{variant:"label",size:"medium"},Nl.t("Show more wallets"),it.createElement(yf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",A-(a??0)))))}i(Bl,"WalletList");var Yv=2;function Tf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Xv(),c=k().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:h}=O(),{config:f,connectedWallets:m,setWalletsAsSelected:S}=k(),[y,C]=Cn(""),[T,w]=Cn([]),[x,A]=Cn(""),[I,E]=Cn(!!g),v=jv(()=>Eo({filter:"all",quote:l}),[l]),b=Eo({filter:"required",quote:l}),B=c.find(W=>W.name===l?.swaps[l?.swaps.length-1].to.blockchain),L=i(W=>b.includes(W),"isWalletRequiredFor"),D=Kv(()=>m.filter(W=>W.selected&&v.includes(W.chain)),[m,v]),[q,J]=Cn(D()),[G,M]=Cn([]),te=i((W,V)=>M(K=>K.concat({blockchain:W,walletType:V})),"addNextSelectedWallets"),ee=T.length>0,Y=i((W,V)=>!!q.find(K=>K.walletType===W&&K.chain===V&&K.selected&&(L(V)||!L(V)&&!g)),"isSelected"),be=i((W,V,K)=>{let j=!1;return W.map(X=>{if(X.chain===V){let ce=X.selected;return!j&&K?(j=!0,ce=!0):K||(ce=!1),{...X,selected:ce}}return X})},"updateSelectableWallets"),le=i(W=>{E(W),W?L(B?.name??"")||J(V=>be(V,B?.name||"",!1)):(h(""),J(V=>be(V,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),fe=i(W=>{if(y&&C(""),Y(W.walletType,W.chain))return;let K=m.find(j=>j.walletType===W.walletType&&j.chain===W.chain);K&&(n(),W.chain===B?.name&&I&&!L(B.name)&&(E(!1),h(null)),J(j=>j.filter(X=>X.chain!==W.chain).concat({...K,selected:!0})))},"onChange"),ke=i(()=>{let W=q.filter(V=>V.selected);S(W),p(W),d(!0),o()},"onConfirmBalance"),et=i(async()=>{w([]),A("");let W=await r?.({selectedWallets:q.filter(K=>K.selected),customDestination:g}),V=W.warnings;V?.balance?.messages&&w(V.balance.messages),W.error&&A(kd(W.error)),!W.error&&!V?.balance?.messages.length?ke():w(V?.balance?.messages??[])},"onConfirmWallets");kf(()=>{J(W=>{let V=[];return W.forEach(K=>{!m.some(X=>X.chain===K.chain&&X.walletType===K.walletType&&X.address===K.address)||V.push(K)}),V=V.concat(m.filter(K=>!!!V.find(X=>X.chain===K.chain)&&K.selected&&v.includes(K.chain))),V})},[m,v]),kf(()=>{let W=[];G.length>0&&(G.forEach(V=>{let K=m.find(j=>j.chain===V.blockchain&&j.walletType===V.walletType);K?fe(K):W.push(V)}),M(W))},[m,G]);let Q=document.getElementById(ot.SWAP_BOX_ID);return re.createElement(R,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:Q,...!y&&{styles:{container:{height:"100%"}},footer:re.createElement(pf,null,re.createElement(Cf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Xd(a,I,g,l,q,B),onClick:et,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Do.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:re.createElement(af,null,re.createElement(sf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},re.createElement(Gv,{size:16})),re.createElement(Ll,{variant:"headline",size:"small"},Do.t({id:"Your {blockchainName} wallets",values:{blockchainName:ht(y,c)}})))},anchor:"center"},re.createElement(R,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:ee,onClose:w.bind(null,[]),container:Q},re.createElement(Vv,{title:Do.t("Insufficient account balance"),type:"error",description:re.createElement(Hv,{messages:T??[]})},re.createElement(Cf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:ke},Do.t("Proceed anyway")))),y&&re.createElement(lf,null,re.createElement("div",{className:cf()},re.createElement(Bl,{chain:y,quoteChains:v,isSelected:Y,selectWallet:fe,onShowMore:()=>C(y),onConnect:W=>{te(y,W)}}))),!y&&re.createElement(re.Fragment,null,x&&re.createElement(re.Fragment,null,re.createElement(Qv,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Do.t(x)}),re.createElement(Wl,{size:12})),re.createElement(uf,null,v.map((W,V)=>{let K=c.find(Qe=>Qe.name===W),j=`wallet-${V}`,X=V===v.length-1,ce=X&&B&&f?.customDestination!==!1;return re.createElement("div",{key:j},re.createElement(of,null,re.createElement(Ll,{variant:"title",size:"xmedium"},Do.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),re.createElement(Ll,{variant:"label",color:"$neutral700",size:"medium"},Do.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),re.createElement(Wl,{size:24}),re.createElement(nf,null,re.createElement(Bl,{chain:W,quoteChains:v,isSelected:Y,selectWallet:fe,limit:Yv,onShowMore:()=>C(K?.name??""),onConnect:Qe=>{te(W,Qe)}})),!X&&re.createElement(Wl,{size:32}),ce&&re.createElement(tf,{blockchain:B,open:I,handleOpenChange:le}))}))))}i(Tf,"ConfirmWalletsModal");import{i18n as yb}from"@lingui/core";import{Alert as Sb,Button as Cb,Divider as Uf,InfoIcon as kb}from"@rango-dev/ui";import Ue from"react";import{Alert as Rv,Button as eb,Divider as _l,NoRouteIcon as tb,RefreshIcon as ob,Typography as Af}from"@rango-dev/ui";import ut from"react";import{i18n as wf}from"@lingui/core";var Zv=24,Jv=60;function vf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ne().genericServerError,action:{onClick:n,title:wf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ne().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:wf.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(vf,"makeInfo");var Ml=(o=>(o[o.small=Zv]="small",o[o.large=Jv]="large",o))(Ml||{}),Pl=(o=>(o.small="small",o.large="medium",o))(Pl||{});import{styled as Gi}from"@rango-dev/ui";var bf=Gi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),xf=Gi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Ef=Gi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),If=Gi("div",{padding:"$6 $0"});function nr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=k().getDisabledLiquiditySources(),s=k().toggleAllLiquiditySources,c=k().swappers(),l=vf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),ut.createElement(bf,{id:"widget-no-result-container"},ut.createElement(tb,{size:Ml[n],color:"gray"}),ut.createElement(_l,{size:4}),ut.createElement(Af,{variant:"title",size:Pl[n]},ne().noResultError.title),n==="large"&&ut.createElement(_l,{size:4}),!!l.description&&ut.createElement(xf,{size:n},ut.createElement(Af,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),ut.createElement(_l,{size:n==="large"?"24":"4"}),!!l.alert&&ut.createElement(Ef,{size:n},ut.createElement(Rv,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&ut.createElement(eb,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:ut.createElement(If,null,ut.createElement(ob,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(nr,"NoResult");import{i18n as ir}from"@lingui/core";import{Button as ib,Divider as ab,MessageBox as sb,Typography as lb,WarningIcon as cb}from"@rango-dev/ui";import Kt from"react";import{Typography as Mf}from"@rango-dev/ui";import $l from"react";import{Button as nb,darkTheme as rb,styled as rr}from"@rango-dev/ui";var Nf=rr("div",{width:"100%"}),Dl=rr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Bf=rr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${rb} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wf=rr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Lf=rr(nb,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function Pf(t){let{title:e,value:o,valueColor:n}=t;return $l.createElement(Bf,null,$l.createElement(Mf,{size:"medium",variant:"label",className:"_title"},e),$l.createElement(Mf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Pf,"QuoteErrorsModalItem");function _f(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:ir.t("Swapping"),value:_(r.inputUsdValue,4,4)},{title:ir.t("Gas cost"),value:_(r.totalFee,2,2)},{title:ir.t("Receiving"),value:_(r.outputUsdValue,4,4)},{title:ir.t("Price impact"),value:_(r.priceImpact,2,2),valueColor:`${s}500`}];return Kt.createElement(R,{id:"widget-high-value-loss-warning-modal",footer:Kt.createElement(ib,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Kt.createElement(cb,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},Kt.createElement(sb,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Kt.createElement(Dl,null,Kt.createElement(ab,{size:"4"}),Kt.createElement(lb,{size:"small",variant:"title"},ir.t("Details")),Kt.createElement(Dl,null,c.map((l,p)=>Kt.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:{Vt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().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=ne().unknownPriceError.title;break}case 2:{o.title=kn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=kn.t("Increase");break}case 3:{o.title=kn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Df,"makeAlerts");function $f(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i($f,"getRequiredSlippage");import{i18n as Tn}from"@lingui/core";import{Button as pb,Divider as Fl,MessageBox as ub,WarningIcon as db}from"@rango-dev/ui";import fo from"react";import{useNavigate as mb}from"react-router-dom";function Ff(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=mb();return fo.createElement(R,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},fo.createElement(ub,{type:"warning",title:r.type===3?Tn.t("High slippage"):Tn.t("Low slippage"),description:r.type===3?Tn.t("Caution, your slippage is high. Your trade may be front run."):Tn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},fo.createElement(Fl,{size:18}),fo.createElement(Fl,{size:32}),fo.createElement(Lf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},fo.createElement(db,{color:"white",size:16}),Tn.t("Swap anyway")),fo.createElement(Fl,{size:10}),fo.createElement(pb,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+F.settings)},Tn.t("Change Slippage"))))}i(Ff,"SlippageWarningModal");import{Button as fb,MessageBox as gb,WarningIcon as hb}from"@rango-dev/ui";import Vi from"react";function Of(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Vi.createElement(R,{id:"widget-unknown-price-warning-modal",footer:Vi.createElement(fb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Vi.createElement(hb,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Vi.createElement(gb,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(Of,"UnknownPriceWarningModal");function ar(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:d,onChangeSlippage:g}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,m=Df(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let S=!!m&&!s,y=i(C=>{if(C==="change-slippage"){let T=o?.type===3||o?.type===4?o:null,w=$f(e,T);g?.(w)}else C==="change-settings"&&d()},"onclickActionButton");return Ue.createElement(Ue.Fragment,null,f&&Ue.createElement(Ue.Fragment,null,Ue.createElement(Uf,{size:10}),Ue.createElement(nr,{skipAlerts:s,error:o,fetch:c})),S&&Ue.createElement(Nf,null,Ue.createElement(Uf,{size:10}),Ue.createElement(Sb,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Ue.createElement(Wf,{onClick:l},Ue.createElement(kb,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Ue.createElement(Cb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>y(m.action)},m.actionButtonTitle||yb.t("Change"))}})),e&&Ue.createElement(Ue.Fragment,null,e.type===0&&Ue.createElement(_f,{...h,warning:e}),(e.type===3||e.type===2)&&Ue.createElement(Ff,{...h,warning:e}),e.type===1&&Ue.createElement(Of,{...h,warning:e})))}i(ar,"QuoteWarningsAndErrors");import Xb from"bignumber.js";import ia from"react";import{i18n as $o}from"@lingui/core";import{Alert as Db,Divider as vn,FullExpandedQuote as $b,InfoIcon as Fb,NumericTooltip as fg,QuoteTag as Ob,StepDetails as Ub,TokenAmount as zb,Typography as bn}from"@rango-dev/ui";import Kl from"bignumber.js";import U,{useRef as qb,useState as Qb}from"react";import{styled as Ol}from"@rango-dev/ui";var Ul=Ol("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),zf=Ol("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),qf=Ol("div",{width:"100%",display:"flex"});import*as Ki from"@radix-ui/react-collapsible";import{Button as Tb,css as sr,darkTheme as We,Image as Qf,styled as Ye,Typography as wb}from"@rango-dev/ui";var vb=300,Hf=Ye(Ki.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${We} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Gf=sr({padding:"$10 $15"}),Vf=Ye(Tb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${We} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${We} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${We} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Kf=Ye("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${We} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${We} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${We} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${We} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${We} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${We} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${We} &`]:{backgroundColor:"$neutral400"}}}}]}),jf=sr({width:"100%",padding:"$15 $15 $10 $15"}),Xf=sr({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),wn=sr({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Yf=sr({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${We} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Zf=Ye(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=Ye("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Rf=Ye(Oi,{width:"100%",background:"inherit"}),zl=Ye("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${vb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),CQ=Ye("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),eg=Ye("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${We} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),tg=Ye("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),ql=Ye(wb,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),og=Ye("div",{display:"flex",flexWrap:"wrap"}),Ql=Ye("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),ng=Ye("div",{display:"flex"}),ji=Ye("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${We} &`]:{borderTopColor:"$neutral800"}});import{i18n as Pt}from"@lingui/core";import{ChevronDownIcon as xb,CloseIcon as Eb,Divider as Zi,IconButton as Ib,NumericTooltip as Ab,QuoteCost as Nb,Typography as xt}from"@rango-dev/ui";import Z,{useState as sg}from"react";import{css as bb,styled as Xi}from"@rango-dev/ui";var Yi=Xi("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Hl=Xi("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),rg=Xi("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),ig=Xi("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),ag=bb({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Bb=i(t=>t.fee.isZero()?null:Z.createElement(Yi,null,Z.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(xt,{variant:"label",size:"medium"},"$",_(t.fee,4,4))),"NonPayableFee");function Gl(t){let[e,o]=sg(!1),[n,r]=sg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:g=!1}=t,h=s?.swaps??[],f=g?xo():N(),m=zd(h),S=_(c,2,2);return Z.createElement(Z.Fragment,null,Z.createElement(Nb,{onClickFee:d?y=>{y.stopPropagation(),o(!e)}:void 0,fee:S,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?Pt.t("View more info"):void 0,tooltipContainer:f}),Z.createElement(R,{id:"widget-quote-cost-explanation-modal",container:f,open:e,anchor:g?"center":"bottom",styles:{container:{maxWidth:g?"484px":"unset"}},header:Z.createElement(ig,{style:{textAlign:g?"left":"center"}},Z.createElement(xt,{variant:"title",size:"medium"},Pt.t("Gas & Fee Explanation")),Z.createElement(Ib,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Z.createElement(Eb,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(rg,null,Z.createElement(xt,{variant:"title",size:"small"},Pt.t("Details")),Z.createElement(Zi,{size:10}),Object.entries(m.payable).flatMap(([y,C])=>C.map((T,w)=>{let x=`payable-fee-${w}`,A=zs(T);return Z.createElement(Yi,{key:x},Z.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},Ds(y,Pt.t)),Z.createElement(Ab,{content:T.amount,container:f},Z.createElement(xt,{variant:"label",size:"medium"},_(T.amount,2,2),T.asset.symbol," ($",_(A,4,4),")")))})),Z.createElement(Yi,{className:"total_payable_fee"},Z.createElement(xt,{variant:"label",size:"medium"},Pt.t("Total Payable Fee")),Z.createElement(xt,{variant:"label",size:"medium"},"$",_(c,4,4))),Z.createElement(Hl,null),!!Object.keys(m.nonePayable).length&&Z.createElement(qi,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:Z.createElement("div",{className:ag()},Z.createElement(xt,{size:"small",variant:"body",color:"neutral700"},n?Pt.t("Hide non-payable fees"):Pt.t("Show non-payable fees")),Z.createElement(Zi,{size:4,direction:"horizontal"}),Z.createElement(Ui,{orientation:n?"up":"down"},Z.createElement(xb,{size:12,color:"gray"}))),open:n},Z.createElement(xt,{size:"small",variant:"title"},Pt.t("Description")),Z.createElement(Zi,{size:4}),Z.createElement(xt,{size:"small",variant:"body",color:"neutral700"},Pt.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),Z.createElement(Zi,{size:10}),Object.entries(m.nonePayable).map(([y,C],T)=>{let w=Ud(C),x=Ds(y,Pt.t),A=`non-payable-fee-${T}`;return Z.createElement(Bb,{key:A,fee:w,label:x})}),Z.createElement(Hl,null)))))}i(Gl,"QuoteCostDetails");import{i18n as pg}from"@lingui/core";import{TokenAmount as ug}from"@rango-dev/ui";import Ji from"react";import{css as Wb,styled as Lb}from"@rango-dev/ui";var lg=Lb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),cg=Wb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function lr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Ji.createElement(lg,null,Ji.createElement(ug,{direction:"horizontal",label:pg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Ji.createElement("div",{className:cg()}),Ji.createElement(ug,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:pg.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(lr,"QuoteSummary");import{i18n as dg}from"@lingui/core";import{ChevronDownIcon as Mb,ChevronRightIcon as Pb,Divider as Vl,Image as _b,Tooltip as oa,Typography as Ri}from"@rango-dev/ui";import z from"react";var ea=4,ta=6,cr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return z.createElement(oa,{container:c,side:"bottom",sideOffset:4,open:r,content:e},z.createElement(Jf,{className:n,state:a},z.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:d,isMobile:g}=fn();return z.createElement(Zf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(f=>!f)}},z.createElement("div",{className:wn()},z.createElement(Ri,{variant:"body",size:"xsmall"},dg.t("Via:")),z.createElement(Vl,{direction:"horizontal",size:4}),r.map((h,f)=>{let m=`item-${f}`,S=z.createElement(zl,null,z.createElement(Pb,{size:12,color:"black"}));return g||d?z.createElement(z.Fragment,{key:m},z.createElement(cr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),f!==p-1&&z.createElement(z.Fragment,null,S)):z.createElement(z.Fragment,{key:m},p<=ea||p>ea&&f<ea-1?z.createElement(z.Fragment,null,z.createElement(cr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),f!==p-1&&z.createElement(z.Fragment,null,S)):f===ea-1&&z.createElement(oa,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:wn()},S,r.map((y,C)=>{let T=`image-${C}`;return C>=f&&z.createElement(z.Fragment,{key:T},z.createElement(cr,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),C!==p-1&&z.createElement(z.Fragment,null,S))}))},z.createElement(Ql,{state:r.find((y,C)=>C>=f&&(y.state==="error"||y.state==="warning"))?.state},z.createElement(Ri,{size:"xsmall",variant:"body"},"+",p-f))))})),z.createElement("div",{className:wn()},z.createElement("div",{className:"blockchains_section"},z.createElement("div",{className:wn()},z.createElement(Ri,{variant:"body",size:"xsmall"},dg.t("Chains:")),z.createElement(Vl,{direction:"horizontal",size:4}),u.map((h,f)=>z.createElement(z.Fragment,{key:h.displayName},u.length<=ta||u.length>ta&&f<ta-1?z.createElement(oa,{container:l,side:"bottom",content:h.displayName,sideOffset:4},z.createElement(cr,{content:"",src:h.image??"",open:!1,className:f!==0?"blockchainImage":""})):f===ta-1&&z.createElement(oa,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:wn()},u.map((m,S)=>S>=f&&z.createElement(cr,{key:m.displayName,content:"",src:m.image??"",open:!1,className:S>f?"blockchainImage":"",container:c})))},z.createElement(Ql,{className:"blockchainImage"},z.createElement(Ri,{size:"xsmall",variant:"body"},"+",u.length-f))))),z.createElement(Vl,{direction:"horizontal",size:32}))),z.createElement(zl,{orientation:a?"up":"down"},z.createElement(Mb,{size:12,color:"black"}))))}i(mg,"QuoteTrigger");function jl(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:d=!1,container:g}=t,h=k().blockchains(),{findToken:f}=k(),m=k().swappers(),{customSlippage:S,slippage:y}=k(),C=S||y,[T,w]=Qb(t.expanded),x=qb(null),A=_(o.value,6,6),I=_(n.value,6,6),E=n.usdValue?_(n.usdValue,4,4):"",v=Gt(o.usdValue,n.usdValue??null),b=_(v,2,2),B=Vt(v??0),L=i((ke,et)=>ke.map((Q,W)=>{let V,K=r?.type===3&&r.swap.swapperId===Q.swapperId,j=r?.type===4&&!!r.recommendedSlippages?.[W],X=a?.type===2&&!!a.recommendedSlippages?.[W],ce=K||j,Qe=X;ce?V="error":Qe&&(V="warning");let tt=ce?$o.t("Slippage Error"):$o.t("Slippage Warning");return K&&(tt=$o.t("Bridge Limit Error")),{swapper:{displayName:Bn(Q.swapperId,m)??"",image:Q.swapperLogo},from:{token:{displayName:Q.from.symbol,image:Q.from.logo},chain:{displayName:ht(Q.from.blockchain,h)??"",image:Q.from.blockchainLogo},price:{value:W===0&&!et?_(o.value,6,6):_(Q.fromAmount,6,6),usdValue:_((Q.from.usdPrice??0)*parseFloat(Q.fromAmount),4,4),realValue:W===0?o.value:Q.fromAmount,realUsdValue:new Kl(Q.from.usdPrice??0).multipliedBy(Q.fromAmount).toString()}},to:{token:{displayName:Q.to.symbol,image:Q.to.logo},chain:{displayName:ht(Q.to.blockchain,h)||"",image:Q.to.blockchainLogo},price:{value:_(Q.toAmount,6,6),usdValue:_((Q.to.usdPrice??0)*parseFloat(Q.toAmount),4,4),realValue:Q.toAmount,realUsdValue:new Kl(Q.to.usdPrice??0).multipliedBy(Q.toAmount).toString()}},state:V,alerts:ce||Qe?U.createElement(zf,{dense:d},U.createElement(Db,{variant:"alarm",type:ce?"error":"warning",title:tt,id:"widget-quote-footer-step-alarm-alert",footer:U.createElement(qf,null,K&&U.createElement("div",null,U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(vn,{direction:"vertical",size:2}),U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Yours: {amount} {symbol}",values:{amount:_(Q.fromAmount,6,6),symbol:Q?.from.symbol}}))),(j||X)&&!K&&U.createElement("div",null,U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[W]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[W]}}})),U.createElement(vn,{direction:"vertical",size:2}),U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Ln(Q.estimatedTimeInSeconds),fee:_(Us(Q,f),2,2),internalSwaps:Q.internalSwaps?L(Q.internalSwaps):void 0}}),"getQuoteSteps"),D=L(e?.swaps??[]),q=D.length,J=g||N(),G=Ld(t.quote.tags||[]),M=!!u,te=Yr(e?.swaps),ee=Ln(te),Y=bi(e?.swaps??[],f),be=_(Y,2,2),le=Y.gte(new Kl(wd)),fe=te/bd>=vd;return d?U.createElement($b,{selected:c,fee:be,time:ee,tooltipContainer:xo(),steps:D,tags:G,id:"widget-quote-full-expanded-quote-container",quoteCost:U.createElement(Gl,{quote:e,fullExpandedMode:!0,time:ee,fee:Y,feeWarning:le,timeWarning:fe,showModalFee:p,steps:q}),percentageChange:b,warningLevel:B,outputPrice:{value:I,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):U.createElement(Kf,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},U.createElement("div",{className:jf()},!l&&G.length?U.createElement(U.Fragment,null,U.createElement(ng,null,G.map((ke,et)=>{let Q=`${ke.value}_${et}`;return U.createElement(U.Fragment,{key:Q},U.createElement(Ob,{label:ke.label,value:ke.value}),U.createElement(vn,{size:4,direction:"horizontal"}))})),U.createElement(ji,null),!M&&U.createElement(vn,{size:4})):null,U.createElement("div",{id:"portal-root",className:Xf()},U.createElement(Gl,{quote:e,time:ee,fee:Y,feeWarning:le,timeWarning:fe,showModalFee:p,steps:q}),M&&U.createElement(Vf,{onClick:ke=>{ke.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(bn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},$o.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:Yf()},U.createElement(tg,null,U.createElement(Fb,{size:12,color:"gray"})),U.createElement(og,null,U.createElement(ql,{size:"small",variant:"body"},`${A} ${D[0].from.token.displayName} = `),U.createElement(fg,{content:n.value,container:J,open:n.value?void 0:!1},U.createElement(ql,{size:"small",variant:"body"},"\xA0",`${I} ${D[D.length-1].to.token.displayName}`))),U.createElement(fg,{content:n.usdValue,container:J},U.createElement(vn,{size:2,direction:"horizontal"}),U.createElement(bn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&U.createElement(zb,{id:"widget-quote-token-amount-container",tooltipContainer:J,type:"output",direction:"vertical",price:{value:I,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:D[q-1].to.token.displayName,image:D[q-1].to.token.image},chain:{image:D[q-1].to.chain.image},percentageChange:b,warningLevel:B}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(lr,{from:D[0].from,to:D[q-1].to,percentageChange:b,warningLevel:B}),U.createElement(vn,{size:4}))),U.createElement(Hf,{selected:c,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:w},U.createElement(mg,{type:s,quoteRef:x,selected:c,setExpanded:w,container:J,expanded:T,steps:D}),U.createElement(Rf,{open:T},U.createElement(eg,null),U.createElement("div",{className:Gf()},D.map((ke,et)=>{let Q=`item-${et}`;return U.createElement(Ub,{type:"quote-details",className:"widget-quote-step-details-container",key:Q,tooltipContainer:J,step:ke,hasSeparator:et!==D.length-1,state:ke.state})})))))}i(jl,"Quote");import{Divider as Kb,Skeleton as jb}from"@rango-dev/ui";import Zt from"react";import{darkTheme as Hb,styled as na}from"@rango-dev/ui";var gg=na("div",{$$color:"$colors$neutral100",[`.${Hb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),hg=na("div",{paddingTop:"$2"}),yg=na("div",{paddingLeft:"$8"}),Sg=na("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Ag,Divider as Et,Skeleton as dt}from"@rango-dev/ui";import H from"react";import{css as Gb,styled as Yt}from"@rango-dev/ui";var Xl=Yt("div",{display:"flex"}),Cg=Yt("div",{padding:"$10 $0 $20"}),kg=Yt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Tg=Yt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),wg=Yt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),vg=Yt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),bg=Yt("div",{width:"65%",display:"flex",justifyContent:"start"}),xg=Yt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Eg=Yt("div",{padding:"$15 $0 $15 $0"}),Ig=Gb({display:"flex",justifyContent:"space-between",alignItems:"center"});function pr(t){let{type:e,tagHidden:o=!0}=t,n=H.createElement(wg,null,H.createElement(bg,null,H.createElement(Ag,{loading:!0,size:"medium"}),H.createElement(Et,{size:8,direction:"horizontal"}),H.createElement(xg,null,H.createElement(dt,{height:10,width:60,variant:"rounded"}),H.createElement(Et,{size:4}),H.createElement(dt,{height:15,variant:"rounded"}))),H.createElement(dt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return H.createElement("div",null,!o&&H.createElement(H.Fragment,null,H.createElement(Xl,null,H.createElement(dt,{width:65,height:20,variant:"rounded"}),H.createElement(Et,{size:4,direction:"horizontal"}),H.createElement(dt,{width:65,height:20,variant:"rounded"}),H.createElement(Et,{size:4,direction:"horizontal"}),H.createElement(dt,{width:65,height:20,variant:"rounded"})),H.createElement(ji,null),!r&&H.createElement(Et,{size:4})),H.createElement("div",{className:Ig()},H.createElement(Xl,null,H.createElement(dt,{width:60,height:10,variant:"rounded"}),H.createElement(Et,{size:4,direction:"horizontal"}),H.createElement(dt,{width:60,height:10,variant:"rounded"}),H.createElement(Et,{size:4,direction:"horizontal"}),H.createElement(dt,{width:60,height:10,variant:"rounded"})),r&&H.createElement(dt,{width:85,height:24,variant:"rounded"})),e==="basic"&&H.createElement(Cg,null,H.createElement(dt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&H.createElement(kg,null,H.createElement(Tg,null,H.createElement(Ag,{loading:!0,size:"medium"}),H.createElement(Et,{direction:"horizontal",size:4}),H.createElement(dt,{height:15,width:150,variant:"rounded"})),H.createElement(Et,{size:10}),H.createElement(dt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&H.createElement(H.Fragment,null,H.createElement(Et,{size:4}),H.createElement(Eg,null,n,H.createElement(vg,null),n),H.createElement(Et,{size:12})))}i(pr,"QuoteSummarySkeleton");import{ChainToken as Mg,Divider as Zl,NextIcon as Vb,Skeleton as ra}from"@rango-dev/ui";import Le from"react";import{styled as ur}from"@rango-dev/ui";var Ng=ur("div",{display:"flex",alignItems:"start"}),Bg=ur("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Yl=ur("div",{display:"flex",alignItems:"center",flexGrow:1}),Wg=ur("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Lg=ur("div",{display:"flex",alignItems:"center"});function _t(t){let{separator:e=!0}=t;return Le.createElement(Le.Fragment,null,Le.createElement(Lg,null,Le.createElement(ra,{height:22,width:22,variant:"circular"}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:15,width:148,variant:"rounded"})),Le.createElement(Ng,null,Le.createElement(Sg,{hideSeparator:!e}),Le.createElement(Bg,{extraSpace:e},Le.createElement(Yl,null,Le.createElement(Mg,{size:"small",loading:!0}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:12,variant:"rounded"})),Le.createElement(Wg,null,Le.createElement(Vb,{color:"gray",size:16})),Le.createElement(Yl,null,Le.createElement(Mg,{size:"small",loading:!0}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:12,variant:"rounded"})))))}i(_t,"StepSkeleton");function dr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Zt.createElement(gg,{expanded:o,rounded:e!=="basic"},Zt.createElement(pr,{type:e,tagHidden:n}),Zt.createElement(hg,null,Zt.createElement(jb,{height:15,variant:"rounded"})),o&&Zt.createElement(yg,null,Zt.createElement(Kb,{size:24}),Zt.createElement(_t,null),Zt.createElement(_t,null),Zt.createElement(_t,{separator:!1})))}i(dr,"QuoteSkeleton");function Fo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:d,onClickAllRoutes:g,fullExpandedMode:h=!1,container:f}=t,{inputAmount:m,inputUsdValue:S}=O(),y=e?.outputAmount?new Xb(e?.outputAmount):null,C=e?Ct(e):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?ia.createElement(Ul,null,ia.createElement(dr,{tagHidden:c,type:o,expanded:s})):w?ia.createElement(Ul,{onClick:()=>l?.(e),id:d},ia.createElement(jl,{quote:e,error:r,container:f,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:g,fullExpandedMode:h,input:{value:m,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:C?.toString()??""}})):null}i(Fo,"QuoteInfo");import{warn as Rb}from"@rango-dev/logging-core";import{calculatePendingSwap as ex}from"@rango-dev/queue-manager-rango-preset";import{useEffect as tx}from"react";import{useRef as Yb,useState as Zb}from"react";var Jb=2e3;function aa({request:t}){let[e,o]=Zb(!1),n=Yb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,Jb)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(c,{signal:n.current.signal});return n.current=null,p}catch(p){if(l)return await a(c);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(aa,"useFetch");function Pg(){let{fetch:t,loading:e,cancelFetch:o}=aa({request:async(n,r)=>await pt().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Pg,"useFetchConfirmQuote");function sa(t){if(!t.swaps)throw new Error(ne().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,recommendation:r,fromAmountRangeError:a}=Fd(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}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}=O(),{slippage:l,customSlippage:p}=k(),u=k().getDisabledLiquiditySources(),d=k().blockchains(),g=k().tokens(),{findToken:h}=k(),f=p||l,{fetch:m,cancelFetch:S,loading:y}=Pg();return tx(()=>S,[]),{loading:y,fetch:i(async T=>{let w=T.selectedWallets,x=T?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=w.reduce((E,v)=>(E[v.chain]=v.address,E),{}),I={requestId:a?.requestId||"",selectedWallets:A,destination:x||void 0};try{return await m(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:f.toString(),disabledSwappersGroups:u},L=_g({previousQuote:a??void 0,currentQuote:b,meta:{blockchains:d},selectedWallets:w,userSlippage:f,inputUsdValue:n,findToken:h});c();let D=!!L.balance,q=ex(o.toString(),v,Hd(w),B,!D,{blockchains:d,tokens:g});return{quote:b,swap:q,error:null,warnings:L}})}catch(E){let v=la(E);return v.type!==2&&Rb(new Error("confirm swap error"),{tags:{...v,type:je[v.type],initialQuote:a,requestBody:I}}),{swap:null,error:v,warnings:null}}},"fetch"),cancelFetch:S}}i(Rl,"useConfirmSwap");var ux=ix("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Dg}`]:{width:"$48",height:"$48"}}),dx=oc({flexGrow:1,paddingRight:"$10"}),mx=oc({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),fx=oc({display:"flex",justifyContent:"space-between",alignItems:"center"});function $g(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=px(),[c,l]=mr(""),p=!n,[u,d]=mr(!1),[g,h]=mr(!1),{isActiveTab:f}=oe(),m=k().getDisabledLiquiditySources(),S=cx(m),{manager:y}=ox(),{fetch:C,loading:T,cancelFetch:w}=Rl(),[x,A]=mr({swap:null,error:null,warnings:null}),[I,E]=mr(!1),v=i(async({selectedWallets:M,customDestination:te})=>{let ee=await C?.({selectedWallets:M,customDestination:te});return A(ee),ee},"onConfirmSwap"),b=i(async()=>{if(x.swap&&n)try{await y?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let M=`../${F.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"),L=i(async()=>{x.warnings?.quote&&Nd(x.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),D=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&&!m.length&&D(),S.current=m},[m.length]),ca(()=>{p&&w()},[p]),ca(()=>{p&&d(p)},[p]),ca(()=>{p||C({selectedWallets:o,customDestination:r}).then(M=>A(M)).catch(M=>console.error(M))},[]),lx(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=x.warnings?.quote??null,J=x.error,G=[];if(c&&G.push(Fe.createElement(nx,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||J){let M=`../${F.settings}`;G.push(Fe.createElement(ar,{warning:q,error:J,couldChangeSettings:!1,refetchQuote:D,skipAlerts:J?.type===4||q?.type===2,showWarningModal:I,confirmationDisabled:!f,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await b()},onChangeSettings:()=>s(M)}))}return Fe.createElement(ie,{header:{title:ec.t("Confirm Swap"),onWallet:()=>{let M=`../${F.wallets}`;s(M)}},footer:Fe.createElement(ux,null,Fe.createElement("div",{className:dx()},Fe.createElement(rx,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||g,disabled:!!x.error||!f,onClick:L},ec.t("Start Swap"))),Fe.createElement(Dg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||g,disabled:!f,onClick:d.bind(null,!0)},Fe.createElement(sx,{size:24})))},u&&Fe.createElement(Tf,{open:u,onClose:()=>d(!1),onCancel:w,loading:T,onCheckBalance:v}),Fe.createElement(ae,null,Fe.createElement("div",{className:fx()},Fe.createElement(ax,{variant:"title",size:"small"},ec.t("You get")),Fe.createElement("div",{className:mx()},Fe.createElement(Li,{onClick:!T&&!u&&!I?D:void 0}))),Fe.createElement(tc,{size:"12"}),ym(G.map((M,te)=>({element:M,key:`alert-${te}`})),Fe.createElement(tc,{size:10})),G.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 Rt}from"@lingui/core";import{Button as fc,CustomTokensZeroStateDarkIcon as _x,CustomTokensZeroStateIcon as Dx,DeleteIcon as $x,Divider as Cr,IconButton as Fx,MessageBox as Ox,NotFound as Ux,styled as hc}from"@rango-dev/ui";import ge,{useState as gc}from"react";import{useNavigate as zx}from"react-router-dom";import{CloseIcon as hx,IconButton as yx,SearchIcon as Sx,TextField as Cx}from"@rango-dev/ui";import fr from"react";import{styled as gx}from"@rango-dev/ui";var Fg=gx("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function It(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...d}=t,g=s.length?fr.createElement(yx,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},fr.createElement(hx,{color:"gray",size:10})):null;return p&&(g=p),fr.createElement(Cx,{prefix:fr.createElement(Fg,null,fr.createElement(Sx,{color:"black"})),id:u,suffix:g,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d})}i(It,"SearchInput");import{i18n as mc}from"@lingui/core";import{Button as vx,CustomTokenWarning as bx,darkTheme as Yg,Divider as Jt,ExternalLinkIcon as xx,Image as Ex,ListItem as Ix,NotFound as Ax,PinIcon as Nx,Skeleton as Oo,Typography as yr,VirtualizedList as Bx}from"@rango-dev/ui";import P,{useState as Wx}from"react";import{useTranslation as Lx}from"react-i18next";import{Divider as jg,ListItem as wx,Skeleton as hr}from"@rango-dev/ui";import At from"react";import{css as xn,darkTheme as nc,ImageContainer as kx,ListItemButton as Tx,styled as at,Typography as Og}from"@rango-dev/ui";var rc=xn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),ic=xn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ac=xn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),sc=xn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${nc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),lc=xn({}),cc=xn(),Ug=at("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),pc=at("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),pa=at("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${ic}`]:{[`& .${sc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${lc}`]:{bottom:"-15px"},[`& .${rc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ac}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),zg=at(Tx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),uc=at("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),dc=at(Og,{}),qg=at("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${cc}`]:{$$color:"$colors$neutral600",[`.${nc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),gr=at("div",{display:"flex",alignItems:"end",flexDirection:"column"}),mV=at("div",{display:"flex",alignItems:"center"}),Qg=at("div",{position:"relative",[`& ${kx}`]:{borderRadius:"$xm",overflow:"hidden"}}),Hg=at("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Gg=at(Og,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Vg=at("a",{"& svg:hover":{color:"$colors$info"}}),Kg=at("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${nc} &`]:{color:"$foreground"}}}});function Xg(t){return At.createElement(pa,null,Array.from(Array(t.size),e=>At.createElement(wx,{key:e,hasDivider:!0,start:At.createElement(hr,{variant:"circular",width:35,height:35}),end:At.createElement(gr,null,At.createElement(hr,{variant:"text",size:"large",width:70}),At.createElement(jg,{size:4}),At.createElement(hr,{variant:"text",size:"medium",width:50})),title:At.createElement("div",null,At.createElement(hr,{variant:"text",size:"large",width:90}),At.createElement(jg,{size:4}),At.createElement(hr,{variant:"text",size:"medium",width:90}))})))}i(Xg,"LoadingTokenList");var Mx=20,Px=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return P.createElement("div",{className:ic()},o?P.createElement("div",{className:rc()},o):P.createElement(pc,{className:ac()},P.createElement(yr,{variant:"title",size:"xmedium"},r.symbol),P.createElement(Jt,{direction:"horizontal",size:4}),P.createElement(uc,{css:a},P.createElement(dc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&P.createElement("div",{className:`${sc()} ${!o&&lc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",P.createElement(Jt,{size:4,direction:"horizontal"}),P.createElement(Vg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},P.createElement(xx,{size:12}))))},"renderDesc");function Sr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=k().fetchStatus,u=k().blockchains(),{getBalanceFor:d,fetchingWallets:g}=k(),{isTokenPinned:h}=k(),{setFromToken:f,setToToken:m}=O(),{t:S}=Lx(),y=Ve(),[C,T]=Wx(null),w=i(()=>{c==="source"?f({token:C,meta:{blockchains:u}}):m({token:C,meta:{blockchains:u}})},"updateToken"),x=i(()=>{w(),y()},"handleImportToken"),A=i(v=>{if(v.customToken){let{customToken:B,...L}=v;return P.createElement(vx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),T({...L,warning:!0})},"handleClick")},P.createElement(yr,{variant:"body",size:"xsmall",color:"background"},S("import")))}let b=ei(d(v));return s?s(v):g?P.createElement(gr,null,P.createElement(Oo,{variant:"text",size:"large",width:70}),P.createElement(Jt,{size:4}),P.createElement(Oo,{variant:"text",size:"medium",width:50})):b&&P.createElement(qg,null,P.createElement(Gg,{variant:"title",size:"small"},b.amount),P.createElement("div",null),b.usdValue&&P.createElement(yr,{variant:"body",className:cc(),size:"xsmall"},`$${b.usdValue}`))},"endRenderer"),I=i(()=>P.createElement(Bx,{itemContent:v=>{let b=e[v];if(b==="skeleton")return P.createElement(Ix,{hasDivider:!0,start:P.createElement(Oo,{variant:"circular",width:35,height:35}),end:P.createElement(gr,null,P.createElement(Oo,{variant:"text",size:"large",width:70}),P.createElement(Jt,{size:4}),P.createElement(Oo,{variant:"text",size:"medium",width:50})),title:P.createElement("div",null,P.createElement(Oo,{variant:"text",size:"large",width:90}),P.createElement(Jt,{size:4}),P.createElement(Oo,{variant:"text",size:"medium",width:90}))});let B=b.address||"",L=u.find(M=>M.name===b.blockchain);if(!L)return null;let D=nl(L.color,"main"),q={$$color:D.main150,[`.${Yg} &`]:{$$color:D.main750},backgroundColor:"$$color"},J={$$color:D.main750,[`.${Yg} &`]:{$$color:D.main150},color:"$$color"},G=i(()=>{typeof b!="string"&&!b.customToken&&n?.(b)},"handleClick");return P.createElement(Kg,null,P.createElement(zg,{"tab-index":v,key:`${b.symbol}${b.address}`,id:`${b.symbol}${b.address}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:b.customToken,onClick:G,start:P.createElement(Qg,null,P.createElement(Ex,{src:b.image===""?Hr:b.image,size:30}),t.type!=="custom-token"&&h(b,t.type)&&P.createElement(Hg,null,P.createElement(Nx,{size:12,color:"gray"}))),title:L?.type==="COSMOS"||b.name||!b.name&&!B?P.createElement(pc,null,P.createElement(yr,{variant:"title",size:"xmedium"},b.symbol),P.createElement(Jt,{direction:"horizontal",size:4}),P.createElement(uc,{css:q},P.createElement(dc,{variant:"body",size:"xsmall",css:J},b.blockchain)),l&&b.warning&&P.createElement(P.Fragment,null,P.createElement(Jt,{direction:"horizontal",size:4}),P.createElement(bx,{container:N()}))):void 0,description:typeof b!="string"&&L?.info&&B&&L.type!=="COSMOS"?Px({address:B,token:b,customCssForTag:q,customCssForTagTitle:J,name:b.name,url:L.info.addressUrl.split("{wallet}").join(B)}):b.name||void 0,end:A(b)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=C?vo(C?.blockchain,u):null;return P.createElement(P.Fragment,null,a&&P.createElement(P.Fragment,null,P.createElement(yr,{variant:"label",size:"large"},mc.t("Select Token")),P.createElement(Jt,{size:4})),P.createElement(Ug,null,P.createElement(Jt,{size:4}),p==="loading"&&P.createElement(Xg,{size:Mx}),p==="success"&&(e.length?P.createElement(P.Fragment,null,P.createElement(Zn,{token:C,address:C?.address??"",blockchain:E??void 0,onImport:x,onExitErrorModal:()=>T(null),onExitImportModal:()=>T(null)}),P.createElement(pa,{as:"ul"},I())):!!o&&P.createElement(Ax,{title:mc.t("No results found"),description:mc.t("Try using different keywords")}))))}i(Sr,"TokenList");var qx=hc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Qx=hc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Hx=hc(Fx,{"&:hover":{"& svg":{color:"$secondary550"}}});function Zg(){let[t,e]=gc(""),{deleteCustomToken:o}=k(),n=k().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=O(),{mode:l}=so({}),p=zx(),[u,d]=gc(!1),[g,h]=gc(),f=i(C=>{let T=C.target.value;e(T)},"handleSearch"),m=l==="dark",S=n.filter(C=>lt(C.symbol,t)||lt(C.address||"",t)||lt(C.name||"",t)),y=i(()=>{if(g){let C=a?yt(a):null,T=r?yt(r):null,w=yt(g);C===w?c({token:null}):T===w&&s({token:null}),o(g)}d(!1)},"handleDeleteCustomToken");return ge.createElement(ie,{header:{title:Rt.t("Custom Tokens")}},ge.createElement(ae,null,ge.createElement(qx,null,n.length?ge.createElement(ge.Fragment,null,ge.createElement(It,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Rt.t("Search Token"),onChange:f}),ge.createElement(Cr,{size:16}),ge.createElement(Sr,{list:S,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>ge.createElement(Hx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(C)}},ge.createElement($x,{size:12,color:"gray"}))})):ge.createElement(Qx,null,ge.createElement(Ux,{icon:m?ge.createElement(_x,{size:200}):ge.createElement(Dx,{size:200}),title:Rt.t("No custom tokens"),description:Rt.t("press the button to add your custom token")})),ge.createElement(Cr,{size:20}),ge.createElement(fc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(F.addCustomTokens)},Rt.t("Add Custom Token"))),ge.createElement(R,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:N()},ge.createElement(Ox,{title:Rt.t("Delete Custom Token"),type:"error",description:Rt.t("Are you sure you want to Delete this Token?")},ge.createElement(Cr,{size:40}),ge.createElement(Cr,{size:10}),ge.createElement(fc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},Rt.t("Yes, Delete it")),ge.createElement(Cr,{size:12}),ge.createElement(fc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},Rt.t("No, Continue"))))))}i(Zg,"CustomTokensPage");import{i18n as Je}from"@lingui/core";import{useManager as pE}from"@rango-dev/queue-manager-react";import{Button as vc,darkTheme as uE,Divider as zo,MessageBox as dE,NotFound as mE,styled as bc,Typography as ma}from"@rango-dev/ui";import{TransactionStatus as wr}from"rango-types";import se,{useMemo as hh,useState as fa}from"react";import{useNavigate as fE}from"react-router-dom";import{FilterIcon as Zx,Popover as Jx}from"@rango-dev/ui";import Uo from"react";import{css as Gx,darkTheme as ua,IconButton as Vx,styled as kr}from"@rango-dev/ui";var yc=kr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ua} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),Jg=kr(Vx,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ua} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ua} &`]:{backgroundColor:"$neutral"},[`& ${yc}::before`]:{backgroundColor:"$secondary100",[`.${ua} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Rg=kr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),eh=kr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),th=Gx({display:"flex",justifyContent:"space-between",alignItems:"center"}),oh=kr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as nh}from"@lingui/core";import{Button as Kx,Divider as rh,ListItemButton as jx,Radio as Xx,RadioRoot as Yx,Typography as ih}from"@rango-dev/ui";import mt from"react";function ah(t){let{filterBy:e,onClickItem:o}=t;return mt.createElement(eh,null,mt.createElement("div",{className:th()},mt.createElement(ih,{size:"small",variant:"body"},nh.t("Status")),mt.createElement(Kx,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},nh.t("Reset"))),mt.createElement(rh,{size:10}),mt.createElement(Yx,{value:e},mt.createElement(oh,null,t.list.map((n,r)=>mt.createElement(jx,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:mt.createElement(mt.Fragment,null,mt.createElement(rh,{direction:"horizontal",size:4}),mt.createElement(ih,{size:"medium",variant:"body"},n.title)),start:mt.createElement(Xx,{value:n.id}),onClick:o})))))}i(ah,"FilterSelectorContent");function Sc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Uo.createElement("div",null,Uo.createElement(Jx,{open:a,align:"end",onOpenChange:o,container:N(),content:Uo.createElement(ah,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Uo.createElement(Jg,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Uo.createElement(yc,{isSelect:!!n},Uo.createElement(Zx,{size:16,color:"black"}),!!n&&Uo.createElement(Rg,null)))))}i(Sc,"FilterSelector");import{i18n as tE}from"@lingui/core";import{getCurrentStep as oE}from"@rango-dev/queue-manager-rango-preset";import{Divider as uh,GroupedVirtualizedList as nE,Skeleton as rE,SwapListItem as dh,Typography as iE}from"@rango-dev/ui";import Ze,{useCallback as mh,useEffect as aE,useRef as sE,useState as lE}from"react";function sh(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(sh,"calculateGroupsSoFar");import{css as Rx,darkTheme as eE,styled as Tr}from"@rango-dev/ui";var Cc=Rx(),lh=Tr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),kc=Tr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Cc}`]:{$$color:"$colors$neutral600",[`.${eE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Tc=Tr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),ch=Tr("div",{gap:"$10",display:"flex",flexDirection:"column"}),ph=Tr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var cE=10;function wc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=lE([]),c=sE(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=mh(sh,[]),g=mh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,cE),s(d(p,c.current)))},[e.length]);if(aE(()=>{r||g()},[r,g]),r){let h=[1,2];return Ze.createElement(Ze.Fragment,null,[h,h].map((m,S)=>Ze.createElement(kc,{key:S},Ze.createElement(Tc,null,Ze.createElement(rE,{variant:"text",width:60,size:"small"}),Ze.createElement(uh,{size:16})),Ze.createElement(uh,{size:4}),Ze.createElement(ch,null,m.map((C,T)=>Ze.createElement(dh,{isLoading:!0,key:T}))))))}return Ze.createElement(nE,{endReached:()=>{c.current<e.length&&g()},groupCounts:a,groupContent:h=>Ze.createElement(kc,null,Ze.createElement(Tc,null,Ze.createElement(iE,{variant:"label",size:"medium",className:Cc()},u[h]))),itemContent:(h,f)=>{let m=l[h];if(!m)return null;let S=oE(m),y=m.steps[0],C=m.steps[m.steps.length-1];return Ze.createElement(lh,{key:m.requestId},Ze.createElement(dh,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:S,tooltipContainer:N(),onlyShowTime:u[f]===tE.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:_(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:_(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(wc,"HistoryGroupedList");import{i18n as da}from"@lingui/core";import fh from"dayjs";var gh=i(t=>{let e=new Map([["today",{title:da.t("Today"),swaps:[]}],["week",{title:da.t("This week"),swaps:[]}],["month",{title:da.t("This month"),swaps:[]}],["year",{title:da.t("This year"),swaps:[]}]]);function o(l,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}i(o,"addYearsToOutput");let n=fh();t.forEach(l=>{let p=Number(l.creationTime),u=fh(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(l);else{let d=new Date(p).getFullYear().toString();o(d,l)}});let r=Array.from(e.values()).filter(l=>l.swaps.length>0),a=r.flatMap(l=>l.swaps),s=r.map(l=>l.swaps.length),c=r.map(l=>l.title);return{swaps:a,groupCounts:s,groups:c}},"groupSwapsByDate");var gE=bc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),hE=bc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),yE=bc("div",{"._typography":{color:"$neutral700",[`.${uE}&`]:{color:"$neutral900"}}}),SE=[{id:wr.SUCCESS,title:Je.t("Complete")},{id:wr.RUNNING,title:Je.t("Running")},{id:wr.FAILED,title:Je.t("Failed")}],CE=i((t,e)=>t?.length?t.filter(o=>Wt(o.fromBlockchain,e)||Wt(o.toBlockchain,e)||Wt(o.toSymbol,e)||Wt(o.fromSymbol,e)).length:!1,"isStepContainsText");function yh(){let t=fE(),{manager:e,state:o}=pE(),n=Tt(e).map(({swap:T})=>T),[r,a]=fa(""),[s,c]=fa(!1),l=!o.loadedFromPersistor,[p,u]=fa(""),[d,g]=fa(!1),h=i(T=>{let w=T.target.value;a(w)},"handleSearch"),f=hh(()=>!r&&!p?n:n.filter(T=>{let{inputAmount:w,status:x,steps:A,requestId:I}=T;return(!r||Wt(w,r)||Wt(x,r)||CE(A,r)||Wt(I,r))&&(!p||p===x)}),[n,r,p]),m=!f?.length&&!l,S=i(()=>g(!1),"onCloseModal"),y=i(async()=>{try{await e?.clearQueue(),g(!1)}catch(T){console.log(T)}},"onClear"),C=hh(()=>!n.some(T=>T.status===wr.SUCCESS||T.status===wr.FAILED),[n]);return se.createElement(ie,{header:{title:Je.t("History"),suffix:se.createElement(lo,null,se.createElement(vc,{id:"widget-history-clear-btn",disabled:C,variant:"ghost",size:"xsmall",onClick:()=>g(!0)},se.createElement(ma,{size:"medium",variant:"label",color:"error"},Je.t("Clear"))))}},se.createElement(ae,null,se.createElement(hE,null,se.createElement(It,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Je.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:h,style:{height:36},value:r}),se.createElement(zo,{size:10,direction:"horizontal"}),se.createElement(Sc,{filterBy:p,open:s,onOpenChange:T=>c(T),onClickItem:T=>u(T),list:SE})),se.createElement(zo,{size:"16"}),se.createElement(gE,null,m&&se.createElement(ph,null,se.createElement(zo,{size:32}),se.createElement(mE,{title:r?Je.t("No results found"):Je.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Je.t("Try using different keywords"):Je.t("Your transaction history is stored locally and will appear here after you start a swap")})),!m&&se.createElement(wc,{list:f,onSwapClick:t,groupBy:gh,isLoading:l}))),se.createElement(R,{open:d,onClose:S,id:"widget-history-clear-modal",container:N()},se.createElement(zo,{size:20}),se.createElement(dE,{type:"warning",title:Je.t("Clear Transaction History"),description:se.createElement(yE,null,se.createElement(ma,{variant:"body",size:"medium"},Je.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),se.createElement(zo,{size:"24"}),se.createElement(ma,{variant:"body",size:"small"},Je.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),se.createElement(zo,{size:30}),se.createElement(vc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},Je.t("Yes, Clear the history")),se.createElement(zo,{size:10}),se.createElement(vc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:S},se.createElement(ma,{variant:"title",size:"medium",color:"primary"},Je.t("No, Cancel")))))}i(yh,"HistoryPage");import{i18n as tI}from"@lingui/core";import{Button as oI,Divider as Fc,styled as nI,WarningIcon as rI}from"@rango-dev/ui";import iI from"bignumber.js";import ye,{useEffect as Kh,useState as jh}from"react";import{useNavigate as aI}from"react-router-dom";import{i18n as Ch}from"@lingui/core";import{Alert as TE,Divider as xc,NoRouteIcon as wE,Typography as vE}from"@rango-dev/ui";import qo from"react";import{styled as kE}from"@rango-dev/ui";var Sh=kE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Ec(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&zt(t,e)?qo.createElement(Sh,null,qo.createElement(xc,{size:10}),qo.createElement(wE,{size:24,color:"gray"}),qo.createElement(xc,{size:4}),qo.createElement(vE,{variant:"title",size:"small"},Ch.t("No Routes Found")),qo.createElement(xc,{size:4}),qo.createElement(TE,{title:Ch.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Ec,"SameTokensWarning");import{Alert as bE,Button as xE}from"@rango-dev/ui";import Th from"react";import{i18n as ga}from"@lingui/core";function kh(t){let e=null;return t===ri?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ga.t("Reset"),title:ga.t("Slippage cannot be set lower than 0.01%.")},e):t>Zo?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ga.t("Change"),title:ga.t("Caution, your slippage is high!")},e):null}i(kh,"makeAlerts");function wh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=k(),{onChangeSettings:a}=t,c=kh(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(ni),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Th.createElement(bE,{title:c.title,type:c.alertType,variant:"alarm",action:Th.createElement(xE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(wh,"SlippageWarningsAndErrors");import{i18n as BE}from"@lingui/core";import{IconButton as WE,ReverseIcon as LE,Skeleton as ME,Tooltip as PE,Typography as vr}from"@rango-dev/ui";import ft from"react";import ha from"bignumber.js";function bh(t){let{error:e,isDarkTheme:o,warning:n}=t,{quoteError:r,slippageError:a}=e,{quoteWarning:s,slippageWarning:c}=n,l=!!a||r?.type===4,p=!!c||s?.type===2;return l?"$error500":p?"$warning500":o?"$neutral600":"$neutral700"}i(bh,"getSlippageColor");function xh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new ha(e),r=new ha(o),a=n.dividedBy(r),s;return a.isLessThan(1)?s=a.toFixed(14).replace(/\.?0+$/,""):a.toFixed(0).length>10?s=a.toFixed(0).slice(0,10):s=a.toFixed(2),{displayValue:s,rawValue:a.toFixed()}}i(xh,"getUsdExchangeRate");function Eh(t,e){let o=new ha(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,ha.ROUND_DOWN).toFormat(2)}`}i(Eh,"formatTokenValueInUsd");import{darkTheme as AE,styled as Ac,Typography as NE}from"@rango-dev/ui";var Ih=Ac("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),Ah=Ac("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${AE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Nc=Ac(NE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Bc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=k(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:g}=so({}),h=en(d),f=g==="dark",m=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=m?C:T,x=m?T:C,A=Number(m?p?.outputAmount:p?.requestAmount),I=Number(m?p?.requestAmount:p?.outputAmount),E=A||w.usdPrice,v=I||x.usdPrice,{rawValue:b,displayValue:B}=xh({toTokenUsdPrice:v,fromTokenUsdPrice:E});return ft.createElement(Ih,null,ft.createElement(vr,{variant:S||y?"label":"body",size:S||y?"medium":"small",color:bh({error:S,warning:y,isDarkTheme:f})},BE.t("Slippage:")," ",d,"%"),u?ft.createElement(ME,{height:16,width:104,variant:"rounded"}):E&&v&&ft.createElement(Ah,null,ft.createElement(vr,{className:"rate-text",variant:"body",size:"small"},"1"),ft.createElement(Nc,{className:"rate-text",variant:"body",size:"small"},x.symbol),ft.createElement(WE,{id:"widget-home-page-change-rate-button",onClick:r},ft.createElement(LE,{size:14,color:"secondary"})),ft.createElement(PE,{container:N(),side:"top",sideOffset:4,content:ft.createElement(vr,{className:"rate-text",variant:"body",size:"small"},b)},ft.createElement(vr,{className:"rate-text",variant:"body",size:"small"},B)),ft.createElement(Nc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&&ft.createElement(vr,{color:"neutral600",variant:"body",size:"small"},"~",Eh(Number(b),w.usdPrice))))}i(Bc,"SwapMetrics");import{i18n as UE}from"@lingui/core";import{Header as zE}from"@rango-dev/ui";import go,{useEffect as qE,useState as QE}from"react";import{i18n as DE}from"@lingui/core";import{Divider as Lc,FullExpandedQuote as $E,Typography as FE}from"@rango-dev/ui";import ve from"react";import{styled as Wc}from"@rango-dev/ui";var Nh=Wc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Bh=Wc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Wh=Wc("div",{width:"146px"});import{i18n as br}from"@lingui/core";import{Select as _E}from"@rango-dev/ui";import Lh from"react";function ya(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:br.t("Smart Routing")},{value:"FEE",label:br.t("Lowest Fee")},{value:"SPEED",label:br.t("Fastest Transfer")},{value:"NET_OUTPUT",label:br.t("Maximum Return")},{value:"PRICE",label:br.t("Maximum Output")}];return Lh.createElement(Wh,null,Lh.createElement(_E,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ya,"SelectStrategy");var Mh=3;function xr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:d,toToken:g,sortStrategy:h,error:f}=O(),{slippage:m,customSlippage:S}=k(),{findToken:y}=k(),C=c||N(),T=!!p&&p.results.length,w=S??m,x=i(E=>{if(!d||!g||!p)return null;let v={requestAmount:p.requestAmount,validationStatus:null,...E};return pn({currentQuote:v,userSlippage:w,findToken:y})},"getQuoteWarning"),A=f?.type===0||f?.type===1,I=p?.results?vi(h,p?.results):[];return ve.createElement(ve.Fragment,null,a&&ve.createElement(ve.Fragment,null,ve.createElement(Bh,null,ve.createElement(FE,{size:"xmedium",variant:"title"},DE.t("Sort by")),ve.createElement(ya,{container:C})),ve.createElement(Lc,{size:"10"})),e&&Array.from({length:Mh},(E,v)=>ve.createElement(ve.Fragment,{key:v},s?ve.createElement($E,{loading:!0}):ve.createElement(dr,{tagHidden:!1,type:"list-item",expanded:!1}),v!==Mh-1&&ve.createElement(Lc,{size:16}))),!e&&ve.createElement(ve.Fragment,null,T?I.map((E,v)=>{let b=x(E),B=Jl(E.swaps),L=I.length-1===v;return ve.createElement(ve.Fragment,{key:E.requestId},ve.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:D=>{B||u("warning",b),u("error",B?.options||null),o(D)},type:"list-item"}),!L&&ve.createElement(Lc,{size:16}))}):A&&ve.createElement(Nh,null,ve.createElement(nr,{size:s?"large":"small",error:f,fetch:n}))))}i(xr,"Quotes");import{darkTheme as OE,styled as Ph}from"@rango-dev/ui";var _h=Ph("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${OE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Dh=Ph("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var HE=100;function Mc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=QE(!1),l=s?"":"is-hidden",{config:p}=k(),u=p?.variant==="full-expanded",d=xo();return qE(()=>{let g=null;return a?g=setTimeout(()=>{c(!0)},HE):(c(!1),g&&clearTimeout(g)),()=>{g&&clearTimeout(g)}},[a]),go.createElement(_h,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Di()} widget-expanded-quotes-container`,id:ot.EXPANDED_BOX_ID},go.createElement(zE,{title:UE.t("Routes"),suffix:go.createElement(go.Fragment,null,go.createElement(ya,{container:d}),go.createElement(_o,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),go.createElement(Dh,null,go.createElement(xr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:xo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Mc,"ExpandedQuotes");import{i18n as Qh}from"@lingui/core";import{SwapInput as Hh}from"@rango-dev/ui";import jE from"bignumber.js";import Er from"react";import{ReverseIcon as KE}from"@rango-dev/ui";import _c from"react";import{keyframes as GE,styled as $h}from"@rango-dev/ui";var Pc=450,VE=GE({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Fh=$h("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Oh=$h("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${VE} ${Pc}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function Dc(){let t=O.use.switchFromAndTo();return _c.createElement(Fh,null,_c.createElement(Oh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Pc),t()}},_c.createElement(KE,{size:12})))}i(Dc,"SwitchFromAndToButton");import{styled as Uh}from"@rango-dev/ui";var zh=Uh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),qh=Uh("div",{position:"relative"});function $c(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:d,inputUsdValue:g,outputAmount:h,outputUsdValue:f,selectedQuote:m}=O(),{connectedWallets:S,getBalanceFor:y}=k(),C=a?y(a):null,T=ei(C)?.amount??"0",w=C?new jE(C.amount).shiftedBy(-C.decimals):pe,x=!!s&&yu(S,s.name),A=!Os(m,d,g),I=!Os(m,d,f),E=!g||!f||!f.gt(0)?null:Gt(g.toString(),f.toString());return Er.createElement(zh,null,Er.createElement(qh,null,Er.createElement(Hh,{label:Qh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:A?void 0:_(g,4,4),realUsdValue:A?void 0:g?.toString(),error:A?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:N(),onSelectMaxBalance:()=>{let v=_(w,C?.decimals),b=C?.amount?v.split(",").join(""):"";p(b)},anyWalletConnected:S.length>0}),Er.createElement(Dc,null)),Er.createElement(Hh,{sharpBottomStyle:!r&&(!!m||e),label:Qh.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:_(Gt(g,f),2,2),warningLevel:Vt(E??0),price:{value:_(h,6,6),usdValue:I?void 0:_(f,4,4),realValue:h?.toString(),realUsdValue:I?void 0:f?.toString(),error:I?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i($c,"Inputs");import{warn as XE}from"@rango-dev/logging-core";import{useCallback as YE,useEffect as ZE,useRef as JE,useState as RE}from"react";function Gh(){let{fetch:t,loading:e,cancelFetch:o}=aa({request:async(n,r)=>await pt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Gh,"useFetchAllQuotes");var eI=600;function Sa({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Gh(),{excludeLiquiditySources:n,routing:r}=k().config,{connectedWallets:a}=k(),c=a.some(le=>le.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:g,sortStrategy:h,resetQuote:f,error:m,warning:S,setSelectedQuote:y,updateQuotePartialState:C}=O(),{slippage:T,customSlippage:w,affiliatePercent:x,affiliateRef:A,affiliateWallets:I,fetchStatus:E}=k(),v=k().getLiquiditySources(),b=k().getDisabledLiquiditySources(),B=k().excludeLiquiditySources(),{findToken:L}=k(),[D,q]=RE(!0),J=JE(u),G=w??T,te=!l||!p||zt(l,p)||!Mn(u),ee=i(le=>{q(le)},"resetState"),Y=i(le=>{let{fromToken:fe,toToken:ke,inputAmount:et,liquiditySources:Q,excludeLiquiditySources:W,disabledLiquiditySources:V,slippage:K,affiliateRef:j,affiliatePercent:X,affiliateWallets:ce}=le;if(D||ee(!0),!te&&fe&&ke){f();let Qe=Qd({fromToken:fe,toToken:ke,inputAmount:et,liquiditySources:Q,excludeLiquiditySources:W,disabledLiquiditySources:V,wallets:a,slippage:K,affiliateRef:j,affiliatePercent:X,affiliateWallets:ce,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(tt=>{let Oe=vi(h,tt.results),To=Wd(g,Oe,tt.requestAmount);q(!1),C("quotes",tt),y(To),sa({diagnosisMessages:tt.diagnosisMessages,requestId:To?.requestId||"",swaps:To?.swaps});let Va=To&&pn({currentQuote:To,userSlippage:G,findToken:L});C("warning",Va)}).catch(tt=>{let Oe=la(tt);(Oe.type===0||Oe.type===1)&&f(),Oe.type!==2&&(C("error",Oe),q(!1),XE(new Error("quote error"),{tags:{...Oe,type:je[Oe.type],requestBody:Qe}}))})}},"fetch"),be=YE(Kr(le=>{Y(le)},eI),[te]);return ZE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(te){q(!1),(g||m||S)&&f();return}if(!Mn(u)&&d?.eq(0)){ee(!1),o();return}f(),ee(!0);let le=Y;return J.current&&J.current!=u&&(le=be),J.current=u,le({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:B,disabledLiquiditySources:b,slippage:G,affiliateRef:A,affiliatePercent:x,affiliateWallets:I,contractCall:c}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,te,v?.length,n,b.length,G,A,x,c,JSON.stringify(I)]),{fetch:()=>Y({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:B,disabledLiquiditySources:b,slippage:G,affiliateRef:A,affiliatePercent:x,affiliateWallets:I,contractCall:c}),loading:D}}i(Sa,"useSwapInput");function Vh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Te.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Vh,"emitPreventableEvent");var sI=nI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),lI=300;function Xh(){let t=aI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:g}=O(),[h,f]=jh(!1),{isLargeScreen:m,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}=oe(),[B,L]=jh(!1),q=en(A!==null?A:I),G=Od({fetchMetaStatus:w,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),M=bu(m,S,T?.variant),te=!!n&&!!e&&!!o&&new iI(n).gt(0)&&!Yd(e,o),ee=te&&w==="success"&&C,Y=q?.quoteValidation||c,fe=(!M||M&&l?.results.length)&&(Y||s),ke=!!e&&!!o,et=ke&&!!q,Q=(r||s)&&!B?y:void 0,W=i(j=>{M&&h?(f(!1),setTimeout(()=>{t(j)},lI)):t(j)},"onHandleNavigation"),V=i(j=>{r?.requestId!==j.requestId&&(L(!1),p(j))},"onClickOnQuote"),K=i(j=>{if(j){if(oi.includes(j)){E(j),v(null);return}v(j)}},"onChangeSlippage");return Kh(()=>{u(),g("refetchQuote",!0)},[]),Kh(()=>{f(te)},[te]),ye.createElement(sI,null,ye.createElement(ie,{height:"auto",footer:ye.createElement(oI,{id:`widget-swap-${G.action}-btn`,type:"primary",size:"large",disabled:G.disabled||!b,prefix:G.action==="confirm-warning"&&ye.createElement(rI,null),fullWidth:!0,onClick:()=>{G.action==="connect-wallet"?Vh({type:"clickConnectWallet"},()=>W(F.wallets)):G.action==="confirm-warning"?L(!0):W(F.confirmSwap)}},G.title),header:{onWallet:()=>{W(F.wallets)},hasBackButton:!1,title:T.title||tI.t("Swap"),suffix:ye.createElement(_o,{hidden:M?["refresh"]:void 0,onClickRefresh:Q,onClickHistory:()=>W(F.swaps),onClickSettings:()=>{W(F.settings)}})}},ye.createElement(ae,null,ye.createElement($c,{fetchingQuote:ee,fetchMetaStatus:w,isExpandable:M,onClickToken:j=>{W(j==="from"?F.fromSwap:F.toSwap)}}),ye.createElement(Fc,{size:"2"}),M?null:ye.createElement(Fo,{quote:r,loading:ee,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:Y,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{g("refetchQuote",!1),W(F.routes)}:void 0}),ke&&ye.createElement(ye.Fragment,null,ye.createElement(Fc,{size:8}),ye.createElement(Bc,{quoteError:s,quoteWarning:Y,fromToken:e,toToken:o,quote:r,loading:ee})),fe?ye.createElement(ye.Fragment,null,ye.createElement(ar,{warning:Y,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:y,showWarningModal:B,confirmationDisabled:!b,onOpenWarningModal:()=>L(!0),onCloseWarningModal:()=>L(!1),onChangeSlippage:K,onConfirmWarningModal:()=>{L(!1),d(!0),W(F.confirmSwap)},onChangeSettings:()=>W(F.settings)})):null,et&&ye.createElement(ye.Fragment,null,ye.createElement(Fc,{size:"10"}),ye.createElement(wh,{onChangeSettings:()=>W(F.settings)})),ye.createElement(Ec,null))),M?ye.createElement(Mc,{loading:ee,onClickOnQuote:V,fetch:y,onClickRefresh:Q,isVisible:h}):null)}i(Xh,"Home");import{i18n as Yh}from"@lingui/core";import{Alert as cI,Divider as pI,List as uI,ListItemButton as dI,Radio as mI,RadioRoot as fI,Typography as gI}from"@rango-dev/ui";import Dt from"react";function ho(){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(ho,"useLanguage");function Zh(){let{activeLanguage:t,changeLanguage:e,languages:o}=ho(),n=Ve(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Dt.createElement(gI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Dt.createElement(mI,{value:s}),start:Dt.createElement(l,null)}});return Dt.createElement(ie,{header:{title:Yh.t("Language")}},Dt.createElement(ae,null,Dt.createElement(cI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Dt.createElement(pI,{size:"8"}),Dt.createElement(fI,{value:t},Dt.createElement(uI,{type:Dt.createElement(dI,{title:Yh.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(Zh,"LanguagePage");import{i18n as eo}from"@lingui/core";import{Button as kI,Checkbox as TI,Image as wI,ListItemButton as vI,NotFound as bI,Typography as xI}from"@rango-dev/ui";import Re,{useState as EI}from"react";import{Checkbox as SI,Skeleton as Rh}from"@rango-dev/ui";import Ar from"react";import{styled as Oc}from"@rango-dev/ui";var Ir=Oc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Uc=Oc("div",{width:80,display:"flex",justifyContent:"flex-end"}),zc=Oc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as hI,styled as yI}from"@rango-dev/ui";var Jh=yI(hI,{height:61});var CI=30;function qc(){return Ar.createElement(Ir,null,Array.from(Array(CI),(t,e)=>Ar.createElement(Jh,{hasDivider:!0,key:e,start:Ar.createElement(Rh,{variant:"circular",width:35,height:35}),title:Ar.createElement(Rh,{variant:"text",size:"large",width:90}),end:Ar.createElement(SI,{checked:!1})})))}i(qc,"LoadingLiquiditySourceList");function Qc({sourceType:t}){let e=k().fetchStatus,o=k().swappers(),n=k().getDisabledLiquiditySources(),[r,a]=EI(""),s=k().toggleLiquiditySource,c=k().isInCampaignMode(),l=ii(o,n),p={Exchanges:eo.t("Exchanges"),Bridges:eo.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(y=>u.includes(y.type)),g=d.length===d.filter(y=>y.selected).length,h=i(()=>{d.forEach(y=>{g?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),f=d.map(y=>{let{selected:C,groupTitle:T,logo:w,id:x,...A}=y;return{id:`widget-setting-liquidity-source-${iu(x.toLowerCase())}-item-btn`,start:Re.createElement(wI,{src:w,size:22,type:"circular"}),onClick:()=>{c||s(T)},end:Re.createElement(TI,{checked:C,disabled:c}),title:Re.createElement(xI,{variant:"title",size:"xmedium"},eo.t(T)),selected:C,groupTitle:T,logo:w,...A}}),m=i(y=>{let C=y.target.value;a(C)},"handleSearch"),S=f;return r&&(S=f.filter(y=>Wt(y.groupTitle,r))),Re.createElement(ie,{header:{title:eo.t(t),suffix:Re.createElement(Uc,null,Re.createElement(kI,{id:`widget-liquidity-source-${g?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},g?eo.t("Deselect all"):eo.t("Select all")))}},Re.createElement(ae,{view:!0},Re.createElement(It,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:eo.t("Search {sourceType}",{sourceType:p[t]}),onChange:m}),e==="loading"&&Re.createElement(qc,null),!S.length&&r?Re.createElement(zc,null,Re.createElement(bI,{title:eo.t("No results found"),description:eo.t("Try using different keywords")})):e==="success"&&Re.createElement(Ir,{disabled:c,className:"widget-liquidity-source-list"},S.map(y=>{let{groupTitle:C,...T}=y;return Re.createElement(Re.Fragment,{key:y.id},Re.createElement(vI,{style:{height:"61px"},...T,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Qc,"LiquiditySourcePage");import{i18n as II}from"@lingui/core";import Ca from"react";import{useNavigate as AI}from"react-router-dom";function ey(){let t=AI(),e=Ve(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:c,loading:l}=Sa({refetchQuote:n}),p=i(g=>{r(g),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${F.settings}`,d=`../${F.wallets}`;return Ca.createElement(ie,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:II.t("Routes"),suffix:Ca.createElement(_o,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Ca.createElement(ae,null,Ca.createElement(xr,{fetch:c,loading:l,onClickOnQuote:p})))}i(ey,"RoutesPage");import{i18n as sy}from"@lingui/core";import{Divider as ly,getCategoriesCount as FI,SelectableCategoryList as OI}from"@rango-dev/ui";import to,{useState as cy}from"react";import{useNavigate as UI}from"react-router-dom";import{i18n as Hc}from"@lingui/core";import{Divider as LI,Image as MI,ListItemButton as PI,NotFound as _I,Typography as ay}from"@rango-dev/ui";import gt,{useEffect as DI,useState as $I}from"react";var ty=i((t,e,o)=>t.filter(n=>jr(n.type,o)).filter(n=>lt(n.name,e)||lt(n.displayName,e)),"filterBlockchains");import{ImageContainer as NI,styled as oy}from"@rango-dev/ui";var ny=oy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),ka=oy(Tl,{padding:0,margin:0,listStyle:"none",[`& ${NI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as BI,Skeleton as ry}from"@rango-dev/ui";import Ta from"react";var WI=20;function iy(){return Ta.createElement(ka,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(WI),t=>Ta.createElement(BI,{key:t,hasDivider:!0,start:Ta.createElement(ry,{variant:"circular",width:35,height:35}),title:Ta.createElement(ry,{variant:"text",size:"large",width:90})})))}i(iy,"LoadingBlockchainList");function Gc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=$I(e),{fetchStatus:l}=k();DI(()=>{c([...ty(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?gt.createElement(_I,{title:Hc.t("No results found"),description:Hc.t("Try using different keywords")}):gt.createElement(ka,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>gt.createElement(PI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:gt.createElement(MI,{src:u.logo,size:30}),title:gt.createElement(ay,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return gt.createElement(gt.Fragment,null,a&&gt.createElement(gt.Fragment,null,gt.createElement(ay,{variant:"label",size:"large"},Hc.t("Select Chain")),gt.createElement(LI,{size:4})),gt.createElement(ny,null,l==="loading"&&gt.createElement(iy,null),l==="success"&&p()))}i(Gc,"BlockchainList");function wa(t){let{type:e}=t,o=Ve(),[n,r]=cy(""),[a,s]=cy("ALL"),c=O.use.setToBlockchain(),l=O.use.setFromBlockchain(),{fetchStatus:p}=k(),u=UI(),d=k().blockchains({type:e}),g=FI(d),h=!t.hideCategory&&g!==1;return to.createElement(ie,{header:{title:sy.t("Select Chain")}},to.createElement(ae,{view:!0},h&&to.createElement(to.Fragment,null,to.createElement(OI,{setCategory:s,category:a,blockchains:d,isLoading:p==="loading"}),to.createElement(ly,{size:24})),to.createElement(It,{value:n,autoFocus:!0,placeholder:sy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),to.createElement(ly,{size:16}),to.createElement(Gc,{list:d,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:f=>{e==="custom-token"?u(`..?blockchain=${f.name}`,{replace:!0}):(e==="source"?l(f):c(f),o())}})))}i(wa,"SelectBlockchainPage");import{i18n as xa}from"@lingui/core";import{Divider as hy,Spinner as tA}from"@rango-dev/ui";import yo,{useEffect as oA,useState as nA}from"react";import{useNavigate as rA}from"react-router-dom";import{i18n as jc}from"@lingui/core";import{BlockchainsChip as va,Divider as my,Image as fy,Skeleton as VI,Tooltip as KI,Typography as Xc}from"@rango-dev/ui";import xe from"react";import{useEffect as QI}from"react";var py=["ETH","COSMOS","OSMOSIS"];function Vc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(zI),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let c=o.limit-e.length;for(let l=0;l<=c;l++){let p=n[l];s=s.filter(u=>p.name!==u)}}n.sort(qI(s)),r=n.splice(a)}return{list:n,more:r}}i(Vc,"prepare");function zI(t,e){let o=py,n=o.findIndex(c=>c===t.name),r=o.findIndex(c=>c===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(zI,"sortByMostUsedBlockchains");function qI(t){return i(function(o,n){let r=t.findIndex(l=>l===o.name),a=t.findIndex(l=>l===n.name),s=r>-1,c=a>-1;return s&&c?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(qI,"generateSortByPreferredBlockchainsFor");function uy(t,e){return!!e.list.find(o=>o.name===t)}i(uy,"isInVisibleList");function Kc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=k();QI(()=>{if(e?.selected){let a=Vc(t,o,e);uy(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Vc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Kc,"usePrepareBlockchainList");import{styled as HI}from"@rango-dev/ui";var dy=HI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var jI=6,XI=12;function Yc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=Kc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=k(),p=O.use.resetToBlockchain(),u=O.use.resetFromBlockchain(),d=c.more.length>0,g=c.more.length===1,h=!g&&d;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(my,{size:12}),xe.createElement(Xc,{variant:"label",size:"large"},jc.t("Select Chain"))),xe.createElement(my,{size:12}),xe.createElement(dy,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?jI:XI),(f,m)=>xe.createElement(VI,{key:m,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(f=>xe.createElement(KI,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:N()},xe.createElement(va,{className:"widget-blockchains-section-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(fy,{src:f.logo,size:30})))),g?xe.createElement(va,{className:"widget-blockchains-section-only-item-btn",key:c.more[0].name,selected:!!n&&n.name===c.more[0].name,onClick:()=>r(c.more[0])},xe.createElement(fy,{src:c.more[0].logo,size:30})):null,h?xe.createElement(va,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(Xc,{variant:"body",size:"xsmall",color:"secondary500"},jc._("More +{count}",{count:c.more.length}))):null)))}i(Yc,"BlockchainsSection");import{useCallback as ZI,useRef as JI,useState as Zc}from"react";function Jc(){let t=k().blockchains(),e=JI(null),{customTokens:o}=k(),[n,r]=Zc(!1),[a,s]=Zc([]),[c,l]=Zc(null),p=i(async(g,h)=>{l(null),r(!0),s([]);try{let f=await pt().searchCustomTokens({query:g,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(C=>Qt(C))),S=new Set(t.map(C=>C.name)),y=f.tokens.filter(C=>S.has(C.blockchain)&&!m.has(Qt(C)));s(y),r(!1)}catch(f){l(f instanceof Error?f.message:"something went wrong"),s([]),f?.name!=="CanceledError"&&r(!1)}},"fetch"),u=ZI(Kr((g,h)=>{e.current?.signal.aborted||p(g,h)},600),[t.length]);return{fetch:(g,h)=>{e.current=new AbortController,s([]),r(!0),u(g,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Jc,"useSearchCustomTokens");function ba(t,e,o){return o&&t.length===1&&t[0].address===e?!1:t.length<20&&e.trim().length>=3}i(ba,"shouldSearchForCustomTokens");function gy(t,e,o,n,r){let a=[...t];return ba(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(gy,"prepareTokensList");function Ea(t){let{type:e}=t,o=rA(),n=Ve(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=O(),{getBalanceFor:u}=k(),{fetch:d,loading:g,tokens:h,cancel:f}=Jc(),[m,S]=nA(""),y=e==="source"?r:a,C=y?.name??"",T=k().blockchains({type:e}),w=k().tokens({type:e,blockchain:C,searchFor:m,getBalanceFor:u}),x=gy(w,h,m,g,y?.name),A=i(v=>{e==="source"?l(v):p(v)},"updateBlockchain"),I=i(v=>{e==="source"?s({token:v,meta:{blockchains:T}}):c({token:v,meta:{blockchains:T}})},"updateToken"),E={source:xa.t("Source"),destination:xa.t("Destination")};return oA(()=>(ba(w,m,y?.name)&&d(m,y?.name??void 0),()=>{f()}),[w.length,m,y?.name]),yo.createElement(ie,{header:{title:xa.t("Swap {type}",{type:E[e]})}},yo.createElement(ae,null,yo.createElement(Yc,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:v=>{A(v)}}),yo.createElement(hy,{size:24}),yo.createElement(It,{value:m,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,m,y?.name)&&g?yo.createElement(tA,{size:12,color:"secondary"}):void 0}),yo.createElement(hy,{size:16}),yo.createElement(Sr,{list:x,selectedBlockchain:C,searchedFor:m,type:e,onChange:v=>{I(v);let b=T.find(B=>v.blockchain===B.name);b&&A(b),n()}})))}i(Ea,"SelectSwapItemsPage");import{i18n as op}from"@lingui/core";import{Alert as WA,Button as LA,styled as MA}from"@rango-dev/ui";import Qo from"react";import{useInRouterContext as PA,useSearchParams as _A}from"react-router-dom";import{i18n as wy}from"@lingui/core";import{Alert as lA,Divider as ep,InfoIcon as cA,SlippageIcon as pA,TextField as uA,Tooltip as dA,Typography as vy}from"@rango-dev/ui";import ze from"react";import{Chip as iA,styled as Nr,TextField as aA}from"@rango-dev/ui";var yy=Nr("div",{paddingTop:"$5",padding:"$10 $5"}),Sy=Nr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${aA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Cy=Nr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Ia=Nr("div",{maxWidth:"280px",padding:"$10"}),ky=Nr(iA,{width:"61px",flexShrink:0});import{i18n as Rc}from"@lingui/core";import{Typography as sA}from"@rango-dev/ui";import Br from"react";function Ty(){return Br.createElement(Ia,null,Br.createElement(sA,{variant:"label",size:"medium",color:"neutral700"},Rc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Br.createElement("br",null),Br.createElement("br",null),Br.createElement("b",null,Rc.t("Warning")),":\xA0",Rc.t("This setting is applied to each step (e.g. 1Inch, Thorchain, etc.), meaning only that specific step will be reverted, not the entire route.")))}i(Ty,"SlippageTooltipContent");function tp(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=k(),r=o!==null?en(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let d=u;u>$n&&(d=$n),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;su(u)||(p.value=u.slice(0,-1))},"onInput");return ze.createElement(yy,null,ze.createElement(Cy,null,ze.createElement(pA,{size:16,color:"gray"}),ze.createElement(ep,{direction:"horizontal",size:4}),ze.createElement(vy,{variant:"title",size:"xmedium"},wy.t("Slippage tolerance per swap")),ze.createElement(ep,{direction:"horizontal",size:4}),ze.createElement(dA,{container:N(),side:"top",sideOffset:4,content:ze.createElement(Ty,null)},ze.createElement(cA,{color:"gray"}))),ze.createElement(Sy,null,oi.map((l,p)=>{let u=`slippage-${p}`;return ze.createElement(ky,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),ze.createElement(uA,{type:"number",min:"0.01",max:"30",step:"0.01",status:r?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&ze.createElement(vy,{variant:"body",size:"small"},"%"),placeholder:wy.t("Custom")})),r&&ze.createElement(ze.Fragment,null,ze.createElement(ep,{size:10}),ze.createElement(lA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(tp,"Slippage");import{i18n as wt}from"@lingui/core";import{AutoThemeIcon as by,BridgesIcon as mA,ChevronRightIcon as Aa,DarkModeIcon as xy,Divider as Wr,ExchangeIcon as fA,InfinityIcon as gA,InfoIcon as hA,LanguageIcon as yA,LightModeIcon as Ey,List as SA,ListItem as CA,ListItemButton as kA,Skeleton as TA,styled as wA,Switch as vA,Tabs as bA,TargetIcon as xA,Tooltip as EA,Typography as st}from"@rango-dev/ui";import $ from"react";import{useNavigate as IA}from"react-router-dom";var AA=wA("div",{width:"202px",height:"$40"}),NA=[{id:"light",icon:$.createElement(Ey,{color:"black",size:24}),tooltip:$.createElement(st,{size:"xsmall",variant:"body"},wt.t("Light"))},{id:"dark",icon:$.createElement(xy,{color:"black",size:24}),tooltip:$.createElement(st,{size:"xsmall",variant:"body"},wt.t("Dark"))},{id:"auto",icon:$.createElement(by,{color:"black",size:24}),tooltip:$.createElement(st,{size:"xsmall",variant:"body"},wt.t("Auto"))}],BA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return $.createElement(by,{...e});case"dark":return $.createElement(xy,{...e});default:return $.createElement(Ey,{...e})}},"getThemeIcon");function Iy(){let t=IA(),{theme:e}=k().config,{setTheme:o,theme:n}=k(),{activeLanguage:r,languages:a}=ho(),s=a.find(M=>M.local===r)?.label,c=k().fetchStatus,l=k().swappers(),p=k().getDisabledLiquiditySources(),{config:{features:u}}=k(),d=k().customTokens(),g=nt("theme",u),h=nt("liquiditySource",u),f=nt("language",u),m=nt("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,te)=>{switch(c){case"loading":return $.createElement(TA,{variant:"text",size:"medium",width:50});case"failed":return $.createElement(st,{variant:"body",size:"medium",color:"$error500"},wt.t("Loading failed"));default:return $.createElement(st,{variant:"body",size:"medium"},`${M} / ${te}`)}},"handleSwapperEndItem"),b={id:"widget-setting-bridge-item-btn",title:$.createElement(st,{variant:"title",size:"xmedium"},wt.t("Bridges")),end:$.createElement($.Fragment,null,v(x,w),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),onClick:()=>t(F.bridges),start:$.createElement(mA,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:$.createElement(st,{variant:"title",size:"xmedium"},wt.t("Exchanges")),end:$.createElement($.Fragment,null,v(E,I),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),start:$.createElement(fA,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},L={id:"widget-setting-custom-tokens-item-btn",title:$.createElement(st,{variant:"title",size:"xmedium"},wt.t("Custom Tokens")),end:$.createElement($.Fragment,null,$.createElement(st,{variant:"body",size:"medium"},`${d.length}`),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),start:$.createElement(xA,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},D={id:"widget-setting-language-item-btn",title:$.createElement(st,{variant:"title",size:"xmedium"},wt.t("Language")),start:$.createElement(yA,{color:"gray",size:16}),end:$.createElement($.Fragment,null,$.createElement(st,{variant:"body",size:"medium"},s),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),onClick:()=>t(F.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:$.createElement($.Fragment,null,$.createElement(st,{variant:"title",size:"xmedium"},wt.t("Infinite approval")),$.createElement(Wr,{direction:"horizontal",size:4}),$.createElement(EA,{side:"top",sideOffset:4,container:N(),content:$.createElement(Ia,null,$.createElement(st,{variant:"label",size:"medium",color:"neutral700"},$.createElement("b",null,wt.t("Warning")),":\xA0",wt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},$.createElement(hA,{color:"gray"}))),start:$.createElement(gA,{color:"gray",size:16}),end:$.createElement(vA,{checked:S}),onClick:y},J={id:"widget-setting-theme-item-btn",type:$.createElement(CA,null),title:$.createElement(st,{variant:"title",size:"xmedium"},wt.t("Theme")),end:$.createElement(AA,null,$.createElement(bA,{container:N(),items:NA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:M=>o(M.id),type:"primary",borderRadius:"small"})),start:BA(n)},G=h?[]:[b,B];return m||G.push(L),f||G.push(D),G.push(q),!e?.singleTheme&&!g&&G.push(J),$.createElement(SA,{type:$.createElement(kA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:G})}i(Iy,"SettingsLists");var DA=MA("div",{paddingLeft:"$8"});function Ay(){let{isInCampaignMode:t,updateCampaignMode:e}=k(),o=t(),[,n]=_A(),r=PA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Qo.createElement(ie,{header:{title:op.t("Settings")}},Qo.createElement(ae,null,o&&Qo.createElement(WA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:op.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:Qo.createElement(DA,null,Qo.createElement(LA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},op.t("Reset")))}),Qo.createElement(tp,null),Qo.createElement(Iy,null)))}i(Ay,"SettingsPage");import{i18n as GN}from"@lingui/core";import{cancelSwap as VN}from"@rango-dev/queue-manager-rango-preset";import{useManager as KN}from"@rango-dev/queue-manager-react";import{Alert as jN}from"@rango-dev/ui";import Sp from"react";import{useParams as XN}from"react-router-dom";import{i18n as Ft}from"@lingui/core";import{getCurrentNamespaceOfOrNull as WN,getCurrentStep as LN,getRelatedWalletOrNull as MN}from"@rango-dev/queue-manager-rango-preset";import{Button as TS,Divider as PN,QuoteCost as _N,StepDetails as DN,Typography as dp}from"@rango-dev/ui";import{useWallets as $N}from"@rango-dev/wallets-react";import wS from"bignumber.js";import{PendingSwapNetworkStatus as An}from"rango-types";import Ce,{useEffect as mp,useRef as fp,useState as $a}from"react";import{useNavigate as FN}from"react-router-dom";import{i18n as So}from"@lingui/core";var $A=[So.t("Sunday"),So.t("Monday"),So.t("Tuesday"),So.t("Wednesday"),So.t("Thursday"),So.t("Friday"),So.t("Saturday")];function Ny(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?So.t("Today"):`${$A[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Ny,"timeSince");function By(t){return t.finishTime?Ny(parseInt(t.finishTime)):Ny(parseInt(t.creationTime))}i(By,"getSwapDate");import Mr from"react";import{i18n as Na}from"@lingui/core";import{Button as Wy,Divider as np,MessageBox as FA}from"@rango-dev/ui";import Co from"react";var Ly=i(({onCancel:t,onClose:e})=>Co.createElement(Co.Fragment,null,Co.createElement(np,{size:20}),Co.createElement(FA,{type:"error",title:Na.t("Cancel Swap"),description:Na.t("Are you sure you want to cancel this swap?")}),Co.createElement(np,{size:32}),Co.createElement(Wy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Na.t("Yes, Cancel it")),Co.createElement(np,{size:12}),Co.createElement(Wy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Na.t("No, Continue"))),"CancelContent");import{i18n as Ba}from"@lingui/core";import{Button as My,Divider as rp,MessageBox as OA,Typography as UA}from"@rango-dev/ui";import oo from"react";var Py=i(({onDelete:t,onClose:e})=>oo.createElement(oo.Fragment,null,oo.createElement(rp,{size:20}),oo.createElement(OA,{type:"error",title:Ba.t("Delete Transaction"),description:Ba.t("Are you sure you want to delete this swap?")}),oo.createElement(rp,{size:32}),oo.createElement(My,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Ba.t("Yes, Delete it")),oo.createElement(rp,{size:12}),oo.createElement(My,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},oo.createElement(UA,{variant:"title",size:"medium",color:"primary"},Ba.t("No, Cancel")))),"DeleteContent");import{i18n as zA}from"@lingui/core";import{Button as qA,Divider as QA,MessageBox as HA}from"@rango-dev/ui";import Ho from"react";var _y=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Ho.createElement(Ho.Fragment,null,Ho.createElement(HA,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Ho.createElement(Ho.Fragment,null,Ho.createElement(QA,{size:"30"}),Ho.createElement(qA,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},zA.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as sN,getCurrentStep as lN,getRelatedWalletOrNull as cN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as pN}from"@rango-dev/ui";import{useWallets as uN}from"@rango-dev/wallets-react";import zy from"react";import{i18n as En}from"@lingui/core";import{Alert as $y,Button as VA,Checkbox as KA,Divider as Ma,Image as jA,MessageBox as XA,Spinner as YA,WarningIcon as ZA}from"@rango-dev/ui";import{useWallets as JA}from"@rango-dev/wallets-react";import he,{useState as RA}from"react";import{darkTheme as GA,styled as Lr}from"@rango-dev/ui";var cX=Lr("div",{display:"flex",justifyContent:"center"}),pX=Lr("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Dy=Lr("img",{width:"100%"}),Wa=Lr("div",{position:"relative"}),La=Lr("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${GA} &`]:{$$color:"$warning600"}});var Fy=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=RA(null),{list:s}=vt(),c=oe.use.isActiveTab(),{state:l,connect:p}=JA(),u=s.find(x=>x.type===e.walletType),d=u?.needsNamespace?.data.find(x=>x.value===o?.namespace);if(!u)return null;let g=l(e.walletType),h=u.isHub&&o?.namespace?g.namespaces?.get(o.namespace):null,f=g.connecting||h?.connecting,m=u.isHub?h?.connected:g.connected,S=i(()=>m?En.t("Done"):r?En.t("Try again"):En.t("Connect"),"getButtonTitle"),y=i(()=>f?he.createElement(YA,{color:"info"}):r||m?null:he.createElement(KA,{checked:!0,disabled:!0}),"getNamespaceSuffix"),C=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(x){a(x)}},"handleConnect"),T=i(async()=>{if(m){n();return}C()},"handleClickButton"),w=i(()=>{if(!m)return null;let x=u?.isHub?h?.accounts?.[0]?.split(":"):g?.accounts?.[0]?.split(":"),A=x?.[x?.length-1];return A?ro(A):null},"getAddress");return he.createElement(he.Fragment,null,he.createElement(XA,{type:"warning",title:En.t("Connect {wallet}",{wallet:u.title}),description:En.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:he.createElement(Wa,null,he.createElement(jA,{src:u.image,size:45}),he.createElement(La,null,he.createElement(ZA,{color:"warning",size:10})))}),m&&!d&&he.createElement(he.Fragment,null,he.createElement(Ma,{size:10}),he.createElement($y,{type:"success",variant:"alarm",title:En.t("Wallet connected successfully.")})),r&&!d&&he.createElement(he.Fragment,null,he.createElement(Ma,{size:10}),he.createElement($y,{type:"error",title:r?.message,variant:"alarm"})),d&&he.createElement(he.Fragment,null,he.createElement(Ma,{size:30}),he.createElement(No,{namespace:d,suffix:y(),error:r?.message,connected:m,address:w()})),he.createElement(Ma,{size:"40"}),he.createElement(VA,{loading:f,type:"primary",id:"widget-connect-wallet-btn",onClick:T,disabled:!c},S()))},"ConnectWalletContent");import{i18n as Oy}from"@lingui/core";import{Button as eN,Divider as tN,Image as oN,MessageBox as nN,WarningIcon as rN}from"@rango-dev/ui";import{useWallets as iN}from"@rango-dev/wallets-react";import{detectInstallLink as aN}from"@rango-dev/wallets-shared";import no from"react";var Uy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=iN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(aN(n.installLink),"_blank"),"handleButtonClick");return no.createElement(no.Fragment,null,no.createElement(nN,{type:"warning",title:Oy.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:no.createElement(Wa,null,no.createElement(oN,{src:n.img,size:45}),no.createElement(La,null,no.createElement(rN,{color:"warning",size:10})))}),no.createElement(tN,{size:"40"}),no.createElement(eN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},Oy.t("Install")))},"InstallWalletContent");var qy=i(t=>{let{swap:e,onClose:o}=t,{state:n}=uN(),r=lN(e),a=r?cN(e,r):null,s=a?.walletType,c=s?Pn(n(s)):null,l=r?sN(e,r):null;return s?c===pN.NOT_INSTALLED?zy.createElement(Uy,{walletType:s}):zy.createElement(Fy,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function ip(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return Mr.createElement(R,{open:e,onClose:r,container:N()},o==="connectWallet"&&Mr.createElement(qy,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&Mr.createElement(_y,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&Mr.createElement(Py,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&Mr.createElement(Ly,{onClose:r,onCancel:()=>{r(),s()}}))}i(ip,"SwapDetailsModal");import{i18n as Pr}from"@lingui/core";import{Button as ap,Divider as _r,MessageBox as Gy,TokenAmount as dN,Typography as Vy}from"@rango-dev/ui";import Se from"react";import{Link as mN,useNavigate as fN}from"react-router-dom";var Qy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Hy="/profile";function sp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:d,diagnosisUrl:g}=t,h=fN(),{showProfileBanner:f}=oe();return Se.createElement(R,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(ot.SWAP_BOX_ID)||document.body},n==="success"?Se.createElement(Gy,{type:"success",title:Pr.t("Swap Successful")},Se.createElement(dN,{direction:"vertical",tooltipContainer:N(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),Se.createElement(_r,{size:12}),Se.createElement(Vy,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Se.createElement(Gy,{type:"error",title:Pr.t("Transaction Failed"),description:d}),Se.createElement(_r,{size:30}),n==="success"&&Se.createElement(Se.Fragment,null,f&&Se.createElement(Se.Fragment,null,Se.createElement(mN,{to:Hy},Se.createElement(Dy,{src:Qy,alt:"Profile Banner"})),Se.createElement(_r,{size:30})),Se.createElement(ap,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Pr.t("Done"))),Se.createElement(_r,{size:12}),g&&Se.createElement(Se.Fragment,null,Se.createElement(ap,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(g,"_blank")},Pr.t("Diagnosis")),Se.createElement(_r,{size:12})),Se.createElement(ap,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Se.createElement(Vy,{variant:"title",size:"medium",color:"primary"},Pr.t("See Details"))))}i(sp,"SwapDetailsCompleteModal");import{i18n as Da}from"@lingui/core";import{CopyIcon as EN,DoneIcon as IN,IconButton as AN,RangoExplorerIcon as NN,Tooltip as gS,Typography as hS,useCopyToClipboard as BN}from"@rango-dev/ui";import Nt from"react";import xN from"react";import{i18n as TN}from"@lingui/core";import{Alert as uS,IconButton as wN,LinkIcon as vN}from"@rango-dev/ui";import ko,{Fragment as bN}from"react";import{Alert as hN,ChevronDownIcon as yN,IconButton as SN}from"@rango-dev/ui";import In,{useState as CN}from"react";import{css as Dr,darkTheme as Ky,styled as $t,Typography as gN}from"@rango-dev/ui";var jy=$t(ae,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Ky} &`]:{color:"$secondary500"}}}}}),Xy=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Yy=$t("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),Zy=$t("div",{padding:"$0 $20 $20 $20"}),mY=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),Jy=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),fY=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Go=Dr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Ky} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Ry=Dr({padding:"$5 0"}),Pa=Dr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),eS=Dr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),tS=Dr({width:"100%",padding:"0 $20 $10"}),oS=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),nS=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),_a=$t(gN,{wordBreak:"break-word"});import{styled as lp}from"@rango-dev/ui";var rS=lp("div",{display:"flex",flexDirection:"column",gap:"$10"}),iS=lp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),aS=lp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function sS(t){let{message:e}=t,[o,n]=CN(!1);return In.createElement(hN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&In.createElement(SN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},In.createElement(iS,{rotated:o},In.createElement(yN,{size:12,color:"gray"}))),footer:In.createElement(aS,{open:o},In.createElement(_a,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(sS,"FailedAlert");import{i18n as lS}from"@lingui/core";import{Alert as cp,Button as cS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as kN}from"rango-types";import $r from"react";function pS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?$r.createElement(cp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:$r.createElement(cS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},lS.t("Change"))}):a===kN.WaitingForConnectingWallet?$r.createElement(cp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:$r.createElement(cS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},lS.t("Connect"))}):$r.createElement(cp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(pS,"WarningAlert");function pp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=Yn(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,d=u&&!c||p&&!s.explorerUrl?.length;return ko.createElement(rS,null,s.explorerUrl?.map((g,h,f)=>{let m=h+g.url,S=h===f.length-1,y=(S&&u||p)&&!d,C=S&&s.status==="failed";return ko.createElement(bN,{key:m},ko.createElement(uS,{id:"widget-swap-details-tx-alert",type:S&&(y&&"loading"||C&&"error")||"success",title:g.description?`${g.description} Tx`:TN.t("View transaction"),action:g.url&&ko.createElement(wN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(g.url,"_blank")},ko.createElement(vN,{size:12}))}))}),d&&ko.createElement(uS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&ko.createElement(pS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&ko.createElement(sS,{message:a}))}i(pp,"SwapDetailsAlerts");var dS=2e3;var mS=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName: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:Bn(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:Bn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:xN.createElement(pp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function fS(t){if(Yn(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(fS,"getStepState");function yS(t){let{requestId:e}=t,[o,n]=BN(dS);return Nt.createElement(Yy,{className:Go()},Nt.createElement(hS,{variant:"label",size:"large",color:"neutral700"},Da.t("Request ID")),Nt.createElement("div",{className:Pa()},Nt.createElement(hS,{variant:"label",size:"small",color:"neutral700"},e),Nt.createElement(gS,{container:N(),content:o?Da.t("Copied To Clipboard"):Da.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Nt.createElement(AN,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Nt.createElement(IN,{size:16,color:"secondary"}):Nt.createElement(EN,{size:16,color:"gray"}))),Nt.createElement(oS,{target:"_blank",href:`${Hp}/swap/${e}`},Nt.createElement(gS,{container:N(),content:Da.t("View on Rango Explorer"),side:"bottom"},Nt.createElement(NN,{size:20})))))}i(yS,"RequestIdRow");import{i18n as SS}from"@lingui/core";import{Typography as CS}from"@rango-dev/ui";import up from"react";function kS(t){let{date:e,isFinished:o}=t;return up.createElement("div",{className:Go()},up.createElement(CS,{variant:"label",size:"large",color:"neutral700"},o?SS.t("Finished at"):SS.t("Created at")),up.createElement(CS,{variant:"label",size:"small",color:"neutral700"},e))}i(kS,"SwapDateRow");var ON=3e3;function gp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=$N(),l=k().blockchains(),p=k().swappers(),{findToken:u}=k(),d=O.use.retry(),g=FN(),h=fp(null),[f,m]=$a(!1),[S,y]=$a(null),[C,T]=$a(null),[w,x]=$a(null),A=fp(S),I=fp(C),E=Ne.use.getNotifications(),v=Ne.use.removeNotification(),b=E(),B=LN(e),L=B?.networkStatus,D=i(Me=>{m(!0),y(Me)},"handleChangeModalState"),q=i(()=>{m(!1)},"handleCloseModal"),J=i(()=>{T({type:"loading",title:Ft.t("Change Network"),description:`We\u2019re switching the connected network to ${ee?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),G=i(()=>{T({type:"success",title:Ft.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),M=i(Me=>{T({type:"error",title:Ft.t("Network Switch Failed"),description:Me?.message||j.detailedMessage.content})},"handleShowSwitchNetworkFailed"),te=Kd(e),ee=B?WN(e,B):null,Y=B?MN(e,B):null,be=By(e),le=jd(e),fe=i(Me=>!!c(Me)?.mobileWallet,"checkIsMobileWallet"),ke=!!L&&[An.WaitingForNetworkChange,An.NetworkChangeFailed].includes(L),et=!!Y?.walletType&&fe(Y.walletType),Q=!!Y&&!!ee&&a(Y.walletType,ee.network,ee),W=!!ee&&ke&&(et||Q),V=i(()=>{W&&(J(),s(Y.walletType,[{namespace:ee.namespace,network:ee.network}]).then(()=>{G()}).catch(Me=>{M(Me)}))},"handleSwitchNetwork"),K=i(()=>{D("switchNetwork"),V()},"handleSwitchNetworkClick"),j=Vd(e,B,c),X=mS({swap:e,switchNetworkIsAvailable:W,handleSwitchNetworkClick:K,showNetworkModal:L,setNetworkModal:D,message:j,blockchains:l,swappers:p}),ce=X.length,[Qe,tt]=[e.steps[0],e.steps[ce-1]],Oe=tt.outputAmount||tt.expectedOutputAmountHumanReadable,To=e.steps.reduce((Me,Ut)=>Me+parseFloat(Ut.feeInUsd||""),0),Va=e.steps.find(Me=>Me.diagnosisUrl)?.diagnosisUrl,Ka=_(parseFloat(Oe||"0")*(tt.toUsdPrice||0),4,4),xp=_(parseFloat(e.inputAmount)*(Qe.fromUsdPrice||0),4,4),Ep=Oe?new wS(Oe).multipliedBy(tt.toUsdPrice||0).toString():"",YS=new wS(e.inputAmount).multipliedBy(Qe.fromUsdPrice||0).toString(),ja=Gt(xp,Ka),Xa=j.detailedMessage.content||j.shortMessage,ZS=e.status==="success"?Ft.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:_(Oe,6,6),token:X[ce-1].to.token.displayName,conciseAddress:ro(e.wallets[X[ce-1].to.chain.displayName]?.address||""),chain:X[ce-1].to.chain.displayName}}):Ce.createElement(nS,null,Ce.createElement(dp,{variant:"body",size:"medium",color:"neutral700",align:"center"},Xa?"":Ft.t("Transaction was not sent."),te?`${Ft.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:te.outputAmount,symbol:te.symbol,blockchain:te.blockchain}})}`:""),Xa&&Ce.createElement(_a,{align:"center",variant:"body",size:"medium",color:"neutral700"},Ce.createElement("b",null,"Reason:")," ",Xa));return mp(()=>{b.find(Ut=>Ut.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(W){if(D("switchNetwork"),L===An.WaitingForNetworkChange){J();return}if(L===An.NetworkChangeFailed){M();return}return}if(L===An.WaitingForConnectingWallet){D("connectWallet");return}if(L===An.NetworkChanged){D("switchNetwork"),G();return}S&&["connectWallet","switchNetwork"].includes(S)&&q()},[L]),mp(()=>{if(A.current=S,I.current=C,S==="switchNetwork"&&C?.type==="success"){let Me=setTimeout(()=>{A.current==="switchNetwork"&&I.current?.type==="success"&&q()},ON);return()=>clearTimeout(Me)}},[S,C]),Ce.createElement(ie,{header:{title:Ft.t("Swap Details"),onCancel:e.status==="running"?()=>D("cancel"):void 0,suffix:e.status!=="running"&&Ce.createElement(lo,null,Ce.createElement(TS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>D("delete")},Ce.createElement(dp,{size:"medium",variant:"label",color:"error"},Ft.t("Delete"))))},footer:le&&!w&&Ce.createElement(TS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Me=wi(e,l,u);d(Me),setTimeout(()=>{g("../../")},0)}},Ft.t("Try again"))},Ce.createElement(jy,{compact:!0,ref:h},Ce.createElement(yS,{requestId:o}),Ce.createElement(kS,{date:be,isFinished:!!e.finishTime}),Ce.createElement("div",{className:eS()},Ce.createElement(_N,{fee:_(String(To),2,2),time:Ln(Yr(e.steps)),steps:ce}),Ce.createElement(lr,{from:{price:{value:_(e.inputAmount,6,6),usdValue:xp,realUsdValue:YS,realValue:e.inputAmount},token:{displayName:X[0].from.token.displayName,image:X[0].from.token.image},chain:{image:X[0].from.chain.image,displayName:X[0].from.chain.displayName}},to:{price:{value:_(Oe,6,6),usdValue:Ka,realUsdValue:Ep,realValue:Oe||""},token:{displayName:X[ce-1].to.token.displayName,image:X[ce-1].to.token.image},chain:{image:X[ce-1].to.chain.image,displayName:X[ce-1].to.chain.displayName}},percentageChange:_(ja,2,2),warningLevel:Vt(ja??0)})),Ce.createElement("div",{className:tS()},Ce.createElement(dp,{variant:"title",size:"small"},Ft.t("Swaps steps"))),Ce.createElement(PN,{size:8}),Ce.createElement(Zy,null,X.map((Me,Ut)=>{let Ip=Ut,Nn=fS(e.steps[Ut]),JS=Nn==="error"||Nn==="in-progress"||Nn==="warning"||Nn==="completed"&&Ut===X.length-1;return Ce.createElement(DN,{className:"widget-swap-details-step-item-container",key:Ip,step:Me,type:"swap-progress",ref:h,state:Nn,hasSeparator:Ut!==0,tabIndex:Ip,isFocused:JS,tooltipContainer:N()})}))),Ce.createElement(ip,{isOpen:f,state:S,switchNetworkModalState:C,onClose:q,onCancel:r,onDelete:n,message:j.detailedMessage.content,swap:e,handleSwitchNetwork:K}),Ce.createElement(sp,{open:!!w,diagnosisUrl:Va,onClose:()=>x(null),status:e.status==="success"?"success":"failed",priceValue:_(Oe,6,6),usdValue:Ka,realUsdValue:Ep,realValue:Oe||"",percentageChange:_(ja,2,2),token:{displayName:X[ce-1].to.token.displayName,image:X[ce-1].to.token.image},chain:{image:X[ce-1].to.chain.image},description:ZS}))}i(gp,"SwapDetails");import{i18n as Oa}from"@lingui/core";import{Divider as xS,NotFound as HN,Skeleton as Or,Typography as Ua}from"@rango-dev/ui";import Ie from"react";import{i18n as UN}from"@lingui/core";import{Divider as zN,Skeleton as qN,Typography as QN}from"@rango-dev/ui";import Ee from"react";import{css as Bt,styled as hp}from"@rango-dev/ui";var vS=hp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Fr=hp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Fa=hp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),z7=Bt({display:"flex",justifyContent:"space-between",alignItems:"center"}),q7=Bt({display:"flex",justifyContent:"space-between",alignItems:"center"}),Q7=Bt({paddingTop:"$15",display:"flex"}),H7=Bt({padding:"$15 $0"}),G7=Bt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),V7=Bt({paddingBottom:"$10"}),K7=Bt({display:"flex",justifyContent:"start",alignItems:"center"}),j7=Bt({paddingTop:"$5",display:"flex",alignItems:"center"}),X7=Bt({display:"flex",alignItems:"center"}),Y7=Bt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),bS=Bt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function yp(){return Ee.createElement(vS,null,Ee.createElement(pr,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(QN,{variant:"title",size:"small"},UN.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Fr,null,Ee.createElement(_t,{separator:!1}),Ee.createElement("div",{className:bS()},Ee.createElement(zN,{direction:"horizontal",size:20}),Ee.createElement(qN,{height:22,variant:"rectangular"}))),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement(_t,{separator:!1})),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement(_t,{separator:!1})),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement(_t,{separator:!1}))))}i(yp,"LoadingSwapDetails");function ES(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(ie,{header:{title:Oa.t("Swap Details"),suffix:Ie.createElement(lo,null)}},o&&Ie.createElement(Xy,null,Ie.createElement("div",{className:Go()},Ie.createElement(Ua,{variant:"label",size:"large",color:"neutral700"},`${Oa.t("Request ID")}`),Ie.createElement("div",{className:Pa()},Ie.createElement(Ua,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"})),Ie.createElement(xS,{direction:"horizontal",size:4}),Ie.createElement(Or,{width:16,height:16,variant:"rectangular"}),Ie.createElement(xS,{direction:"horizontal",size:4}),Ie.createElement(Or,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:Go()},Ie.createElement(Ua,{className:Ry(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"})),Ie.createElement(Ua,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"}))),Ie.createElement(yp,null)),!o&&Ie.createElement(Jy,null,Ie.createElement(HN,{title:Oa.t("Not found"),description:Oa.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(ES,"SwapDetailsPlaceholder");function IS(){let{manager:t,state:e}=KN(),o=!e.loadedFromPersistor,n=Tt(t),{requestId:r}=XN(),a=Ve(),{fetchStatus:s}=k();if(!r)return Sp.createElement(jN,{containerStyles:{margin:"20px"},type:"error",title:GN.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:g})=>g.requestId===r):void 0,p=i(()=>{if(l?.id){let g=t?.get(l.id);g&&VN(g)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(g){console.log(g)}},"onDelete"),d=l?.swap;return!d||c?Sp.createElement(ES,{requestId:r,showSkeleton:c}):Sp.createElement(gp,{swap:d,requestId:r,onCancel:p,onDelete:u})}i(IS,"SwapDetailsPage");import{i18n as AS}from"@lingui/core";import{Divider as YN,getCategoriesCount as ZN,SelectableCategoryList as JN,styled as BS,Typography as RN,Wallet as e0,WalletState as t0}from"@rango-dev/ui";import{useWallets as o0}from"@rango-dev/wallets-react";import Ot,{useState as NS}from"react";var n0=BS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),r0=BS(ae,{textAlign:"center"});function WS(){let{fetchStatus:t}=k(),[e,o]=NS("ALL"),n=k().blockchains(),{config:r}=k(),{state:a}=o0(),[s,c]=NS(),l=oe.use.isActiveTab(),{list:p}=vt(),u=Cu(p,n),g=ZN(u)!==1,h=ku(p,e),f=i(m=>{eu(p,r.multiWallets)||c(m)},"handleWalletItemClick");return Ot.createElement(ie,{header:{title:AS.t("Connect Wallets")}},Ot.createElement(r0,null,g&&Ot.createElement(Ot.Fragment,null,Ot.createElement(JN,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),Ot.createElement(YN,{size:24})),Ot.createElement(RN,{variant:"title",size:"xmedium",align:"center"},AS.t("Choose a wallet to connect.")),Ot.createElement(n0,null,h.map((m,S)=>{let C=a(m.type).namespaces,T=`wallet-${S}-${m.type}`,w=is(m,C);return Ot.createElement(e0,{key:T,...m,state:w?t0.PARTIALLY_CONNECTED:m.state,container:N(),onClick:()=>f(m),isLoading:t==="loading",disabled:!l})}),Ot.createElement(Kn,{id:"widget-state-full-connect-modal",wallet:s,onClose:()=>{c(void 0)}}))))}i(WS,"WalletsPage");function LS(){return Jd(),Vs(),i0([{path:F.home,element:qe.createElement(Xh,null)},{path:F.routes,element:qe.createElement(ey,null)},{path:F.fromSwap,children:[{index:!0,element:qe.createElement(Ea,{type:"source"})},{path:F.blockchains,element:qe.createElement(wa,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:qe.createElement(Ea,{type:"destination"})},{path:F.blockchains,element:qe.createElement(wa,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:qe.createElement(Ay,null)},{path:F.languages,element:qe.createElement(Zh,null)},{path:F.exchanges,element:qe.createElement(Qc,{sourceType:"Exchanges"})},{path:F.bridges,element:qe.createElement(Qc,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:qe.createElement(Zg,null)},{path:F.addCustomTokens,children:[{index:!0,element:qe.createElement(Vm,null)},{path:F.blockchains,element:qe.createElement(wa,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:qe.createElement(yh,null)},{path:F.swapDetails,element:qe.createElement(IS,null)}]},{path:F.wallets,element:qe.createElement(WS,null)},{path:F.confirmSwap,element:qe.createElement($g,null)}])}i(LS,"AppRoutes");import{useQueueManager as f0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as g0}from"rango-sdk";import{useContext as h0,useEffect as OS,useState as US}from"react";import{globalCss as a0}from"@rango-dev/ui";var MS=i(()=>a0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function PS(){let{setWatermark:t,setShowProfileBanner:e}=oe();return{fetchApiConfig:i(async()=>{let n=await fetch(`${qt("BASE_URL")}/meta/dapp/config?apiKey=${qt("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(PS,"useFetchApiConfig");import{useWallets as s0}from"@rango-dev/wallets-react";import{useEffect as l0,useRef as c0}from"react";function _S(){let{connect:t,state:e}=s0(),o=c0({}),{fetchStatus:n}=k(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);l0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(_S,"useForceAutoConnect");import{isApprovalTX as p0,RouteEventType as DS,StepEventType as $S,StepExecutionEventStatus as u0,WidgetEvents as za}from"@rango-dev/queue-manager-rango-preset";import{useEffect as FS}from"react";function Cp(){let t=Ne.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=k();FS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===$S.TX_EXECUTION&&s.status===u0.TX_SENT&&!p0(c)||s.type===$S.SUCCEEDED){let u=[],d=l.wallets[c?.fromBlockchain];if(d){let g=e.find(h=>h.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&h.walletType===d.walletType&&h.chain===c?.fromBlockchain);g&&u.push(g)}if(c?.fromBlockchain!==c?.toBlockchain){let g=l.wallets[c?.toBlockchain];if(g){let h=e.find(f=>f.address?.toLocaleLowerCase()===g.address?.toLocaleLowerCase()&&f.walletType===g.walletType&&f.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let g=n(),f=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(m=>g.some(S=>S.blockchain===m.blockchain&&S.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&S.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:f,shouldFetchCustomTokens:f.length>0})}}t(s,l)},"handleStepEvent");return Te.on(za.StepEvent,r),()=>Te.off(za.StepEvent,r)},[Te,e]),FS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===DS.FAILED||s.type===DS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return Te.on(za.RouteEvent,r),()=>Te.off(za.RouteEvent,r)},[Te])}i(Cp,"useSubscribeToWidgetEvents");import{useManager as d0}from"@rango-dev/queue-manager-react";import{useEffect as m0}from"react";function kp(){let{isSynced:t,syncNotifications:e}=Ne(),{manager:o,state:n}=d0();m0(()=>{Ne.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Tt(o))},[Ne.persist.hasHydrated(),n.loadedFromPersistor,t])}i(kp,"useSyncNotifications");function Tp(){_S(),MS(),Cp(),kp();let t=k().blockchains(),{canSwitchNetworkTo:e}=Hi(),[o,n]=US(null),[r,a]=US(),s=h0(Ci),c=t.filter(g0),{fetchApiConfig:l}=PS();OS(()=>()=>Zd(),[]),f0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),OS(()=>(Ao.init(),Ne.persist.hasHydrated()||Ne.persist.rehydrate(),s.onConnectWallet(p=>{n(u=>{if(!u||u.walletType!==p.walletType)return p;let d={...u};return p.network&&(d.network=p.network),p.accounts&&(d.accounts=p.accounts),d})}),s.onDisconnectWallet(p=>{a(p),n(u=>p===u?.walletType?null:u)}),l().catch(console.log),Ao.destroy),[])}i(Tp,"useBootstrap");import{styled as y0}from"@rango-dev/ui";var zS=y0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function qa(){Tp();let{config:t}=k(),{activeTheme:e}=so(t?.theme||{}),{activeLanguage:o}=ho();return wp.createElement(S0,{language:o},wp.createElement(zS,{id:"swap-container",className:e()},wp.createElement(LS,null)))}i(qa,"Main");import{setSolanaSignerConfig as F0}from"@rango-dev/signer-solana";import bp,{useEffect as KS,useMemo as O0}from"react";import{useState as C0}from"react";var k0=i(()=>{let[t,e]=C0(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Rp(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),qS=k0;import{checkWaitingForNetworkChange as T0,makeQueueDefinition as w0}from"@rango-dev/queue-manager-rango-preset";import{Provider as v0}from"@rango-dev/queue-manager-react";import{useWallets as b0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as x0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as E0}from"rango-types";import I0,{useMemo as A0}from"react";function N0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=b0(),c=A0(()=>w0({API_KEY:t.apiKey||qt("API_KEY"),BASE_URL:qt("BASE_URL"),emitter:{emit:Te.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=k(),u=l(),d={blockchains:p.map(w=>({accounts:[w],name:w.chain}))},g=i(async(w,x)=>a(w,x.network,x)?await r(w,[x]):void 0,"switchNetwork"),h=i(w=>!!s(w).mobileWallet,"isMobileWallet"),f=u.filter(w=>w.enabled).reduce((w,x)=>(w[x.name]=x,w),{}),m=u.filter(E0),S=i(w=>{let{supportedChains:x}=s(w);return _n(x)},"getSupportedChainNames"),y=e(),C={meta:{blockchains:f,evmBasedChains:m,evmNetworkChainInfo:x0(m),getSupportedChainNames:S},getSigners:o,wallets:d,providers:y,switchNetwork:g,canSwitchNetworkTo:a,state:n,isMobileWallet:h},T=oe.use.isActiveTab();return I0.createElement(v0,{queuesDefs:[c],context:C,onPersistedDataLoaded:w=>{T0(w)},isPaused:!T},t.children)}i(N0,"QueueManager");var QS=N0;import{useManager as P0}from"@rango-dev/queue-manager-react";import _0,{createContext as D0,useContext as $0}from"react";function HS(){let{findToken:t}=k(),e=k().blockchains(),o=k().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=O();return i(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:g,toToken:h,requestAmount:f}=p,m={blockchains:e,tokens:o};if(u!==void 0){let S=e.find(y=>y.name===u)??null;n(S)}if(d!==void 0){let S=d?t(d)??null:null;r({meta:m,token:S})}if(g!==void 0){let S=e.find(y=>y.name===g)??null;a(S)}if(h!==void 0){let S=h?t(h)??null:null;s({meta:m,token:S})}f!==void 0&&c(f)},"updateQuoteInputs")}i(HS,"useUpdateQuoteInputs");import{cancelSwap as B0,getCurrentNamespaceOfOrNull as W0,getCurrentStep as L0,getRelatedWalletOrNull as M0}from"@rango-dev/queue-manager-rango-preset";var Qa=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Tt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=wi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&B0(o)}getCurrentStepInfo(e){let o=L0(e);return{step:o,wallet:o?M0(e,o):null,network:o?W0(e,o)?.network:null}}};var GS=D0(void 0);function vp(t){let{manager:e}=P0(),o=oe.use.isActiveTab(),n=O.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()),d=k().blockchains(),g=k().tokens(),h=k().swappers(),f=k().fetchStatus,m=ho().resetLanguage,S=Ne().getNotifications(),y=Ne().clearNotifications,C=HS(),{fromBlockchain:T,toBlockchain:w,fromToken:x,toToken:A,inputAmount:I}=O(),E={isActiveTab:o,setCurrentTabAsActive:Ao.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async v=>c(v)},meta:{blockchains:d,tokens:g,swappers:h,loadingStatus:f,findToken:r},resetLanguage:m,notifications:{list:S,clearAll:y},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:w?.name??null,toToken:A?{symbol:A.symbol,blockchain:A.blockchain,address:A.address}:null,requestAmount:I},updateQuoteInputs:C}};return _0.createElement(GS.Provider,{value:E},t.children)}i(vp,"WidgetInfo");function VS(){let t=$0(GS);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(VS,"useWidget");function Ha(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=qS();return KS(()=>{n&&r(n)},[n]),O0(()=>{Tu({API_KEY:o?.apiKey||Gr,BASE_URL:o?.apiUrl||Qp})},[o.apiKey,o.apiUrl]),KS(()=>{t.config?.signers?.customSolanaRPC&&F0("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),bp.createElement(ki,{config:o,onUpdateState:e},bp.createElement(QS,{apiKey:o.apiKey},bp.createElement(vp,null,t.children)))}i(Ha,"WidgetProvider");function jS(t){let e=t.config?.externalWallets;return Ga.createElement(Cd,null,e?Ga.createElement(qa,null):Ga.createElement(Ha,{config:t.config??Qr},Ga.createElement(qa,null)))}i(jS,"Widget");function XS(){let{on:t,off:e}=Te;return{on:t,off:e}}i(XS,"useWidgetEvents");var nee={DerivationPath:Hn,Namespaces:qn,Detached:Qn,isOnDerivationPath:Vn,isOnNamespace:Gn,isOnDetached:wo};export{NR as EventSeverity,Jo as MainEvents,OR as Networks,qR as PendingSwapNetworkStatus,ps as QuoteEventTypes,BR as RouteEventType,Ra as SUPPORTED_FONTS,nee as StatefulConnect,WR as StepEventType,LR as StepExecutionBlockedEventStatus,MR as StepExecutionEventStatus,ot as UI_ID,ds as UiEventTypes,us as WalletEventTypes,$R as WalletEvents,UR as WalletTypes,jS as Widget,Jo as WidgetEvents,Ha as WidgetProvider,ki as WidgetWallets,sl as customizedThemeTokens,_R as readAccountAddress,Vo as useStatefulConnect,vt as useWalletList,Hi as useWallets,VS as useWidget,XS as useWidgetEvents,tk as widgetEventEmitter};
1
+ var RS=Object.defineProperty;var i=(t,e)=>RS(t,"name",{value:e,configurable:!0});import{EventSeverity as NR,RouteEventType as BR,StepEventType as WR,StepExecutionBlockedEventStatus as LR,StepExecutionEventStatus as MR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as _R}from"@rango-dev/wallets-core/legacy";import{useWallets as Hi,Events as $R}from"@rango-dev/wallets-react";import{Networks as OR,WalletTypes as UR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as qR}from"rango-types";import{Divider as gT}from"@rango-dev/ui";import ao,{useEffect as hT,useRef as yT,useState as dd}from"react";import{WalletState as eC}from"@rango-dev/ui";import{useWallets as tC}from"@rango-dev/wallets-react";import{useReducer as oC}from"react";function Ap(t){return!!t.derivationPath}i(Ap,"isStateOnDerivationPathStep");function Np(t){return!!t.namespace}i(Np,"isStateOnNamespace");var Ur={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Bp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return Ur;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Ur;default:throw new Error("Action hasn't been defined.")}}i(Bp,"reducer");function Vo(){let{state:t,disconnect:e,connect:o}=tC(),[n,r]=oC(Bp,Ur),a=i(async(m,f,h)=>{r({type:"reset"});try{let g=f?.map(d=>({...d,network:void 0}));return await o(m,g),{status:"connected"}}catch(g){let d=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(d,{cause:g})}},"runConnect"),s=i(async(m,f)=>{if(m.state===eC.DISCONNECTED){let g=!!m.isHub,d=g?m.properties?.find(y=>y.name==="namespaces")?.value:m.needsNamespace,S=g?m.properties?.find(y=>y.name==="derivationPath")?.value:m.needsDerivationPath;if(!d?.data?.length)return await a(m.type,void 0,f);if(d?.data.length&&d.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:m,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(d?.data.length===1&&d.data[0]){if(S){let y=d.data[0];return r({type:"needsDerivationPath",payload:{providerType:m.type,providerImage:m.image,namespace:y.value}}),{status:"derivation-path"}}return await a(m.type,d?.data?.map(y=>({namespace:y.value})),f)}}if(m.isHub){let g=m.properties?.find(d=>d.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:m,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(m),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(m,f)=>{let h=!!m.isHub,g=h?m.properties?.find(T=>T.name==="namespaces")?.value:m.needsNamespace,d=h?m.properties?.find(T=>T.name==="derivationPath")?.value:m.needsDerivationPath,S=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(S&&d)return r({type:"needsDerivationPath",payload:{providerType:m.type,providerImage:m.image,namespace:y}}),{status:"derivation-path"};if(!Np(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=f.map(T=>({namespace:T}));return r({type:"detached",payload:{targetWallet:m,selectedNamespaces:C?.map(T=>T.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async m=>{if(!m)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Ap(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let f=n.derivationPath.providerType,g=[{namespace:n.derivationPath.namespace,derivationPath:m}];return await a(f,g)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async m=>{let f=t(m.type);return f.connected||f.connecting?(await e(m.type),wo(p)?(r({type:"needsNamespace",payload:{targetWallet:m}}),{status:"namespace"}):{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:p,resetState:m=>{r(m==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Vo,"useStatefulConnect");import{WalletState as Cs}from"@rango-dev/ui";import{useWallets as dk}from"@rango-dev/wallets-react";import{detectMobileScreens as mk,KEPLR_COMPATIBLE_WALLETS as fk,WalletTypes as On}from"@rango-dev/wallets-shared";import{useCallback as gk,useEffect as hk}from"react";import sk,{createContext as lk,useContext as ck,useEffect as pk,useRef as uk}from"react";import{create as ik}from"zustand";import{persist as ak}from"zustand/middleware";import{allProviders as nC}from"@rango-dev/provider-all";var Ya=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},Ko=new Ya;import{defineVersions as Lp,pickVersion as Mp,Provider as Za}from"@rango-dev/wallets-core";function Pp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=_p(a);return s instanceof Za?s.id===n:s.config.type===n});r?o.push(r):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else n instanceof Za?o.push(Lp().version("1.0.0",n).build()):o.push(Lp().version("0.0.0",n).build())}),o}return t}i(Pp,"matchAndGenerateProviders");function _p(t){try{return Mp(t,"1.0.0")[1]}catch{return Mp(t,"0.0.0")[1]}}i(_p,"pickProviderVersionWithFallbackToLegacy");function Dp(t){return t.map(o=>_p(o)).map(o=>o instanceof Za?o.id:o.config.type)}i(Dp,"configWalletsToWalletName");function zr(t,e){return e.find(o=>o.name===t)?.displayName}i(zr,"getBlockchainDisplayNameFor");function gt(t,e){return e.find(o=>o.name===t)?.shortName}i(gt,"getBlockchainShortNameFor");function $p(t,e){return e.find(o=>o.name===t)?.logo}i($p,"getBlockchainImage");function Bn(t,e){return e.find(o=>o.id===t)?.title}i(Bn,"getSwapperDisplayName");function vo(t,e){return e.find(o=>o.name===t)??null}i(vo,"findBlockchain");function Ja(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Ja,"isTokenNative");function ht(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(ht,"createTokenHash");function jo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(jo,"isValidTokenAddress");function Wn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=ht(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{let p=o.tokensMapByBlockchainName[l];!c.has(l)&&p&&a(p)})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded&&o.tokensMapByBlockchainName[c]?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=ht(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Wn,"matchTokensFromConfigWithMeta");function qr(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(qr,"getSupportedBlockchainsFromConfig");function Op(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Op,"makeProvidersOptionsFromConfig");var Qr={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/manifests/tonconnect-manifest.json"}},rC={clientUrl:void 0},iC={liquiditySources:void 0};function Fp(t){let e=Op(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return nC(o).map(a=>a())}i(Fp,"generateProviders");var Up=i((t,e,o)=>{let n=Fp({...Qr,...t});return{config:{...Qr,...t},iframe:rC,campaignMode:iC,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c}=o(),l=Wn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=Wn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});Ko.set("supportedSourceTokens",l),Ko.set("supportedDestinationTokens",p),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=Fp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Op(a);return Pp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as zp}from"rango-types";var qp=[zp.EVM,zp.SOLANA],Hr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as kC}from"rango-sdk";import{UI_ID as aC}from"@rango-dev/ui";var Gr="c6381a79-2817-4602-83bf-6a641a409e32",Qp="https://api.rango.exchange",Hp="https://explorer.rango.exchange",tt={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...aC};import{BlockchainCategories as mC,WalletState as lt}from"@rango-dev/ui";import{legacyReadAccountAddress as fC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as gC,getCosmosExperimentalChainInfo as hC,isEvmAddress as yC,KEPLR_COMPATIBLE_WALLETS as JB,Networks as uu}from"@rango-dev/wallets-shared";import Yo from"bignumber.js";import{isCosmosBlockchain as SC}from"rango-types";import sC from"bignumber.js";var le=new sC(0);import{WalletTypes as lC}from"@rango-dev/wallets-shared";var bo="~",Gp=[lC.LEAP];import{BlockchainCategories as es,WalletState as dC}from"@rango-dev/ui";import{TransactionType as Vr}from"rango-sdk";var Vp="Roboto",Ra=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];function Xo(t){return Array.from(new Set(t))}i(Xo,"removeDuplicateFrom");function Kr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Kr,"debounce");function st(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(st,"containsText");function Xp(t,e){return t.toLowerCase()===e.toLowerCase()}i(Xp,"exactText");function Yp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Yp,"startWithText");var N=i(()=>document.getElementById(tt.SWAP_BOX_ID),"getContainer"),xo=i(()=>document.getElementById(tt.EXPANDED_BOX_ID),"getExpanded");function Zp(t,e,o){let n=!!e&&Xp(e,t),r=!!o&&Xp(o,t);return n!==r?n?-1:1:0}i(Zp,"compareExactMatchText");function ts(t,e,o){let n=!!e&&st(e,t),r=!!o&&st(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ts,"compareContainsText");function os(t,e,o){let n=!!e&&Yp(e,t),r=!!o&&Yp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(os,"compareStartWithText");function Jp(t,e,o){if(!o)return 0;let n=Zp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Zp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=os(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ts(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=os(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ts(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=os(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ts(o,t.address,e.address);if(r!==0)return r}return 0}i(Jp,"compareWithSearchFor");var jr=i((t,e)=>{switch(e){case es.ALL:return!0;case es.UTXO:return t===Vr.TRANSFER;case es.OTHER:return t!==Vr.TRANSFER&&t!==Vr.COSMOS&&t!==Vr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Rp=i(t=>Ra.find(o=>o.value===t)?.url,"getFontUrlByName");function eu(t,e){let o=!!t.find(n=>n.state===dC.CONNECTED);return e===!1&&o}i(eu,"isSingleWalletActive");function tu(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(tu,"memoizedResult");import{BigNumber as cu}from"bignumber.js";function ou(t){return t.replace(/^0+(?=\d)/g,"")}i(ou,"removeLeadingZeros");function nu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(nu,"ensureLeadingZeroForDecimal");function ru(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(ru,"formatThousandsWithCommas");function iu(t){return t.replace(/\s+/g,"-")}i(iu,"replaceSpacesWithDash");function au(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(au,"stripTrailingZeros");function Xr(t){return/^0+(?:\.0+)?$/.test(t)}i(Xr,"isZeroValue");function su(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(su,"isValidCurrencyFormat");function lu(t){return/\d+$/.test(t)}i(lu,"isColorKeyOverridden");var Ln=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),D=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new cu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new cu(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Yr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Mt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Mn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function pu(t){return Xr(t)?"0":au(t)}i(pu,"sanitizeInputAmount");function Pn(t){return t.connected?lt.CONNECTED:t.connecting?lt.CONNECTING:t.installed?lt.DISCONNECTED:lt.NOT_INSTALLED}i(Pn,"mapStatusToWalletState");function du(t,e,o,n){return o.filter(r=>!Gp.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:m,properties:f,isHub:h}=e(r),g=Xo(u.map(S=>S.type)),d=Pn(t(r));return{title:a,image:s,link:gC(c),state:d,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:m,properties:f,isHub:h}})}i(du,"mapWalletTypesToWalletInfo");function _n(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(_n,"walletAndSupportedChainsNames");function rs(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(f=>f.chain===l)){let f={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(f)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=fC(l),m=c.length>0,f=c.includes(u),h=u===uu.Unknown;if(m&&!f&&!h)return;let d=u===uu.Unknown&&yC(p);if(h&&!d)return;o.includes(u)||d?r?s(u,p.toLowerCase(),r):c.filter(C=>o.includes(C)).forEach(C=>{s(C,p.toLowerCase())}):s(u,p)}),a}i(rs,"prepareAccountsForWalletStore");function Eo(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((p,u)=>{let m=p.from.blockchain,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(Eo,"getQuoteChains");function Dn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Dn,"isAccountAndWalletMatched");var mu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ns(n.usdValue,n.decimals):le.toFixed();return o.plus(r)},new Yo(le));return CC(e.toString())},"calculateWalletUsdValue");function CC(t){let e=t.toString().split(".");return e[0]&&(e[0]=ru(e[0])),e.join(".")}i(CC,"numberWithThousandSeparator");var Rr=i((t,e)=>{let o=hC(Object.entries(t).map(([,n])=>n).filter(SC));return o&&!!o[e]?.experimental},"isExperimentalChain");function ns(t,e){return new Yo(t).shiftedBy(-e).toFixed()}i(ns,"representAmountInNumber");function ei(t){if(!t)return null;let e=ns(t.amount,t.decimals),o=t.usdValue?ns(t.usdValue,t.decimals):null,n=D(e,8,8),r=o?D(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(ei,"formatBalance");function fu(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Yo(t.usdValue).shiftedBy(-t.decimals):le,n=e&&e.usdValue?new Yo(e.usdValue).shiftedBy(-e.decimals):le;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Yo(t.amount).shiftedBy(-t.decimals):le,n=e&&e.amount?new Yo(e.amount).shiftedBy(-e.decimals):le;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(fu,"compareTokenBalance");function qt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(qt,"areTokensEqual");function gu(t,e){return t.map(o=>({isPartiallyConnected:is(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===lt.CONNECTED&&!n.isPartiallyConnected)-+(o.state===lt.CONNECTED&&!o.isPartiallyConnected)||+(n.state===lt.CONNECTED)-+(o.state===lt.CONNECTED)||+(n.state===lt.DISCONNECTED||n.state===lt.CONNECTING)-+(o.state===lt.DISCONNECTED||o.state===lt.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(gu,"sortWalletsBasedOnConnectionState");function io(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(io,"getConciseAddress");function hu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(hu,"getAddress");var yu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Su(t){return t.map(e=>e.state).join("-")}i(Su,"hashWalletsState");function Cu(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(Cu,"filterBlockchainsByWalletTypes");function ku(t,e){return e===mC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(jr(n,e))return!0;return!1})}i(ku,"filterWalletsByCategory");function is(t,e){return!t.isHub||!t.needsNamespace||t.state!==lt.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(is,"checkIsWalletPartiallyConnected");var as={API_KEY:Gr};function Qt(t){return as[t]||""}i(Qt,"getConfig");function Tu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),as=e,as}i(Tu,"initConfig");var wu=20,vu=25,ss="theme-widget",ls=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>qt(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>qt(a,t));let r=n.isExcluded;return!r&&!o||r&&o}}}return o},"isTokenExcludedInConfig"),cs=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),bu=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var ti,ct=i(()=>ti||(ti=new kC(Qt("API_KEY"),Qt("BASE_URL")),ti),"httpService");import{i18n as Eu}from"@lingui/core";var oi=[.5,1,3],ni=1,Zo=5,$n=30,ri=0;var Xe=(a=>(a[a.NO_RESULT=0]="NO_RESULT",a[a.REQUEST_FAILED=1]="REQUEST_FAILED",a[a.REQUEST_CANCELED=2]="REQUEST_CANCELED",a[a.BRIDGE_LIMIT=3]="BRIDGE_LIMIT",a[a.INSUFFICIENT_SLIPPAGE=4]="INSUFFICIENT_SLIPPAGE",a))(Xe||{});import{WidgetEvents as xu}from"@rango-dev/queue-manager-rango-preset";var ps=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ps||{}),us=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(us||{}),ds=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(ds||{}),Jo=(a=>(a[a.RouteEvent=xu.RouteEvent]="RouteEvent",a[a.StepEvent=xu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Jo||{});function ii(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Xo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(c=>c.swapperGroup===a);if(s){let c=!0;o&&(c=o.some(l=>l===s.swapperGroup)),c&&s.types.map(l=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:l,selected:!e.includes(s.swapperGroup)})})}}),n}i(ii,"getUniqueSwappersGroups");function Iu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Iu,"sortLiquiditySourcesByGroupTitle");function ot(t,e){return e?.[t]==="hidden"}i(ot,"isFeatureHidden");function Ro(t,e){return e?.[t]==="enabled"}i(Ro,"isRoutingEnabled");var Au=i((t,e,o)=>ot("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function en(t){return t==ri?{type:"error",message:Eu.t("Slippage must be greater than or equal to 0.01")}:t>Zo&&t<=$n?{type:"warning",message:Eu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(en,"getSlippageValidation");var Nu=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let l=qr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>qp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",m=Ko.get(u);m?.length||(m=Wn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Ko.set(u,m)),m=Au(m,s,a.features);let f=e().blockchains({type:o.type});return m.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(d=>d.name===g.blockchain)?!1:o.searchFor?!!(st(g.symbol,o.searchFor)||st(g.address||"",o.searchFor)||st(g.name||"",o.searchFor)):!0).sort((g,d)=>{let S=e().isTokenPinned(g,o.type),y=e().isTokenPinned(d,o.type);if(S!==y)return S?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(g),I=o.getBalanceFor(d),E=fu(A,I);if(E!==0)return E}let C=l.get(g.blockchain),T=l.get(d.blockchain),w=Ja(g,C),x=Ja(d,T);if(w!==x)return w?-1:1;if(g.isPopular!==d.isPopular)return g.isPopular?-1:1;if(o.searchFor){let A=Jp(g,d,o.searchFor);if(A)return A}return g.isSecondaryCoin!==d.isSecondaryCoin?g.isSecondaryCoin?1:-1:C&&T?C.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=ht(o),s=n.get(a);return s||(s=r.find(c=>ht(c)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>qt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(Iu)},fetch:async()=>{try{let{routing:o}=e().config,n=Ro("enableCentralizedSwappers",o),r=await ct().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],p=r.popularTokens,u=r.swappers.filter(h=>h.enabled),m=new Set;r.tokens.forEach(h=>{m.add(h.blockchain),l.push(h)}),r.blockchains.sort((h,g)=>h.sort-g.sort).forEach(h=>{h.enabled&&m.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let g=ht(h);c[h.blockchain]||(c[h.blockchain]=[]),s.set(g,h),c[h.blockchain]?.push(g)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as TC,Catalonia as wC,Chinese as Bu,Denmark as vC,English as bC,Finland as xC,French as EC,German as IC,Greece as AC,Hungary as NC,India as BC,Indonesian as WC,Italian as LC,Japanese as MC,Korea as PC,Lithuania as _C,Malay as DC,Netherlands as $C,Pakistan as FC,Philippines as OC,Poland as UC,Portuguese as zC,Russian as qC,SaudiArabia as QC,Serbia as HC,Slovakia as GC,SouthAfrica as VC,Spanish as KC,Swahili as jC,Swedish as XC,Thai as YC,Turkish as ZC,Ukrainian as JC,Vietnamese as RC}from"@rango-dev/ui";var Wu=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:VC},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:QC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:TC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:wC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Bu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Bu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:vC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:$C},{title:"English",label:"English",local:"en",SVGFlag:bC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:OC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:xC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:EC},{title:"German",label:"Deutsch",local:"de",SVGFlag:IC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:AC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:BC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:NC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:WC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:LC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:MC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:PC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:_C},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:DC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:UC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:zC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:qC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:HC},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:GC},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:KC},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:jC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:XC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:YC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:ZC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:JC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:FC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:RC}],tn="en";var Lu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:ni,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],quoteTokensRate:"default",changeQuoteTokensRate:()=>t(o=>({quoteTokensRate:o.quoteTokensRate==="default"?"reversed":"default"})),addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,c)=>{let l=s===o,p=c<=9;return l&&p}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=Xo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=ot("theme",n),s=ot("language",n),c=ot("liquiditySource",n),l=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||tn},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||tn}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=qr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import Ss from"bignumber.js";import ek from"mitt";var Ce=ek(),tk={on:Ce.on,off:Ce.off};var Mu=i(t=>(e,o,n)=>t(i((...a)=>{let[s,...c]=a;e(l=>({...typeof s=="function"?s(l):s,lastUpdatedAt:+new Date}),...c)},"modifedSet"),o,n),"keepLastUpdated");import Pu from"bignumber.js";function Ht(t){return`${t.blockchain}${bo}${t.address}${bo}${t.symbol}`}i(Ht,"createAssetKey");function _u(t,e){return`${Ht(e)}${bo}${t}`}i(_u,"createBalanceKey");function Fn(t){let[e,o,n]=t.split(bo);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Fn,"extractAssetFromBalanceKey");function fs(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Ht(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Pu(r??le).multipliedBy(o[s].amount).toString():""})})}),o}i(fs,"computeNextBalancesWithNewPrices");function gs(t,e){let o={};return t.balances?.forEach(n=>{let r=_u(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Pu(c??le).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(gs,"createBalanceStateForNewAccount");function hs(t,e){for(let o in e){let n=Fn(o);if(n){let r=Ht(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(hs,"updateAggregatedBalanceStateForNewAccount");function ok(t,e){let o=Fn(e);if(!o)return t;let n=Ht(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(ok,"removeBalanceFromAggregatedBalance");function ys(t,e,o){let n=t.connectedWallets.filter(l=>l.walletType===e);t.connectedWallets.forEach(l=>{l.walletType!==e&&(n=n.filter(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=Fn(l);if(!p)return;!!n.find(m=>_u(m.address,{address:p.address,blockchain:m.chain,symbol:p.symbol})===l)?a=ok(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(ys,"computeNextStateAfterWalletBalanceRemoval");function nk(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(nk,"matchWalletDetailsWithConnectedWallet");var rk=tu(),Du=Mu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Dn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Dn(s,a))?{...a,loading:!1,error:!1,explorerUrl:nk(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Dn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Dn(c,l)));if(s.length>0){let c=s.map(l=>{let p=!a.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:p,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!c.some(m=>m.walletType===u.walletType&&m.chain===u.chain)),...c]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=r.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address]?.push(...a[p.chain]||[]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await ct().getMultipleTokenBalance({assets:p.map(({symbol:m,address:f,blockchain:h})=>({symbol:m,address:f,blockchain:h})),walletAddress:l});if(u){let m=e()._balances,f=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},d={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};fs(d,g,m);let S=gs(g,e);f=hs(f,S),m={...m,...S}}),t(h=>({_balances:{...h._balances,...m},_aggregatedBalances:f}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{let a=o[0];a&&(Ce.emit("walletEvent",{type:"connect",payload:{walletType:a.walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o))},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=ys(r,o,n);t({_balances:a,_aggregatedBalances:s})},disconnectNamespaces:(o,n)=>{if(e().connectedWallets.find(a=>a.walletType===o)){e().removeBalancesForWallet(o,{namespaces:n}),e()._changeSelectedWalletIfNeededOnRemove(o,{namespaces:n});let a=e().connectedWallets.filter(s=>s.namespace?!(s.walletType===o&&n.includes(s.namespace)):!0);t({connectedWallets:a})}},disconnectWallet:o=>{let n=e().connectedWallets.find(r=>r.walletType===o);if(Ce.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0||!o[0])return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await ct().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(m=>{if(m.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};fs(f,m,l);let{_balances:h,_aggregatedBalances:g}=ys(f,r,{chains:[m.blockChain]});if(p=g,l=h,!e().connectedWallets.find(S=>S.walletType===r&&S.address===m.address&&S.chain===m.blockChain))return;let d=gs(m,e);p=hs(p,d),l={...l,...d}}),t(m=>({_balances:{...m._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let m=c.filter(f=>f.failed).map(f=>({chain:f.blockChain,walletType:r,address:f.address}));m.length>0&&await e().fetchMainTokensBalances(m,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=Ht(o),a=e()._aggregatedBalances[r]||[];if(a.length===0||!a[0])return null;let s=a[0];if(a.length===1&&n[s])return n[s];let c=n[a[0]];if(!c)return null;let l=c;return a.forEach(p=>{let u=n[p];if(!u)return;let m=new Ss(u.amount),f=new Ss(l.amount);m.isGreaterThan(f)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(bo);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>rk(()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,c)=>{let l=r[c],p=Fn(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),m=l?.amount?new Ss(l.amount).shiftedBy(-l.decimals):le;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:m.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function $u(t){return ik()(ak((...e)=>({...Du(...e),...Nu(...e),...Lu(...e),...Up(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i($u,"createAppStore");var Fu=lk(null);function k(){let t=ck(Fu);if(pk(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(k,"useAppStore");function Ou(t){let e=uk();return e.current||(e.current=$u(t.config)),sk.createElement(Fu.Provider,{value:e.current},t.children)}i(Ou,"AppStoreProvider");function vt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=k(),{state:r,getWalletInfo:a}=dk(),s=k().blockchains(),{handleDisconnect:c}=Vo(),l=Dp(n()),p=du(r,a,l,e);p=mk()?p.filter(d=>d.showOnMobile!==!1&&r(d.type).installed):p;let u=gu(p,r),m=i(d=>!o.find(S=>S.walletType===d&&S.chain===e),"isExperimentalChainNotAdded"),f=gk(()=>{let d=p?.filter(S=>S.state===Cs.CONNECTING)||[];for(let S of d)c(S)},[Su(p)]);hk(()=>()=>{f()},[]);let h=i(d=>{let S=d.find(C=>C.type===On.DEFAULT);return!S||S.state===Cs.NOT_INSTALLED?!1:d.filter(C=>C.state!=Cs.NOT_INSTALLED&&![On.DEFAULT,On.WALLET_CONNECT_2,On.LEDGER].includes(C.type)&&a(C.type).supportedChains.filter(T=>T.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),g=i((d,S,y)=>Rr(y,S)&&m(d)&&!fk.includes(d)||d==On.DEFAULT&&!h(p),"shouldExcludeWallet");return{list:u.filter(d=>!g(d.type,e??"",s)),terminateConnectingWallets:f}}i(vt,"useWalletList");import{Modal as kk}from"@rango-dev/ui";import Tk from"react";import{create as Ck}from"zustand";var Uu="rango-widget";var Un=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(Uu),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var Sk=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),on=Sk;var te=on(Ck()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),Ao=new Un({onInit:()=>te.setState({tabManagerInitiated:!0}),onClaim:()=>te.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>te.setState({isActiveTab:!1})});function J(t){let{watermark:e}=te();return Tk.createElement(kk,{hasWatermark:e==="FULL",...t},t.children)}i(J,"WatermarkedModal");import{i18n as an}from"@lingui/core";import{Alert as _k,Button as Dk,Divider as mi,Image as $k,MessageBox as Fk,RadioRoot as Ok}from"@rango-dev/ui";import ce,{useEffect as Uk,useMemo as zk,useState as qk}from"react";import{i18n as xk}from"@lingui/core";import{Typography as ju}from"@rango-dev/ui";import nn from"react";function ai(t,e){return t.find(o=>o.name===e)?.logo}i(ai,"getBlockchainLogo");import{darkTheme as wk,Image as vk,styled as Gt,Typography as bk}from"@rango-dev/ui";var si=Gt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${wk} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),li=Gt("div",{display:"flex",gap:"$8",alignItems:"center"}),qu=Gt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Qu=Gt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Hu=Gt("div",{display:"flex",gap:"$6",alignItems:"center"}),Gu=Gt("div",{paddingLeft:"48px"}),Vu=Gt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),Ku=Gt(bk,{maxWidth:"100px"}),ci=Gt(vk,{variants:{disabled:{true:{opacity:"0.5"}}}});function pi(t){let{namespace:e}=t,o=k().blockchains();return nn.createElement(si,{unsupported:!0},nn.createElement(li,null,nn.createElement(ci,{src:ai(o,e.id),size:40,disabled:!0}),nn.createElement(Qu,null,nn.createElement(ju,{variant:"label",size:"large"},e.label),nn.createElement(ju,{variant:"body",size:"xsmall"},xk.t("(Currently not supported)")))))}i(pi,"NamespaceUnsupportedItem");import{Checkbox as Lk,Radio as Mk}from"@rango-dev/ui";import vs from"react";import{i18n as ws}from"@lingui/core";import{ChevronDownIcon as Ik,ChevronUpIcon as Ak,Divider as Nk,Typography as zn}from"@rango-dev/ui";import Ae,{useEffect as Bk,useState as Wk}from"react";import{Image as Yu,Tooltip as Zu,Typography as Ek}from"@rango-dev/ui";import Pt from"react";import{styled as Xu}from"@rango-dev/ui";var ks=Xu("div",{display:"flex",alignItems:"center",padding:0,margin:0}),ui=Xu("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var Ts=3;function Ju(t){let{chains:e}=t;return Pt.createElement(ks,{id:"widget-supported-chains-container"},e.slice(0,Ts).map((o,n)=>Pt.createElement(Zu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Pt.createElement(ui,{firstItem:n===0},Pt.createElement(Yu,{src:o.logo,size:15})))),e.length>Ts&&Pt.createElement(Zu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Pt.createElement(ks,null,e.map((o,n)=>Pt.createElement(ui,{key:o.name,firstItem:n===0},Pt.createElement(Yu,{src:o.logo,size:15}))))},Pt.createElement(ui,null,Pt.createElement(Ek,{variant:"body",size:"xsmall"},"+",e.length-Ts))))}i(Ju,"SupportedChainsList");function No(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=Wk(!1),p=k().blockchains();Bk(()=>l(!1),[o]);let u=e.getSupportedChains(p),m=!o&&!r&&u.length>1;return Ae.createElement(si,{hasError:!!o,clickable:!!s,onClick:s},Ae.createElement(li,null,Ae.createElement(ci,{src:ai(p,e.id),size:40}),Ae.createElement(qu,{showSupportedChains:m||r||!!o},Ae.createElement(Hu,null,Ae.createElement(zn,{variant:"label",size:"large"},e.label),r&&Ae.createElement(zn,{variant:"body",size:"small",color:"success500"},ws.t("Connected")),!!o&&Ae.createElement(zn,{variant:"body",size:"small",color:"error500"},ws.t("Connection failed"))),m&&Ae.createElement(Ju,{chains:u}),r&&Ae.createElement(Ku,{variant:"body",size:"small",color:"neutral700"},a),o&&Ae.createElement(Vu,{onClick:()=>l(f=>!f)},Ae.createElement(zn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},ws.t("See why")),c?Ae.createElement(Ak,{size:12,color:"gray"}):Ae.createElement(Ik,{size:12,color:"gray"}))),n),!!o&&c&&Ae.createElement(Ae.Fragment,null,Ae.createElement(Nk,{size:4}),Ae.createElement(Gu,null,Ae.createElement(zn,{variant:"body",size:"small",color:"neutral700"},o))))}i(No,"NamespaceItem");function Ru(t){let{onClick:e,type:o,namespace:n}=t;return vs.createElement(No,{namespace:n,onClick:e,suffix:o==="radio"?vs.createElement(Mk,{value:n.value}):vs.createElement(Lk,{checked:t.value})})}i(Ru,"NamespaceListItem");import{Button as Pk,styled as ed}from"@rango-dev/ui";var di=ed("ul",{padding:0,paddingTop:"$16",paddingBottom:"$20",margin:0}),rn=ed(Pk,{minHeight:"$40"});function qn(t){let{targetWallet:e}=t.value,o=e.properties?.find(d=>d.name==="namespaces"),n=e.isHub,r=e.isHub?o?.value.selection==="single":e.needsNamespace?.selection==="single",a=n?o?.value:e.needsNamespace,s=e.image,c=k().blockchains(),[l,p]=qk([]),u=zk(()=>a?.data.filter(d=>!d.unsupported),[e?.type]),m=i(d=>{p(r?[d]:S=>S.includes(d)?S.filter(y=>y!==d):S.concat(d))},"onSelect"),f=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");f?p([]):u&&p(u.map(d=>d.value))},"onSelectAll"),g=i(d=>r?ce.createElement(Ok,{value:l?.[0]},d):ce.createElement(ce.Fragment,null,d),"wrapRadioRoot");return Uk(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let d=u.filter(S=>S.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(d.map(S=>S.value))}else p(u.map(d=>d.value))},[]),ce.createElement(ce.Fragment,null,ce.createElement(Fk,{type:"info",title:an.t("Connect {wallet}",{wallet:e.title}),description:an.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:ce.createElement($k,{src:s,size:45})}),r?ce.createElement(ce.Fragment,null,ce.createElement(mi,{size:20}),ce.createElement(_k,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:an.t("This wallet can only connect to one chain at a time. ")})):ce.createElement(ce.Fragment,null,ce.createElement(mi,{size:30}),ce.createElement(Dk,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?an.t("Deselect all"):an.t("Select all"))),ce.createElement(di,null,g(ce.createElement(ce.Fragment,null,a?.data.map((d,S,y)=>ce.createElement(ce.Fragment,{key:d.id},d.unsupported?ce.createElement(pi,{namespace:d}):ce.createElement(Ru,{value:l.includes(d.value),namespace:d,type:r?"radio":"checkbox",onClick:()=>m(d.value)}),S!==y.length-1&&ce.createElement(mi,{size:10})))))),ce.createElement(mi,{size:20}),ce.createElement(rn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},an.t("Connect")))}i(qn,"Namespaces");import{i18n as fi}from"@lingui/core";import{Button as Yk,Divider as Es,Image as Zk,MessageBox as Jk}from"@rango-dev/ui";import{useWallets as Rk}from"@rango-dev/wallets-react";import Ye from"react";import{styled as Qk}from"@rango-dev/ui";var td=Qk("div",{display:"flex",justifyContent:"end"});import{i18n as bs}from"@lingui/core";import{Button as Hk,Spinner as Gk}from"@rango-dev/ui";import{useWallets as Vk}from"@rango-dev/wallets-react";import xs,{useLayoutEffect as Kk,useRef as jk,useState as Xk}from"react";var od=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,{connect:a,disconnect:s,state:c}=Vk(),[l,p]=Xk(null),m=c(o).namespaces?.get(n.value),f=m.accounts?.[0]?.split(":"),h=jk(!1);Kk(()=>{r&&!h.current&&g(o,n.value)},[]);let g=i(async(y,C)=>{try{h.current=!0,await a(y,[{namespace:C,network:""}])}catch(T){p(T)}finally{h.current=!1}},"handleConnectNamespace"),d=i(async y=>{p(null),y.connected?await s(o,[n.value]):g(o,n.value)},"handleButtonClick"),S=i(()=>m.connected?bs.t("Disconnect"):l?bs.t("Try again"):bs.t("Connect"),"getButtonText");return xs.createElement(No,{namespace:n,connected:m.connected,error:l?.message,address:m.connected?io(f?.[f?.length-1]):"",suffix:m.connecting?xs.createElement(Gk,{color:"info"}):xs.createElement(Hk,{id:"widget-name-space-connect-btn",variant:"ghost",type:m.connected?"error":"primary",size:"xsmall",onClick:async()=>d(m)},S())})},"NamespaceDetachedItem");function Qn(t){let{selectedNamespaces:e,value:o,onDisconnectWallet:n}=t,{targetWallet:r}=o,{state:a}=Rk(),s=a(r.type);return Ye.createElement(Ye.Fragment,null,Ye.createElement(Jk,{type:"info",title:fi.t("Connect {wallet}",{wallet:r.type}),description:fi.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:Ye.createElement(Zk,{src:r.image,size:45})}),Ye.createElement(Es,{size:30}),Ye.createElement(td,null,Ye.createElement(Yk,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:s.connecting||!s.connected,onClick:n},fi.t("Disconnect wallet"))),Ye.createElement(di,{id:"widget-detached-namespace-list",as:"ul"},r.needsNamespace?.data.map((c,l,p)=>Ye.createElement(Ye.Fragment,{key:c.id},c.unsupported?Ye.createElement(pi,{namespace:c}):Ye.createElement(od,{walletType:r.type,namespace:c,initialConnect:e?.includes(c.value)}),l!==p.length-1&&Ye.createElement(Es,{size:10})))),Ye.createElement(Es,{size:20}),Ye.createElement(rn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},fi.t("Done")))}i(Qn,"Detached");import{i18n as sn}from"@lingui/core";import{Divider as rd,Image as nT,MessageBox as rT,Select as iT,TextField as aT}from"@rango-dev/ui";import yt,{useEffect as sT,useState as id}from"react";import{namespaces as eT}from"@rango-dev/wallets-shared";var gi={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Is(t){let e=t?eT[t]?.derivationPaths:null;return e?[...e,gi]:[]}i(Is,"getDerivationPaths");import{Button as tT,styled as As,Typography as oT}from"@rango-dev/ui";var nd=As("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ns=As(oT,{paddingLeft:"$10"}),Bs={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},xP=As(tT,{minHeight:"$40"});var ad="0";function Hn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=id(null),[c,l]=id(ad),p=a===gi.id,u=Is(o),m=i(({value:h})=>{let g=u?.find(d=>d.id===h);g&&(a===gi.id&&Number.isNaN(Number(c))&&l(ad),s(g.id))},"handleDerivationPathItemClick"),f=i(()=>{let h=u.find(g=>g.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return sT(()=>{s(Is(o)[0]?.id||null)},[o]),yt.createElement(yt.Fragment,null,yt.createElement(rd,{size:20}),yt.createElement(rT,{type:"info",title:sn.t("Select Derivation Path"),description:sn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:yt.createElement(nT,{src:n,size:45})}),yt.createElement(nd,null,yt.createElement(Ns,{variant:"body",size:"xsmall",color:"$neutral600"},sn.t("Choose Derivation Path Template")),yt.createElement(iT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:m,styles:{trigger:Bs}}),yt.createElement(rd,{size:20}),yt.createElement(Ns,{variant:"body",size:"xsmall",color:"$neutral600"},p?sn.t("Enter Path"):sn.t("Enter Index")),yt.createElement(aT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Bs})),yt.createElement(rn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},sn.t("Confirm")))}i(Hn,"DerivationPath");import{i18n as ln}from"@lingui/core";import{Image as pT,MessageBox as Ws,WalletState as uT}from"@rango-dev/ui";import{useWallets as dT}from"@rango-dev/wallets-react";import Bo from"react";import{keyframes as lT,styled as hi}from"@rango-dev/ui";var DP=hi("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),sd=hi("div",{position:"relative"}),cT=lT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),ld=hi("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${cT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),cd=hi("div",{"& img":{borderRadius:"50%"}});function Ls(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=dT();return Pn(a(n))===uT.CONNECTED?Bo.createElement(Ws,{type:"success",title:ln.t("Wallet Connected"),description:ln.t("Your wallet is connected, you can use it to swap.")}):o?Bo.createElement(Ws,{type:"error",title:ln.t("Failed to Connect"),description:o||ln.t("Your wallet is not connected. Please try again.")}):Bo.createElement(Ws,{type:"loading",title:ln.t("Connecting to your wallet"),description:ln.t("Click connect in your wallet popup."),icon:Bo.createElement(sd,null,Bo.createElement(cd,null,Bo.createElement(pT,{src:r,size:45})),Bo.createElement(ld,null))})}i(Ls,"ConnectStatus");import{i18n as Ms}from"@lingui/core";import{Button as mT,Divider as pd,MessageBox as fT}from"@rango-dev/ui";import yi from"react";function Ps(t){let{displayName:e,onConfirm:o,id:n}=t;return yi.createElement(fT,{id:n,title:Ms.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Ms.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},yi.createElement(pd,{size:18}),yi.createElement(pd,{size:32}),yi.createElement(mT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Ms.t("Confirm")))}i(Ps,"ExperimentalChain");function ud(t,e){return t().status==="init"&&!!e}i(ud,"isOnStatus");function Gn(t){return t().status==="namespace"}i(Gn,"isOnNamespace");function Vn(t){return t().status==="derivationPath"}i(Vn,"isOnDerivationPath");function wo(t){return t().status==="detached"}i(wo,"isOnDetached");var ST=3e3,CT=300;function Kn(t){let e=yT(),[o,n]=dd(!1),[r,a]=dd(),s=i(w=>{a(w.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=vt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:m,resetState:f,handleDisconnect:h}=Vo(),g=i(w=>{u(t.wallet,w).then(T).catch(s)},"handleConfirmNamespaces"),d=i(()=>{y()},"handleDetachedConfirm"),S=i(w=>{if(!w)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(w).then(T).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),T=i((w,x)=>{let A=w.status==="connected",I=["disconnected","disconnected-unhandled"].includes(w.status);A?(t.onConnect?.(),x||(e.current=setTimeout(y,ST))):I&&y()},"afterConnected");return hT(()=>{if(t.wallet){C();let w=!1,x=!0;i(()=>{setTimeout(()=>{x=!1,w||n(!0)},CT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(I=>{["namespace","Detached","derivation-path"].includes(I.status)||(w=!0),T(I,x)}).catch(s)}},[t.wallet]),ao.createElement(J,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},ud(m,t.wallet)&&ao.createElement(ao.Fragment,null,ao.createElement(Ls,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),ao.createElement(gT,{direction:"vertical",size:32})),Gn(m)&&ao.createElement(qn,{onConfirm:g,value:m().namespace}),Vn(m)&&ao.createElement(Hn,{onConfirm:S,value:m().derivationPath}),wo(m)&&ao.createElement(Qn,{onConfirm:d,onDisconnectWallet:()=>void h(m().namespace.targetWallet),value:m().namespace,selectedNamespaces:m().selectedNamespaces}))}i(Kn,"StatefulConnectModal");import{Provider as bT}from"@rango-dev/wallets-react";import Si,{createContext as xT,useEffect as yd,useMemo as ET,useRef as Sd}from"react";import{useEffect as kT}from"react";function md(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(md,"hashProviders");function _s(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=k(),a=n();return kT(()=>{o(),r()},[md(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(_s,"useWalletProviders");import{legacyFormatAddressWithNetwork as TT,legacyReadAccountAddress as fd}from"@rango-dev/wallets-core/legacy";import{Events as cn}from"@rango-dev/wallets-react";import{isEvmBlockchain as wT}from"rango-sdk";function gd(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=k(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(wT).map(d=>d.name),u=i((d,S)=>{let[y,,C,T,w]=d,x={walletType:y,network:T.network??void 0,accounts:C};c.current?c.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let A=rs(y,C,p,S.supportedChainNames,w.isContractWallet);A.length&&e(A,w.namespace,T.derivationPath)},"onAccountsEvent"),m=i((d,S,y,C,T)=>{if(S===cn.ACCOUNTS){let w=_n(T.supportedBlockchains);y&&u([d,S,y,C,T],{supportedChainNames:w})}S===cn.PROVIDER_DISCONNECTED&&(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),S===cn.NAMESPACE_DISCONNECTED&&n(d,y)},"handleUpdatesForHub"),f=i((d,S,y,C,T)=>{if(S===cn.ACCOUNTS){let w=_n(T.supportedBlockchains),x=[],A=[];if(y?.forEach(E=>{let{network:v}=fd(E);p.includes(v)?x.push(E):A.push(E)}),r.filter(E=>E.walletType===d).map(E=>TT(E.address,E.chain)).length>0){if(x.length>0){let E=rs(d,x,p,w,T.isContractWallet);a(d,{chains:E.map(v=>v.chain)})}A.length>0&&a(d,{chains:A.map(E=>{let{network:v}=fd(E);return v})})}y?u([d,S,y,C,T],{supportedChainNames:w}):(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((d,S,y,C,T)=>{if(S===cn.CONNECTED&&y){let w={walletType:d,network:C.network??void 0,accounts:C.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(S===cn.NETWORK&&y){let w={walletType:d,network:y,accounts:C.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((d,S,y,C,T)=>{T.isHub?m(d,S,y,C,T):f(d,S,y,C,T),h(d,S,y,C,T)},"handler")}}i(gd,"useUpdates");import{LegacyEvents as vT}from"@rango-dev/wallets-core/legacy";function hd(t,e){let[o,n,r,a,s]=e;n!==vT.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(hd,"propagateEvents");var Ci=xT({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function IT(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=k(),a=k().blockchains(),s=k().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=_s(s.wallets,c),p=Sd(),u=Sd(),{handler:m}=gd({onConnectWalletHandler:p,onDisconnectWalletHandler:u});yd(()=>{n().catch(console.log)},[]),yd(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=te.use.isActiveTab(),h=ET(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Si.createElement(Ci.Provider,{value:h},Si.createElement(bT,{allBlockChains:a,providers:l,onUpdateState:(g,d,S,y,C)=>{let T=[g,d,S,y,C];m(...T),t.onUpdateState&&hd(t.onUpdateState,T)},autoConnect:!!f,configs:{wallets:s.wallets}},t.children))}i(IT,"Main");function ki(t){let{config:e,...o}=t;return Si.createElement(Ou,{config:e},Si.createElement(IT,{...o,config:e}))}i(ki,"WidgetWallets");import Ga from"react";import AT,{Fragment as NT}from"react";import{MemoryRouter as BT,useInRouterContext as WT}from"react-router";function Cd({children:t}){let o=WT()?NT:BT;return AT.createElement(o,null,t)}i(Cd,"AppRouter");import{I18nManager as S0}from"@rango-dev/ui";import wp from"react";import qe from"react";import{useRoutes as i0}from"react-router-dom";var O={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as un,useRef as Ii}from"react";import nt from"bignumber.js";import{create as _T}from"zustand";import{subscribeWithSelector as DT}from"zustand/middleware";import{i18n as Ct}from"@lingui/core";import{getRelatedWalletOrNull as PT,RouteEventType as ED}from"@rango-dev/queue-manager-rango-preset";import Ve from"bignumber.js";import{PendingSwapNetworkStatus as Xn}from"rango-types";import{i18n as Ge}from"@lingui/core";var oe=i(()=>({genericServerError:Ge.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Ge.t("Please reset your liquidity sources."),description:Ge.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Ge.t("No Routes Found."),description:Ge.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Ge.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Ge.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Ge.t("High Price Impact"),title:Ge.t("Price impact is too high!"),description:Ge.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Ge.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Ge.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Ge.t("USD Price Unknown"),title:Ge.t("USD Price Unknown, Cannot calculate Price Impact."),description:Ge.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Ge.t("Confirm USD Price Unknown")}}),"errorMessages");function kd(t){return t.type===0?t.diagnosisMessage??oe().noResultError.title:t.type===1?t.diagnosisMessage??oe().genericServerError:""}i(kd,"getQuoteErrorMessage");import{i18n as Ti}from"@lingui/core";var Wo=i(()=>({connectWallet:Ti.t("Connect Wallet"),swap:Ti.t("Swap"),swapAnyway:Ti.t("Swap anyway"),ethWarning:Ti.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ds(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Ds,"getFeeLabel");var $s=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Td=100,wd=30,vd=15,bd=60;var xd=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Ed=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as MT}from"@rango-dev/queue-manager-rango-preset";import dD from"bignumber.js";function Ad(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(Ad,"getRequiredBalanceOfWallet");function Kt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Kt,"getPriceImpactLevel");function wi(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=MT(t.steps);if(!r||!n)return{fromBlockchain:null,fromToken:void 0,toBlockchain:null,toToken:void 0,inputAmount:""};let s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=vo(a?a.toBlockchain:n.fromBlockchain,e),l=vo(r.toBlockchain,e),p=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:m}}i(wi,"createRetryQuote");function pn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=jn(o),s=St(o);if(o&&a&&s){let p=Vt(a.toString(),s.toString());if(!!p&&Md(a,p)){let m=bi(o?.swaps,n),f=Kt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:m,warningLevel:f}}}if(e&&Dd(e,o))return{type:4,usdValueChange:D(St(o)?.minus(St(e)??0).toString()??"0",null,2),percentageChange:D(Vt(St(e)??"1",St(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=xi(o.swaps),l=r>Zo;if(_d(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Pd(o,r),minRequiredSlippage:c};return null}i(pn,"generateQuoteWarnings");function Nd(t){return![4].includes(t.type)}i(Nd,"isQuoteWarningConfirmationRequired");function Vt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Fs(t.toString(),e.toString());return n&&n<0?n:null}i(Vt,"getPriceImpact");var Bd=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),vi=i((t,e)=>e.sort((o,n)=>{let r=i(p=>p.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),Wd=i((t,e,o)=>{let n=e[0];if(!e.length||!n)return null;if(!t)return{requestAmount:o,validationStatus:null,...n};let r=new Set(t.swaps.map(s=>s.swapperId)),a=e.find(s=>{let c=new Set(s.swaps.map(l=>l.swapperId));return Array.from(r).every(l=>c.has(l))});return{requestAmount:o,validationStatus:null,...a||n}},"getDefaultQuote"),Ld=i(t=>{let e=i((o,n)=>{let r=$s.indexOf(o.value),a=$s.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Md(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return xd.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ve(r)))}i(Md,"hasHighValueLoss");function $d(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ve(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i($d,"hasLimitError");function Fd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new Ve(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new Ve(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0];if(!e)return{swap:void 0,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new Ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ve(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=Ct.t({id:"Required: >= {min} {symbol}",values:{min:D(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=Ct.t({id:"Required: > {min} {symbol}",values:{min:D(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=Ct.t({id:"Required: <= {max} {symbol}",values:{max:D(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=Ct.t({id:"Required: < {max} {symbol}",values:{max:D(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Fd,"getLimitErrorMessage");function Od(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Wo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Wo().swap,action:"confirm-swap",disabled:!0}:s?{title:Wo().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Wo().ethWarning,action:"confirm-warning",disabled:!1}:{title:Wo().swap,action:"confirm-swap",disabled:!1}:{title:Wo().connectWallet,action:"connect-wallet",disabled:!1}}i(Od,"getSwapButtonState");function Os(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(le))&&e&&e!=="0"&&n!==0)}i(Os,"canComputePriceImpact");function Us(t,e){let o=le;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(!r||r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ve(r.amount).multipliedBy(a||0))}return o}i(Us,"getUsdFeeOfStep");function bi(t,e){return t.reduce((o,n)=>o.plus(Us(n,e)),le)}i(bi,"getTotalFeeInUsd");function zs(t){let e=le,o=new Ve(t.price||0);return e=e.plus(new Ve(t.amount).multipliedBy(o)),e}i(zs,"getUsdFee");function Ud(t){return t.reduce((e,o)=>e.plus(zs(o)),le)}i(Ud,"getTotalFeesInUsd");function zd(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(zd,"getFeesGroup");function qd(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?Object.fromEntries(e):null}i(qd,"checkSlippageErrors");function Pd(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?Object.fromEntries(o):null}i(Pd,"checkSlippageWarnings");function xi(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(xi,"getMinRequiredSlippage");function _d(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(_d,"hasProperSlippage");function Qd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:m,affiliateWallets:f,destination:h,contractCall:g}=t,d=a?.reduce((C,T)=>(C[T.chain]=T.address,C),{}),S=[];return r?.forEach(C=>{S.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:m??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:d??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1}}}i(Qd,"createQuoteRequestBody");function Hd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Hd,"getWalletsForNewSwap");function jn(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new Ve(e).multipliedBy(o)}i(jn,"getUsdInputFrom");function St(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new Ve(e).multipliedBy(o)}i(St,"getUsdOutputFrom");function Fs(t,e){return new Ve(e).div(new Ve(t)).minus(1).multipliedBy(Td).toNumber()}i(Fs,"getPercentageChange");function Dd(t,e){let o=jn(t),n=St(t),r=St(e);if(!o||!n||!r)return!1;let a=Fs(n.toString(),r.toString());return Ed.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Dd,"isOutputAmountChangedExcessively");function Gd(t,e,o){let n=t.validationStatus,r=Eo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>Ad(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=D(new Ve(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=D(new Ve(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=Ct.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=Ct.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=Ct.t(" for input and network fee")),Ct.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:gt(s.asset.blockchain,o)}})})}i(Gd,"generateBalanceWarnings");function Yn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Xn.NetworkChanged}i(Yn,"isNetworkStatusInWarningState");function Vd(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),Yn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?PT(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case Xn.WaitingForConnectingWallet:r=u?Ct.t("Connect {wallet}",{wallet:u}):r;break;case Xn.WaitingForQueue:r=r||Ct.t("Waiting for other running tasks to be finished");break;case Xn.WaitingForNetworkChange:r=r||Ct.t("Waiting for changing wallet network");break;case Xn.NetworkChangeFailed:r=r||Ct.t("The network switch could not be completed. Please try again, or switch the network manually in your wallet.");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(Vd,"getSwapMessages");function Kd(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(Kd,"getLastConvertedTokenInFailedSwap");function jd(t){return t.status==="failed"}i(jd,"shouldRetrySwap");function Xd(t,e,o,n,r,a){if(!n||t)return!0;let s=Eo({filter:"all",quote:n}),c=Eo({filter:"required",quote:n}),l=s.every(m=>r.some(f=>f.chain===m)),p=c.every(m=>r.some(f=>f.chain===m)),u=o&&a?jo(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Xd,"isConfirmSwapDisabled");function Yd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Yd,"isTokensIdentical");var Ei=i((t,e)=>t?.usdPrice?new nt(e||le).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),U=on(_T()(DT(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new nt(0),outputUsdValue:new nt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=le,a=o.inputUsdValue;return Mn(o.inputAmount)?(e&&(n=e?.outputAmount?new nt(e?.outputAmount):null,a=jn(e)??le,r=St(e)??le),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new nt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new nt(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new nt(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:Ei(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new nt(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),sanitizeInputAmount:e=>{let o=pu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;Xr(e)||(o=ou(o),o=nu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new nt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Ei(n.fromToken,o)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:Ei(n??null,s),outputUsdValue:new nt(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?Ei(e.toToken,e.outputAmount?.toString()||""):new nt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new nt(0),inputUsdValue:new nt(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new nt(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),Zd=U.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Ce.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&Ce.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function Jd(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=U(),u=k().config,m=k().fetchStatus,f=k().blockchains(),{findToken:h}=k(),{setAffiliateRef:g,setAffiliatePercent:d,setAffiliateWallets:S}=k(),y=u?.from?.tokens,C=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,x=Ii(void 0),A=Ii(void 0),I=Ii(void 0),E=Ii(void 0);un(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),un(()=>{if(m==="success"){r();let v=f.find(P=>P.name===u?.from?.blockchain),b=u?.from?.token,B=b&&h(b);(v||!v&&I.current)&&n(v??null),B?a({token:B,meta:{blockchains:f}}):!B&&x.current&&a({token:null}),I.current=u?.from?.blockchain,x.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),un(()=>{ls(s,y)&&a({token:null}),cs(l,C)&&n(null)},[y,C]),un(()=>{ls(c,T)&&a({token:null}),cs(p,w)&&o(null)},[T,w]),un(()=>{if(m==="success"){r();let v=f.find(P=>P.name===u?.to?.blockchain),b=u?.to?.token,B=b&&h(b);(v||!v&&E.current)&&o(v??null),B?e({token:B,meta:{blockchains:f}}):!B&&A.current&&e({token:null}),E.current=u?.to?.blockchain,A.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),un(()=>{g(u?.affiliate?.ref??null),d(u?.affiliate?.percent??null),S(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Jd,"useSyncStoresWithConfig");import{useEffect as Hs,useRef as $T}from"react";import{useInRouterContext as FT,useLocation as OT,useSearchParams as UT}from"react-router-dom";function qs(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(qs,"convertTokenSearchParamToAsset");function Qs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Qs,"tokenToSearchParam");function Vs(){let t=OT(),[e,o]=UT(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:m,setInputAmount:f}=U(),h=k().fetchStatus,g=k().blockchains(),d=FT(),{updateIframe:S,updateCampaignMode:y}=k(),C=k().isInCampaignMode(),T=$T(),{findToken:w}=k(),x=i(()=>{let I={};for(let[M,ee]of e.entries())M.startsWith("utm_")&&(I[M]=ee);let E=e.get("fromAmount"),v=e.get("fromBlockchain"),b=e.get("fromToken"),B=e.get("toBlockchain"),P=e.get("toToken"),F=e.get("autoConnect"),q=e.get("clientUrl"),Z=e.get("liquiditySources"),V=e.get("blockchain");return{fromAmount:E,fromBlockchain:v,fromToken:b,toBlockchain:B,toToken:P,autoConnect:F,clientUrl:q,liquiditySources:Z,utmQueryParams:I,blockchain:V}},"getUrlSearchParams"),A=i(I=>{for(let E in I)I[E]||delete I[E];o(I,{replace:!0})},"updateUrlSearchParams");Hs(()=>{let{autoConnect:I,clientUrl:E,utmQueryParams:v,blockchain:b}=x();d&&h==="success"&&A({fromBlockchain:n?.name,fromToken:Qs(a),toBlockchain:r?.name,toToken:Qs(s),fromAmount:c,autoConnect:I??void 0,clientUrl:E??void 0,blockchain:b??void 0,liquiditySources:C?T.current:void 0,...v})},[t.pathname,c,n,a,r,s,C,h]),Hs(()=>{if(!d)return;let I=x();if(!T.current&&I.liquiditySources&&(T.current=I.liquiditySources),I.fromAmount&&f(I.fromAmount),h==="success"){let E=g.find(q=>q.name===I.fromBlockchain),v=I.fromToken&&E&&qs(I.fromToken,E),b=v?w(v):void 0,B=g.find(q=>q.name===I.toBlockchain),P=I.toToken&&B&&qs(I.toToken,B),F=P?w(P):void 0;E&&(l(E),b&&u({token:b,meta:{blockchains:g}})),B&&(p(B),F&&m({token:F,meta:{blockchains:g}}))}},[h]),Hs(()=>{let{clientUrl:I,liquiditySources:E}=x();S("clientUrl",I||void 0),y("liquiditySources",E?.split(",")??void 0)},[])}i(Vs,"useSyncUrlAndStore");import{i18n as hn}from"@lingui/core";import{Alert as sv,Button as lv,darkTheme as cv,Divider as vl,DoneIcon as pv,styled as uv,TextField as dv,Typography as mv}from"@rango-dev/ui";import je,{useState as fv}from"react";import{useNavigate as gv,useSearchParams as hv}from"react-router-dom";import{ChevronRightIcon as zT,Divider as nm,Image as qT,Typography as rm}from"@rango-dev/ui";import bt from"react";import{darkTheme as Rd,styled as Ks}from"@rango-dev/ui";var em=Ks("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Rd} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Rd} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),tm=Ks("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),om=Ks("div",{display:"flex"});function js(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return bt.createElement(tm,null,bt.createElement(rm,{size:"large",variant:"label"},n),bt.createElement(nm,{size:10}),bt.createElement(em,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},bt.createElement(om,null,r&&bt.createElement(bt.Fragment,null,bt.createElement(qT,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),bt.createElement(nm,{size:4,direction:"horizontal"})),bt.createElement(rm,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),bt.createElement(zT,{size:12,color:"black"})))}i(js,"BlockchainSelectorButton");import{i18n as Rs}from"@lingui/core";import{Button as VT,Divider as lm,MessageBox as KT}from"@rango-dev/ui";import so,{useEffect as cm,useState as el}from"react";import{i18n as Ai}from"@lingui/core";import{Divider as Lo,ExternalLinkIcon as HT,Image as GT,Typography as mn}from"@rango-dev/ui";import ke from"react";var im="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function am(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(am,"generateExplorerLink");import{Button as QT,darkTheme as dn,styled as Xs}from"@rango-dev/ui";var Ys=Xs("a",{textDecoration:"none",color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${dn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${dn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),sm=Xs("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${dn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"}}}),Zs=Xs(QT,{minHeight:"$40"});function Js(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=am(n.address,s),l=i(()=>window.open(im,"_blank"),"onClickLearnMore");return ke.createElement(J,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},ke.createElement(sm,null,ke.createElement(GT,{src:n.image===""?Hr:n.image,size:45,type:"circular"}),ke.createElement(Lo,{size:4}),ke.createElement(mn,{variant:"title",size:"medium"},n.symbol),ke.createElement(mn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),ke.createElement(Lo,{size:4}),ke.createElement(mn,{variant:"body",size:"medium"},c?ke.createElement(Ys,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,ke.createElement(HT,{size:12,color:"gray"})):ke.createElement(Ys,null,n.address)),ke.createElement(Lo,{size:4}),n.coinSource&&ke.createElement(mn,{className:"_coin-source",variant:"body",size:"xsmall"},Ai.t("via")," ",ke.createElement(mn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),ke.createElement(Lo,{size:"32"}),ke.createElement(mn,{size:"medium",variant:"body",className:"_custom-token-description"},Ai.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),ke.createElement(Lo,{size:40}),ke.createElement(Lo,{size:10}),ke.createElement(Zs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Ai.t("Import Anyway")),ke.createElement(Lo,{size:10}),ke.createElement(Zs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Ai.t("Learn More")))}i(Js,"CustomTokenModal");function Zn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=k(),[m,f]=el(!1),[h,g]=el(!1),[d,S]=el(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),T=i(()=>{S(!0),C()},"handleErrorModalButtonClick"),w=i(()=>{d&&n?.type==="network-error"&&(S(!1),y()),l()},"handleExit"),x=i(()=>{e&&(u(e),c())},"handleSubmit");return cm(()=>{n&&f(!0)},[n]),cm(()=>{o&&e&&g(!0)},[o,e]),so.createElement(so.Fragment,null,so.createElement(J,{open:m,dismissible:!0,id:"widget-add-custom-token-modal",onClose:C,onExit:w,container:N()},so.createElement(KT,{title:n?.title??"",type:"error",description:n?.message||Rs.t("Failed Network, Please retry.")},so.createElement(lm,{size:40}),so.createElement(lm,{size:10}),so.createElement(VT,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:T},n?.type==="network-error"?Rs.t("Retry"):Rs.t("Add another custom token")))),o&&e&&so.createElement(Js,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>g(!1),open:h,onExit:p}))}i(Zn,"ImportCustomToken");import{useManager as tv}from"@rango-dev/queue-manager-react";import{BottomLogo as ov,Divider as zm,Header as nv}from"@rango-dev/ui";import Be,{useEffect as $i,useLayoutEffect as rv,useRef as qm,useState as Qm}from"react";import{useRef as jT}from"react";function Jn(){return window.self!==window.top}i(Jn,"isAppLoadedIntoIframe");function tl(){let t=jT(null),{iframe:e}=k(),o=Jn()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(tl,"useIframe");import{useNavigate as XT}from"react-router-dom";function Ke(){let t=XT();return()=>t(-1)}i(Ke,"useNavigateBack");import{useLayoutEffect as YT,useState as Rn}from"react";var pm=480,um=768,dm=1024,mm=1200,ZT=i(()=>{let[t,e]=Rn(!1),[o,n]=Rn(!1),[r,a]=Rn(!1),[s,c]=Rn(!1),[l,p]=Rn(!1),u=i(()=>{e(window.innerWidth<=pm),n(window.innerWidth>pm&&window.innerWidth<=um),a(window.innerWidth>um&&window.innerWidth<=dm),c(window.innerWidth>dm&&window.innerWidth<=mm),p(window.innerWidth>mm)},"handleResize");return YT(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),fn=ZT;import{createTheme as ll,darkTheme as pw,lightTheme as uw}from"@rango-dev/ui";import{useEffect as dw,useState as mw}from"react";import{theme as lw,darkColors as cw}from"@rango-dev/ui";import al from"react";var Ni=16,Bi=255,fm=.11;function JT(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(JT,"expandShortHexColor");function RT(t,e){return t.padStart(e,"0")}i(RT,"pad");function ol(t){let e=Math.min(Math.max(Math.round(t),0),Bi);return RT(e.toString(Ni),2)}i(ol,"intToHex");function ew(t){return`#${ol(t.red)}${ol(t.green)}${ol(t.blue)}`}i(ew,"rgbToHex");function tw(t){let e=parseInt(t.slice(1,3),Ni),o=parseInt(t.slice(3,5),Ni),n=parseInt(t.slice(5,7),Ni);return{red:e,green:o,blue:n}}i(tw,"hexToRGB");function ow(t,e){let o=1-fm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(ow,"generateShade");function nw(t,e){let o=fm*e;return{red:t.red+(Bi-t.red)*o,green:t.green+(Bi-t.green)*o,blue:t.blue+(Bi-t.blue)*o}}i(nw,"generateTint");function rw(t){return gm(t,ow)}i(rw,"calculateShades");function iw(t){return gm(t,nw)}i(iw,"calculateTints");function gm(t,e){let o=tw(t),n=[];for(let r=1;r<9;r++)n.push(ew(e(o,r)));return n}i(gm,"calculateColors");function nl(t,e,o){let a=iw(t).reverse().concat(t),s=rw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let m=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${m}`]=f)}return l}i(nl,"createTintsAndShades");function rl(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!lu(r)){let l=JT(a);Object.assign(n,nl(l,r,s))}}return{...n,...e}}i(rl,"expandToGenerateThemeColors");var hm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),aw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=hm(o%52)+e;return hm(o%52)+e},"toAlphabeticName"),sw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),il=i(t=>aw(sw(5381,JSON.stringify(t))>>>0),"toHash");function sl(t){let e=lw.colors,o={...e,...cw},n,r;if(t?.light){let s={colors:rl(e,t.light)};n={id:`${ss}-light-${il(s)}`,tokens:s}}if(t?.dark){let s={colors:rl(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ss}-dark-${il(s)}`,tokens:s}}return{light:n,dark:r}}i(sl,"customizedThemeTokens");function ym(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>al.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(al.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(al.cloneElement(e,{key:c}))}}),o}i(ym,"joinList");function Sm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Sm,"doesWindowPreferDarkColorScheme");function lo(t){let{colors:e,fontFamily:o=Vp,borderRadius:n=wu,secondaryBorderRadius:r=vu}=t,[a,s]=mw(Sm()?"dark":"light"),{theme:c}=k(),{dark:l,light:p}=sl(e),u=ll({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[u.className,uw.className],f=[u.className,pw.className];if(p){let g=ll(p.id,p.tokens);m.push(g.className)}if(l){let g=ll(l.id,l.tokens);f.push(g.className)}return dw(()=>{let g=i(d=>{d.matches?s("dark"):s("light")},"switchThemeListener");return Sm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),d=f.join(" ");return c==="auto"?a==="dark"?d:g:c==="dark"?d:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(lo,"useTheme");var kt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Cm}from"@lingui/core";import{Alert as fw,Button as gw}from"@rango-dev/ui";import km from"react";function cl(t){return km.createElement(fw,{action:km.createElement(gw,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Cm.t("Activate this tab")),type:"warning",variant:"alarm",title:Cm.t("Another tab is open and handles transactions.")})}i(cl,"ActivateTabAlert");import{i18n as pl}from"@lingui/core";import{Button as hw,Divider as yw,MessageBox as Sw}from"@rango-dev/ui";import Wi from"react";function ul(t){let{open:e,onClose:o,onConfirm:n}=t;return Wi.createElement(J,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},Wi.createElement(Sw,{title:pl.t("Activate current tab"),type:"warning",description:pl.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},Wi.createElement(yw,{size:20}),Wi.createElement(hw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},pl.t("Confirm"))))}i(ul,"ActivateTabModal");import{ChevronLeftIcon as Tw}from"@rango-dev/ui";import Am from"react";import{css as Cw,darkTheme as Tm,IconButton as kw,styled as Mo}from"@rango-dev/ui";var _t=Mo(kw,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Tm} &`]:{backgroundColor:"$neutral"}}}),wm=Mo("div",{position:"absolute",background:"$secondary500",[`.${Tm} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),co=Mo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),vm=Mo("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),bm=Mo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),xm=Mo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Em=Cw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Im=Mo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function dl(t){return Am.createElement(_t,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Am.createElement(Tw,{color:"black",size:16}))}i(dl,"BackButton");import{i18n as ww}from"@lingui/core";import{Button as vw,Typography as bw}from"@rango-dev/ui";import ml from"react";function fl(t){return ml.createElement(co,null,ml.createElement(vw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},ml.createElement(bw,{variant:"label",size:"medium",color:"error500"},ww.t("Cancel"))))}i(fl,"CancelButton");import{i18n as xw}from"@lingui/core";import{Image as Ew,Tooltip as Iw,WalletIcon as Aw}from"@rango-dev/ui";import Po from"react";function gl(t){let{list:e}=vt(),o=e.filter(r=>r.state==="connected"),n=o.length?Po.createElement("div",{className:Em()},o.map(r=>Po.createElement(Im,{key:r.title},Po.createElement(Ew,{src:r.image,size:14})))):xw.t("Connect Wallet");return Po.createElement(Iw,{container:t.container,side:"bottom",content:n},Po.createElement(_t,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Po.createElement(wm,null),Po.createElement(Aw,{size:18,color:"black"})))}i(gl,"WalletButton");import{i18n as Mi}from"@lingui/core";import{NotificationsIcon as Hw,Popover as Gw,SettingsIcon as Vw,Tooltip as Pi,TransactionIcon as Kw}from"@rango-dev/ui";import De from"react";import{Notifications as Lw}from"@rango-dev/ui";import Mw from"react";import{useNavigate as Pw}from"react-router-dom";import{create as Nw}from"zustand";import{persist as Bw,subscribeWithSelector as Ww}from"zustand/middleware";var Ne=on(Nw()(Bw(Ww((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1];if(!r||!a)return;let s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function hl(){let t=Pw(),{getNotifications:e,clearNotifications:o}=Ne(),n=e(),r=k().blockchains(),{findToken:a}=k();return Mw.createElement(Lw,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>$p(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${O.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(hl,"NotificationContent");import{useManager as _w}from"@rango-dev/queue-manager-react";import{InProgressIcon as Dw}from"@rango-dev/ui";import Nm from"react";var $w=i(()=>{let{manager:t}=_w();return kt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Nm.createElement(xm,{id:"widget-header-history-badge-container"},Nm.createElement(Dw,{color:"info",size:6})):null},"InProgressTransactionBadge"),Bm=$w;import{EventSeverity as Fw}from"@rango-dev/queue-manager-rango-preset";import{Typography as Ow}from"@rango-dev/ui";import Wm from"react";function Lm(){let{getNotifications:t}=Ne(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Fw.WARNING);return o?Wm.createElement(vm,{isSever:n},Wm.createElement(Ow,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Lm,"NotificationsBadge");import{RefreshProgressButton as Uw}from"@rango-dev/ui";import yl,{useEffect as zw,useState as Mm}from"react";var qw=1e3,Pm=60,Qw=100;function Li({onClick:t}){let[e,o]=Mm(0),[n,r]=Mm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");zw(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===Pm&&c()},qw):s(l),document.addEventListener("visibilitychange",()=>a(l)),()=>{document.removeEventListener("visibilitychange",()=>a(l)),l&&clearInterval(l)}},[e,t]);let s=i(l=>{l&&clearInterval(l),o(0)},"clearTimeout"),c=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return yl.createElement(_t,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},yl.createElement(bm,{onTransitionEnd:()=>r(!1),isRefetched:n},yl.createElement(Uw,{size:22,color:t?"black":"gray",progress:e/Pm*Qw})))}i(Li,"RefreshButton");function _o(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=k(),c=ot("notification",s)||r.includes("notifications");return De.createElement(De.Fragment,null,!r.includes("refresh")&&De.createElement(Pi,{container:a||N(),side:"top",content:Mi.t("Refresh")},De.createElement(Li,{onClick:e})),!c&&De.createElement(Gw,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:De.createElement(hl,null)},De.createElement("div",null,De.createElement(Pi,{container:N(),side:"top",content:Mi.t("Notifications")},De.createElement(_t,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},De.createElement(Hw,{size:18,color:"black"}),De.createElement(Lm,null))))),!r.includes("settings")&&De.createElement(Pi,{container:N(),side:"top",content:Mi.t("Settings")},De.createElement(_t,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},De.createElement(Vw,{size:18,color:"black"}))),!r.includes("history")&&De.createElement(Pi,{container:N(),side:"top",content:Mi.t("History")},De.createElement(_t,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},De.createElement(Kw,{size:18,color:"black"}),De.createElement(Bm,null))))}i(_o,"HeaderButtons");import{i18n as Sl}from"@lingui/core";import{Divider as Dm,MessageBox as Yw,RefreshIcon as Zw}from"@rango-dev/ui";import gn from"react";import{Button as jw,styled as Xw}from"@rango-dev/ui";var _m=Xw(jw,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Cl(t){let{open:e,onClose:o}=t;return gn.createElement(J,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},gn.createElement(Yw,{title:Sl.t("Something went wrong"),type:"error",description:Sl.t("Something went wrong. Please refresh the app.")},gn.createElement(Dm,{size:30}),gn.createElement(_m,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},gn.createElement(Zw,{size:20,color:"primary"}),gn.createElement(Dm,{size:4,direction:"horizontal"}),Sl.t("Refresh"))))}i(Cl,"RefreshModal");function kl(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(kl,"onScrollContentAttachStatusToContainer");import{css as Rw,styled as _i}from"@rango-dev/ui";var Di=Rw({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),$m=_i("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:700},fixed:{minHeight:425,maxHeight:700,height:700}},showBanner:{true:{overflow:"visible"}}}}),Fm=_i("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Om=_i("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}}),Um=_i("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function re(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=tl(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=k(),[u,m]=Qm(!1),{config:{features:f,theme:h}}=k(),{watermark:g,setShowCompactTokenSelector:d}=te(),S=g==="FULL",{activeTheme:y}=lo(h||{}),[C,T]=Qm(!1),w=ot("connectWalletButton",f),{isActiveTab:x,tabManagerInitiated:A,showActivateTabModal:I,setShowActivateTabModal:E,activateCurrentTab:v}=te(),b=Ke(),{manager:B}=tv(),{isTablet:P,isMobile:F}=fn(),Z=kt(B).map(({swap:we})=>we).some(we=>we.status==="running"),V=i(()=>v(Ao.forceClaim,Z),"onActivateTab"),M=i(()=>{r.onWallet?.()},"onConnectWallet"),ee=typeof r.hasBackButton>"u"||r.hasBackButton,R=qm(null),X=qm(null);return $i(()=>{let we=(p?.swapBoxBanner?.routes?.length??0)===0,se=!!p?.swapBoxBanner?.routes?.some(de=>location.pathname.endsWith(de));T(!!p?.swapBoxBanner&&(we||se))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),$i(()=>(Jn()&&X.current&&e(X.current),()=>{o()}),[]),$i(()=>(R.current?.addEventListener("scroll",kl),()=>{R.current?.removeEventListener("scroll",kl)}),[]),$i(()=>{m(c==="failed")},[c]),rv(()=>{let we=s==="auto"||!X.current||Jn(),se=F||P,de=i(()=>{we||(se?X.current.style.height=`${window.innerHeight-X.current.offsetTop}px`:X.current.style.height=`${700}px`,d(parseFloat(X.current.style.height)<640))},"handler");return de(),window.addEventListener("resize",de),()=>window.removeEventListener("resize",de)},[s,F,P]),Be.createElement($m,{height:s,id:tt.SWAP_BOX_ID,className:`${y()} ${Di()}`,ref:X,showBanner:C},Be.createElement(nv,{prefix:ee?Be.createElement(dl,{onClick:()=>{b(),r.onBack?.()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!w&&Be.createElement(gl,{container:N(),onClick:M,isConnected:!!l?.length}),r.onCancel&&Be.createElement(fl,{onClick:r.onCancel}))}),Be.createElement(Fm,{ref:R},n),Be.createElement(ul,{open:I,onClose:()=>E(!1),onConfirm:V}),Be.createElement(Om,null,Be.createElement("div",{className:"footer__content"},A&&!x&&Be.createElement("div",{className:"footer__alert"},Be.createElement(cl,{onActivateTab:V}),Be.createElement(zm,{size:10})),a),Be.createElement(zm,{size:12}),Be.createElement("div",{className:`footer__logo ${S?"logo__show":"logo__hidden"}`},Be.createElement(ov,null))),C&&Be.createElement(Um,null,p?.swapBoxBanner?.element),Be.createElement(Cl,{open:u,onClose:()=>m(!1)}))}i(re,"Layout");import{styled as iv}from"@rango-dev/ui";var Hm="$20 $20 $10 $20",Tl=iv("div",{padding:Hm,overflowY:"auto",flexGrow:1});import{styled as av}from"@rango-dev/ui";var ie=av("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as po}from"@lingui/core";import{useState as wl}from"react";function Gm(){let[t,e]=wl(!1),[o,n]=wl(null),[r,a]=wl(null),{findToken:s}=k(),c=k().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(m,f){switch(m){case"duplicated":return{type:m,title:po.t("Duplicate Token"),message:po.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:m,title:po.t("Token Already Exists"),message:po.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:m,title:po.t("Token Not Found"),message:po.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:f}})};case"network-error":return{type:m,title:po.t("Network error"),message:po.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:m,tokenAddress:f})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===f.toLowerCase())){let y=p("duplicated");n(y);return}let g=await ct().getCustomToken({blockchain:m,address:f});if(!g||!g.token||g.error){let y=p("not-found",m);n(y);return}let d=g.token;if(s({blockchain:d.blockchain,address:d.address,symbol:d.symbol})){let y=p("token-exist");n(y);return}return a({...d,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",m);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(Gm,"useFetchCustomToken");var yv=uv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${cv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Vm(){let t=gv(),[e]=hv(),o=Ke(),n=k().blockchains(),r=e.get("blockchain")||"",a=vo(r,n),[s,c]=fv(""),{fetchCustomToken:l,token:p,loading:u,error:m,resetState:f}=Gm(),h=!!a&&jo(a,s),g=!a||!s||!h,d=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return je.createElement(re,{header:{title:hn.t("Add Custom Token")}},je.createElement(ie,null,je.createElement(yv,null,je.createElement("div",null,je.createElement(js,{onClick:()=>t(O.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:hn.t("Select chain"),placeholder:hn.t("Select chain")}),je.createElement(vl,{size:"24"}),je.createElement(mv,{size:"large",variant:"label"},hn.t("Enter Address")),je.createElement(vl,{size:10}),je.createElement(dv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:hn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&je.createElement(pv,{color:"success",size:12}),onChange:S=>c(S.target.value)}),!h&&!!s&&je.createElement(je.Fragment,null,je.createElement(vl,{size:4}),je.createElement(sv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),je.createElement(lv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:d},hn.t("Import"))),je.createElement(Zn,{token:p,blockchain:a??void 0,address:s,error:m??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{m?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(Vm,"AddCustomTokenPage");import{i18n as ec}from"@lingui/core";import{useManager as ox}from"@rango-dev/queue-manager-react";import{Alert as nx,Button as rx,css as oc,Divider as tc,IconButton as Dg,styled as ix,Typography as ax,WalletIcon as sx}from"@rango-dev/ui";import Fe,{useEffect as ca,useLayoutEffect as lx,useRef as cx,useState as mr}from"react";import{useNavigate as px}from"react-router-dom";import{i18n as Do}from"@lingui/core";import{Alert as Qv,BalanceErrors as Hv,Button as Cf,ChevronLeftIcon as Gv,Divider as Wl,MessageBox as Vv,Typography as Ll}from"@rango-dev/ui";import ne,{useCallback as Kv,useEffect as kf,useMemo as jv,useState as Cn}from"react";import{useNavigate as Xv}from"react-router-dom";import{i18n as Il}from"@lingui/core";import{Alert as wv,ChevronDownIcon as vv,CloseIcon as bv,Divider as Rm,IconButton as ef,PasteIcon as xv,Typography as Ev,WalletIcon as Iv}from"@rango-dev/ui";import $e,{useEffect as Av,useRef as Nv}from"react";import zi,{useRef as kv}from"react";import*as yn from"@radix-ui/react-collapsible";import{keyframes as Km,styled as Fi}from"@rango-dev/ui";var bl=300,Sv=Km({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Cv=Km({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),jm=Fi(yn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),xl=Fi(yn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Oi=Fi(yn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Sv} ${bl}ms ease-out`},false:{animation:`${Cv} ${bl}ms ease-out`}}}}),Ui=Fi("div",{transition:`all ${bl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function qi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=kv(null);return zi.createElement(jm,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&zi.createElement(xl,{className:"collapsible_trigger",onClick:a},s),zi.createElement(Oi,{className:"collapsible_content",open:e},r),c==="bottom"&&zi.createElement(xl,{className:"collapsible_trigger",onClick:a},s))}i(qi,"CustomCollapsible");import{darkTheme as Xm,styled as El,TextField as Tv}from"@rango-dev/ui";var Ym=El("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Zm=El(Tv,{backgroundColor:"$neutral100",padding:"$15"}),Jm=El("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Xm} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Xm} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function tf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=U(),{config:s}=k(),c=k().blockchains(),l=zr(e.name,c),p=Nv(null),u=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!jo(e,r),g=i(()=>{a("")},"handleClear"),d=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),p?.current?.focus()}},"handlePaste"),S=i(()=>r?$e.createElement(ef,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},$e.createElement(bv,{size:12,color:"gray"})):m?null:$e.createElement(ef,{id:"widget-custom-destination-paste-icon-btn",onClick:d,variant:"ghost"},$e.createElement(xv,{size:16})),"renderSuffix");return Av(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),$e.createElement(Ym,null,$e.createElement(qi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:$e.createElement(Jm,{id:"widget-custom-destination-collapsible-btn"},$e.createElement("div",{className:"button__content"},$e.createElement(Iv,{size:18,color:"info"}),$e.createElement(Rm,{size:4,direction:"horizontal"}),$e.createElement(Ev,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Il.t("Send to a different address"))),$e.createElement(Ui,{orientation:n?"up":"down"},$e.createElement(vv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},$e.createElement(Zm,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Il.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:S(),onChange:y=>{let C=y.target.value;a(C)}})),h&&$e.createElement($e.Fragment,null,$e.createElement(Rm,{size:4}),$e.createElement(wv,{variant:"alarm",type:"error",title:Il.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(tf,"CustomDestination");import{css as Bv,IconButton as Wv,SelectableWalletButton as Lv,styled as uo}from"@rango-dev/ui";var of=uo("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),nf=uo("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),rf=uo(Lv,{justifyContent:"center"}),af=uo("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),sf=uo(Wv,{position:"absolute",left:"$20"}),lf=uo("div",{paddingTop:"$20"}),cf=Bv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),pf=uo("div",{display:"flex"}),uf=uo("div",{overflow:"visible",width:"100%"});import{i18n as Nl}from"@lingui/core";import{warn as $v}from"@rango-dev/logging-core";import{Divider as Fv,makeInfo as Ov,SelectableWallet as Uv,Typography as yf,WalletState as Qi}from"@rango-dev/ui";import rt,{useEffect as Sf,useState as or}from"react";import{Image as _v,MessageBox as Dv}from"@rango-dev/ui";import tr from"react";import{keyframes as Mv,styled as Al}from"@rango-dev/ui";var df=Al("div",{position:"relative"}),Pv=Mv({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),mf=Al("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Pv} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),ff=Al("div",{"& img":{borderRadius:"50%"}});import{i18n as Sn}from"@lingui/core";function gf(t,e){switch(t){case"in-progress":return{type:"loading",title:Sn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Sn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Sn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Sn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Sn.t("Request Rejected"),description:Sn.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(gf,"generateMessageByStatus");function hf(t){let{status:e,displayName:o,image:n}=t,r=gf(e,o),a=e=="in-progress";return tr.createElement(Dv,{type:r.type,title:r.title,description:r.description,icon:a?tr.createElement(df,null,tr.createElement(ff,null,tr.createElement(_v,{src:n,size:45})),tr.createElement(mf,null)):void 0})}i(hf,"ExperimentalChainStatus");var zv=7,qv=3e3;function Bl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=te.use.isActiveTab(),{blockchains:l,connectedWallets:p}=k(),[u,m]=or(),[f,h]=or(null),[g,d]=or(!1),[S,y]=or(null),{suggestAndConnect:C}=Hi(),{list:T}=vt({chain:e}),[w,x]=or(T),A=T.length,I=a&&A-a>0,E=i(async b=>{d(!1),y("in-progress");try{await C(b.walletType,b.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");Sf(()=>{x(b=>{let B=T.findIndex(P=>n(P.type,e));return I&&B>1?[T[B]].concat(T.filter((P,F)=>F!==B)):b.map(P=>T.find(F=>F.type===P.type)??P)})},[JSON.stringify(T)]);let v=document.getElementById(tt.SWAP_BOX_ID);return Sf(()=>{let b=null;return(S==="completed"||S==="rejected")&&(b=setTimeout(()=>y(null),qv)),()=>{b&&clearTimeout(b)}},[S]),rt.createElement(rt.Fragment,null,w.slice(0,a).map(b=>{let B=hu({connectedWallets:p,walletType:b.type,chain:e}),P=b.state===Qi.CONNECTED,F=B?io(B,zv):"",q=P&&!!b.needsNamespace&&!F,Z=Rr(l(),e),V=!p.find(de=>de.walletType===b.type&&de.chain===e),M=Z&&V&&b.state===Qi.CONNECTED,ee=i(async()=>{b.state===Qi.DISCONNECTED||q?m(b):M?(h({walletType:b.type,chain:e,address:B??""}),d(!0)):r({walletType:b.type,chain:e,address:B??""})},"onSelectableWalletClick"),R=Ov(b.state),X=i(()=>M?Nl.t({id:"Add {chain} chain",values:{chain:e}}):q?Nl.t("Chain not connected"):F||R.description,"getWalletDescription"),we=i(()=>b.state===Qi.CONNECTED?q?"neutral600":"neutral700":R.color,"getWalletDescriptionColor"),se=f?.chain?zr(f.chain,l()):void 0;return rt.createElement(rt.Fragment,{key:`${b.title}_${se}`},!!f&&rt.createElement(J,{id:"widget-wallets-list-watermarked-modal",open:!!f&&g,container:v,onClose:()=>{h(null)}},rt.createElement(Ps,{id:"widget-wallets-list-experimental-chain-container",displayName:se,onConfirm:()=>{E(f)}})),S&&rt.createElement(J,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!S,onClose:y.bind(null,null),container:v},rt.createElement(hf,{status:S,displayName:se,image:b.image}),rt.createElement(Fv,{direction:"vertical",size:32})),rt.createElement(Uv,{key:b.type,id:"widget-wallets-list-selectable-wallet-btn",description:X(),descriptionColor:we(),onClick:ee,selected:n(b.type,e),disabled:!c,...b}))}),rt.createElement(Kn,{id:"widget-wallets-list-stateful-connect-modal",wallet:u,options:{defaultSelectedChains:o||[e]},onClose:()=>{m(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):$v(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),I&&rt.createElement(rf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},rt.createElement(yf,{variant:"label",size:"medium"},Nl.t("Show more wallets"),rt.createElement(yf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",A-(a??0)))))}i(Bl,"WalletList");var Yv=2;function Tf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Xv(),c=k().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:m,customDestination:f,setCustomDestination:h}=U(),{config:g,connectedWallets:d,setWalletsAsSelected:S}=k(),[y,C]=Cn(""),[T,w]=Cn([]),[x,A]=Cn(""),[I,E]=Cn(!!f),v=jv(()=>Eo({filter:"all",quote:l}),[l]),b=Eo({filter:"required",quote:l}),B=c.find(L=>L.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),P=i(L=>b.includes(L),"isWalletRequiredFor"),F=Kv(()=>d.filter(L=>L.selected&&v.includes(L.chain)),[d,v]),[q,Z]=Cn(F()),[V,M]=Cn([]),ee=i((L,W)=>M(H=>H.concat({blockchain:L,walletType:W})),"addNextSelectedWallets"),R=T.length>0,X=i((L,W)=>!!q.find(H=>H.walletType===L&&H.chain===W&&H.selected&&(P(W)||!P(W)&&!f)),"isSelected"),we=i((L,W,H)=>{let j=!1;return L.map(K=>{if(K.chain===W){let me=K.selected;return!j&&H?(j=!0,me=!0):H||(me=!1),{...K,selected:me}}return K})},"updateSelectableWallets"),se=i(L=>{E(L),L?P(B?.name??"")||Z(W=>we(W,B?.name||"",!1)):(h(""),Z(W=>we(W,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),de=i(L=>{if(y&&C(""),X(L.walletType,L.chain))return;let H=d.find(j=>j.walletType===L.walletType&&j.chain===L.chain);H&&(n(),L.chain===B?.name&&I&&!P(B.name)&&(E(!1),h(null)),Z(j=>j.filter(K=>K.chain!==L.chain).concat({...H,selected:!0})))},"onChange"),Oe=i(()=>{let L=q.filter(W=>W.selected);S(L),p(L),m(!0),o()},"onConfirmBalance"),wt=i(async()=>{w([]),A("");let L=await r?.({selectedWallets:q.filter(H=>H.selected),customDestination:f}),W=L.warnings;W?.balance?.messages&&w(W.balance.messages),L.error&&A(kd(L.error)),!L.error&&!W?.balance?.messages.length?Oe():w(W?.balance?.messages??[])},"onConfirmWallets");kf(()=>{Z(L=>{let W=[];return L.forEach(H=>{!d.some(K=>K.chain===H.chain&&K.walletType===H.walletType&&K.address===H.address)||W.push(H)}),W=W.concat(d.filter(H=>!!!W.find(K=>K.chain===H.chain)&&H.selected&&v.includes(H.chain))),W})},[d,v]),kf(()=>{let L=[];V.length>0&&(V.forEach(W=>{let H=d.find(j=>j.chain===W.blockchain&&j.walletType===W.walletType);H?de(H):L.push(W)}),M(L))},[d,V]);let ve=document.getElementById(tt.SWAP_BOX_ID);return ne.createElement(J,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:ve,...!y&&{styles:{container:{height:"100%"}},footer:ne.createElement(pf,null,ne.createElement(Cf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Xd(a,I,f,l,q,B),onClick:wt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Do.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:ne.createElement(af,null,ne.createElement(sf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},ne.createElement(Gv,{size:16})),ne.createElement(Ll,{variant:"headline",size:"small"},Do.t({id:"Your {blockchainName} wallets",values:{blockchainName:gt(y,c)}})))},anchor:"center"},ne.createElement(J,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:R,onClose:w.bind(null,[]),container:ve},ne.createElement(Vv,{title:Do.t("Insufficient account balance"),type:"error",description:ne.createElement(Hv,{messages:T??[]})},ne.createElement(Cf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Oe},Do.t("Proceed anyway")))),y&&ne.createElement(lf,null,ne.createElement("div",{className:cf()},ne.createElement(Bl,{chain:y,quoteChains:v,isSelected:X,selectWallet:de,onShowMore:()=>C(y),onConnect:L=>{ee(y,L)}}))),!y&&ne.createElement(ne.Fragment,null,x&&ne.createElement(ne.Fragment,null,ne.createElement(Qv,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Do.t(x)}),ne.createElement(Wl,{size:12})),ne.createElement(uf,null,v.map((L,W)=>{let H=c.find(Qe=>Qe.name===L),j=`wallet-${W}`,K=W===v.length-1,me=K&&B&&g?.customDestination!==!1;return ne.createElement("div",{key:j},ne.createElement(of,null,ne.createElement(Ll,{variant:"title",size:"xmedium"},Do.t({id:"Your {blockchainName} wallets",values:{blockchainName:H?.shortName}})),ne.createElement(Ll,{variant:"label",color:"$neutral700",size:"medium"},Do.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:H?.shortName}}))),ne.createElement(Wl,{size:24}),ne.createElement(nf,null,ne.createElement(Bl,{chain:L,quoteChains:v,isSelected:X,selectWallet:de,limit:Yv,onShowMore:()=>C(H?.name??""),onConnect:Qe=>{ee(L,Qe)}})),!K&&ne.createElement(Wl,{size:32}),me&&ne.createElement(tf,{blockchain:B,open:I,handleOpenChange:se}))}))))}i(Tf,"ConfirmWalletsModal");import{i18n as yb}from"@lingui/core";import{Alert as Sb,Button as Cb,Divider as Uf,InfoIcon as kb}from"@rango-dev/ui";import Ue from"react";import{Alert as Rv,Button as eb,Divider as _l,NoRouteIcon as tb,RefreshIcon as ob,Typography as Af}from"@rango-dev/ui";import pt from"react";import{i18n as wf}from"@lingui/core";var Zv=24,Jv=60;function vf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:wf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:wf.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(vf,"makeInfo");var Ml=(o=>(o[o.small=Zv]="small",o[o.large=Jv]="large",o))(Ml||{}),Pl=(o=>(o.small="small",o.large="medium",o))(Pl||{});import{styled as Gi}from"@rango-dev/ui";var bf=Gi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),xf=Gi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Ef=Gi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),If=Gi("div",{padding:"$6 $0"});function nr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=k().getDisabledLiquiditySources(),s=k().toggleAllLiquiditySources,c=k().swappers(),l=vf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),pt.createElement(bf,{id:"widget-no-result-container"},pt.createElement(tb,{size:Ml[n],color:"gray"}),pt.createElement(_l,{size:4}),pt.createElement(Af,{variant:"title",size:Pl[n]},oe().noResultError.title),n==="large"&&pt.createElement(_l,{size:4}),!!l.description&&pt.createElement(xf,{size:n},pt.createElement(Af,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),pt.createElement(_l,{size:n==="large"?"24":"4"}),!!l.alert&&pt.createElement(Ef,{size:n},pt.createElement(Rv,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&pt.createElement(eb,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:pt.createElement(If,null,pt.createElement(ob,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(nr,"NoResult");import{i18n as ir}from"@lingui/core";import{Button as ib,Divider as ab,MessageBox as sb,Typography as lb,WarningIcon as cb}from"@rango-dev/ui";import jt from"react";import{Typography as Mf}from"@rango-dev/ui";import $l from"react";import{Button as nb,darkTheme as rb,styled as rr}from"@rango-dev/ui";var Nf=rr("div",{width:"100%"}),Dl=rr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Bf=rr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${rb} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wf=rr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Lf=rr(nb,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function Pf(t){let{title:e,value:o,valueColor:n}=t;return $l.createElement(Bf,null,$l.createElement(Mf,{size:"medium",variant:"label",className:"_title"},e),$l.createElement(Mf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Pf,"QuoteErrorsModalItem");function _f(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:ir.t("Swapping"),value:D(r.inputUsdValue,4,4)},{title:ir.t("Gas cost"),value:D(r.totalFee,2,2)},{title:ir.t("Receiving"),value:D(r.outputUsdValue,4,4)},{title:ir.t("Price impact"),value:D(r.priceImpact,2,2),valueColor:`${s}500`}];return jt.createElement(J,{id:"widget-high-value-loss-warning-modal",footer:jt.createElement(ib,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:jt.createElement(cb,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},jt.createElement(sb,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),jt.createElement(Dl,null,jt.createElement(ab,{size:"4"}),jt.createElement(lb,{size:"small",variant:"title"},ir.t("Details")),jt.createElement(Dl,null,c.map((l,p)=>jt.createElement(Pf,{key:p,...l})))))}i(_f,"HighValueLossWarningModal");import{i18n as kn}from"@lingui/core";function Df(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=kn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=kn.t("Increase")),o;if(t){switch(t.type){case 0:{Kt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title;break}case 4:{o.title=kn.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=oe().unknownPriceError.title;break}case 2:{o.title=kn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=kn.t("Increase");break}case 3:{o.title=kn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Df,"makeAlerts");function $f(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i($f,"getRequiredSlippage");import{i18n as Tn}from"@lingui/core";import{Button as pb,Divider as Fl,MessageBox as ub,WarningIcon as db}from"@rango-dev/ui";import go from"react";import{useNavigate as mb}from"react-router-dom";function Ff(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=mb();return go.createElement(J,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},go.createElement(ub,{type:"warning",title:r.type===3?Tn.t("High slippage"):Tn.t("Low slippage"),description:r.type===3?Tn.t("Caution, your slippage is high. Your trade may be front run."):Tn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},go.createElement(Fl,{size:18}),go.createElement(Fl,{size:32}),go.createElement(Lf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},go.createElement(db,{color:"white",size:16}),Tn.t("Swap anyway")),go.createElement(Fl,{size:10}),go.createElement(pb,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+O.settings)},Tn.t("Change Slippage"))))}i(Ff,"SlippageWarningModal");import{Button as fb,MessageBox as gb,WarningIcon as hb}from"@rango-dev/ui";import Vi from"react";function Of(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Vi.createElement(J,{id:"widget-unknown-price-warning-modal",footer:Vi.createElement(fb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Vi.createElement(hb,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Vi.createElement(gb,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Of,"UnknownPriceWarningModal");function ar(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:m,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,d=Df(e,o?.type===3||o?.type===4?o:null);d&&!n&&(d.action=null);let S=!!d&&!s,y=i(C=>{if(C==="change-slippage"){let T=o?.type===3||o?.type===4?o:null,w=$f(e,T);f?.(w)}else C==="change-settings"&&m()},"onclickActionButton");return Ue.createElement(Ue.Fragment,null,g&&Ue.createElement(Ue.Fragment,null,Ue.createElement(Uf,{size:10}),Ue.createElement(nr,{skipAlerts:s,error:o,fetch:c})),S&&Ue.createElement(Nf,null,Ue.createElement(Uf,{size:10}),Ue.createElement(Sb,{id:"widget-quote-warning-and-errors-alert",title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:Ue.createElement(Wf,{onClick:l},Ue.createElement(kb,{size:12,color:"gray"}))},...(d.action==="change-settings"||d.action==="change-slippage")&&{action:Ue.createElement(Cb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:d.alertType,onClick:()=>y(d.action)},d.actionButtonTitle||yb.t("Change"))}})),e&&Ue.createElement(Ue.Fragment,null,e.type===0&&Ue.createElement(_f,{...h,warning:e}),(e.type===3||e.type===2)&&Ue.createElement(Ff,{...h,warning:e}),e.type===1&&Ue.createElement(Of,{...h,warning:e})))}i(ar,"QuoteWarningsAndErrors");import Xb from"bignumber.js";import ia from"react";import{i18n as $o}from"@lingui/core";import{Alert as Db,Divider as vn,FullExpandedQuote as $b,InfoIcon as Fb,NumericTooltip as fg,QuoteTag as Ob,StepDetails as Ub,TokenAmount as zb,Typography as bn}from"@rango-dev/ui";import Kl from"bignumber.js";import z,{useRef as qb,useState as Qb}from"react";import{styled as Ol}from"@rango-dev/ui";var Ul=Ol("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),zf=Ol("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),qf=Ol("div",{width:"100%",display:"flex"});import*as Ki from"@radix-ui/react-collapsible";import{Button as Tb,css as sr,darkTheme as We,Image as Qf,styled as Ze,Typography as wb}from"@rango-dev/ui";var vb=300,Hf=Ze(Ki.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${We} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Gf=sr({padding:"$10 $15"}),Vf=Ze(Tb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${We} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${We} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${We} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Kf=Ze("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${We} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${We} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${We} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${We} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${We} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${We} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${We} &`]:{backgroundColor:"$neutral400"}}}}]}),jf=sr({width:"100%",padding:"$15 $15 $10 $15"}),Xf=sr({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),wn=sr({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Yf=sr({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${We} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Zf=Ze(Ki.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Qf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Qf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${We} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Jf=Ze("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Rf=Ze(Oi,{width:"100%",background:"inherit"}),zl=Ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${vb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),CQ=Ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),eg=Ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${We} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),tg=Ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),ql=Ze(wb,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),og=Ze("div",{display:"flex",flexWrap:"wrap"}),Ql=Ze("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),ng=Ze("div",{display:"flex"}),ji=Ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${We} &`]:{borderTopColor:"$neutral800"}});import{i18n as Dt}from"@lingui/core";import{ChevronDownIcon as xb,CloseIcon as Eb,Divider as Zi,IconButton as Ib,NumericTooltip as Ab,QuoteCost as Nb,Typography as xt}from"@rango-dev/ui";import Y,{useState as sg}from"react";import{css as bb,styled as Xi}from"@rango-dev/ui";var Yi=Xi("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Hl=Xi("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),rg=Xi("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),ig=Xi("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),ag=bb({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Bb=i(t=>t.fee.isZero()?null:Y.createElement(Yi,null,Y.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(xt,{variant:"label",size:"medium"},"$",D(t.fee,4,4))),"NonPayableFee");function Gl(t){let[e,o]=sg(!1),[n,r]=sg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:m,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?xo():N(),d=zd(h),S=D(c,2,2);return Y.createElement(Y.Fragment,null,Y.createElement(Nb,{onClickFee:m?y=>{y.stopPropagation(),o(!e)}:void 0,fee:S,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:m?Dt.t("View more info"):void 0,tooltipContainer:g}),Y.createElement(J,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:Y.createElement(ig,{style:{textAlign:f?"left":"center"}},Y.createElement(xt,{variant:"title",size:"medium"},Dt.t("Gas & Fee Explanation")),Y.createElement(Ib,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement(Eb,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(rg,null,Y.createElement(xt,{variant:"title",size:"small"},Dt.t("Details")),Y.createElement(Zi,{size:10}),Object.entries(d.payable).flatMap(([y,C])=>C.map((T,w)=>{let x=`payable-fee-${w}`,A=zs(T);return Y.createElement(Yi,{key:x},Y.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},Ds(y,Dt.t)),Y.createElement(Ab,{content:T.amount,container:g},Y.createElement(xt,{variant:"label",size:"medium"},D(T.amount,2,2),T.asset.symbol," ($",D(A,4,4),")")))})),Y.createElement(Yi,{className:"total_payable_fee"},Y.createElement(xt,{variant:"label",size:"medium"},Dt.t("Total Payable Fee")),Y.createElement(xt,{variant:"label",size:"medium"},"$",D(c,4,4))),Y.createElement(Hl,null),!!Object.keys(d.nonePayable).length&&Y.createElement(qi,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:Y.createElement("div",{className:ag()},Y.createElement(xt,{size:"small",variant:"body",color:"neutral700"},n?Dt.t("Hide non-payable fees"):Dt.t("Show non-payable fees")),Y.createElement(Zi,{size:4,direction:"horizontal"}),Y.createElement(Ui,{orientation:n?"up":"down"},Y.createElement(xb,{size:12,color:"gray"}))),open:n},Y.createElement(xt,{size:"small",variant:"title"},Dt.t("Description")),Y.createElement(Zi,{size:4}),Y.createElement(xt,{size:"small",variant:"body",color:"neutral700"},Dt.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),Y.createElement(Zi,{size:10}),Object.entries(d.nonePayable).map(([y,C],T)=>{let w=Ud(C),x=Ds(y,Dt.t),A=`non-payable-fee-${T}`;return Y.createElement(Bb,{key:A,fee:w,label:x})}),Y.createElement(Hl,null)))))}i(Gl,"QuoteCostDetails");import{i18n as pg}from"@lingui/core";import{TokenAmount as ug}from"@rango-dev/ui";import Ji from"react";import{css as Wb,styled as Lb}from"@rango-dev/ui";var lg=Lb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),cg=Wb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function lr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Ji.createElement(lg,null,Ji.createElement(ug,{direction:"horizontal",label:pg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Ji.createElement("div",{className:cg()}),Ji.createElement(ug,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:pg.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(lr,"QuoteSummary");import{i18n as dg}from"@lingui/core";import{ChevronDownIcon as Mb,ChevronRightIcon as Pb,Divider as Vl,Image as _b,Tooltip as oa,Typography as Ri}from"@rango-dev/ui";import Q from"react";var ea=4,ta=6,cr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return Q.createElement(oa,{container:c,side:"bottom",sideOffset:4,open:r,content:e},Q.createElement(Jf,{className:n,state:a},Q.createElement(_b,{src:o,size:16})))},"ImageComponent");function mg(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),p=r.length,u=Bd(r),{isTablet:m,isMobile:f}=fn();return Q.createElement(Zf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},Q.createElement("div",{className:wn()},Q.createElement(Ri,{variant:"body",size:"xsmall"},dg.t("Via:")),Q.createElement(Vl,{direction:"horizontal",size:4}),r.map((h,g)=>{let d=`item-${g}`,S=Q.createElement(zl,null,Q.createElement(Pb,{size:12,color:"black"}));return f||m?Q.createElement(Q.Fragment,{key:d},Q.createElement(cr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&Q.createElement(Q.Fragment,null,S)):Q.createElement(Q.Fragment,{key:d},p<=ea||p>ea&&g<ea-1?Q.createElement(Q.Fragment,null,Q.createElement(cr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&Q.createElement(Q.Fragment,null,S)):g===ea-1&&Q.createElement(oa,{container:l,side:"bottom",align:"end",sideOffset:4,content:Q.createElement("div",{className:wn()},S,r.map((y,C)=>{let T=`image-${C}`;return C>=g&&Q.createElement(Q.Fragment,{key:T},Q.createElement(cr,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),C!==p-1&&Q.createElement(Q.Fragment,null,S))}))},Q.createElement(Ql,{state:r.find((y,C)=>C>=g&&(y.state==="error"||y.state==="warning"))?.state},Q.createElement(Ri,{size:"xsmall",variant:"body"},"+",p-g))))})),Q.createElement("div",{className:wn()},Q.createElement("div",{className:"blockchains_section"},Q.createElement("div",{className:wn()},Q.createElement(Ri,{variant:"body",size:"xsmall"},dg.t("Chains:")),Q.createElement(Vl,{direction:"horizontal",size:4}),u.map((h,g)=>Q.createElement(Q.Fragment,{key:h.displayName},u.length<=ta||u.length>ta&&g<ta-1?Q.createElement(oa,{container:l,side:"bottom",content:h.displayName,sideOffset:4},Q.createElement(cr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===ta-1&&Q.createElement(oa,{container:l,side:"bottom",align:"end",sideOffset:4,content:Q.createElement("div",{className:wn()},u.map((d,S)=>S>=g&&Q.createElement(cr,{key:d.displayName,content:"",src:d.image??"",open:!1,className:S>g?"blockchainImage":"",container:c})))},Q.createElement(Ql,{className:"blockchainImage"},Q.createElement(Ri,{size:"xsmall",variant:"body"},"+",u.length-g))))),Q.createElement(Vl,{direction:"horizontal",size:32}))),Q.createElement(zl,{orientation:a?"up":"down"},Q.createElement(Mb,{size:12,color:"black"}))))}i(mg,"QuoteTrigger");function jl(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:m=!1,container:f}=t,h=k().blockchains(),{findToken:g}=k(),d=k().swappers(),{customSlippage:S,slippage:y}=k(),C=S||y,[T,w]=Qb(t.expanded),x=qb(null),A=D(o.value,6,6),I=D(n.value,6,6),E=n.usdValue?D(n.usdValue,4,4):"",v=Vt(o.usdValue,n.usdValue??null),b=D(v,2,2),B=Kt(v??0),P=i((ve,L)=>ve.map((W,H)=>{let j,K=r?.type===3&&r.swap.swapperId===W.swapperId,me=r?.type===4&&!!r.recommendedSlippages?.[H],Qe=a?.type===2&&!!a.recommendedSlippages?.[H],He=K||me,be=Qe;He?j="error":be&&(j="warning");let Wt=He?$o.t("Slippage Error"):$o.t("Slippage Warning");return K&&(Wt=$o.t("Bridge Limit Error")),{swapper:{displayName:Bn(W.swapperId,d)??"",image:W.swapperLogo},from:{token:{displayName:W.from.symbol,image:W.from.logo},chain:{displayName:gt(W.from.blockchain,h)??"",image:W.from.blockchainLogo},price:{value:H===0&&!L?D(o.value,6,6):D(W.fromAmount,6,6),usdValue:D((W.from.usdPrice??0)*parseFloat(W.fromAmount),4,4),realValue:H===0?o.value:W.fromAmount,realUsdValue:new Kl(W.from.usdPrice??0).multipliedBy(W.fromAmount).toString()}},to:{token:{displayName:W.to.symbol,image:W.to.logo},chain:{displayName:gt(W.to.blockchain,h)||"",image:W.to.blockchainLogo},price:{value:D(W.toAmount,6,6),usdValue:D((W.to.usdPrice??0)*parseFloat(W.toAmount),4,4),realValue:W.toAmount,realUsdValue:new Kl(W.to.usdPrice??0).multipliedBy(W.toAmount).toString()}},state:j,alerts:He||be?z.createElement(zf,{dense:m},z.createElement(Db,{variant:"alarm",type:He?"error":"warning",title:Wt,id:"widget-quote-footer-step-alarm-alert",footer:z.createElement(qf,null,K&&z.createElement("div",null,z.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),z.createElement(vn,{direction:"vertical",size:2}),z.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Yours: {amount} {symbol}",values:{amount:D(W.fromAmount,6,6),symbol:W?.from.symbol}}))),(me||Qe)&&!K&&z.createElement("div",null,z.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[H]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[H]}}})),z.createElement(vn,{direction:"vertical",size:2}),z.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Ln(W.estimatedTimeInSeconds),fee:D(Us(W,g),2,2),internalSwaps:W.internalSwaps?P(W.internalSwaps):void 0}}),"getQuoteSteps"),F=P(e?.swaps??[]),q=F.length,Z=f||N(),V=Ld(t.quote.tags||[]),M=!!u,ee=Yr(e?.swaps),R=Ln(ee),X=bi(e?.swaps??[],g),we=D(X,2,2),se=X.gte(new Kl(wd)),de=ee/bd>=vd,Oe=F[q-1],wt=F[0];return!wt||!Oe?null:m?z.createElement($b,{selected:c,fee:we,time:R,tooltipContainer:xo(),steps:F,tags:V,id:"widget-quote-full-expanded-quote-container",quoteCost:z.createElement(Gl,{quote:e,fullExpandedMode:!0,time:R,fee:X,feeWarning:se,timeWarning:de,showModalFee:p,steps:q}),percentageChange:b,warningLevel:B,outputPrice:{value:I,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):z.createElement(Kf,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},z.createElement("div",{className:jf()},!l&&V.length?z.createElement(z.Fragment,null,z.createElement(ng,null,V.map((ve,L)=>{let W=`${ve.value}_${L}`;return z.createElement(z.Fragment,{key:W},z.createElement(Ob,{label:ve.label,value:ve.value}),z.createElement(vn,{size:4,direction:"horizontal"}))})),z.createElement(ji,null),!M&&z.createElement(vn,{size:4})):null,z.createElement("div",{id:"portal-root",className:Xf()},z.createElement(Gl,{quote:e,time:R,fee:X,feeWarning:se,timeWarning:de,showModalFee:p,steps:q}),M&&z.createElement(Vf,{onClick:ve=>{ve.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},z.createElement(bn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},$o.t("See All Routes")))),s==="basic"&&z.createElement("div",{className:Yf()},z.createElement(tg,null,z.createElement(Fb,{size:12,color:"gray"})),z.createElement(og,null,z.createElement(ql,{size:"small",variant:"body"},`${A} ${wt.from.token.displayName} = `),z.createElement(fg,{content:n.value,container:Z,open:n.value?void 0:!1},z.createElement(ql,{size:"small",variant:"body"},"\xA0",`${I} ${Oe.to.token.displayName}`))),z.createElement(fg,{content:n.usdValue,container:Z},z.createElement(vn,{size:2,direction:"horizontal"}),z.createElement(bn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&z.createElement(zb,{id:"widget-quote-token-amount-container",tooltipContainer:Z,type:"output",direction:"vertical",price:{value:I,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:Oe.to.token.displayName,image:Oe.to.token.image},chain:{image:Oe.to.chain.image},percentageChange:b,warningLevel:B}),s==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(lr,{from:wt.from,to:Oe.to,percentageChange:b,warningLevel:B}),z.createElement(vn,{size:4}))),z.createElement(Hf,{selected:c,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:w},z.createElement(mg,{type:s,quoteRef:x,selected:c,setExpanded:w,container:Z,expanded:T,steps:F}),z.createElement(Rf,{open:T},z.createElement(eg,null),z.createElement("div",{className:Gf()},F.map((ve,L)=>{let W=`item-${L}`;return z.createElement(Ub,{type:"quote-details",className:"widget-quote-step-details-container",key:W,tooltipContainer:Z,step:ve,hasSeparator:L!==F.length-1,state:ve.state})})))))}i(jl,"Quote");import{Divider as Kb,Skeleton as jb}from"@rango-dev/ui";import Jt from"react";import{darkTheme as Hb,styled as na}from"@rango-dev/ui";var gg=na("div",{$$color:"$colors$neutral100",[`.${Hb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),hg=na("div",{paddingTop:"$2"}),yg=na("div",{paddingLeft:"$8"}),Sg=na("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Ag,Divider as Et,Skeleton as ut}from"@rango-dev/ui";import G from"react";import{css as Gb,styled as Zt}from"@rango-dev/ui";var Xl=Zt("div",{display:"flex"}),Cg=Zt("div",{padding:"$10 $0 $20"}),kg=Zt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Tg=Zt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),wg=Zt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),vg=Zt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),bg=Zt("div",{width:"65%",display:"flex",justifyContent:"start"}),xg=Zt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Eg=Zt("div",{padding:"$15 $0 $15 $0"}),Ig=Gb({display:"flex",justifyContent:"space-between",alignItems:"center"});function pr(t){let{type:e,tagHidden:o=!0}=t,n=G.createElement(wg,null,G.createElement(bg,null,G.createElement(Ag,{loading:!0,size:"medium"}),G.createElement(Et,{size:8,direction:"horizontal"}),G.createElement(xg,null,G.createElement(ut,{height:10,width:60,variant:"rounded"}),G.createElement(Et,{size:4}),G.createElement(ut,{height:15,variant:"rounded"}))),G.createElement(ut,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return G.createElement("div",null,!o&&G.createElement(G.Fragment,null,G.createElement(Xl,null,G.createElement(ut,{width:65,height:20,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:65,height:20,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:65,height:20,variant:"rounded"})),G.createElement(ji,null),!r&&G.createElement(Et,{size:4})),G.createElement("div",{className:Ig()},G.createElement(Xl,null,G.createElement(ut,{width:60,height:10,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:60,height:10,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:60,height:10,variant:"rounded"})),r&&G.createElement(ut,{width:85,height:24,variant:"rounded"})),e==="basic"&&G.createElement(Cg,null,G.createElement(ut,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(kg,null,G.createElement(Tg,null,G.createElement(Ag,{loading:!0,size:"medium"}),G.createElement(Et,{direction:"horizontal",size:4}),G.createElement(ut,{height:15,width:150,variant:"rounded"})),G.createElement(Et,{size:10}),G.createElement(ut,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(Et,{size:4}),G.createElement(Eg,null,n,G.createElement(vg,null),n),G.createElement(Et,{size:12})))}i(pr,"QuoteSummarySkeleton");import{ChainToken as Mg,Divider as Zl,NextIcon as Vb,Skeleton as ra}from"@rango-dev/ui";import Le from"react";import{styled as ur}from"@rango-dev/ui";var Ng=ur("div",{display:"flex",alignItems:"start"}),Bg=ur("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Yl=ur("div",{display:"flex",alignItems:"center",flexGrow:1}),Wg=ur("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Lg=ur("div",{display:"flex",alignItems:"center"});function $t(t){let{separator:e=!0}=t;return Le.createElement(Le.Fragment,null,Le.createElement(Lg,null,Le.createElement(ra,{height:22,width:22,variant:"circular"}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:15,width:148,variant:"rounded"})),Le.createElement(Ng,null,Le.createElement(Sg,{hideSeparator:!e}),Le.createElement(Bg,{extraSpace:e},Le.createElement(Yl,null,Le.createElement(Mg,{size:"small",loading:!0}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:12,variant:"rounded"})),Le.createElement(Wg,null,Le.createElement(Vb,{color:"gray",size:16})),Le.createElement(Yl,null,Le.createElement(Mg,{size:"small",loading:!0}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:12,variant:"rounded"})))))}i($t,"StepSkeleton");function dr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Jt.createElement(gg,{expanded:o,rounded:e!=="basic"},Jt.createElement(pr,{type:e,tagHidden:n}),Jt.createElement(hg,null,Jt.createElement(jb,{height:15,variant:"rounded"})),o&&Jt.createElement(yg,null,Jt.createElement(Kb,{size:24}),Jt.createElement($t,null),Jt.createElement($t,null),Jt.createElement($t,{separator:!1})))}i(dr,"QuoteSkeleton");function Fo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:m,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:d,inputUsdValue:S}=U(),y=e?.outputAmount?new Xb(e?.outputAmount):null,C=e?St(e):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?ia.createElement(Ul,null,ia.createElement(dr,{tagHidden:c,type:o,expanded:s})):w?ia.createElement(Ul,{onClick:()=>l?.(e),id:m},ia.createElement(jl,{quote:e,error:r,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:h,input:{value:d,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:C?.toString()??""}})):null}i(Fo,"QuoteInfo");import{warn as Rb}from"@rango-dev/logging-core";import{calculatePendingSwap as ex}from"@rango-dev/queue-manager-rango-preset";import{useEffect as tx}from"react";import{useRef as Yb,useState as Zb}from"react";var Jb=2e3;function aa({request:t}){let[e,o]=Zb(!1),n=Yb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,Jb)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(c,{signal:n.current.signal});return n.current=null,p}catch(p){if(l)return await a(c);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(aa,"useFetch");function Pg(){let{fetch:t,loading:e,cancelFetch:o}=aa({request:async(n,r)=>await ct().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Pg,"useFetchConfirmQuote");function sa(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Jl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(sa,"throwErrorIfResponseIsNotValid");function Jl(t){if($d(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=Fd(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=qd(t);if(o){let n=xi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Jl,"getQuoteError");function _g(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=pn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=Gd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(_g,"generateWarnings");function la(t){return t?.code==="ERR_CANCELED"?{type:2}:t.cause?t.cause:t?.code==="ERR_BAD_REQUEST"?{type:0,diagnosisMessage:t.response.data.error}:{type:1,diagnosisMessage:t.message}}i(la,"handleQuoteErrors");function Rl(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=U(),{slippage:l,customSlippage:p}=k(),u=k().getDisabledLiquiditySources(),m=k().blockchains(),f=k().tokens(),{findToken:h}=k(),g=p||l,{fetch:d,cancelFetch:S,loading:y}=Pg();return tx(()=>S,[]),{loading:y,fetch:i(async T=>{let w=T.selectedWallets,x=T?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=w.reduce((E,v)=>(E[v.chain]=v.address,E),{}),I={requestId:a?.requestId||"",selectedWallets:A,destination:x||void 0};try{return await d(I,!0).then(E=>{let{result:v}=E;if(!v)throw new Error(E.error??"Error fetching updated quote");sa({diagnosisMessages:v.diagnosisMessages,requestId:v.requestId,swaps:v.result?.swaps});let b={outputAmount:v.result?.outputAmount,requestId:v.requestId,resultType:v.result?.resultType,swaps:v.result?.swaps||[],validationStatus:v.validationStatus,requestAmount:v.requestAmount};r(b);let B={slippage:g.toString(),disabledSwappersGroups:u},P=_g({previousQuote:a??void 0,currentQuote:b,meta:{blockchains:m},selectedWallets:w,userSlippage:g,inputUsdValue:n,findToken:h});c();let F=!!P.balance,q=ex(o.toString(),v,Hd(w),B,!F,{blockchains:m,tokens:f});return{quote:b,swap:q,error:null,warnings:P}})}catch(E){let v=la(E);return v.type!==2&&Rb(new Error("confirm swap error"),{tags:{...v,type:Xe[v.type],initialQuote:a,requestBody:I}}),{swap:null,error:v,warnings:null}}},"fetch"),cancelFetch:S}}i(Rl,"useConfirmSwap");var ux=ix("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Dg}`]:{width:"$48",height:"$48"}}),dx=oc({flexGrow:1,paddingRight:"$10"}),mx=oc({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),fx=oc({display:"flex",justifyContent:"space-between",alignItems:"center"});function $g(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=U(),s=px(),[c,l]=mr(""),p=!n,[u,m]=mr(!1),[f,h]=mr(!1),{isActiveTab:g}=te(),d=k().getDisabledLiquiditySources(),S=cx(d),{manager:y}=ox(),{fetch:C,loading:T,cancelFetch:w}=Rl(),[x,A]=mr({swap:null,error:null,warnings:null}),[I,E]=mr(!1),v=i(async({selectedWallets:M,customDestination:ee})=>{let R=await C?.({selectedWallets:M,customDestination:ee});return A(R),R},"onConfirmSwap"),b=i(async()=>{if(x.swap&&n)try{await y?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let M=`../${O.swaps}/${x.swap.requestId}`;s(M,{replace:!0}),setTimeout(()=>{e("")},0)}catch(M){l("Error: "+M?.message)}},"addNewSwap"),B=i(async()=>{h(!0),await b(),h(!1)},"onConfirm"),P=i(async()=>{x.warnings?.quote&&Nd(x.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),F=i(async()=>{A({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(M=>{A(M)}).catch(M=>console.error(M))},"onRefresh");ca(()=>{!!S.current.length&&!d.length&&F(),S.current=d},[d.length]),ca(()=>{p&&w()},[p]),ca(()=>{p&&m(p)},[p]),ca(()=>{p||C({selectedWallets:o,customDestination:r}).then(M=>A(M)).catch(M=>console.error(M))},[]),lx(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=x.warnings?.quote??null,Z=x.error,V=[];if(c&&V.push(Fe.createElement(nx,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||Z){let M=`../${O.settings}`;V.push(Fe.createElement(ar,{warning:q,error:Z,couldChangeSettings:!1,refetchQuote:F,skipAlerts:Z?.type===4||q?.type===2,showWarningModal:I,confirmationDisabled:!g,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await b()},onChangeSettings:()=>s(M)}))}return Fe.createElement(re,{header:{title:ec.t("Confirm Swap"),onWallet:()=>{let M=`../${O.wallets}`;s(M)}},footer:Fe.createElement(ux,null,Fe.createElement("div",{className:dx()},Fe.createElement(rx,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||f,disabled:!!x.error||!g,onClick:P},ec.t("Start Swap"))),Fe.createElement(Dg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||f,disabled:!g,onClick:m.bind(null,!0)},Fe.createElement(sx,{size:24})))},u&&Fe.createElement(Tf,{open:u,onClose:()=>m(!1),onCancel:w,loading:T,onCheckBalance:v}),Fe.createElement(ie,null,Fe.createElement("div",{className:fx()},Fe.createElement(ax,{variant:"title",size:"small"},ec.t("You get")),Fe.createElement("div",{className:mx()},Fe.createElement(Li,{onClick:!T&&!u&&!I?F:void 0}))),Fe.createElement(tc,{size:"12"}),ym(V.map((M,ee)=>({element:M,key:`alert-${ee}`})),Fe.createElement(tc,{size:10})),V.length>0?Fe.createElement(tc,{size:10}):null,Fe.createElement(Fo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:x.error,loading:T,warning:x.warnings?.quote??null})))}i($g,"ConfirmSwapPage");import{i18n as eo}from"@lingui/core";import{Button as fc,CustomTokensZeroStateDarkIcon as _x,CustomTokensZeroStateIcon as Dx,DeleteIcon as $x,Divider as Cr,IconButton as Fx,MessageBox as Ox,NotFound as Ux,styled as hc}from"@rango-dev/ui";import fe,{useState as gc}from"react";import{useNavigate as zx}from"react-router-dom";import{CloseIcon as hx,IconButton as yx,SearchIcon as Sx,TextField as Cx}from"@rango-dev/ui";import fr from"react";import{styled as gx}from"@rango-dev/ui";var Fg=gx("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function It(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...m}=t,f=s.length?fr.createElement(yx,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},fr.createElement(hx,{color:"gray",size:10})):null;return p&&(f=p),fr.createElement(Cx,{prefix:fr.createElement(Fg,null,fr.createElement(Sx,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...m})}i(It,"SearchInput");import{i18n as mc}from"@lingui/core";import{Button as vx,CustomTokenWarning as bx,darkTheme as Yg,Divider as Rt,ExternalLinkIcon as xx,Image as Ex,ListItem as Ix,NotFound as Ax,PinIcon as Nx,Skeleton as Oo,Typography as yr,VirtualizedList as Bx}from"@rango-dev/ui";import _,{useState as Wx}from"react";import{useTranslation as Lx}from"react-i18next";import{Divider as jg,ListItem as wx,Skeleton as hr}from"@rango-dev/ui";import At from"react";import{css as xn,darkTheme as nc,ImageContainer as kx,ListItemButton as Tx,styled as it,Typography as Og}from"@rango-dev/ui";var rc=xn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),ic=xn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ac=xn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),sc=xn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${nc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),lc=xn({}),cc=xn(),Ug=it("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),pc=it("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),pa=it("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${ic}`]:{[`& .${sc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${lc}`]:{bottom:"-15px"},[`& .${rc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ac}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),zg=it(Tx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),uc=it("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),dc=it(Og,{}),qg=it("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${cc}`]:{$$color:"$colors$neutral600",[`.${nc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),gr=it("div",{display:"flex",alignItems:"end",flexDirection:"column"}),mV=it("div",{display:"flex",alignItems:"center"}),Qg=it("div",{position:"relative",[`& ${kx}`]:{borderRadius:"$xm",overflow:"hidden"}}),Hg=it("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Gg=it(Og,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Vg=it("a",{"& svg:hover":{color:"$colors$info"}}),Kg=it("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${nc} &`]:{color:"$foreground"}}}});function Xg(t){return At.createElement(pa,null,Array.from(Array(t.size),e=>At.createElement(wx,{key:e,hasDivider:!0,start:At.createElement(hr,{variant:"circular",width:35,height:35}),end:At.createElement(gr,null,At.createElement(hr,{variant:"text",size:"large",width:70}),At.createElement(jg,{size:4}),At.createElement(hr,{variant:"text",size:"medium",width:50})),title:At.createElement("div",null,At.createElement(hr,{variant:"text",size:"large",width:90}),At.createElement(jg,{size:4}),At.createElement(hr,{variant:"text",size:"medium",width:90}))})))}i(Xg,"LoadingTokenList");var Mx=20,Px=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return _.createElement("div",{className:ic()},o?_.createElement("div",{className:rc()},o):_.createElement(pc,{className:ac()},_.createElement(yr,{variant:"title",size:"xmedium"},r.symbol),_.createElement(Rt,{direction:"horizontal",size:4}),_.createElement(uc,{css:a},_.createElement(dc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&_.createElement("div",{className:`${sc()} ${!o&&lc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",_.createElement(Rt,{size:4,direction:"horizontal"}),_.createElement(Vg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},_.createElement(xx,{size:12}))))},"renderDesc");function Sr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=k().fetchStatus,u=k().blockchains(),{getBalanceFor:m,fetchingWallets:f}=k(),{isTokenPinned:h}=k(),{setFromToken:g,setToToken:d}=U(),{t:S}=Lx(),y=Ke(),[C,T]=Wx(null),w=i(()=>{c==="source"?g({token:C,meta:{blockchains:u}}):d({token:C,meta:{blockchains:u}})},"updateToken"),x=i(()=>{w(),y()},"handleImportToken"),A=i(v=>{if(v.customToken){let{customToken:B,...P}=v;return _.createElement(vx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),T({...P,warning:!0})},"handleClick")},_.createElement(yr,{variant:"body",size:"xsmall",color:"background"},S("import")))}let b=ei(m(v));return s?s(v):f?_.createElement(gr,null,_.createElement(Oo,{variant:"text",size:"large",width:70}),_.createElement(Rt,{size:4}),_.createElement(Oo,{variant:"text",size:"medium",width:50})):b&&_.createElement(qg,null,_.createElement(Gg,{variant:"title",size:"small"},b.amount),_.createElement("div",null),b.usdValue&&_.createElement(yr,{variant:"body",className:cc(),size:"xsmall"},`$${b.usdValue}`))},"endRenderer"),I=i(()=>_.createElement(Bx,{itemContent:v=>{let b=e[v];if(b==="skeleton")return _.createElement(Ix,{hasDivider:!0,start:_.createElement(Oo,{variant:"circular",width:35,height:35}),end:_.createElement(gr,null,_.createElement(Oo,{variant:"text",size:"large",width:70}),_.createElement(Rt,{size:4}),_.createElement(Oo,{variant:"text",size:"medium",width:50})),title:_.createElement("div",null,_.createElement(Oo,{variant:"text",size:"large",width:90}),_.createElement(Rt,{size:4}),_.createElement(Oo,{variant:"text",size:"medium",width:90}))});let B=u.find(M=>M.name===b?.blockchain);if(!B||!b)return null;let P=b.address,F=nl(B.color,"main"),q={$$color:F.main150,[`.${Yg} &`]:{$$color:F.main750},backgroundColor:"$$color"},Z={$$color:F.main750,[`.${Yg} &`]:{$$color:F.main150},color:"$$color"},V=i(()=>{typeof b!="string"&&!b.customToken&&n?.(b)},"handleClick");return _.createElement(Kg,null,_.createElement(zg,{"tab-index":v,key:`${b.symbol}${P}`,id:`${b.symbol}${P}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:b?.customToken,onClick:V,start:_.createElement(Qg,null,_.createElement(Ex,{src:b.image===""?Hr:b.image,size:30}),t.type!=="custom-token"&&b&&h(b,t.type)&&_.createElement(Hg,null,_.createElement(Nx,{size:12,color:"gray"}))),title:B.type==="COSMOS"||b.name||!b.name&&!P?_.createElement(pc,null,_.createElement(yr,{variant:"title",size:"xmedium"},b.symbol),_.createElement(Rt,{direction:"horizontal",size:4}),_.createElement(uc,{css:q},_.createElement(dc,{variant:"body",size:"xsmall",css:Z},b.blockchain)),l&&b.warning&&_.createElement(_.Fragment,null,_.createElement(Rt,{direction:"horizontal",size:4}),_.createElement(bx,{container:N()}))):void 0,description:typeof b!="string"&&B.info&&P&&B.type!=="COSMOS"?Px({address:P,token:b,customCssForTag:q,customCssForTagTitle:Z,name:b.name,url:B.info.addressUrl.split("{wallet}").join(P)}):b.name||void 0,end:A(b)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=C?vo(C?.blockchain,u):null;return _.createElement(_.Fragment,null,a&&_.createElement(_.Fragment,null,_.createElement(yr,{variant:"label",size:"large"},mc.t("Select Token")),_.createElement(Rt,{size:4})),_.createElement(Ug,null,_.createElement(Rt,{size:4}),p==="loading"&&_.createElement(Xg,{size:Mx}),p==="success"&&(e.length?_.createElement(_.Fragment,null,_.createElement(Zn,{token:C,address:C?.address??"",blockchain:E??void 0,onImport:x,onExitErrorModal:()=>T(null),onExitImportModal:()=>T(null)}),_.createElement(pa,{as:"ul"},I())):!!o&&_.createElement(Ax,{title:mc.t("No results found"),description:mc.t("Try using different keywords")}))))}i(Sr,"TokenList");var qx=hc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Qx=hc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Hx=hc(Fx,{"&:hover":{"& svg":{color:"$secondary550"}}});function Zg(){let[t,e]=gc(""),{deleteCustomToken:o}=k(),n=k().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=U(),{mode:l}=lo({}),p=zx(),[u,m]=gc(!1),[f,h]=gc(),g=i(C=>{let T=C.target.value;e(T)},"handleSearch"),d=l==="dark",S=n.filter(C=>st(C.symbol,t)||st(C.address||"",t)||st(C.name||"",t)),y=i(()=>{if(f){let C=a?ht(a):null,T=r?ht(r):null,w=ht(f);C===w?c({token:null}):T===w&&s({token:null}),o(f)}m(!1)},"handleDeleteCustomToken");return fe.createElement(re,{header:{title:eo.t("Custom Tokens")}},fe.createElement(ie,null,fe.createElement(qx,null,n.length?fe.createElement(fe.Fragment,null,fe.createElement(It,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:eo.t("Search Token"),onChange:g}),fe.createElement(Cr,{size:16}),fe.createElement(Sr,{list:S,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>fe.createElement(Hx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{m(!0),h(C)}},fe.createElement($x,{size:12,color:"gray"}))})):fe.createElement(Qx,null,fe.createElement(Ux,{icon:d?fe.createElement(_x,{size:200}):fe.createElement(Dx,{size:200}),title:eo.t("No custom tokens"),description:eo.t("press the button to add your custom token")})),fe.createElement(Cr,{size:20}),fe.createElement(fc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(O.addCustomTokens)},eo.t("Add Custom Token"))),fe.createElement(J,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>m(!1),container:N()},fe.createElement(Ox,{title:eo.t("Delete Custom Token"),type:"error",description:eo.t("Are you sure you want to Delete this Token?")},fe.createElement(Cr,{size:40}),fe.createElement(Cr,{size:10}),fe.createElement(fc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},eo.t("Yes, Delete it")),fe.createElement(Cr,{size:12}),fe.createElement(fc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},eo.t("No, Continue"))))))}i(Zg,"CustomTokensPage");import{i18n as Re}from"@lingui/core";import{useManager as pE}from"@rango-dev/queue-manager-react";import{Button as vc,darkTheme as uE,Divider as zo,MessageBox as dE,NotFound as mE,styled as bc,Typography as ma}from"@rango-dev/ui";import{TransactionStatus as wr}from"rango-types";import ae,{useMemo as hh,useState as fa}from"react";import{useNavigate as fE}from"react-router-dom";import{FilterIcon as Zx,Popover as Jx}from"@rango-dev/ui";import Uo from"react";import{css as Gx,darkTheme as ua,IconButton as Vx,styled as kr}from"@rango-dev/ui";var yc=kr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ua} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),Jg=kr(Vx,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ua} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ua} &`]:{backgroundColor:"$neutral"},[`& ${yc}::before`]:{backgroundColor:"$secondary100",[`.${ua} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Rg=kr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),eh=kr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),th=Gx({display:"flex",justifyContent:"space-between",alignItems:"center"}),oh=kr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as nh}from"@lingui/core";import{Button as Kx,Divider as rh,ListItemButton as jx,Radio as Xx,RadioRoot as Yx,Typography as ih}from"@rango-dev/ui";import dt from"react";function ah(t){let{filterBy:e,onClickItem:o}=t;return dt.createElement(eh,null,dt.createElement("div",{className:th()},dt.createElement(ih,{size:"small",variant:"body"},nh.t("Status")),dt.createElement(Kx,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},nh.t("Reset"))),dt.createElement(rh,{size:10}),dt.createElement(Yx,{value:e},dt.createElement(oh,null,t.list.map((n,r)=>dt.createElement(jx,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:dt.createElement(dt.Fragment,null,dt.createElement(rh,{direction:"horizontal",size:4}),dt.createElement(ih,{size:"medium",variant:"body"},n.title)),start:dt.createElement(Xx,{value:n.id}),onClick:o})))))}i(ah,"FilterSelectorContent");function Sc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Uo.createElement("div",null,Uo.createElement(Jx,{open:a,align:"end",onOpenChange:o,container:N(),content:Uo.createElement(ah,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Uo.createElement(Jg,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Uo.createElement(yc,{isSelect:!!n},Uo.createElement(Zx,{size:16,color:"black"}),!!n&&Uo.createElement(Rg,null)))))}i(Sc,"FilterSelector");import{i18n as tE}from"@lingui/core";import{getCurrentStep as oE}from"@rango-dev/queue-manager-rango-preset";import{Divider as uh,GroupedVirtualizedList as nE,Skeleton as rE,SwapListItem as dh,Typography as iE}from"@rango-dev/ui";import Je,{useCallback as mh,useEffect as aE,useRef as sE,useState as lE}from"react";function sh(t,e){let o=[],n=0;do{let r=t[n];r&&(o.push(Math.min(r,e)),e-=r),n++}while(e>0&&n<=t.length);return o}i(sh,"calculateGroupsSoFar");import{css as Rx,darkTheme as eE,styled as Tr}from"@rango-dev/ui";var Cc=Rx(),lh=Tr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),kc=Tr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Cc}`]:{$$color:"$colors$neutral600",[`.${eE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Tc=Tr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),ch=Tr("div",{gap:"$10",display:"flex",flexDirection:"column"}),ph=Tr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var cE=10;function wc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=lE([]),c=sE(0),{swaps:l,groupCounts:p,groups:u}=n(e),m=mh(sh,[]),f=mh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,cE),s(m(p,c.current)))},[e.length]);if(aE(()=>{r||f()},[r,f]),r){let h=[1,2];return Je.createElement(Je.Fragment,null,[h,h].map((d,S)=>Je.createElement(kc,{key:S},Je.createElement(Tc,null,Je.createElement(rE,{variant:"text",width:60,size:"small"}),Je.createElement(uh,{size:16})),Je.createElement(uh,{size:4}),Je.createElement(ch,null,d.map((C,T)=>Je.createElement(dh,{isLoading:!0,key:T}))))))}return Je.createElement(nE,{endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>Je.createElement(kc,null,Je.createElement(Tc,null,Je.createElement(iE,{variant:"label",size:"medium",className:Cc()},u[h]))),itemContent:(h,g)=>{let d=l[h];if(!d)return null;let S=oE(d),y=d.steps[0],C=d.steps[d.steps.length-1];return!y||!C?null:Je.createElement(lh,{key:d.requestId},Je.createElement(dh,{className:"widget-history-group-list-swap-item-btn",requestId:d.requestId,creationTime:d.creationTime,status:d.status,onClick:o,currentStep:S,tooltipContainer:N(),onlyShowTime:u[g]===tE.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:D(d.inputAmount,6,6),realAmount:d.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:D(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(wc,"HistoryGroupedList");import{i18n as da}from"@lingui/core";import fh from"dayjs";var gh=i(t=>{let e=new Map([["today",{title:da.t("Today"),swaps:[]}],["week",{title:da.t("This week"),swaps:[]}],["month",{title:da.t("This month"),swaps:[]}],["year",{title:da.t("This year"),swaps:[]}]]);function o(l,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}i(o,"addYearsToOutput");let n=fh();t.forEach(l=>{let p=Number(l.creationTime),u=fh(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(l);else{let m=new Date(p).getFullYear().toString();o(m,l)}});let r=Array.from(e.values()).filter(l=>l.swaps.length>0),a=r.flatMap(l=>l.swaps),s=r.map(l=>l.swaps.length),c=r.map(l=>l.title);return{swaps:a,groupCounts:s,groups:c}},"groupSwapsByDate");var gE=bc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),hE=bc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),yE=bc("div",{"._typography":{color:"$neutral700",[`.${uE}&`]:{color:"$neutral900"}}}),SE=[{id:wr.SUCCESS,title:Re.t("Complete")},{id:wr.RUNNING,title:Re.t("Running")},{id:wr.FAILED,title:Re.t("Failed")}],CE=i((t,e)=>t?.length?t.filter(o=>Mt(o.fromBlockchain,e)||Mt(o.toBlockchain,e)||Mt(o.toSymbol,e)||Mt(o.fromSymbol,e)).length:!1,"isStepContainsText");function yh(){let t=fE(),{manager:e,state:o}=pE(),n=kt(e).map(({swap:T})=>T),[r,a]=fa(""),[s,c]=fa(!1),l=!o.loadedFromPersistor,[p,u]=fa(""),[m,f]=fa(!1),h=i(T=>{let w=T.target.value;a(w)},"handleSearch"),g=hh(()=>!r&&!p?n:n.filter(T=>{let{inputAmount:w,status:x,steps:A,requestId:I}=T;return(!r||Mt(w,r)||Mt(x,r)||CE(A,r)||Mt(I,r))&&(!p||p===x)}),[n,r,p]),d=!g?.length&&!l,S=i(()=>f(!1),"onCloseModal"),y=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(T){console.log(T)}},"onClear"),C=hh(()=>!n.some(T=>T.status===wr.SUCCESS||T.status===wr.FAILED),[n]);return ae.createElement(re,{header:{title:Re.t("History"),suffix:ae.createElement(co,null,ae.createElement(vc,{id:"widget-history-clear-btn",disabled:C,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},ae.createElement(ma,{size:"medium",variant:"label",color:"error"},Re.t("Clear"))))}},ae.createElement(ie,null,ae.createElement(hE,null,ae.createElement(It,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Re.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:h,style:{height:36},value:r}),ae.createElement(zo,{size:10,direction:"horizontal"}),ae.createElement(Sc,{filterBy:p,open:s,onOpenChange:T=>c(T),onClickItem:T=>u(T),list:SE})),ae.createElement(zo,{size:"16"}),ae.createElement(gE,null,d&&ae.createElement(ph,null,ae.createElement(zo,{size:32}),ae.createElement(mE,{title:r?Re.t("No results found"):Re.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Re.t("Try using different keywords"):Re.t("Your transaction history is stored locally and will appear here after you start a swap")})),!d&&ae.createElement(wc,{list:g,onSwapClick:t,groupBy:gh,isLoading:l}))),ae.createElement(J,{open:m,onClose:S,id:"widget-history-clear-modal",container:N()},ae.createElement(zo,{size:20}),ae.createElement(dE,{type:"warning",title:Re.t("Clear Transaction History"),description:ae.createElement(yE,null,ae.createElement(ma,{variant:"body",size:"medium"},Re.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ae.createElement(zo,{size:"24"}),ae.createElement(ma,{variant:"body",size:"small"},Re.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ae.createElement(zo,{size:30}),ae.createElement(vc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},Re.t("Yes, Clear the history")),ae.createElement(zo,{size:10}),ae.createElement(vc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:S},ae.createElement(ma,{variant:"title",size:"medium",color:"primary"},Re.t("No, Cancel")))))}i(yh,"HistoryPage");import{i18n as tI}from"@lingui/core";import{Button as oI,Divider as Fc,styled as nI,WarningIcon as rI}from"@rango-dev/ui";import iI from"bignumber.js";import he,{useEffect as Kh,useState as jh}from"react";import{useNavigate as aI}from"react-router-dom";import{i18n as Ch}from"@lingui/core";import{Alert as TE,Divider as xc,NoRouteIcon as wE,Typography as vE}from"@rango-dev/ui";import qo from"react";import{styled as kE}from"@rango-dev/ui";var Sh=kE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Ec(){let{fromToken:t,toToken:e}=U();return!!t&&!!e&&qt(t,e)?qo.createElement(Sh,null,qo.createElement(xc,{size:10}),qo.createElement(wE,{size:24,color:"gray"}),qo.createElement(xc,{size:4}),qo.createElement(vE,{variant:"title",size:"small"},Ch.t("No Routes Found")),qo.createElement(xc,{size:4}),qo.createElement(TE,{title:Ch.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Ec,"SameTokensWarning");import{Alert as bE,Button as xE}from"@rango-dev/ui";import Th from"react";import{i18n as ga}from"@lingui/core";function kh(t){let e=null;return t===ri?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ga.t("Reset"),title:ga.t("Slippage cannot be set lower than 0.01%.")},e):t>Zo?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ga.t("Change"),title:ga.t("Caution, your slippage is high!")},e):null}i(kh,"makeAlerts");function wh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=k(),{onChangeSettings:a}=t,c=kh(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(ni),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Th.createElement(bE,{title:c.title,type:c.alertType,variant:"alarm",action:Th.createElement(xE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(wh,"SlippageWarningsAndErrors");import{i18n as BE}from"@lingui/core";import{IconButton as WE,ReverseIcon as LE,Skeleton as ME,Tooltip as PE,Typography as vr}from"@rango-dev/ui";import mt from"react";import ha from"bignumber.js";function bh(t){let{error:e,isDarkTheme:o,warning:n}=t,{quoteError:r,slippageError:a}=e,{quoteWarning:s,slippageWarning:c}=n,l=!!a||r?.type===4,p=!!c||s?.type===2;return l?"$error500":p?"$warning500":o?"$neutral600":"$neutral700"}i(bh,"getSlippageColor");function xh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new ha(e),r=new ha(o),a=n.dividedBy(r),s;return a.isLessThan(1)?s=a.toFixed(14).replace(/\.?0+$/,""):a.toFixed(0).length>10?s=a.toFixed(0).slice(0,10):s=a.toFixed(2),{displayValue:s,rawValue:a.toFixed()}}i(xh,"getUsdExchangeRate");function Eh(t,e){let o=new ha(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,ha.ROUND_DOWN).toFormat(2)}`}i(Eh,"formatTokenValueInUsd");import{darkTheme as AE,styled as Ac,Typography as NE}from"@rango-dev/ui";var Ih=Ac("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),Ah=Ac("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${AE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Nc=Ac(NE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Bc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=k(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,m=o!==null?o:e,{mode:f}=lo({}),h=en(m),g=f==="dark",d=n==="default",S={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},C=p?.swaps[0]?.from||c,T=p?.swaps[p?.swaps.length-1]?.to||l,w=d?C:T,x=d?T:C,A=Number(d?p?.outputAmount:p?.requestAmount),I=Number(d?p?.requestAmount:p?.outputAmount),E=A||w.usdPrice,v=I||x.usdPrice,{rawValue:b,displayValue:B}=xh({toTokenUsdPrice:v,fromTokenUsdPrice:E});return mt.createElement(Ih,null,mt.createElement(vr,{variant:S||y?"label":"body",size:S||y?"medium":"small",color:bh({error:S,warning:y,isDarkTheme:g})},BE.t("Slippage:")," ",m,"%"),u?mt.createElement(ME,{height:16,width:104,variant:"rounded"}):E&&v&&mt.createElement(Ah,null,mt.createElement(vr,{className:"rate-text",variant:"body",size:"small"},"1"),mt.createElement(Nc,{className:"rate-text",variant:"body",size:"small"},x.symbol),mt.createElement(WE,{id:"widget-home-page-change-rate-button",onClick:r},mt.createElement(LE,{size:14,color:"secondary"})),mt.createElement(PE,{container:N(),side:"top",sideOffset:4,content:mt.createElement(vr,{className:"rate-text",variant:"body",size:"small"},b)},mt.createElement(vr,{className:"rate-text",variant:"body",size:"small"},B)),mt.createElement(Nc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&&mt.createElement(vr,{color:"neutral600",variant:"body",size:"small"},"~",Eh(Number(b),w.usdPrice))))}i(Bc,"SwapMetrics");import{i18n as UE}from"@lingui/core";import{Header as zE}from"@rango-dev/ui";import ho,{useEffect as qE,useState as QE}from"react";import{i18n as DE}from"@lingui/core";import{Divider as Lc,FullExpandedQuote as $E,Typography as FE}from"@rango-dev/ui";import Te from"react";import{styled as Wc}from"@rango-dev/ui";var Nh=Wc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Bh=Wc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Wh=Wc("div",{width:"146px"});import{i18n as br}from"@lingui/core";import{Select as _E}from"@rango-dev/ui";import Lh from"react";function ya(t){let{updateQuotePartialState:e,sortStrategy:o}=U(),n=[{value:"SMART",label:br.t("Smart Routing")},{value:"FEE",label:br.t("Lowest Fee")},{value:"SPEED",label:br.t("Fastest Transfer")},{value:"NET_OUTPUT",label:br.t("Maximum Return")},{value:"PRICE",label:br.t("Maximum Output")}];return Lh.createElement(Wh,null,Lh.createElement(_E,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ya,"SelectStrategy");var Mh=3;function xr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:m,toToken:f,sortStrategy:h,error:g}=U(),{slippage:d,customSlippage:S}=k(),{findToken:y}=k(),C=c||N(),T=!!p&&p.results.length,w=S??d,x=i(E=>{if(!m||!f||!p)return null;let v={requestAmount:p.requestAmount,validationStatus:null,...E};return pn({currentQuote:v,userSlippage:w,findToken:y})},"getQuoteWarning"),A=g?.type===0||g?.type===1,I=p?.results?vi(h,p?.results):[];return Te.createElement(Te.Fragment,null,a&&Te.createElement(Te.Fragment,null,Te.createElement(Bh,null,Te.createElement(FE,{size:"xmedium",variant:"title"},DE.t("Sort by")),Te.createElement(ya,{container:C})),Te.createElement(Lc,{size:"10"})),e&&Array.from({length:Mh},(E,v)=>Te.createElement(Te.Fragment,{key:v},s?Te.createElement($E,{loading:!0}):Te.createElement(dr,{tagHidden:!1,type:"list-item",expanded:!1}),v!==Mh-1&&Te.createElement(Lc,{size:16}))),!e&&Te.createElement(Te.Fragment,null,T?I.map((E,v)=>{let b=x(E),B=Jl(E.swaps),P=I.length-1===v;return Te.createElement(Te.Fragment,{key:E.requestId},Te.createElement(Fo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:C,selected:l?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:b,fullExpandedMode:s,onClick:F=>{B||u("warning",b),u("error",B?.options||null),o(F)},type:"list-item"}),!P&&Te.createElement(Lc,{size:16}))}):A&&Te.createElement(Nh,null,Te.createElement(nr,{size:s?"large":"small",error:g,fetch:n}))))}i(xr,"Quotes");import{darkTheme as OE,styled as Ph}from"@rango-dev/ui";var _h=Ph("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${OE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Dh=Ph("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var HE=100;function Mc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=QE(!1),l=s?"":"is-hidden",{config:p}=k(),u=p?.variant==="full-expanded",m=xo();return qE(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},HE):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),ho.createElement(_h,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Di()} widget-expanded-quotes-container`,id:tt.EXPANDED_BOX_ID},ho.createElement(zE,{title:UE.t("Routes"),suffix:ho.createElement(ho.Fragment,null,ho.createElement(ya,{container:m}),ho.createElement(_o,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),ho.createElement(Dh,null,ho.createElement(xr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:xo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Mc,"ExpandedQuotes");import{i18n as Qh}from"@lingui/core";import{SwapInput as Hh}from"@rango-dev/ui";import jE from"bignumber.js";import Er from"react";import{ReverseIcon as KE}from"@rango-dev/ui";import _c from"react";import{keyframes as GE,styled as $h}from"@rango-dev/ui";var Pc=450,VE=GE({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Fh=$h("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Oh=$h("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${VE} ${Pc}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function Dc(){let t=U.use.switchFromAndTo();return _c.createElement(Fh,null,_c.createElement(Oh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Pc),t()}},_c.createElement(KE,{size:12})))}i(Dc,"SwitchFromAndToButton");import{styled as Uh}from"@rango-dev/ui";var zh=Uh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),qh=Uh("div",{position:"relative"});function $c(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:m,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:d}=U(),{connectedWallets:S,getBalanceFor:y}=k(),C=a?y(a):null,T=ei(C)?.amount??"0",w=C?new jE(C.amount).shiftedBy(-C.decimals):le,x=!!s&&yu(S,s.name),A=!Os(d,m,f),I=!Os(d,m,g),E=!f||!g||!g.gt(0)?null:Vt(f.toString(),g.toString());return Er.createElement(zh,null,Er.createElement(qh,null,Er.createElement(Hh,{label:Qh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:m,usdValue:A?void 0:D(f,4,4),realUsdValue:A?void 0:f?.toString(),error:A?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:N(),onSelectMaxBalance:()=>{let v=D(w,C?.decimals),b=C?.amount?v.split(",").join(""):"";p(b)},anyWalletConnected:S.length>0}),Er.createElement(Dc,null)),Er.createElement(Hh,{sharpBottomStyle:!r&&(!!d||e),label:Qh.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:D(Vt(f,g),2,2),warningLevel:Kt(E??0),price:{value:D(h,6,6),usdValue:I?void 0:D(g,4,4),realValue:h?.toString(),realUsdValue:I?void 0:g?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i($c,"Inputs");import{warn as XE}from"@rango-dev/logging-core";import{useCallback as YE,useEffect as ZE,useRef as JE,useState as RE}from"react";function Gh(){let{fetch:t,loading:e,cancelFetch:o}=aa({request:async(n,r)=>await ct().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Gh,"useFetchAllQuotes");var eI=600;function Sa({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Gh(),{excludeLiquiditySources:n,routing:r}=k().config,{connectedWallets:a}=k(),c=a.some(se=>se.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:m,selectedQuote:f,sortStrategy:h,resetQuote:g,error:d,warning:S,setSelectedQuote:y,updateQuotePartialState:C}=U(),{slippage:T,customSlippage:w,affiliatePercent:x,affiliateRef:A,affiliateWallets:I,fetchStatus:E}=k(),v=k().getLiquiditySources(),b=k().getDisabledLiquiditySources(),B=k().excludeLiquiditySources(),{findToken:P}=k(),[F,q]=RE(!0),Z=JE(u),V=w??T,ee=!l||!p||qt(l,p)||!Mn(u),R=i(se=>{q(se)},"resetState"),X=i(se=>{let{fromToken:de,toToken:Oe,inputAmount:wt,liquiditySources:ve,excludeLiquiditySources:L,disabledLiquiditySources:W,slippage:H,affiliateRef:j,affiliatePercent:K,affiliateWallets:me}=se;if(F||R(!0),!ee&&de&&Oe){g();let Qe=Qd({fromToken:de,toToken:Oe,inputAmount:wt,liquiditySources:ve,excludeLiquiditySources:L,disabledLiquiditySources:W,wallets:a,slippage:H,affiliateRef:j,affiliatePercent:K,affiliateWallets:me,contractCall:c});Ro("experimental",r)&&(Qe.experimental=!0),Ro("avoidNativeFee",r)&&(Qe.avoidNativeFee=!0),Ro("enableCentralizedSwappers",r)&&(Qe.enableCentralizedSwappers=!0),r?.maxLength&&(Qe.maxLength=r.maxLength),e(Qe).then(He=>{let be=vi(h,He.results),Wt=Wd(f,be,He.requestAmount);q(!1),C("quotes",He),y(Wt),sa({diagnosisMessages:He.diagnosisMessages,requestId:Wt?.requestId||"",swaps:Wt?.swaps});let Va=Wt&&pn({currentQuote:Wt,userSlippage:V,findToken:P});C("warning",Va)}).catch(He=>{let be=la(He);(be.type===0||be.type===1)&&g(),be.type!==2&&(C("error",be),q(!1),XE(new Error("quote error"),{tags:{...be,type:Xe[be.type],requestBody:Qe}}))})}},"fetch"),we=YE(Kr(se=>{X(se)},eI),[ee]);return ZE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(ee){q(!1),(f||d||S)&&g();return}if(!Mn(u)&&m?.eq(0)){R(!1),o();return}g(),R(!0);let se=X;return Z.current&&Z.current!=u&&(se=we),Z.current=u,se({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:B,disabledLiquiditySources:b,slippage:V,affiliateRef:A,affiliatePercent:x,affiliateWallets:I,contractCall:c}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,ee,v?.length,n,b.length,V,A,x,c,JSON.stringify(I)]),{fetch:()=>X({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:B,disabledLiquiditySources:b,slippage:V,affiliateRef:A,affiliatePercent:x,affiliateWallets:I,contractCall:c}),loading:F}}i(Sa,"useSwapInput");function Vh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Ce.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Vh,"emitPreventableEvent");var sI=nI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),lI=300;function Xh(){let t=aI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=U(),[h,g]=jh(!1),{isLargeScreen:d,isExtraLargeScreen:S}=fn(),{fetch:y,loading:C}=Sa({refetchQuote:a}),{config:T,fetchStatus:w,connectedWallets:x,customSlippage:A,slippage:I,setSlippage:E,setCustomSlippage:v}=k(),{isActiveTab:b}=te(),[B,P]=jh(!1),q=en(A!==null?A:I),V=Od({fetchMetaStatus:w,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),M=bu(d,S,T?.variant),ee=!!n&&!!e&&!!o&&new iI(n).gt(0)&&!Yd(e,o),R=ee&&w==="success"&&C,X=q?.quoteValidation||c,de=(!M||M&&l?.results.length)&&(X||s),Oe=!!e&&!!o,wt=Oe&&!!q,ve=(r||s)&&!B?y:void 0,L=i(j=>{M&&h?(g(!1),setTimeout(()=>{t(j)},lI)):t(j)},"onHandleNavigation"),W=i(j=>{r?.requestId!==j.requestId&&(P(!1),p(j))},"onClickOnQuote"),H=i(j=>{if(j){if(oi.includes(j)){E(j),v(null);return}v(j)}},"onChangeSlippage");return Kh(()=>{u(),f("refetchQuote",!0)},[]),Kh(()=>{g(ee)},[ee]),he.createElement(sI,null,he.createElement(re,{height:"auto",footer:he.createElement(oI,{id:`widget-swap-${V.action}-btn`,type:"primary",size:"large",disabled:V.disabled||!b,prefix:V.action==="confirm-warning"&&he.createElement(rI,null),fullWidth:!0,onClick:()=>{V.action==="connect-wallet"?Vh({type:"clickConnectWallet"},()=>L(O.wallets)):V.action==="confirm-warning"?P(!0):L(O.confirmSwap)}},V.title),header:{onWallet:()=>{L(O.wallets)},hasBackButton:!1,title:T.title||tI.t("Swap"),suffix:he.createElement(_o,{hidden:M?["refresh"]:void 0,onClickRefresh:ve,onClickHistory:()=>L(O.swaps),onClickSettings:()=>{L(O.settings)}})}},he.createElement(ie,null,he.createElement($c,{fetchingQuote:R,fetchMetaStatus:w,isExpandable:M,onClickToken:j=>{L(j==="from"?O.fromSwap:O.toSwap)}}),he.createElement(Fc,{size:"2"}),M?null:he.createElement(Fo,{quote:r,loading:R,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:X,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),L(O.routes)}:void 0}),Oe&&he.createElement(he.Fragment,null,he.createElement(Fc,{size:8}),he.createElement(Bc,{quoteError:s,quoteWarning:X,fromToken:e,toToken:o,quote:r,loading:R})),de?he.createElement(he.Fragment,null,he.createElement(ar,{warning:X,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:y,showWarningModal:B,confirmationDisabled:!b,onOpenWarningModal:()=>P(!0),onCloseWarningModal:()=>P(!1),onChangeSlippage:H,onConfirmWarningModal:()=>{P(!1),m(!0),L(O.confirmSwap)},onChangeSettings:()=>L(O.settings)})):null,wt&&he.createElement(he.Fragment,null,he.createElement(Fc,{size:"10"}),he.createElement(wh,{onChangeSettings:()=>L(O.settings)})),he.createElement(Ec,null))),M?he.createElement(Mc,{loading:R,onClickOnQuote:W,fetch:y,onClickRefresh:ve,isVisible:h}):null)}i(Xh,"Home");import{i18n as Yh}from"@lingui/core";import{Alert as cI,Divider as pI,List as uI,ListItemButton as dI,Radio as mI,RadioRoot as fI,Typography as gI}from"@rango-dev/ui";import Ft from"react";function yo(){let{setLanguage:t,language:e,config:o}=k(),n=Wu,r=o?.language||tn;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||tn),resetLanguage:()=>t(null)}}i(yo,"useLanguage");function Zh(){let{activeLanguage:t,changeLanguage:e,languages:o}=yo(),n=Ke(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Ft.createElement(gI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Ft.createElement(mI,{value:s}),start:Ft.createElement(l,null)}});return Ft.createElement(re,{header:{title:Yh.t("Language")}},Ft.createElement(ie,null,Ft.createElement(cI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Ft.createElement(pI,{size:"8"}),Ft.createElement(fI,{value:t},Ft.createElement(uI,{type:Ft.createElement(dI,{title:Yh.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(Zh,"LanguagePage");import{i18n as to}from"@lingui/core";import{Button as kI,Checkbox as TI,Image as wI,ListItemButton as vI,NotFound as bI,Typography as xI}from"@rango-dev/ui";import et,{useState as EI}from"react";import{Checkbox as SI,Skeleton as Rh}from"@rango-dev/ui";import Ar from"react";import{styled as Oc}from"@rango-dev/ui";var Ir=Oc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Uc=Oc("div",{width:80,display:"flex",justifyContent:"flex-end"}),zc=Oc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as hI,styled as yI}from"@rango-dev/ui";var Jh=yI(hI,{height:61});var CI=30;function qc(){return Ar.createElement(Ir,null,Array.from(Array(CI),(t,e)=>Ar.createElement(Jh,{hasDivider:!0,key:e,start:Ar.createElement(Rh,{variant:"circular",width:35,height:35}),title:Ar.createElement(Rh,{variant:"text",size:"large",width:90}),end:Ar.createElement(SI,{checked:!1})})))}i(qc,"LoadingLiquiditySourceList");function Qc({sourceType:t}){let e=k().fetchStatus,o=k().swappers(),n=k().getDisabledLiquiditySources(),[r,a]=EI(""),s=k().toggleLiquiditySource,c=k().isInCampaignMode(),l=ii(o,n),p={Exchanges:to.t("Exchanges"),Bridges:to.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=l.filter(y=>u.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,h=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:C,groupTitle:T,logo:w,id:x,...A}=y;return{id:`widget-setting-liquidity-source-${iu(x.toLowerCase())}-item-btn`,start:et.createElement(wI,{src:w,size:22,type:"circular"}),onClick:()=>{c||s(T)},end:et.createElement(TI,{checked:C,disabled:c}),title:et.createElement(xI,{variant:"title",size:"xmedium"},to.t(T)),selected:C,groupTitle:T,logo:w,...A}}),d=i(y=>{let C=y.target.value;a(C)},"handleSearch"),S=g;return r&&(S=g.filter(y=>Mt(y.groupTitle,r))),et.createElement(re,{header:{title:to.t(t),suffix:et.createElement(Uc,null,et.createElement(kI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},f?to.t("Deselect all"):to.t("Select all")))}},et.createElement(ie,{view:!0},et.createElement(It,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:to.t("Search {sourceType}",{sourceType:p[t]}),onChange:d}),e==="loading"&&et.createElement(qc,null),!S.length&&r?et.createElement(zc,null,et.createElement(bI,{title:to.t("No results found"),description:to.t("Try using different keywords")})):e==="success"&&et.createElement(Ir,{disabled:c,className:"widget-liquidity-source-list"},S.map(y=>{let{groupTitle:C,...T}=y;return et.createElement(et.Fragment,{key:y.id},et.createElement(vI,{style:{height:"61px"},...T,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Qc,"LiquiditySourcePage");import{i18n as II}from"@lingui/core";import Ca from"react";import{useNavigate as AI}from"react-router-dom";function ey(){let t=AI(),e=Ke(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=U(),{fetch:c,loading:l}=Sa({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${O.settings}`,m=`../${O.wallets}`;return Ca.createElement(re,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:II.t("Routes"),suffix:Ca.createElement(_o,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Ca.createElement(ie,null,Ca.createElement(xr,{fetch:c,loading:l,onClickOnQuote:p})))}i(ey,"RoutesPage");import{i18n as sy}from"@lingui/core";import{Divider as ly,getCategoriesCount as FI,SelectableCategoryList as OI}from"@rango-dev/ui";import oo,{useState as cy}from"react";import{useNavigate as UI}from"react-router-dom";import{i18n as Hc}from"@lingui/core";import{Divider as LI,Image as MI,ListItemButton as PI,NotFound as _I,Typography as ay}from"@rango-dev/ui";import ft,{useEffect as DI,useState as $I}from"react";var ty=i((t,e,o)=>t.filter(n=>jr(n.type,o)).filter(n=>st(n.name,e)||st(n.displayName,e)),"filterBlockchains");import{ImageContainer as NI,styled as oy}from"@rango-dev/ui";var ny=oy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),ka=oy(Tl,{padding:0,margin:0,listStyle:"none",[`& ${NI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as BI,Skeleton as ry}from"@rango-dev/ui";import Ta from"react";var WI=20;function iy(){return Ta.createElement(ka,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(WI),t=>Ta.createElement(BI,{key:t,hasDivider:!0,start:Ta.createElement(ry,{variant:"circular",width:35,height:35}),title:Ta.createElement(ry,{variant:"text",size:"large",width:90})})))}i(iy,"LoadingBlockchainList");function Gc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=$I(e),{fetchStatus:l}=k();DI(()=>{c([...ty(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ft.createElement(_I,{title:Hc.t("No results found"),description:Hc.t("Try using different keywords")}):ft.createElement(ka,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ft.createElement(PI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ft.createElement(MI,{src:u.logo,size:30}),title:ft.createElement(ay,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ft.createElement(ft.Fragment,null,a&&ft.createElement(ft.Fragment,null,ft.createElement(ay,{variant:"label",size:"large"},Hc.t("Select Chain")),ft.createElement(LI,{size:4})),ft.createElement(ny,null,l==="loading"&&ft.createElement(iy,null),l==="success"&&p()))}i(Gc,"BlockchainList");function wa(t){let{type:e}=t,o=Ke(),[n,r]=cy(""),[a,s]=cy("ALL"),c=U.use.setToBlockchain(),l=U.use.setFromBlockchain(),{fetchStatus:p}=k(),u=UI(),m=k().blockchains({type:e}),f=FI(m),h=!t.hideCategory&&f!==1;return oo.createElement(re,{header:{title:sy.t("Select Chain")}},oo.createElement(ie,{view:!0},h&&oo.createElement(oo.Fragment,null,oo.createElement(OI,{setCategory:s,category:a,blockchains:m,isLoading:p==="loading"}),oo.createElement(ly,{size:24})),oo.createElement(It,{value:n,autoFocus:!0,placeholder:sy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:g=>r(g.target.value)}),oo.createElement(ly,{size:16}),oo.createElement(Gc,{list:m,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:g=>{e==="custom-token"?u(`..?blockchain=${g.name}`,{replace:!0}):(e==="source"?l(g):c(g),o())}})))}i(wa,"SelectBlockchainPage");import{i18n as xa}from"@lingui/core";import{Divider as hy,Spinner as tA}from"@rango-dev/ui";import So,{useEffect as oA,useState as nA}from"react";import{useNavigate as rA}from"react-router-dom";import{i18n as jc}from"@lingui/core";import{BlockchainsChip as va,Divider as my,Image as fy,Skeleton as VI,Tooltip as KI,Typography as Xc}from"@rango-dev/ui";import xe from"react";import{useEffect as QI}from"react";var py=["ETH","COSMOS","OSMOSIS"];function Vc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(zI),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let c=o.limit-e.length;for(let l=0;l<=c;l++){let p=n[l];s=s.filter(u=>p?.name!==u)}}n.sort(qI(s)),r=n.splice(a)}return{list:n,more:r}}i(Vc,"prepare");function zI(t,e){let o=py,n=o.findIndex(c=>c===t.name),r=o.findIndex(c=>c===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(zI,"sortByMostUsedBlockchains");function qI(t){return i(function(o,n){let r=t.findIndex(l=>l===o.name),a=t.findIndex(l=>l===n.name),s=r>-1,c=a>-1;return s&&c?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(qI,"generateSortByPreferredBlockchainsFor");function uy(t,e){return!!e.list.find(o=>o.name===t)}i(uy,"isInVisibleList");function Kc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=k();QI(()=>{if(e?.selected){let a=Vc(t,o,e);uy(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Vc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Kc,"usePrepareBlockchainList");import{styled as HI}from"@rango-dev/ui";var dy=HI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var jI=6,XI=12;function Yc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=te(),c=Kc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=k(),p=U.use.resetToBlockchain(),u=U.use.resetFromBlockchain(),m=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&m;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(my,{size:12}),xe.createElement(Xc,{variant:"label",size:"large"},jc.t("Select Chain"))),xe.createElement(my,{size:12}),xe.createElement(dy,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?jI:XI),(d,S)=>xe.createElement(VI,{key:S,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(va,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(Xc,{variant:"body",size:"xsmall",color:"secondary500"},jc.t("All"))),c.list.map(d=>xe.createElement(KI,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:N()},xe.createElement(va,{className:"widget-blockchains-section-item-btn",key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},xe.createElement(fy,{src:d.logo,size:30})))),h?xe.createElement(va,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(fy,{src:f.logo,size:30})):null,g?xe.createElement(va,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(Xc,{variant:"body",size:"xsmall",color:"secondary500"},jc._("More +{count}",{count:c.more.length}))):null)))}i(Yc,"BlockchainsSection");import{useCallback as ZI,useRef as JI,useState as Zc}from"react";function Jc(){let t=k().blockchains(),e=JI(null),{customTokens:o}=k(),[n,r]=Zc(!1),[a,s]=Zc([]),[c,l]=Zc(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await ct().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),d=new Set(o().map(C=>Ht(C))),S=new Set(t.map(C=>C.name)),y=g.tokens.filter(C=>S.has(C.blockchain)&&!d.has(Ht(C)));s(y),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=ZI(Kr((f,h)=>{e.current?.signal.aborted||p(f,h)},600),[t.length]);return{fetch:(f,h)=>{e.current=new AbortController,s([]),r(!0),u(f,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Jc,"useSearchCustomTokens");function ba(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(ba,"shouldSearchForCustomTokens");function gy(t,e,o,n,r){let a=[...t];return ba(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(gy,"prepareTokensList");function Ea(t){let{type:e}=t,o=rA(),n=Ke(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=U(),{getBalanceFor:u}=k(),{fetch:m,loading:f,tokens:h,cancel:g}=Jc(),[d,S]=nA(""),y=e==="source"?r:a,C=y?.name??"",T=k().blockchains({type:e}),w=k().tokens({type:e,blockchain:C,searchFor:d,getBalanceFor:u}),x=gy(w,h,d,f,y?.name),A=i(v=>{e==="source"?l(v):p(v)},"updateBlockchain"),I=i(v=>{e==="source"?s({token:v,meta:{blockchains:T}}):c({token:v,meta:{blockchains:T}})},"updateToken"),E={source:xa.t("Source"),destination:xa.t("Destination")};return oA(()=>(ba(w,d,y?.name)&&m(d,y?.name??void 0),()=>{g()}),[w.length,d,y?.name]),So.createElement(re,{header:{title:xa.t("Swap {type}",{type:E[e]})}},So.createElement(ie,null,So.createElement(Yc,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(O.blockchains),onChange:v=>{A(v)}}),So.createElement(hy,{size:24}),So.createElement(It,{value:d,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:xa.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>S(""),onChange:v=>S(v.target.value),suffix:ba(w,d,y?.name)&&f?So.createElement(tA,{size:12,color:"secondary"}):void 0}),So.createElement(hy,{size:16}),So.createElement(Sr,{list:x,selectedBlockchain:C,searchedFor:d,type:e,onChange:v=>{I(v);let b=T.find(B=>v.blockchain===B.name);b&&A(b),n()}})))}i(Ea,"SelectSwapItemsPage");import{i18n as op}from"@lingui/core";import{Alert as WA,Button as LA,styled as MA}from"@rango-dev/ui";import Qo from"react";import{useInRouterContext as PA,useSearchParams as _A}from"react-router-dom";import{i18n as wy}from"@lingui/core";import{Alert as lA,Divider as ep,InfoIcon as cA,SlippageIcon as pA,TextField as uA,Tooltip as dA,Typography as vy}from"@rango-dev/ui";import ze from"react";import{Chip as iA,styled as Nr,TextField as aA}from"@rango-dev/ui";var yy=Nr("div",{paddingTop:"$5",padding:"$10 $5"}),Sy=Nr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${aA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Cy=Nr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Ia=Nr("div",{maxWidth:"280px",padding:"$10"}),ky=Nr(iA,{width:"61px",flexShrink:0});import{i18n as Rc}from"@lingui/core";import{Typography as sA}from"@rango-dev/ui";import Br from"react";function Ty(){return Br.createElement(Ia,null,Br.createElement(sA,{variant:"label",size:"medium",color:"neutral700"},Rc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Br.createElement("br",null),Br.createElement("br",null),Br.createElement("b",null,Rc.t("Warning")),":\xA0",Rc.t("This setting is applied to each step (e.g. 1Inch, Thorchain, etc.), meaning only that specific step will be reverted, not the entire route.")))}i(Ty,"SlippageTooltipContent");function tp(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=k(),r=o!==null?en(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let m=u;u>$n&&(m=$n),n(m)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;su(u)||(p.value=u.slice(0,-1))},"onInput");return ze.createElement(yy,null,ze.createElement(Cy,null,ze.createElement(pA,{size:16,color:"gray"}),ze.createElement(ep,{direction:"horizontal",size:4}),ze.createElement(vy,{variant:"title",size:"xmedium"},wy.t("Slippage tolerance per swap")),ze.createElement(ep,{direction:"horizontal",size:4}),ze.createElement(dA,{container:N(),side:"top",sideOffset:4,content:ze.createElement(Ty,null)},ze.createElement(cA,{color:"gray"}))),ze.createElement(Sy,null,oi.map((l,p)=>{let u=`slippage-${p}`;return ze.createElement(ky,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),ze.createElement(uA,{type:"number",min:"0.01",max:"30",step:"0.01",status:r?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&ze.createElement(vy,{variant:"body",size:"small"},"%"),placeholder:wy.t("Custom")})),r&&ze.createElement(ze.Fragment,null,ze.createElement(ep,{size:10}),ze.createElement(lA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(tp,"Slippage");import{i18n as Tt}from"@lingui/core";import{AutoThemeIcon as by,BridgesIcon as mA,ChevronRightIcon as Aa,DarkModeIcon as xy,Divider as Wr,ExchangeIcon as fA,InfinityIcon as gA,InfoIcon as hA,LanguageIcon as yA,LightModeIcon as Ey,List as SA,ListItem as CA,ListItemButton as kA,Skeleton as TA,styled as wA,Switch as vA,Tabs as bA,TargetIcon as xA,Tooltip as EA,Typography as at}from"@rango-dev/ui";import $ from"react";import{useNavigate as IA}from"react-router-dom";var AA=wA("div",{width:"202px",height:"$40"}),NA=[{id:"light",icon:$.createElement(Ey,{color:"black",size:24}),tooltip:$.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Light"))},{id:"dark",icon:$.createElement(xy,{color:"black",size:24}),tooltip:$.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Dark"))},{id:"auto",icon:$.createElement(by,{color:"black",size:24}),tooltip:$.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Auto"))}],BA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return $.createElement(by,{...e});case"dark":return $.createElement(xy,{...e});default:return $.createElement(Ey,{...e})}},"getThemeIcon");function Iy(){let t=IA(),{theme:e}=k().config,{setTheme:o,theme:n}=k(),{activeLanguage:r,languages:a}=yo(),s=a.find(M=>M.local===r)?.label,c=k().fetchStatus,l=k().swappers(),p=k().getDisabledLiquiditySources(),{config:{features:u}}=k(),m=k().customTokens(),f=ot("theme",u),h=ot("liquiditySource",u),g=ot("language",u),d=ot("customTokens",u),S=k().infiniteApprove,y=k().toggleInfiniteApprove,C=ii(l,p),T=C.filter(M=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(M.type)),w=T.length,x=T.filter(M=>M.selected).length,A=C.filter(M=>M.type==="DEX"),I=A.length,E=A.filter(M=>M.selected).length,v=i((M,ee)=>{switch(c){case"loading":return $.createElement(TA,{variant:"text",size:"medium",width:50});case"failed":return $.createElement(at,{variant:"body",size:"medium",color:"$error500"},Tt.t("Loading failed"));default:return $.createElement(at,{variant:"body",size:"medium"},`${M} / ${ee}`)}},"handleSwapperEndItem"),b={id:"widget-setting-bridge-item-btn",title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Bridges")),end:$.createElement($.Fragment,null,v(x,w),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),onClick:()=>t(O.bridges),start:$.createElement(mA,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Exchanges")),end:$.createElement($.Fragment,null,v(E,I),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),start:$.createElement(fA,{color:"gray",size:16}),onClick:()=>t(O.exchanges)},P={id:"widget-setting-custom-tokens-item-btn",title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Custom Tokens")),end:$.createElement($.Fragment,null,$.createElement(at,{variant:"body",size:"medium"},`${m.length}`),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),start:$.createElement(xA,{color:"gray",size:16}),onClick:()=>t(O.customTokens)},F={id:"widget-setting-language-item-btn",title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Language")),start:$.createElement(yA,{color:"gray",size:16}),end:$.createElement($.Fragment,null,$.createElement(at,{variant:"body",size:"medium"},s),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),onClick:()=>t(O.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:$.createElement($.Fragment,null,$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Infinite approval")),$.createElement(Wr,{direction:"horizontal",size:4}),$.createElement(EA,{side:"top",sideOffset:4,container:N(),content:$.createElement(Ia,null,$.createElement(at,{variant:"label",size:"medium",color:"neutral700"},$.createElement("b",null,Tt.t("Warning")),":\xA0",Tt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},$.createElement(hA,{color:"gray"}))),start:$.createElement(gA,{color:"gray",size:16}),end:$.createElement(vA,{checked:S}),onClick:y},Z={id:"widget-setting-theme-item-btn",type:$.createElement(CA,null),title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Theme")),end:$.createElement(AA,null,$.createElement(bA,{container:N(),items:NA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:M=>o(M.id),type:"primary",borderRadius:"small"})),start:BA(n)},V=h?[]:[b,B];return d||V.push(P),g||V.push(F),V.push(q),!e?.singleTheme&&!f&&V.push(Z),$.createElement(SA,{type:$.createElement(kA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:V})}i(Iy,"SettingsLists");var DA=MA("div",{paddingLeft:"$8"});function Ay(){let{isInCampaignMode:t,updateCampaignMode:e}=k(),o=t(),[,n]=_A(),r=PA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Qo.createElement(re,{header:{title:op.t("Settings")}},Qo.createElement(ie,null,o&&Qo.createElement(WA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:op.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:Qo.createElement(DA,null,Qo.createElement(LA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},op.t("Reset")))}),Qo.createElement(tp,null),Qo.createElement(Iy,null)))}i(Ay,"SettingsPage");import{i18n as GN}from"@lingui/core";import{cancelSwap as VN}from"@rango-dev/queue-manager-rango-preset";import{useManager as KN}from"@rango-dev/queue-manager-react";import{Alert as jN}from"@rango-dev/ui";import Sp from"react";import{useParams as XN}from"react-router-dom";import{i18n as Ut}from"@lingui/core";import{getCurrentNamespaceOfOrNull as WN,getCurrentStep as LN,getRelatedWalletOrNull as MN}from"@rango-dev/queue-manager-rango-preset";import{Button as TS,Divider as PN,QuoteCost as _N,StepDetails as DN,Typography as dp}from"@rango-dev/ui";import{useWallets as $N}from"@rango-dev/wallets-react";import wS from"bignumber.js";import{PendingSwapNetworkStatus as An}from"rango-types";import Se,{useEffect as mp,useRef as fp,useState as $a}from"react";import{useNavigate as FN}from"react-router-dom";import{i18n as Co}from"@lingui/core";var $A=[Co.t("Sunday"),Co.t("Monday"),Co.t("Tuesday"),Co.t("Wednesday"),Co.t("Thursday"),Co.t("Friday"),Co.t("Saturday")];function Ny(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Co.t("Today"):`${$A[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Ny,"timeSince");function By(t){return t.finishTime?Ny(parseInt(t.finishTime)):Ny(parseInt(t.creationTime))}i(By,"getSwapDate");import Mr from"react";import{i18n as Na}from"@lingui/core";import{Button as Wy,Divider as np,MessageBox as FA}from"@rango-dev/ui";import ko from"react";var Ly=i(({onCancel:t,onClose:e})=>ko.createElement(ko.Fragment,null,ko.createElement(np,{size:20}),ko.createElement(FA,{type:"error",title:Na.t("Cancel Swap"),description:Na.t("Are you sure you want to cancel this swap?")}),ko.createElement(np,{size:32}),ko.createElement(Wy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Na.t("Yes, Cancel it")),ko.createElement(np,{size:12}),ko.createElement(Wy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Na.t("No, Continue"))),"CancelContent");import{i18n as Ba}from"@lingui/core";import{Button as My,Divider as rp,MessageBox as OA,Typography as UA}from"@rango-dev/ui";import no from"react";var Py=i(({onDelete:t,onClose:e})=>no.createElement(no.Fragment,null,no.createElement(rp,{size:20}),no.createElement(OA,{type:"error",title:Ba.t("Delete Transaction"),description:Ba.t("Are you sure you want to delete this swap?")}),no.createElement(rp,{size:32}),no.createElement(My,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Ba.t("Yes, Delete it")),no.createElement(rp,{size:12}),no.createElement(My,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},no.createElement(UA,{variant:"title",size:"medium",color:"primary"},Ba.t("No, Cancel")))),"DeleteContent");import{i18n as zA}from"@lingui/core";import{Button as qA,Divider as QA,MessageBox as HA}from"@rango-dev/ui";import Ho from"react";var _y=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Ho.createElement(Ho.Fragment,null,Ho.createElement(HA,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Ho.createElement(Ho.Fragment,null,Ho.createElement(QA,{size:"30"}),Ho.createElement(qA,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},zA.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as sN,getCurrentStep as lN,getRelatedWalletOrNull as cN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as pN}from"@rango-dev/ui";import{useWallets as uN}from"@rango-dev/wallets-react";import zy from"react";import{i18n as En}from"@lingui/core";import{Alert as $y,Button as VA,Checkbox as KA,Divider as Ma,Image as jA,MessageBox as XA,Spinner as YA,WarningIcon as ZA}from"@rango-dev/ui";import{useWallets as JA}from"@rango-dev/wallets-react";import ge,{useState as RA}from"react";import{darkTheme as GA,styled as Lr}from"@rango-dev/ui";var cX=Lr("div",{display:"flex",justifyContent:"center"}),pX=Lr("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Dy=Lr("img",{width:"100%"}),Wa=Lr("div",{position:"relative"}),La=Lr("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${GA} &`]:{$$color:"$warning600"}});var Fy=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=RA(null),{list:s}=vt(),c=te.use.isActiveTab(),{state:l,connect:p}=JA(),u=s.find(x=>x.type===e.walletType),m=u?.needsNamespace?.data.find(x=>x.value===o?.namespace);if(!u)return null;let f=l(e.walletType),h=u.isHub&&o?.namespace?f.namespaces?.get(o.namespace):null,g=f.connecting||h?.connecting,d=u.isHub?h?.connected:f.connected,S=i(()=>d?En.t("Done"):r?En.t("Try again"):En.t("Connect"),"getButtonTitle"),y=i(()=>g?ge.createElement(YA,{color:"info"}):r||d?null:ge.createElement(KA,{checked:!0,disabled:!0}),"getNamespaceSuffix"),C=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(x){a(x)}},"handleConnect"),T=i(async()=>{if(d){n();return}C()},"handleClickButton"),w=i(()=>{if(!d)return null;let x=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),A=x?.[x?.length-1];return A?io(A):null},"getAddress");return ge.createElement(ge.Fragment,null,ge.createElement(XA,{type:"warning",title:En.t("Connect {wallet}",{wallet:u.title}),description:En.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:ge.createElement(Wa,null,ge.createElement(jA,{src:u.image,size:45}),ge.createElement(La,null,ge.createElement(ZA,{color:"warning",size:10})))}),d&&!m&&ge.createElement(ge.Fragment,null,ge.createElement(Ma,{size:10}),ge.createElement($y,{type:"success",variant:"alarm",title:En.t("Wallet connected successfully.")})),r&&!m&&ge.createElement(ge.Fragment,null,ge.createElement(Ma,{size:10}),ge.createElement($y,{type:"error",title:r?.message,variant:"alarm"})),m&&ge.createElement(ge.Fragment,null,ge.createElement(Ma,{size:30}),ge.createElement(No,{namespace:m,suffix:y(),error:r?.message,connected:d,address:w()})),ge.createElement(Ma,{size:"40"}),ge.createElement(VA,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:T,disabled:!c},S()))},"ConnectWalletContent");import{i18n as Oy}from"@lingui/core";import{Button as eN,Divider as tN,Image as oN,MessageBox as nN,WarningIcon as rN}from"@rango-dev/ui";import{useWallets as iN}from"@rango-dev/wallets-react";import{detectInstallLink as aN}from"@rango-dev/wallets-shared";import ro from"react";var Uy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=iN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(aN(n.installLink),"_blank"),"handleButtonClick");return ro.createElement(ro.Fragment,null,ro.createElement(nN,{type:"warning",title:Oy.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:ro.createElement(Wa,null,ro.createElement(oN,{src:n.img,size:45}),ro.createElement(La,null,ro.createElement(rN,{color:"warning",size:10})))}),ro.createElement(tN,{size:"40"}),ro.createElement(eN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},Oy.t("Install")))},"InstallWalletContent");var qy=i(t=>{let{swap:e,onClose:o}=t,{state:n}=uN(),r=lN(e),a=r?cN(e,r):null,s=a?.walletType,c=s?Pn(n(s)):null,l=r?sN(e,r):null;return s?c===pN.NOT_INSTALLED?zy.createElement(Uy,{walletType:s}):zy.createElement(Fy,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function ip(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return Mr.createElement(J,{open:e,onClose:r,container:N()},o==="connectWallet"&&Mr.createElement(qy,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&Mr.createElement(_y,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&Mr.createElement(Py,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&Mr.createElement(Ly,{onClose:r,onCancel:()=>{r(),s()}}))}i(ip,"SwapDetailsModal");import{i18n as Pr}from"@lingui/core";import{Button as ap,Divider as _r,MessageBox as Gy,TokenAmount as dN,Typography as Vy}from"@rango-dev/ui";import ye from"react";import{Link as mN,useNavigate as fN}from"react-router-dom";var Qy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Hy="/profile";function sp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:m,diagnosisUrl:f}=t,h=fN(),{showProfileBanner:g}=te();return ye.createElement(J,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(tt.SWAP_BOX_ID)||document.body},n==="success"?ye.createElement(Gy,{type:"success",title:Pr.t("Swap Successful")},ye.createElement(dN,{direction:"vertical",tooltipContainer:N(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),ye.createElement(_r,{size:12}),ye.createElement(Vy,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):ye.createElement(Gy,{type:"error",title:Pr.t("Transaction Failed"),description:m}),ye.createElement(_r,{size:30}),n==="success"&&ye.createElement(ye.Fragment,null,g&&ye.createElement(ye.Fragment,null,ye.createElement(mN,{to:Hy},ye.createElement(Dy,{src:Qy,alt:"Profile Banner"})),ye.createElement(_r,{size:30})),ye.createElement(ap,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Pr.t("Done"))),ye.createElement(_r,{size:12}),f&&ye.createElement(ye.Fragment,null,ye.createElement(ap,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Pr.t("Diagnosis")),ye.createElement(_r,{size:12})),ye.createElement(ap,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},ye.createElement(Vy,{variant:"title",size:"medium",color:"primary"},Pr.t("See Details"))))}i(sp,"SwapDetailsCompleteModal");import{i18n as Da}from"@lingui/core";import{CopyIcon as EN,DoneIcon as IN,IconButton as AN,RangoExplorerIcon as NN,Tooltip as gS,Typography as hS,useCopyToClipboard as BN}from"@rango-dev/ui";import Nt from"react";import xN from"react";import{i18n as TN}from"@lingui/core";import{Alert as uS,IconButton as wN,LinkIcon as vN}from"@rango-dev/ui";import To,{Fragment as bN}from"react";import{Alert as hN,ChevronDownIcon as yN,IconButton as SN}from"@rango-dev/ui";import In,{useState as CN}from"react";import{css as Dr,darkTheme as Ky,styled as Ot,Typography as gN}from"@rango-dev/ui";var jy=Ot(ie,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Ky} &`]:{color:"$secondary500"}}}}}),Xy=Ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Yy=Ot("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),Zy=Ot("div",{padding:"$0 $20 $20 $20"}),mY=Ot("div",{display:"flex",flexDirection:"column",gap:"$10"}),Jy=Ot("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),fY=Ot("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Go=Dr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Ky} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Ry=Dr({padding:"$5 0"}),Pa=Dr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),eS=Dr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),tS=Dr({width:"100%",padding:"0 $20 $10"}),oS=Ot("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),nS=Ot("div",{display:"flex",flexDirection:"column",gap:"$5"}),_a=Ot(gN,{wordBreak:"break-word"});import{styled as lp}from"@rango-dev/ui";var rS=lp("div",{display:"flex",flexDirection:"column",gap:"$10"}),iS=lp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),aS=lp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function sS(t){let{message:e}=t,[o,n]=CN(!1);return In.createElement(hN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&In.createElement(SN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},In.createElement(iS,{rotated:o},In.createElement(yN,{size:12,color:"gray"}))),footer:In.createElement(aS,{open:o},In.createElement(_a,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(sS,"FailedAlert");import{i18n as lS}from"@lingui/core";import{Alert as cp,Button as cS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as kN}from"rango-types";import $r from"react";function pS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?$r.createElement(cp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:$r.createElement(cS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},lS.t("Change"))}):a===kN.WaitingForConnectingWallet?$r.createElement(cp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:$r.createElement(cS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},lS.t("Connect"))}):$r.createElement(cp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(pS,"WarningAlert");function pp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=Yn(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,m=u&&!c||p&&!s.explorerUrl?.length;return To.createElement(rS,null,s.explorerUrl?.map((f,h,g)=>{let d=h+f.url,S=h===g.length-1,y=(S&&u||p)&&!m,C=S&&s.status==="failed";return To.createElement(bN,{key:d},To.createElement(uS,{id:"widget-swap-details-tx-alert",type:S&&(y&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:TN.t("View transaction"),action:f.url&&To.createElement(wN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},To.createElement(vN,{size:12}))}))}),m&&To.createElement(uS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&To.createElement(pS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&To.createElement(sS,{message:a}))}i(pp,"SwapDetailsAlerts");var dS=2e3;var mS=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1]?.outputAmount||t.steps[s-1]?.expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:gt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:D(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:gt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:D(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Bn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:gt(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:gt(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Bn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:xN.createElement(pp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function fS(t){if(Yn(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(fS,"getStepState");function yS(t){let{requestId:e}=t,[o,n]=BN(dS);return Nt.createElement(Yy,{className:Go()},Nt.createElement(hS,{variant:"label",size:"large",color:"neutral700"},Da.t("Request ID")),Nt.createElement("div",{className:Pa()},Nt.createElement(hS,{variant:"label",size:"small",color:"neutral700"},e),Nt.createElement(gS,{container:N(),content:o?Da.t("Copied To Clipboard"):Da.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Nt.createElement(AN,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Nt.createElement(IN,{size:16,color:"secondary"}):Nt.createElement(EN,{size:16,color:"gray"}))),Nt.createElement(oS,{target:"_blank",href:`${Hp}/swap/${e}`},Nt.createElement(gS,{container:N(),content:Da.t("View on Rango Explorer"),side:"bottom"},Nt.createElement(NN,{size:20})))))}i(yS,"RequestIdRow");import{i18n as SS}from"@lingui/core";import{Typography as CS}from"@rango-dev/ui";import up from"react";function kS(t){let{date:e,isFinished:o}=t;return up.createElement("div",{className:Go()},up.createElement(CS,{variant:"label",size:"large",color:"neutral700"},o?SS.t("Finished at"):SS.t("Created at")),up.createElement(CS,{variant:"label",size:"small",color:"neutral700"},e))}i(kS,"SwapDateRow");var ON=3e3;function gp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=$N(),l=k().blockchains(),p=k().swappers(),{findToken:u}=k(),m=U.use.retry(),f=FN(),h=fp(null),[g,d]=$a(!1),[S,y]=$a(null),[C,T]=$a(null),[w,x]=$a(null),A=fp(S),I=fp(C),E=Ne.use.getNotifications(),v=Ne.use.removeNotification(),b=E(),B=LN(e),P=B?.networkStatus,F=i(Me=>{d(!0),y(Me)},"handleChangeModalState"),q=i(()=>{d(!1)},"handleCloseModal"),Z=i(()=>{T({type:"loading",title:Ut.t("Change Network"),description:`We\u2019re switching the connected network to ${R?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),V=i(()=>{T({type:"success",title:Ut.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),M=i(Me=>{T({type:"error",title:Ut.t("Network Switch Failed"),description:Me?.message||j.detailedMessage.content})},"handleShowSwitchNetworkFailed"),ee=Kd(e),R=B?WN(e,B):null,X=B?MN(e,B):null,we=By(e),se=jd(e),de=i(Me=>!!c(Me)?.mobileWallet,"checkIsMobileWallet"),Oe=!!P&&[An.WaitingForNetworkChange,An.NetworkChangeFailed].includes(P),wt=!!X?.walletType&&de(X.walletType),ve=!!X&&!!R&&a(X.walletType,R.network,R),L=!!R&&Oe&&(wt||ve),W=i(()=>{L&&(Z(),s(X.walletType,[{namespace:R.namespace,network:R.network}]).then(()=>{V()}).catch(Me=>{M(Me)}))},"handleSwitchNetwork"),H=i(()=>{F("switchNetwork"),W()},"handleSwitchNetworkClick"),j=Vd(e,B,c),K=mS({swap:e,switchNetworkIsAvailable:L,handleSwitchNetworkClick:H,showNetworkModal:P,setNetworkModal:F,message:j,blockchains:l,swappers:p}),me=K.length,[Qe,He]=[e.steps[0],e.steps[me-1]],be=He?.outputAmount||He?.expectedOutputAmountHumanReadable,Wt=e.steps.reduce((Me,Lt)=>Me+parseFloat(Lt.feeInUsd||""),0),Va=e.steps.find(Me=>Me.diagnosisUrl)?.diagnosisUrl,Ka=D(parseFloat(be||"0")*(He?.toUsdPrice||0),4,4),xp=D(parseFloat(e.inputAmount)*(Qe?.fromUsdPrice||0),4,4),Ep=be?new wS(be).multipliedBy(He.toUsdPrice||0).toString():"",YS=new wS(e.inputAmount).multipliedBy(Qe?.fromUsdPrice||0).toString(),ja=Vt(xp,Ka),Xa=j.detailedMessage.content||j.shortMessage,ZS=e.status==="success"?Ut.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:D(be,6,6),token:K[me-1]?.to.token.displayName,conciseAddress:io(e.wallets[K[me-1]?.to.chain.displayName||""]?.address||""),chain:K[me-1]?.to.chain.displayName}}):Se.createElement(nS,null,Se.createElement(dp,{variant:"body",size:"medium",color:"neutral700",align:"center"},Xa?"":Ut.t("Transaction was not sent."),ee?`${Ut.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:ee.outputAmount,symbol:ee.symbol,blockchain:ee.blockchain}})}`:""),Xa&&Se.createElement(_a,{align:"center",variant:"body",size:"medium",color:"neutral700"},Se.createElement("b",null,"Reason:")," ",Xa));return mp(()=>{b.find(Lt=>Lt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(x(e.status),v(e.requestId),q()):w&&x(null))},[e.status,e.requestId]),mp(()=>{if(L){if(F("switchNetwork"),P===An.WaitingForNetworkChange){Z();return}if(P===An.NetworkChangeFailed){M();return}return}if(P===An.WaitingForConnectingWallet){F("connectWallet");return}if(P===An.NetworkChanged){F("switchNetwork"),V();return}S&&["connectWallet","switchNetwork"].includes(S)&&q()},[P]),mp(()=>{if(A.current=S,I.current=C,S==="switchNetwork"&&C?.type==="success"){let Me=setTimeout(()=>{A.current==="switchNetwork"&&I.current?.type==="success"&&q()},ON);return()=>clearTimeout(Me)}},[S,C]),Se.createElement(re,{header:{title:Ut.t("Swap Details"),onCancel:e.status==="running"?()=>F("cancel"):void 0,suffix:e.status!=="running"&&Se.createElement(co,null,Se.createElement(TS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>F("delete")},Se.createElement(dp,{size:"medium",variant:"label",color:"error"},Ut.t("Delete"))))},footer:se&&!w&&Se.createElement(TS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Me=wi(e,l,u);m(Me),setTimeout(()=>{f("../../")},0)}},Ut.t("Try again"))},Se.createElement(jy,{compact:!0,ref:h},Se.createElement(yS,{requestId:o}),Se.createElement(kS,{date:we,isFinished:!!e.finishTime}),Se.createElement("div",{className:eS()},Se.createElement(_N,{fee:D(String(Wt),2,2),time:Ln(Yr(e.steps)),steps:me}),Se.createElement(lr,{from:{price:{value:D(e.inputAmount,6,6),usdValue:xp,realUsdValue:YS,realValue:e.inputAmount},token:{displayName:K[0]?.from.token.displayName||"",image:K[0]?.from.token.image},chain:{image:K[0]?.from.chain.image,displayName:K[0]?.from.chain.displayName||""}},to:{price:{value:D(be,6,6),usdValue:Ka,realUsdValue:Ep,realValue:be||""},token:{displayName:K[me-1]?.to.token.displayName||"",image:K[me-1]?.to.token.image},chain:{image:K[me-1]?.to.chain.image,displayName:K[me-1]?.to.chain.displayName||""}},percentageChange:D(ja,2,2),warningLevel:Kt(ja??0)})),Se.createElement("div",{className:tS()},Se.createElement(dp,{variant:"title",size:"small"},Ut.t("Swaps steps"))),Se.createElement(PN,{size:8}),Se.createElement(Zy,null,K.map((Me,Lt)=>{let Ip=Lt,Nn=e.steps[Lt]&&fS(e.steps[Lt]),JS=Nn==="error"||Nn==="in-progress"||Nn==="warning"||Nn==="completed"&&Lt===K.length-1;return Se.createElement(DN,{className:"widget-swap-details-step-item-container",key:Ip,step:Me,type:"swap-progress",ref:h,state:Nn,hasSeparator:Lt!==0,tabIndex:Ip,isFocused:JS,tooltipContainer:N()})}))),Se.createElement(ip,{isOpen:g,state:S,switchNetworkModalState:C,onClose:q,onCancel:r,onDelete:n,message:j.detailedMessage.content,swap:e,handleSwitchNetwork:H}),Se.createElement(sp,{open:!!w,diagnosisUrl:Va,onClose:()=>x(null),status:e.status==="success"?"success":"failed",priceValue:D(be,6,6),usdValue:Ka,realUsdValue:Ep,realValue:be||"",percentageChange:D(ja,2,2),token:{displayName:K[me-1]?.to.token.displayName||"",image:K[me-1]?.to.token.image},chain:{image:K[me-1]?.to.chain.image},description:ZS}))}i(gp,"SwapDetails");import{i18n as Oa}from"@lingui/core";import{Divider as xS,NotFound as HN,Skeleton as Or,Typography as Ua}from"@rango-dev/ui";import Ie from"react";import{i18n as UN}from"@lingui/core";import{Divider as zN,Skeleton as qN,Typography as QN}from"@rango-dev/ui";import Ee from"react";import{css as Bt,styled as hp}from"@rango-dev/ui";var vS=hp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Fr=hp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Fa=hp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),z7=Bt({display:"flex",justifyContent:"space-between",alignItems:"center"}),q7=Bt({display:"flex",justifyContent:"space-between",alignItems:"center"}),Q7=Bt({paddingTop:"$15",display:"flex"}),H7=Bt({padding:"$15 $0"}),G7=Bt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),V7=Bt({paddingBottom:"$10"}),K7=Bt({display:"flex",justifyContent:"start",alignItems:"center"}),j7=Bt({paddingTop:"$5",display:"flex",alignItems:"center"}),X7=Bt({display:"flex",alignItems:"center"}),Y7=Bt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),bS=Bt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function yp(){return Ee.createElement(vS,null,Ee.createElement(pr,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(QN,{variant:"title",size:"small"},UN.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Fr,null,Ee.createElement($t,{separator:!1}),Ee.createElement("div",{className:bS()},Ee.createElement(zN,{direction:"horizontal",size:20}),Ee.createElement(qN,{height:22,variant:"rectangular"}))),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement($t,{separator:!1})),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement($t,{separator:!1})),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement($t,{separator:!1}))))}i(yp,"LoadingSwapDetails");function ES(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(re,{header:{title:Oa.t("Swap Details"),suffix:Ie.createElement(co,null)}},o&&Ie.createElement(Xy,null,Ie.createElement("div",{className:Go()},Ie.createElement(Ua,{variant:"label",size:"large",color:"neutral700"},`${Oa.t("Request ID")}`),Ie.createElement("div",{className:Pa()},Ie.createElement(Ua,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"})),Ie.createElement(xS,{direction:"horizontal",size:4}),Ie.createElement(Or,{width:16,height:16,variant:"rectangular"}),Ie.createElement(xS,{direction:"horizontal",size:4}),Ie.createElement(Or,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:Go()},Ie.createElement(Ua,{className:Ry(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"})),Ie.createElement(Ua,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"}))),Ie.createElement(yp,null)),!o&&Ie.createElement(Jy,null,Ie.createElement(HN,{title:Oa.t("Not found"),description:Oa.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(ES,"SwapDetailsPlaceholder");function IS(){let{manager:t,state:e}=KN(),o=!e.loadedFromPersistor,n=kt(t),{requestId:r}=XN(),a=Ke(),{fetchStatus:s}=k();if(!r)return Sp.createElement(jN,{containerStyles:{margin:"20px"},type:"error",title:GN.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:f})=>f.requestId===r):void 0,p=i(()=>{if(l?.id){let f=t?.get(l.id);f&&VN(f)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),m=l?.swap;return!m||c?Sp.createElement(ES,{requestId:r,showSkeleton:c}):Sp.createElement(gp,{swap:m,requestId:r,onCancel:p,onDelete:u})}i(IS,"SwapDetailsPage");import{i18n as AS}from"@lingui/core";import{Divider as YN,getCategoriesCount as ZN,SelectableCategoryList as JN,styled as BS,Typography as RN,Wallet as e0,WalletState as t0}from"@rango-dev/ui";import{useWallets as o0}from"@rango-dev/wallets-react";import zt,{useState as NS}from"react";var n0=BS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),r0=BS(ie,{textAlign:"center"});function WS(){let{fetchStatus:t}=k(),[e,o]=NS("ALL"),n=k().blockchains(),{config:r}=k(),{state:a}=o0(),[s,c]=NS(),l=te.use.isActiveTab(),{list:p}=vt(),u=Cu(p,n),f=ZN(u)!==1,h=ku(p,e),g=i(d=>{eu(p,r.multiWallets)||c(d)},"handleWalletItemClick");return zt.createElement(re,{header:{title:AS.t("Connect Wallets")}},zt.createElement(r0,null,f&&zt.createElement(zt.Fragment,null,zt.createElement(JN,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),zt.createElement(YN,{size:24})),zt.createElement(RN,{variant:"title",size:"xmedium",align:"center"},AS.t("Choose a wallet to connect.")),zt.createElement(n0,null,h.map((d,S)=>{let C=a(d.type).namespaces,T=`wallet-${S}-${d.type}`,w=is(d,C);return zt.createElement(e0,{key:T,...d,state:w?t0.PARTIALLY_CONNECTED:d.state,container:N(),onClick:()=>g(d),isLoading:t==="loading",disabled:!l})}),zt.createElement(Kn,{id:"widget-state-full-connect-modal",wallet:s,onClose:()=>{c(void 0)}}))))}i(WS,"WalletsPage");function LS(){return Jd(),Vs(),i0([{path:O.home,element:qe.createElement(Xh,null)},{path:O.routes,element:qe.createElement(ey,null)},{path:O.fromSwap,children:[{index:!0,element:qe.createElement(Ea,{type:"source"})},{path:O.blockchains,element:qe.createElement(wa,{type:"source"})}]},{path:O.toSwap,children:[{index:!0,element:qe.createElement(Ea,{type:"destination"})},{path:O.blockchains,element:qe.createElement(wa,{type:"destination"})}]},{path:O.settings,children:[{index:!0,element:qe.createElement(Ay,null)},{path:O.languages,element:qe.createElement(Zh,null)},{path:O.exchanges,element:qe.createElement(Qc,{sourceType:"Exchanges"})},{path:O.bridges,element:qe.createElement(Qc,{sourceType:"Bridges"})},{path:O.customTokens,children:[{index:!0,element:qe.createElement(Zg,null)},{path:O.addCustomTokens,children:[{index:!0,element:qe.createElement(Vm,null)},{path:O.blockchains,element:qe.createElement(wa,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:O.swaps,children:[{index:!0,element:qe.createElement(yh,null)},{path:O.swapDetails,element:qe.createElement(IS,null)}]},{path:O.wallets,element:qe.createElement(WS,null)},{path:O.confirmSwap,element:qe.createElement($g,null)}])}i(LS,"AppRoutes");import{useQueueManager as f0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as g0}from"rango-sdk";import{useContext as h0,useEffect as OS,useState as US}from"react";import{globalCss as a0}from"@rango-dev/ui";var MS=i(()=>a0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function PS(){let{setWatermark:t,setShowProfileBanner:e}=te();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Qt("BASE_URL")}/meta/dapp/config?apiKey=${Qt("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(PS,"useFetchApiConfig");import{useWallets as s0}from"@rango-dev/wallets-react";import{useEffect as l0,useRef as c0}from"react";function _S(){let{connect:t,state:e}=s0(),o=c0({}),{fetchStatus:n}=k(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);l0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(_S,"useForceAutoConnect");import{isApprovalTX as p0,RouteEventType as DS,StepEventType as $S,StepExecutionEventStatus as u0,WidgetEvents as za}from"@rango-dev/queue-manager-rango-preset";import{useEffect as FS}from"react";function Cp(){let t=Ne.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=k();FS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===$S.TX_EXECUTION&&s.status===u0.TX_SENT&&!p0(c)||s.type===$S.SUCCEEDED){let u=[],m=l.wallets[c?.fromBlockchain];if(m){let f=e.find(h=>h.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&h.walletType===m.walletType&&h.chain===c?.fromBlockchain);f&&u.push(f)}if(c?.fromBlockchain!==c?.toBlockchain){let f=l.wallets[c?.toBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let f=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(d=>f.some(S=>S.blockchain===d.blockchain&&S.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&S.symbol?.toLocaleLowerCase()===d.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return Ce.on(za.StepEvent,r),()=>Ce.off(za.StepEvent,r)},[Ce,e]),FS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===DS.FAILED||s.type===DS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return Ce.on(za.RouteEvent,r),()=>Ce.off(za.RouteEvent,r)},[Ce])}i(Cp,"useSubscribeToWidgetEvents");import{useManager as d0}from"@rango-dev/queue-manager-react";import{useEffect as m0}from"react";function kp(){let{isSynced:t,syncNotifications:e}=Ne(),{manager:o,state:n}=d0();m0(()=>{Ne.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(kt(o))},[Ne.persist.hasHydrated(),n.loadedFromPersistor,t])}i(kp,"useSyncNotifications");function Tp(){_S(),MS(),Cp(),kp();let t=k().blockchains(),{canSwitchNetworkTo:e}=Hi(),[o,n]=US(null),[r,a]=US(),s=h0(Ci),c=t.filter(g0),{fetchApiConfig:l}=PS();OS(()=>()=>Zd(),[]),f0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),OS(()=>(Ao.init(),Ne.persist.hasHydrated()||Ne.persist.rehydrate(),s.onConnectWallet(p=>{n(u=>{if(!u||u.walletType!==p.walletType)return p;let m={...u};return p.network&&(m.network=p.network),p.accounts&&(m.accounts=p.accounts),m})}),s.onDisconnectWallet(p=>{a(p),n(u=>p===u?.walletType?null:u)}),l().catch(console.log),Ao.destroy),[])}i(Tp,"useBootstrap");import{styled as y0}from"@rango-dev/ui";var zS=y0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function qa(){Tp();let{config:t}=k(),{activeTheme:e}=lo(t?.theme||{}),{activeLanguage:o}=yo();return wp.createElement(S0,{language:o},wp.createElement(zS,{id:"swap-container",className:e()},wp.createElement(LS,null)))}i(qa,"Main");import{setSolanaSignerConfig as F0}from"@rango-dev/signer-solana";import bp,{useEffect as KS,useMemo as O0}from"react";import{useState as C0}from"react";var k0=i(()=>{let[t,e]=C0(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Rp(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),qS=k0;import{checkWaitingForNetworkChange as T0,makeQueueDefinition as w0}from"@rango-dev/queue-manager-rango-preset";import{Provider as v0}from"@rango-dev/queue-manager-react";import{useWallets as b0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as x0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as E0}from"rango-types";import I0,{useMemo as A0}from"react";function N0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=b0(),c=A0(()=>w0({API_KEY:t.apiKey||Qt("API_KEY"),BASE_URL:Qt("BASE_URL"),emitter:{emit:Ce.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=k(),u=l(),m={blockchains:p.map(w=>({accounts:[w],name:w.chain}))},f=i(async(w,x)=>a(w,x.network,x)?await r(w,[x]):void 0,"switchNetwork"),h=i(w=>!!s(w).mobileWallet,"isMobileWallet"),g=u.filter(w=>w.enabled).reduce((w,x)=>(w[x.name]=x,w),{}),d=u.filter(E0),S=i(w=>{let{supportedChains:x}=s(w);return _n(x)},"getSupportedChainNames"),y=e(),C={meta:{blockchains:g,evmBasedChains:d,evmNetworkChainInfo:x0(d),getSupportedChainNames:S},getSigners:o,wallets:m,providers:y,switchNetwork:f,canSwitchNetworkTo:a,state:n,isMobileWallet:h},T=te.use.isActiveTab();return I0.createElement(v0,{queuesDefs:[c],context:C,onPersistedDataLoaded:w=>{T0(w)},isPaused:!T},t.children)}i(N0,"QueueManager");var QS=N0;import{useManager as P0}from"@rango-dev/queue-manager-react";import _0,{createContext as D0,useContext as $0}from"react";function HS(){let{findToken:t}=k(),e=k().blockchains(),o=k().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=U();return i(p=>{let{fromBlockchain:u,fromToken:m,toBlockchain:f,toToken:h,requestAmount:g}=p,d={blockchains:e,tokens:o};if(u!==void 0){let S=e.find(y=>y.name===u)??null;n(S)}if(m!==void 0){let S=m?t(m)??null:null;r({meta:d,token:S})}if(f!==void 0){let S=e.find(y=>y.name===f)??null;a(S)}if(h!==void 0){let S=h?t(h)??null:null;s({meta:d,token:S})}g!==void 0&&c(g)},"updateQuoteInputs")}i(HS,"useUpdateQuoteInputs");import{cancelSwap as B0,getCurrentNamespaceOfOrNull as W0,getCurrentStep as L0,getRelatedWalletOrNull as M0}from"@rango-dev/queue-manager-rango-preset";var Qa=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return kt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=wi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&B0(o)}getCurrentStepInfo(e){let o=L0(e);return{step:o,wallet:o?M0(e,o):null,network:o?W0(e,o)?.network:null}}};var GS=D0(void 0);function vp(t){let{manager:e}=P0(),o=te.use.isActiveTab(),n=U.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=k(),l=new Qa(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=k(),u=mu(a()),m=k().blockchains(),f=k().tokens(),h=k().swappers(),g=k().fetchStatus,d=yo().resetLanguage,S=Ne().getNotifications(),y=Ne().clearNotifications,C=HS(),{fromBlockchain:T,toBlockchain:w,fromToken:x,toToken:A,inputAmount:I}=U(),E={isActiveTab:o,setCurrentTabAsActive:Ao.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async v=>c(v)},meta:{blockchains:m,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:d,notifications:{list:S,clearAll:y},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:w?.name??null,toToken:A?{symbol:A.symbol,blockchain:A.blockchain,address:A.address}:null,requestAmount:I},updateQuoteInputs:C}};return _0.createElement(GS.Provider,{value:E},t.children)}i(vp,"WidgetInfo");function VS(){let t=$0(GS);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(VS,"useWidget");function Ha(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=qS();return KS(()=>{n&&r(n)},[n]),O0(()=>{Tu({API_KEY:o?.apiKey||Gr,BASE_URL:o?.apiUrl||Qp})},[o.apiKey,o.apiUrl]),KS(()=>{t.config?.signers?.customSolanaRPC&&F0("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),bp.createElement(ki,{config:o,onUpdateState:e},bp.createElement(QS,{apiKey:o.apiKey},bp.createElement(vp,null,t.children)))}i(Ha,"WidgetProvider");function jS(t){let e=t.config?.externalWallets;return Ga.createElement(Cd,null,e?Ga.createElement(qa,null):Ga.createElement(Ha,{config:t.config??Qr},Ga.createElement(qa,null)))}i(jS,"Widget");function XS(){let{on:t,off:e}=Ce;return{on:t,off:e}}i(XS,"useWidgetEvents");var nee={DerivationPath:Hn,Namespaces:qn,Detached:Qn,isOnDerivationPath:Vn,isOnNamespace:Gn,isOnDetached:wo};export{NR as EventSeverity,Jo as MainEvents,OR as Networks,qR as PendingSwapNetworkStatus,ps as QuoteEventTypes,BR as RouteEventType,Ra as SUPPORTED_FONTS,nee as StatefulConnect,WR as StepEventType,LR as StepExecutionBlockedEventStatus,MR as StepExecutionEventStatus,tt as UI_ID,ds as UiEventTypes,us as WalletEventTypes,$R as WalletEvents,UR as WalletTypes,jS as Widget,Jo as WidgetEvents,Ha as WidgetProvider,ki as WidgetWallets,sl as customizedThemeTokens,_R as readAccountAddress,Vo as useStatefulConnect,vt as useWalletList,Hi as useWallets,VS as useWidget,XS as useWidgetEvents,tk as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map