@rango-dev/widget-embedded 0.0.0-experimental-1624fbb4-20260708 → 0.0.0-experimental-a84f27a7-20260921
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +47 -0
- package/dist/QueueManager.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +1 -1
- package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts.map +1 -1
- package/dist/components/CustomDestination/CustomDestination.styles.d.ts +4 -4
- package/dist/components/CustomDestination/CustomDestination.styles.d.ts.map +1 -1
- package/dist/components/CustomTokenModal/CustomTokenModal.styles.d.ts +169 -169
- package/dist/components/CustomTokenModal/CustomTokenModal.styles.d.ts.map +1 -1
- package/dist/components/FilterSelector/FilterSelector.style.d.ts +1 -1
- package/dist/components/FilterSelector/FilterSelector.style.d.ts.map +1 -1
- package/dist/components/HeaderButtons/HeaderButtons.styles.d.ts +1 -1
- package/dist/components/HeaderButtons/HeaderButtons.styles.d.ts.map +1 -1
- package/dist/components/NamespaceItem/NamespaceItem.d.ts.map +1 -1
- package/dist/components/NamespaceItem/NamespaceItem.styles.d.ts +1 -1
- package/dist/components/NamespaceItem/NamespaceItem.styles.d.ts.map +1 -1
- package/dist/components/NamespaceItem/NamespaceItem.types.d.ts +3 -3
- package/dist/components/NamespaceItem/NamespaceItem.types.d.ts.map +1 -1
- package/dist/components/Quote/Quote.d.ts.map +1 -1
- package/dist/components/Quote/Quote.styles.d.ts +171 -171
- package/dist/components/Quote/Quote.styles.d.ts.map +1 -1
- package/dist/components/Quote/Quote.types.d.ts +0 -2
- package/dist/components/Quote/Quote.types.d.ts.map +1 -1
- package/dist/components/Quote/QuoteCostDetails.d.ts.map +1 -1
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts +169 -169
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts.map +1 -1
- package/dist/components/RefreshModal/RefreshModal.styles.d.ts +168 -168
- package/dist/components/RefreshModal/RefreshModal.styles.d.ts.map +1 -1
- package/dist/components/StatefulConnectModal/StatefulConnectModal.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.styles.d.ts +1 -1
- package/dist/components/SwapDetails/SwapDetails.styles.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.ConnectWallet.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.InstallWallet.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts +3 -3
- package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts.map +1 -1
- package/dist/components/SwapMetrics/SwapMetrics.styles.d.ts +1 -1
- package/dist/components/SwapMetrics/SwapMetrics.styles.d.ts.map +1 -1
- package/dist/components/TokenList/TokenList.styles.d.ts +2 -2
- package/dist/components/TokenList/TokenList.styles.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/DerivationPath.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/DerivationPath.helpers.d.ts +7 -3
- package/dist/components/WalletStatefulConnect/DerivationPath.helpers.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/DerivationPath.helpers.test.d.ts +2 -0
- package/dist/components/WalletStatefulConnect/DerivationPath.helpers.test.d.ts.map +1 -0
- package/dist/components/WalletStatefulConnect/DerivationPath.styles.d.ts +169 -169
- package/dist/components/WalletStatefulConnect/DerivationPath.styles.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/Detached.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/NamespaceDetachedItem.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/Namespaces.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/Namespaces.styles.d.ts +168 -168
- package/dist/components/WalletStatefulConnect/Namespaces.styles.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts +3 -3
- package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts.map +1 -1
- package/dist/constants/errors.d.ts +1 -0
- package/dist/constants/errors.d.ts.map +1 -1
- package/dist/containers/Wallets/Wallets.d.ts.map +1 -1
- package/dist/containers/Wallets/Wallets.helpers.d.ts +2 -2
- package/dist/containers/Wallets/Wallets.helpers.d.ts.map +1 -1
- package/dist/containers/Wallets/Wallets.types.d.ts +4 -4
- package/dist/containers/Wallets/Wallets.types.d.ts.map +1 -1
- package/dist/containers/Wallets/useUpdates.d.ts +1 -1
- package/dist/containers/Wallets/useUpdates.d.ts.map +1 -1
- package/dist/containers/WidgetProvider/WidgetProvider.d.ts.map +1 -1
- package/dist/containers/WidgetProvider/WidgetProvider.helpers.d.ts +5 -0
- package/dist/containers/WidgetProvider/WidgetProvider.helpers.d.ts.map +1 -0
- package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts +1 -1
- package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts.map +1 -1
- package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts.map +1 -1
- package/dist/hooks/useStatefulConnect/useStatefulConnect.types.d.ts +5 -4
- package/dist/hooks/useStatefulConnect/useStatefulConnect.types.d.ts.map +1 -1
- package/dist/hooks/useWalletList.d.ts.map +1 -1
- package/dist/hooks/useWalletProviders/useWalletProviders.d.ts +2 -2
- package/dist/hooks/useWalletProviders/useWalletProviders.d.ts.map +1 -1
- package/dist/hooks/useWalletProviders/useWalletProviders.helpers.d.ts +2 -3
- package/dist/hooks/useWalletProviders/useWalletProviders.helpers.d.ts.map +1 -1
- package/dist/index.d.ts +10 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +4 -4
- package/dist/store/AppStore.d.ts +2 -2
- package/dist/store/AppStore.d.ts.map +1 -1
- package/dist/store/app.d.ts +2 -2
- package/dist/store/app.d.ts.map +1 -1
- package/dist/store/slices/config.d.ts +5 -5
- package/dist/store/slices/config.d.ts.map +1 -1
- package/dist/test-utils/fixtures.d.ts +2 -2
- package/dist/test-utils/fixtures.d.ts.map +1 -1
- package/dist/types/config.d.ts +25 -4
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/wallets.d.ts +1 -1
- package/dist/types/wallets.d.ts.map +1 -1
- package/dist/utils/common.d.ts +1 -0
- package/dist/utils/common.d.ts.map +1 -1
- package/dist/utils/connectionReporting.d.ts +24 -0
- package/dist/utils/connectionReporting.d.ts.map +1 -0
- package/dist/utils/connectionReporting.test.d.ts +2 -0
- package/dist/utils/connectionReporting.test.d.ts.map +1 -0
- package/dist/utils/errors.d.ts +14 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.test.d.ts +2 -0
- package/dist/utils/errors.test.d.ts.map +1 -0
- package/dist/utils/providers.d.ts +3 -6
- package/dist/utils/providers.d.ts.map +1 -1
- package/dist/utils/swap.d.ts +1 -1
- package/dist/utils/swap.d.ts.map +1 -1
- package/dist/utils/wallets.d.ts +2 -1
- package/dist/utils/wallets.d.ts.map +1 -1
- package/package.json +16 -16
- package/src/QueueManager.tsx +17 -8
- package/src/components/NamespaceItem/NamespaceItem.styles.ts +1 -0
- package/src/components/NamespaceItem/NamespaceItem.tsx +5 -1
- package/src/components/NamespaceItem/NamespaceItem.types.ts +3 -3
- package/src/components/Quote/Quote.tsx +0 -2
- package/src/components/Quote/Quote.types.ts +0 -2
- package/src/components/Quote/QuoteCostDetails.tsx +15 -4
- package/src/components/StatefulConnectModal/StatefulConnectModal.tsx +8 -2
- package/src/components/SwapDetails/SwapDetails.tsx +18 -6
- package/src/components/SwapDetailsModal/SwapDetailsModal.ConnectWallet.tsx +23 -23
- package/src/components/SwapDetailsModal/SwapDetailsModal.InstallWallet.tsx +8 -2
- package/src/components/SwapDetailsModal/SwapDetailsModal.types.ts +3 -3
- package/src/components/TokenList/LoadingTokenList.tsx +2 -2
- package/src/components/WalletStatefulConnect/DerivationPath.helpers.test.ts +98 -0
- package/src/components/WalletStatefulConnect/DerivationPath.helpers.ts +14 -10
- package/src/components/WalletStatefulConnect/DerivationPath.tsx +14 -7
- package/src/components/WalletStatefulConnect/Detached.tsx +17 -8
- package/src/components/WalletStatefulConnect/NamespaceDetachedItem.tsx +2 -1
- package/src/components/WalletStatefulConnect/Namespaces.tsx +6 -12
- package/src/components/WalletStatefulConnect/Namespaces.types.tsx +3 -3
- package/src/constants/errors.ts +3 -0
- package/src/containers/Wallets/Wallets.helpers.ts +4 -4
- package/src/containers/Wallets/Wallets.tsx +20 -3
- package/src/containers/Wallets/Wallets.types.ts +4 -7
- package/src/containers/Wallets/useUpdates.ts +4 -119
- package/src/containers/WidgetProvider/WidgetProvider.helpers.ts +10 -0
- package/src/containers/WidgetProvider/WidgetProvider.tsx +12 -1
- package/src/containers/WidgetProvider/WidgetProvider.types.ts +1 -1
- package/src/hooks/useStatefulConnect/useStatefulConnect.ts +30 -31
- package/src/hooks/useStatefulConnect/useStatefulConnect.types.ts +6 -3
- package/src/hooks/useWalletList.ts +10 -7
- package/src/hooks/useWalletProviders/useWalletProviders.helpers.ts +3 -10
- package/src/hooks/useWalletProviders/useWalletProviders.ts +2 -2
- package/src/index.ts +10 -11
- package/src/store/AppStore.tsx +4 -2
- package/src/store/app.ts +7 -2
- package/src/store/slices/config.ts +36 -25
- package/src/store/slices/data.test.ts +2 -2
- package/src/test-utils/fixtures.ts +6 -2
- package/src/types/config.ts +31 -4
- package/src/types/wallets.ts +1 -1
- package/src/utils/common.ts +6 -0
- package/src/utils/connectionReporting.test.ts +379 -0
- package/src/utils/connectionReporting.ts +94 -0
- package/src/utils/errors.test.ts +125 -0
- package/src/utils/errors.ts +88 -0
- package/src/utils/providers.ts +16 -50
- package/src/utils/swap.ts +8 -1
- package/src/utils/wallets.ts +12 -15
- package/dist/widget-embedded.build.json +0 -1
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
var vT=Object.defineProperty;var i=(t,e)=>vT(t,"name",{value:e,configurable:!0});import{EventSeverity as vee,RouteEventType as Eee,StepEventType as bee,StepExecutionBlockedEventStatus as xee,StepExecutionEventStatus as Iee}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as Nee}from"@rango-dev/wallets-core/legacy";import{useWallets as pT,Events as Pee}from"@rango-dev/wallets-react";import{Networks as Bee,WalletTypes as _ee}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as Dee}from"rango-types";import{Divider as zk}from"@rango-dev/ui";import mo,{useEffect as Hk,useRef as Qk,useState as kd}from"react";import{WalletState as ET}from"@rango-dev/ui";import{useWallets as bT}from"@rango-dev/wallets-react";import{useReducer as xT}from"react";function _p(t){return!!t.derivationPath}i(_p,"isStateOnDerivationPathStep");function Mp(t){return!!t.namespace}i(Mp,"isStateOnNamespace");var ei={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Dp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return ei;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:ei;default:throw new Error("Action hasn't been defined.")}}i(Dp,"reducer");function an(){let{state:t,disconnect:e,connect:o}=bT(),[n,r]=xT(Dp,ei),a=i(async(d,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(d.type,g),{status:"connected"}}catch(g){let m=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";if(h?.disconnectOnError)try{await u(d)}catch{console.warn("An error happened during disconnecting wallet after error on connecting.")}throw new Error(m,{cause:g})}},"runConnect"),s=i(async(d,f)=>{let h=d.state===ET.DISCONNECTED,g=f?.forceConnectToNamespaces;if(h){let m=!!d.isHub,S=m?d.properties?.find(y=>y.name==="namespaces")?.value:d.needsNamespace,T=m?d.properties?.find(y=>y.name==="derivationPath")?.value:d.needsDerivationPath;if(g){let y=g.find(k=>!S?.data?.map(w=>w.value).includes(k));if(y)throw new Error(`One of the forced namespaces is not available in the wallet. Forced namespace: ${y}`);if(g.length>1&&T)throw new Error("Derivation path is not supported when multiple namespaces are selected.");return g.length===1&&g[0]&&T?(r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:g[0]}}),{status:"derivation-path"}):await a(d,g.map(k=>({namespace:k})),{...f,disconnectOnError:!0})}if(!S?.data?.length)return await a(d,void 0,f);if(S?.data.length&&S.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(S?.data.length===1&&S.data[0]){if(T){let y=S.data[0];return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y.value}}),{status:"derivation-path"}}return await a(d,S?.data?.map(y=>({namespace:y.value})),f)}}if(d.isHub&&!f?.forceConnectToNamespaces){let m=d.properties?.find(S=>S.name==="namespaces")?.value;if(m?.data.length&&m.data.length>1)return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(d,f)=>{let h=!!d.isHub,g=h?d.properties?.find(k=>k.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(k=>k.name==="derivationPath")?.value:d.needsDerivationPath,S=g?.selection==="single",T=f[0];if(!T)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:T}}),{status:"derivation-path"};if(!Mp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let y=f.map(k=>({namespace:k}));return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:y??null}}),{status:"Detached"}},"handleNamespace"),l=i(async(d,f,h)=>{if(!f)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!_p(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let m=[{namespace:n.derivationPath.namespace,derivationPath:f}],T=!!d.isHub?d.properties?.find(w=>w.name==="namespaces")?.value:d.needsNamespace,y=!!T?.data&&T.data.length>1,k=!!h?.forceConnectToNamespaces;return y&&!k?(r({type:"detached",payload:{targetWallet:d,selectedNamespaces:m??null,derivationPath:f}}),{status:"Detached"}):await a(d,m)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let f=t(d.type);return f.connected||f.connecting?(await e(d.type),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(an,"useStatefulConnect");import{WalletState as yi}from"@rango-dev/ui";import{useWallets as $C}from"@rango-dev/wallets-react";import{detectMobileScreens as FC,WalletTypes as Mt}from"@rango-dev/wallets-shared";import{useCallback as OC,useEffect as Yu}from"react";import LC,{createContext as BC,useContext as _C,useEffect as MC,useRef as DC}from"react";import{create as WC}from"zustand";import{persist as PC}from"zustand/middleware";import{allProviders as IT}from"@rango-dev/provider-all";var ns=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()}},sn=new ns;import{Provider as rs}from"@hub3js/core";import{defineVersions as Fp,pickVersion as Op}from"@hub3js/core/utils";function Up({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=is(a);return s instanceof rs?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 rs?o.push(Fp().version("1.0.0",n).build()):o.push(Fp().version("0.0.0",n).build())}),o}return t}i(Up,"matchAndGenerateProviders");function is(t){try{return Op(t,"1.0.0")[1]}catch{return Op(t,"0.0.0")[1]}}i(is,"pickProviderVersionWithFallbackToLegacy");function zp(t){return t.map(o=>is(o)).map(o=>o instanceof rs?o.id:o.config.type)}i(zp,"configWalletsToWalletName");function Hp(t,e){return e.find(o=>o.name===t)?.displayName}i(Hp,"getBlockchainDisplayNameFor");function Tt(t,e){return e.find(o=>o.name===t)?.shortName}i(Tt,"getBlockchainShortNameFor");function Qp(t,e){return e.find(o=>o.name===t)?.logo}i(Qp,"getBlockchainImage");function Kn(t,e){return e.find(o=>o.id===t)?.title}i(Kn,"getSwapperDisplayName");function Po(t,e){return e.find(o=>o.name===t)??null}i(Po,"findBlockchain");function as(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(as,"isTokenNative");function Ct(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(Ct,"createTokenHash");function Lo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Lo,"isValidTokenAddress");function ti(t){let{contractAddress:e,blockchainMeta:o}=t;return o.info?.tokenUrl?o.info.tokenUrl.replace("{address}",e):o.info?.addressUrl.replace("{wallet}",e)}i(ti,"createTokenExplorerUrl");function jn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=Ct(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=Ct(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(jn,"matchTokensFromConfigWithMeta");function oi(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(oi,"getSupportedBlockchainsFromConfig");function Gp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Gp,"makeProvidersOptionsFromConfig");var ln={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/manifests/tonconnect/manifest.json"}},AT={clientUrl:void 0},NT={liquiditySources:void 0};function qp(t){let e=Gp(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return IT(o).map(a=>a())}i(qp,"generateProviders");var Vp=i((t,e,o)=>{let n=qp({...ln,...t});return{config:{...ln,...t},iframe:AT,campaignMode:NT,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=jn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=jn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});sn.set("supportedSourceTokens",l),sn.set("supportedDestinationTokens",p),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=qp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Gp(a);return Up({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Kp}from"rango-types";var jp=[Kp.EVM,Kp.SOLANA],ni="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as GT}from"rango-sdk";function Xp(){return process.env.REACT_APP_RANGO_API_KEY}i(Xp,"getApiKeyFromEnv");function Yp(){let t=Xp();if(t)return t;throw new Error("Ensure you have set REACT_APP_RANGO_API_KEY in your env variables.")}i(Yp,"getApiKeyFromEnvOrThrow");function Zp(){return Xp()||"NOT_SET"}i(Zp,"getApiKeyFromEnvOrNotSet");import{BlockchainCategories as DT,WalletState as ut}from"@rango-dev/ui";import{legacyReadAccountAddress as $T}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as FT,HYPERLIQUID_SIGN_NETWORK as OT,getBlockChainNameFromId as UT,isEvmAddress as zT,Networks as ds}from"@rango-dev/wallets-shared";import pn from"bignumber.js";import WT from"bignumber.js";var ue=new WT(0);var Bo="~",Jp=[];import{BlockchainCategories as ls,WalletState as MT}from"@rango-dev/ui";import{TransactionType as cs}from"rango-sdk";import{UI_ID as PT}from"@rango-dev/ui";var Rp="https://api.rango.exchange",eu="https://explorer.rango.exchange",kt={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...PT};var tu="Roboto",ss=[{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 cn(t){return Array.from(new Set(t))}i(cn,"removeDuplicateFrom");function ri(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(ri,"debounce");function pt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(pt,"containsText");function ru(t,e){return t.toLowerCase()===e.toLowerCase()}i(ru,"exactText");function iu(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(iu,"startWithText");var W=i(()=>document.getElementById(kt.SWAP_BOX_ID),"getContainer"),_o=i(()=>document.getElementById(kt.EXPANDED_BOX_ID),"getExpanded");function au(t,e,o){let n=!!e&&ru(e,t),r=!!o&&ru(o,t);return n!==r?n?-1:1:0}i(au,"compareExactMatchText");function ps(t,e,o){let n=!!e&&pt(e,t),r=!!o&&pt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ps,"compareContainsText");function us(t,e,o){let n=!!e&&iu(e,t),r=!!o&&iu(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(us,"compareStartWithText");function su(t,e,o){if(!o)return 0;let n=au(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=au(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=us(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ps(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=us(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ps(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=us(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ps(o,t.address,e.address);if(r!==0)return r}return 0}i(su,"compareWithSearchFor");var ii=i((t,e)=>{switch(e){case ls.ALL:return!0;case ls.UTXO:return t===cs.TRANSFER;case ls.OTHER:return t!==cs.TRANSFER&&t!==cs.EVM;default:return t===e}},"isBlockchainTypeInCategory"),lu=i(t=>ss.find(o=>o.value===t)?.url,"getFontUrlByName");function cu(t,e){let o=!!t.find(n=>n.state===MT.CONNECTED);return e===!1&&o}i(cu,"isSingleWalletActive");function pu(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(pu,"memoizedResult");function uu(t,e){let o=new Set;return e.forEach(n=>{o.add(n.blockchain)}),t.filter(n=>o.has(n.name))}i(uu,"filterBlockchainsWithAtLeastOneToken");import{BigNumber as Cu}from"bignumber.js";function du(t){return t.replace(/^0+(?=\d)/g,"")}i(du,"removeLeadingZeros");function mu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(mu,"ensureLeadingZeroForDecimal");function fu(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(fu,"formatThousandsWithCommas");function gu(t){return t.replace(/\s+/g,"-")}i(gu,"replaceSpacesWithDash");function hu(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(hu,"stripTrailingZeros");function yu(t){return t=t.replace(/[^\d.]/g,"").replace(/\./g,(e,o,n)=>n.indexOf(".")===o?".":""),t}i(yu,"parseNumericValue");function ai(t){return/^0+(?:\.0+)?$/.test(t)}i(ai,"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 Tu(t){return/\d+$/.test(t)}i(Tu,"isColorKeyOverridden");var Xn=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new 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 si=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var _t=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Yn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ku(t){return ai(t)?"0":t.endsWith(".")?t.slice(0,-1):hu(t)}i(ku,"sanitizeInputAmount");function HT(t,e){let o=t?.get("EVM");return o?.network?UT(o.network,e)??o.network:null}i(HT,"getConnectedEvmChainName");function Zn(t,e){return qT(t,e)?ut.PARTIALLY_CONNECTED:e.connected?ut.CONNECTED:e.connecting?ut.CONNECTING:e.installed?ut.DISCONNECTED:ut.NOT_INSTALLED}i(Zn,"getWalletConnectionStatus");function wu(t,e,o,n){return o.filter(r=>!Jp.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,namespaces:l}=t(r);return s&&(!c||!!n&&HT(l,a)!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:d,properties:f,isHub:h}=e(r),g=cn(u.map(S=>S.type)),m=Zn(e(r),t(r));return{title:a,image:s,link:FT(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:d,properties:f,isHub:h}})}i(wu,"mapWalletTypesToWalletInfo");function Jn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Jn,"walletAndSupportedChainsNames");function fs(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}=$T(l),d=c.length>0,f=c.includes(u),h=u===ds.Unknown;if(d&&!f&&!h)return;let m=u===ds.Unknown&&zT(p);if(h&&!m)return;if(o.includes(u)||m)if(r)s(u,p.toLowerCase(),r);else{let T=c.filter(k=>o.includes(k));T.forEach(k=>{s(k,p.toLowerCase())}),T.includes(OT)&&s(ds.HYPERLIQUID,p.toLowerCase())}else s(u,p)}),a}i(fs,"prepareAccountsForWalletStore");function Mo(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((p,u)=>{let d=p.from.blockchain,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(Mo,"getQuoteChains");function Rn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Rn,"isAccountAndWalletMatched");var vu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ms(n.usdValue,n.decimals):ue.toFixed();return o.plus(r)},new pn(ue));return QT(e.toString())},"calculateWalletUsdValue");function QT(t){let e=t.toString().split(".");return e[0]&&(e[0]=fu(e[0])),e.join(".")}i(QT,"numberWithThousandSeparator");function ms(t,e){return new pn(t).shiftedBy(-e).toFixed()}i(ms,"representAmountInNumber");function pi(t){if(!t)return null;let e=ms(t.amount,t.decimals),o=t.usdValue?ms(t.usdValue,t.decimals):null,n=M(e,8,8),r=o?M(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(pi,"formatBalance");function Eu(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new pn(t.usdValue).shiftedBy(-t.decimals):ue,n=e&&e.usdValue?new pn(e.usdValue).shiftedBy(-e.decimals):ue;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new pn(t.amount).shiftedBy(-t.decimals):ue,n=e&&e.amount?new pn(e.amount).shiftedBy(-e.decimals):ue;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Eu,"compareTokenBalance");function Vt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Vt,"areTokensEqual");function bu(t){return t.sort((e,o)=>+(o.state===ut.CONNECTED)-+(e.state===ut.CONNECTED)||+(o.state===ut.PARTIALLY_CONNECTED)-+(e.state===ut.PARTIALLY_CONNECTED)||+(o.state===ut.DISCONNECTED||o.state===ut.CONNECTING)-+(e.state===ut.DISCONNECTED||e.state===ut.CONNECTING))}i(bu,"sortWalletsBasedOnConnectionState");function po(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(po,"getConciseAddress");function xu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(xu,"getAddress");var Iu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function gs(t){return t.map(e=>e.state).join("-")}i(gs,"hashWalletsState");function Au(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(Au,"filterBlockchainsByWalletTypes");function Nu(t,e){return e===DT.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(ii(n,e))return!0;return!1})}i(Nu,"filterWalletsByCategory");function qT(t,e){if(!t.isHub||!t.needsNamespace||!e.connected)return!1;let n=t.needsNamespace.data.filter(r=>!r.unsupported);return t.needsNamespace.selection==="multiple"&&n.some(r=>!e.namespaces?.get(r.value)?.connected)}i(qT,"checkIsWalletPartiallyConnected");var hs={API_KEY:Zp()};function Kt(t){return hs[t]||""}i(Kt,"getConfig");function Wu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),hs=e,hs}i(Wu,"initConfig");var Pu=20,Lu=25,ys="theme-widget",Ss=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Vt(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>Vt(a,t));let r=n.isExcluded;return!r&&!o||r&&o}}}return o},"isTokenExcludedInConfig"),Ts=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 ui,dt=i(()=>ui||(ui=new GT(Kt("API_KEY"),Kt("BASE_URL")),ui),"httpService");import{i18n as _u}from"@lingui/core";var di=[.5,1,3],mi=1,un=5,er=30,fi=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||{});var tr=(s=>(s.QUOTE_INPUT_UPDATE="quoteInputUpdate",s.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",s.ROUTE_REQUESTED="routeRequested",s.ROUTE_NOT_FOUND="routeNotFound",s.ROUTE_FETCH_FAILED="routeFetchFailed",s.ROUTE_CHANGED="routeChanged",s))(tr||{}),gi=(n=>(n.CONNECT="connect",n.DISCONNECT="disconnect",n.DETECTED="detected",n))(gi||{}),Re=(m=>(m.CLICK_CONNECT_WALLET="clickConnectWallet",m.TOKEN_SELECTED="tokenSelected",m.CHAIN_FILTER_APPLIED="chainFilterApplied",m.SETTINGS_CHANGED="settingsChanged",m.ROUTE_FEE_VIEWED="routeFeeViewed",m.DESTINATION_ADDRESS_SET="destinationAddressSet",m.GAS_WARNING_SHOWN="gasWarningShown",m.GAS_WARNING_BYPASSED="gasWarningBypassed",m.SWAP_INITIATED="swapInitiated",m.SWAP_WALLETS_MODAL_SHOWN="swapWalletsModalShown",m.SWAP_WALLETS_CONFIRMED="swapWalletsConfirmed",m.SWAP_STARTED="swapStarted",m.SWAP_RESUMED="swapResumed",m.SWAP_RETRIED="swapRetried",m.SWAP_CANCELLED="swapCancelled",m))(Re||{}),dn=(a=>(a.RouteEvent="routeEvent",a.StepEvent="stepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(dn||{});function hi(t,e){let o=t.map(a=>a.swapperGroup),n=[];return cn(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(hi,"getUniqueSwappersGroups");function Mu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Mu,"sortLiquiditySourcesByGroupTitle");function nt(t,e){return e?.[t]==="hidden"}i(nt,"isFeatureHidden");function mn(t,e){return e?.[t]==="enabled"}i(mn,"isRoutingEnabled");var Du=i((t,e,o)=>nt("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function fn(t){return t==fi?{type:"error",message:_u.t("Slippage must be greater than or equal to 0.01")}:t>un&&t<=er?{type:"warning",message:_u.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(fn,"getSlippageValidation");var $u=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let l=oi({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>jp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",d=sn.get(u);d?.length||(d=jn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),sn.set(u,d)),d=Du(d,s,a.features);let f=e().blockchains({type:o.type});return d.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(m=>m.name===g.blockchain)?!1:o.searchFor?!!(pt(g.symbol,o.searchFor)||pt(g.address||"",o.searchFor)||pt(g.name||"",o.searchFor)):!0).sort((g,m)=>{let S=e().isTokenPinned(g,o.type),T=e().isTokenPinned(m,o.type);if(S!==T)return S?-1:1;if(o.getBalanceFor){let x=o.getBalanceFor(g),A=o.getBalanceFor(m),E=Eu(x,A);if(E!==0)return E}let y=l.get(g.blockchain),k=l.get(m.blockchain),w=as(g,y),v=as(m,k);if(w!==v)return w?-1:1;if(g.isPopular!==m.isPopular)return g.isPopular?-1:1;if(o.searchFor){let x=su(g,m,o.searchFor);if(x)return x}return g.isSecondaryCoin!==m.isSecondaryCoin?g.isSecondaryCoin?1:-1:y&&k?y.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=Ct(o),s=n.get(a);return s||(s=r.find(c=>Ct(c)===a)),s},findNativeToken:o=>{let n=o.feeAssets[0];return e().findToken({blockchain:o.name,address:n.address,symbol:n.symbol})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Vt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(Mu)},fetch:async()=>{try{let{routing:o}=e().config,n=mn("enableCentralizedSwappers",o),r=await dt().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=r.popularTokens,p=r.swappers.filter(d=>d.enabled);r.blockchains.sort((d,f)=>d.sort-f.sort).forEach(d=>{d.enabled&&a.set(d.name,d)}),r.tokens.forEach(d=>{let f=Ct(d);c[d.blockchain]||(c[d.blockchain]=[]),s.set(f,d),c[d.blockchain]?.push(f)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as VT,Catalonia as KT,Chinese as Fu,Denmark as jT,English as XT,Finland as YT,French as ZT,German as JT,Greece as RT,Hungary as eC,India as tC,Indonesian as oC,Italian as nC,Japanese as rC,Korea as iC,Lithuania as aC,Malay as sC,Netherlands as lC,Pakistan as cC,Philippines as pC,Poland as uC,Portuguese as dC,Russian as mC,SaudiArabia as fC,Serbia as gC,Slovakia as hC,SouthAfrica as yC,Spanish as SC,Swahili as TC,Swedish as CC,Thai as kC,Turkish as wC,Ukrainian as vC,Vietnamese as EC}from"@rango-dev/ui";var Ou=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:yC},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:fC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:VT},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:KT},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Fu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Fu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:jT},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:lC},{title:"English",label:"English",local:"en",SVGFlag:XT},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:pC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:YT},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:ZT},{title:"German",label:"Deutsch",local:"de",SVGFlag:JT},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:RT},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:tC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:eC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:oC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:nC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:rC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:iC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:aC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:sC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:uC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:dC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:mC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:gC},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:hC},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:SC},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:TC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:CC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:kC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:wC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:vC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:cC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:EC}],gn="en";var Uu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:mi,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=cn(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||gn},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||gn}})},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=oi({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import bs from"bignumber.js";import bC from"mitt";var ge=bC(),xC={on:ge.on,off:ge.off};var zu=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 Hu from"bignumber.js";function jt(t){return`${t.blockchain}${Bo}${t.address}${Bo}${t.symbol}`}i(jt,"createAssetKey");function Qu(t,e){return`${jt(e)}${Bo}${t}`}i(Qu,"createBalanceKey");function or(t){let[e,o,n]=t.split(Bo);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(or,"extractAssetFromBalanceKey");function ks(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[jt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Hu(r??ue).multipliedBy(o[s].amount).toString():""})})}),o}i(ks,"computeNextBalancesWithNewPrices");function ws(t,e){let o={};return t.balances?.forEach(n=>{let r=Qu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Hu(c??ue).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(ws,"createBalanceStateForNewAccount");function vs(t,e){for(let o in e){let n=or(o);if(n){let r=jt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(vs,"updateAggregatedBalanceStateForNewAccount");function IC(t,e){let o=or(e);if(!o)return t;let n=jt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(IC,"removeBalanceFromAggregatedBalance");function Es(t,e,o){let n=t.connectedWallets.filter(l=>e.includes(l.walletType));t.connectedWallets.forEach(l=>{e.includes(l.walletType)||(n=n.filter(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=or(l);if(!p)return;!!n.find(d=>Qu(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=IC(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(Es,"computeNextStateAfterWalletBalanceRemoval");function AC(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(AC,"matchWalletDetailsWithConnectedWallet");var NC=pu(),qu=zu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Rn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Rn(s,a))?{...a,loading:!1,error:!1,explorerUrl:AC(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Rn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Rn(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 dt().getMultipleTokenBalance({assets:p.map(({symbol:d,address:f,blockchain:h})=>({symbol:d,address:f,blockchain:h})),walletAddress:l});if(u){let d=e()._balances,f=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};ks(m,g,d);let S=ws(g,e);f=vs(f,S),d={...d,...S}}),t(h=>({_balances:{...h._balances,...d},_aggregatedBalances:f}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r,a)=>{let s=o[0];s&&(ge.emit("walletEvent",{type:"connect",payload:{walletType:s.walletType,accounts:o,chain:s.chain??null,walletName:a?.walletName??s.walletType}}),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}=Es(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(ge.emit("walletEvent",{type:"disconnect",payload:{walletType:o,walletName:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0||!o[0])return;let r=[...new Set(o.map(l=>l.walletType))];e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await dt().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(d=>{if(d.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};ks(f,d,l);let{_balances:h,_aggregatedBalances:g}=Es(f,r,{chains:[d.blockChain]});if(p=g,l=h,!e().connectedWallets.find(S=>r.includes(S.walletType)&&S.address===d.address&&S.chain===d.blockChain))return;let m=ws(d,e);p=vs(p,m),l={...l,...m}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let d=c.filter(f=>f.failed).map(f=>{let h=e().connectedWallets.find(g=>g.chain===f.blockChain&&g.address)?.walletType;return h?{chain:f.blockChain,walletType:h,address:f.address}:null}).filter(f=>!!f);d.length>0&&await e().fetchMainTokensBalances(d,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=jt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0||!a[0])return null;let s=a[0];if(a.length===1&&n[s])return n[s];let c=n[a[0]];if(!c)return null;let l=c;return a.forEach(p=>{let u=n[p];if(!u)return;let d=new bs(u.amount),f=new bs(l.amount);d.isGreaterThan(f)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(Bo);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>NC(()=>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=or(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),d=l?.amount?new bs(l.amount).shiftedBy(-l.decimals):ue;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 Gu(t){return WC()(PC((...e)=>({...qu(...e),...$u(...e),...Uu(...e),...Vp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i(Gu,"createAppStore");var Vu=BC(null);function C(){let t=_C(Vu);if(MC(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(C,"useAppStore");function Ku(t){let e=DC();return e.current||(e.current=Gu(t.config)),LC.createElement(Vu.Provider,{value:e.current},t.children)}i(Ku,"AppStoreProvider");function te(t){ge.emit("uiEvent",t)}i(te,"emitUiEvent");function ju(t,e){let o=!1,n={...t.payload,preventDefault(){o=!0}};te({type:t.type,payload:n}),o||e()}i(ju,"emitPreventableEvent");function hn(t){ge.emit("quoteEvent",t)}i(hn,"emitQuoteEvent");function Xu(t){ge.emit("walletEvent",{type:"detected",payload:t})}i(Xu,"emitWalletDetected");var Zu=new Set,UC=new Set([Mt.LEDGER,Mt.TREZOR,Mt.WALLET_CONNECT_2,Mt.TON_CONNECT,Mt.DEFAULT]);function bt(t){let{chain:e}=t||{},{getAvailableProviders:o}=C(),{state:n,getWalletInfo:r}=$C(),{handleDisconnect:a}=an(),s=zp(o()),c=wu(n,r,s,e);c=FC()?c.filter(f=>f.showOnMobile!==!1&&n(f.type).installed):c;let l=bu(c);Yu(()=>{c.forEach(f=>{if(UC.has(f.type))return;f.state!==yi.NOT_INSTALLED&&!Zu.has(f.type)&&(Zu.add(f.type),Xu({walletName:f.title}))})},[gs(c)]);let p=OC(()=>{let f=c?.filter(h=>h.state===yi.CONNECTING)||[];for(let h of f)a(h)},[gs(c)]);Yu(()=>()=>{p()},[]);let u=i(f=>{let h=f.find(m=>m.type===Mt.DEFAULT);return!h||h.state===yi.NOT_INSTALLED?!1:f.filter(m=>m.state!=yi.NOT_INSTALLED&&![Mt.DEFAULT,Mt.WALLET_CONNECT_2,Mt.LEDGER].includes(m.type)&&r(m.type).supportedChains.filter(S=>S.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),d=i(f=>f==Mt.DEFAULT&&!u(c),"shouldExcludeWallet");return{list:l.filter(f=>!d(f.type)),terminateConnectingWallets:p}}i(bt,"useWalletList");import{Modal as qC}from"@rango-dev/ui";import GC from"react";import{create as QC}from"zustand";var Ju="rango-widget";var nr=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(Ju),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 HC=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"),uo=HC;var ne=uo(QC()((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})}}))),$o=new nr({onInit:()=>ne.setState({tabManagerInitiated:!0}),onClaim:()=>ne.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ne.setState({isActiveTab:!1})});function re(t){let{watermark:e}=ne();return GC.createElement(qC,{hasWatermark:e==="FULL",...t},t.children)}i(re,"WatermarkedModal");import{i18n as Tn}from"@lingui/core";import{Alert as ik,Button as ak,Divider as Cn,Image as sk,MessageBox as lk,RadioRoot as ck,WalletImageContainer as pk}from"@rango-dev/ui";import le,{useEffect as uk,useMemo as dk,useState as mk}from"react";import{i18n as XC}from"@lingui/core";import{Typography as ad}from"@rango-dev/ui";import yn from"react";function Si(t,e){return t.find(o=>o.name===e)?.logo}i(Si,"getBlockchainLogo");import{darkTheme as VC,Image as KC,styled as Xt,Typography as jC}from"@rango-dev/ui";var Ti=Xt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${VC} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),Ci=Xt("div",{display:"flex",gap:"$8",alignItems:"center"}),ed=Xt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),td=Xt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),od=Xt("div",{display:"flex",gap:"$6",alignItems:"center"}),nd=Xt("div",{paddingLeft:"48px"}),rd=Xt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),id=Xt(jC,{maxWidth:"100px"}),ki=Xt(KC,{variants:{disabled:{true:{opacity:"0.5"}}}});function wi(t){let{namespace:e}=t,o=C().blockchains();return yn.createElement(Ti,{unsupported:!0},yn.createElement(Ci,null,yn.createElement(ki,{src:Si(o,e.id),size:40,disabled:!0}),yn.createElement(td,null,yn.createElement(ad,{variant:"label",size:"large"},e.label),yn.createElement(ad,{variant:"body",size:"xsmall"},XC.t("(Currently not supported)")))))}i(wi,"NamespaceUnsupportedItem");import{Checkbox as ok,Radio as nk}from"@rango-dev/ui";import Ns from"react";import{i18n as As}from"@lingui/core";import{ChevronDownIcon as ZC,ChevronUpIcon as JC,Divider as RC,Typography as rr}from"@rango-dev/ui";import Ne,{useEffect as ek,useState as tk}from"react";import{Image as ld,Tooltip as cd,Typography as YC}from"@rango-dev/ui";import Dt from"react";import{styled as sd}from"@rango-dev/ui";var xs=sd("div",{display:"flex",alignItems:"center",padding:0,margin:0}),vi=sd("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 Is=3;function pd(t){let{chains:e}=t;return Dt.createElement(xs,{id:"widget-supported-chains-container"},e.slice(0,Is).map((o,n)=>Dt.createElement(cd,{key:o.name,container:W(),side:"bottom",align:"start",content:o.name,sideOffset:4},Dt.createElement(vi,{firstItem:n===0},Dt.createElement(ld,{src:o.logo,size:15})))),e.length>Is&&Dt.createElement(cd,{container:W(),side:"bottom",align:"start",sideOffset:4,content:Dt.createElement(xs,null,e.map((o,n)=>Dt.createElement(vi,{key:o.name,firstItem:n===0},Dt.createElement(ld,{src:o.logo,size:15}))))},Dt.createElement(vi,null,Dt.createElement(YC,{variant:"body",size:"xsmall"},"+",e.length-Is))))}i(pd,"SupportedChainsList");function Fo(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=tk(!1),p=C().blockchains();ek(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!o&&!r&&u.length>1;return Ne.createElement(Ti,{hasError:!!o,clickable:!!s,onClick:s},Ne.createElement(Ci,null,Ne.createElement(ki,{src:Si(p,e.id),size:40}),Ne.createElement(ed,{showSupportedChains:d||r||!!o},Ne.createElement(od,null,Ne.createElement(rr,{variant:"label",size:"large"},e.label),r&&Ne.createElement(rr,{variant:"body",size:"small",color:"success500"},As.t("Connected")),!!o&&Ne.createElement(rr,{variant:"body",size:"small",color:"error500"},As.t("Connection failed"))),d&&Ne.createElement(pd,{chains:u}),r&&Ne.createElement(id,{variant:"body",size:"small",color:"neutral700"},a),o&&Ne.createElement(rd,{onClick:()=>l(f=>!f)},Ne.createElement(rr,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},As.t("See why")),c?Ne.createElement(JC,{size:12,color:"gray"}):Ne.createElement(ZC,{size:12,color:"gray"}))),n),!!o&&c&&Ne.createElement(Ne.Fragment,null,Ne.createElement(RC,{size:4}),Ne.createElement(nd,null,Ne.createElement(rr,{variant:"body",size:"small",color:"neutral700"},o))))}i(Fo,"NamespaceItem");function ud(t){let{onClick:e,type:o,namespace:n}=t;return Ns.createElement(Fo,{namespace:n,onClick:e,suffix:o==="radio"?Ns.createElement(nk,{value:n.value}):Ns.createElement(ok,{checked:t.value})})}i(ud,"NamespaceListItem");import{Button as rk,styled as dd}from"@rango-dev/ui";var Ei=dd("ul",{padding:0,paddingBottom:"$20",margin:0}),Sn=dd(rk,{minHeight:"$40"});function ir(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=C().blockchains(),[l,p]=mk([]),u=dk(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:S=>S.includes(m)?S.filter(T=>T!==m):S.concat(m))},"onSelect"),f=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");f?p([]):u&&p(u.map(m=>m.value))},"onSelectAll"),g=i(m=>r?le.createElement(ck,{value:l?.[0]},m):le.createElement(le.Fragment,null,m),"wrapRadioRoot");return uk(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(S=>S.getSupportedChains(c).some(T=>t.value.defaultSelectedChains?.includes(T.name)));p(m.map(S=>S.value))}else p(u.map(m=>m.value))},[]),le.createElement(le.Fragment,null,le.createElement(lk,{type:"info",title:Tn.t("Connect {wallet}",{wallet:e.title}),description:Tn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:le.createElement(pk,null,le.createElement(sk,{src:s,size:45}))}),r?le.createElement(le.Fragment,null,le.createElement(Cn,{size:20,className:"_initial_namespace_list_header_alert_top_divider"}),le.createElement(ik,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:Tn.t("This wallet can only connect to one chain at a time. ")}),le.createElement(Cn,{size:30,className:"_initial_namespace_list_header_alert_bottom_divider"})):le.createElement(le.Fragment,null,le.createElement(Cn,{size:30,className:"_initial_namespace_list_header_button_top_divider"}),le.createElement(ak,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?Tn.t("Deselect all"):Tn.t("Select all")),le.createElement(Cn,{size:10,className:"_initial_namespace_list_header_button_bottom_divider"})),le.createElement(Ei,null,g(le.createElement(le.Fragment,null,a?.data.map((m,S,T)=>le.createElement(le.Fragment,{key:m.id},m.unsupported?le.createElement(wi,{namespace:m}):le.createElement(ud,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),S!==T.length-1&&le.createElement(Cn,{size:10})))))),le.createElement(Cn,{size:20}),le.createElement(Sn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},Tn.t("Connect")))}i(ir,"Namespaces");import{i18n as ar}from"@lingui/core";import{Alert as Ck,Button as kk,Divider as kn,Image as wk,MessageBox as vk,WalletImageContainer as Ek}from"@rango-dev/ui";import{useWallets as bk}from"@rango-dev/wallets-react";import me from"react";import{styled as fk}from"@rango-dev/ui";var md=fk("div",{display:"flex",justifyContent:"end"});import{i18n as Ws}from"@lingui/core";import{Button as gk,Spinner as hk}from"@rango-dev/ui";import Ps,{useLayoutEffect as yk,useRef as Sk,useState as Tk}from"react";function fd(t){let{namespace:e,initialConnect:o,disabled:n,state:r,handleConnect:a,handleDisconnect:s}=t,[c,l]=Tk(null),p=Sk(!1);yk(()=>{o&&!p.current&&u()},[]);let u=i(async g=>{try{p.current=!0,await a(g)}catch(m){l(m)}finally{p.current=!1}},"handleConnectNamespace"),d=i(async()=>{l(null),r.connected?await s():u({shouldAskForDerivationPath:!0})},"handleButtonClick"),f=i(()=>{let g=r.accounts?.[0]?.split(":"),m=g?.[g.length-1];return!r.connected||!m?null:po(m)},"getConnectedAddress"),h=i(()=>r.connected?Ws.t("Disconnect"):c?Ws.t("Try again"):Ws.t("Connect"),"getButtonText");return Ps.createElement(Fo,{namespace:e,connected:r.connected,error:c?.message,address:f(),suffix:r.connecting?Ps.createElement(hk,{color:"info"}):Ps.createElement(gk,{id:"widget-name-space-connect-btn",variant:"ghost",type:r.connected?"error":"primary",size:"xsmall",onClick:async()=>d(),disabled:n},h())})}i(fd,"NamespaceDetachedItem");function sr(t){let{value:e,selectedNamespaces:o,onConfirm:n,confirmText:r=ar.t("Done"),onDisconnectWallet:a,navigateToDerivationPath:s}=t,{targetWallet:c}=e,{connect:l,disconnect:p,state:u}=bk(),d=c.type,f=u(d),h=c.properties?.find(w=>w.name==="namespaces"),g=c.properties?.find(w=>w.name==="derivationPath"),m=h?.value.selection==="single",S=i(async(w,v)=>{m&&await p(d),g&&v?.shouldAskForDerivationPath?s(w):await l(d,[{namespace:w,network:"",derivationPath:v?.derivationPath??void 0}])},"handleConnectNamespace"),T=i(async w=>{await p(d,[w])},"handleDisconnectNamespace"),y=i(()=>m?me.createElement(me.Fragment,null,me.createElement(kn,{size:20,className:"_detached_namespace_list_header_alert_top_divider"}),me.createElement(Ck,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:ar.t("This wallet can only connect to one chain at a time.")}),me.createElement(kn,{size:30,className:"_detached_namespace_list_header_alert_bottom_divider"})):me.createElement(me.Fragment,null,me.createElement(kn,{size:30,className:"_detached_namespace_list_header_button_top_divider"}),me.createElement(md,null,me.createElement(kk,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:f.connecting||!f.connected,onClick:a},ar.t("Disconnect wallet"))),me.createElement(kn,{size:16,className:"_detached_namespace_list_header_button_bottom_divider"})),"renderNamespaceListHeader"),k=i(w=>{if(w.unsupported)return me.createElement(wi,{namespace:w});let v=o?.find(E=>E.namespace===w.value),x=f.namespaces?.get(w.value);if(!x)throw new Error(`State for ${w.value} was not found!`);let A=m&&f.connecting;return me.createElement(fd,{namespace:w,initialConnect:!!v,disabled:A,state:x,handleConnect:async E=>S(w.value,{derivationPath:v?.derivationPath,shouldAskForDerivationPath:E?.shouldAskForDerivationPath}),handleDisconnect:async()=>T(w.value)})},"renderNamespaceItem");return me.createElement(me.Fragment,null,me.createElement(vk,{type:"info",title:ar.t("Connect {wallet}",{wallet:c.title}),description:ar.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:me.createElement(Ek,null,me.createElement(wk,{src:c.image,size:45}))}),y(),me.createElement(Ei,{id:"widget-detached-namespace-list"},c.needsNamespace?.data.map((w,v,x)=>me.createElement(me.Fragment,{key:w.id},k(w),v!==x.length-1&&me.createElement(kn,{size:10})))),me.createElement(kn,{size:20}),me.createElement(Sn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:n},r))}i(sr,"Detached");import{i18n as wn}from"@lingui/core";import{Divider as Nk,Image as Wk,MessageBox as Pk,Select as Lk,TextField as Bk}from"@rango-dev/ui";import xt,{useEffect as _k,useState as hd}from"react";import{namespaces as xk}from"@rango-dev/wallets-shared";var bi={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ls(t){let e=t?xk[t]?.derivationPaths:null;return e?[...e,bi]:[]}i(Ls,"getDerivationPaths");import{Button as Ik,styled as Bs,Typography as Ak}from"@rango-dev/ui";var gd=Bs("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),_s=Bs(Ak,{paddingLeft:"$10"}),Ms={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},R_=Bs(Ik,{minHeight:"$40"});var yd="0";function lr(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=hd(null),[c,l]=hd(yd),p=a===bi.id,u=Ls(o),d=i(({value:h})=>{let g=u?.find(m=>m.id===h);g&&(a===bi.id&&Number.isNaN(Number(c))&&l(yd),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 _k(()=>{s(Ls(o)[0]?.id||null)},[o]),xt.createElement(xt.Fragment,null,xt.createElement(Pk,{type:"info",title:wn.t("Select Derivation Path"),description:wn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:xt.createElement(Wk,{src:n,size:45})}),xt.createElement(gd,{className:"_derivation_path_inputs_container"},xt.createElement(_s,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},wn.t("Choose Derivation Path Template")),xt.createElement(Lk,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:Ms}}),xt.createElement(Nk,{size:20}),xt.createElement(_s,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},p?wn.t("Enter Path"):wn.t("Enter Index")),xt.createElement(Bk,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Ms})),xt.createElement(Sn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},wn.t("Confirm")))}i(lr,"DerivationPath");import{i18n as vn}from"@lingui/core";import{Image as $k,MessageBox as $s,WalletImageContainer as Fk,WalletState as Ok}from"@rango-dev/ui";import{useWallets as Uk}from"@rango-dev/wallets-react";import Oo from"react";import{keyframes as Mk,styled as Ds}from"@rango-dev/ui";var pM=Ds("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Sd=Ds("div",{position:"relative"}),Dk=Mk({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Td=Ds("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Dk} 1s linear infinite`,top:0,bottom:0,right:0,left:0});function Fs(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a,getWalletInfo:s}=Uk();return Zn(s(n),a(n))===Ok.CONNECTED?Oo.createElement($s,{type:"success",title:vn.t("Wallet Connected"),description:vn.t("Your wallet is connected, you can use it to swap.")}):o?Oo.createElement($s,{type:"error",title:vn.t("Failed to Connect"),description:o||vn.t("Your wallet is not connected. Please try again.")}):Oo.createElement($s,{type:"loading",title:vn.t("Connecting to your wallet"),description:vn.t("Click connect in your wallet popup."),icon:Oo.createElement(Sd,null,Oo.createElement(Fk,null,Oo.createElement($k,{src:r,size:45})),Oo.createElement(Td,null))})}i(Fs,"ConnectStatus");function Cd(t,e){return t().status==="init"&&!!e}i(Cd,"isOnStatus");function cr(t){return t().status==="namespace"}i(cr,"isOnNamespace");function pr(t){return t().status==="derivationPath"}i(pr,"isOnDerivationPath");function Wo(t){return t().status==="detached"}i(Wo,"isOnDetached");var qk=3e3,Gk=300;function ur(t){let e=Qk(),[o,n]=kd(!1),[r,a]=kd(),s=i(v=>{a(v.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=bt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:f,handleDisconnect:h}=an(),g=i(v=>{u(t.wallet,v).then(k).catch(s)},"handleConfirmNamespaces"),m=i(()=>{T()},"handleDetachedConfirm"),S=i(v=>{if(!v)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(t.wallet,v).then(k).catch(s)},"handleDerivationPathConfirm"),T=i(()=>{n(!1)},"handleClosingModal"),y=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),k=i((v,x)=>{let A=v.status==="connected",E=["disconnected","disconnected-unhandled"].includes(v.status);A?(t.onConnect?.(),x||(e.current=setTimeout(T,qk))):E&&T()},"afterConnected"),w=i(v=>{t.wallet?.needsDerivationPath&&u(t.wallet,[v])},"handleNavigateToDerivationPath");return Hk(()=>{if(t.wallet){y();let v=!1,x=!0;i(()=>{setTimeout(()=>{x=!1,v||n(!0)},Gk)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(E=>{["namespace","Detached","derivation-path"].includes(E.status)||(v=!0),k(E,x)}).catch(s)}},[t.wallet]),mo.createElement(re,{id:t.id,open:o,onClose:T,onExit:()=>{y(),c(),t.onClose&&t.onClose()},container:W()},Cd(d,t.wallet)&&mo.createElement(mo.Fragment,null,mo.createElement(Fs,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),mo.createElement(zk,{direction:"vertical",size:32})),cr(d)&&mo.createElement(ir,{onConfirm:g,value:d().namespace}),pr(d)&&mo.createElement(lr,{onConfirm:S,value:d().derivationPath}),Wo(d)&&mo.createElement(sr,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces,navigateToDerivationPath:w}))}i(ur,"StatefulConnectModal");import es from"react";import Vk,{Fragment as Kk}from"react";import{MemoryRouter as jk,useInRouterContext as Xk}from"react-router";function xi({children:t}){let o=Xk()?Kk:jk;return Vk.createElement(o,null,t)}i(xi,"AppRouter");import{I18nManager as Q0}from"@rango-dev/ui";import Np from"react";import ze from"react";import{useRoutes as k0}from"react-router-dom";var $={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 bn,useRef as Bi}from"react";import at from"bignumber.js";import{create as em}from"zustand";import{subscribeWithSelector as tm}from"zustand/middleware";import{createContext as Yk,useContext as Zk}from"react";var wd=Yk({swapMode:"swap",isMultiMode:!1});function rt(){let{swapMode:t,isMultiMode:e}=Zk(wd);return{swapMode:t,isMultiMode:e}}i(rt,"useSwapMode");import{i18n as wt}from"@lingui/core";import{getRelatedWalletOrNull as ew,RouteEventType as kD}from"@rango-dev/queue-manager-rango-preset";import Ge from"bignumber.js";import{PendingSwapNetworkStatus as dr}from"rango-types";import{i18n as qe}from"@lingui/core";var ie=i(()=>({genericServerError:qe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:qe.t("Please reset your liquidity sources."),description:qe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:qe.t("No Routes Found."),description:qe.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:qe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:qe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:qe.t("High Price Impact"),title:qe.t("Price impact is too high!"),description:qe.t("The price impact is significantly higher than the allowed amount."),confirmMessage:qe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:qe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:qe.t("USD Price Unknown"),title:qe.t("USD Price Unknown, Cannot calculate Price Impact."),description:qe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:qe.t("Confirm USD Price Unknown")}}),"errorMessages");function vd(t){return t.type===0?t.diagnosisMessage??ie().noResultError.title:t.type===1?t.diagnosisMessage??ie().genericServerError:""}i(vd,"getQuoteErrorMessage");import{i18n as Ii}from"@lingui/core";var Uo=i(()=>({connectWallet:Ii.t("Connect Wallet"),swap:Ii.t("Swap"),swapAnyway:Ii.t("Swap anyway"),ethWarning:Ii.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Os(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Os,"getFeeLabel");var Us=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Ed=100,bd=30,xd=15,Id=60;var Ad=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Nd=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as Rk}from"@rango-dev/queue-manager-rango-preset";import sD from"bignumber.js";function Pd(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(Pd,"getRequiredBalanceOfWallet");function Zt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Zt,"getPriceImpactLevel");function Ai(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Rk(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=Po(a?a.toBlockchain:n.fromBlockchain,e),l=Po(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(Ai,"createRetryQuote");function En(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=zo(o),s=it(o);if(o&&a&&s){let p=Yt(a.toString(),s.toString());if(!!p&&Dd(a,p)){let d=Wi(o?.swaps,n),f=Zt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:f}}}if(e&&Od(e,o))return{type:4,usdValueChange:M(it(o)?.minus(it(e)??0).toString()??"0",null,2),percentageChange:M(Yt(it(e)??"1",it(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=Pi(o.swaps),l=r>un;if(Fd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:$d(o,r),minRequiredSlippage:c};return null}i(En,"generateQuoteWarnings");function Ld(t){return![4].includes(t.type)}i(Ld,"isQuoteWarningConfirmationRequired");function Yt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:zs(t.toString(),e.toString());return n&&n<0?n:null}i(Yt,"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"),Ni=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"),_d=i((t,e,o)=>{let n=e[0];if(!e.length||!n)return null;if(!t)return{requestAmount:o,validationStatus:null,...n};let r=new Set(t.swaps.map(s=>s.swapperId)),a=e.find(s=>{let c=new Set(s.swaps.map(l=>l.swapperId));return Array.from(r).every(l=>c.has(l))});return{requestAmount:o,validationStatus:null,...a||n}},"getDefaultQuote"),Md=i(t=>{let e=i((o,n)=>{let r=Us.indexOf(o.value),a=Us.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Dd(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return Ad.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ge(r)))}i(Dd,"hasHighValueLoss");function Ud(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(Ud,"hasLimitError");function zd(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];if(!e)return{swap:void 0,fromAmountRangeError:"",recommendation:""};let 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=wt.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=ie().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=wt.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=ie().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=wt.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=ie().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=wt.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=ie().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(zd,"getLimitErrorMessage");function Hd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Uo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Uo().swap,action:"confirm-swap",disabled:!0}:s?{title:Uo().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Uo().ethWarning,action:"confirm-warning",disabled:!1}:{title:Uo().swap,action:"confirm-swap",disabled:!1}:{title:Uo().connectWallet,action:"connect-wallet",disabled:!1}}i(Hd,"getSwapButtonState");function Hs(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ue))&&e&&e!=="0"&&n!==0)}i(Hs,"canComputePriceImpact");function Qs(t,e){let o=ue;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 Ge(r.amount).multipliedBy(a||0))}return o}i(Qs,"getUsdFeeOfStep");function Wi(t,e){return t.reduce((o,n)=>o.plus(Qs(n,e)),ue)}i(Wi,"getTotalFeeInUsd");function qs(t){let e=ue,o=new Ge(t.price||0);return e=e.plus(new Ge(t.amount).multipliedBy(o)),e}i(qs,"getUsdFee");function Qd(t){return t.reduce((e,o)=>e.plus(qs(o)),ue)}i(Qd,"getTotalFeesInUsd");function qd(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(qd,"getFeesGroup");function Gd(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(Gd,"checkSlippageErrors");function $d(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($d,"checkSlippageWarnings");function Pi(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(Pi,"getMinRequiredSlippage");function Fd(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Fd,"hasProperSlippage");function Vd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:d,affiliateWallets:f,destination:h,contractCall:g}=t,m=a?.reduce((y,k)=>(y[k.chain]=k.address,y),{}),S=[];return r?.forEach(y=>{S.push({blockchain:y.chain,addresses:[y.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:m??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(y=>!s.includes(y)),swappersGroupsExclude:!1}}}i(Vd,"createQuoteRequestBody");function Kd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Kd,"getWalletsForNewSwap");function zo(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}i(zo,"getUsdInputFrom");function it(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(it,"getUsdOutputFrom");function zs(t,e){return new Ge(e).div(new Ge(t)).minus(1).multipliedBy(Ed).toNumber()}i(zs,"getPercentageChange");function Od(t,e){let o=zo(t),n=it(t),r=it(e);if(!o||!n||!r)return!1;let a=zs(n.toString(),r.toString());return Nd.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Od,"isOutputAmountChangedExcessively");function jd(t,e,o){let n=t.validationStatus,r=Mo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>Pd(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=M(new Ge(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=M(new Ge(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=wt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=wt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=wt.t(" for input and network fee")),wt.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:Tt(s.asset.blockchain,o)}})})}i(jd,"generateBalanceWarnings");function mr(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==dr.NetworkChanged}i(mr,"isNetworkStatusInWarningState");function Xd(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,"")),mr(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?ew(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case dr.WaitingForConnectingWallet:r=u?wt.t("Connect {wallet}",{wallet:u}):r;break;case dr.WaitingForQueue:r=r||wt.t("Waiting for other running tasks to be finished");break;case dr.WaitingForNetworkChange:r=r||wt.t("Waiting for changing wallet network");break;case dr.NetworkChangeFailed:r=r||wt.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(Xd,"getSwapMessages");function Yd(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(Yd,"getLastConvertedTokenInFailedSwap");function Zd(t){return t.status==="failed"}i(Zd,"shouldRetrySwap");function Jd(t,e,o,n,r,a){if(!n||t)return!0;let s=Mo({filter:"all",quote:n}),c=Mo({filter:"required",quote:n}),l=s.every(d=>r.some(f=>f.chain===d)),p=c.every(d=>r.some(f=>f.chain===d)),u=o&&a?Lo(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Jd,"isConfirmSwapDisabled");function Rd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Rd,"isTokensIdentical");var Li=i((t,e)=>t?.usdPrice?new at(e||ue).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),om=i(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new at(0),outputUsdValue:new at(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=ue,a=o.inputUsdValue;return Yn(o.inputAmount)?(e&&(n=e?.outputAmount?new at(e?.outputAmount):null,a=zo(e)??ue,r=it(e)??ue),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new at(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new at(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new at(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:Li(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 at(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=ku(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=yu(e);ai(e)||(o=du(o),o=mu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new at(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Li(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:Li(n??null,s),outputUsdValue:new at(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?Li(e.toToken,e.outputAmount?.toString()||""):new at(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new at(0),inputUsdValue:new at(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new at(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}),"initializer"),nm=em()(tm(om)),rm=em()(tm(om)),tw=uo(nm),ow=uo(rm);function z(){let{swapMode:t}=rt();return uo(t==="refuel"?rm:nm)}i(z,"useQuoteStore");var im=i((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ge.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&&ge.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})},"subscribeCallback"),am=tw.subscribe(im),sm=ow.subscribe(im);function lm(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=z()(),u=C().config,d=C().fetchStatus,f=C().blockchains(),{findToken:h}=C(),{setAffiliateRef:g,setAffiliatePercent:m,setAffiliateWallets:S}=C(),T=u?.from?.tokens,y=u?.from?.blockchains,k=u?.to?.tokens,w=u?.to?.blockchains,v=Bi(void 0),x=Bi(void 0),A=Bi(void 0),E=Bi(void 0);bn(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),bn(()=>{if(d==="success"){r();let I=f.find(N=>N.name===u?.from?.blockchain),b=u?.from?.token,L=b&&h(b);(I||!I&&A.current)&&n(I??null),L?a({token:L,meta:{blockchains:f}}):!L&&v.current&&a({token:null}),A.current=u?.from?.blockchain,v.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),bn(()=>{Ss(s,T)&&a({token:null}),Ts(l,y)&&n(null)},[T,y]),bn(()=>{Ss(c,k)&&a({token:null}),Ts(p,w)&&o(null)},[k,w]),bn(()=>{if(d==="success"){r();let I=f.find(N=>N.name===u?.to?.blockchain),b=u?.to?.token,L=b&&h(b);(I||!I&&E.current)&&o(I??null),L?e({token:L,meta:{blockchains:f}}):!L&&x.current&&e({token:null}),E.current=u?.to?.blockchain,x.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,d]),bn(()=>{g(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),S(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(lm,"useSyncStoresWithConfig");import{useEffect as Ks,useRef as nw}from"react";import{useInRouterContext as rw,useLocation as iw,useSearchParams as aw}from"react-router-dom";function Gs(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(Gs,"convertTokenSearchParamToAsset");function Vs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Vs,"tokenToSearchParam");function Xs(){let t=iw(),[e,o]=aw(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:f}=z()(),h=C().fetchStatus,g=C().blockchains(),m=rw(),{updateIframe:S,updateCampaignMode:T}=C(),y=C().isInCampaignMode(),k=nw(),{findToken:w}=C(),v=i(()=>{let A={};for(let[P,Z]of e.entries())(P.startsWith("utm_")||P.startsWith("privy_"))&&(A[P]=Z);let E=e.get("fromAmount"),I=e.get("fromBlockchain"),b=e.get("fromToken"),L=e.get("toBlockchain"),N=e.get("toToken"),O=e.get("autoConnect"),q=e.get("clientUrl"),j=e.get("liquiditySources"),ee=e.get("blockchain");return{fromAmount:E,fromBlockchain:I,fromToken:b,toBlockchain:L,toToken:N,autoConnect:O,clientUrl:q,liquiditySources:j,extraQueryParams:A,blockchain:ee}},"getUrlSearchParams"),x=i(A=>{for(let E in A)A[E]||delete A[E];o(A,{replace:!0})},"updateUrlSearchParams");Ks(()=>{let{autoConnect:A,clientUrl:E,extraQueryParams:I,blockchain:b}=v();m&&h==="success"&&x({fromBlockchain:n?.name,fromToken:Vs(a),toBlockchain:r?.name,toToken:Vs(s),fromAmount:c,autoConnect:A??void 0,clientUrl:E??void 0,blockchain:b??void 0,liquiditySources:y?k.current:void 0,...I})},[t.pathname,c,n,a,r,s,y,h]),Ks(()=>{if(!m)return;let A=v();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&f(A.fromAmount),h==="success"){let E=g.find(q=>q.name===A.fromBlockchain),I=A.fromToken&&E&&Gs(A.fromToken,E),b=I?w(I):void 0,L=g.find(q=>q.name===A.toBlockchain),N=A.toToken&&L&&Gs(A.toToken,L),O=N?w(N):void 0;E&&(l(E),b&&u({token:b,meta:{blockchains:g}})),L&&(p(L),O&&d({token:O,meta:{blockchains:g}}))}},[h]),Ks(()=>{let{clientUrl:A,liquiditySources:E}=v();S("clientUrl",A||void 0),T("liquiditySources",E?.split(",")??void 0)},[])}i(Xs,"useSyncUrlAndStore");import{i18n as An}from"@lingui/core";import{Alert as Iv,Button as Av,darkTheme as Nv,Divider as bl,DoneIcon as Wv,styled as Pv,TextField as Lv,Typography as Bv}from"@rango-dev/ui";import Ke,{useState as _v}from"react";import{useNavigate as Mv,useSearchParams as Dv}from"react-router-dom";import{ChevronRightIcon as sw,Divider as mm,Image as lw,Typography as fm}from"@rango-dev/ui";import It from"react";import{darkTheme as cm,styled as Ys}from"@rango-dev/ui";var pm=Ys("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${cm} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${cm} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),um=Ys("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),dm=Ys("div",{display:"flex"});function Zs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return It.createElement(um,null,It.createElement(fm,{size:"large",variant:"label"},n),It.createElement(mm,{size:10}),It.createElement(pm,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},It.createElement(dm,null,r&&It.createElement(It.Fragment,null,It.createElement(lw,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),It.createElement(mm,{size:4,direction:"horizontal"})),It.createElement(fm,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),It.createElement(sw,{size:12,color:"black"})))}i(Zs,"BlockchainSelectorButton");import{i18n as tl}from"@lingui/core";import{Button as hw,Divider as Tm,MessageBox as yw}from"@rango-dev/ui";import fo,{useEffect as Cm,useState as ol}from"react";import{i18n as _i}from"@lingui/core";import{Divider as Ho,ExternalLinkIcon as uw,Image as dw,InfoIcon as mw,Tooltip as fw,Typography as gr}from"@rango-dev/ui";import fe from"react";var gm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";import{Button as cw,darkTheme as xn,styled as fr,Typography as pw}from"@rango-dev/ui";var Js=fr("a",{textDecoration:"none",color:"$colors$neutral700",[`.${xn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${xn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${xn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${xn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),hm=fr("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${xn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${xn} &`]:{color:"$colors$neutral900"}}}),Rs=fr(cw,{minHeight:"$40"}),ym=fr(pw,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"96px"}),Sm=fr("div",{display:"flex",justifyContent:"center",alignItems:"center"});var gw=9;function el(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=n.address?ti({contractAddress:n.address,blockchainMeta:s}):void 0,l=i(()=>window.open(gm,"_blank"),"onClickLearnMore");return fe.createElement(re,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:W()},fe.createElement(hm,null,fe.createElement(dw,{src:n.image===""?ni:n.image,size:45,type:"circular"}),fe.createElement(Ho,{size:4}),fe.createElement(Sm,null,fe.createElement(ym,{variant:"title",size:"medium"},n.symbol),n.symbol.length>gw&&fe.createElement(fw,{content:n.symbol,container:W()},fe.createElement(mw,{size:12,color:"gray"}))),fe.createElement(gr,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),fe.createElement(Ho,{size:4}),fe.createElement(gr,{variant:"body",size:"medium"},c?fe.createElement(Js,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,fe.createElement(uw,{size:12,color:"gray"})):fe.createElement(Js,null,n.address)),fe.createElement(Ho,{size:4}),n.coinSource&&fe.createElement(gr,{className:"_coin-source",variant:"body",size:"xsmall"},_i.t("via")," ",fe.createElement(gr,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),fe.createElement(Ho,{size:"32"}),fe.createElement(gr,{size:"medium",variant:"body",className:"_custom-token-description"},_i.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."))),fe.createElement(Ho,{size:40}),fe.createElement(Ho,{size:10}),fe.createElement(Rs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},_i.t("Import Anyway")),fe.createElement(Ho,{size:10}),fe.createElement(Rs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},_i.t("Learn More")))}i(el,"CustomTokenModal");function hr(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=C(),[d,f]=ol(!1),[h,g]=ol(!1),[m,S]=ol(!1),T=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),y=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),k=i(()=>{S(!0),y()},"handleErrorModalButtonClick"),w=i(()=>{m&&n?.type==="network-error"&&(S(!1),T()),l()},"handleExit"),v=i(()=>{e&&(u(e),c())},"handleSubmit");return Cm(()=>{n&&f(!0)},[n]),Cm(()=>{o&&e&&g(!0)},[o,e]),fo.createElement(fo.Fragment,null,fo.createElement(re,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:y,onExit:w,container:W()},fo.createElement(yw,{title:n?.title??"",type:"error",description:n?.message||tl.t("Failed Network, Please retry.")},fo.createElement(Tm,{size:40}),fo.createElement(Tm,{size:10}),fo.createElement(hw,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:k},n?.type==="network-error"?tl.t("Retry"):tl.t("Add another custom token")))),o&&e&&fo.createElement(el,{blockchain:o,token:e,onSubmitClick:v,onClose:()=>g(!1),open:h,onExit:p}))}i(hr,"ImportCustomToken");import{useManager as kv}from"@rango-dev/queue-manager-react";import{BottomLogo as wv,Divider as ef,Header as vv}from"@rango-dev/ui";import Pe,{useEffect as qi,useLayoutEffect as Ev,useRef as tf,useState as of}from"react";import{useRef as Sw}from"react";function Mi(){return window.self!==window.top}i(Mi,"isAppLoadedIntoIframe");function nl(){let t=Sw(null),{iframe:e}=C(),o=Mi()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(nl,"useIframe");import{useNavigate as Tw}from"react-router-dom";function Ve(){let t=Tw();return()=>t(-1)}i(Ve,"useNavigateBack");import{createTheme as pl,darkTheme as Lw,lightTheme as Bw}from"@rango-dev/ui";import{useEffect as _w,useState as Mw}from"react";import{theme as Ww,darkColors as Pw}from"@rango-dev/ui";import ll from"react";var Di=16,$i=255,km=.11;function Cw(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Cw,"expandShortHexColor");function kw(t,e){return t.padStart(e,"0")}i(kw,"pad");function rl(t){let e=Math.min(Math.max(Math.round(t),0),$i);return kw(e.toString(Di),2)}i(rl,"intToHex");function ww(t){return`#${rl(t.red)}${rl(t.green)}${rl(t.blue)}`}i(ww,"rgbToHex");function vw(t){let e=parseInt(t.slice(1,3),Di),o=parseInt(t.slice(3,5),Di),n=parseInt(t.slice(5,7),Di);return{red:e,green:o,blue:n}}i(vw,"hexToRGB");function Ew(t,e){let o=1-km*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Ew,"generateShade");function bw(t,e){let o=km*e;return{red:t.red+($i-t.red)*o,green:t.green+($i-t.green)*o,blue:t.blue+($i-t.blue)*o}}i(bw,"generateTint");function xw(t){return wm(t,Ew)}i(xw,"calculateShades");function Iw(t){return wm(t,bw)}i(Iw,"calculateTints");function wm(t,e){let o=vw(t),n=[];for(let r=1;r<9;r++)n.push(ww(e(o,r)));return n}i(wm,"calculateColors");function il(t,e,o){let a=Iw(t).reverse().concat(t),s=xw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let d=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${d}`]=f)}return l}i(il,"createTintsAndShades");function al(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!Tu(r)){let l=Cw(a);Object.assign(n,il(l,r,s))}}return{...n,...e}}i(al,"expandToGenerateThemeColors");var vm=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=vm(o%52)+e;return vm(o%52)+e},"toAlphabeticName"),Nw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),sl=i(t=>Aw(Nw(5381,JSON.stringify(t))>>>0),"toHash");function cl(t){let e=Ww.colors,o={...e,...Pw},n,r;if(t?.light){let s={colors:al(e,t.light)};n={id:`${ys}-light-${sl(s)}`,tokens:s}}if(t?.dark){let s={colors:al(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ys}-dark-${sl(s)}`,tokens:s}}return{light:n,dark:r}}i(cl,"customizedThemeTokens");function Em(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ll.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ll.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(ll.cloneElement(e,{key:c}))}}),o}i(Em,"joinList");function bm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(bm,"doesWindowPreferDarkColorScheme");function go(t){let{colors:e,fontFamily:o=tu,borderRadius:n=Pu,secondaryBorderRadius:r=Lu}=t,[a,s]=Mw(bm()?"dark":"light"),{theme:c}=C(),{dark:l,light:p}=cl(e),u=pl({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,Bw.className],f=[u.className,Lw.className];if(p){let g=pl(p.id,p.tokens);d.push(g.className)}if(l){let g=pl(l.id,l.tokens);f.push(g.className)}return _w(()=>{let g=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return bm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=d.join(" "),m=f.join(" ");return c==="auto"?a==="dark"?m:g:c==="dark"?m:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(go,"useTheme");var vt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as xm}from"@lingui/core";import{Alert as Dw,Button as $w}from"@rango-dev/ui";import Im from"react";function ul(t){return Im.createElement(Dw,{action:Im.createElement($w,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},xm.t("Activate this tab")),type:"warning",variant:"alarm",title:xm.t("Another tab is open and handles transactions.")})}i(ul,"ActivateTabAlert");import{i18n as dl}from"@lingui/core";import{Button as Fw,Divider as Ow,MessageBox as Uw}from"@rango-dev/ui";import Fi from"react";function ml(t){let{open:e,onClose:o,onConfirm:n}=t;return Fi.createElement(re,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:W()},Fi.createElement(Uw,{title:dl.t("Activate current tab"),type:"warning",description:dl.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},Fi.createElement(Ow,{size:20}),Fi.createElement(Fw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},dl.t("Confirm"))))}i(ml,"ActivateTabModal");import{ChevronLeftIcon as Qw}from"@rango-dev/ui";import Mm from"react";import{css as zw,darkTheme as Am,IconButton as Hw,styled as Qo}from"@rango-dev/ui";var $t=Qo(Hw,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Am} &`]:{backgroundColor:"$neutral"}}}),Nm=Qo("div",{position:"absolute",background:"$secondary500",[`.${Am} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),ho=Qo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Wm=Qo("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"}}}}),Pm=Qo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Lm=Qo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Bm=zw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),_m=Qo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function fl(t){return Mm.createElement($t,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Mm.createElement(Qw,{color:"black",size:16}))}i(fl,"BackButton");import{i18n as qw}from"@lingui/core";import{Button as Gw,Typography as Vw}from"@rango-dev/ui";import gl from"react";function hl(t){return gl.createElement(ho,null,gl.createElement(Gw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},gl.createElement(Vw,{variant:"label",size:"medium",color:"error500"},qw.t("Cancel"))))}i(hl,"CancelButton");import{i18n as Kw}from"@lingui/core";import{Image as jw,Tooltip as Xw,WalletIcon as Yw,WalletState as Dm}from"@rango-dev/ui";import qo from"react";function yl(t){let{list:e}=bt(),o=e.filter(r=>r.state===Dm.CONNECTED||r.state===Dm.PARTIALLY_CONNECTED),n=o.length?qo.createElement("div",{className:Bm()},o.map(r=>qo.createElement(_m,{key:r.title},qo.createElement(jw,{src:r.image,size:14})))):Kw.t("Connect Wallet");return qo.createElement(Xw,{container:t.container,side:"bottom",content:n},qo.createElement($t,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&qo.createElement(Nm,null),qo.createElement(Yw,{size:18,color:"black"})))}i(yl,"WalletButton");import{i18n as Ui}from"@lingui/core";import{NotificationsIcon as dv,Popover as mv,SettingsIcon as fv,Tooltip as zi,TransactionIcon as gv}from"@rango-dev/ui";import _e from"react";import{Notifications as ev}from"@rango-dev/ui";import tv from"react";import{useNavigate as ov}from"react-router-dom";import{create as Zw}from"zustand";import{persist as Jw,subscribeWithSelector as Rw}from"zustand/middleware";var We=uo(Zw()(Jw(Rw((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1];if(!r||!a)return;let s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function Sl(){let t=ov(),{getNotifications:e,clearNotifications:o}=We(),n=e(),r=C().blockchains(),{findToken:a}=C();return tv.createElement(ev,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Qp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${$.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(Sl,"NotificationContent");import{useManager as nv}from"@rango-dev/queue-manager-react";import{InProgressIcon as rv}from"@rango-dev/ui";import $m from"react";var iv=i(()=>{let{manager:t}=nv();return vt(t).map(({swap:o})=>o).find(o=>o.status==="running")?$m.createElement(Lm,{id:"widget-header-history-badge-container"},$m.createElement(rv,{color:"info",size:6})):null},"InProgressTransactionBadge"),Fm=iv;import{EventSeverity as av}from"@rango-dev/queue-manager-rango-preset";import{Typography as sv}from"@rango-dev/ui";import Om from"react";function Um(){let{getNotifications:t}=We(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===av.WARNING);return o?Om.createElement(Wm,{isSever:n},Om.createElement(sv,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Um,"NotificationsBadge");import{RefreshProgressButton as lv}from"@rango-dev/ui";import Tl,{useEffect as cv,useState as zm}from"react";var pv=1e3,Hm=60,uv=100;function Oi({onClick:t}){let[e,o]=zm(0),[n,r]=zm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");cv(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===Hm&&c()},pv):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 Tl.createElement($t,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},Tl.createElement(Pm,{onTransitionEnd:()=>r(!1),isRefetched:n},Tl.createElement(lv,{size:22,color:t?"black":"gray",progress:e/Hm*uv})))}i(Oi,"RefreshButton");function Go(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=C(),c=nt("notification",s)||r.includes("notifications");return _e.createElement(_e.Fragment,null,!r.includes("refresh")&&_e.createElement(zi,{container:a||W(),side:"top",content:Ui.t("Refresh")},_e.createElement(Oi,{onClick:e})),!c&&_e.createElement(mv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:W(),content:_e.createElement(Sl,null)},_e.createElement("div",null,_e.createElement(zi,{container:W(),side:"top",content:Ui.t("Notifications")},_e.createElement($t,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},_e.createElement(dv,{size:18,color:"black"}),_e.createElement(Um,null))))),!r.includes("settings")&&_e.createElement(zi,{container:W(),side:"top",content:Ui.t("Settings")},_e.createElement($t,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},_e.createElement(fv,{size:18,color:"black"}))),!r.includes("history")&&_e.createElement(zi,{container:W(),side:"top",content:Ui.t("History")},_e.createElement($t,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},_e.createElement(gv,{size:18,color:"black"}),_e.createElement(Fm,null))))}i(Go,"HeaderButtons");import{i18n as Cl}from"@lingui/core";import{Divider as qm,MessageBox as Sv,RefreshIcon as Tv}from"@rango-dev/ui";import In from"react";import{Button as hv,styled as yv}from"@rango-dev/ui";var Qm=yv(hv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function kl(t){let{open:e,onClose:o}=t;return In.createElement(re,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:W()},In.createElement(Sv,{title:Cl.t("Something went wrong"),type:"error",description:Cl.t("Something went wrong. Please refresh the app.")},In.createElement(qm,{size:30}),In.createElement(Qm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},In.createElement(Tv,{size:20,color:"primary"}),In.createElement(qm,{size:4,direction:"horizontal"}),Cl.t("Refresh"))))}i(kl,"RefreshModal");var Gm="700px",Vm="425px",Km="550px",jm="640px",Xm="800px";function wl(t){let e=t.target;if(e){let o=e.scrollTop,n=W();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(wl,"onScrollContentAttachStatusToContainer");import{css as Cv,styled as Hi}from"@rango-dev/ui";var Qi=Cv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Ym=Hi("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",maxHeight:Gm,variants:{height:{auto:{height:"auto"},fixed:{height:"100%",minHeight:Vm,[`@media screen and (min-height: ${Xm})`]:{minHeight:Km}}},showBanner:{true:{overflow:"visible"}}}}),Zm=Hi("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Jm=Hi("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"}}}),Rm=Hi("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function se(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=nl(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=C(),[u,d]=of(!1),{config:{features:f,theme:h}}=C(),{watermark:g}=ne(),m=g==="FULL",{activeTheme:S}=go(h||{}),[T,y]=of(!1),k=nt("connectWalletButton",f),{isActiveTab:w,tabManagerInitiated:v,showActivateTabModal:x,setShowActivateTabModal:A,activateCurrentTab:E,setShowCompactTokenSelector:I}=ne(),b=Ve(),{manager:L}=kv(),O=vt(L).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),q=i(()=>E($o.forceClaim,O),"onActivateTab"),j=i(()=>{r.onWallet?.()},"onConnectWallet"),ee=typeof r.hasBackButton>"u"||r.hasBackButton,P=tf(null),Z=tf(null);return qi(()=>{let Y=(p?.swapBoxBanner?.routes?.length??0)===0,ce=!!p?.swapBoxBanner?.routes?.some(Ee=>location.pathname.endsWith(Ee));y(!!p?.swapBoxBanner&&(Y||ce))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),qi(()=>(Mi()&&Z.current&&e(Z.current),()=>{o()}),[]),qi(()=>(P.current?.addEventListener("scroll",wl),()=>{P.current?.removeEventListener("scroll",wl)}),[]),qi(()=>{d(c==="failed")},[c]),Ev(()=>{if(!Z.current)return;let Y=new ResizeObserver(ce=>{for(let Ee of ce)Ee.contentRect&&I(Ee.contentRect.height<parseInt(jm))});return Y.observe(Z.current),()=>Y.disconnect()},[]),Pe.createElement(Ym,{height:s,id:kt.SWAP_BOX_ID,className:`${S()} ${Qi()}`,ref:Z,showBanner:T},Pe.createElement(vv,{prefix:ee?Pe.createElement(fl,{onClick:()=>{b(),r.onBack?.()}}):null,title:r.title,suffix:Pe.createElement(Pe.Fragment,null,r.suffix,r.onWallet&&!k&&Pe.createElement(yl,{container:W(),onClick:j,isConnected:!!l?.length}),r.onCancel&&Pe.createElement(hl,{onClick:r.onCancel}))}),Pe.createElement(Zm,{ref:P},n),Pe.createElement(ml,{open:x,onClose:()=>A(!1),onConfirm:q}),Pe.createElement(Jm,null,Pe.createElement("div",{className:"footer__content"},v&&!w&&Pe.createElement("div",{className:"footer__alert"},Pe.createElement(ul,{onActivateTab:q}),Pe.createElement(ef,{size:10})),a),Pe.createElement(ef,{size:12}),Pe.createElement("div",{className:`footer__logo ${m?"logo__show":"logo__hidden"}`},Pe.createElement(wv,null))),T&&Pe.createElement(Rm,null,p?.swapBoxBanner?.element),Pe.createElement(kl,{open:u,onClose:()=>d(!1)}))}i(se,"Layout");import{styled as bv}from"@rango-dev/ui";var nf="$20 $20 $10 $20",vl=bv("div",{padding:nf,overflowY:"auto",flexGrow:1});import{styled as xv}from"@rango-dev/ui";var pe=xv("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 yo}from"@lingui/core";import{useState as El}from"react";function rf(){let[t,e]=El(!1),[o,n]=El(null),[r,a]=El(null),{findToken:s}=C(),c=C().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(d,f){switch(d){case"duplicated":return{type:d,title:yo.t("Duplicate Token"),message:yo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:yo.t("Token Already Exists"),message:yo.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:yo.t("Token Not Found"),message:yo.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:f}})};case"network-error":return{type:d,title:yo.t("Network error"),message:yo.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:f})=>{e(!0);try{if(c.some(T=>T.address?.toLowerCase()===f.toLowerCase())){let T=p("duplicated");n(T);return}let g=await dt().getCustomToken({blockchain:d,address:f});if(!g||!g.token||g.error){let T=p("not-found",d);n(T);return}let m=g.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let T=p("token-exist");n(T);return}return a({...m,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",d);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(rf,"useFetchCustomToken");var $v=Pv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${Nv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function af(){let t=Mv(),[e]=Dv(),o=Ve(),n=C().blockchains(),r=e.get("blockchain")||"",a=Po(r,n),[s,c]=_v(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:f}=rf(),h=!!a&&Lo(a,s),g=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ke.createElement(se,{header:{title:An.t("Add Custom Token")}},Ke.createElement(pe,null,Ke.createElement($v,null,Ke.createElement("div",null,Ke.createElement(Zs,{onClick:()=>t($.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:An.t("Select chain"),placeholder:An.t("Select chain")}),Ke.createElement(bl,{size:"24"}),Ke.createElement(Bv,{size:"large",variant:"label"},An.t("Enter Address")),Ke.createElement(bl,{size:10}),Ke.createElement(Lv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:An.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Ke.createElement(Wv,{color:"success",size:12}),onChange:S=>c(S.target.value)}),!h&&!!s&&Ke.createElement(Ke.Fragment,null,Ke.createElement(bl,{size:4}),Ke.createElement(Iv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ke.createElement(Av,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},An.t("Import"))),Ke.createElement(hr,{token:p,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(af,"AddCustomTokenPage");import{i18n as rc}from"@lingui/core";import{useManager as Cb}from"@rango-dev/queue-manager-react";import{Alert as kb,Button as wb,css as ac,Divider as ic,IconButton as Yg,styled as vb,Typography as Eb,WalletIcon as bb}from"@rango-dev/ui";import $e,{useEffect as Sa,useLayoutEffect as xb,useRef as Ib,useState as Ir}from"react";import{useNavigate as Ab}from"react-router-dom";import{i18n as Ko}from"@lingui/core";import{Alert as oE,BalanceErrors as nE,Button as Wf,ChevronLeftIcon as rE,Divider as Pl,MessageBox as iE,Typography as Ll}from"@rango-dev/ui";import ae,{useCallback as aE,useEffect as Yi,useMemo as sE,useState as Wn}from"react";import{useNavigate as lE}from"react-router-dom";import{i18n as Nl}from"@lingui/core";import{Alert as Hv,ChevronDownIcon as Qv,CloseIcon as qv,Divider as mf,IconButton as ff,PasteIcon as Gv,Typography as Vv,WalletIcon as Kv}from"@rango-dev/ui";import Me,{useEffect as gf,useRef as hf}from"react";import ji,{useRef as Uv}from"react";import*as Nn from"@radix-ui/react-collapsible";import{keyframes as sf,styled as Gi}from"@rango-dev/ui";var xl=300,Fv=sf({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Ov=sf({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),lf=Gi(Nn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Il=Gi(Nn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Vi=Gi(Nn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Fv} ${xl}ms ease-out`},false:{animation:`${Ov} ${xl}ms ease-out`}}}}),Ki=Gi("div",{transition:`all ${xl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Xi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Uv(null);return ji.createElement(lf,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&ji.createElement(Il,{className:"collapsible_trigger",onClick:a},s),ji.createElement(Vi,{className:"collapsible_content",open:e},r),c==="bottom"&&ji.createElement(Il,{className:"collapsible_trigger",onClick:a},s))}i(Xi,"CustomCollapsible");import{darkTheme as cf,styled as Al,TextField as zv}from"@rango-dev/ui";var pf=Al("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),uf=Al(zv,{backgroundColor:"$neutral100"}),df=Al("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${cf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${cf} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function yf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=z()(),{config:s}=C(),c=C().blockchains(),l=Hp(e.name,c),p=hf(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!Lo(e,r),g=i(()=>{a("")},"handleClear"),m=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let k=await navigator.clipboard.readText();a(k),p?.current?.focus()}},"handlePaste"),S=i(()=>r?Me.createElement(ff,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},Me.createElement(qv,{size:12,color:"gray"})):d?null:Me.createElement(ff,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},Me.createElement(Gv,{size:16})),"renderSuffix");gf(()=>{!!u&&r===null&&(a(u),o(!0))},[u]);let T=hf(null);return gf(()=>{if(!r){T.current=null;return}n&&Lo(e,r)&&T.current!==r&&(T.current=r,te({type:"destinationAddressSet",payload:{destinationChain:e.name}}))},[r,n,e]),Me.createElement(pf,null,Me.createElement(Xi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Me.createElement(df,{id:"widget-custom-destination-collapsible-btn"},Me.createElement("div",{className:"button__content"},Me.createElement(Kv,{size:18,color:"info"}),Me.createElement(mf,{size:4,direction:"horizontal"}),Me.createElement(Vv,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Nl.t("Send to a different address"))),Me.createElement(Ki,{orientation:n?"up":"down"},Me.createElement(Qv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Me.createElement(uf,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Nl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:S(),onChange:y=>{let k=y.target.value;a(k)}})),h&&Me.createElement(Me.Fragment,null,Me.createElement(mf,{size:4}),Me.createElement(Hv,{variant:"alarm",type:"error",title:Nl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(yf,"CustomDestination");import{css as jv,IconButton as Xv,SelectableWalletButton as Yv,styled as So}from"@rango-dev/ui";var Sf=So("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Tf=So("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Cf=So(Yv,{justifyContent:"center"}),kf=So("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),wf=So(Xv,{position:"absolute",left:"$20"}),vf=So("div",{paddingTop:"$20"}),Ef=jv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),bf=So("div",{display:"flex"}),xf=So("div",{overflow:"visible",width:"100%"});import{i18n as If}from"@lingui/core";import{warn as Zv}from"@rango-dev/logging-core";import{makeInfo as Jv,SelectableWallet as Rv,Typography as Af,WalletState as yr}from"@rango-dev/ui";import Vo,{useEffect as eE,useState as Nf}from"react";var tE=7;function Wl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=ne.use.isActiveTab(),{connectedWallets:l}=C(),[p,u]=Nf(),{list:d}=bt({chain:e}),[f,h]=Nf(d),g=d.length,m=a&&g-a>0;return eE(()=>{h(S=>{let T=d.findIndex(y=>n(y.type,e));return m&&T>1?[d[T]].concat(d.filter((y,k)=>k!==T)):S.map(y=>d.find(k=>k.type===y.type)??y)})},[JSON.stringify(d)]),Vo.createElement(Vo.Fragment,null,f.slice(0,a).map(S=>{let T=xu({connectedWallets:l,walletType:S.type,chain:e}),y=S.state===yr.CONNECTED||S.state===yr.PARTIALLY_CONNECTED,k=T?po(T,tE):"",w=y&&!!S.needsNamespace&&!k,v=i(async()=>{S.state===yr.DISCONNECTED||w?u(S):r({walletType:S.type,chain:e,address:T??""})},"onSelectableWalletClick"),x=Jv(S.state),A=i(()=>w?If.t("Chain not connected"):k||x.description,"getWalletDescription"),E=i(()=>S.state===yr.CONNECTED||S.state===yr.PARTIALLY_CONNECTED?w?"neutral600":"neutral700":x.color,"getWalletDescriptionColor");return Vo.createElement(Rv,{key:S.type,id:"widget-wallets-list-selectable-wallet-btn",description:A(),descriptionColor:E(),onClick:v,selected:n(S.type,e),disabled:!c,...S})}),Vo.createElement(ur,{id:"widget-wallets-list-stateful-connect-modal",wallet:p,options:{defaultSelectedChains:o||[e]},onClose:()=>{u(void 0)},onConnect:()=>{t.onConnect&&(p?.type?t.onConnect(p.type):Zv(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),m&&Vo.createElement(Cf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},Vo.createElement(Af,{variant:"label",size:"medium"},If.t("Show more wallets"),Vo.createElement(Af,{variant:"label",size:"medium",color:"$primary"},"\xA0+",g-(a??0)))))}i(Wl,"WalletList");var cE=2;function Pf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=lE(),c=C().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:f,setCustomDestination:h}=z()(),{config:g,connectedWallets:m,setWalletsAsSelected:S}=C(),[T,y]=Wn(""),[k,w]=Wn([]),[v,x]=Wn(""),[A,E]=Wn(!!f),I=sE(()=>Mo({filter:"all",quote:l}),[l]),b=Mo({filter:"required",quote:l}),L=c.find(B=>B.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),N=i(B=>b.includes(B),"isWalletRequiredFor"),O=aE(()=>m.filter(B=>B.selected&&I.includes(B.chain)),[m,I]),[q,j]=Wn(O()),[ee,P]=Wn([]),Z=i((B,V)=>P(H=>H.concat({blockchain:B,walletType:V})),"addNextSelectedWallets"),Y=k.length>0,ce=i((B,V)=>!!q.find(H=>H.walletType===B&&H.chain===V&&H.selected&&(N(V)||!N(V)&&!f)),"isSelected"),Ee=i((B,V,H)=>{let X=!1;return B.map(G=>{if(G.chain===V){let J=G.selected;return!X&&H?(X=!0,J=!0):H||(J=!1),{...G,selected:J}}return G})},"updateSelectableWallets"),Gt=i(B=>{E(B),B?N(L?.name??"")||j(V=>Ee(V,L?.name||"",!1)):(h(""),j(V=>Ee(V,L?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),be=i(B=>{if(T&&y(""),ce(B.walletType,B.chain))return;let H=m.find(X=>X.walletType===B.walletType&&X.chain===B.chain);H&&(n(),B.chain===L?.name&&A&&!N(L.name)&&(E(!1),h(null)),j(X=>X.filter(G=>G.chain!==B.chain).concat({...H,selected:!0})))},"onChange"),He=i(()=>{let B=q.filter(V=>V.selected);te({type:"swapWalletsConfirmed",payload:{routeId:l?.requestId??""}}),S(B),p(B),d(!0),o()},"onConfirmBalance"),Xe=i(async()=>{w([]),x("");let B=await r?.({selectedWallets:q.filter(H=>H.selected),customDestination:f}),V=B.warnings;V?.balance?.messages&&w(V.balance.messages),B.error&&x(vd(B.error)),!B.error&&!V?.balance?.messages.length?He():w(V?.balance?.messages??[])},"onConfirmWallets");Yi(()=>{j(B=>{let V=[];return B.forEach(H=>{!m.some(G=>G.chain===H.chain&&G.walletType===H.walletType&&G.address===H.address)||V.push(H)}),V=V.concat(m.filter(H=>!!!V.find(G=>G.chain===H.chain)&&H.selected&&I.includes(H.chain))),V})},[m,I]),Yi(()=>{let B=[];ee.length>0&&(ee.forEach(V=>{let H=m.find(X=>X.chain===V.blockchain&&X.walletType===V.walletType);H?be(H):B.push(V)}),P(B))},[m,ee]);let St=l?.requestId??"";Yi(()=>{if(!e)return;let B=b.filter(V=>!m.some(H=>H.chain===V));te({type:"swapWalletsModalShown",payload:{chainsRequired:b.length,chainsPending:B.length}})},[e]),Yi(()=>{Y&&te({type:"gasWarningShown",payload:{routeId:St}})},[Y,St]);let ct=document.getElementById(kt.SWAP_BOX_ID);return ae.createElement(re,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!T,container:ct,...!T&&{styles:{container:{height:"100%"}},footer:ae.createElement(bf,null,ae.createElement(Wf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Jd(a,A,f,l,q,L),onClick:Xe,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Ko.t("Confirm")))},...T&&{styles:{container:{height:"100%",padding:"$0"}},header:ae.createElement(kf,null,ae.createElement(wf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:y.bind(null,"")},ae.createElement(rE,{size:16})),ae.createElement(Ll,{variant:"headline",size:"small"},Ko.t({id:"Your {blockchainName} wallets",values:{blockchainName:Tt(T,c)}})))},anchor:"center"},ae.createElement(re,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:Y,onClose:w.bind(null,[]),container:ct},ae.createElement(iE,{title:Ko.t("Insufficient account balance"),type:"error",description:ae.createElement(nE,{messages:k??[]})},ae.createElement(Wf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>{te({type:"gasWarningBypassed",payload:{routeId:St}}),He()}},Ko.t("Proceed anyway")))),T&&ae.createElement(vf,null,ae.createElement("div",{className:Ef()},ae.createElement(Wl,{chain:T,quoteChains:I,isSelected:ce,selectWallet:be,onShowMore:()=>y(T),onConnect:B=>{Z(T,B)}}))),!T&&ae.createElement(ae.Fragment,null,v&&ae.createElement(ae.Fragment,null,ae.createElement(oE,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Ko.t(v)}),ae.createElement(Pl,{size:12})),ae.createElement(xf,null,I.map((B,V)=>{let H=c.find(U=>U.name===B),X=`wallet-${V}`,G=V===I.length-1,J=G&&L&&g?.customDestination!==!1;return ae.createElement("div",{key:X},ae.createElement(Sf,null,ae.createElement(Ll,{variant:"title",size:"xmedium"},Ko.t({id:"Your {blockchainName} wallets",values:{blockchainName:H?.shortName}})),ae.createElement(Ll,{variant:"label",color:"$neutral700",size:"medium"},Ko.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:H?.shortName}}))),ae.createElement(Pl,{size:24}),ae.createElement(Tf,null,ae.createElement(Wl,{chain:B,quoteChains:I,isSelected:ce,selectWallet:be,limit:cE,onShowMore:()=>y(H?.name??""),onConnect:U=>{Z(B,U)}})),!G&&ae.createElement(Pl,{size:32}),J&&ae.createElement(yf,{blockchain:L,open:A,handleOpenChange:Gt}))}))))}i(Pf,"ConfirmWalletsModal");import{i18n as ME}from"@lingui/core";import{Alert as DE,Button as $E,Divider as Zf,InfoIcon as FE}from"@rango-dev/ui";import Oe from"react";import{Alert as dE,Button as mE,Divider as Ml,NoRouteIcon as fE,RefreshIcon as gE,Typography as Ff}from"@rango-dev/ui";import mt from"react";import{i18n as Lf}from"@lingui/core";var pE=24,uE=60;function Bf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ie().genericServerError,action:{onClick:n,title:Lf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ie().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Lf.t("Reset")}},description:ie().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ie().noResultError.description}}i(Bf,"makeInfo");var Bl=(o=>(o[o.small=pE]="small",o[o.large=uE]="large",o))(Bl||{}),_l=(o=>(o.small="small",o.large="medium",o))(_l||{});import{styled as Zi}from"@rango-dev/ui";var _f=Zi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Mf=Zi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Df=Zi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),$f=Zi("div",{padding:"$6 $0"});function Sr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=C().getDisabledLiquiditySources(),s=C().toggleAllLiquiditySources,c=C().swappers(),l=Bf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),mt.createElement(_f,{id:"widget-no-result-container"},mt.createElement(fE,{size:Bl[n],color:"gray"}),mt.createElement(Ml,{size:4}),mt.createElement(Ff,{variant:"title",size:_l[n]},ie().noResultError.title),n==="large"&&mt.createElement(Ml,{size:4}),!!l.description&&mt.createElement(Mf,{size:n},mt.createElement(Ff,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),mt.createElement(Ml,{size:n==="large"?"24":"4"}),!!l.alert&&mt.createElement(Df,{size:n},mt.createElement(dE,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&mt.createElement(mE,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:mt.createElement($f,null,mt.createElement(gE,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Sr,"NoResult");import{i18n as Tr}from"@lingui/core";import{Button as vE,Divider as EE,MessageBox as bE,Typography as xE,WarningIcon as IE}from"@rango-dev/ui";import Jt from"react";import{InfoIcon as TE,Tooltip as CE,Typography as kE}from"@rango-dev/ui";import Pn from"react";import{Button as hE,darkTheme as yE,styled as jo,Typography as SE}from"@rango-dev/ui";var Of=jo("div",{width:"100%"}),Dl=jo("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Uf=jo("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${yE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),zf=jo("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$2"}),Hf=jo(SE,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"250px"}),Qf=jo("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),qf=jo(hE,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});var wE=35;function Gf(t){let{title:e,value:o,valueColor:n}=t,r=W();return Pn.createElement(Uf,null,Pn.createElement(kE,{size:"medium",variant:"label",className:"_title"},e),Pn.createElement(zf,null,Pn.createElement(Hf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`),o.length>wE&&Pn.createElement(CE,{content:o,container:r},Pn.createElement(TE,{size:12,color:"gray"}))))}i(Gf,"QuoteErrorsModalItem");function Vf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:Tr.t("Swapping"),value:M(r.inputUsdValue)},{title:Tr.t("Gas cost"),value:M(r.totalFee,2,2)},{title:Tr.t("Receiving"),value:M(r.outputUsdValue)},{title:Tr.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Jt.createElement(re,{id:"widget-high-value-loss-warning-modal",footer:Jt.createElement(vE,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Jt.createElement(IE,null),fullWidth:!0,disabled:a,onClick:n},ie().highValueLossError.confirmMessage),open:e,onClose:o,container:W()},Jt.createElement(bE,{type:s,title:ie().highValueLossError.impactTitle,description:ie().highValueLossError.description}),Jt.createElement(Dl,null,Jt.createElement(EE,{size:"4"}),Jt.createElement(xE,{size:"small",variant:"title"},Tr.t("Details")),Jt.createElement(Dl,null,c.map((l,p)=>Jt.createElement(Gf,{key:p,...l})))))}i(Vf,"HighValueLossWarningModal");import{i18n as Ln}from"@lingui/core";function Kf(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=Ln.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Ln.t("Increase")),o;if(t){switch(t.type){case 0:{Zt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ie().highValueLossError.title;break}case 4:{o.title=Ln.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=ie().unknownPriceError.title;break}case 2:{o.title=Ln.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=Ln.t("Increase");break}case 3:{o.title=Ln.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Kf,"makeAlerts");function jf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(jf,"getRequiredSlippage");import{i18n as Bn}from"@lingui/core";import{Button as AE,Divider as $l,MessageBox as NE,WarningIcon as WE}from"@rango-dev/ui";import ko from"react";import{useNavigate as PE}from"react-router-dom";function Xf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=PE();return ko.createElement(re,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:W(),onClose:o},ko.createElement(NE,{type:"warning",title:r.type===3?Bn.t("High slippage"):Bn.t("Low slippage"),description:r.type===3?Bn.t("Caution, your slippage is high. Your trade may be front run."):Bn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},ko.createElement($l,{size:18}),ko.createElement($l,{size:32}),ko.createElement(qf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},ko.createElement(WE,{color:"white",size:16}),Bn.t("Swap anyway")),ko.createElement($l,{size:10}),ko.createElement(AE,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+$.settings)},Bn.t("Change Slippage"))))}i(Xf,"SlippageWarningModal");import{Button as LE,MessageBox as BE,WarningIcon as _E}from"@rango-dev/ui";import Ji from"react";function Yf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ji.createElement(re,{id:"widget-unknown-price-warning-modal",footer:Ji.createElement(LE,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Ji.createElement(_E,null),fullWidth:!0,disabled:r,onClick:n},ie().unknownPriceError.confirmMessage),open:e,onClose:o,container:W()},Ji.createElement(BE,{type:"warning",title:ie().unknownPriceError.impactTitle,description:ie().unknownPriceError.description}))}i(Yf,"UnknownPriceWarningModal");function Cr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:d,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,m=Kf(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let S=!!m&&!s,T=i(y=>{if(y==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,w=jf(e,k);f?.(w)}else y==="change-settings"&&d()},"onclickActionButton");return Oe.createElement(Oe.Fragment,null,g&&Oe.createElement(Oe.Fragment,null,Oe.createElement(Zf,{size:10}),Oe.createElement(Sr,{skipAlerts:s,error:o,fetch:c})),S&&Oe.createElement(Of,null,Oe.createElement(Zf,{size:10}),Oe.createElement(DE,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Oe.createElement(Qf,{onClick:l},Oe.createElement(FE,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Oe.createElement($E,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>T(m.action)},m.actionButtonTitle||ME.t("Change"))}})),e&&Oe.createElement(Oe.Fragment,null,e.type===0&&Oe.createElement(Vf,{...h,warning:e}),(e.type===3||e.type===2)&&Oe.createElement(Xf,{...h,warning:e}),e.type===1&&Oe.createElement(Yf,{...h,warning:e})))}i(Cr,"QuoteWarningsAndErrors");import mb from"bignumber.js";import fa from"react";import{i18n as Xo}from"@lingui/core";import{Alert as tb,CampaignQuoteTag as ob,Divider as Mn,FullExpandedQuote as nb,InfoIcon as jl,NumericTooltip as Xl,QuoteTag as rb,StepDetails as ib,TokenAmount as ab,Typography as Dn,useIsTruncated as Yl}from"@rango-dev/ui";import Zl from"bignumber.js";import F,{useRef as ua,useState as sb}from"react";import{styled as Fl}from"@rango-dev/ui";var Ol=Fl("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Jf=Fl("div",{paddingBottom:"$15","& .from-amount-text":{wordBreak:"break-word"},variants:{dense:{true:{paddingBottom:0}}}}),Rf=Fl("div",{width:"100%",display:"flex"});import*as Ri from"@radix-ui/react-collapsible";import{Button as OE,css as ea,darkTheme as De,Image as eg,styled as je,Typography as Ul}from"@rango-dev/ui";var UE=300,tg=je(Ri.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${De} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),og=ea({padding:"$10 $15"}),ng=je(OE,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${De} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${De} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${De} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),rg=je("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${De} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${De} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${De} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${De} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${De} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${De} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${De} &`]:{backgroundColor:"$neutral400"}}}}]}),ig=ea({width:"100%",padding:"$15 $15 $10 $15"}),ag=ea({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),_n=ea({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),sg=je(Ri.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:{[`& ${eg}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${eg}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${De} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),lg=je("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),cg=je(Vi,{width:"100%",background:"inherit"}),zl=je("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${UE}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),ZH=je("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),pg=je("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${De} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),ug=je("div",{display:"flex",flexDirection:"row",alignItems:"center",gap:"$2",flex:"1 1 auto",minWidth:0}),Hl=je(Ul,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"$30"}),Ql=je(Ul,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:"0 1 auto"}),ql=je("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),dg=je("div",{display:"flex"}),ta=je("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${De} &`]:{borderTopColor:"$neutral800"}}),mg=je(Ul,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,flexShrink:3});import{i18n as Ft}from"@lingui/core";import{ChevronDownIcon as HE,CloseIcon as QE,Divider as ra,IconButton as qE,NumericTooltip as GE,QuoteCost as VE,Typography as At}from"@rango-dev/ui";import R,{useState as yg}from"react";import{css as zE,styled as oa}from"@rango-dev/ui";var na=oa("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Gl=oa("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),fg=oa("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),gg=oa("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),hg=zE({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var KE=i(t=>t.fee.isZero()?null:R.createElement(na,null,R.createElement(At,{variant:"label",size:"medium",color:"neutral600"},t.label),R.createElement(At,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Vl(t){let[e,o]=yg(!1),[n,r]=yg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?_o():W(),m=qd(h),S=M(c,2,2);return R.createElement(R.Fragment,null,R.createElement(VE,{onClickFee:d?T=>{T.stopPropagation(),!e&&s&&te({type:"routeFeeViewed",payload:{routeId:s.requestId}}),o(!e)}:void 0,fee:S,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?Ft.t("View more info"):void 0,tooltipContainer:g}),R.createElement(re,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:R.createElement(gg,{style:{textAlign:f?"left":"center"}},R.createElement(At,{variant:"title",size:"medium"},Ft.t("Gas & Fee Explanation")),R.createElement(qE,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},R.createElement(QE,{color:"gray",size:14}))),onClose:()=>{o(!1)}},R.createElement(fg,null,R.createElement(At,{variant:"title",size:"small"},Ft.t("Details")),R.createElement(ra,{size:10}),Object.entries(m.payable).flatMap(([T,y])=>y.map((k,w)=>{let v=`payable-fee-${w}`,x=qs(k);return R.createElement(na,{key:v},R.createElement(At,{variant:"label",size:"medium",color:"neutral600"},Os(T,Ft.t)),R.createElement(GE,{content:k.amount,container:g},R.createElement(At,{variant:"label",size:"medium"},M(k.amount,2,2),k.asset.symbol," ($",M(x,4,4),")")))})),R.createElement(na,{className:"total_payable_fee"},R.createElement(At,{variant:"label",size:"medium"},Ft.t("Total Payable Fee")),R.createElement(At,{variant:"label",size:"medium"},"$",M(c,4,4))),R.createElement(Gl,null),!!Object.keys(m.nonePayable).length&&R.createElement(Xi,{triggerAnchor:"bottom",onClickTrigger:()=>r(T=>!T),trigger:R.createElement("div",{className:hg()},R.createElement(At,{size:"small",variant:"body",color:"neutral700"},n?Ft.t("Hide non-payable fees"):Ft.t("Show non-payable fees")),R.createElement(ra,{size:4,direction:"horizontal"}),R.createElement(Ki,{orientation:n?"up":"down"},R.createElement(HE,{size:12,color:"gray"}))),open:n},R.createElement(At,{size:"small",variant:"title"},Ft.t("Description")),R.createElement(ra,{size:4}),R.createElement(At,{size:"small",variant:"body",color:"neutral700"},Ft.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),R.createElement(ra,{size:10}),Object.entries(m.nonePayable).map(([T,y],k)=>{let w=Qd(y),v=Os(T,Ft.t),x=`non-payable-fee-${k}`;return R.createElement(KE,{key:x,fee:w,label:v})}),R.createElement(Gl,null)))))}i(Vl,"QuoteCostDetails");import{i18n as Cg}from"@lingui/core";import{TokenAmount as kg}from"@rango-dev/ui";import ia from"react";import{css as jE,styled as XE}from"@rango-dev/ui";var Sg=XE("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Tg=jE({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function kr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return ia.createElement(Sg,null,ia.createElement(kg,{direction:"horizontal",label:Cg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:W(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),ia.createElement("div",{className:Tg()}),ia.createElement(kg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:W(),label:Cg.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(kr,"QuoteSummary");import{i18n as xg}from"@lingui/core";import{ChevronDownIcon as JE,ChevronRightIcon as RE,Divider as Kl,Image as eb,Tooltip as pa,Typography as sa}from"@rango-dev/ui";import Q from"react";import{useLayoutEffect as YE,useState as wr}from"react";var wg=480,vg=768,Eg=1024,bg=1200,ZE=i(()=>{let[t,e]=wr(!1),[o,n]=wr(!1),[r,a]=wr(!1),[s,c]=wr(!1),[l,p]=wr(!1),u=i(()=>{e(window.innerWidth<=wg),n(window.innerWidth>wg&&window.innerWidth<=vg),a(window.innerWidth>vg&&window.innerWidth<=Eg),c(window.innerWidth>Eg&&window.innerWidth<=bg),p(window.innerWidth>bg)},"handleResize");return YE(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),aa=ZE;var la=4,ca=6,vr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||W();return Q.createElement(pa,{container:c,side:"bottom",sideOffset:4,open:r,content:e},Q.createElement(lg,{className:n,state:a},Q.createElement(eb,{src:o,size:16})))},"ImageComponent");function Ig(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||W(),p=r.length,u=Bd(r),{isTablet:d,isMobile:f}=aa();return Q.createElement(sg,{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:_n()},Q.createElement(sa,{variant:"body",size:"xsmall"},xg.t("Via:")),Q.createElement(Kl,{direction:"horizontal",size:4}),r.map((h,g)=>{let m=`item-${g}`,S=Q.createElement(zl,null,Q.createElement(RE,{size:12,color:"black"}));return f||d?Q.createElement(Q.Fragment,{key:m},Q.createElement(vr,{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:m},p<=la||p>la&&g<la-1?Q.createElement(Q.Fragment,null,Q.createElement(vr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&Q.createElement(Q.Fragment,null,S)):g===la-1&&Q.createElement(pa,{container:l,side:"bottom",align:"end",sideOffset:4,content:Q.createElement("div",{className:_n()},S,r.map((T,y)=>{let k=`image-${y}`;return y>=g&&Q.createElement(Q.Fragment,{key:k},Q.createElement(vr,{content:T.swapper.displayName,src:T.swapper.image??"",state:T.state,open:!1}),y!==p-1&&Q.createElement(Q.Fragment,null,S))}))},Q.createElement(ql,{state:r.find((T,y)=>y>=g&&(T.state==="error"||T.state==="warning"))?.state},Q.createElement(sa,{size:"xsmall",variant:"body"},"+",p-g))))})),Q.createElement("div",{className:_n()},Q.createElement("div",{className:"blockchains_section"},Q.createElement("div",{className:_n()},Q.createElement(sa,{variant:"body",size:"xsmall"},xg.t("Chains:")),Q.createElement(Kl,{direction:"horizontal",size:4}),u.map((h,g)=>Q.createElement(Q.Fragment,{key:h.displayName},u.length<=ca||u.length>ca&&g<ca-1?Q.createElement(pa,{container:l,side:"bottom",content:h.displayName,sideOffset:4},Q.createElement(vr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===ca-1&&Q.createElement(pa,{container:l,side:"bottom",align:"end",sideOffset:4,content:Q.createElement("div",{className:_n()},u.map((m,S)=>S>=g&&Q.createElement(vr,{key:m.displayName,content:"",src:m.image??"",open:!1,className:S>g?"blockchainImage":"",container:c})))},Q.createElement(ql,{className:"blockchainImage"},Q.createElement(sa,{size:"xsmall",variant:"body"},"+",u.length-g))))),Q.createElement(Kl,{direction:"horizontal",size:32}))),Q.createElement(zl,{orientation:a?"up":"down"},Q.createElement(JE,{size:12,color:"black"}))))}i(Ig,"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:f}=t,h=C().blockchains(),{findToken:g}=C(),m=C().swappers(),{customSlippage:S,slippage:T}=C(),y=S||T,[k,w]=sb(t.expanded),v=ua(null),x=M(n.value,6,6),A=n.usdValue?M(n.usdValue,4,4):"",{config:{__UNSTABLE_OR_INTERNAL__:E}}=C(),I=Yt(o.usdValue,n.usdValue??null),b=M(I,2,2),L=Zt(I??0),N=i((G,J)=>G.map((U,de)=>{let Qe,ot=r?.type===3&&r.swap.swapperId===U.swapperId,co=r?.type===4&&!!r.recommendedSlippages?.[de],Gn=a?.type===2&&!!a.recommendedSlippages?.[de],No=ot||co,Rr=Gn;No?Qe="error":Rr&&(Qe="warning");let rn=No?Xo.t("Slippage Error"):Xo.t("Slippage Warning");return ot&&(rn=Xo.t("Bridge Limit Error")),{swapper:{displayName:Kn(U.swapperId,m)??"",image:U.swapperLogo},from:{token:{displayName:U.from.symbol,image:U.from.logo},chain:{displayName:Tt(U.from.blockchain,h)??"",image:U.from.blockchainLogo},price:{value:de===0&&!J?M(o.value,6,6):M(U.fromAmount,6,6),usdValue:M((U.from.usdPrice??0)*parseFloat(U.fromAmount),4,4),realValue:de===0?o.value:U.fromAmount,realUsdValue:new Zl(U.from.usdPrice??0).multipliedBy(U.fromAmount).toString()}},to:{token:{displayName:U.to.symbol,image:U.to.logo},chain:{displayName:Tt(U.to.blockchain,h)||"",image:U.to.blockchainLogo},price:{value:M(U.toAmount,6,6),usdValue:M((U.to.usdPrice??0)*parseFloat(U.toAmount),4,4),realValue:U.toAmount,realUsdValue:new Zl(U.to.usdPrice??0).multipliedBy(U.toAmount).toString()}},state:Qe,alerts:No||Rr?F.createElement(Jf,{dense:d},F.createElement(tb,{variant:"alarm",type:No?"error":"warning",title:rn,id:"widget-quote-footer-step-alarm-alert",footer:F.createElement(Rf,null,ot&&F.createElement("div",null,F.createElement(Dn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(Mn,{direction:"vertical",size:2}),F.createElement(Dn,{size:"xsmall",variant:"body",className:"from-amount-text",color:"neutral900"},Xo.t({id:"Yours: {amount} {symbol}",values:{amount:M(U.fromAmount,6,6),symbol:U?.from.symbol}}))),(co||Gn)&&!ot&&F.createElement("div",null,F.createElement(Dn,{size:"xsmall",variant:"body",color:"neutral900"},Xo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[de]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[de]}}})),F.createElement(Mn,{direction:"vertical",size:2}),F.createElement(Dn,{size:"xsmall",variant:"body",color:"neutral900"},Xo.t({id:"Yours: {userSlippage}",values:{userSlippage:y}}))))})):void 0,time:Xn(U.estimatedTimeInSeconds),fee:M(Qs(U,g),2,2),internalSwaps:U.internalSwaps?N(U.internalSwaps):void 0}}),"getQuoteSteps"),O=N(e?.swaps??[]),q=O.length,j=f||W(),ee=Md(t.quote.tags||[]),P=!!u,Z=si(e?.swaps),Y=Xn(Z),ce=Wi(e?.swaps??[],g),Ee=M(ce,2,2),Gt=ce.gte(new Zl(bd)),be=Z/Id>=xd,He=ua(null),Xe=Yl(o.value,He),St=ua(null),ct=Yl(n.value,St),B=ua(null),V=Yl(A,B),H=O[q-1],X=O[0];return!X||!H?null:d?F.createElement(nb,{selected:c,fee:Ee,time:Y,tooltipContainer:_o(),steps:O,tags:ee,campaignTag:E?.campaignTag,id:"widget-quote-full-expanded-quote-container",quoteCost:F.createElement(Vl,{quote:e,fullExpandedMode:!0,time:Y,fee:ce,feeWarning:Gt,timeWarning:be,showModalFee:p,steps:q}),percentageChange:b,warningLevel:L,outputPrice:{value:x,usdValue:A,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(rg,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:ig()},!l&&ee.length?F.createElement(F.Fragment,null,F.createElement(dg,null,ee.map((G,J)=>{let U=`${G.value}_${J}`;return F.createElement(F.Fragment,{key:U},G.value=="CAMPAIGN"&&E?.campaignTag?F.createElement(ob,{routeTag:G,...E.campaignTag}):F.createElement(rb,{label:G.label,value:G.value}),F.createElement(Mn,{size:4,direction:"horizontal"}))})),F.createElement(ta,null),!P&&F.createElement(Mn,{size:4})):null,F.createElement("div",{id:"portal-root",className:ag()},F.createElement(Vl,{quote:e,time:Y,fee:ce,feeWarning:Gt,timeWarning:be,showModalFee:p,steps:q}),P&&F.createElement(ng,{onClick:G=>{G.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Dn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Xo.t("See All Routes")))),s==="basic"&&F.createElement(ug,null,F.createElement(Ql,{ref:He,size:"small",variant:"body"},o.value),Xe&&F.createElement(Xl,{content:o.value,container:j,open:o.value?void 0:!1},F.createElement(jl,{size:12,color:"gray"})),F.createElement(Hl,{size:"small",variant:"body"},O[0]?.from.token.displayName),F.createElement(Dn,{size:"small",variant:"body"},"="),F.createElement(Ql,{ref:St,size:"small",variant:"body"},n.value),ct&&F.createElement(Xl,{content:n.value,container:j,open:n.value?void 0:!1},F.createElement(jl,{size:12,color:"gray"})),F.createElement(Hl,{size:"small",variant:"body"},H?.to.token.displayName),F.createElement(Mn,{size:2,direction:"horizontal"}),F.createElement(mg,{ref:B,color:"$neutral600",size:"xsmall",variant:"body"},`($${A})`),V&&F.createElement(Xl,{content:n.usdValue,container:j},F.createElement(jl,{size:12,color:"gray"}))),s==="list-item"&&F.createElement(ab,{id:"widget-quote-token-amount-container",tooltipContainer:j,type:"output",direction:"vertical",price:{value:x,usdValue:A,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:H.to.token.displayName,image:H.to.token.image},chain:{image:H.to.chain.image},percentageChange:b,warningLevel:L}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(kr,{from:X.from,to:H.to,percentageChange:b,warningLevel:L}),F.createElement(Mn,{size:4}))),F.createElement(tg,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},F.createElement(Ig,{type:s,quoteRef:v,selected:c,setExpanded:w,container:j,expanded:k,steps:O}),F.createElement(cg,{open:k},F.createElement(pg,null),F.createElement("div",{className:og()},O.map((G,J)=>{let U=`item-${J}`;return F.createElement(ib,{type:"quote-details",className:"widget-quote-step-details-container",key:U,tooltipContainer:j,step:G,hasSeparator:J!==O.length-1,state:G.state})})))))}i(Jl,"Quote");import{Divider as ub,Skeleton as db}from"@rango-dev/ui";import oo from"react";import{darkTheme as lb,styled as da}from"@rango-dev/ui";var Ag=da("div",{$$color:"$colors$neutral100",[`.${lb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Ng=da("div",{paddingTop:"$2"}),Wg=da("div",{paddingLeft:"$8"}),Pg=da("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as zg,Divider as Nt,Skeleton as ft}from"@rango-dev/ui";import K from"react";import{css as cb,styled as to}from"@rango-dev/ui";var Rl=to("div",{display:"flex"}),Lg=to("div",{padding:"$10 $0 $20"}),Bg=to("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),_g=to("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Mg=to("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Dg=to("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),$g=to("div",{width:"65%",display:"flex",justifyContent:"start"}),Fg=to("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Og=to("div",{padding:"$15 $0 $15 $0"}),Ug=cb({display:"flex",justifyContent:"space-between",alignItems:"center"});function Er(t){let{type:e,tagHidden:o=!0}=t,n=K.createElement(Mg,null,K.createElement($g,null,K.createElement(zg,{loading:!0,size:"medium"}),K.createElement(Nt,{size:8,direction:"horizontal"}),K.createElement(Fg,null,K.createElement(ft,{height:10,width:60,variant:"rounded"}),K.createElement(Nt,{size:4}),K.createElement(ft,{height:15,variant:"rounded"}))),K.createElement(ft,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return K.createElement("div",null,!o&&K.createElement(K.Fragment,null,K.createElement(Rl,null,K.createElement(ft,{width:65,height:20,variant:"rounded"}),K.createElement(Nt,{size:4,direction:"horizontal"}),K.createElement(ft,{width:65,height:20,variant:"rounded"}),K.createElement(Nt,{size:4,direction:"horizontal"}),K.createElement(ft,{width:65,height:20,variant:"rounded"})),K.createElement(ta,null),!r&&K.createElement(Nt,{size:4})),K.createElement("div",{className:Ug()},K.createElement(Rl,null,K.createElement(ft,{width:60,height:10,variant:"rounded"}),K.createElement(Nt,{size:4,direction:"horizontal"}),K.createElement(ft,{width:60,height:10,variant:"rounded"}),K.createElement(Nt,{size:4,direction:"horizontal"}),K.createElement(ft,{width:60,height:10,variant:"rounded"})),r&&K.createElement(ft,{width:85,height:24,variant:"rounded"})),e==="basic"&&K.createElement(Lg,null,K.createElement(ft,{height:15,width:148,variant:"rounded"})),e==="list-item"&&K.createElement(Bg,null,K.createElement(_g,null,K.createElement(zg,{loading:!0,size:"medium"}),K.createElement(Nt,{direction:"horizontal",size:4}),K.createElement(ft,{height:15,width:150,variant:"rounded"})),K.createElement(Nt,{size:10}),K.createElement(ft,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&K.createElement(K.Fragment,null,K.createElement(Nt,{size:4}),K.createElement(Og,null,n,K.createElement(Dg,null),n),K.createElement(Nt,{size:12})))}i(Er,"QuoteSummarySkeleton");import{ChainToken as Vg,Divider as tc,NextIcon as pb,Skeleton as ma}from"@rango-dev/ui";import Le from"react";import{styled as br}from"@rango-dev/ui";var Hg=br("div",{display:"flex",alignItems:"start"}),Qg=br("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),ec=br("div",{display:"flex",alignItems:"center",flexGrow:1}),qg=br("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Gg=br("div",{display:"flex",alignItems:"center"});function Ot(t){let{separator:e=!0}=t;return Le.createElement(Le.Fragment,null,Le.createElement(Gg,null,Le.createElement(ma,{height:22,width:22,variant:"circular"}),Le.createElement(tc,{direction:"horizontal",size:8}),Le.createElement(ma,{height:15,width:148,variant:"rounded"})),Le.createElement(Hg,null,Le.createElement(Pg,{hideSeparator:!e}),Le.createElement(Qg,{extraSpace:e},Le.createElement(ec,null,Le.createElement(Vg,{size:"small",loading:!0}),Le.createElement(tc,{direction:"horizontal",size:8}),Le.createElement(ma,{height:12,variant:"rounded"})),Le.createElement(qg,null,Le.createElement(pb,{color:"gray",size:16})),Le.createElement(ec,null,Le.createElement(Vg,{size:"small",loading:!0}),Le.createElement(tc,{direction:"horizontal",size:8}),Le.createElement(ma,{height:12,variant:"rounded"})))))}i(Ot,"StepSkeleton");function xr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return oo.createElement(Ag,{expanded:o,rounded:e!=="basic"},oo.createElement(Er,{type:e,tagHidden:n}),oo.createElement(Ng,null,oo.createElement(db,{height:15,variant:"rounded"})),o&&oo.createElement(Wg,null,oo.createElement(ub,{size:24}),oo.createElement(Ot,null),oo.createElement(Ot,null),oo.createElement(Ot,{separator:!1})))}i(xr,"QuoteSkeleton");function Yo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:d,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:m,inputUsdValue:S}=z()(),T=e?.outputAmount?new mb(e?.outputAmount):null,y=e?it(e):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?fa.createElement(Ol,null,fa.createElement(xr,{tagHidden:c,type:o,expanded:s})):w?fa.createElement(Ol,{onClick:()=>l?.(e),id:d},fa.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:m,usdValue:S?.toString()??""},output:{value:T?.toString()??"",usdValue:y?.toString()??""}})):null}i(Yo,"QuoteInfo");import{warn as yb}from"@rango-dev/logging-core";import{calculatePendingSwap as Sb}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Tb}from"react";import{useRef as fb,useState as gb}from"react";var hb=2e3;function ga({request:t}){let[e,o]=gb(!1),n=fb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,hb)),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(ga,"useFetch");function Kg(){let{fetch:t,loading:e,cancelFetch:o}=ga({request:async(n,r)=>await dt().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Kg,"useFetchConfirmQuote");function ha(t){if(!t.swaps)throw new Error(ie().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=oc(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ha,"throwErrorIfResponseIsNotValid");function oc(t){if(Ud(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=zd(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=Gd(t);if(o){let n=Pi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(oc,"getQuoteError");function jg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=En({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=jd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(jg,"generateWarnings");function ya(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(ya,"handleQuoteErrors");function nc(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=z()(),{slippage:l,customSlippage:p}=C(),u=C().getDisabledLiquiditySources(),d=C().blockchains(),f=C().tokens(),{findToken:h}=C(),{swapMode:g}=rt(),m=p||l,{fetch:S,cancelFetch:T,loading:y}=Kg();return Tb(()=>T,[]),{loading:y,fetch:i(async w=>{let v=w.selectedWallets,x=w?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=v.reduce((I,b)=>(I[b.chain]=b.address,I),{}),E={requestId:a?.requestId||"",selectedWallets:A,destination:x||void 0};try{return await S(E,!0).then(I=>{let{result:b}=I;if(!b)throw new Error(I.error??"Error fetching updated quote");ha({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let L={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};r(L);let N={slippage:m.toString(),disabledSwappersGroups:u},O=jg({previousQuote:a??void 0,currentQuote:L,meta:{blockchains:d},selectedWallets:v,userSlippage:m,inputUsdValue:n,findToken:h});c();let q=!!O.balance,j=Sb({inputAmount:o.toString(),bestRoute:b,wallets:Kd(v),settings:N,validateBalanceOrFee:!q,meta:{blockchains:d,tokens:f},swapMode:g});return{quote:L,swap:j,error:null,warnings:O}})}catch(I){let b=ya(I);return b.type!==2&&yb(new Error("confirm swap error"),{tags:{...b,type:Je[b.type],initialQuote:a,requestBody:E}}),{swap:null,error:b,warnings:null}}},"fetch"),cancelFetch:T}}i(nc,"useConfirmSwap");function Xg(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}i(Xg,"toNumberOrNull");function $n(t){let e=t.swaps[0],o=t.swaps[t.swaps.length-1],n=zo(t),r=it(t);return{routeId:t.requestId,sourceChain:e?.from.blockchain??"",destinationChain:o?.to.blockchain??"",sourceTokenSymbol:e?.from.symbol??"",sourceTokenAddress:e?.from.address??null,destinationTokenSymbol:o?.to.symbol??"",destinationTokenAddress:o?.to.address??null,sourceTokenAmount:Xg(t.requestAmount),destinationTokenAmount:Xg(t.outputAmount),inputAmountUsd:n?n.toNumber():null,outputAmountUsd:r?r.toNumber():null}}i($n,"buildSwapEstimatePayload");var Nb=vb("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Yg}`]:{width:"$48",height:"$48"}}),Wb=ac({flexGrow:1,paddingRight:"$10"}),Pb=ac({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Lb=ac({display:"flex",justifyContent:"space-between",alignItems:"center"});function Zg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=z()(),s=Ab(),[c,l]=Ir(""),p=!n,[u,d]=Ir(!1),[f,h]=Ir(!1),{isActiveTab:g}=ne(),m=C().getDisabledLiquiditySources(),S=Ib(m),{manager:T}=Cb(),{fetch:y,loading:k,cancelFetch:w}=nc(),[v,x]=Ir({swap:null,error:null,warnings:null}),[A,E]=Ir(!1),I=i(async({selectedWallets:P,customDestination:Z})=>{let Y=await y?.({selectedWallets:P,customDestination:Z});return x(Y),Y},"onConfirmSwap"),b=i(async()=>{if(v.swap&&n)try{await T?.create("swap",{swapDetails:v.swap},{id:v.swap.requestId});let P=`../${$.swaps}/${v.swap.requestId}`;s(P,{replace:!0}),setTimeout(()=>{e("")},0)}catch(P){l("Error: "+P?.message)}},"addNewSwap"),L=i(async()=>{h(!0),await b(),h(!1)},"onConfirm"),N=i(async()=>{v.warnings?.quote&&Ld(v.warnings.quote)&&!a?E(!0):(t&&te({type:"swapStarted",payload:{...$n(t),stepCount:t.swaps.length}}),await L())},"onStartConfirmSwap"),O=i(async()=>{x({error:null,swap:null,warnings:null}),y({selectedWallets:o,customDestination:r}).then(P=>{x(P)}).catch(P=>console.error(P))},"onRefresh");Sa(()=>{!!S.current.length&&!m.length&&O(),S.current=m},[m.length]),Sa(()=>{p&&w()},[p]),Sa(()=>{p&&d(p)},[p]),Sa(()=>{p||y({selectedWallets:o,customDestination:r}).then(P=>x(P)).catch(P=>console.error(P))},[]),xb(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=v.warnings?.quote??null,j=v.error,ee=[];if(c&&ee.push($e.createElement(kb,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||j){let P=`../${$.settings}`;ee.push($e.createElement(Cr,{warning:q,error:j,couldChangeSettings:!1,refetchQuote:O,skipAlerts:j?.type===4||q?.type===2,showWarningModal:A,confirmationDisabled:!g,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await b()},onChangeSettings:()=>s(P)}))}return $e.createElement(se,{header:{title:rc.t("Confirm Swap"),onWallet:()=>{let P=`../${$.wallets}`;s(P)}},footer:$e.createElement(Nb,null,$e.createElement("div",{className:Wb()},$e.createElement(wb,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!v.error||!g,onClick:N},rc.t("Start Swap"))),$e.createElement(Yg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:d.bind(null,!0)},$e.createElement(bb,{size:24})))},u&&$e.createElement(Pf,{open:u,onClose:()=>d(!1),onCancel:w,loading:k,onCheckBalance:I}),$e.createElement(pe,null,$e.createElement("div",{className:Lb()},$e.createElement(Eb,{variant:"title",size:"small"},rc.t("You get")),$e.createElement("div",{className:Pb()},$e.createElement(Oi,{onClick:!k&&!u&&!A?O:void 0}))),$e.createElement(ic,{size:"12"}),Em(ee.map((P,Z)=>({element:P,key:`alert-${Z}`})),$e.createElement(ic,{size:10})),ee.length>0?$e.createElement(ic,{size:10}):null,$e.createElement(Yo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:v.error,loading:k,warning:v.warnings?.quote??null})))}i(Zg,"ConfirmSwapPage");import{i18n as ro}from"@lingui/core";import{Button as Sc,CustomTokensZeroStateDarkIcon as Jb,CustomTokensZeroStateIcon as Rb,DeleteIcon as ex,Divider as Lr,IconButton as tx,MessageBox as ox,NotFound as nx,styled as Cc}from"@rango-dev/ui";import Se,{useState as Tc}from"react";import{useNavigate as rx}from"react-router-dom";import{CloseIcon as Bb,IconButton as _b,SearchIcon as Mb,TextField as Db}from"@rango-dev/ui";import Fn from"react";import{styled as Jg}from"@rango-dev/ui";var Rg=Jg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),eh=Jg("div",{width:"100%","& ._text-field":{paddingLeft:"$10","& input":{paddingLeft:"$2",paddingTop:"$12",paddingBottom:"$12"}}});function Wt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...d}=t,f=s.length?Fn.createElement(_b,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},Fn.createElement(Bb,{color:"gray",size:10})):null;return p&&(f=p),Fn.createElement(eh,null,Fn.createElement(Db,{prefix:Fn.createElement(Rg,null,Fn.createElement(Mb,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d}))}i(Wt,"SearchInput");import{i18n as yc}from"@lingui/core";import{Button as Ub,CustomTokenWarning as zb,darkTheme as dh,Divider as no,ExternalLinkIcon as Hb,Image as Qb,ListItem as qb,NotFound as Gb,PinIcon as Vb,Skeleton as Zo,Typography as Wr,VirtualizedList as Kb}from"@rango-dev/ui";import _,{useState as jb}from"react";import{useTranslation as Xb}from"react-i18next";import{Divider as ph,ListItem as Ob,Skeleton as Nr}from"@rango-dev/ui";import Pt from"react";import{css as On,darkTheme as sc,ImageContainer as $b,ListItemButton as Fb,styled as st,Typography as th}from"@rango-dev/ui";var lc=On({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),cc=On({position:"relative",height:12,width:"30%",maxWidth:"150px"}),pc=On({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),uc=On({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${sc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),dc=On({}),mc=On(),oh=st("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),fc=st("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Ta=st("ul",{flexGrow:1,height:"100%",padding:0,margin:0,display:"flex",flexDirection:"column",listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${cc}`]:{[`& .${uc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${dc}`]:{bottom:"-15px"},[`& .${lc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${pc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),nh=st(Fb,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),gc=st("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),hc=st(th,{}),rh=st("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${mc}`]:{$$color:"$colors$neutral600",[`.${sc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ar=st("div",{display:"flex",alignItems:"end",flexDirection:"column"}),oV=st("div",{display:"flex",alignItems:"center"}),ih=st("div",{position:"relative",[`& ${$b}`]:{borderRadius:"$xm",overflow:"hidden"}}),ah=st("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),sh=st(th,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),lh=st("a",{"& svg:hover":{color:"$colors$info"}}),ch=st("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":{[`.${sc} &`]:{color:"$foreground"}}}});function uh(t){return Pt.createElement(Ta,null,Array.from(Array(t.size),e=>Pt.createElement(Ob,{key:e,hasDivider:!0,start:Pt.createElement(Nr,{variant:"circular",width:35,height:35}),end:Pt.createElement(Ar,null,Pt.createElement(Nr,{variant:"text",size:"large",width:70}),Pt.createElement(ph,{size:4}),Pt.createElement(Nr,{variant:"text",size:"medium",width:50})),title:Pt.createElement("div",null,Pt.createElement(Nr,{variant:"text",size:"large",width:90}),Pt.createElement(ph,{size:4}),Pt.createElement(Nr,{variant:"text",size:"medium",width:90}))})))}i(uh,"LoadingTokenList");var Yb=20,Zb=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return _.createElement("div",{className:cc()},o?_.createElement("div",{className:lc()},o):_.createElement(fc,{className:pc()},_.createElement(Wr,{variant:"title",size:"xmedium"},r.symbol),_.createElement(no,{direction:"horizontal",size:4}),_.createElement(gc,{css:a},_.createElement(hc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&_.createElement("div",{className:`${uc()} ${!o&&dc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",_.createElement(no,{size:4,direction:"horizontal"}),_.createElement(lh,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},_.createElement(Hb,{size:12}))))},"renderDesc");function Pr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=C().fetchStatus,u=C().blockchains(),{getBalanceFor:d,fetchingWallets:f}=C(),{isTokenPinned:h}=C(),{setFromToken:g,setToToken:m}=z()(),{t:S}=Xb(),T=Ve(),[y,k]=jb(null),w=i(()=>{c==="source"?g({token:y,meta:{blockchains:u}}):m({token:y,meta:{blockchains:u}})},"updateToken"),v=i(()=>{w(),T()},"handleImportToken"),x=i(I=>{if(I.customToken){let{customToken:L,...N}=I;return _.createElement(Ub,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),k({...N,warning:!0})},"handleClick")},_.createElement(Wr,{variant:"body",size:"xsmall",color:"background"},S("import")))}let b=pi(d(I));return s?s(I):f?_.createElement(Ar,null,_.createElement(Zo,{variant:"text",size:"large",width:70}),_.createElement(no,{size:4}),_.createElement(Zo,{variant:"text",size:"medium",width:50})):b&&_.createElement(rh,null,_.createElement(sh,{variant:"title",size:"small"},b.amount),_.createElement("div",null),b.usdValue&&_.createElement(Wr,{variant:"body",className:mc(),size:"xsmall"},`$${b.usdValue}`))},"endRenderer"),A=i(()=>_.createElement(Kb,{style:{flexGrow:1,minHeight:0},itemContent:I=>{let b=e[I];if(b==="skeleton")return _.createElement(qb,{hasDivider:!0,start:_.createElement(Zo,{variant:"circular",width:35,height:35}),end:_.createElement(Ar,null,_.createElement(Zo,{variant:"text",size:"large",width:70}),_.createElement(no,{size:4}),_.createElement(Zo,{variant:"text",size:"medium",width:50})),title:_.createElement("div",null,_.createElement(Zo,{variant:"text",size:"large",width:90}),_.createElement(no,{size:4}),_.createElement(Zo,{variant:"text",size:"medium",width:90}))});let L=u.find(Z=>Z.name===b?.blockchain);if(!L||!b)return null;let N=b.address,O=il(L.color,"main"),q={$$color:O.main150,[`.${dh} &`]:{$$color:O.main750},backgroundColor:"$$color"},j={$$color:O.main750,[`.${dh} &`]:{$$color:O.main150},color:"$$color"},ee=i(()=>{typeof b!="string"&&!b.customToken&&n?.(b)},"handleClick"),P=N?ti({contractAddress:N,blockchainMeta:L}):void 0;return _.createElement(ch,null,_.createElement(nh,{"tab-index":I,key:`${b.symbol}${N}`,id:`${b.symbol}${N}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:b?.customToken,onClick:ee,start:_.createElement(ih,null,_.createElement(Qb,{src:b.image===""?ni:b.image,size:30}),t.type!=="custom-token"&&b&&h(b,t.type)&&_.createElement(ah,null,_.createElement(Vb,{size:12,color:"gray"}))),title:b.name||!b.name&&!N?_.createElement(fc,null,_.createElement(Wr,{variant:"title",size:"xmedium"},b.symbol),_.createElement(no,{direction:"horizontal",size:4}),_.createElement(gc,{css:q},_.createElement(hc,{variant:"body",size:"xsmall",css:j},b.blockchain)),l&&b.warning&&_.createElement(_.Fragment,null,_.createElement(no,{direction:"horizontal",size:4}),_.createElement(zb,{container:W()}))):void 0,description:typeof b!="string"&&L.info&&N&&P?Zb({address:N,token:b,customCssForTag:q,customCssForTagTitle:j,name:b.name,url:P}):b.name||void 0,end:x(b)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=y?Po(y?.blockchain,u):null;return _.createElement(_.Fragment,null,a&&_.createElement(_.Fragment,null,_.createElement(Wr,{variant:"label",size:"large"},yc.t("Select Token")),_.createElement(no,{size:4})),_.createElement(oh,null,_.createElement(no,{size:4}),p==="loading"&&_.createElement(uh,{size:Yb}),p==="success"&&(e.length?_.createElement(_.Fragment,null,_.createElement(hr,{token:y,address:y?.address??"",blockchain:E??void 0,onImport:v,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),_.createElement(Ta,{as:"ul"},A())):!!o&&_.createElement(Gb,{title:yc.t("No results found"),description:yc.t("Try using different keywords")}))))}i(Pr,"TokenList");var ix=Cc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),ax=Cc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),sx=Cc(tx,{"&:hover":{"& svg":{color:"$secondary550"}}});function mh(){let[t,e]=Tc(""),{deleteCustomToken:o}=C(),n=C().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=z()(),{mode:l}=go({}),p=rx(),[u,d]=Tc(!1),[f,h]=Tc(),g=i(y=>{let k=y.target.value;e(k)},"handleSearch"),m=l==="dark",S=n.filter(y=>pt(y.symbol,t)||pt(y.address||"",t)||pt(y.name||"",t)),T=i(()=>{if(f){let y=a?Ct(a):null,k=r?Ct(r):null,w=Ct(f);y===w?c({token:null}):k===w&&s({token:null}),o(f)}d(!1)},"handleDeleteCustomToken");return Se.createElement(se,{header:{title:ro.t("Custom Tokens")}},Se.createElement(pe,null,Se.createElement(ix,null,n.length?Se.createElement(Se.Fragment,null,Se.createElement(Wt,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:ro.t("Search Token"),onChange:g}),Se.createElement(Lr,{size:16}),Se.createElement(Pr,{list:S,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:y=>Se.createElement(sx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(y)}},Se.createElement(ex,{size:12,color:"gray"}))})):Se.createElement(ax,null,Se.createElement(nx,{icon:m?Se.createElement(Jb,{size:200}):Se.createElement(Rb,{size:200}),title:ro.t("No custom tokens"),description:ro.t("press the button to add your custom token")})),Se.createElement(Lr,{size:20}),Se.createElement(Sc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p($.addCustomTokens)},ro.t("Add Custom Token"))),Se.createElement(re,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:W()},Se.createElement(ox,{title:ro.t("Delete Custom Token"),type:"error",description:ro.t("Are you sure you want to Delete this Token?")},Se.createElement(Lr,{size:40}),Se.createElement(Lr,{size:10}),Se.createElement(Sc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:T},ro.t("Yes, Delete it")),Se.createElement(Lr,{size:12}),Se.createElement(Sc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},ro.t("No, Continue"))))))}i(mh,"CustomTokensPage");import{i18n as Fe}from"@lingui/core";import{useManager as Ix}from"@rango-dev/queue-manager-react";import{Button as Ic,darkTheme as Ax,Divider as wo,MessageBox as Nx,NotFound as Wx,styled as Ac,Tabs as Px,Typography as wa}from"@rango-dev/ui";import{TransactionStatus as Mr}from"rango-types";import oe,{useMemo as Lh,useState as Dr}from"react";import{useNavigate as Lx}from"react-router-dom";import{FilterIcon as fx,Popover as gx}from"@rango-dev/ui";import Jo from"react";import{css as lx,darkTheme as Ca,IconButton as cx,styled as Br}from"@rango-dev/ui";var kc=Br("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Ca} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),fh=Br(cx,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Ca} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Ca} &`]:{backgroundColor:"$neutral"},[`& ${kc}::before`]:{backgroundColor:"$secondary100",[`.${Ca} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),gh=Br("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),hh=Br("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),yh=lx({display:"flex",justifyContent:"space-between",alignItems:"center"}),Sh=Br("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as Th}from"@lingui/core";import{Button as px,Divider as Ch,ListItemButton as ux,Radio as dx,RadioRoot as mx,Typography as kh}from"@rango-dev/ui";import gt from"react";function wh(t){let{filterBy:e,onClickItem:o}=t;return gt.createElement(hh,null,gt.createElement("div",{className:yh()},gt.createElement(kh,{size:"small",variant:"body"},Th.t("Status")),gt.createElement(px,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},Th.t("Reset"))),gt.createElement(Ch,{size:10}),gt.createElement(mx,{value:e},gt.createElement(Sh,null,t.list.map((n,r)=>gt.createElement(ux,{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:gt.createElement(gt.Fragment,null,gt.createElement(Ch,{direction:"horizontal",size:4}),gt.createElement(kh,{size:"medium",variant:"body"},n.title)),start:gt.createElement(dx,{value:n.id}),onClick:o})))))}i(wh,"FilterSelectorContent");function wc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Jo.createElement("div",null,Jo.createElement(gx,{open:a,align:"end",onOpenChange:o,container:W(),content:Jo.createElement(wh,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Jo.createElement(fh,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Jo.createElement(kc,{isSelect:!!n},Jo.createElement(fx,{size:16,color:"black"}),!!n&&Jo.createElement(gh,null)))))}i(wc,"FilterSelector");import{i18n as Sx}from"@lingui/core";import{getCurrentStep as Tx}from"@rango-dev/queue-manager-rango-preset";import{Divider as Ih,GroupedVirtualizedList as Cx,Skeleton as kx,SwapListItem as Ah,Typography as wx}from"@rango-dev/ui";import et,{useCallback as Nh,useEffect as vx,useRef as Ex,useState as bx}from"react";function vh(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(vh,"calculateGroupsSoFar");import{css as hx,darkTheme as yx,styled as _r}from"@rango-dev/ui";var vc=hx(),Eh=_r("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ec=_r("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${vc}`]:{$$color:"$colors$neutral600",[`.${yx} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),bc=_r("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),bh=_r("div",{gap:"$10",display:"flex",flexDirection:"column"}),xh=_r("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var xx=10;function xc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=bx([]),c=Ex(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=Nh(vh,[]),f=Nh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,xx),s(d(p,c.current)))},[e.length]);if(vx(()=>{r||f()},[r,f]),r){let h=[1,2];return et.createElement(et.Fragment,null,[h,h].map((m,S)=>et.createElement(Ec,{key:S},et.createElement(bc,null,et.createElement(kx,{variant:"text",width:60,size:"small"}),et.createElement(Ih,{size:16})),et.createElement(Ih,{size:4}),et.createElement(bh,null,m.map((y,k)=>et.createElement(Ah,{isLoading:!0,key:k}))))))}return et.createElement(Cx,{style:{flexGrow:1,minHeight:0},endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>et.createElement(Ec,null,et.createElement(bc,null,et.createElement(wx,{variant:"label",size:"medium",className:vc()},u[h]))),itemContent:(h,g)=>{let m=l[h];if(!m)return null;let S=Tx(m),T=m.steps[0],y=m.steps[m.steps.length-1];return!T||!y?null:et.createElement(Eh,{key:m.requestId},et.createElement(Ah,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:S,tooltipContainer:W(),onlyShowTime:u[g]===Sx.t("Today"),swapTokenData:{from:{token:{image:T.fromLogo,displayName:T.fromSymbol},blockchain:{image:T.fromBlockchainLogo||""},amount:M(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:M(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:y.outputAmount||y.expectedOutputAmountHumanReadable||""}}}))}})}i(xc,"HistoryGroupedList");import{i18n as ka}from"@lingui/core";import Wh from"dayjs";var Ph=i(t=>{let e=new Map([["today",{title:ka.t("Today"),swaps:[]}],["week",{title:ka.t("This week"),swaps:[]}],["month",{title:ka.t("This month"),swaps:[]}],["year",{title:ka.t("This year"),swaps:[]}]]);function o(l,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}i(o,"addYearsToOutput");let n=Wh();t.forEach(l=>{let p=Number(l.creationTime),u=Wh(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(l);else{let 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 Bx=Ac("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%",minHeight:0,flexGrow:1}),_x=Ac("div",{display:"flex",justifyContent:"center",alignItems:"center"}),Mx=Ac("div",{"._typography":{color:"$neutral700",[`.${Ax}&`]:{color:"$neutral900"}}}),Dx=i((t,e)=>t?.length?t.filter(o=>_t(o.fromBlockchain,e)||_t(o.toBlockchain,e)||_t(o.toSymbol,e)||_t(o.fromSymbol,e)).length:!1,"isStepContainsText");function Bh(){let t=Lx(),{manager:e,state:o}=Ix(),n=vt(e).map(({swap:E})=>E),[r,a]=Dr(""),[s,c]=Dr(!1),l=!o.loadedFromPersistor,[p,u]=Dr(""),[d,f]=Dr(!1),[h,g]=Dr("all"),m=i(E=>{let I=E.target.value;a(I)},"handleSearch"),{isMultiMode:S}=rt(),T=[{id:Mr.SUCCESS,title:Fe.t("Complete")},{id:Mr.RUNNING,title:Fe.t("Running")},{id:Mr.FAILED,title:Fe.t("Failed")}],y=[{id:"all",title:Fe.t("All")},{id:"swap",title:Fe.t("Swap")},{id:"refuel",title:Fe.t("Refuel")}],k=Lh(()=>!r&&!p&&h==="all"?n:n.filter(E=>{let{inputAmount:I,status:b,steps:L,requestId:N,mode:O}=E;return(!r||_t(I,r)||_t(b,r)||Dx(L,r)||_t(N,r))&&(!p||p===b)&&(h==="all"?!0:h==="swap"?!O||O==="swap":h==="refuel"?O==="refuel":!1)}),[n,r,p,h]),w=!k?.length&&!l,v=i(()=>f(!1),"onCloseModal"),x=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(E){console.log(E)}},"onClear"),A=Lh(()=>!n.some(E=>E.status===Mr.SUCCESS||E.status===Mr.FAILED),[n]);return oe.createElement(se,{header:{title:Fe.t("History"),suffix:oe.createElement(ho,null,oe.createElement(Ic,{id:"widget-history-clear-btn",disabled:A,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},oe.createElement(wa,{size:"medium",variant:"label",color:"error"},Fe.t("Clear"))))}},oe.createElement(pe,null,oe.createElement(_x,null,oe.createElement(Wt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Fe.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:m,style:{height:36},value:r}),oe.createElement(wo,{size:10,direction:"horizontal"}),oe.createElement(wc,{filterBy:p,open:s,onOpenChange:E=>c(E),onClickItem:E=>u(E),list:T})),oe.createElement(wo,{size:"16"}),S&&!l&&oe.createElement(oe.Fragment,null,oe.createElement(Px,{items:y,onChange:E=>g(E.id),value:h,type:"secondary"}),oe.createElement(wo,{size:"12"})),oe.createElement(Bx,null,w&&oe.createElement(xh,null,oe.createElement(wo,{size:32}),oe.createElement(Wx,{title:r?Fe.t("No results found"):Fe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Fe.t("Try using different keywords"):Fe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!w&&oe.createElement(xc,{list:k,onSwapClick:t,groupBy:Ph,isLoading:l}))),oe.createElement(re,{open:d,onClose:v,id:"widget-history-clear-modal",container:W()},oe.createElement(wo,{size:20}),oe.createElement(Nx,{type:"warning",title:Fe.t("Clear Transaction History"),description:oe.createElement(Mx,null,oe.createElement(wa,{variant:"body",size:"medium"},Fe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),oe.createElement(wo,{size:"24"}),oe.createElement(wa,{variant:"body",size:"small"},Fe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),oe.createElement(wo,{size:30}),oe.createElement(Ic,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:x},Fe.t("Yes, Clear the history")),oe.createElement(wo,{size:10}),oe.createElement(Ic,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:v},oe.createElement(wa,{variant:"title",size:"medium",color:"primary"},Fe.t("No, Cancel")))))}i(Bh,"HistoryPage");import{i18n as ly}from"@lingui/core";import{Button as SI,Divider as Hc,styled as TI,WarningIcon as CI}from"@rango-dev/ui";import kI from"bignumber.js";import Ce,{useEffect as cy,useState as py}from"react";import{useNavigate as wI}from"react-router-dom";import{i18n as Mh}from"@lingui/core";import{Alert as Fx,Divider as Nc,NoRouteIcon as Ox,Typography as Ux}from"@rango-dev/ui";import Ro from"react";import{styled as $x}from"@rango-dev/ui";var _h=$x("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Wc(){let{fromToken:t,toToken:e}=z()();return!!t&&!!e&&Vt(t,e)?Ro.createElement(_h,null,Ro.createElement(Nc,{size:10}),Ro.createElement(Ox,{size:24,color:"gray"}),Ro.createElement(Nc,{size:4}),Ro.createElement(Ux,{variant:"title",size:"small"},Mh.t("No Routes Found")),Ro.createElement(Nc,{size:4}),Ro.createElement(Fx,{title:Mh.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Wc,"SameTokensWarning");import{Alert as zx,Button as Hx}from"@rango-dev/ui";import $h from"react";import{i18n as va}from"@lingui/core";function Dh(t){let e=null;return t===fi?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:va.t("Reset"),title:va.t("Slippage cannot be set lower than 0.01%.")},e):t>un?(e={alertType:"warning",action:"change-settings",actionButtonTitle:va.t("Change"),title:va.t("Caution, your slippage is high!")},e):null}i(Dh,"makeAlerts");function Fh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=C(),{onChangeSettings:a}=t,c=Dh(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(mi),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?$h.createElement(zx,{title:c.title,type:c.alertType,variant:"alarm",action:$h.createElement(Hx,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(Fh,"SlippageWarningsAndErrors");import{i18n as Kx}from"@lingui/core";import{IconButton as jx,ReverseIcon as Xx,Skeleton as Yx,Tooltip as Zx,Typography as $r}from"@rango-dev/ui";import ht from"react";import Ea from"bignumber.js";function Uh(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(Uh,"getSlippageColor");function zh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new Ea(e),r=new Ea(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(zh,"getUsdExchangeRate");function Hh(t,e){let o=new Ea(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,Ea.ROUND_DOWN).toFormat(2)}`}i(Hh,"formatTokenValueInUsd");import{darkTheme as Gx,styled as Lc,Typography as Vx}from"@rango-dev/ui";var Qh=Lc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),qh=Lc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${Gx} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Bc=Lc(Vx,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function _c(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=C(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:f}=go({}),h=fn(d),g=f==="dark",m=n==="default",S={quoteError:a,slippageError:h?.type==="error"?h.message:null},T={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},y=p?.swaps[0]?.from||c,k=p?.swaps[p?.swaps.length-1]?.to||l,w=m?y:k,v=m?k:y,x=Number(m?p?.outputAmount:p?.requestAmount),A=Number(m?p?.requestAmount:p?.outputAmount),E=x||w.usdPrice,I=A||v.usdPrice,{rawValue:b,displayValue:L}=zh({toTokenUsdPrice:I,fromTokenUsdPrice:E});return ht.createElement(Qh,null,ht.createElement($r,{variant:S||T?"label":"body",size:S||T?"medium":"small",color:Uh({error:S,warning:T,isDarkTheme:g})},Kx.t("Slippage:")," ",d,"%"),u?ht.createElement(Yx,{height:16,width:104,variant:"rounded"}):E&&I&&ht.createElement(qh,null,ht.createElement($r,{className:"rate-text",variant:"body",size:"small"},"1"),ht.createElement(Bc,{className:"rate-text",variant:"body",size:"small"},v.symbol),ht.createElement(jx,{id:"widget-home-page-change-rate-button",onClick:r},ht.createElement(Xx,{size:14,color:"secondary"})),ht.createElement(Zx,{container:W(),side:"top",sideOffset:4,content:ht.createElement($r,{className:"rate-text",variant:"body",size:"small"},b)},ht.createElement($r,{className:"rate-text",variant:"body",size:"small"},L)),ht.createElement(Bc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&&ht.createElement($r,{color:"neutral600",variant:"body",size:"small"},"~",Hh(Number(b),w.usdPrice))))}i(_c,"SwapMetrics");import{i18n as nI}from"@lingui/core";import{Header as rI}from"@rango-dev/ui";import vo,{useEffect as iI,useState as aI}from"react";import{i18n as Rx}from"@lingui/core";import{Divider as Dc,FullExpandedQuote as eI,Typography as tI}from"@rango-dev/ui";import ve from"react";import{styled as Mc}from"@rango-dev/ui";var Gh=Mc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Vh=Mc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Kh=Mc("div",{width:"146px"});import{i18n as Fr}from"@lingui/core";import{Select as Jx}from"@rango-dev/ui";import jh from"react";function ba(t){let{updateQuotePartialState:e,sortStrategy:o}=z()(),n=[{value:"SMART",label:Fr.t("Smart Routing")},{value:"FEE",label:Fr.t("Lowest Fee")},{value:"SPEED",label:Fr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Fr.t("Maximum Return")},{value:"PRICE",label:Fr.t("Maximum Output")}];return jh.createElement(Kh,null,jh.createElement(Jx,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ba,"SelectStrategy");var Xh=3;function Or(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:d,toToken:f,sortStrategy:h,error:g}=z()(),{slippage:m,customSlippage:S}=C(),{findToken:T}=C(),y=c||W(),k=!!p&&p.results.length,w=S??m,{config:{__UNSTABLE_OR_INTERNAL__:v}}=C(),x=i(I=>{if(!d||!f||!p)return null;let b={requestAmount:p.requestAmount,validationStatus:null,...I};return En({currentQuote:b,userSlippage:w,findToken:T})},"getQuoteWarning"),A=g?.type===0||g?.type===1,E=p?.results?Ni(h,p?.results):[];return ve.createElement(ve.Fragment,null,a&&ve.createElement(ve.Fragment,null,ve.createElement(Vh,null,ve.createElement(tI,{size:"xmedium",variant:"title"},Rx.t("Sort by")),ve.createElement(ba,{container:y})),ve.createElement(Dc,{size:"10"})),e&&Array.from({length:Xh},(I,b)=>ve.createElement(ve.Fragment,{key:b},s?ve.createElement(eI,{campaignTag:v?.campaignTag,loading:!0}):ve.createElement(xr,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Xh-1&&ve.createElement(Dc,{size:16}))),!e&&ve.createElement(ve.Fragment,null,k?E.map((I,b)=>{let L=x(I),N=oc(I.swaps),O=E.length-1===b;return ve.createElement(ve.Fragment,{key:I.requestId},ve.createElement(Yo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:y,selected:l?.requestId===I.requestId,tagHidden:!1,quote:{...I,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:N?.options||null,warning:L,fullExpandedMode:s,onClick:q=>{N||u("warning",L),u("error",N?.options||null),o(q)},type:"list-item"}),!O&&ve.createElement(Dc,{size:16}))}):A&&ve.createElement(Gh,null,ve.createElement(Sr,{size:s?"large":"small",error:g,fetch:n}))))}i(Or,"Quotes");import{darkTheme as oI,styled as Yh}from"@rango-dev/ui";var Zh=Yh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${oI} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Jh=Yh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var sI=100;function $c(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=aI(!1),l=s?"":"is-hidden",{config:p}=C(),u=p?.variant==="full-expanded",d=_o();return iI(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},sI):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),vo.createElement(Zh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Qi()} widget-expanded-quotes-container`,id:kt.EXPANDED_BOX_ID},vo.createElement(rI,{title:nI.t("Routes"),suffix:vo.createElement(vo.Fragment,null,vo.createElement(ba,{container:d}),vo.createElement(Go,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),vo.createElement(Jh,null,vo.createElement(Or,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:_o(),onClickOnQuote:n,fullExpandedMode:u})))}i($c,"ExpandedQuotes");import{i18n as iy}from"@lingui/core";import{SwapInput as ay}from"@rango-dev/ui";import uI from"bignumber.js";import Ur from"react";import{ReverseIcon as pI}from"@rango-dev/ui";import Oc from"react";import{keyframes as lI,styled as Rh}from"@rango-dev/ui";var Fc=450,cI=lI({"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)"}}),ey=Rh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),ty=Rh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${cI} ${Fc}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 Uc(){let t=z().use.switchFromAndTo();return Oc.createElement(ey,null,Oc.createElement(ty,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Fc),t()}},Oc.createElement(pI,{size:12})))}i(Uc,"SwitchFromAndToButton");import{styled as oy}from"@rango-dev/ui";var ny=oy("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),ry=oy("div",{position:"relative"});function zc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:d,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:m}=z()(),{swapMode:S}=rt(),{connectedWallets:T,getBalanceFor:y}=C(),k=a?y(a):null,w=pi(k)?.amount??"0",v=k?new uI(k.amount).shiftedBy(-k.decimals):ue,x=!!s&&Iu(T,s.name),A=!Hs(m,d,f),E=!Hs(m,d,g),I=!f||!g||!g.gt(0)?null:Yt(f.toString(),g.toString());return Ur.createElement(ny,null,Ur.createElement(ry,null,Ur.createElement(ay,{label:iy.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:w,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:A?void 0:M(f,4,4),realUsdValue:A?void 0:f?.toString(),error:A?ie().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:W(),onSelectMaxBalance:()=>{let b=v.isGreaterThan(ue)?v.toFixed():"";p(b)},anyWalletConnected:T.length>0}),S==="swap"&&Ur.createElement(Uc,null)),Ur.createElement(ay,{selectionType:S==="swap"?"token":"chain",sharpBottomStyle:!r&&(!!m||e),label:iy.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:M(Yt(f,g),2,2),warningLevel:Zt(I??0),price:{value:M(h,6,6),usdValue:E?void 0:M(g,4,4),realValue:h?.toString(),realUsdValue:E?void 0:g?.toString(),error:E?ie().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:W()}))}i(zc,"Inputs");import{warn as dI}from"@rango-dev/logging-core";import{useCallback as mI,useEffect as fI,useRef as gI,useState as hI}from"react";function sy(){let{fetch:t,loading:e,cancelFetch:o}=ga({request:async(n,r)=>await dt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(sy,"useFetchAllQuotes");var yI=600;function xa({refetchQuote:t}){let{fetch:e,cancelFetch:o}=sy(),{excludeLiquiditySources:n,routing:r}=C().config,{connectedWallets:a}=C(),c=a.some(be=>be.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:f,sortStrategy:h,resetQuote:g,error:m,warning:S,setSelectedQuote:T,updateQuotePartialState:y}=z()(),{slippage:k,customSlippage:w,affiliatePercent:v,affiliateRef:x,affiliateWallets:A,fetchStatus:E}=C(),I=C().getLiquiditySources(),b=C().getDisabledLiquiditySources(),L=C().excludeLiquiditySources(),{findToken:N}=C(),{swapMode:O}=rt(),[q,j]=hI(!0),ee=gI(u),P=w??k,Y=!l||!p||Vt(l,p)||!Yn(u),ce=i(be=>{j(be)},"resetState"),Ee=i(be=>{let{fromToken:He,toToken:Xe,inputAmount:St,liquiditySources:ct,excludeLiquiditySources:B,disabledLiquiditySources:V,slippage:H,affiliateRef:X,affiliatePercent:G,affiliateWallets:J}=be;if(q||ce(!0),!Y&&He&&Xe){g();let U=Vd({fromToken:He,toToken:Xe,inputAmount:St,liquiditySources:ct,excludeLiquiditySources:B,disabledLiquiditySources:V,wallets:a,slippage:H,affiliateRef:X,affiliatePercent:G,affiliateWallets:J,contractCall:c});mn("experimental",r)&&(U.experimental=!0),mn("avoidNativeFee",r)&&(U.avoidNativeFee=!0),mn("enableCentralizedSwappers",r)&&(U.enableCentralizedSwappers=!0),r?.maxLength&&(U.maxLength=r.maxLength),O==="refuel"&&(U.maxLength=1),e(U).then(de=>{let Qe=Ni(h,de.results),ot=_d(f,Qe,de.requestAmount);j(!1),y("quotes",de),T(ot),de.results?.length&&ot&&hn({type:"routeRequested",payload:{...$n(ot),routeCount:de.results.length}}),ha({diagnosisMessages:de.diagnosisMessages,requestId:ot?.requestId||"",swaps:ot?.swaps});let co=ot&&En({currentQuote:ot,userSlippage:P,findToken:N});y("warning",co)}).catch(de=>{let Qe=ya(de);Qe.type===0?hn({type:"routeNotFound",payload:{sourceChain:He.blockchain,destinationChain:Xe.blockchain,sourceTokenSymbol:He.symbol,sourceTokenAddress:He.address,destinationTokenSymbol:Xe.symbol,destinationTokenAddress:Xe.address,inputAmountUsd:d?d.toNumber():null}}):Qe.type===1&&hn({type:"routeFetchFailed",payload:{sourceChain:He.blockchain,destinationChain:Xe.blockchain,errorCode:String(de?.response?.status??"")}}),(Qe.type===0||Qe.type===1)&&g(),Qe.type!==2&&(y("error",Qe),j(!1),dI(new Error("quote error"),{tags:{...Qe,type:Je[Qe.type],requestBody:U}}))})}},"fetch"),Gt=mI(ri(be=>{Ee(be)},yI),[Y]);return fI(()=>{if(!t){j(!1);return}if(E!=="success")return;if(Y){j(!1),(f||m||S)&&g();return}if(!Yn(u)&&d?.eq(0)){ce(!1),o();return}g(),ce(!0);let be=Ee;return ee.current&&ee.current!=u&&(be=Gt),ee.current=u,be({inputAmount:u,fromToken:l,toToken:p,liquiditySources:I,excludeLiquiditySources:L,disabledLiquiditySources:b,slippage:P,affiliateRef:x,affiliatePercent:v,affiliateWallets:A,contractCall:c}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,Y,I?.length,n,b.length,P,x,v,c,JSON.stringify(A)]),{fetch:()=>Ee({inputAmount:u,fromToken:l,toToken:p,liquiditySources:I,excludeLiquiditySources:L,disabledLiquiditySources:b,slippage:P,affiliateRef:x,affiliatePercent:v,affiliateWallets:A,contractCall:c}),loading:q}}i(xa,"useSwapInput");var vI=TI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),EI=300;function uy(){let t=wI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:f}=z()(),[h,g]=py(!1),{isLargeScreen:m,isExtraLargeScreen:S}=aa(),{fetch:T,loading:y}=xa({refetchQuote:a}),{config:k,fetchStatus:w,connectedWallets:v,customSlippage:x,slippage:A,setSlippage:E,setCustomSlippage:I}=C(),{isActiveTab:b}=ne(),[L,N]=py(!1),O=x!==null?x:A,{swapMode:q}=rt(),j=fn(O),P=Hd({fetchMetaStatus:w,fetchingQuote:y,inputAmount:n,quote:r,anyWalletConnected:v.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),Z=Bu(m,S,k?.variant),Y=!!n&&!!e&&!!o&&new kI(n).gt(0)&&!Rd(e,o),ce=Y&&w==="success"&&y,Ee=j?.quoteValidation||c,He=(!Z||Z&&l?.results.length)&&(Ee||s),Xe=!!e&&!!o,St=Xe&&!!j,ct=(r||s)&&!L?T:void 0,B=i(J=>{Z&&h?(g(!1),setTimeout(()=>{t(J)},EI)):t(J)},"onHandleNavigation"),V=i(J=>{r?.requestId!==J.requestId&&(r&&hn({type:"routeChanged",payload:{sourceChain:J.swaps[0]?.from.blockchain??"",destinationChain:J.swaps[J.swaps.length-1]?.to.blockchain??"",fromRouteId:r.requestId,toRouteId:J.requestId}}),N(!1),p(J))},"onClickOnQuote"),H=i(J=>{if(J){if(di.includes(J)){E(J),I(null);return}I(J)}},"onChangeSlippage"),X=i(J=>{B(J==="from"?$.fromSwap:q==="swap"?$.toSwap:$.toSwap+"/"+$.blockchains)},"handleInputTokenClick");cy(()=>{u(),f("refetchQuote",!0)},[]),cy(()=>{g(Y)},[Y]);let G=i(()=>{P.action==="connect-wallet"?ju({type:"clickConnectWallet"},()=>{B($.wallets)}):P.action==="confirm-warning"?N(!0):r&&(te({type:"swapInitiated",payload:{...$n(r),walletConnected:v.length>0}}),B($.confirmSwap))},"handleSwapButtonClick");return Ce.createElement(vI,null,Ce.createElement(se,{height:"auto",footer:Ce.createElement(SI,{id:`widget-swap-${P.action}-btn`,type:"primary",size:"large",disabled:P.disabled||!b,prefix:P.action==="confirm-warning"&&Ce.createElement(CI,null),fullWidth:!0,onClick:G},P.title),header:{onWallet:()=>{B($.wallets)},hasBackButton:!1,title:k.title||(q==="swap"?ly.t("Swap"):ly.t("Refuel")),suffix:Ce.createElement(Go,{hidden:Z?["refresh"]:void 0,onClickRefresh:ct,onClickHistory:()=>B($.swaps),onClickSettings:()=>{B($.settings)}})}},Ce.createElement(pe,null,Ce.createElement(zc,{fetchingQuote:ce,fetchMetaStatus:w,isExpandable:Z,onClickToken:X}),Ce.createElement(Hc,{size:"2"}),Z?null:Ce.createElement(Yo,{quote:r,loading:ce,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:Ee,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),B($.routes)}:void 0}),Xe&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Hc,{size:8}),Ce.createElement(_c,{quoteError:s,quoteWarning:Ee,fromToken:e,toToken:o,quote:r,loading:ce})),He?Ce.createElement(Ce.Fragment,null,Ce.createElement(Cr,{warning:Ee,error:s,skipAlerts:!!j,couldChangeSettings:!0,refetchQuote:T,showWarningModal:L,confirmationDisabled:!b,onOpenWarningModal:()=>N(!0),onCloseWarningModal:()=>N(!1),onChangeSlippage:H,onConfirmWarningModal:()=>{N(!1),d(!0),B($.confirmSwap)},onChangeSettings:()=>B($.settings)})):null,St&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Hc,{size:"10"}),Ce.createElement(Fh,{onChangeSettings:()=>B($.settings)})),Ce.createElement(Wc,null))),Z?Ce.createElement($c,{loading:ce,onClickOnQuote:V,fetch:T,onClickRefresh:ct,isVisible:h}):null)}i(uy,"Home");import{i18n as dy}from"@lingui/core";import{Alert as bI,Divider as xI,List as II,ListItemButton as AI,Radio as NI,RadioRoot as WI,Typography as PI}from"@rango-dev/ui";import Ut from"react";function Eo(){let{setLanguage:t,language:e,config:o}=C(),n=Ou,r=o?.language||gn;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||gn),resetLanguage:()=>t(null)}}i(Eo,"useLanguage");function my(){let{activeLanguage:t,changeLanguage:e,languages:o}=Eo(),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:Ut.createElement(PI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Ut.createElement(NI,{value:s}),start:Ut.createElement(l,null)}});return Ut.createElement(se,{header:{title:dy.t("Language")}},Ut.createElement(pe,null,Ut.createElement(bI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Ut.createElement(xI,{size:"8"}),Ut.createElement(WI,{value:t},Ut.createElement(II,{type:Ut.createElement(AI,{title:dy.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(my,"LanguagePage");import{i18n as io}from"@lingui/core";import{Button as DI,Checkbox as $I,Image as FI,ListItemButton as OI,NotFound as UI,Typography as zI}from"@rango-dev/ui";import tt,{useState as HI}from"react";import{Checkbox as _I,Skeleton as gy}from"@rango-dev/ui";import Hr from"react";import{styled as Qc}from"@rango-dev/ui";var zr=Qc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),qc=Qc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Gc=Qc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as LI,styled as BI}from"@rango-dev/ui";var fy=BI(LI,{height:61});var MI=30;function Vc(){return Hr.createElement(zr,null,Array.from(Array(MI),(t,e)=>Hr.createElement(fy,{hasDivider:!0,key:e,start:Hr.createElement(gy,{variant:"circular",width:35,height:35}),title:Hr.createElement(gy,{variant:"text",size:"large",width:90}),end:Hr.createElement(_I,{checked:!1})})))}i(Vc,"LoadingLiquiditySourceList");function Kc({sourceType:t}){let e=C().fetchStatus,o=C().swappers(),n=C().getDisabledLiquiditySources(),[r,a]=HI(""),s=C().toggleLiquiditySource,c=C().isInCampaignMode(),l=hi(o,n),p={Exchanges:io.t("Exchanges"),Bridges:io.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(y=>u.includes(y.type)),f=d.length===d.filter(y=>y.selected).length,h=t==="Exchanges"?"exchanges":"bridges",g=i(()=>{let y=!f;te({type:"settingsChanged",payload:{setting:"liquiditySource",sourceType:h,changeType:y?"selectAll":"deselectAll",previousSelectedCount:d.filter(k=>k.selected).length,totalCount:d.length}}),d.forEach(k=>{f?s(k.groupTitle):k.selected||s(k.groupTitle)})},"toggleAllSources"),m=d.map(y=>{let{selected:k,groupTitle:w,logo:v,id:x,...A}=y;return{id:`widget-setting-liquidity-source-${gu(x.toLowerCase())}-item-btn`,start:tt.createElement(FI,{src:v,size:22,type:"circular"}),onClick:()=>{c||(te({type:"settingsChanged",payload:{setting:"liquiditySource",sourceType:h,changeType:"individual",sources:[{id:w,enabled:!k}]}}),s(w))},end:tt.createElement($I,{checked:k,disabled:c}),title:tt.createElement(zI,{variant:"title",size:"xmedium"},io.t(w)),selected:k,groupTitle:w,logo:v,...A}}),S=i(y=>{let k=y.target.value;a(k)},"handleSearch"),T=m;return r&&(T=m.filter(y=>_t(y.groupTitle,r))),tt.createElement(se,{header:{title:io.t(t),suffix:tt.createElement(qc,null,tt.createElement(DI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:g},f?io.t("Deselect all"):io.t("Select all")))}},tt.createElement(pe,{view:!0},tt.createElement(Wt,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:io.t("Search {sourceType}",{sourceType:p[t]}),onChange:S}),e==="loading"&&tt.createElement(Vc,null),!T.length&&r?tt.createElement(Gc,null,tt.createElement(UI,{title:io.t("No results found"),description:io.t("Try using different keywords")})):e==="success"&&tt.createElement(zr,{disabled:c,className:"widget-liquidity-source-list"},T.map(y=>{let{groupTitle:k,...w}=y;return tt.createElement(tt.Fragment,{key:y.id},tt.createElement(OI,{style:{height:"61px"},...w,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Kc,"LiquiditySourcePage");import{i18n as QI}from"@lingui/core";import Ia from"react";import{useNavigate as qI}from"react-router-dom";function hy(){let t=qI(),e=Ve(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=z()(),{fetch:c,loading:l}=xa({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${$.settings}`,d=`../${$.wallets}`;return Ia.createElement(se,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:QI.t("Routes"),suffix:Ia.createElement(Go,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Ia.createElement(pe,null,Ia.createElement(Or,{fetch:c,loading:l,onClickOnQuote:p})))}i(hy,"RoutesPage");import{i18n as vy}from"@lingui/core";import{Divider as Ey,getCategoriesCount as eA,SelectableCategoryList as tA}from"@rango-dev/ui";import ao,{useMemo as oA,useState as by}from"react";import{useNavigate as nA}from"react-router-dom";import{i18n as jc}from"@lingui/core";import{Divider as jI,Image as XI,ListItemButton as YI,NotFound as ZI,Typography as wy}from"@rango-dev/ui";import yt,{useEffect as JI,useState as RI}from"react";var yy=i((t,e,o)=>t.filter(n=>ii(n.type,o)).filter(n=>pt(n.name,e)||pt(n.displayName,e)),"filterBlockchains");import{ImageContainer as GI,styled as Sy}from"@rango-dev/ui";var Ty=Sy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Aa=Sy(vl,{padding:0,margin:0,listStyle:"none",[`& ${GI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as VI,Skeleton as Cy}from"@rango-dev/ui";import Na from"react";var KI=20;function ky(){return Na.createElement(Aa,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(KI),t=>Na.createElement(VI,{key:t,hasDivider:!0,start:Na.createElement(Cy,{variant:"circular",width:35,height:35}),title:Na.createElement(Cy,{variant:"text",size:"large",width:90})})))}i(ky,"LoadingBlockchainList");function Xc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=RI(e),{fetchStatus:l}=C();JI(()=>{c([...yy(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?yt.createElement(ZI,{title:jc.t("No results found"),description:jc.t("Try using different keywords")}):yt.createElement(Aa,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>yt.createElement(YI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:yt.createElement(XI,{src:u.logo,size:30}),title:yt.createElement(wy,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return yt.createElement(yt.Fragment,null,a&&yt.createElement(yt.Fragment,null,yt.createElement(wy,{variant:"label",size:"large"},jc.t("Select Chain")),yt.createElement(jI,{size:4})),yt.createElement(Ty,null,l==="loading"&&yt.createElement(ky,null),l==="success"&&p()))}i(Xc,"BlockchainList");function Wa(t){let{type:e}=t,o=Ve(),[n,r]=by(""),[a,s]=by("ALL"),c=z().use.setToBlockchain(),l=z().use.setFromBlockchain(),p=z().use.setToToken(),{fetchStatus:u,findNativeToken:d}=C(),f=nA(),{swapMode:h}=rt(),g=C().blockchains({type:e}),m=C().tokens(),S=oA(()=>uu(g,m),[g.length,m.length]),T=eA(S),y=!t.hideCategory&&T!==1,k=i(w=>{if(e==="custom-token")f(`..?blockchain=${w.name}`,{replace:!0});else{if(te({type:"chainFilterApplied",payload:{side:e==="source"?"from":"to",chain:w.name,filterSource:"expanded"}}),e==="source")l(w);else if(h==="swap")c(w);else{let v=d(w);v&&p({token:v,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return ao.createElement(se,{header:{title:vy.t("Select Chain")}},ao.createElement(pe,{view:!0},y&&ao.createElement(ao.Fragment,null,ao.createElement(tA,{setCategory:s,category:a,blockchains:S,isLoading:u==="loading"}),ao.createElement(Ey,{size:24})),ao.createElement(Wt,{value:n,autoFocus:!0,placeholder:vy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:w=>r(w.target.value)}),ao.createElement(Ey,{size:16}),ao.createElement(Xc,{list:S,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:k})))}i(Wa,"SelectBlockchainPage");import{i18n as Ba}from"@lingui/core";import{Divider as By,Spinner as SA}from"@rango-dev/ui";import bo,{useEffect as TA,useState as CA}from"react";import{useNavigate as kA}from"react-router-dom";import{i18n as Jc}from"@lingui/core";import{BlockchainsChip as Pa,Divider as Ny,Image as Wy,Skeleton as cA,Tooltip as pA,Typography as Rc}from"@rango-dev/ui";import xe from"react";import{useEffect as aA}from"react";var xy=["ETH"];function Yc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(rA),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(iA(s)),r=n.splice(a)}return{list:n,more:r}}i(Yc,"prepare");function rA(t,e){let o=xy,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(rA,"sortByMostUsedBlockchains");function iA(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(iA,"generateSortByPreferredBlockchainsFor");function Iy(t,e){return!!e.list.find(o=>o.name===t)}i(Iy,"isInVisibleList");function Zc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=C();aA(()=>{if(e?.selected){let a=Yc(t,o,e);Iy(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Yc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Zc,"usePrepareBlockchainList");import{styled as sA}from"@rango-dev/ui";var Ay=sA("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var uA=6,dA=12;function ep(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=ne(),c=Zc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=C(),p=z().use.resetToBlockchain(),u=z().use.resetFromBlockchain(),d=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&d;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(Ny,{size:12}),xe.createElement(Rc,{variant:"label",size:"large"},Jc.t("Select Chain"))),xe.createElement(Ny,{size:12}),xe.createElement(Ay,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?uA:dA),(m,S)=>xe.createElement(cA,{key:S,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(Pa,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(Rc,{variant:"body",size:"xsmall",color:"secondary500"},Jc.t("All"))),c.list.map(m=>xe.createElement(pA,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:W()},xe.createElement(Pa,{className:"widget-blockchains-section-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},xe.createElement(Wy,{src:m.logo,size:30})))),h?xe.createElement(Pa,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(Wy,{src:f.logo,size:30})):null,g?xe.createElement(Pa,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(Rc,{variant:"body",size:"xsmall",color:"secondary500"},Jc._("More +{count}",{count:c.more.length}))):null)))}i(ep,"BlockchainsSection");import{useCallback as fA,useRef as gA,useState as tp}from"react";function op(){let t=C().blockchains(),e=gA(null),{customTokens:o}=C(),[n,r]=tp(!1),[a,s]=tp([]),[c,l]=tp(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await dt().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(y=>jt(y))),S=new Set(t.map(y=>y.name)),T=g.tokens.filter(y=>S.has(y.blockchain)&&!m.has(jt(y)));s(T),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=fA(ri((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(op,"useSearchCustomTokens");function Py(t){return t.trim()?"search":"default "}i(Py,"getTokenSelectionMethod");function La(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(La,"shouldSearchForCustomTokens");function Ly(t,e,o,n,r){let a=[...t];return La(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(Ly,"prepareTokensList");function _a(t){let{type:e}=t,o=kA(),n=Ve(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=z()(),{getBalanceFor:u}=C(),{fetch:d,loading:f,tokens:h,cancel:g}=op(),[m,S]=CA(""),T=e==="source"?r:a,y=T?.name??"",k=C().blockchains({type:e}),w=C().tokens({type:e,blockchain:y,searchFor:m,getBalanceFor:u}),v=Ly(w,h,m,f,T?.name),x=i(N=>{e==="source"?l(N):p(N)},"updateBlockchain"),A=i(N=>{e==="source"?s({token:N,meta:{blockchains:k}}):c({token:N,meta:{blockchains:k}})},"updateToken"),E=e==="source"?"from":"to",I=i(N=>{te({type:"chainFilterApplied",payload:{side:E,chain:N.name,filterSource:"featured"}})},"emitChainFilterApplied"),b=i(N=>{te({type:"tokenSelected",payload:{side:E,tokenName:N.name,tokenSymbol:N.symbol,tokenAddress:N.address,chain:N.blockchain,selectionMethod:Py(m),activeChainFilter:y||"all"}})},"emitTokenSelected"),L={source:Ba.t("Source"),destination:Ba.t("Destination")};return TA(()=>(La(w,m,T?.name)&&d(m,T?.name??void 0),()=>{g()}),[w.length,m,T?.name]),bo.createElement(se,{header:{title:Ba.t("Swap {type}",{type:L[e]})}},bo.createElement(pe,null,bo.createElement(ep,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o($.blockchains),onChange:N=>{I(N),x(N)}}),bo.createElement(By,{size:24}),bo.createElement(Wt,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:Ba.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>S(""),onChange:N=>S(N.target.value),suffix:La(w,m,T?.name)&&f?bo.createElement(SA,{size:12,color:"secondary"}):void 0}),bo.createElement(By,{size:16}),bo.createElement(Pr,{list:v,selectedBlockchain:y,searchedFor:m,type:e,onChange:N=>{b(N),A(N);let O=k.find(q=>N.blockchain===q.name);O&&x(O),n()}})))}i(_a,"SelectSwapItemsPage");import{i18n as ap}from"@lingui/core";import{Alert as jA,Button as XA,styled as YA}from"@rango-dev/ui";import en from"react";import{useInRouterContext as ZA,useSearchParams as JA}from"react-router-dom";import{i18n as Oy}from"@lingui/core";import{Alert as bA,Divider as rp,InfoIcon as xA,SlippageIcon as IA,TextField as AA,Tooltip as NA,Typography as Uy}from"@rango-dev/ui";import Ue from"react";import{Chip as wA,styled as Qr,TextField as vA}from"@rango-dev/ui";var _y=Qr("div",{paddingTop:"$5",padding:"$10 $5"}),My=Qr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${vA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),Dy=Qr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Ma=Qr("div",{maxWidth:"280px",padding:"$10"}),$y=Qr(wA,{width:"61px",flexShrink:0});import{i18n as np}from"@lingui/core";import{Typography as EA}from"@rango-dev/ui";import qr from"react";function Fy(){return qr.createElement(Ma,null,qr.createElement(EA,{variant:"label",size:"medium",color:"neutral700"},np.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),qr.createElement("br",null),qr.createElement("br",null),qr.createElement("b",null,np.t("Warning")),":\xA0",np.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(Fy,"SlippageTooltipContent");function ip(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=C(),r=o!==null?fn(o):null,a=o??t,s=i((u,d)=>{u!==d&&te({type:"settingsChanged",payload:{setting:"slippage",previousValue:u,newValue:d}})},"emitSlippageChanged"),c=i(u=>{let d=u.target.value,f=parseFloat(d);if(isNaN(f))return n(null);let h=f;f>er&&(h=er),s(a,h),n(h)},"onSlippageValueChange"),l=i(u=>{s(a,u),o!==null&&n(null),e(u)},"onClickSlippageChip"),p=i(u=>{let d=u.target,f=d.value;Su(f)||(d.value=f.slice(0,-1))},"onInput");return Ue.createElement(_y,null,Ue.createElement(Dy,null,Ue.createElement(IA,{size:16,color:"gray"}),Ue.createElement(rp,{direction:"horizontal",size:4}),Ue.createElement(Uy,{variant:"title",size:"xmedium"},Oy.t("Slippage tolerance per swap")),Ue.createElement(rp,{direction:"horizontal",size:4}),Ue.createElement(NA,{container:W(),side:"top",sideOffset:4,content:Ue.createElement(Fy,null)},Ue.createElement(xA,{color:"gray"}))),Ue.createElement(My,null,di.map((u,d)=>{let f=`slippage-${d}`;return Ue.createElement($y,{id:`widget-slippage-chip-${u.toString()}%-btn`,key:f,onClick:()=>l(u),selected:o===null&&u===t,label:`${u.toString()}%`})}),Ue.createElement(AA,{type:"number",min:"0.01",max:"30",step:"0.01",status:r?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:p,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:c,suffix:o&&Ue.createElement(Uy,{variant:"body",size:"small"},"%"),placeholder:Oy.t("Custom")})),r&&Ue.createElement(Ue.Fragment,null,Ue.createElement(rp,{size:10}),Ue.createElement(bA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(ip,"Slippage");import{i18n as Et}from"@lingui/core";import{AutoThemeIcon as zy,BridgesIcon as WA,ChevronRightIcon as Da,DarkModeIcon as Hy,Divider as Gr,ExchangeIcon as PA,InfinityIcon as LA,InfoIcon as BA,LanguageIcon as _A,LightModeIcon as Qy,List as MA,ListItem as DA,ListItemButton as $A,Skeleton as FA,styled as OA,Switch as UA,Tabs as zA,TargetIcon as HA,Tooltip as QA,Typography as lt}from"@rango-dev/ui";import D from"react";import{useNavigate as qA}from"react-router-dom";var GA=OA("div",{width:"202px",height:"$40"}),VA=[{id:"light",icon:D.createElement(Qy,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},Et.t("Light"))},{id:"dark",icon:D.createElement(Hy,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},Et.t("Dark"))},{id:"auto",icon:D.createElement(zy,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},Et.t("Auto"))}],KA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(zy,{...e});case"dark":return D.createElement(Hy,{...e});default:return D.createElement(Qy,{...e})}},"getThemeIcon");function qy(){let t=qA(),{theme:e}=C().config,{setTheme:o,theme:n}=C(),{activeLanguage:r,languages:a}=Eo(),s=a.find(P=>P.local===r)?.label,c=C().fetchStatus,l=C().swappers(),p=C().getDisabledLiquiditySources(),{config:{features:u}}=C(),d=C().customTokens(),f=nt("theme",u),h=nt("liquiditySource",u),g=nt("language",u),m=nt("customTokens",u),S=C().infiniteApprove,T=C().toggleInfiniteApprove,y=hi(l,p),k=y.filter(P=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(P.type)),w=k.length,v=k.filter(P=>P.selected).length,x=y.filter(P=>P.type==="DEX"),A=x.length,E=x.filter(P=>P.selected).length,I=i((P,Z)=>{switch(c){case"loading":return D.createElement(FA,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(lt,{variant:"body",size:"medium",color:"$error500"},Et.t("Loading failed"));default:return D.createElement(lt,{variant:"body",size:"medium"},`${P} / ${Z}`)}},"handleSwapperEndItem"),b={id:"widget-setting-bridge-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Bridges")),end:D.createElement(D.Fragment,null,I(v,w),D.createElement(Gr,{direction:"horizontal",size:8}),D.createElement(Da,{color:"black"})),onClick:()=>t($.bridges),start:D.createElement(WA,{color:"gray",size:16})},L={id:"widget-setting-exchange-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Exchanges")),end:D.createElement(D.Fragment,null,I(E,A),D.createElement(Gr,{direction:"horizontal",size:8}),D.createElement(Da,{color:"black"})),start:D.createElement(PA,{color:"gray",size:16}),onClick:()=>t($.exchanges)},N={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"body",size:"medium"},`${d.length}`),D.createElement(Gr,{direction:"horizontal",size:8}),D.createElement(Da,{color:"black"})),start:D.createElement(HA,{color:"gray",size:16}),onClick:()=>t($.customTokens)},O={id:"widget-setting-language-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Language")),start:D.createElement(_A,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"body",size:"medium"},s),D.createElement(Gr,{direction:"horizontal",size:8}),D.createElement(Da,{color:"black"})),onClick:()=>t($.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Infinite approval")),D.createElement(Gr,{direction:"horizontal",size:4}),D.createElement(QA,{side:"top",sideOffset:4,container:W(),content:D.createElement(Ma,null,D.createElement(lt,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,Et.t("Warning")),":\xA0",Et.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(BA,{color:"gray"}))),start:D.createElement(LA,{color:"gray",size:16}),end:D.createElement(UA,{checked:S}),onClick:()=>{te({type:"settingsChanged",payload:{setting:"infiniteApproval",previousValue:S,newValue:!S}}),T()}},j={id:"widget-setting-theme-item-btn",type:D.createElement(DA,null),title:D.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Theme")),end:D.createElement(GA,null,D.createElement(zA,{container:W(),items:VA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:P=>o(P.id),type:"primary",borderRadius:"small"})),start:KA(n)},ee=h?[]:[b,L];return m||ee.push(N),g||ee.push(O),ee.push(q),!e?.singleTheme&&!f&&ee.push(j),D.createElement(MA,{type:D.createElement($A,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:ee})}i(qy,"SettingsLists");var RA=YA("div",{paddingLeft:"$8"});function Gy(){let{isInCampaignMode:t,updateCampaignMode:e}=C(),o=t(),[,n]=JA(),r=ZA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return en.createElement(se,{header:{title:ap.t("Settings")}},en.createElement(pe,null,o&&en.createElement(jA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:ap.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:en.createElement(RA,null,en.createElement(XA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},ap.t("Reset")))}),en.createElement(ip,null),en.createElement(qy,null)))}i(Gy,"SettingsPage");import{i18n as c0}from"@lingui/core";import{cancelSwap as p0}from"@rango-dev/queue-manager-rango-preset";import{useManager as u0}from"@rango-dev/queue-manager-react";import{Alert as d0}from"@rango-dev/ui";import vp from"react";import{useParams as m0}from"react-router-dom";import{i18n as Ht}from"@lingui/core";import{getCurrentNamespaceOfOrNull as XN,getCurrentStep as YN,getRelatedWalletOrNull as ZN}from"@rango-dev/queue-manager-rango-preset";import{Button as OS,Divider as JN,QuoteCost as RN,StepDetails as e0,Typography as yp}from"@rango-dev/ui";import{useWallets as t0}from"@rango-dev/wallets-react";import US from"bignumber.js";import{PendingSwapNetworkStatus as Hn}from"rango-types";import we,{useEffect as Sp,useRef as Tp,useState as Ga}from"react";import{useNavigate as o0}from"react-router-dom";import{i18n as xo}from"@lingui/core";var eN=[xo.t("Sunday"),xo.t("Monday"),xo.t("Tuesday"),xo.t("Wednesday"),xo.t("Thursday"),xo.t("Friday"),xo.t("Saturday")];function Vy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?xo.t("Today"):`${eN[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Vy,"timeSince");function Ky(t){return t.finishTime?Vy(parseInt(t.finishTime)):Vy(parseInt(t.creationTime))}i(Ky,"getSwapDate");import Vr from"react";import{i18n as $a}from"@lingui/core";import{Button as jy,Divider as sp,MessageBox as tN}from"@rango-dev/ui";import Io from"react";var Xy=i(({onCancel:t,onClose:e})=>Io.createElement(Io.Fragment,null,Io.createElement(sp,{size:20}),Io.createElement(tN,{type:"error",title:$a.t("Cancel Swap"),description:$a.t("Are you sure you want to cancel this swap?")}),Io.createElement(sp,{size:32}),Io.createElement(jy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},$a.t("Yes, Cancel it")),Io.createElement(sp,{size:12}),Io.createElement(jy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},$a.t("No, Continue"))),"CancelContent");import{i18n as Fa}from"@lingui/core";import{Button as Yy,Divider as lp,MessageBox as oN,Typography as nN}from"@rango-dev/ui";import so from"react";var Zy=i(({onDelete:t,onClose:e})=>so.createElement(so.Fragment,null,so.createElement(lp,{size:20}),so.createElement(oN,{type:"error",title:Fa.t("Delete Transaction"),description:Fa.t("Are you sure you want to delete this swap?")}),so.createElement(lp,{size:32}),so.createElement(Yy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Fa.t("Yes, Delete it")),so.createElement(lp,{size:12}),so.createElement(Yy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},so.createElement(nN,{variant:"title",size:"medium",color:"primary"},Fa.t("No, Cancel")))),"DeleteContent");import{i18n as rN}from"@lingui/core";import{Button as iN,Divider as aN,MessageBox as sN}from"@rango-dev/ui";import tn from"react";var Jy=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return tn.createElement(tn.Fragment,null,tn.createElement(sN,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&tn.createElement(tn.Fragment,null,tn.createElement(aN,{size:"30"}),tn.createElement(iN,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},rN.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as bN,getCurrentStep as xN,getRelatedWalletOrNull as IN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as AN}from"@rango-dev/ui";import{useWallets as NN}from"@rango-dev/wallets-react";import iS from"react";import{i18n as Un}from"@lingui/core";import{Alert as tS,Button as pN,Checkbox as uN,Divider as za,Image as dN,MessageBox as mN,Spinner as fN,WarningIcon as gN}from"@rango-dev/ui";import{useWallets as hN}from"@rango-dev/wallets-react";import Te,{useState as yN}from"react";import{css as lN,darkTheme as cN,styled as cp}from"@rango-dev/ui";var Ry=lN({wordWrap:"break-word",display:"block"}),eS=cp("img",{width:"100%"}),Oa=cp("div",{position:"relative"}),Ua=cp("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${cN} &`]:{$$color:"$warning600"}});var oS=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=yN(null),{list:s}=bt(),c=ne.use.isActiveTab(),{state:l,connect:p}=hN(),u=s.find(v=>v.type===e.walletType),d=u?.needsNamespace?.data.find(v=>v.value===o?.namespace);if(!u)return null;let f=l(e.walletType),h=u.isHub&&o?.namespace?f.namespaces?.get(o.namespace):null,g=f.connecting||h?.connecting,m=u.isHub?h?.connected:f.connected,S=i(()=>m?Un.t("Done"):r?Un.t("Try again"):Un.t("Connect"),"getButtonTitle"),T=i(()=>g?Te.createElement(fN,{color:"info"}):r||m?null:Te.createElement(uN,{checked:!0,disabled:!0}),"getNamespaceSuffix"),y=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(v){a(v)}},"handleConnect"),k=i(async()=>{if(m){n();return}y()},"handleClickButton"),w=i(()=>{if(!m)return null;let v=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),x=v?.[v?.length-1];return x?po(x):null},"getAddress");return Te.createElement(Te.Fragment,null,Te.createElement(mN,{type:"warning",title:Un.t("Connect {wallet}",{wallet:u.title}),description:Un.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:Te.createElement(Oa,null,Te.createElement(dN,{src:u.image,size:45}),Te.createElement(Ua,null,Te.createElement(gN,{color:"warning",size:10})))}),m&&!d&&Te.createElement(Te.Fragment,null,Te.createElement(za,{size:10}),Te.createElement(tS,{type:"success",variant:"alarm",title:Un.t("Wallet connected successfully.")})),r&&!d&&Te.createElement(Te.Fragment,null,Te.createElement(za,{size:10}),Te.createElement(tS,{type:"error",title:r?.message,variant:"alarm"})),d&&Te.createElement(Te.Fragment,null,Te.createElement(za,{size:30}),Te.createElement(Fo,{namespace:d,suffix:T(),error:r?.message,connected:m,address:w()})),Te.createElement(za,{size:"40"}),Te.createElement(pN,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:k,disabled:!c},S()))},"ConnectWalletContent");import{i18n as nS}from"@lingui/core";import{Button as SN,Divider as TN,Image as CN,MessageBox as kN,WarningIcon as wN}from"@rango-dev/ui";import{useWallets as vN}from"@rango-dev/wallets-react";import{detectInstallLink as EN}from"@rango-dev/wallets-shared";import lo from"react";var rS=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=vN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(EN(n.installLink),"_blank"),"handleButtonClick");return lo.createElement(lo.Fragment,null,lo.createElement(kN,{type:"warning",title:nS.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:lo.createElement(Oa,null,lo.createElement(CN,{src:n.img,size:45}),lo.createElement(Ua,null,lo.createElement(wN,{color:"warning",size:10})))}),lo.createElement(TN,{size:"40"}),lo.createElement(SN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},nS.t("Install")))},"InstallWalletContent");var aS=i(t=>{let{swap:e,onClose:o}=t,{state:n,getWalletInfo:r}=NN(),a=xN(e),s=a?IN(e,a):null,c=s?.walletType,l=c?Zn(r(c),n(c)):null,p=a?bN(e,a):null;return c?l===AN.NOT_INSTALLED?iS.createElement(rS,{walletType:c}):iS.createElement(oS,{wallet:s,namespace:p,onClose:o}):null},"WalletStateContent");function pp(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return Vr.createElement(re,{open:e,onClose:r,container:W()},o==="connectWallet"&&Vr.createElement(aS,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&Vr.createElement(Jy,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&Vr.createElement(Zy,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&Vr.createElement(Xy,{onClose:r,onCancel:()=>{r(),s()}}))}i(pp,"SwapDetailsModal");import{i18n as Kr}from"@lingui/core";import{Button as up,Divider as jr,MessageBox as cS,TokenAmount as WN,Typography as pS}from"@rango-dev/ui";import ke from"react";import{Link as PN,useNavigate as LN}from"react-router-dom";var sS="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",lS="/profile";function dp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:d,diagnosisUrl:f}=t,h=LN(),{showProfileBanner:g}=ne();return ke.createElement(re,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(kt.SWAP_BOX_ID)||document.body},n==="success"?ke.createElement(cS,{type:"success",title:Kr.t("Swap Successful")},ke.createElement(WN,{direction:"vertical",tooltipContainer:W(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),ke.createElement(jr,{size:12}),ke.createElement(pS,{className:Ry(),variant:"body",size:"medium",color:"neutral700",align:"center"},d)):ke.createElement(cS,{type:"error",title:Kr.t("Transaction Failed"),description:d}),ke.createElement(jr,{size:30}),n==="success"&&ke.createElement(ke.Fragment,null,g&&ke.createElement(ke.Fragment,null,ke.createElement(PN,{to:lS},ke.createElement(eS,{src:sS,alt:"Profile Banner"})),ke.createElement(jr,{size:30})),ke.createElement(up,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Kr.t("Done"))),ke.createElement(jr,{size:12}),f&&ke.createElement(ke.Fragment,null,ke.createElement(up,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Kr.t("Diagnosis")),ke.createElement(jr,{size:12})),ke.createElement(up,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},ke.createElement(pS,{variant:"title",size:"medium",color:"primary"},Kr.t("See Details"))))}i(dp,"SwapDetailsCompleteModal");import{i18n as qa}from"@lingui/core";import{CopyIcon as qN,DoneIcon as GN,IconButton as VN,RangoExplorerIcon as KN,Tooltip as BS,Typography as _S,useCopyToClipboard as jN}from"@rango-dev/ui";import Lt from"react";import QN from"react";import{i18n as ON}from"@lingui/core";import{Alert as NS,IconButton as UN,LinkIcon as zN}from"@rango-dev/ui";import Ao,{Fragment as HN}from"react";import{Alert as _N,ChevronDownIcon as MN,IconButton as DN}from"@rango-dev/ui";import zn,{useState as $N}from"react";import{css as Xr,darkTheme as uS,styled as zt,Typography as BN}from"@rango-dev/ui";var dS=zt(pe,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${uS} &`]:{color:"$secondary500"}}}}}),mS=zt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),fS=zt("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),gS=zt("div",{padding:"$0 $20 $20 $20"}),gY=zt("div",{display:"flex",flexDirection:"column",gap:"$10"}),hS=zt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),hY=zt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),on=Xr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${uS} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),yS=Xr({padding:"$5 0"}),Ha=Xr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),SS=Xr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),TS=Xr({width:"100%",padding:"0 $20 $10"}),CS=zt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),kS=zt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Qa=zt(BN,{wordBreak:"break-word"});import{styled as mp}from"@rango-dev/ui";var wS=mp("div",{display:"flex",flexDirection:"column",gap:"$10"}),vS=mp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),ES=mp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function bS(t){let{message:e}=t,[o,n]=$N(!1);return zn.createElement(_N,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&zn.createElement(DN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},zn.createElement(vS,{rotated:o},zn.createElement(MN,{size:12,color:"gray"}))),footer:zn.createElement(ES,{open:o},zn.createElement(Qa,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(bS,"FailedAlert");import{i18n as xS}from"@lingui/core";import{Alert as fp,Button as IS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as FN}from"rango-types";import Yr from"react";function AS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?Yr.createElement(fp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:Yr.createElement(IS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},xS.t("Change"))}):a===FN.WaitingForConnectingWallet?Yr.createElement(fp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Yr.createElement(IS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},xS.t("Connect"))}):Yr.createElement(fp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(AS,"WarningAlert");function gp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=mr(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,d=u&&!c||p&&!s.explorerUrl?.length;return Ao.createElement(wS,null,s.explorerUrl?.map((f,h,g)=>{let m=h+f.url,S=h===g.length-1,T=(S&&u||p)&&!d,y=S&&s.status==="failed";return Ao.createElement(HN,{key:m},Ao.createElement(NS,{id:"widget-swap-details-tx-alert",type:S&&(T&&"loading"||y&&"error")||"success",title:f.description?`${f.description} Tx`:ON.t("View transaction"),action:f.url&&Ao.createElement(UN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},Ao.createElement(zN,{size:12}))}))}),d&&Ao.createElement(NS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&Ao.createElement(AS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&Ao.createElement(bS,{message:a}))}i(gp,"SwapDetailsAlerts");var WS=2e3;var PS=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:Tt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Tt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Kn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:Tt(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:Tt(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Kn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:QN.createElement(gp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function LS(t){if(mr(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(LS,"getStepState");function MS(t){let{requestId:e}=t,[o,n]=jN(WS);return Lt.createElement(fS,{className:on()},Lt.createElement(_S,{variant:"label",size:"large",color:"neutral700"},qa.t("Request ID")),Lt.createElement("div",{className:Ha()},Lt.createElement(_S,{variant:"label",size:"small",color:"neutral700"},e),Lt.createElement(BS,{container:W(),content:o?qa.t("Copied To Clipboard"):qa.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Lt.createElement(VN,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Lt.createElement(GN,{size:16,color:"secondary"}):Lt.createElement(qN,{size:16,color:"gray"}))),Lt.createElement(CS,{target:"_blank",href:`${eu}/swap/${e}`},Lt.createElement(BS,{container:W(),content:qa.t("View on Rango Explorer"),side:"bottom"},Lt.createElement(KN,{size:20})))))}i(MS,"RequestIdRow");import{i18n as DS}from"@lingui/core";import{Typography as $S}from"@rango-dev/ui";import hp from"react";function FS(t){let{date:e,isFinished:o}=t;return hp.createElement("div",{className:on()},hp.createElement($S,{variant:"label",size:"large",color:"neutral700"},o?DS.t("Finished at"):DS.t("Created at")),hp.createElement($S,{variant:"label",size:"small",color:"neutral700"},e))}i(FS,"SwapDateRow");var n0=3e3;function Cp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=t0(),l=C().blockchains(),p=C().swappers(),{findToken:u}=C(),d=z().use.retry(),f=o0(),h=Tp(null),[g,m]=Ga(!1),[S,T]=Ga(null),[y,k]=Ga(null),[w,v]=Ga(null),x=Tp(S),A=Tp(y),E=We.use.getNotifications(),I=We.use.removeNotification(),b=E(),L=YN(e),N=L?.networkStatus,O=i(Be=>{m(!0),T(Be)},"handleChangeModalState"),q=i(()=>{m(!1)},"handleCloseModal"),j=i(()=>{k({type:"loading",title:Ht.t("Change Network"),description:`We\u2019re switching the connected network to ${Y?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),ee=i(()=>{k({type:"success",title:Ht.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),P=i(Be=>{k({type:"error",title:Ht.t("Network Switch Failed"),description:Be?.message||H.detailedMessage.content})},"handleShowSwitchNetworkFailed"),Z=Yd(e),Y=L?XN(e,L):null,ce=L?ZN(e,L):null,Ee=Ky(e),Gt=Zd(e),be=i(Be=>!!c(Be)?.mobileWallet,"checkIsMobileWallet"),He=!!N&&[Hn.WaitingForNetworkChange,Hn.NetworkChangeFailed].includes(N),Xe=!!ce?.walletType&&be(ce.walletType),St=!!ce&&!!Y&&a(ce.walletType,Y.network,Y),ct=!!Y&&He&&(Xe||St),B=i(()=>{ct&&(j(),s(ce.walletType,[{namespace:Y.namespace,network:Y.network}]).then(()=>{ee()}).catch(Be=>{P(Be)}))},"handleSwitchNetwork"),V=i(()=>{O("switchNetwork"),B()},"handleSwitchNetworkClick"),H=Xd(e,L,c),X=PS({swap:e,switchNetworkIsAvailable:ct,handleSwitchNetworkClick:V,showNetworkModal:N,setNetworkModal:O,message:H,blockchains:l,swappers:p}),G=X.length,[J,U]=[e.steps[0],e.steps[G-1]],de=U?.outputAmount||U?.expectedOutputAmountHumanReadable,Qe=e.steps.reduce((Be,Bt)=>Be+parseFloat(Bt.feeInUsd||""),0),ot=e.steps.find(Be=>Be.diagnosisUrl)?.diagnosisUrl,co=M(parseFloat(de||"0")*(U?.toUsdPrice||0),4,4),Gn=M(parseFloat(e.inputAmount)*(J?.fromUsdPrice||0),4,4),No=de?new US(de).multipliedBy(U.toUsdPrice||0).toString():"",Rr=new US(e.inputAmount).multipliedBy(J?.fromUsdPrice||0).toString(),rn=Yt(Gn,co),os=H.detailedMessage.content||H.shortMessage,kT=e.status==="success"?Ht.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(de,6,6),token:X[G-1]?.to.token.displayName,conciseAddress:po(e.wallets[X[G-1]?.to.chain.displayName||""]?.address||""),chain:X[G-1]?.to.chain.displayName}}):we.createElement(kS,null,we.createElement(yp,{variant:"body",size:"medium",color:"neutral700",align:"center"},os?"":Ht.t("Transaction was not sent."),Z?`${Ht.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:Z.outputAmount,symbol:Z.symbol,blockchain:Z.blockchain}})}`:""),os&&we.createElement(Qa,{align:"center",variant:"body",size:"medium",color:"neutral700"},we.createElement("b",null,"Reason:")," ",os));return Sp(()=>{b.find(Bt=>Bt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),I(e.requestId),q()):w&&v(null))},[e.status,e.requestId]),Sp(()=>{if(ct){if(O("switchNetwork"),N===Hn.WaitingForNetworkChange){j();return}if(N===Hn.NetworkChangeFailed){P();return}return}if(N===Hn.WaitingForConnectingWallet){O("connectWallet");return}if(N===Hn.NetworkChanged){O("switchNetwork"),ee();return}S&&["connectWallet","switchNetwork"].includes(S)&&q()},[N]),Sp(()=>{if(x.current=S,A.current=y,S==="switchNetwork"&&y?.type==="success"){let Be=setTimeout(()=>{x.current==="switchNetwork"&&A.current?.type==="success"&&q()},n0);return()=>clearTimeout(Be)}},[S,y]),we.createElement(se,{header:{title:Ht.t("Swap Details"),onCancel:e.status==="running"?()=>O("cancel"):void 0,suffix:e.status!=="running"&&we.createElement(ho,null,we.createElement(OS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>O("delete")},we.createElement(yp,{size:"medium",variant:"label",color:"error"},Ht.t("Delete"))))},footer:Gt&&!w&&we.createElement(OS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{te({type:"swapRetried",payload:{routeId:e.requestId}});let Be=Ai(e,l,u);d(Be),setTimeout(()=>{f("../../")},0)}},Ht.t("Try again"))},we.createElement(dS,{compact:!0,ref:h},we.createElement(MS,{requestId:o}),we.createElement(FS,{date:Ee,isFinished:!!e.finishTime}),we.createElement("div",{className:SS()},we.createElement(RN,{fee:M(String(Qe),2,2),time:Xn(si(e.steps)),steps:G}),we.createElement(kr,{from:{price:{value:M(e.inputAmount,6,6),usdValue:Gn,realUsdValue:Rr,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:M(de,6,6),usdValue:co,realUsdValue:No,realValue:de||""},token:{displayName:X[G-1]?.to.token.displayName||"",image:X[G-1]?.to.token.image},chain:{image:X[G-1]?.to.chain.image,displayName:X[G-1]?.to.chain.displayName||""}},percentageChange:M(rn,2,2),warningLevel:Zt(rn??0)})),we.createElement("div",{className:TS()},we.createElement(yp,{variant:"title",size:"small"},Ht.t("Swaps steps"))),we.createElement(JN,{size:8}),we.createElement(gS,null,X.map((Be,Bt)=>{let Bp=Bt,Vn=e.steps[Bt]&&LS(e.steps[Bt]),wT=Vn==="error"||Vn==="in-progress"||Vn==="warning"||Vn==="completed"&&Bt===X.length-1;return we.createElement(e0,{className:"widget-swap-details-step-item-container",key:Bp,step:Be,type:"swap-progress",ref:h,state:Vn,hasSeparator:Bt!==0,tabIndex:Bp,isFocused:wT,tooltipContainer:W()})}))),we.createElement(pp,{isOpen:g,state:S,switchNetworkModalState:y,onClose:q,onCancel:r,onDelete:n,message:H.detailedMessage.content,swap:e,handleSwitchNetwork:V}),we.createElement(dp,{open:!!w,diagnosisUrl:ot,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:M(de,6,6),usdValue:co,realUsdValue:No,realValue:de||"",percentageChange:M(rn,2,2),token:{displayName:X[G-1]?.to.token.displayName||"",image:X[G-1]?.to.token.image},chain:{image:X[G-1]?.to.chain.image},description:kT}))}i(Cp,"SwapDetails");import{i18n as Ka}from"@lingui/core";import{Divider as QS,NotFound as l0,Skeleton as Jr,Typography as ja}from"@rango-dev/ui";import Ae from"react";import{i18n as r0}from"@lingui/core";import{Divider as i0,Skeleton as a0,Typography as s0}from"@rango-dev/ui";import Ie from"react";import{css as Qt,styled as kp}from"@rango-dev/ui";var zS=kp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Zr=kp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Va=kp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),G7=Qt({display:"flex",justifyContent:"space-between",alignItems:"center"}),V7=Qt({paddingTop:"$15",display:"flex"}),K7=Qt({padding:"$15 $0"}),j7=Qt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),X7=Qt({paddingBottom:"$10"}),Y7=Qt({display:"flex",justifyContent:"start",alignItems:"center"}),Z7=Qt({paddingTop:"$5",display:"flex",alignItems:"center"}),J7=Qt({display:"flex",alignItems:"center"}),R7=Qt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),HS=Qt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function wp(){return Ie.createElement(zS,null,Ie.createElement(Er,{type:"swap-preview"}),Ie.createElement("div",{className:"swaps-steps"},Ie.createElement(s0,{variant:"title",size:"small"},r0.t("Swaps steps"))),Ie.createElement(Ie.Fragment,null,Ie.createElement(Zr,null,Ie.createElement(Ot,{separator:!1}),Ie.createElement("div",{className:HS()},Ie.createElement(i0,{direction:"horizontal",size:20}),Ie.createElement(a0,{height:22,variant:"rectangular"}))),Ie.createElement(Va,null),Ie.createElement(Zr,null,Ie.createElement(Ot,{separator:!1})),Ie.createElement(Va,null),Ie.createElement(Zr,null,Ie.createElement(Ot,{separator:!1})),Ie.createElement(Va,null),Ie.createElement(Zr,null,Ie.createElement(Ot,{separator:!1}))))}i(wp,"LoadingSwapDetails");function qS(t){let{requestId:e,showSkeleton:o}=t;return Ae.createElement(se,{header:{title:Ka.t("Swap Details"),suffix:Ae.createElement(ho,null)}},o&&Ae.createElement(mS,null,Ae.createElement("div",{className:on()},Ae.createElement(ja,{variant:"label",size:"large",color:"neutral700"},`${Ka.t("Request ID")}`),Ae.createElement("div",{className:Ha()},Ae.createElement(ja,{variant:"label",size:"small",color:"neutral700"},Ae.createElement(Jr,{width:60,height:10,variant:"rounded"})),Ae.createElement(QS,{direction:"horizontal",size:4}),Ae.createElement(Jr,{width:16,height:16,variant:"rectangular"}),Ae.createElement(QS,{direction:"horizontal",size:4}),Ae.createElement(Jr,{width:16,height:16,variant:"rectangular"}))),Ae.createElement("div",{className:on()},Ae.createElement(ja,{className:yS(),variant:"label",size:"large",color:"neutral700"},Ae.createElement(Jr,{width:60,height:10,variant:"rounded"})),Ae.createElement(ja,{variant:"label",size:"small",color:"neutral700"},Ae.createElement(Jr,{width:60,height:10,variant:"rounded"}))),Ae.createElement(wp,null)),!o&&Ae.createElement(hS,null,Ae.createElement(l0,{title:Ka.t("Not found"),description:Ka.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(qS,"SwapDetailsPlaceholder");function GS(){let{manager:t,state:e}=u0(),o=!e.loadedFromPersistor,n=vt(t),{requestId:r}=m0(),a=Ve(),{fetchStatus:s}=C();if(!r)return vp.createElement(d0,{containerStyles:{margin:"20px"},type:"error",title:c0.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&&(te({type:"swapCancelled",payload:{routeId:r}}),p0(f))}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),d=l?.swap;return!d||c?vp.createElement(qS,{requestId:r,showSkeleton:c}):vp.createElement(Cp,{swap:d,requestId:r,onCancel:p,onDelete:u})}i(GS,"SwapDetailsPage");import{i18n as VS}from"@lingui/core";import{Divider as f0,getCategoriesCount as g0,SelectableCategoryList as h0,styled as jS,Typography as y0,Wallet as S0}from"@rango-dev/ui";import qt,{useState as KS}from"react";var T0=jS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),C0=jS(pe,{textAlign:"center"});function XS(){let{fetchStatus:t}=C(),[e,o]=KS("ALL"),n=C().blockchains(),{config:r}=C(),[a,s]=KS(),c=ne.use.isActiveTab(),{list:l}=bt(),p=Au(l,n),d=g0(p)!==1,f=Nu(l,e),h=i(g=>{cu(l,r.multiWallets)||s(g)},"handleWalletItemClick");return qt.createElement(se,{header:{title:VS.t("Connect Wallets")}},qt.createElement(C0,null,d&&qt.createElement(qt.Fragment,null,qt.createElement(h0,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),qt.createElement(f0,{size:24})),qt.createElement(y0,{variant:"title",size:"xmedium",align:"center"},VS.t("Choose a wallet to connect.")),qt.createElement(T0,null,f.map((g,m)=>{let S=`wallet-${m}-${g.type}`;return qt.createElement(S0,{key:S,...g,state:g.state,container:W(),onClick:()=>h(g),isLoading:t==="loading",disabled:!c})}),qt.createElement(ur,{id:"widget-state-full-connect-modal",wallet:a,onClose:()=>{s(void 0)}}))))}i(XS,"WalletsPage");function YS(){return lm(),Xs(),k0([{path:$.home,element:ze.createElement(uy,null)},{path:$.routes,element:ze.createElement(hy,null)},{path:$.fromSwap,children:[{index:!0,element:ze.createElement(_a,{type:"source"})},{path:$.blockchains,element:ze.createElement(Wa,{type:"source"})}]},{path:$.toSwap,children:[{index:!0,element:ze.createElement(_a,{type:"destination"})},{path:$.blockchains,element:ze.createElement(Wa,{type:"destination"})}]},{path:$.settings,children:[{index:!0,element:ze.createElement(Gy,null)},{path:$.languages,element:ze.createElement(my,null)},{path:$.exchanges,element:ze.createElement(Kc,{sourceType:"Exchanges"})},{path:$.bridges,element:ze.createElement(Kc,{sourceType:"Bridges"})},{path:$.customTokens,children:[{index:!0,element:ze.createElement(mh,null)},{path:$.addCustomTokens,children:[{index:!0,element:ze.createElement(af,null)},{path:$.blockchains,element:ze.createElement(Wa,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:$.swaps,children:[{index:!0,element:ze.createElement(Bh,null)},{path:$.swapDetails,element:ze.createElement(GS,null)}]},{path:$.wallets,element:ze.createElement(XS,null)},{path:$.confirmSwap,element:ze.createElement(Zg,null)}])}i(YS,"AppRoutes");import{useQueueManager as O0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as U0}from"rango-sdk";import{useContext as z0,useEffect as Ip,useState as cT}from"react";import{Provider as I0}from"@rango-dev/wallets-react";import{WalletTypes as tT}from"@rango-dev/wallets-shared";import Xa,{createContext as A0,useEffect as oT,useMemo as N0,useRef as nT}from"react";import{useEffect as v0}from"react";import{Provider as w0}from"@hub3js/core";function ZS(t){return t.map(e=>typeof e=="string"?e:e instanceof w0?e.id:e.config.type).join("-")}i(ZS,"hashProviders");function Ep(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=C(),a=n();return v0(()=>{o(),r()},[ZS(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(Ep,"useWalletProviders");import{legacyFormatAddressWithNetwork as E0,legacyReadAccountAddress as JS}from"@rango-dev/wallets-core/legacy";import{Events as Qn}from"@rango-dev/wallets-react";import{isEvmBlockchain as b0}from"rango-sdk";function RS(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=C(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(b0).map(m=>m.name),u=i((m,S)=>{let[T,,y,k,w]=m,v={walletType:T,network:k.network??void 0,accounts:y};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let x=fs(T,y,p,S.supportedChainNames,w.isContractWallet);x.length&&e(x,w.namespace,k.derivationPath,{walletName:T})},"onAccountsEvent"),d=i((m,S,T,y,k)=>{if(S===Qn.ACCOUNTS){let w=Jn(k.supportedBlockchains);T&&u([m,S,T,y,k],{supportedChainNames:w})}S===Qn.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),S===Qn.NAMESPACE_DISCONNECTED&&n(m,T)},"handleUpdatesForHub"),f=i((m,S,T,y,k)=>{if(S===Qn.ACCOUNTS){let w=Jn(k.supportedBlockchains),v=[],x=[];if(T?.forEach(E=>{let{network:I}=JS(E);p.includes(I)?v.push(E):x.push(E)}),r.filter(E=>E.walletType===m).map(E=>E0(E.address,E.chain)).length>0){if(v.length>0){let E=fs(m,v,p,w,k.isContractWallet);a(m,{chains:E.map(I=>I.chain)})}x.length>0&&a(m,{chains:x.map(E=>{let{network:I}=JS(E);return I})})}T?u([m,S,T,y,k],{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,T,y,k)=>{if(S===Qn.CONNECTED&&T){let w={walletType:m,network:y.network??void 0,accounts:y.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(S===Qn.NETWORK&&T){let w={walletType:m,network:T,accounts:y.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,T,y,k)=>{k.isHub?d(m,S,T,y,k):f(m,S,T,y,k),h(m,S,T,y,k)},"handler")}}i(RS,"useUpdates");import{LegacyEvents as x0}from"@rango-dev/wallets-core/legacy";function eT(t,e){let[o,n,r,a,s]=e;n!==x0.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(eT,"propagateEvents");var Ya=A0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function W0(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=C(),a=C().blockchains(),s=C().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=Ep(s.wallets,c),p=nT(),u=nT(),{handler:d}=RS({onConnectWalletHandler:p,onDisconnectWalletHandler:u});oT(()=>{n().catch(console.log)},[]),oT(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=ne.use.isActiveTab(),h=N0(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Xa.createElement(Ya.Provider,{value:h},Xa.createElement(I0,{allBlockChains:a,providers:l,onUpdateState:(g,m,S,T,y)=>{let k=[g,m,S,T,y];d(...k),t.onUpdateState&&eT(t.onUpdateState,k)},autoConnect:!!f,configs:{wallets:s.wallets,walletOptions:{[tT.TON_CONNECT]:{provider:{manifestUrl:s.tonConnect?.manifestUrl}},[tT.TREZOR]:{provider:{manifest:s.trezorManifest}}}}},t.children))}i(W0,"Main");function Za(t){let{config:e,...o}=t;return Xa.createElement(Ku,{config:e},Xa.createElement(W0,{...o,config:e}))}i(Za,"WidgetWallets");import{globalCss as P0}from"@rango-dev/ui";var rT=i(()=>P0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");import{useWallets as L0}from"@rango-dev/wallets-react";import{useEffect as B0,useRef as _0}from"react";function iT(){let{connect:t,state:e}=L0(),o=_0({}),{fetchStatus:n}=C(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);B0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(iT,"useForceAutoConnect");import{isApprovalTX as M0,RouteEventType as aT,StepEventType as sT,StepExecutionEventStatus as D0,WidgetEvents as Ja}from"@rango-dev/queue-manager-rango-preset";import{useEffect as lT}from"react";function bp(){let t=We.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=C();lT(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===sT.TX_EXECUTION&&s.status===D0.TX_SENT&&!M0(c)||s.type===sT.SUCCEEDED){let u=[],d=l.wallets[c?.fromBlockchain];if(d){let f=e.find(h=>h.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&h.walletType===d.walletType&&h.chain===c?.fromBlockchain);f&&u.push(f)}if(c?.fromBlockchain!==c?.toBlockchain){let f=l.wallets[c?.toBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let f=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(m=>f.some(S=>S.blockchain===m.blockchain&&S.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&S.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return ge.on(Ja.StepEvent,r),()=>ge.off(Ja.StepEvent,r)},[ge,e]),lT(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===aT.FAILED||s.type===aT.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return ge.on(Ja.RouteEvent,r),()=>ge.off(Ja.RouteEvent,r)},[ge])}i(bp,"useSubscribeToWidgetEvents");import{useManager as $0}from"@rango-dev/queue-manager-react";import{useEffect as F0}from"react";function xp(){let{isSynced:t,syncNotifications:e}=We(),{manager:o,state:n}=$0();F0(()=>{if(We.persist.hasHydrated()&&n.loadedFromPersistor&&!t){let a=vt(o);e(a),a.forEach(({swap:s})=>{if(!(s.status==="running"&&s.steps.length>1))return;let l=s.steps.findIndex(p=>p.status!=="success");l!==-1&&te({type:"swapResumed",payload:{routeId:s.requestId,stepCount:s.steps.length,stepNumber:l+1}})})}},[We.persist.hasHydrated(),n.loadedFromPersistor,t])}i(xp,"useSyncNotifications");function Ap(){iT(),rT(),bp(),xp();let t=C().blockchains(),{canSwitchNetworkTo:e}=pT(),[o,n]=cT(null),[r,a]=cT(),s=z0(Ya),c=t.filter(U0);Ip(()=>()=>am(),[]),Ip(()=>()=>sm(),[]),O0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),Ip(()=>($o.init(),We.persist.hasHydrated()||We.persist.rehydrate(),s.onConnectWallet(l=>{n(p=>{if(!p||p.walletType!==l.walletType)return l;let u={...p};return l.network&&(u.network=l.network),l.accounts&&(u.accounts=l.accounts),u})}),s.onDisconnectWallet(l=>{a(l),n(p=>l===p?.walletType?null:p)}),$o.destroy),[])}i(Ap,"useBootstrap");import{styled as H0}from"@rango-dev/ui";var uT=H0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left",height:"100%","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function nn(){Ap();let{config:t}=C(),{activeTheme:e}=go(t?.theme||{}),{activeLanguage:o}=Eo();return Np.createElement(Q0,{language:o},Np.createElement(uT,{id:"swap-container",className:e()},Np.createElement(YS,null)))}i(nn,"Main");import{setSolanaSignerConfig as cW}from"@rango-dev/signer-solana";import Pp,{useEffect as Lp,useMemo as pW}from"react";function dT(){let{setWatermark:t,setShowProfileBanner:e}=ne();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Kt("BASE_URL")}/meta/dapp/config?apiKey=${Kt("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(dT,"useFetchApiConfig");import{useState as q0}from"react";var G0=i(()=>{let[t,e]=q0(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=lu(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),mT=G0;import{checkWaitingForNetworkChange as V0,makeQueueDefinition as K0}from"@rango-dev/queue-manager-rango-preset";import{Provider as j0}from"@rango-dev/queue-manager-react";import{useWallets as X0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Y0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Z0}from"rango-types";import J0,{useMemo as R0}from"react";function eW(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s,hubProvider:c}=X0(),l=R0(()=>K0({API_KEY:t.apiKey||Kt("API_KEY"),BASE_URL:Kt("BASE_URL"),emitter:{emit:ge.emit}}),[t.apiKey]),{blockchains:p,connectedWallets:u}=C(),d=p(),f={blockchains:u.map(v=>({accounts:[v],name:v.chain}))},h=i(async(v,x)=>a(v,x.network,x)?await r(v,[x]):void 0,"switchNetwork"),g=i(v=>!!s(v).mobileWallet,"isMobileWallet"),m=d.filter(v=>v.enabled).reduce((v,x)=>(v[x.name]=x,v),{}),S=d.filter(Z0),T=i(v=>{let{supportedChains:x}=s(v);return Jn(x)},"getSupportedChainNames"),y=e(),k={meta:{blockchains:m,evmBasedChains:S,evmNetworkChainInfo:Y0(S),getSupportedChainNames:T},getSigners:o,wallets:f,providers:y,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:g,hubProvider:c},w=ne.use.isActiveTab();return J0.createElement(j0,{queuesDefs:[l],context:k,onPersistedDataLoaded:v=>{V0(v)},isPaused:!w},t.children)}i(eW,"QueueManager");var fT=eW;import{useManager as iW}from"@rango-dev/queue-manager-react";import aW,{createContext as sW,useContext as lW}from"react";function gT(){let{findToken:t}=C(),e=C().blockchains(),o=C().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=z()();return i(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:f,toToken:h,requestAmount:g}=p,m={blockchains:e,tokens:o};if(u!==void 0){let S=e.find(T=>T.name===u)??null;n(S)}if(d!==void 0){let S=d?t(d)??null:null;r({meta:m,token:S})}if(f!==void 0){let S=e.find(T=>T.name===f)??null;a(S)}if(h!==void 0){let S=h?t(h)??null:null;s({meta:m,token:S})}g!==void 0&&c(g)},"updateQuoteInputs")}i(gT,"useUpdateQuoteInputs");import{cancelSwap as tW,getCurrentNamespaceOfOrNull as oW,getCurrentStep as nW,getRelatedWalletOrNull as rW}from"@rango-dev/queue-manager-rango-preset";var Ra=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return vt(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=Ai(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&tW(o)}getCurrentStepInfo(e){let o=nW(e);return{step:o,wallet:o?rW(e,o):null,network:o?oW(e,o)?.network:null}}};var hT=sW(void 0);function Wp(t){let{manager:e}=iW(),o=ne.use.isActiveTab(),n=z().use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=C(),l=new Ra(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=C(),u=vu(a()),d=C().blockchains(),f=C().tokens(),h=C().swappers(),g=C().fetchStatus,m=Eo().resetLanguage,S=We().getNotifications(),T=We().clearNotifications,y=gT(),{fromBlockchain:k,toBlockchain:w,fromToken:v,toToken:x,inputAmount:A}=z()(),E={isActiveTab:o,setCurrentTabAsActive:$o.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async I=>c(I)},meta:{blockchains:d,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:m,notifications:{list:S,clearAll:T},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:v?{symbol:v.symbol,blockchain:v.blockchain,address:v.address}:null,toBlockchain:w?.name??null,toToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,requestAmount:A},updateQuoteInputs:y}};return aW.createElement(hT.Provider,{value:E},t.children)}i(Wp,"WidgetInfo");function yT(){let t=lW(hT);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(yT,"useWidget");function qn(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=dT(),{handleLoadCustomFont:a}=mT();return Lp(()=>{r().catch(console.log)},[]),Lp(()=>{n&&a(n)},[n]),pW(()=>{Wu({API_KEY:o?.apiKey||Yp(),BASE_URL:o?.apiUrl||Rp})},[o.apiKey,o.apiUrl]),Lp(()=>{t.config?.signers?.customSolanaRPC&&cW("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Pp.createElement(Za,{config:o,onUpdateState:e},Pp.createElement(fT,{apiKey:o.apiKey},Pp.createElement(Wp,null,t.children)))}i(qn,"WidgetProvider");function ST(t){let e=t.config?.externalWallets;return es.createElement(xi,null,e?es.createElement(nn,null):es.createElement(qn,{config:t.config??ln},es.createElement(nn,null)))}i(ST,"Refuel");import ts from"react";function TT(t){let e=t.config?.externalWallets;return ts.createElement(xi,null,e?ts.createElement(nn,null):ts.createElement(qn,{config:t.config??ln},ts.createElement(nn,null)))}i(TT,"Widget");function CT(){let{on:t,off:e}=ge;return{on:t,off:e}}i(CT,"useWidgetEvents");var ete={DerivationPath:lr,Namespaces:ir,Detached:sr,isOnDerivationPath:pr,isOnNamespace:cr,isOnDetached:Wo};export{vee as EventSeverity,dn as MainEvents,Bee as Networks,Dee as PendingSwapNetworkStatus,tr as QuoteEventTypes,ST as Refuel,Eee as RouteEventType,ss as SUPPORTED_FONTS,ete as StatefulConnect,bee as StepEventType,xee as StepExecutionBlockedEventStatus,Iee as StepExecutionEventStatus,wd as SwapModeContext,kt as UI_ID,Re as UiEventTypes,gi as WalletEventTypes,Pee as WalletEvents,_ee as WalletTypes,TT as Widget,dn as WidgetEvents,qn as WidgetProvider,Za as WidgetWallets,cl as customizedThemeTokens,is as pickProviderVersionWithFallbackToLegacy,Nee as readAccountAddress,an as useStatefulConnect,bt as useWalletList,pT as useWallets,yT as useWidget,CT as useWidgetEvents,xC as widgetEventEmitter};
|
|
1
|
+
var ET=Object.defineProperty;var r=(t,e)=>ET(t,"name",{value:e,configurable:!0});import{Networks as ute,readAccountAddress as dte}from"@rango-dev/internal-blockchains";import{EventSeverity as fte,RouteEventType as gte,StepEventType as hte,StepExecutionBlockedEventStatus as yte,StepExecutionEventStatus as Ste}from"@rango-dev/queue-manager-rango-preset";import{useWallets as pT,Events as Cte}from"@rango-dev/wallets-react";import{PendingSwapNetworkStatus as wte}from"rango-types";import{Divider as aw}from"@rango-dev/ui";import go,{useEffect as sw,useRef as lw,useState as bd}from"react";import{WalletState as PT}from"@rango-dev/ui";import{useWallets as LT}from"@rango-dev/wallets-react";import{useReducer as BT}from"react";import{getRangoError as bT,WalletConnectionError as xT}from"@hub3js/std/utils";import{error as IT}from"@rango-dev/logging-core";var AT=18e4,NT=["rejected","locked"];function Dp(t,e){try{let{trigger:o,source:n,walletType:i}=e,a=bT(t,{trigger:o,source:n,walletType:i});if(NT.includes(a.type))return;IT(a,{tags:a.getErrorTags(),context:a.getErrorContext()})}catch{}}r(Dp,"logConnectionError");function WT(t,e){throw Dp(t,e),t}r(WT,"reportConnectionError");async function Mt(t,e){let{namespaces:o=[],...n}=e,i=n.source==="user"?setTimeout(()=>{Dp(new xT({walletType:n.walletType,namespace:[...new Set(o)].sort().join(","),type:"timeout"}),n)},AT):void 0;try{return await t}catch(a){return WT(a,n)}finally{clearTimeout(i)}}r(Mt,"trackConnection");function $p(t){return!!t.derivationPath}r($p,"isStateOnDerivationPathStep");function Fp(t){return!!t.namespace}r(Fp,"isStateOnNamespace");var oi={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Op(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 oi;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:oi;default:throw new Error("Action hasn't been defined.")}}r(Op,"reducer");function ln(){let{state:t,disconnect:e,connect:o}=LT(),[n,i]=BT(Op,oi),a=r(async(d,m,h)=>{i({type:"reset"});try{let g=m?.map(f=>({...f,network:void 0}));return await Mt(o(d.type,g),{trigger:"wallet-modal",source:"user",walletType:d.type,namespaces:m?.map(({namespace:f})=>f)}),{status:"connected"}}catch(g){if(h?.disconnectOnError)try{await u(d)}catch{console.warn("An error happened during disconnecting wallet after error on connecting.")}throw g}},"runConnect"),s=r(async(d,m)=>{let h=d.state===PT.DISCONNECTED,g=m?.forceConnectToNamespaces;if(h){let f=d.properties?.find(C=>C.name==="namespaces")?.value,T=d.properties?.find(C=>C.name==="derivationPath")?.value;if(g){let C=g.find(y=>!f?.data?.map(k=>k.value).includes(y));if(C)throw new Error(`One of the forced namespaces is not available in the wallet. Forced namespace: ${C}`);if(g.length>1&&T)throw new Error("Derivation path is not supported when multiple namespaces are selected.");return g.length===1&&g[0]&&T?(i({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:g[0]}}),{status:"derivation-path"}):await a(d,g.map(y=>({namespace:y})),{...m,disconnectOnError:!0})}if(!f?.data?.length)return await a(d,void 0,m);if(f?.data.length&&f.data.length>1)return i({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:m?.defaultSelectedChains}}),{status:"namespace"};if(f?.data.length===1&&f.data[0]){if(T){let C=f.data[0];return i({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:C.value}}),{status:"derivation-path"}}return await a(d,f?.data?.map(C=>({namespace:C.value})),m)}}if(!m?.forceConnectToNamespaces){let f=d.properties?.find(T=>T.name==="namespaces")?.value;if(f?.data.length&&f.data.length>1)return i({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return m?.disconnectIfConnected?(await u(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=r(async(d,m)=>{let h=d.properties?.find(y=>y.name==="namespaces")?.value,g=d.properties?.find(y=>y.name==="derivationPath")?.value,f=h?.selection==="single",T=m[0];if(!T)throw new Error("To confirm a namespace, you should select at least one namespace.");if(f&&g)return i({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:T}}),{status:"derivation-path"};if(!Fp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=m.map(y=>({namespace:y}));return i({type:"detached",payload:{targetWallet:d,selectedNamespaces:C??null}}),{status:"Detached"}},"handleNamespace"),l=r(async(d,m,h)=>{if(!m)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!$p(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let f=[{namespace:n.derivationPath.namespace,derivationPath:m}],T=d.properties?.find(k=>k.name==="namespaces")?.value,C=!!T?.data&&T.data.length>1,y=!!h?.forceConnectToNamespaces;return C&&!y?(i({type:"detached",payload:{targetWallet:d,selectedNamespaces:f??null,derivationPath:m}}),{status:"Detached"}):await a(d,f)},"handleDerivationPath"),p=r(()=>n,"getState"),u=r(async d=>{let m=t(d.type);return m.connected||m.connecting?(await e(d.type),Lo(p)?(i({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=>{i(d==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}r(ln,"useStatefulConnect");import{WalletTypes as $t}from"@rango-dev/provider-all";import{WalletState as ki}from"@rango-dev/ui";import{useWallets as XC}from"@rango-dev/wallets-react";import{useCallback as YC,useEffect as Zu}from"react";import qC,{createContext as GC,useContext as VC,useEffect as KC,useRef as jC}from"react";import{create as QC}from"zustand";import{persist as HC}from"zustand/middleware";import{allProviders as $T,WalletTypes as FT}from"@rango-dev/provider-all";var ss=class{static{r(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()}},cn=new ss;import{Provider as _T}from"@hub3js/core";import{defineVersions as MT,pickVersion as DT}from"@hub3js/core/utils";function zp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let i=t.find(a=>ls(a).id===n);i?o.push(i):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else{if(!(n instanceof _T))throw new Error("Legacy providers aren't supported anymore. Pass a hub 'Provider' instance in 'wallets' instead.");o.push(MT().version("1.0.0",n).build())}}),o}return t}r(zp,"matchAndGenerateProviders");function ls(t){return DT(t,"1.0.0")[1]}r(ls,"pickProviderVersion");function ni(t){return t.map(e=>ls(e).id)}r(ni,"configWalletsToWalletName");function Qp(t,e){return e.find(o=>o.name===t)?.displayName}r(Qp,"getBlockchainDisplayNameFor");function Tt(t,e){return e.find(o=>o.name===t)?.shortName}r(Tt,"getBlockchainShortNameFor");function Hp(t,e){return e.find(o=>o.name===t)?.logo}r(Hp,"getBlockchainImage");function Kn(t,e){return e.find(o=>o.id===t)?.title}r(Kn,"getSwapperDisplayName");function Bo(t,e){return e.find(o=>o.name===t)??null}r(Bo,"findBlockchain");function cs(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}r(cs,"isTokenNative");function Ct(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}r(Ct,"createTokenHash");function _o(t,e){return t.addressPatterns.filter(i=>new RegExp(i).test(e)).length>0}r(_o,"isValidTokenAddress");function ri(t){let{contractAddress:e,blockchainMeta:o}=t;return o.info?.tokenUrl?o.info.tokenUrl.replace("{address}",e):o.info?.addressUrl.replace("{wallet}",e)}r(ri,"createTokenExplorerUrl");function jn(t){let{config:e,meta:o}=t,n={},i=e.tokens,a=r(c=>{c.forEach(l=>{typeof l!="string"&&(l=Ct(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(i))return i.length>0?(a(i),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!i)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(i);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=i[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=Ct(p);delete n[u]})):a(l.tokens))}),Object.values(n)}r(jn,"matchTokensFromConfigWithMeta");function ii(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let i=[...o,...n],a=new Set(i);return Array.from(a)}r(ii,"getSupportedBlockchainsFromConfig");function OT(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}r(OT,"makeProvidersOptionsFromConfig");var Xn={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/manifests/tonconnect/manifest.json"}},UT={clientUrl:void 0},zT={liquiditySources:void 0};function qp(t){let o=$T().map(a=>a()),n=ni(o);return o.filter((a,s)=>!(n[s]===FT.LEDGER_WALLET&&(!t.ledgerWallet?.apiKey||!t.ledgerWallet?.dAppIdentifier)))}r(qp,"generateProviders");var Gp=r((t,e,o)=>{let n={...Xn,...t},i=qp(n);return{config:n,iframe:UT,campaignMode:zT,allProviders:i,getLiquiditySources:()=>{let{config:a,campaignMode:s}=o();return s.liquiditySources?.length?s.liquiditySources:a.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:a,campaignMode:s}=o();return s.liquiditySources?.length?[]:a},excludeLiquiditySources:()=>{let{config:a,campaignMode:s}=o();return s.liquiditySources?.length?!1:!!a.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:a}=o();return!!a.liquiditySources?.length},updateConfig:a=>{let s=o().config,{_tokensMapByTokenHash:c,_tokensMapByBlockchainName:l}=o(),p=jn({type:"source",config:{blockchains:a.from?.blockchains,tokens:a.from?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:c}}),u=jn({type:"destination",config:{blockchains:a.to?.blockchains,tokens:a.to?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:c}});cn.set("supportedSourceTokens",p),cn.set("supportedDestinationTokens",u),e({config:{...s,...a}})},updateCampaignMode:(a,s)=>{let c=o().campaignMode;e({campaignMode:{...c,[a]:s}})},updateIframe:(a,s)=>{let c=o().iframe;e({iframe:{...c,[a]:s}})},buildAndSetProviders:()=>{let{config:a}=o(),s=qp(a);e({allProviders:s})},getAvailableProviders:()=>{let{allProviders:a,config:s}=o(),c=OT(s);return zp({allProviders:a,configWallets:s.wallets,options:c})}}},"createConfigSlice");import{TransactionType as Vp}from"rango-types";var Kp=[Vp.EVM,Vp.SOLANA],ai="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as nC}from"rango-sdk";function jp(){return process.env.REACT_APP_RANGO_API_KEY}r(jp,"getApiKeyFromEnv");function Xp(){let t=jp();if(t)return t;throw new Error("Ensure you have set REACT_APP_RANGO_API_KEY in your env variables.")}r(Xp,"getApiKeyFromEnvOrThrow");function Yp(){return jp()||"NOT_SET"}r(Yp,"getApiKeyFromEnvOrNotSet");import{getBlockChainNameFromId as jT,HYPERLIQUID_SIGN_NETWORK as XT,Networks as gs,readAccountAddress as YT}from"@rango-dev/internal-blockchains";import{BlockchainCategories as ZT,detectInstallLink as JT,WalletState as ut}from"@rango-dev/ui";import un from"bignumber.js";import{isAddress as RT}from"ethers";import QT from"bignumber.js";var ue=new QT(0);var Mo="~",Zp=[];import{BlockchainCategories as us,WalletState as KT}from"@rango-dev/ui";import{TransactionType as ds}from"rango-sdk";import{UI_ID as HT}from"@rango-dev/ui";var Jp="https://api.rango.exchange",Rp="https://explorer.rango.exchange",kt={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...HT};var eu="Roboto",ps=[{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 pn(t){return Array.from(new Set(t))}r(pn,"removeDuplicateFrom");function si(t,e){let o;return n;function n(...i){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...i)},e)}}r(si,"debounce");function pt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}r(pt,"containsText");function nu(t,e){return t.toLowerCase()===e.toLowerCase()}r(nu,"exactText");function ru(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}r(ru,"startWithText");var W=r(()=>document.getElementById(kt.SWAP_BOX_ID),"getContainer"),Do=r(()=>document.getElementById(kt.EXPANDED_BOX_ID),"getExpanded");function iu(t,e,o){let n=!!e&&nu(e,t),i=!!o&&nu(o,t);return n!==i?n?-1:1:0}r(iu,"compareExactMatchText");function ms(t,e,o){let n=!!e&&pt(e,t),i=!!o&&pt(o,t);return n!==i?n?-1:1:n&&i&&e?.length!==o?.length?e?.length-o?.length:0}r(ms,"compareContainsText");function fs(t,e,o){let n=!!e&&ru(e,t),i=!!o&&ru(o,t);return n!==i?n?-1:1:n&&i&&e?.length!==o?.length?e?.length-o?.length:0}r(fs,"compareStartWithText");function au(t,e,o){if(!o)return 0;let n=iu(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let i=iu(o,t.name,e.name);if(i)return i}if(o.length>=2){let i=fs(o,t.symbol,e.symbol);if(i)return i}if(o.length>=3){let i=ms(o,t.symbol,e.symbol);if(i)return i}if(o.length>=3){let i=fs(o,t.name,e.name);if(i)return i}if(o.length>=3){let i=ms(o,t.name,e.name);if(i!==0)return i}if(o.length>=4){let i=fs(o,t.address,e.address);if(i)return i}if(o.length>=4){let i=ms(o,t.address,e.address);if(i!==0)return i}return 0}r(au,"compareWithSearchFor");var li=r((t,e)=>{switch(e){case us.ALL:return!0;case us.UTXO:return t===ds.TRANSFER;case us.OTHER:return t!==ds.TRANSFER&&t!==ds.EVM;default:return t===e}},"isBlockchainTypeInCategory"),su=r(t=>ps.find(o=>o.value===t)?.url,"getFontUrlByName");function lu(t,e){let o=!!t.find(n=>n.state===KT.CONNECTED);return e===!1&&o}r(lu,"isSingleWalletActive");function cu(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}r(cu,"memoizedResult");function pu(t,e){let o=new Set;return e.forEach(n=>{o.add(n.blockchain)}),t.filter(n=>o.has(n.name))}r(pu,"filterBlockchainsWithAtLeastOneToken");function uu(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}r(uu,"detectMobileScreens");import{BigNumber as Cu}from"bignumber.js";function du(t){return t.replace(/^0+(?=\d)/g,"")}r(du,"removeLeadingZeros");function mu(t){return t.replace(/^\.(\d+)/,"0.$1")}r(mu,"ensureLeadingZeroForDecimal");function fu(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}r(fu,"formatThousandsWithCommas");function gu(t){return t.replace(/\s+/g,"-")}r(gu,"replaceSpacesWithDash");function hu(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}r(hu,"stripTrailingZeros");function yu(t){return t=t.replace(/[^\d.]/g,"").replace(/\./g,(e,o,n)=>n.indexOf(".")===o?".":""),t}r(yu,"parseNumericValue");function ci(t){return/^0+(?:\.0+)?$/.test(t)}r(ci,"isZeroValue");function Su(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}r(Su,"isValidCurrencyFormat");function Tu(t){return/\d+$/.test(t)}r(Tu,"isColorKeyOverridden");var Yn=r(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),M=r((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Cu(t),i=1,a=1e3;for(let s=0;s<60;s++)if(new Cu(n.toFixed(s,i)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,i);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),i);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),i);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),i);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))),i);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),i)},"numberToString");var pi=r(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Dt=r((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Zn=r(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ku(t){return ci(t)?"0":t.endsWith(".")?t.slice(0,-1):hu(t)}r(ku,"sanitizeInputAmount");function eC(t,e){let o=t?.get("EVM");return o?.network?jT(o.network,e)??o.network:null}r(eC,"getConnectedEvmChainName");function Jn(t,e){return oC(t,e)?ut.PARTIALLY_CONNECTED:e.connected?ut.CONNECTED:e.connecting?ut.CONNECTING:e.installed?ut.DISCONNECTED:ut.NOT_INSTALLED}r(Jn,"getWalletConnectionStatus");function wu(t,e,o,n){return o.filter(i=>!Zp.includes(i)).filter(i=>{let{supportedChains:a,isContractWallet:s}=e(i),{installed:c,namespaces:l}=t(i);return s&&(!c||!!n&&eC(l,a)!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(i=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:d,properties:m,isHub:h}=e(i),g=pn(u.map(T=>T.type)),f=Jn(e(i),t(i));return{title:a,image:s,link:JT(c),state:f,type:i,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:d,properties:m,isHub:h}})}r(wu,"mapWalletTypesToWalletInfo");function mi(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}r(mi,"walletAndSupportedChainsNames");function vu(t,e,o,n,i){let a=[];function s(l,p,u){if(!!!a.find(m=>m.chain===l)){let m={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(m)}}r(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=YT(l),d=c.length>0,m=c.includes(u),h=u===gs.Unknown;if(d&&!m&&!h)return;let f=u===gs.Unknown&&RT(p);if(h&&!f)return;if(o.includes(u)||f)if(i)s(u,p.toLowerCase(),i);else{let C=c.filter(k=>o.includes(k));C.forEach(k=>{s(k,p.toLowerCase())}),C.includes(XT)&&s(gs.HYPERLIQUID,p.toLowerCase())}else s(u,p)}),a}r(vu,"prepareAccountsForWalletStore");function $o(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((i,a)=>{let s=i.from.blockchain,c=i.to.blockchain;if(n.add(s),i.internalSwaps){let{internalSwaps:l}=i;l.forEach((p,u)=>{let d=p.from.blockchain,m=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(m)})}e==="all"&&n.add(c)}),Array.from(n)}r($o,"getQuoteChains");function Rn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}r(Rn,"isAccountAndWalletMatched");var Eu=r(t=>{let e=Object.values(t).reduce((o,n)=>{let i=n.usdValue?hs(n.usdValue,n.decimals):ue.toFixed();return o.plus(i)},new un(ue));return tC(e.toString())},"calculateWalletUsdValue");function tC(t){let e=t.toString().split(".");return e[0]&&(e[0]=fu(e[0])),e.join(".")}r(tC,"numberWithThousandSeparator");function hs(t,e){return new un(t).shiftedBy(-e).toFixed()}r(hs,"representAmountInNumber");function fi(t){if(!t)return null;let e=hs(t.amount,t.decimals),o=t.usdValue?hs(t.usdValue,t.decimals):null,n=M(e,8,8),i=o?M(o,4,4):null;return t?{...t,amount:n,usdValue:i}:null}r(fi,"formatBalance");function bu(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new un(t.usdValue).shiftedBy(-t.decimals):ue,n=e&&e.usdValue?new un(e.usdValue).shiftedBy(-e.decimals):ue;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new un(t.amount).shiftedBy(-t.decimals):ue,n=e&&e.amount?new un(e.amount).shiftedBy(-e.decimals):ue;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}r(bu,"compareTokenBalance");function jt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}r(jt,"areTokensEqual");function xu(t){return t.sort((e,o)=>+(o.state===ut.CONNECTED)-+(e.state===ut.CONNECTED)||+(o.state===ut.PARTIALLY_CONNECTED)-+(e.state===ut.PARTIALLY_CONNECTED)||+(o.state===ut.DISCONNECTED||o.state===ut.CONNECTING)-+(e.state===ut.DISCONNECTED||e.state===ut.CONNECTING))}r(xu,"sortWalletsBasedOnConnectionState");function mo(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),i=t.slice(-e);return`${n}${".".repeat(o)}${i}`}r(mo,"getConciseAddress");function Iu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}r(Iu,"getAddress");var Au=r((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function ys(t){return t.map(e=>e.state).join("-")}r(ys,"hashWalletsState");function Nu(t,e){let o=new Set;return t.forEach(i=>{i.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(i=>o.has(i.type))}r(Nu,"filterBlockchainsByWalletTypes");function Wu(t,e){return e===ZT.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(li(n,e))return!0;return!1})}r(Wu,"filterWalletsByCategory");function oC(t,e){if(!t.needsNamespace||!e.connected)return!1;let n=t.needsNamespace.data.filter(i=>!i.unsupported);return t.needsNamespace.selection==="multiple"&&n.some(i=>!e.namespaces?.get(i.value)?.connected)}r(oC,"checkIsWalletPartiallyConnected");var Ss={API_KEY:Yp()};function Xt(t){return Ss[t]||""}r(Xt,"getConfig");function Pu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ss=e,Ss}r(Pu,"initConfig");var Lu=20,Bu=25,Ts="theme-widget",Cs=r((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>jt(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>jt(a,t));let i=n.isExcluded;return!i&&!o||i&&o}}}return o},"isTokenExcludedInConfig"),ks=r((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),_u=r((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var gi,dt=r(()=>gi||(gi=new nC(Xt("API_KEY"),Xt("BASE_URL")),gi),"httpService");import{i18n as Mu}from"@lingui/core";var hi=[.5,1,3],yi=1,dn=5,er=30,Si=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||{});var tr=(s=>(s.QUOTE_INPUT_UPDATE="quoteInputUpdate",s.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",s.ROUTE_REQUESTED="routeRequested",s.ROUTE_NOT_FOUND="routeNotFound",s.ROUTE_FETCH_FAILED="routeFetchFailed",s.ROUTE_CHANGED="routeChanged",s))(tr||{}),Ti=(n=>(n.CONNECT="connect",n.DISCONNECT="disconnect",n.DETECTED="detected",n))(Ti||{}),Re=(f=>(f.CLICK_CONNECT_WALLET="clickConnectWallet",f.TOKEN_SELECTED="tokenSelected",f.CHAIN_FILTER_APPLIED="chainFilterApplied",f.SETTINGS_CHANGED="settingsChanged",f.ROUTE_FEE_VIEWED="routeFeeViewed",f.DESTINATION_ADDRESS_SET="destinationAddressSet",f.GAS_WARNING_SHOWN="gasWarningShown",f.GAS_WARNING_BYPASSED="gasWarningBypassed",f.SWAP_INITIATED="swapInitiated",f.SWAP_WALLETS_MODAL_SHOWN="swapWalletsModalShown",f.SWAP_WALLETS_CONFIRMED="swapWalletsConfirmed",f.SWAP_STARTED="swapStarted",f.SWAP_RESUMED="swapResumed",f.SWAP_RETRIED="swapRetried",f.SWAP_CANCELLED="swapCancelled",f))(Re||{}),mn=(a=>(a.RouteEvent="routeEvent",a.StepEvent="stepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(mn||{});function Ci(t,e){let o=t.map(a=>a.swapperGroup),n=[];return pn(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}r(Ci,"getUniqueSwappersGroups");function Du(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}r(Du,"sortLiquiditySourcesByGroupTitle");function nt(t,e){return e?.[t]==="hidden"}r(nt,"isFeatureHidden");function fn(t,e){return e?.[t]==="enabled"}r(fn,"isRoutingEnabled");var $u=r((t,e,o)=>nt("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function gn(t){return t==Si?{type:"error",message:Mu.t("Slippage must be greater than or equal to 0.01")}:t>dn&&t<=er?{type:"warning",message:Mu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}r(gn,"getSlippageValidation");var Fu=r((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,i=Array.from(n?.values()||[]);if(!o||!o?.type)return i;let a=e().config;if(o.type==="custom-token"){let l=ii({config:a}),p=i;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>Kp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return i.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:i,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=cn.get(u);d?.length||(d=jn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:i}}),cn.set(u,d)),d=$u(d,s,a.features);let m=e().blockchains({type:o.type});return d.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!m.some(f=>f.name===g.blockchain)?!1:o.searchFor?!!(pt(g.symbol,o.searchFor)||pt(g.address||"",o.searchFor)||pt(g.name||"",o.searchFor)):!0).sort((g,f)=>{let T=e().isTokenPinned(g,o.type),C=e().isTokenPinned(f,o.type);if(T!==C)return T?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(g),A=o.getBalanceFor(f),b=bu(I,A);if(b!==0)return b}let y=l.get(g.blockchain),k=l.get(f.blockchain),w=cs(g,y),v=cs(f,k);if(w!==v)return w?-1:1;if(g.isPopular!==f.isPopular)return g.isPopular?-1:1;if(o.searchFor){let I=au(g,f,o.searchFor);if(I)return I}return g.isSecondaryCoin!==f.isSecondaryCoin?g.isSecondaryCoin?1:-1:y&&k?y.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,i=e().customTokens(),a=Ct(o),s=n.get(a);return s||(s=i.find(c=>Ct(c)===a)),s},findNativeToken:o=>{let n=o.feeAssets[0];return e().findToken({blockchain:o.name,address:n.address,symbol:n.symbol})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>jt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),i=n.liquiditySources?.length?n.liquiditySources:null,a=i??o.liquiditySources,s=i?!1:o.excludeLiquiditySources;return e()._swappers.filter(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(Du)},fetch:async()=>{try{let{routing:o}=e().config,n=fn("enableCentralizedSwappers",o),i=await dt().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=i.popularTokens,p=i.swappers.filter(d=>d.enabled);i.blockchains.sort((d,m)=>d.sort-m.sort).forEach(d=>{d.enabled&&a.set(d.name,d)}),i.tokens.forEach(d=>{let m=Ct(d);c[d.blockchain]||(c[d.blockchain]=[]),s.set(m,d),c[d.blockchain]?.push(m)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as rC,Catalonia as iC,Chinese as Ou,Denmark as aC,English as sC,Finland as lC,French as cC,German as pC,Greece as uC,Hungary as dC,India as mC,Indonesian as fC,Italian as gC,Japanese as hC,Korea as yC,Lithuania as SC,Malay as TC,Netherlands as CC,Pakistan as kC,Philippines as wC,Poland as vC,Portuguese as EC,Russian as bC,SaudiArabia as xC,Serbia as IC,Slovakia as AC,SouthAfrica as NC,Spanish as WC,Swahili as PC,Swedish as LC,Thai as BC,Turkish as _C,Ukrainian as MC,Vietnamese as DC}from"@rango-dev/ui";var Uu=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:NC},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:xC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:rC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:iC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Ou},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Ou},{title:"Danish",label:"Dansk",local:"da",SVGFlag:aC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:CC},{title:"English",label:"English",local:"en",SVGFlag:sC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:wC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:lC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:cC},{title:"German",label:"Deutsch",local:"de",SVGFlag:pC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:uC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:mC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:dC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:fC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:gC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:hC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:yC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:SC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:TC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:vC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:EC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:bC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:IC},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:AC},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:WC},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:PC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:LC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:BC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:_C},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:MC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:kC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:DC}],hn="en";var zu=r((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:yi,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(i=>{if(n)return{disabledLiquiditySources:[]};let a=pn(o.map(s=>s.swapperGroup));return a.length===i.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(i=>i!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:i}=o,a=nt("theme",n),s=nt("language",n),c=nt("liquiditySource",n),l=i?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||hn},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||hn}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(i=>i.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,i=ii({config:o});return i.length?n.filter(a=>i.includes(a.blockchain)):n}}),"createSettingsSlice");import Is from"bignumber.js";import $C from"mitt";var ge=$C(),FC={on:ge.on,off:ge.off};var Qu=r(t=>(e,o,n)=>t(r((...a)=>{let[s,...c]=a;e(l=>({...typeof s=="function"?s(l):s,lastUpdatedAt:+new Date}),...c)},"modifedSet"),o,n),"keepLastUpdated");import Hu from"bignumber.js";function Yt(t){return`${t.blockchain}${Mo}${t.address}${Mo}${t.symbol}`}r(Yt,"createAssetKey");function qu(t,e){return`${Yt(e)}${Mo}${t}`}r(qu,"createBalanceKey");function or(t){let[e,o,n]=t.split(Mo);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}r(or,"extractAssetFromBalanceKey");function vs(t,e,o){return e.balances?.forEach(n=>{let i=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Yt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:i?new Hu(i??ue).multipliedBy(o[s].amount).toString():""})})}),o}r(vs,"computeNextBalancesWithNewPrices");function Es(t,e){let o={};return t.balances?.forEach(n=>{let i=qu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Hu(c??ue).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[i]=p}),o}r(Es,"createBalanceStateForNewAccount");function bs(t,e){for(let o in e){let n=or(o);if(n){let i=Yt(n);t[i]||(t[i]=[]),t[i].includes(o)||(t[i]=[...t[i],o])}}return t}r(bs,"updateAggregatedBalanceStateForNewAccount");function OC(t,e){let o=or(e);if(!o)return t;let n=Yt(o);return t[n]&&(t[n]=t[n].filter(i=>i!==e)),t}r(OC,"removeBalanceFromAggregatedBalance");function xs(t,e,o){let n=t.connectedWallets.filter(l=>e.includes(l.walletType));t.connectedWallets.forEach(l=>{e.includes(l.walletType)||(n=n.filter(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let i={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=or(l);if(!p)return;!!n.find(d=>qu(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=OC(a,l):s[l]&&(i[l]=s[l])}),{_balances:i,_aggregatedBalances:a}}r(xs,"computeNextStateAfterWalletBalanceRemoval");function UC(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}r(UC,"matchWalletDetailsWithConnectedWallet");var zC=cu(),Gu=Qu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(i=>o.find(a=>Rn(a,i))?{...i,loading:!0,error:!1}:i)}))},setConnectedWalletRetrievedData:(o,n)=>{t(i=>({fetchingWallets:!1,connectedWallets:i.connectedWallets.map(a=>o.find(s=>Rn(s,a))?{...a,loading:!1,error:!1,explorerUrl:UC(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(i=>o.find(a=>Rn(a,i))?{...i,loading:!1,error:!0}:i)}))},addConnectedWallet:(o,n,i)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Rn(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:i,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:i}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=i.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 dt().getMultipleTokenBalance({assets:p.map(({symbol:d,address:m,blockchain:h})=>({symbol:d,address:m,blockchain:h})),walletAddress:l});if(u){let d=e()._balances,m=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},f={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};vs(f,g,d);let T=Es(g,e);m=bs(m,T),d={...d,...T}}),t(h=>({_balances:{...h._balances,...d},_aggregatedBalances:m}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(i=>{let a=!!o.find(c=>c.chain===i.chain&&c.walletType!==i.walletType&&i.selected),s=!!o.find(c=>c.chain===i.chain&&c.walletType===i.walletType&&!i.selected);return a?{...i,selected:!1}:s?{...i,selected:!0}:i});t({connectedWallets:n})},newWalletConnected:async(o,n,i,a)=>{let s=o[0];s&&(ge.emit("walletEvent",{type:"connect",payload:{walletType:s.walletType,accounts:o,chain:s.chain??null,walletName:a?.walletName??s.walletType}}),e().addConnectedWallet(o,n,i),e().fetchBalances(o))},removeBalancesForWallet:(o,n)=>{let i={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=xs(i,[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(i=>i.walletType===o);if(ge.emit("walletEvent",{type:"disconnect",payload:{walletType:o,walletName:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let i=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:i})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let i=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(i=i.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=i.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:i=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),i&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0||!o[0])return;let i=[...new Set(o.map(l=>l.walletType))];e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await dt().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 m={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};vs(m,d,l);let{_balances:h,_aggregatedBalances:g}=xs(m,i,{chains:[d.blockChain]});if(p=g,l=h,!e().connectedWallets.find(T=>i.includes(T.walletType)&&T.address===d.address&&T.chain===d.blockChain))return;let f=Es(d,e);p=bs(p,f),l={...l,...f}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let d=c.filter(m=>m.failed).map(m=>{let h=e().connectedWallets.find(g=>g.chain===m.blockChain&&g.address)?.walletType;return h?{chain:m.blockChain,walletType:h,address:m.address}:null}).filter(m=>!!m);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(),i=Yt(o),a=e()._aggregatedBalances[i]||[];if(a.length===0||!a[0])return null;let s=a[0];if(a.length===1&&n[s])return n[s];let c=n[a[0]];if(!c)return null;let l=c;return a.forEach(p=>{let u=n[p];if(!u)return;let d=new Is(u.amount),m=new Is(l.amount);d.isGreaterThan(m)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(Mo);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>zC(()=>e().connectedWallets.map(n=>{let i=e().getBalancesForWalletAddress(n.address),a=Object.keys(i);return{...n,balances:a.reduce((s,c)=>{let l=i[c],p=or(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),d=l?.amount?new Is(l.amount).shiftedBy(-l.decimals):ue;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 Vu(t){return QC()(HC((...e)=>({...Gu(...e),...Fu(...e),...zu(...e),...Gp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(i=>({...i,warning:!0}))),n}}))}r(Vu,"createAppStore");var Ku=GC(null);function S(){let t=VC(Ku);if(KC(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}r(S,"useAppStore");function ju(t){let e=jC();return e.current||(e.current=Vu(t.config)),qC.createElement(Ku.Provider,{value:e.current},t.children)}r(ju,"AppStoreProvider");function te(t){ge.emit("uiEvent",t)}r(te,"emitUiEvent");function Xu(t,e){let o=!1,n={...t.payload,preventDefault(){o=!0}};te({type:t.type,payload:n}),o||e()}r(Xu,"emitPreventableEvent");function yn(t){ge.emit("quoteEvent",t)}r(yn,"emitQuoteEvent");function Yu(t){ge.emit("walletEvent",{type:"detected",payload:t})}r(Yu,"emitWalletDetected");var Ju=new Set,ZC=new Set([$t.LEDGER,$t.TREZOR,$t.WALLET_CONNECT_2,$t.TON_CONNECT,$t.DEFAULT]),JC=new Set([$t.DEFAULT,$t.WALLET_CONNECT_2,$t.LEDGER]);function xt(t){let{chain:e}=t||{},{getAvailableProviders:o}=S(),{state:n,getWalletInfo:i}=XC(),{handleDisconnect:a}=ln(),s=ni(o()),c=wu(n,i,s,e);c=uu()?c.filter(m=>m.showOnMobile!==!1&&n(m.type).installed):c;let l=xu(c);Zu(()=>{c.forEach(m=>{if(ZC.has(m.type))return;m.state!==ki.NOT_INSTALLED&&!Ju.has(m.type)&&(Ju.add(m.type),Yu({walletName:m.type}))})},[ys(c)]);let p=YC(()=>{let m=c?.filter(h=>h.state===ki.CONNECTING)||[];for(let h of m)a(h)},[ys(c)]);Zu(()=>()=>{p()},[]);let u=r(m=>{let h=m.find(f=>f.type===$t.DEFAULT);return!h||h.state===ki.NOT_INSTALLED?!1:m.filter(f=>f.state!=ki.NOT_INSTALLED&&!JC.has(f.type)&&i(f.type).supportedChains.filter(T=>T.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),d=r(m=>m==$t.DEFAULT&&!u(c),"shouldExcludeWallet");return{list:l.filter(m=>!d(m.type)),terminateConnectingWallets:p}}r(xt,"useWalletList");import{i18n as Oe}from"@lingui/core";var oe=r(()=>({genericServerError:Oe.t("Failed Network, Please retry your swap."),moduleLoadError:Oe.t("A network error occurred while processing your request. Please check your internet connection or refresh the page and try again."),liquiditySourcesError:{title:Oe.t("Please reset your liquidity sources."),description:Oe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Oe.t("No Routes Found."),description:Oe.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:Oe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Oe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Oe.t("High Price Impact"),title:Oe.t("Price impact is too high!"),description:Oe.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Oe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Oe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Oe.t("USD Price Unknown"),title:Oe.t("USD Price Unknown, Cannot calculate Price Impact."),description:Oe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Oe.t("Confirm USD Price Unknown")}}),"errorMessages");function Ru(t){return t.type===0?t.diagnosisMessage??oe().noResultError.title:t.type===1?t.diagnosisMessage??oe().genericServerError:""}r(Ru,"getQuoteErrorMessage");var RC=["failed to fetch dynamically imported module","error loading dynamically imported module","importing a module script failed","failed to load module script","unable to preload css","loading chunk","loading css chunk","chunkloaderror"],ek=5;function tk(t){return typeof t=="string"?t:t instanceof Error?`${t.name} ${t.message}`:""}r(tk,"toMessage");function ok(t){let e=t;for(let o=0;o<ek;o++){let n=tk(e).toLowerCase();if(n&&RC.some(i=>n.includes(i)))return!0;if(!(e instanceof Error))return!1;e=e.cause}return!1}r(ok,"isModuleLoadError");function wt(t){return ok(t)?new Error(oe().moduleLoadError,{cause:t}):null}r(wt,"tryRefineError");function ed(t,e){return wt(t)?.message??e}r(ed,"tryRefineErrorMessage");import{Modal as ak}from"@rango-dev/ui";import sk from"react";import{create as ik}from"zustand";var td="rango-widget";var nr=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(td),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{r(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 rk=r(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),fo=rk;var re=fo(ik()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:i}=e();!i&&n?t({showActivateTabModal:!0}):(i||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),Oo=new nr({onInit:()=>re.setState({tabManagerInitiated:!0}),onClaim:()=>re.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>re.setState({isActiveTab:!1})});function ie(t){let{watermark:e}=re();return sk.createElement(ak,{hasWatermark:e==="FULL",...t},t.children)}r(ie,"WatermarkedModal");import{i18n as Cn}from"@lingui/core";import{getSupportedChainsFromNamespace as wk}from"@rango-dev/internal-blockchains";import{Alert as vk,Button as Ek,Divider as kn,Image as bk,MessageBox as xk,RadioRoot as Ik,WalletImageContainer as Ak}from"@rango-dev/ui";import le,{useEffect as Nk,useMemo as Wk,useState as Pk}from"react";import{i18n as uk}from"@lingui/core";import{Typography as cd}from"@rango-dev/ui";import Sn from"react";function wi(t,e){return t.find(o=>o.name===e)?.logo}r(wi,"getBlockchainLogo");import{darkTheme as lk,Image as ck,styled as Zt,Typography as pk}from"@rango-dev/ui";var vi=Zt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${lk} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),Ei=Zt("div",{display:"flex",gap:"$8",alignItems:"center"}),nd=Zt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),rd=Zt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),id=Zt("div",{display:"flex",gap:"$6",alignItems:"center"}),ad=Zt("div",{paddingLeft:"48px"}),sd=Zt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),ld=Zt(pk,{maxWidth:"100px",whiteSpace:"nowrap"}),bi=Zt(ck,{variants:{disabled:{true:{opacity:"0.5"}}}});function xi(t){let{namespace:e}=t,o=S().blockchains();return Sn.createElement(vi,{unsupported:!0},Sn.createElement(Ei,null,Sn.createElement(bi,{src:wi(o,e.id),size:40,disabled:!0}),Sn.createElement(rd,null,Sn.createElement(cd,{variant:"label",size:"large"},e.label),Sn.createElement(cd,{variant:"body",size:"xsmall"},uk.t("(Currently not supported)")))))}r(xi,"NamespaceUnsupportedItem");import{Checkbox as Tk,Radio as Ck}from"@rango-dev/ui";import Ps from"react";import{i18n as Ws}from"@lingui/core";import{getSupportedChainsFromNamespace as mk}from"@rango-dev/internal-blockchains";import{ChevronDownIcon as fk,ChevronUpIcon as gk,Divider as hk,Typography as rr}from"@rango-dev/ui";import We,{useEffect as yk,useState as Sk}from"react";import{Image as ud,Tooltip as dd,Typography as dk}from"@rango-dev/ui";import Ft from"react";import{styled as pd}from"@rango-dev/ui";var As=pd("div",{display:"flex",alignItems:"center",padding:0,margin:0}),Ii=pd("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 Ns=3;function md(t){let{chains:e}=t;return Ft.createElement(As,{id:"widget-supported-chains-container"},e.slice(0,Ns).map((o,n)=>Ft.createElement(dd,{key:o.name,container:W(),side:"bottom",align:"start",content:o.name,sideOffset:4},Ft.createElement(Ii,{firstItem:n===0},Ft.createElement(ud,{src:o.logo,size:15})))),e.length>Ns&&Ft.createElement(dd,{container:W(),side:"bottom",align:"start",sideOffset:4,content:Ft.createElement(As,null,e.map((o,n)=>Ft.createElement(Ii,{key:o.name,firstItem:n===0},Ft.createElement(ud,{src:o.logo,size:15}))))},Ft.createElement(Ii,null,Ft.createElement(dk,{variant:"body",size:"xsmall"},"+",e.length-Ns))))}r(md,"SupportedChainsList");function Uo(t){let{namespace:e,error:o,suffix:n,connected:i,address:a,onClick:s}=t,[c,l]=Sk(!1),p=S().blockchains();yk(()=>l(!1),[o]);let u=mk(e,p),d=!o&&!i&&u.length>1;return We.createElement(vi,{hasError:!!o,clickable:!!s,onClick:s},We.createElement(Ei,null,We.createElement(bi,{src:wi(p,e.id),size:40}),We.createElement(nd,{showSupportedChains:d||i||!!o},We.createElement(id,null,We.createElement(rr,{variant:"label",size:"large"},e.label),i&&We.createElement(rr,{variant:"body",size:"small",color:"success500"},Ws.t("Connected")),!!o&&We.createElement(rr,{variant:"body",size:"small",color:"error500"},Ws.t("Connection failed"))),d&&We.createElement(md,{chains:u}),i&&We.createElement(ld,{variant:"body",size:"small",color:"neutral700"},a),o&&We.createElement(sd,{onClick:()=>l(m=>!m)},We.createElement(rr,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},Ws.t("See why")),c?We.createElement(gk,{size:12,color:"gray"}):We.createElement(fk,{size:12,color:"gray"}))),n),!!o&&c&&We.createElement(We.Fragment,null,We.createElement(hk,{size:4}),We.createElement(ad,null,We.createElement(rr,{variant:"body",size:"small",color:"neutral700"},o))))}r(Uo,"NamespaceItem");function fd(t){let{onClick:e,type:o,namespace:n}=t;return Ps.createElement(Uo,{namespace:n,onClick:e,suffix:o==="radio"?Ps.createElement(Ck,{value:n.value}):Ps.createElement(Tk,{checked:t.value})})}r(fd,"NamespaceListItem");import{Button as kk,styled as gd}from"@rango-dev/ui";var Ai=gd("ul",{padding:0,paddingBottom:"$20",margin:0}),Tn=gd(kk,{minHeight:"$40"});function ir(t){let{targetWallet:e}=t.value,o=e.properties?.find(g=>g.name==="namespaces"),n=o?.value.selection==="single",i=o?.value,a=e.image,s=S().blockchains(),[c,l]=Pk([]),p=Wk(()=>i?.data.filter(g=>!g.unsupported),[e?.type]),u=r(g=>{l(n?[g]:f=>f.includes(g)?f.filter(T=>T!==g):f.concat(g))},"onSelect"),d=p?.length===c.length,m=r(()=>{if(n)throw new Error("onSelectAll should not be called on single selection mode.");d?l([]):p&&l(p.map(g=>g.value))},"onSelectAll"),h=r(g=>n?le.createElement(Ik,{value:c?.[0]},g):le.createElement(le.Fragment,null,g),"wrapRadioRoot");return Nk(()=>{if(!n&&p)if(t.value.defaultSelectedChains?.length){let g=p.filter(f=>wk(f,s).some(T=>t.value.defaultSelectedChains?.includes(T.name)));l(g.map(f=>f.value))}else l(p.map(g=>g.value))},[]),le.createElement(le.Fragment,null,le.createElement(xk,{type:"info",title:Cn.t("Connect {wallet}",{wallet:e.title}),description:Cn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:le.createElement(Ak,null,le.createElement(bk,{src:a,size:45}))}),n?le.createElement(le.Fragment,null,le.createElement(kn,{size:20,className:"_initial_namespace_list_header_alert_top_divider"}),le.createElement(vk,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:Cn.t("This wallet can only connect to one chain at a time. ")}),le.createElement(kn,{size:30,className:"_initial_namespace_list_header_alert_bottom_divider"})):le.createElement(le.Fragment,null,le.createElement(kn,{size:30,className:"_initial_namespace_list_header_button_top_divider"}),le.createElement(Ek,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:m},d?Cn.t("Deselect all"):Cn.t("Select all")),le.createElement(kn,{size:10,className:"_initial_namespace_list_header_button_bottom_divider"})),le.createElement(Ai,null,h(le.createElement(le.Fragment,null,i?.data.map((g,f,T)=>le.createElement(le.Fragment,{key:g.id},g.unsupported?le.createElement(xi,{namespace:g}):le.createElement(fd,{value:c.includes(g.value),namespace:g,type:n?"radio":"checkbox",onClick:()=>u(g.value)}),f!==T.length-1&&le.createElement(kn,{size:10})))))),le.createElement(kn,{size:20}),le.createElement(Tn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!c.length,onClick:()=>t.onConfirm(c)},Cn.t("Connect")))}r(ir,"Namespaces");import{i18n as ar}from"@lingui/core";import{Alert as Fk,Button as Ok,Divider as wn,Image as Uk,MessageBox as zk,WalletImageContainer as Qk}from"@rango-dev/ui";import{useWallets as Hk}from"@rango-dev/wallets-react";import me from"react";import{styled as Lk}from"@rango-dev/ui";var hd=Lk("div",{display:"flex",justifyContent:"end"});import{i18n as Ls}from"@lingui/core";import{Button as Bk,Spinner as _k}from"@rango-dev/ui";import Bs,{useLayoutEffect as Mk,useRef as Dk,useState as $k}from"react";function yd(t){let{namespace:e,initialConnect:o,disabled:n,state:i,handleConnect:a,handleDisconnect:s}=t,[c,l]=$k(null),p=Dk(!1);Mk(()=>{o&&!p.current&&u()},[]);let u=r(async g=>{try{p.current=!0,await a(g)}catch(f){l(wt(f)??f)}finally{p.current=!1}},"handleConnectNamespace"),d=r(async()=>{l(null),i.connected?await s():u({shouldAskForDerivationPath:!0})},"handleButtonClick"),m=r(()=>{let g=i.accounts?.[0]?.split(":"),f=g?.[g.length-1];return!i.connected||!f?null:mo(f)},"getConnectedAddress"),h=r(()=>i.connected?Ls.t("Disconnect"):c?Ls.t("Try again"):Ls.t("Connect"),"getButtonText");return Bs.createElement(Uo,{namespace:e,connected:i.connected,error:c?.message,address:m(),suffix:i.connecting?Bs.createElement(_k,{color:"info"}):Bs.createElement(Bk,{id:"widget-name-space-connect-btn",variant:"ghost",type:i.connected?"error":"primary",size:"xsmall",onClick:async()=>d(),disabled:n},h())})}r(yd,"NamespaceDetachedItem");function sr(t){let{value:e,selectedNamespaces:o,onConfirm:n,confirmText:i=ar.t("Done"),onDisconnectWallet:a,navigateToDerivationPath:s}=t,{targetWallet:c}=e,{connect:l,disconnect:p,state:u}=Hk(),d=c.type,m=u(d),h=c.properties?.find(w=>w.name==="namespaces"),g=c.properties?.find(w=>w.name==="derivationPath"),f=h?.value.selection==="single",T=r(async(w,v)=>{f&&await p(d),g&&v?.shouldAskForDerivationPath?s(w):await Mt(l(d,[{namespace:w,network:"",derivationPath:v?.derivationPath??void 0}]),{trigger:"wallet-modal-namespace",source:"user",walletType:d,namespaces:[w]})},"handleConnectNamespace"),C=r(async w=>{await p(d,[w])},"handleDisconnectNamespace"),y=r(()=>f?me.createElement(me.Fragment,null,me.createElement(wn,{size:20,className:"_detached_namespace_list_header_alert_top_divider"}),me.createElement(Fk,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:ar.t("This wallet can only connect to one chain at a time.")}),me.createElement(wn,{size:30,className:"_detached_namespace_list_header_alert_bottom_divider"})):me.createElement(me.Fragment,null,me.createElement(wn,{size:30,className:"_detached_namespace_list_header_button_top_divider"}),me.createElement(hd,null,me.createElement(Ok,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:m.connecting||!m.connected,onClick:a},ar.t("Disconnect wallet"))),me.createElement(wn,{size:16,className:"_detached_namespace_list_header_button_bottom_divider"})),"renderNamespaceListHeader"),k=r(w=>{if(w.unsupported)return me.createElement(xi,{namespace:w});let v=o?.find(b=>b.namespace===w.value),I=m.namespaces?.get(w.value);if(!I)throw new Error(`State for ${w.value} was not found!`);let A=f&&m.connecting;return me.createElement(yd,{namespace:w,initialConnect:!!v,disabled:A,state:I,handleConnect:async b=>T(w.value,{derivationPath:v?.derivationPath,shouldAskForDerivationPath:b?.shouldAskForDerivationPath}),handleDisconnect:async()=>C(w.value)})},"renderNamespaceItem");return me.createElement(me.Fragment,null,me.createElement(zk,{type:"info",title:ar.t("Connect {wallet}",{wallet:c.title}),description:ar.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:me.createElement(Qk,null,me.createElement(Uk,{src:c.image,size:45}))}),y(),me.createElement(Ai,{id:"widget-detached-namespace-list"},c.needsNamespace?.data.map((w,v,I)=>me.createElement(me.Fragment,{key:w.id},k(w),v!==I.length-1&&me.createElement(wn,{size:10})))),me.createElement(wn,{size:20}),me.createElement(Tn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:n},i))}r(sr,"Detached");import{i18n as vn}from"@lingui/core";import{Divider as Vk,Image as Kk,MessageBox as jk,Select as Xk,TextField as Yk}from"@rango-dev/ui";import{useWallets as Zk}from"@rango-dev/wallets-react";import It,{useEffect as Jk,useMemo as Rk,useState as Cd}from"react";var Ni={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Sd(t,e){let o=t.filter(n=>n.namespace===e);return o.length?[...o,Ni]:[]}r(Sd,"getDerivationPaths");import{Button as qk,styled as _s,Typography as Gk}from"@rango-dev/ui";var Td=_s("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ms=_s(Gk,{paddingLeft:"$10"}),Ds={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},_M=_s(qk,{minHeight:"$40"});var kd="0";function lr(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:i}=t.value,{getWalletInfo:a}=Zk(),[s,c]=Cd(null),[l,p]=Cd(kd),u=s===Ni.id,d=Rk(()=>Sd(a(i).needsDerivationPath?.data??[],o),[i,o]),m=r(({value:g})=>{let f=d?.find(T=>T.id===g);f&&(s===Ni.id&&Number.isNaN(Number(l))&&p(kd),c(f.id))},"handleDerivationPathItemClick"),h=r(()=>{let g=d.find(f=>f.id===s);if(g)e(g.generateDerivationPath(l));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return Jk(()=>{c(d[0]?.id||null)},[d]),It.createElement(It.Fragment,null,It.createElement(jk,{type:"info",title:vn.t("Select Derivation Path"),description:vn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:i}}),icon:It.createElement(Kk,{src:n,size:45})}),It.createElement(Td,{className:"_derivation_path_inputs_container"},It.createElement(Ms,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},vn.t("Choose Derivation Path Template")),It.createElement(Xk,{id:"widget-derivation-path-template-select",value:s||"",options:d.map(g=>({value:g.id,label:g.label})),variant:"filled",handleItemClick:m,styles:{trigger:Ds}}),It.createElement(Vk,{size:20}),It.createElement(Ms,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},u?vn.t("Enter Path"):vn.t("Enter Index")),It.createElement(Yk,{id:"widget-derivation-path-template-input",type:u?"text":"number",variant:"contained",value:l,onChange:g=>p(g.target.value),style:Ds})),It.createElement(Tn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!d||!s||!l},vn.t("Confirm")))}r(lr,"DerivationPath");import{i18n as En}from"@lingui/core";import{Image as ow,MessageBox as Fs,WalletImageContainer as nw,WalletState as rw}from"@rango-dev/ui";import{useWallets as iw}from"@rango-dev/wallets-react";import zo from"react";import{keyframes as ew,styled as $s}from"@rango-dev/ui";var VM=$s("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),wd=$s("div",{position:"relative"}),tw=ew({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),vd=$s("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${tw} 1s linear infinite`,top:0,bottom:0,right:0,left:0});function Os(t){let{wallet:e,error:o}=t,{type:n,image:i}=e,{state:a,getWalletInfo:s}=iw();return Jn(s(n),a(n))===rw.CONNECTED?zo.createElement(Fs,{type:"success",title:En.t("Wallet Connected"),description:En.t("Your wallet is connected, you can use it to swap.")}):o?zo.createElement(Fs,{type:"error",title:En.t("Failed to Connect"),description:o||En.t("Your wallet is not connected. Please try again.")}):zo.createElement(Fs,{type:"loading",title:En.t("Connecting to your wallet"),description:En.t("Click connect in your wallet popup."),icon:zo.createElement(wd,null,zo.createElement(nw,null,zo.createElement(ow,{src:i,size:45})),zo.createElement(vd,null))})}r(Os,"ConnectStatus");function Ed(t,e){return t().status==="init"&&!!e}r(Ed,"isOnStatus");function cr(t){return t().status==="namespace"}r(cr,"isOnNamespace");function pr(t){return t().status==="derivationPath"}r(pr,"isOnDerivationPath");function Lo(t){return t().status==="detached"}r(Lo,"isOnDetached");var cw=3e3,pw=300;function ur(t){let e=lw(),[o,n]=bd(!1),[i,a]=bd(),s=r(v=>{a(ed(v,v?.message||"An unknown error happened during connecting wallet."))},"catchErrorOnHandle"),{terminateConnectingWallets:c}=xt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:m,handleDisconnect:h}=ln(),g=r(v=>{u(t.wallet,v).then(k).catch(s)},"handleConfirmNamespaces"),f=r(()=>{C()},"handleDetachedConfirm"),T=r(v=>{if(!v)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(t.wallet,v).then(k).catch(s)},"handleDerivationPathConfirm"),C=r(()=>{n(!1)},"handleClosingModal"),y=r(()=>{a(void 0),m(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),k=r((v,I)=>{let A=v.status==="connected",b=["disconnected","disconnected-unhandled"].includes(v.status);A?(t.onConnect?.(),I||(e.current=setTimeout(C,cw))):b&&C()},"afterConnected"),w=r(v=>{t.wallet?.needsDerivationPath&&u(t.wallet,[v])},"handleNavigateToDerivationPath");return sw(()=>{if(t.wallet){y();let v=!1,I=!0;r(()=>{setTimeout(()=>{I=!1,v||n(!0)},pw)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(b=>{["namespace","Detached","derivation-path"].includes(b.status)||(v=!0),k(b,I)}).catch(s)}},[t.wallet]),go.createElement(ie,{id:t.id,open:o,onClose:C,onExit:()=>{y(),c(),t.onClose&&t.onClose()},container:W()},Ed(d,t.wallet)&&go.createElement(go.Fragment,null,go.createElement(Os,{wallet:{type:t.wallet.type,image:t.wallet.image},error:i}),go.createElement(aw,{direction:"vertical",size:32})),cr(d)&&go.createElement(ir,{onConfirm:g,value:d().namespace}),pr(d)&&go.createElement(lr,{onConfirm:T,value:d().derivationPath}),Lo(d)&&go.createElement(sr,{onConfirm:f,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces,navigateToDerivationPath:w}))}r(ur,"StatefulConnectModal");import rs from"react";import uw,{Fragment as dw}from"react";import{MemoryRouter as mw,useInRouterContext as fw}from"react-router";function Wi({children:t}){let o=fw()?dw:mw;return uw.createElement(o,null,t)}r(Wi,"AppRouter");import{I18nManager as sW}from"@rango-dev/ui";import Pp from"react";import Qe from"react";import{useRoutes as z0}from"react-router-dom";var $={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 xn,useRef as $i}from"react";import at from"bignumber.js";import{create as om}from"zustand";import{subscribeWithSelector as nm}from"zustand/middleware";import{createContext as gw,useContext as hw}from"react";var xd=gw({swapMode:"swap",isMultiMode:!1});function rt(){let{swapMode:t,isMultiMode:e}=hw(xd);return{swapMode:t,isMultiMode:e}}r(rt,"useSwapMode");import{i18n as vt}from"@lingui/core";import{getRelatedWalletOrNull as Tw,RouteEventType as e$}from"@rango-dev/queue-manager-rango-preset";import Ge from"bignumber.js";import{PendingSwapNetworkStatus as dr}from"rango-types";import{i18n as Pi}from"@lingui/core";var Qo=r(()=>({connectWallet:Pi.t("Connect Wallet"),swap:Pi.t("Swap"),swapAnyway:Pi.t("Swap anyway"),ethWarning:Pi.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Us(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]}r(Us,"getFeeLabel");var zs=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Id=100,Ad=30,Nd=15,Wd=60;var Pd=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Ld=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as Sw}from"@rango-dev/queue-manager-rango-preset";import UD from"bignumber.js";function _d(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}r(_d,"getRequiredBalanceOfWallet");function Rt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}r(Rt,"getPriceImpactLevel");function Li(t,e,o){let n=t.steps[0],i=t.steps[t.steps.length-1],a=Sw(t.steps);if(!i||!n)return{fromBlockchain:null,fromToken:void 0,toBlockchain:null,toToken:void 0,inputAmount:""};let s={blockchain:i.toBlockchain,symbol:i.toSymbol,address:i.toSymbolAddress},c=Bo(a?a.toBlockchain:n.fromBlockchain,e),l=Bo(i.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}}r(Li,"createRetryQuote");function bn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:i}=t,a=Ho(o),s=it(o);if(o&&a&&s){let p=Jt(a.toString(),s.toString());if(!!p&&Od(a,p)){let d=_i(o?.swaps,n),m=Rt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:m}}}if(e&&Qd(e,o))return{type:4,usdValueChange:M(it(o)?.minus(it(e)??0).toString()??"0",null,2),percentageChange:M(Jt(it(e)??"1",it(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=Mi(o.swaps),l=i>dn;if(zd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<i)return{type:3,slippage:i.toString()}}else return{type:2,recommendedSlippages:Ud(o,i),minRequiredSlippage:c};return null}r(bn,"generateQuoteWarnings");function Md(t){return![4].includes(t.type)}r(Md,"isQuoteWarningConfirmationRequired");function Jt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Qs(t.toString(),e.toString());return n&&n<0?n:null}r(Jt,"getPriceImpact");var Dd=r(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"),Bi=r((t,e)=>e.sort((o,n)=>{let i=r(p=>p.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),a=i(o),s=i(n);if(a!==s)return s-a;let c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),$d=r((t,e,o)=>{let n=e[0];if(!e.length||!n)return null;if(!t)return{requestAmount:o,validationStatus:null,...n};let i=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(i).every(l=>c.has(l))});return{requestAmount:o,validationStatus:null,...a||n}},"getDefaultQuote"),Fd=r(t=>{let e=r((o,n)=>{let i=zs.indexOf(o.value),a=zs.indexOf(n.value);return i!==-1&&a!==-1?i-a:i!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Od(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return Pd.some(({threshold:n,minInput:i})=>o<=n&&t.gte(new Ge(i)))}r(Od,"hasHighValueLoss");function Hd(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}r(Hd,"hasLimitError");function qd(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];if(!e)return{swap:void 0,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(e.fromAmountMaxValue):null,i=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!i&&o&&o.gt(e.fromAmount)?(a=vt.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):i&&o&&o.gte(e.fromAmount)&&(a=vt.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!i&&n&&n.lt(e.fromAmount)?(a=vt.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):i&&n&&n.lte(e.fromAmount)&&(a=vt.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}r(qd,"getLimitErrorMessage");function Gd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:i,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Qo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!i||i==="0"?{title:Qo().swap,action:"confirm-swap",disabled:!0}:s?{title:Qo().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Qo().ethWarning,action:"confirm-warning",disabled:!1}:{title:Qo().swap,action:"confirm-swap",disabled:!1}:{title:Qo().connectWallet,action:"connect-wallet",disabled:!1}}r(Gd,"getSwapButtonState");function Hs(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ue))&&e&&e!=="0"&&n!==0)}r(Hs,"canComputePriceImpact");function qs(t,e){let o=ue;for(let n=0;n<t.fee.length;n++){let i=t.fee[n];if(!i||i.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(i.asset)?.usdPrice||null;o=o.plus(new Ge(i.amount).multipliedBy(a||0))}return o}r(qs,"getUsdFeeOfStep");function _i(t,e){return t.reduce((o,n)=>o.plus(qs(n,e)),ue)}r(_i,"getTotalFeeInUsd");function Gs(t){let e=ue,o=new Ge(t.price||0);return e=e.plus(new Ge(t.amount).multipliedBy(o)),e}r(Gs,"getUsdFee");function Vs(t){return t.reduce((e,o)=>e.plus(Gs(o)),ue)}r(Vs,"getTotalFeesInUsd");function Vd(t){return t.reduce((e,o)=>{for(let n of o.fee){let i=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[i]=[...a[i]||[],n]}return e},{payable:{},nonePayable:{}})}r(Vd,"getFeesGroup");function Kd(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}r(Kd,"checkSlippageErrors");function Ud(t,e){let o=new Map;return t?.swaps.forEach((n,i)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(i,n.recommendedSlippage.slippage)}),o.size>0?Object.fromEntries(o):null}r(Ud,"checkSlippageWarnings");function Mi(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}r(Mi,"getMinRequiredSlippage");function zd(t,e){return e?parseFloat(t)>=parseFloat(e):!0}r(zd,"hasProperSlippage");function jd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:i,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:d,affiliateWallets:m,destination:h,contractCall:g}=t,f=a?.reduce((y,k)=>(y[k.chain]=k.address,y),{}),T=[];return i?.forEach(y=>{T.push({blockchain:y.chain,addresses:[y.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??void 0,affiliateWallets:m??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:T,selectedWallets:f??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(y=>!s.includes(y)),swappersGroupsExclude:!1}}}r(jd,"createQuoteRequestBody");function Xd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}r(Xd,"getWalletsForNewSwap");function Ho(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}r(Ho,"getUsdInputFrom");function it(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}r(it,"getUsdOutputFrom");function Qs(t,e){return new Ge(e).div(new Ge(t)).minus(1).multipliedBy(Id).toNumber()}r(Qs,"getPercentageChange");function Qd(t,e){let o=Ho(t),n=it(t),i=it(e);if(!o||!n||!i)return!1;let a=Qs(n.toString(),i.toString());return Ld.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}r(Qd,"isOutputAmountChangedExcessively");function Yd(t,e,o){let n=t.validationStatus,i=$o({filter:"required",quote:t});return e.sort((s,c)=>i.indexOf(s.chain)-i.indexOf(c.chain)).flatMap(s=>_d(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=M(new Ge(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=M(new Ge(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=vt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=vt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=vt.t(" for input and network fee")),vt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:Tt(s.asset.blockchain,o)}})})}r(Yd,"generateBalanceWarnings");function mr(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==dr.NetworkChanged}r(mr,"isNetworkStatusInWarningState");function Zd(t,e,o){let n="bellow button or",i=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),mr(e)){i=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let u=(e?Tw(t,e):null)?.walletType,d=u?o?.(u)?.name:null;switch(e?.networkStatus){case dr.WaitingForConnectingWallet:i=d?vt.t("Connect {wallet}",{wallet:d}):i;break;case dr.WaitingForQueue:i=i||vt.t("Waiting for other running tasks to be finished");break;case dr.WaitingForNetworkChange:i=i||vt.t("Waiting for changing wallet network");break;case dr.NetworkChangeFailed:i=i||vt.t("The network switch could not be completed. Please try again, or switch the network manually in your wallet.");break;default:i=i||"";break}}a=a||"",i=i||"";let c=wt(i)??wt(a);c&&(a=[i,a].filter(Boolean).join(`
|
|
2
|
+
`),i=c.message);let l=i?.indexOf("code")!==-1&&i?.indexOf("reason")!==-1;return{shortMessage:i,detailedMessage:{content:a,long:l}}}r(Zd,"getSwapMessages");function Jd(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}r(Jd,"getLastConvertedTokenInFailedSwap");function Rd(t){return t.status==="failed"}r(Rd,"shouldRetrySwap");function em(t,e,o,n,i,a){if(!n||t)return!0;let s=$o({filter:"all",quote:n}),c=$o({filter:"required",quote:n}),l=s.every(d=>i.some(m=>m.chain===d)),p=c.every(d=>i.some(m=>m.chain===d)),u=o&&a?_o(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}r(em,"isConfirmSwapDisabled");function tm(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}r(tm,"isTokensIdentical");var Di=r((t,e)=>t?.usdPrice?new at(e||ue).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),rm=r(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new at(0),outputUsdValue:new at(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,i=ue,a=o.inputUsdValue;return Zn(o.inputAmount)?(e&&(n=e?.outputAmount?new at(e?.outputAmount):null,a=Ho(e)??ue,i=it(e)??ue),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:i,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new at(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new at(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new at(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:Di(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 at(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=ku(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=yu(e);ci(e)||(o=du(o),o=mu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new at(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Di(n.fromToken,o)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:i,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:Di(n??null,s),outputUsdValue:new at(0),toBlockchain:i,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?Di(e.toToken,e.outputAmount?.toString()||""):new at(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new at(0),inputUsdValue:new at(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new at(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}),"initializer"),im=om()(nm(rm)),am=om()(nm(rm)),Cw=fo(im),kw=fo(am);function z(){let{swapMode:t}=rt();return fo(t==="refuel"?am:im)}r(z,"useQuoteStore");var sm=r((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ge.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&&ge.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})},"subscribeCallback"),lm=Cw.subscribe(sm),cm=kw.subscribe(sm);function pm(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:i,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=z()(),u=S().config,d=S().fetchStatus,m=S().blockchains(),{findToken:h}=S(),{setAffiliateRef:g,setAffiliatePercent:f,setAffiliateWallets:T}=S(),C=u?.from?.tokens,y=u?.from?.blockchains,k=u?.to?.tokens,w=u?.to?.blockchains,v=$i(void 0),I=$i(void 0),A=$i(void 0),b=$i(void 0);xn(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),xn(()=>{if(d==="success"){i();let x=m.find(N=>N.name===u?.from?.blockchain),E=u?.from?.token,L=E&&h(E);(x||!x&&A.current)&&n(x??null),L?a({token:L,meta:{blockchains:m}}):!L&&v.current&&a({token:null}),A.current=u?.from?.blockchain,v.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),xn(()=>{Cs(s,C)&&a({token:null}),ks(l,y)&&n(null)},[C,y]),xn(()=>{Cs(c,k)&&a({token:null}),ks(p,w)&&o(null)},[k,w]),xn(()=>{if(d==="success"){i();let x=m.find(N=>N.name===u?.to?.blockchain),E=u?.to?.token,L=E&&h(E);(x||!x&&b.current)&&o(x??null),L?e({token:L,meta:{blockchains:m}}):!L&&I.current&&e({token:null}),b.current=u?.to?.blockchain,I.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,d]),xn(()=>{g(u?.affiliate?.ref??null),f(u?.affiliate?.percent??null),T(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}r(pm,"useSyncStoresWithConfig");import{useEffect as Xs,useRef as ww}from"react";import{useInRouterContext as vw,useLocation as Ew,useSearchParams as bw}from"react-router-dom";function Ks(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}r(Ks,"convertTokenSearchParamToAsset");function js(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}r(js,"tokenToSearchParam");function Zs(){let t=Ew(),[e,o]=bw(),{fromBlockchain:n,toBlockchain:i,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:m}=z()(),h=S().fetchStatus,g=S().blockchains(),f=vw(),{updateIframe:T,updateCampaignMode:C}=S(),y=S().isInCampaignMode(),k=ww(),{findToken:w}=S(),v=r(()=>{let A={};for(let[P,Z]of e.entries())(P.startsWith("utm_")||P.startsWith("privy_"))&&(A[P]=Z);let b=e.get("fromAmount"),x=e.get("fromBlockchain"),E=e.get("fromToken"),L=e.get("toBlockchain"),N=e.get("toToken"),O=e.get("autoConnect"),q=e.get("clientUrl"),j=e.get("liquiditySources"),ee=e.get("blockchain");return{fromAmount:b,fromBlockchain:x,fromToken:E,toBlockchain:L,toToken:N,autoConnect:O,clientUrl:q,liquiditySources:j,extraQueryParams:A,blockchain:ee}},"getUrlSearchParams"),I=r(A=>{for(let b in A)A[b]||delete A[b];o(A,{replace:!0})},"updateUrlSearchParams");Xs(()=>{let{autoConnect:A,clientUrl:b,extraQueryParams:x,blockchain:E}=v();f&&h==="success"&&I({fromBlockchain:n?.name,fromToken:js(a),toBlockchain:i?.name,toToken:js(s),fromAmount:c,autoConnect:A??void 0,clientUrl:b??void 0,blockchain:E??void 0,liquiditySources:y?k.current:void 0,...x})},[t.pathname,c,n,a,i,s,y,h]),Xs(()=>{if(!f)return;let A=v();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&m(A.fromAmount),h==="success"){let b=g.find(q=>q.name===A.fromBlockchain),x=A.fromToken&&b&&Ks(A.fromToken,b),E=x?w(x):void 0,L=g.find(q=>q.name===A.toBlockchain),N=A.toToken&&L&&Ks(A.toToken,L),O=N?w(N):void 0;b&&(l(b),E&&u({token:E,meta:{blockchains:g}})),L&&(p(L),O&&d({token:O,meta:{blockchains:g}}))}},[h]),Xs(()=>{let{clientUrl:A,liquiditySources:b}=v();T("clientUrl",A||void 0),C("liquiditySources",b?.split(",")??void 0)},[])}r(Zs,"useSyncUrlAndStore");import{i18n as Nn}from"@lingui/core";import{Alert as Vv,Button as Kv,darkTheme as jv,Divider as Il,DoneIcon as Xv,styled as Yv,TextField as Zv,Typography as Jv}from"@rango-dev/ui";import Ke,{useState as Rv}from"react";import{useNavigate as eE,useSearchParams as tE}from"react-router-dom";import{ChevronRightIcon as xw,Divider as gm,Image as Iw,Typography as hm}from"@rango-dev/ui";import At from"react";import{darkTheme as um,styled as Js}from"@rango-dev/ui";var dm=Js("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${um} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${um} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),mm=Js("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),fm=Js("div",{display:"flex"});function Rs(t){let{onClick:e,value:o,title:n,hasLogo:i,placeholder:a,disabled:s}=t;return At.createElement(mm,null,At.createElement(hm,{size:"large",variant:"label"},n),At.createElement(gm,{size:10}),At.createElement(dm,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},At.createElement(fm,null,i&&At.createElement(At.Fragment,null,At.createElement(Iw,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),At.createElement(gm,{size:4,direction:"horizontal"})),At.createElement(hm,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),At.createElement(xw,{size:12,color:"black"})))}r(Rs,"BlockchainSelectorButton");import{i18n as nl}from"@lingui/core";import{Button as Mw,Divider as km,MessageBox as Dw}from"@rango-dev/ui";import ho,{useEffect as wm,useState as rl}from"react";import{i18n as Fi}from"@lingui/core";import{Divider as qo,ExternalLinkIcon as Ww,Image as Pw,InfoIcon as Lw,Tooltip as Bw,Typography as gr}from"@rango-dev/ui";import fe from"react";var ym="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";import{Button as Aw,darkTheme as In,styled as fr,Typography as Nw}from"@rango-dev/ui";var el=fr("a",{textDecoration:"none",color:"$colors$neutral700",[`.${In} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${In} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${In} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${In} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),Sm=fr("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${In} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${In} &`]:{color:"$colors$neutral900"}}}),tl=fr(Aw,{minHeight:"$40"}),Tm=fr(Nw,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"96px"}),Cm=fr("div",{display:"flex",justifyContent:"center",alignItems:"center"});var _w=9;function ol(t){let{open:e,onClose:o,token:n,onExit:i,onSubmitClick:a,blockchain:s}=t,c=n.address?ri({contractAddress:n.address,blockchainMeta:s}):void 0,l=r(()=>window.open(ym,"_blank"),"onClickLearnMore");return fe.createElement(ie,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:i,container:W()},fe.createElement(Sm,null,fe.createElement(Pw,{src:n.image===""?ai:n.image,size:45,type:"circular"}),fe.createElement(qo,{size:4}),fe.createElement(Cm,null,fe.createElement(Tm,{variant:"title",size:"medium"},n.symbol),n.symbol.length>_w&&fe.createElement(Bw,{content:n.symbol,container:W()},fe.createElement(Lw,{size:12,color:"gray"}))),fe.createElement(gr,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),fe.createElement(qo,{size:4}),fe.createElement(gr,{variant:"body",size:"medium"},c?fe.createElement(el,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,fe.createElement(Ww,{size:12,color:"gray"})):fe.createElement(el,null,n.address)),fe.createElement(qo,{size:4}),n.coinSource&&fe.createElement(gr,{className:"_coin-source",variant:"body",size:"xsmall"},Fi.t("via")," ",fe.createElement(gr,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),fe.createElement(qo,{size:"32"}),fe.createElement(gr,{size:"medium",variant:"body",className:"_custom-token-description"},Fi.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."))),fe.createElement(qo,{size:40}),fe.createElement(qo,{size:10}),fe.createElement(tl,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Fi.t("Import Anyway")),fe.createElement(qo,{size:10}),fe.createElement(tl,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Fi.t("Learn More")))}r(ol,"CustomTokenModal");function hr(t){let{token:e,blockchain:o,error:n,address:i,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=S(),[d,m]=rl(!1),[h,g]=rl(!1),[f,T]=rl(!1),C=r(()=>{o&&a?.({blockchain:o.name,tokenAddress:i})},"getCustomToken"),y=r(()=>{n?.type!=="network-error"&&s?.(),m(!1)},"closeErrorModal"),k=r(()=>{T(!0),y()},"handleErrorModalButtonClick"),w=r(()=>{f&&n?.type==="network-error"&&(T(!1),C()),l()},"handleExit"),v=r(()=>{e&&(u(e),c())},"handleSubmit");return wm(()=>{n&&m(!0)},[n]),wm(()=>{o&&e&&g(!0)},[o,e]),ho.createElement(ho.Fragment,null,ho.createElement(ie,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:y,onExit:w,container:W()},ho.createElement(Dw,{title:n?.title??"",type:"error",description:n?.message||nl.t("Failed Network, Please retry.")},ho.createElement(km,{size:40}),ho.createElement(km,{size:10}),ho.createElement(Mw,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:k},n?.type==="network-error"?nl.t("Retry"):nl.t("Add another custom token")))),o&&e&&ho.createElement(ol,{blockchain:o,token:e,onSubmitClick:v,onClose:()=>g(!1),open:h,onExit:p}))}r(hr,"ImportCustomToken");import{useManager as Uv}from"@rango-dev/queue-manager-react";import{BottomLogo as zv,Divider as of,Header as Qv}from"@rango-dev/ui";import Le,{useEffect as ji,useLayoutEffect as Hv,useRef as nf,useState as rf}from"react";import{useRef as $w}from"react";function Oi(){return window.self!==window.top}r(Oi,"isAppLoadedIntoIframe");function il(){let t=$w(null),{iframe:e}=S(),o=Oi()&&e.clientUrl,n=r(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:r(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:r(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}r(il,"useIframe");import{useNavigate as Fw}from"react-router-dom";function Ve(){let t=Fw();return()=>t(-1)}r(Ve,"useNavigateBack");import{createTheme as dl,darkTheme as Zw,lightTheme as Jw}from"@rango-dev/ui";import{useEffect as Rw,useState as ev}from"react";import{theme as Xw,darkColors as Yw}from"@rango-dev/ui";import pl from"react";var Ui=16,zi=255,vm=.11;function Ow(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,i){return n+i+i},"")}`:`#${t}`}r(Ow,"expandShortHexColor");function Uw(t,e){return t.padStart(e,"0")}r(Uw,"pad");function al(t){let e=Math.min(Math.max(Math.round(t),0),zi);return Uw(e.toString(Ui),2)}r(al,"intToHex");function zw(t){return`#${al(t.red)}${al(t.green)}${al(t.blue)}`}r(zw,"rgbToHex");function Qw(t){let e=parseInt(t.slice(1,3),Ui),o=parseInt(t.slice(3,5),Ui),n=parseInt(t.slice(5,7),Ui);return{red:e,green:o,blue:n}}r(Qw,"hexToRGB");function Hw(t,e){let o=1-vm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}r(Hw,"generateShade");function qw(t,e){let o=vm*e;return{red:t.red+(zi-t.red)*o,green:t.green+(zi-t.green)*o,blue:t.blue+(zi-t.blue)*o}}r(qw,"generateTint");function Gw(t){return Em(t,Hw)}r(Gw,"calculateShades");function Vw(t){return Em(t,qw)}r(Vw,"calculateTints");function Em(t,e){let o=Qw(t),n=[];for(let i=1;i<9;i++)n.push(zw(e(o,i)));return n}r(Em,"calculateColors");function sl(t,e,o){let a=Vw(t).reverse().concat(t),s=Gw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let d=100+(o?p-1-u:u)*50,m=c[u];m&&(l[`${e}${d}`]=m)}return l}r(sl,"createTintsAndShades");function ll(t,e,o){let n={...t};for(let i in e){let a=e[i],s=i==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(i)&&!Tu(i)){let l=Ow(a);Object.assign(n,sl(l,i,s))}}return{...n,...e}}r(ll,"expandToGenerateThemeColors");var bm=r(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Kw=r(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=bm(o%52)+e;return bm(o%52)+e},"toAlphabeticName"),jw=r((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),cl=r(t=>Kw(jw(5381,JSON.stringify(t))>>>0),"toHash");function ul(t){let e=Xw.colors,o={...e,...Yw},n,i;if(t?.light){let s={colors:ll(e,t.light)};n={id:`${Ts}-light-${cl(s)}`,tokens:s}}if(t?.dark){let s={colors:ll(o,t.dark,{reverseNeutralRange:!0})};i={id:`${Ts}-dark-${cl(s)}`,tokens:s}}return{light:n,dark:i}}r(ul,"customizedThemeTokens");function xm(t,e){if(t.length<=1)return t.map(({element:n,key:i})=>pl.cloneElement(n,{key:i}));let o=[];return t.forEach((n,i)=>{let{element:a,key:s}=n;if(o.push(pl.cloneElement(a,{key:s})),i<t.length-1){let c=`divider-${i}`;o.push(pl.cloneElement(e,{key:c}))}}),o}r(xm,"joinList");function Im(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}r(Im,"doesWindowPreferDarkColorScheme");function yo(t){let{colors:e,fontFamily:o=eu,borderRadius:n=Lu,secondaryBorderRadius:i=Bu}=t,[a,s]=ev(Im()?"dark":"light"),{theme:c}=S(),{dark:l,light:p}=ul(e),u=dl({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${i}px`},fonts:{widget:o}}),d=[u.className,Jw.className],m=[u.className,Zw.className];if(p){let g=dl(p.id,p.tokens);d.push(g.className)}if(l){let g=dl(l.id,l.tokens);m.push(g.className)}return Rw(()=>{let g=r(f=>{f.matches?s("dark"):s("light")},"switchThemeListener");return Im()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:r(()=>{let g=d.join(" "),f=m.join(" ");return c==="auto"?a==="dark"?f:g:c==="dark"?f:g},"getActiveTheme"),mode:c==="auto"?a:c}}r(yo,"useTheme");var Et=r(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let i=o.list.getStorage();i?.swapDetails&&e.push({id:n,swap:i?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Am}from"@lingui/core";import{Alert as tv,Button as ov}from"@rango-dev/ui";import Nm from"react";function ml(t){return Nm.createElement(tv,{action:Nm.createElement(ov,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Am.t("Activate this tab")),type:"warning",variant:"alarm",title:Am.t("Another tab is open and handles transactions.")})}r(ml,"ActivateTabAlert");import{i18n as fl}from"@lingui/core";import{Button as nv,Divider as rv,MessageBox as iv}from"@rango-dev/ui";import Qi from"react";function gl(t){let{open:e,onClose:o,onConfirm:n}=t;return Qi.createElement(ie,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:W()},Qi.createElement(iv,{title:fl.t("Activate current tab"),type:"warning",description:fl.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.")},Qi.createElement(rv,{size:20}),Qi.createElement(nv,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},fl.t("Confirm"))))}r(gl,"ActivateTabModal");import{ChevronLeftIcon as lv}from"@rango-dev/ui";import $m from"react";import{css as av,darkTheme as Wm,IconButton as sv,styled as Go}from"@rango-dev/ui";var Ot=Go(sv,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Wm} &`]:{backgroundColor:"$neutral"}}}),Pm=Go("div",{position:"absolute",background:"$secondary500",[`.${Wm} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),So=Go("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Lm=Go("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=Go("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),_m=Go("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Mm=av({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Dm=Go("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function hl(t){return $m.createElement(Ot,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},$m.createElement(lv,{color:"black",size:16}))}r(hl,"BackButton");import{i18n as cv}from"@lingui/core";import{Button as pv,Typography as uv}from"@rango-dev/ui";import yl from"react";function Sl(t){return yl.createElement(So,null,yl.createElement(pv,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},yl.createElement(uv,{variant:"label",size:"medium",color:"error500"},cv.t("Cancel"))))}r(Sl,"CancelButton");import{i18n as dv}from"@lingui/core";import{Image as mv,Tooltip as fv,WalletIcon as gv,WalletState as Fm}from"@rango-dev/ui";import Vo from"react";function Tl(t){let{list:e}=xt(),o=e.filter(i=>i.state===Fm.CONNECTED||i.state===Fm.PARTIALLY_CONNECTED),n=o.length?Vo.createElement("div",{className:Mm()},o.map(i=>Vo.createElement(Dm,{key:i.title},Vo.createElement(mv,{src:i.image,size:14})))):dv.t("Connect Wallet");return Vo.createElement(fv,{container:t.container,side:"bottom",content:n},Vo.createElement(Ot,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Vo.createElement(Pm,null),Vo.createElement(gv,{size:18,color:"black"})))}r(Tl,"WalletButton");import{i18n as qi}from"@lingui/core";import{NotificationsIcon as Pv,Popover as Lv,SettingsIcon as Bv,Tooltip as Gi,TransactionIcon as _v}from"@rango-dev/ui";import _e from"react";import{Notifications as Tv}from"@rango-dev/ui";import Cv from"react";import{useNavigate as kv}from"react-router-dom";import{create as hv}from"zustand";import{persist as yv,subscribeWithSelector as Sv}from"zustand/middleware";var Pe=fo(hv()(yv(Sv((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let i=n.steps[0],a=n.steps[n.steps.length-1];if(!i||!a)return;let s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:i.fromBlockchain,address:i.fromSymbolAddress,symbol:i.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(i=>i.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((i,a)=>i.route.creationTime&&!a.route.creationTime?-1:!i.route.creationTime&&a.route.creationTime?1:!i.route.creationTime&&!a.route.creationTime?a.creationTime-i.creationTime:a.route.creationTime-i.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:i}=e();if(!n){let a=[];i.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,...i})=>i)}return t}})));function Cl(){let t=kv(),{getNotifications:e,clearNotifications:o}=Pe(),n=e(),i=S().blockchains(),{findToken:a}=S();return Cv.createElement(Tv,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Hp(c,i),getTokenImage:c=>a(c)?.image,onClickItem:r(c=>{t(`${$.swaps}/${c}`)},"onClickItem"),onClearAll:o})}r(Cl,"NotificationContent");import{useManager as wv}from"@rango-dev/queue-manager-react";import{InProgressIcon as vv}from"@rango-dev/ui";import Om from"react";var Ev=r(()=>{let{manager:t}=wv();return Et(t).map(({swap:o})=>o).find(o=>o.status==="running")?Om.createElement(_m,{id:"widget-header-history-badge-container"},Om.createElement(vv,{color:"info",size:6})):null},"InProgressTransactionBadge"),Um=Ev;import{EventSeverity as bv}from"@rango-dev/queue-manager-rango-preset";import{Typography as xv}from"@rango-dev/ui";import zm from"react";function Qm(){let{getNotifications:t}=Pe(),e=t(),o=e.length,n=!!e.find(i=>i.event.messageSeverity===bv.WARNING);return o?zm.createElement(Lm,{isSever:n},zm.createElement(xv,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}r(Qm,"NotificationsBadge");import{RefreshProgressButton as Iv}from"@rango-dev/ui";import kl,{useEffect as Av,useState as Hm}from"react";var Nv=1e3,qm=60,Wv=100;function Hi({onClick:t}){let[e,o]=Hm(0),[n,i]=Hm(!1),a=r(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Av(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===qm&&c()},Nv):s(l),document.addEventListener("visibilitychange",()=>a(l)),()=>{document.removeEventListener("visibilitychange",()=>a(l)),l&&clearInterval(l)}},[e,t]);let s=r(l=>{l&&clearInterval(l),o(0)},"clearTimeout"),c=r(()=>{t?.(),o(0),i(!0)},"handleRefreshClick");return kl.createElement(Ot,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},kl.createElement(Bm,{onTransitionEnd:()=>i(!1),isRefetched:n},kl.createElement(Iv,{size:22,color:t?"black":"gray",progress:e/qm*Wv})))}r(Hi,"RefreshButton");function Ko(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:i=[],container:a}=t,{config:{features:s}}=S(),c=nt("notification",s)||i.includes("notifications");return _e.createElement(_e.Fragment,null,!i.includes("refresh")&&_e.createElement(Gi,{container:a||W(),side:"top",content:qi.t("Refresh")},_e.createElement(Hi,{onClick:e})),!c&&_e.createElement(Lv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:W(),content:_e.createElement(Cl,null)},_e.createElement("div",null,_e.createElement(Gi,{container:W(),side:"top",content:qi.t("Notifications")},_e.createElement(Ot,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},_e.createElement(Pv,{size:18,color:"black"}),_e.createElement(Qm,null))))),!i.includes("settings")&&_e.createElement(Gi,{container:W(),side:"top",content:qi.t("Settings")},_e.createElement(Ot,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},_e.createElement(Bv,{size:18,color:"black"}))),!i.includes("history")&&_e.createElement(Gi,{container:W(),side:"top",content:qi.t("History")},_e.createElement(Ot,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},_e.createElement(_v,{size:18,color:"black"}),_e.createElement(Um,null))))}r(Ko,"HeaderButtons");import{i18n as wl}from"@lingui/core";import{Divider as Vm,MessageBox as $v,RefreshIcon as Fv}from"@rango-dev/ui";import An from"react";import{Button as Mv,styled as Dv}from"@rango-dev/ui";var Gm=Dv(Mv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function vl(t){let{open:e,onClose:o}=t;return An.createElement(ie,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:W()},An.createElement($v,{title:wl.t("Something went wrong"),type:"error",description:wl.t("Something went wrong. Please refresh the app.")},An.createElement(Vm,{size:30}),An.createElement(Gm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},An.createElement(Fv,{size:20,color:"primary"}),An.createElement(Vm,{size:4,direction:"horizontal"}),wl.t("Refresh"))))}r(vl,"RefreshModal");var Km="700px",jm="425px",Xm="550px",Ym="640px",Zm="800px";function El(t){let e=t.target;if(e){let o=e.scrollTop,n=W();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}r(El,"onScrollContentAttachStatusToContainer");import{css as Ov,styled as Vi}from"@rango-dev/ui";var Ki=Ov({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Jm=Vi("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",maxHeight:Km,variants:{height:{auto:{height:"auto"},fixed:{height:"100%",minHeight:jm,[`@media screen and (min-height: ${Zm})`]:{minHeight:Xm}}},showBanner:{true:{overflow:"visible"}}}}),Rm=Vi("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),ef=Vi("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"}}}),tf=Vi("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function se(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=il(),{children:n,header:i,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=S(),[u,d]=rf(!1),{config:{features:m,theme:h}}=S(),{watermark:g}=re(),f=g==="FULL",{activeTheme:T}=yo(h||{}),[C,y]=rf(!1),k=nt("connectWalletButton",m),{isActiveTab:w,tabManagerInitiated:v,showActivateTabModal:I,setShowActivateTabModal:A,activateCurrentTab:b,setShowCompactTokenSelector:x}=re(),E=Ve(),{manager:L}=Uv(),O=Et(L).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),q=r(()=>b(Oo.forceClaim,O),"onActivateTab"),j=r(()=>{i.onWallet?.()},"onConnectWallet"),ee=typeof i.hasBackButton>"u"||i.hasBackButton,P=nf(null),Z=nf(null);return ji(()=>{let Y=(p?.swapBoxBanner?.routes?.length??0)===0,pe=!!p?.swapBoxBanner?.routes?.some(Ee=>location.pathname.endsWith(Ee));y(!!p?.swapBoxBanner&&(Y||pe))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),ji(()=>(Oi()&&Z.current&&e(Z.current),()=>{o()}),[]),ji(()=>(P.current?.addEventListener("scroll",El),()=>{P.current?.removeEventListener("scroll",El)}),[]),ji(()=>{d(c==="failed")},[c]),Hv(()=>{if(!Z.current)return;let Y=new ResizeObserver(pe=>{for(let Ee of pe)Ee.contentRect&&x(Ee.contentRect.height<parseInt(Ym))});return Y.observe(Z.current),()=>Y.disconnect()},[]),Le.createElement(Jm,{height:s,id:kt.SWAP_BOX_ID,className:`${T()} ${Ki()}`,ref:Z,showBanner:C},Le.createElement(Qv,{prefix:ee?Le.createElement(hl,{onClick:()=>{E(),i.onBack?.()}}):null,title:i.title,suffix:Le.createElement(Le.Fragment,null,i.suffix,i.onWallet&&!k&&Le.createElement(Tl,{container:W(),onClick:j,isConnected:!!l?.length}),i.onCancel&&Le.createElement(Sl,{onClick:i.onCancel}))}),Le.createElement(Rm,{ref:P},n),Le.createElement(gl,{open:I,onClose:()=>A(!1),onConfirm:q}),Le.createElement(ef,null,Le.createElement("div",{className:"footer__content"},v&&!w&&Le.createElement("div",{className:"footer__alert"},Le.createElement(ml,{onActivateTab:q}),Le.createElement(of,{size:10})),a),Le.createElement(of,{size:12}),Le.createElement("div",{className:`footer__logo ${f?"logo__show":"logo__hidden"}`},Le.createElement(zv,null))),C&&Le.createElement(tf,null,p?.swapBoxBanner?.element),Le.createElement(vl,{open:u,onClose:()=>d(!1)}))}r(se,"Layout");import{styled as qv}from"@rango-dev/ui";var af="$20 $20 $10 $20",bl=qv("div",{padding:af,overflowY:"auto",flexGrow:1});import{styled as Gv}from"@rango-dev/ui";var ce=Gv("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 To}from"@lingui/core";import{useState as xl}from"react";function sf(){let[t,e]=xl(!1),[o,n]=xl(null),[i,a]=xl(null),{findToken:s}=S(),c=S().customTokens(),l=r(()=>{a(null),e(!1),n(null)},"resetState");function p(d,m){switch(d){case"duplicated":return{type:d,title:To.t("Duplicate Token"),message:To.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:To.t("Token Already Exists"),message:To.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:To.t("Token Not Found"),message:To.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:m}})};case"network-error":return{type:d,title:To.t("Network error"),message:To.t("An error occurred while retrieving token data.")}}}return r(p,"produceErrorMessage"),{fetchCustomToken:r(async({blockchain:d,tokenAddress:m})=>{e(!0);try{if(c.some(C=>C.address?.toLowerCase()===m.toLowerCase())){let C=p("duplicated");n(C);return}let g=await dt().getCustomToken({blockchain:d,address:m});if(!g||!g.token||g.error){let C=p("not-found",d);n(C);return}let f=g.token;if(s({blockchain:f.blockchain,address:f.address,symbol:f.symbol})){let C=p("token-exist");n(C);return}return a({...f,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",d);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:i,loading:t,error:o,resetState:l}}r(sf,"useFetchCustomToken");var oE=Yv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${jv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function lf(){let t=eE(),[e]=tE(),o=Ve(),n=S().blockchains(),i=e.get("blockchain")||"",a=Bo(i,n),[s,c]=Rv(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:m}=sf(),h=!!a&&_o(a,s),g=!a||!s||!h,f=r(()=>{a&&l({blockchain:i,tokenAddress:s})},"getCustomToken");return Ke.createElement(se,{header:{title:Nn.t("Add Custom Token")}},Ke.createElement(ce,null,Ke.createElement(oE,null,Ke.createElement("div",null,Ke.createElement(Rs,{onClick:()=>t($.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:Nn.t("Select chain"),placeholder:Nn.t("Select chain")}),Ke.createElement(Il,{size:"24"}),Ke.createElement(Jv,{size:"large",variant:"label"},Nn.t("Enter Address")),Ke.createElement(Il,{size:10}),Ke.createElement(Zv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:Nn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Ke.createElement(Xv,{color:"success",size:12}),onChange:T=>c(T.target.value)}),!h&&!!s&&Ke.createElement(Ke.Fragment,null,Ke.createElement(Il,{size:4}),Ke.createElement(Vv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ke.createElement(Kv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:f},Nn.t("Import"))),Ke.createElement(hr,{token:p,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:m,onExitImportModal:m})))}r(lf,"AddCustomTokenPage");import{i18n as ac}from"@lingui/core";import{useManager as Ub}from"@rango-dev/queue-manager-react";import{Alert as zb,Button as Qb,css as lc,Divider as sc,IconButton as Jg,styled as Hb,Typography as qb,WalletIcon as Gb}from"@rango-dev/ui";import $e,{useEffect as wa,useLayoutEffect as Vb,useRef as Kb,useState as Ir}from"react";import{useNavigate as jb}from"react-router-dom";import{i18n as Xo}from"@lingui/core";import{Alert as kE,BalanceErrors as wE,Button as Lf,ChevronLeftIcon as vE,Divider as Bl,MessageBox as EE,Typography as _l}from"@rango-dev/ui";import ae,{useCallback as bE,useEffect as ea,useMemo as xE,useState as Pn}from"react";import{useNavigate as IE}from"react-router-dom";import{i18n as Pl}from"@lingui/core";import{Alert as sE,ChevronDownIcon as lE,CloseIcon as cE,Divider as gf,IconButton as hf,PasteIcon as pE,Typography as uE,WalletIcon as dE}from"@rango-dev/ui";import Me,{useEffect as yf,useRef as Sf}from"react";import Ji,{useRef as iE}from"react";import*as Wn from"@radix-ui/react-collapsible";import{keyframes as cf,styled as Xi}from"@rango-dev/ui";var Al=300,nE=cf({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),rE=cf({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),pf=Xi(Wn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Nl=Xi(Wn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Yi=Xi(Wn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${nE} ${Al}ms ease-out`},false:{animation:`${rE} ${Al}ms ease-out`}}}}),Zi=Xi("div",{transition:`all ${Al}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Ri(t){let{open:e,hasSelected:o,onOpenChange:n,children:i,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=iE(null);return Ji.createElement(pf,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&Ji.createElement(Nl,{className:"collapsible_trigger",onClick:a},s),Ji.createElement(Yi,{className:"collapsible_content",open:e},i),c==="bottom"&&Ji.createElement(Nl,{className:"collapsible_trigger",onClick:a},s))}r(Ri,"CustomCollapsible");import{darkTheme as uf,styled as Wl,TextField as aE}from"@rango-dev/ui";var df=Wl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),mf=Wl(aE,{backgroundColor:"$neutral100"}),ff=Wl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${uf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${uf} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function Tf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:i,setCustomDestination:a}=z()(),{config:s}=S(),c=S().blockchains(),l=Qp(e.name,c),p=Sf(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!i&&e&&!_o(e,i),g=r(()=>{a("")},"handleClear"),f=r(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let k=await navigator.clipboard.readText();a(k),p?.current?.focus()}},"handlePaste"),T=r(()=>i?Me.createElement(hf,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},Me.createElement(cE,{size:12,color:"gray"})):d?null:Me.createElement(hf,{id:"widget-custom-destination-paste-icon-btn",onClick:f,variant:"ghost"},Me.createElement(pE,{size:16})),"renderSuffix");yf(()=>{!!u&&i===null&&(a(u),o(!0))},[u]);let C=Sf(null);return yf(()=>{if(!i){C.current=null;return}n&&_o(e,i)&&C.current!==i&&(C.current=i,te({type:"destinationAddressSet",payload:{destinationChain:e.name}}))},[i,n,e]),Me.createElement(df,null,Me.createElement(Ri,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Me.createElement(ff,{id:"widget-custom-destination-collapsible-btn"},Me.createElement("div",{className:"button__content"},Me.createElement(dE,{size:18,color:"info"}),Me.createElement(gf,{size:4,direction:"horizontal"}),Me.createElement(uE,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Pl.t("Send to a different address"))),Me.createElement(Zi,{orientation:n?"up":"down"},Me.createElement(lE,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Me.createElement(mf,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:i?"8px":"5px"},autoFocus:!i,placeholder:Pl.t("Enter {blockchainName} address",{blockchainName:l}),value:i||"",suffix:T(),onChange:y=>{let k=y.target.value;a(k)}})),h&&Me.createElement(Me.Fragment,null,Me.createElement(gf,{size:4}),Me.createElement(sE,{variant:"alarm",type:"error",title:Pl.t({values:{destination:i},id:"Address {destination} doesn't match the blockchain address pattern."})})))}r(Tf,"CustomDestination");import{css as mE,IconButton as fE,SelectableWalletButton as gE,styled as Co}from"@rango-dev/ui";var Cf=Co("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),kf=Co("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),wf=Co(gE,{justifyContent:"center"}),vf=Co("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Ef=Co(fE,{position:"absolute",left:"$20"}),bf=Co("div",{paddingTop:"$20"}),xf=mE({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),If=Co("div",{display:"flex"}),Af=Co("div",{overflow:"visible",width:"100%"});import{i18n as Nf}from"@lingui/core";import{warn as hE}from"@rango-dev/logging-core";import{makeInfo as yE,SelectableWallet as SE,Typography as Wf,WalletState as yr}from"@rango-dev/ui";import jo,{useEffect as TE,useState as Pf}from"react";var CE=7;function Ll(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:i,limit:a,onShowMore:s}=t,c=re.use.isActiveTab(),{connectedWallets:l}=S(),[p,u]=Pf(),{list:d}=xt({chain:e}),[m,h]=Pf(d),g=d.length,f=a&&g-a>0;return TE(()=>{h(T=>{let C=d.findIndex(y=>n(y.type,e));return f&&C>1?[d[C]].concat(d.filter((y,k)=>k!==C)):T.map(y=>d.find(k=>k.type===y.type)??y)})},[JSON.stringify(d)]),jo.createElement(jo.Fragment,null,m.slice(0,a).map(T=>{let C=Iu({connectedWallets:l,walletType:T.type,chain:e}),y=T.state===yr.CONNECTED||T.state===yr.PARTIALLY_CONNECTED,k=C?mo(C,CE):"",w=y&&!!T.needsNamespace&&!k,v=r(async()=>{T.state===yr.DISCONNECTED||w?u(T):i({walletType:T.type,chain:e,address:C??""})},"onSelectableWalletClick"),I=yE(T.state),A=r(()=>w?Nf.t("Chain not connected"):k||I.description,"getWalletDescription"),b=r(()=>T.state===yr.CONNECTED||T.state===yr.PARTIALLY_CONNECTED?w?"neutral600":"neutral700":I.color,"getWalletDescriptionColor");return jo.createElement(SE,{key:T.type,id:"widget-wallets-list-selectable-wallet-btn",description:A(),descriptionColor:b(),onClick:v,selected:n(T.type,e),disabled:!c,...T})}),jo.createElement(ur,{id:"widget-wallets-list-stateful-connect-modal",wallet:p,options:{defaultSelectedChains:o||[e]},onClose:()=>{u(void 0)},onConnect:()=>{t.onConnect&&(p?.type?t.onConnect(p.type):hE(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),f&&jo.createElement(wf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},jo.createElement(Wf,{variant:"label",size:"medium"},Nf.t("Show more wallets"),jo.createElement(Wf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",g-(a??0)))))}r(Ll,"WalletList");var AE=2;function Bf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:i,loading:a}=t,s=IE(),c=S().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:m,setCustomDestination:h}=z()(),{config:g,connectedWallets:f,setWalletsAsSelected:T}=S(),[C,y]=Pn(""),[k,w]=Pn([]),[v,I]=Pn(""),[A,b]=Pn(!!m),x=xE(()=>$o({filter:"all",quote:l}),[l]),E=$o({filter:"required",quote:l}),L=c.find(B=>B.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),N=r(B=>E.includes(B),"isWalletRequiredFor"),O=bE(()=>f.filter(B=>B.selected&&x.includes(B.chain)),[f,x]),[q,j]=Pn(O()),[ee,P]=Pn([]),Z=r((B,V)=>P(Q=>Q.concat({blockchain:B,walletType:V})),"addNextSelectedWallets"),Y=k.length>0,pe=r((B,V)=>!!q.find(Q=>Q.walletType===B&&Q.chain===V&&Q.selected&&(N(V)||!N(V)&&!m)),"isSelected"),Ee=r((B,V,Q)=>{let X=!1;return B.map(G=>{if(G.chain===V){let J=G.selected;return!X&&Q?(X=!0,J=!0):Q||(J=!1),{...G,selected:J}}return G})},"updateSelectableWallets"),Kt=r(B=>{b(B),B?N(L?.name??"")||j(V=>Ee(V,L?.name||"",!1)):(h(""),j(V=>Ee(V,L?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),be=r(B=>{if(C&&y(""),pe(B.walletType,B.chain))return;let Q=f.find(X=>X.walletType===B.walletType&&X.chain===B.chain);Q&&(n(),B.chain===L?.name&&A&&!N(L.name)&&(b(!1),h(null)),j(X=>X.filter(G=>G.chain!==B.chain).concat({...Q,selected:!0})))},"onChange"),He=r(()=>{let B=q.filter(V=>V.selected);te({type:"swapWalletsConfirmed",payload:{routeId:l?.requestId??""}}),T(B),p(B),d(!0),o()},"onConfirmBalance"),Xe=r(async()=>{w([]),I("");let B=await i?.({selectedWallets:q.filter(Q=>Q.selected),customDestination:m}),V=B.warnings;V?.balance?.messages&&w(V.balance.messages),B.error&&I(Ru(B.error)),!B.error&&!V?.balance?.messages.length?He():w(V?.balance?.messages??[])},"onConfirmWallets");ea(()=>{j(B=>{let V=[];return B.forEach(Q=>{!f.some(G=>G.chain===Q.chain&&G.walletType===Q.walletType&&G.address===Q.address)||V.push(Q)}),V=V.concat(f.filter(Q=>!!!V.find(G=>G.chain===Q.chain)&&Q.selected&&x.includes(Q.chain))),V})},[f,x]),ea(()=>{let B=[];ee.length>0&&(ee.forEach(V=>{let Q=f.find(X=>X.chain===V.blockchain&&X.walletType===V.walletType);Q?be(Q):B.push(V)}),P(B))},[f,ee]);let St=l?.requestId??"";ea(()=>{if(!e)return;let B=E.filter(V=>!f.some(Q=>Q.chain===V));te({type:"swapWalletsModalShown",payload:{chainsRequired:E.length,chainsPending:B.length}})},[e]),ea(()=>{Y&&te({type:"gasWarningShown",payload:{routeId:St}})},[Y,St]);let ct=document.getElementById(kt.SWAP_BOX_ID);return ae.createElement(ie,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!C,container:ct,...!C&&{styles:{container:{height:"100%"}},footer:ae.createElement(If,null,ae.createElement(Lf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:em(a,A,m,l,q,L),onClick:Xe,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Xo.t("Confirm")))},...C&&{styles:{container:{height:"100%",padding:"$0"}},header:ae.createElement(vf,null,ae.createElement(Ef,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:y.bind(null,"")},ae.createElement(vE,{size:16})),ae.createElement(_l,{variant:"headline",size:"small"},Xo.t({id:"Your {blockchainName} wallets",values:{blockchainName:Tt(C,c)}})))},anchor:"center"},ae.createElement(ie,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:Y,onClose:w.bind(null,[]),container:ct},ae.createElement(EE,{title:Xo.t("Insufficient account balance"),type:"error",description:ae.createElement(wE,{messages:k??[]})},ae.createElement(Lf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>{te({type:"gasWarningBypassed",payload:{routeId:St}}),He()}},Xo.t("Proceed anyway")))),C&&ae.createElement(bf,null,ae.createElement("div",{className:xf()},ae.createElement(Ll,{chain:C,quoteChains:x,isSelected:pe,selectWallet:be,onShowMore:()=>y(C),onConnect:B=>{Z(C,B)}}))),!C&&ae.createElement(ae.Fragment,null,v&&ae.createElement(ae.Fragment,null,ae.createElement(kE,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Xo.t(v)}),ae.createElement(Bl,{size:12})),ae.createElement(Af,null,x.map((B,V)=>{let Q=c.find(U=>U.name===B),X=`wallet-${V}`,G=V===x.length-1,J=G&&L&&g?.customDestination!==!1;return ae.createElement("div",{key:X},ae.createElement(Cf,null,ae.createElement(_l,{variant:"title",size:"xmedium"},Xo.t({id:"Your {blockchainName} wallets",values:{blockchainName:Q?.shortName}})),ae.createElement(_l,{variant:"label",color:"$neutral700",size:"medium"},Xo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:Q?.shortName}}))),ae.createElement(Bl,{size:24}),ae.createElement(kf,null,ae.createElement(Ll,{chain:B,quoteChains:x,isSelected:pe,selectWallet:be,limit:AE,onShowMore:()=>y(Q?.name??""),onConnect:U=>{Z(B,U)}})),!G&&ae.createElement(Bl,{size:32}),J&&ae.createElement(Tf,{blockchain:L,open:A,handleOpenChange:Kt}))}))))}r(Bf,"ConfirmWalletsModal");import{i18n as eb}from"@lingui/core";import{Alert as tb,Button as ob,Divider as Rf,InfoIcon as nb}from"@rango-dev/ui";import Ue from"react";import{Alert as PE,Button as LE,Divider as $l,NoRouteIcon as BE,RefreshIcon as _E,Typography as Uf}from"@rango-dev/ui";import mt from"react";import{i18n as _f}from"@lingui/core";var NE=24,WE=60;function Mf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:_f.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:_f.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}}r(Mf,"makeInfo");var Ml=(o=>(o[o.small=NE]="small",o[o.large=WE]="large",o))(Ml||{}),Dl=(o=>(o.small="small",o.large="medium",o))(Dl||{});import{styled as ta}from"@rango-dev/ui";var Df=ta("div",{display:"flex",flexDirection:"column",alignItems:"center"}),$f=ta("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Ff=ta("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Of=ta("div",{padding:"$6 $0"});function Sr(t){let{fetch:e,error:o,size:n="small",skipAlerts:i}=t,a=S().getDisabledLiquiditySources(),s=S().toggleAllLiquiditySources,c=S().swappers(),l=Mf(o,a,()=>s(c,!0),e);return i&&(l.alert=null),mt.createElement(Df,{id:"widget-no-result-container"},mt.createElement(BE,{size:Ml[n],color:"gray"}),mt.createElement($l,{size:4}),mt.createElement(Uf,{variant:"title",size:Dl[n]},oe().noResultError.title),n==="large"&&mt.createElement($l,{size:4}),!!l.description&&mt.createElement($f,{size:n},mt.createElement(Uf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),mt.createElement($l,{size:n==="large"?"24":"4"}),!!l.alert&&mt.createElement(Ff,{size:n},mt.createElement(PE,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&mt.createElement(LE,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:mt.createElement(Of,null,mt.createElement(_E,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}r(Sr,"NoResult");import{i18n as Tr}from"@lingui/core";import{Button as QE,Divider as HE,MessageBox as qE,Typography as GE,WarningIcon as VE}from"@rango-dev/ui";import eo from"react";import{InfoIcon as FE,Tooltip as OE,Typography as UE}from"@rango-dev/ui";import Ln from"react";import{Button as ME,darkTheme as DE,styled as Yo,Typography as $E}from"@rango-dev/ui";var zf=Yo("div",{width:"100%"}),Fl=Yo("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Qf=Yo("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${DE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Hf=Yo("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$2"}),qf=Yo($E,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"250px"}),Gf=Yo("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Vf=Yo(ME,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});var zE=35;function Kf(t){let{title:e,value:o,valueColor:n}=t,i=W();return Ln.createElement(Qf,null,Ln.createElement(UE,{size:"medium",variant:"label",className:"_title"},e),Ln.createElement(Hf,null,Ln.createElement(qf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`),o.length>zE&&Ln.createElement(OE,{content:o,container:i},Ln.createElement(FE,{size:12,color:"gray"}))))}r(Kf,"QuoteErrorsModalItem");function jf(t){let{open:e,onClose:o,onConfirm:n,warning:i,confirmationDisabled:a}=t,s=i.warningLevel==="high"?"error":"warning",c=[{title:Tr.t("Swapping"),value:M(i.inputUsdValue)},{title:Tr.t("Gas cost"),value:M(i.totalFee,2,2)},{title:Tr.t("Receiving"),value:M(i.outputUsdValue)},{title:Tr.t("Price impact"),value:M(i.priceImpact,2,2),valueColor:`${s}500`}];return eo.createElement(ie,{id:"widget-high-value-loss-warning-modal",footer:eo.createElement(QE,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:eo.createElement(VE,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:W()},eo.createElement(qE,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),eo.createElement(Fl,null,eo.createElement(HE,{size:"4"}),eo.createElement(GE,{size:"small",variant:"title"},Tr.t("Details")),eo.createElement(Fl,null,c.map((l,p)=>eo.createElement(Kf,{key:p,...l})))))}r(jf,"HighValueLossWarningModal");import{i18n as Bn}from"@lingui/core";function Xf(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Bn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Bn.t("Increase")),o;if(t){switch(t.type){case 0:{Rt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title;break}case 4:{o.title=Bn.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=Bn.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=Bn.t("Increase");break}case 3:{o.title=Bn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}r(Xf,"makeAlerts");function Yf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}r(Yf,"getRequiredSlippage");import{i18n as _n}from"@lingui/core";import{Button as KE,Divider as Ol,MessageBox as jE,WarningIcon as XE}from"@rango-dev/ui";import vo from"react";import{useNavigate as YE}from"react-router-dom";function Zf(t){let{open:e,onClose:o,onConfirm:n,warning:i,confirmationDisabled:a}=t,s=YE();return vo.createElement(ie,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:W(),onClose:o},vo.createElement(jE,{type:"warning",title:i.type===3?_n.t("High slippage"):_n.t("Low slippage"),description:i.type===3?_n.t("Caution, your slippage is high. Your trade may be front run."):_n.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:i.minRequiredSlippage}})},vo.createElement(Ol,{size:18}),vo.createElement(Ol,{size:32}),vo.createElement(Vf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},vo.createElement(XE,{color:"white",size:16}),_n.t("Swap anyway")),vo.createElement(Ol,{size:10}),vo.createElement(KE,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+$.settings)},_n.t("Change Slippage"))))}r(Zf,"SlippageWarningModal");import{Button as ZE,MessageBox as JE,WarningIcon as RE}from"@rango-dev/ui";import oa from"react";function Jf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:i}=t;return oa.createElement(ie,{id:"widget-unknown-price-warning-modal",footer:oa.createElement(ZE,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:oa.createElement(RE,null),fullWidth:!0,disabled:i,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:W()},oa.createElement(JE,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}r(Jf,"UnknownPriceWarningModal");function Cr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:i,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:d,onChangeSlippage:m}=t,h={confirmationDisabled:a,open:i,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,f=Xf(e,o?.type===3||o?.type===4?o:null);f&&!n&&(f.action=null);let T=!!f&&!s,C=r(y=>{if(y==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,w=Yf(e,k);m?.(w)}else y==="change-settings"&&d()},"onclickActionButton");return Ue.createElement(Ue.Fragment,null,g&&Ue.createElement(Ue.Fragment,null,Ue.createElement(Rf,{size:10}),Ue.createElement(Sr,{skipAlerts:s,error:o,fetch:c})),T&&Ue.createElement(zf,null,Ue.createElement(Rf,{size:10}),Ue.createElement(tb,{id:"widget-quote-warning-and-errors-alert",title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:Ue.createElement(Gf,{onClick:l},Ue.createElement(nb,{size:12,color:"gray"}))},...(f.action==="change-settings"||f.action==="change-slippage")&&{action:Ue.createElement(ob,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:f.alertType,onClick:()=>C(f.action)},f.actionButtonTitle||eb.t("Change"))}})),e&&Ue.createElement(Ue.Fragment,null,e.type===0&&Ue.createElement(jf,{...h,warning:e}),(e.type===3||e.type===2)&&Ue.createElement(Zf,{...h,warning:e}),e.type===1&&Ue.createElement(Jf,{...h,warning:e})))}r(Cr,"QuoteWarningsAndErrors");import Bb from"bignumber.js";import Sa from"react";import{i18n as Zo}from"@lingui/core";import{Alert as kb,CampaignQuoteTag as wb,Divider as Dn,FullExpandedQuote as vb,InfoIcon as Yl,NumericTooltip as Zl,QuoteTag as Eb,StepDetails as bb,TokenAmount as xb,Typography as $n,useIsTruncated as Jl}from"@rango-dev/ui";import Rl from"bignumber.js";import F,{useRef as ga,useState as Ib}from"react";import{styled as Ul}from"@rango-dev/ui";var zl=Ul("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),eg=Ul("div",{paddingBottom:"$15","& .from-amount-text":{wordBreak:"break-word"},variants:{dense:{true:{paddingBottom:0}}}}),tg=Ul("div",{width:"100%",display:"flex"});import*as na from"@radix-ui/react-collapsible";import{Button as rb,css as ra,darkTheme as De,Image as og,styled as je,Typography as Ql}from"@rango-dev/ui";var ib=300,ng=je(na.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${De} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),rg=ra({padding:"$10 $15"}),ig=je(rb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${De} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${De} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${De} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),ag=je("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${De} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${De} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${De} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${De} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${De} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${De} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${De} &`]:{backgroundColor:"$neutral400"}}}}]}),sg=ra({width:"100%",padding:"$15 $15 $10 $15"}),lg=ra({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Mn=ra({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),cg=je(na.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:{[`& ${og}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${og}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${De} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),pg=je("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),ug=je(Yi,{width:"100%",background:"inherit"}),Hl=je("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${ib}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),PH=je("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),dg=je("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${De} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),mg=je("div",{display:"flex",flexDirection:"row",alignItems:"center",gap:"$2",flex:"1 1 auto",minWidth:0}),ql=je(Ql,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"$30"}),Gl=je(Ql,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:"0 1 auto"}),Vl=je("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),fg=je("div",{display:"flex"}),ia=je("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${De} &`]:{borderTopColor:"$neutral800"}}),gg=je(Ql,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,flexShrink:3});import{i18n as Ut}from"@lingui/core";import{ChevronDownIcon as sb,CloseIcon as lb,Divider as la,IconButton as cb,NumericTooltip as pb,QuoteCost as ub,Typography as Nt}from"@rango-dev/ui";import db from"bignumber.js";import R,{useState as Tg}from"react";import{css as ab,styled as aa}from"@rango-dev/ui";var sa=aa("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Kl=aa("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),hg=aa("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),yg=aa("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Sg=ab({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var mb=r(t=>t.fee.isZero()?null:R.createElement(sa,null,R.createElement(Nt,{variant:"label",size:"medium",color:"neutral600"},t.label),R.createElement(Nt,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function jl(t){let[e,o]=Tg(!1),[n,i]=Tg(!1),{steps:a,quote:s,time:c,feeWarning:l,timeWarning:p,showModalFee:u,fullExpandedMode:d=!1}=t,m=s?.swaps??[],h=d?Do():W(),g=Vd(m),f=Object.values(g.payable).reduce((C,y)=>C.plus(Vs(y)),new db(0)),T=M(f,2,2);return R.createElement(R.Fragment,null,R.createElement(ub,{onClickFee:u?C=>{C.stopPropagation(),!e&&s&&te({type:"routeFeeViewed",payload:{routeId:s.requestId}}),o(!e)}:void 0,fee:T,feeWarning:l,timeWarning:p,time:c,steps:a,tooltipGas:u?Ut.t("View more info"):void 0,tooltipContainer:h}),R.createElement(ie,{id:"widget-quote-cost-explanation-modal",container:h,open:e,anchor:d?"center":"bottom",styles:{container:{maxWidth:d?"484px":"unset"}},header:R.createElement(yg,{style:{textAlign:d?"left":"center"}},R.createElement(Nt,{variant:"title",size:"medium"},Ut.t("Gas & Fee Explanation")),R.createElement(cb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},R.createElement(lb,{color:"gray",size:14}))),onClose:()=>{o(!1)}},R.createElement(hg,null,R.createElement(Nt,{variant:"title",size:"small"},Ut.t("Details")),R.createElement(la,{size:10}),Object.entries(g.payable).flatMap(([C,y])=>y.map((k,w)=>{let v=`payable-fee-${w}`,I=Gs(k);return R.createElement(sa,{key:v},R.createElement(Nt,{variant:"label",size:"medium",color:"neutral600"},Us(C,Ut.t)),R.createElement(pb,{content:k.amount,container:h},R.createElement(Nt,{variant:"label",size:"medium"},M(k.amount,2,2),k.asset.symbol," ($",M(I,4,4),")")))})),R.createElement(sa,{className:"total_payable_fee"},R.createElement(Nt,{variant:"label",size:"medium"},Ut.t("Total Payable Fee")),R.createElement(Nt,{variant:"label",size:"medium"},"$",M(f,4,4))),R.createElement(Kl,null),!!Object.keys(g.nonePayable).length&&R.createElement(Ri,{triggerAnchor:"bottom",onClickTrigger:()=>i(C=>!C),trigger:R.createElement("div",{className:Sg()},R.createElement(Nt,{size:"small",variant:"body",color:"neutral700"},n?Ut.t("Hide non-payable fees"):Ut.t("Show non-payable fees")),R.createElement(la,{size:4,direction:"horizontal"}),R.createElement(Zi,{orientation:n?"up":"down"},R.createElement(sb,{size:12,color:"gray"}))),open:n},R.createElement(Nt,{size:"small",variant:"title"},Ut.t("Description")),R.createElement(la,{size:4}),R.createElement(Nt,{size:"small",variant:"body",color:"neutral700"},Ut.t(`The following fees are considered in the transaction output and
|
|
3
|
+
you won\u2019t need to pay extra gas for them.`)),R.createElement(la,{size:10}),Object.entries(g.nonePayable).map(([C,y],k)=>{let w=Vs(y),v=Us(C,Ut.t),I=`non-payable-fee-${k}`;return R.createElement(mb,{key:I,fee:w,label:v})}),R.createElement(Kl,null)))))}r(jl,"QuoteCostDetails");import{i18n as wg}from"@lingui/core";import{TokenAmount as vg}from"@rango-dev/ui";import ca from"react";import{css as fb,styled as gb}from"@rango-dev/ui";var Cg=gb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),kg=fb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function kr(t){let{from:e,to:o,percentageChange:n,warningLevel:i}=t;return ca.createElement(Cg,null,ca.createElement(vg,{direction:"horizontal",label:wg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:W(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),ca.createElement("div",{className:kg()}),ca.createElement(vg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:W(),label:wg.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:i}))}r(kr,"QuoteSummary");import{i18n as Ag}from"@lingui/core";import{ChevronDownIcon as Sb,ChevronRightIcon as Tb,Divider as Xl,Image as Cb,Tooltip as fa,Typography as ua}from"@rango-dev/ui";import H from"react";import{useLayoutEffect as hb,useState as wr}from"react";var Eg=480,bg=768,xg=1024,Ig=1200,yb=r(()=>{let[t,e]=wr(!1),[o,n]=wr(!1),[i,a]=wr(!1),[s,c]=wr(!1),[l,p]=wr(!1),u=r(()=>{e(window.innerWidth<=Eg),n(window.innerWidth>Eg&&window.innerWidth<=bg),a(window.innerWidth>bg&&window.innerWidth<=xg),c(window.innerWidth>xg&&window.innerWidth<=Ig),p(window.innerWidth>Ig)},"handleResize");return hb(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:i,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),pa=yb;var da=4,ma=6,vr=r(t=>{let{content:e,src:o,className:n,open:i,state:a,container:s}=t,c=s||W();return H.createElement(fa,{container:c,side:"bottom",sideOffset:4,open:i,content:e},H.createElement(pg,{className:n,state:a},H.createElement(Cb,{src:o,size:16})))},"ImageComponent");function Ng(t){let{quoteRef:e,selected:o,setExpanded:n,steps:i,expanded:a,type:s,container:c}=t,l=c||W(),p=i.length,u=Dd(i),{isTablet:d,isMobile:m}=pa();return H.createElement(cg,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},H.createElement("div",{className:Mn()},H.createElement(ua,{variant:"body",size:"xsmall"},Ag.t("Via:")),H.createElement(Xl,{direction:"horizontal",size:4}),i.map((h,g)=>{let f=`item-${g}`,T=H.createElement(Hl,null,H.createElement(Tb,{size:12,color:"black"}));return m||d?H.createElement(H.Fragment,{key:f},H.createElement(vr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&H.createElement(H.Fragment,null,T)):H.createElement(H.Fragment,{key:f},p<=da||p>da&&g<da-1?H.createElement(H.Fragment,null,H.createElement(vr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&H.createElement(H.Fragment,null,T)):g===da-1&&H.createElement(fa,{container:l,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:Mn()},T,i.map((C,y)=>{let k=`image-${y}`;return y>=g&&H.createElement(H.Fragment,{key:k},H.createElement(vr,{content:C.swapper.displayName,src:C.swapper.image??"",state:C.state,open:!1}),y!==p-1&&H.createElement(H.Fragment,null,T))}))},H.createElement(Vl,{state:i.find((C,y)=>y>=g&&(C.state==="error"||C.state==="warning"))?.state},H.createElement(ua,{size:"xsmall",variant:"body"},"+",p-g))))})),H.createElement("div",{className:Mn()},H.createElement("div",{className:"blockchains_section"},H.createElement("div",{className:Mn()},H.createElement(ua,{variant:"body",size:"xsmall"},Ag.t("Chains:")),H.createElement(Xl,{direction:"horizontal",size:4}),u.map((h,g)=>H.createElement(H.Fragment,{key:h.displayName},u.length<=ma||u.length>ma&&g<ma-1?H.createElement(fa,{container:l,side:"bottom",content:h.displayName,sideOffset:4},H.createElement(vr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===ma-1&&H.createElement(fa,{container:l,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:Mn()},u.map((f,T)=>T>=g&&H.createElement(vr,{key:f.displayName,content:"",src:f.image??"",open:!1,className:T>g?"blockchainImage":"",container:c})))},H.createElement(Vl,{className:"blockchainImage"},H.createElement(ua,{size:"xsmall",variant:"body"},"+",u.length-g))))),H.createElement(Xl,{direction:"horizontal",size:32}))),H.createElement(Hl,{orientation:a?"up":"down"},H.createElement(Sb,{size:12,color:"black"}))))}r(Ng,"QuoteTrigger");function ec(t){let{quote:e,input:o,output:n,error:i,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:d=!1,container:m}=t,h=S().blockchains(),{findToken:g}=S(),f=S().swappers(),{customSlippage:T,slippage:C}=S(),y=T||C,[k,w]=Ib(t.expanded),v=ga(null),I=M(n.value,6,6),A=n.usdValue?M(n.usdValue,4,4):"",{config:{__UNSTABLE_OR_INTERNAL__:b}}=S(),x=Jt(o.usdValue,n.usdValue??null),E=M(x,2,2),L=Rt(x??0),N=r((G,J)=>G.map((U,de)=>{let qe,ot=i?.type===3&&i.swap.swapperId===U.swapperId,uo=i?.type===4&&!!i.recommendedSlippages?.[de],Gn=a?.type===2&&!!a.recommendedSlippages?.[de],Po=ot||uo,ti=Gn;Po?qe="error":ti&&(qe="warning");let sn=Po?Zo.t("Slippage Error"):Zo.t("Slippage Warning");return ot&&(sn=Zo.t("Bridge Limit Error")),{swapper:{displayName:Kn(U.swapperId,f)??"",image:U.swapperLogo},from:{token:{displayName:U.from.symbol,image:U.from.logo},chain:{displayName:Tt(U.from.blockchain,h)??"",image:U.from.blockchainLogo},price:{value:de===0&&!J?M(o.value,6,6):M(U.fromAmount,6,6),usdValue:M((U.from.usdPrice??0)*parseFloat(U.fromAmount),4,4),realValue:de===0?o.value:U.fromAmount,realUsdValue:new Rl(U.from.usdPrice??0).multipliedBy(U.fromAmount).toString()}},to:{token:{displayName:U.to.symbol,image:U.to.logo},chain:{displayName:Tt(U.to.blockchain,h)||"",image:U.to.blockchainLogo},price:{value:M(U.toAmount,6,6),usdValue:M((U.to.usdPrice??0)*parseFloat(U.toAmount),4,4),realValue:U.toAmount,realUsdValue:new Rl(U.to.usdPrice??0).multipliedBy(U.toAmount).toString()}},state:qe,alerts:Po||ti?F.createElement(eg,{dense:d},F.createElement(kb,{variant:"alarm",type:Po?"error":"warning",title:sn,id:"widget-quote-footer-step-alarm-alert",footer:F.createElement(tg,null,ot&&F.createElement("div",null,F.createElement($n,{size:"xsmall",variant:"body",color:"neutral900"},i.fromAmountRangeError),F.createElement(Dn,{direction:"vertical",size:2}),F.createElement($n,{size:"xsmall",variant:"body",className:"from-amount-text",color:"neutral900"},Zo.t({id:"Yours: {amount} {symbol}",values:{amount:M(U.fromAmount,6,6),symbol:U?.from.symbol}}))),(uo||Gn)&&!ot&&F.createElement("div",null,F.createElement($n,{size:"xsmall",variant:"body",color:"neutral900"},Zo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...i?.type===4&&{minRequiredSlippage:i.recommendedSlippages?.[de]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[de]}}})),F.createElement(Dn,{direction:"vertical",size:2}),F.createElement($n,{size:"xsmall",variant:"body",color:"neutral900"},Zo.t({id:"Yours: {userSlippage}",values:{userSlippage:y}}))))})):void 0,time:Yn(U.estimatedTimeInSeconds),fee:M(qs(U,g),2,2),internalSwaps:U.internalSwaps?N(U.internalSwaps):void 0}}),"getQuoteSteps"),O=N(e?.swaps??[]),q=O.length,j=m||W(),ee=Fd(t.quote.tags||[]),P=!!u,Z=pi(e?.swaps),Y=Yn(Z),pe=_i(e?.swaps??[],g),Ee=M(pe,2,2),Kt=pe.gte(new Rl(Ad)),be=Z/Wd>=Nd,He=ga(null),Xe=Jl(o.value,He),St=ga(null),ct=Jl(n.value,St),B=ga(null),V=Jl(A,B),Q=O[q-1],X=O[0];return!X||!Q?null:d?F.createElement(vb,{selected:c,fee:Ee,time:Y,tooltipContainer:Do(),steps:O,tags:ee,campaignTag:b?.campaignTag,id:"widget-quote-full-expanded-quote-container",quoteCost:F.createElement(jl,{quote:e,fullExpandedMode:!0,time:Y,feeWarning:Kt,timeWarning:be,showModalFee:p,steps:q}),percentageChange:E,warningLevel:L,outputPrice:{value:I,usdValue:A,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(ag,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:sg()},!l&&ee.length?F.createElement(F.Fragment,null,F.createElement(fg,null,ee.map((G,J)=>{let U=`${G.value}_${J}`;return F.createElement(F.Fragment,{key:U},G.value=="CAMPAIGN"&&b?.campaignTag?F.createElement(wb,{routeTag:G,...b.campaignTag}):F.createElement(Eb,{label:G.label,value:G.value}),F.createElement(Dn,{size:4,direction:"horizontal"}))})),F.createElement(ia,null),!P&&F.createElement(Dn,{size:4})):null,F.createElement("div",{id:"portal-root",className:lg()},F.createElement(jl,{quote:e,time:Y,feeWarning:Kt,timeWarning:be,showModalFee:p,steps:q}),P&&F.createElement(ig,{onClick:G=>{G.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement($n,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Zo.t("See All Routes")))),s==="basic"&&F.createElement(mg,null,F.createElement(Gl,{ref:He,size:"small",variant:"body"},o.value),Xe&&F.createElement(Zl,{content:o.value,container:j,open:o.value?void 0:!1},F.createElement(Yl,{size:12,color:"gray"})),F.createElement(ql,{size:"small",variant:"body"},O[0]?.from.token.displayName),F.createElement($n,{size:"small",variant:"body"},"="),F.createElement(Gl,{ref:St,size:"small",variant:"body"},n.value),ct&&F.createElement(Zl,{content:n.value,container:j,open:n.value?void 0:!1},F.createElement(Yl,{size:12,color:"gray"})),F.createElement(ql,{size:"small",variant:"body"},Q?.to.token.displayName),F.createElement(Dn,{size:2,direction:"horizontal"}),F.createElement(gg,{ref:B,color:"$neutral600",size:"xsmall",variant:"body"},`($${A})`),V&&F.createElement(Zl,{content:n.usdValue,container:j},F.createElement(Yl,{size:12,color:"gray"}))),s==="list-item"&&F.createElement(xb,{id:"widget-quote-token-amount-container",tooltipContainer:j,type:"output",direction:"vertical",price:{value:I,usdValue:A,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:Q.to.token.displayName,image:Q.to.token.image},chain:{image:Q.to.chain.image},percentageChange:E,warningLevel:L}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(kr,{from:X.from,to:Q.to,percentageChange:E,warningLevel:L}),F.createElement(Dn,{size:4}))),F.createElement(ng,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},F.createElement(Ng,{type:s,quoteRef:v,selected:c,setExpanded:w,container:j,expanded:k,steps:O}),F.createElement(ug,{open:k},F.createElement(dg,null),F.createElement("div",{className:rg()},O.map((G,J)=>{let U=`item-${J}`;return F.createElement(bb,{type:"quote-details",className:"widget-quote-step-details-container",key:U,tooltipContainer:j,step:G,hasSeparator:J!==O.length-1,state:G.state})})))))}r(ec,"Quote");import{Divider as Pb,Skeleton as Lb}from"@rango-dev/ui";import ro from"react";import{darkTheme as Ab,styled as ha}from"@rango-dev/ui";var Wg=ha("div",{$$color:"$colors$neutral100",[`.${Ab} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Pg=ha("div",{paddingTop:"$2"}),Lg=ha("div",{paddingLeft:"$8"}),Bg=ha("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Hg,Divider as Wt,Skeleton as ft}from"@rango-dev/ui";import K from"react";import{css as Nb,styled as no}from"@rango-dev/ui";var tc=no("div",{display:"flex"}),_g=no("div",{padding:"$10 $0 $20"}),Mg=no("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Dg=no("div",{display:"flex",justifyContent:"start",alignItems:"center"}),$g=no("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Fg=no("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Og=no("div",{width:"65%",display:"flex",justifyContent:"start"}),Ug=no("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),zg=no("div",{padding:"$15 $0 $15 $0"}),Qg=Nb({display:"flex",justifyContent:"space-between",alignItems:"center"});function Er(t){let{type:e,tagHidden:o=!0}=t,n=K.createElement($g,null,K.createElement(Og,null,K.createElement(Hg,{loading:!0,size:"medium"}),K.createElement(Wt,{size:8,direction:"horizontal"}),K.createElement(Ug,null,K.createElement(ft,{height:10,width:60,variant:"rounded"}),K.createElement(Wt,{size:4}),K.createElement(ft,{height:15,variant:"rounded"}))),K.createElement(ft,{height:12,width:64,variant:"rounded"})),i=e==="basic"&&!o;return K.createElement("div",null,!o&&K.createElement(K.Fragment,null,K.createElement(tc,null,K.createElement(ft,{width:65,height:20,variant:"rounded"}),K.createElement(Wt,{size:4,direction:"horizontal"}),K.createElement(ft,{width:65,height:20,variant:"rounded"}),K.createElement(Wt,{size:4,direction:"horizontal"}),K.createElement(ft,{width:65,height:20,variant:"rounded"})),K.createElement(ia,null),!i&&K.createElement(Wt,{size:4})),K.createElement("div",{className:Qg()},K.createElement(tc,null,K.createElement(ft,{width:60,height:10,variant:"rounded"}),K.createElement(Wt,{size:4,direction:"horizontal"}),K.createElement(ft,{width:60,height:10,variant:"rounded"}),K.createElement(Wt,{size:4,direction:"horizontal"}),K.createElement(ft,{width:60,height:10,variant:"rounded"})),i&&K.createElement(ft,{width:85,height:24,variant:"rounded"})),e==="basic"&&K.createElement(_g,null,K.createElement(ft,{height:15,width:148,variant:"rounded"})),e==="list-item"&&K.createElement(Mg,null,K.createElement(Dg,null,K.createElement(Hg,{loading:!0,size:"medium"}),K.createElement(Wt,{direction:"horizontal",size:4}),K.createElement(ft,{height:15,width:150,variant:"rounded"})),K.createElement(Wt,{size:10}),K.createElement(ft,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&K.createElement(K.Fragment,null,K.createElement(Wt,{size:4}),K.createElement(zg,null,n,K.createElement(Fg,null),n),K.createElement(Wt,{size:12})))}r(Er,"QuoteSummarySkeleton");import{ChainToken as jg,Divider as nc,NextIcon as Wb,Skeleton as ya}from"@rango-dev/ui";import Be from"react";import{styled as br}from"@rango-dev/ui";var qg=br("div",{display:"flex",alignItems:"start"}),Gg=br("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),oc=br("div",{display:"flex",alignItems:"center",flexGrow:1}),Vg=br("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Kg=br("div",{display:"flex",alignItems:"center"});function zt(t){let{separator:e=!0}=t;return Be.createElement(Be.Fragment,null,Be.createElement(Kg,null,Be.createElement(ya,{height:22,width:22,variant:"circular"}),Be.createElement(nc,{direction:"horizontal",size:8}),Be.createElement(ya,{height:15,width:148,variant:"rounded"})),Be.createElement(qg,null,Be.createElement(Bg,{hideSeparator:!e}),Be.createElement(Gg,{extraSpace:e},Be.createElement(oc,null,Be.createElement(jg,{size:"small",loading:!0}),Be.createElement(nc,{direction:"horizontal",size:8}),Be.createElement(ya,{height:12,variant:"rounded"})),Be.createElement(Vg,null,Be.createElement(Wb,{color:"gray",size:16})),Be.createElement(oc,null,Be.createElement(jg,{size:"small",loading:!0}),Be.createElement(nc,{direction:"horizontal",size:8}),Be.createElement(ya,{height:12,variant:"rounded"})))))}r(zt,"StepSkeleton");function xr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return ro.createElement(Wg,{expanded:o,rounded:e!=="basic"},ro.createElement(Er,{type:e,tagHidden:n}),ro.createElement(Pg,null,ro.createElement(Lb,{height:15,variant:"rounded"})),o&&ro.createElement(Lg,null,ro.createElement(Pb,{size:24}),ro.createElement(zt,null),ro.createElement(zt,null),ro.createElement(zt,{separator:!1})))}r(xr,"QuoteSkeleton");function Jo(t){let{quote:e,type:o,loading:n,error:i,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:d,onClickAllRoutes:m,fullExpandedMode:h=!1,container:g}=t,{inputAmount:f,inputUsdValue:T}=z()(),C=e?.outputAmount?new Bb(e?.outputAmount):null,y=e?it(e):null,w=!(i&&(i.type===0||i.type===1))&&e&&!n;return n?Sa.createElement(zl,null,Sa.createElement(xr,{tagHidden:c,type:o,expanded:s})):w?Sa.createElement(zl,{onClick:()=>l?.(e),id:d},Sa.createElement(ec,{quote:e,error:i,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:h,input:{value:f,usdValue:T?.toString()??""},output:{value:C?.toString()??"",usdValue:y?.toString()??""}})):null}r(Jo,"QuoteInfo");import{warn as $b}from"@rango-dev/logging-core";import{calculatePendingSwap as Fb}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Ob}from"react";import{useRef as _b,useState as Mb}from"react";var Db=2e3;function Ta({request:t}){let[e,o]=Mb(!1),n=_b(null),i=r(()=>n.current?.abort(),"cancelFetch"),a=r(async c=>(await new Promise(l=>setTimeout(l,Db)),await s(c,!1)),"retryFetch"),s=r(async(c,l=!1)=>{i(),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:i}}r(Ta,"useFetch");function Xg(){let{fetch:t,loading:e,cancelFetch:o}=Ta({request:async(n,i)=>await dt().confirmRoute(n,i)});return{fetch:t,loading:e,cancelFetch:o}}r(Xg,"useFetchConfirmQuote");function Ca(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=rc(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}r(Ca,"throwErrorIfResponseIsNotValid");function rc(t){if(Hd(t)){let{swap:n,fromAmountRangeError:i,recommendation:a}=qd(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:i}}:null}let o=Kd(t);if(o){let n=Mi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}r(rc,"getQuoteError");function Yg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:i,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=bn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=Yd(e,i,n.blockchains);return p.length===0||(c.balance={messages:p}),c}r(Yg,"generateWarnings");function ka(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}}r(ka,"handleQuoteErrors");function ic(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:i,selectedQuote:a,customDestination:s,resetAlerts:c}=z()(),{slippage:l,customSlippage:p}=S(),u=S().getDisabledLiquiditySources(),d=S().blockchains(),m=S().tokens(),{findToken:h}=S(),{swapMode:g}=rt(),f=p||l,{fetch:T,cancelFetch:C,loading:y}=Xg();return Ob(()=>C,[]),{loading:y,fetch:r(async w=>{let v=w.selectedWallets,I=w?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=v.reduce((x,E)=>(x[E.chain]=E.address,x),{}),b={requestId:a?.requestId||"",selectedWallets:A,destination:I||void 0};try{return await T(b,!0).then(x=>{let{result:E}=x;if(!E)throw new Error(x.error??"Error fetching updated quote");Ca({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let L={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};i(L);let N={slippage:f.toString(),disabledSwappersGroups:u},O=Yg({previousQuote:a??void 0,currentQuote:L,meta:{blockchains:d},selectedWallets:v,userSlippage:f,inputUsdValue:n,findToken:h});c();let q=!!O.balance,j=Fb({inputAmount:o.toString(),bestRoute:E,wallets:Xd(v),settings:N,validateBalanceOrFee:!q,meta:{blockchains:d,tokens:m},swapMode:g});return{quote:L,swap:j,error:null,warnings:O}})}catch(x){let E=ka(x);return E.type!==2&&$b(new Error("confirm swap error"),{tags:{...E,type:Je[E.type],initialQuote:a,requestBody:b}}),{swap:null,error:E,warnings:null}}},"fetch"),cancelFetch:C}}r(ic,"useConfirmSwap");function Zg(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}r(Zg,"toNumberOrNull");function Fn(t){let e=t.swaps[0],o=t.swaps[t.swaps.length-1],n=Ho(t),i=it(t);return{routeId:t.requestId,sourceChain:e?.from.blockchain??"",destinationChain:o?.to.blockchain??"",sourceTokenSymbol:e?.from.symbol??"",sourceTokenAddress:e?.from.address??null,destinationTokenSymbol:o?.to.symbol??"",destinationTokenAddress:o?.to.address??null,sourceTokenAmount:Zg(t.requestAmount),destinationTokenAmount:Zg(t.outputAmount),inputAmountUsd:n?n.toNumber():null,outputAmountUsd:i?i.toNumber():null}}r(Fn,"buildSwapEstimatePayload");var Xb=Hb("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Jg}`]:{width:"$48",height:"$48"}}),Yb=lc({flexGrow:1,paddingRight:"$10"}),Zb=lc({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Jb=lc({display:"flex",justifyContent:"space-between",alignItems:"center"});function Rg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:i,quoteWarningsConfirmed:a}=z()(),s=jb(),[c,l]=Ir(""),p=!n,[u,d]=Ir(!1),[m,h]=Ir(!1),{isActiveTab:g}=re(),f=S().getDisabledLiquiditySources(),T=Kb(f),{manager:C}=Ub(),{fetch:y,loading:k,cancelFetch:w}=ic(),[v,I]=Ir({swap:null,error:null,warnings:null}),[A,b]=Ir(!1),x=r(async({selectedWallets:P,customDestination:Z})=>{let Y=await y?.({selectedWallets:P,customDestination:Z});return I(Y),Y},"onConfirmSwap"),E=r(async()=>{if(v.swap&&n)try{await C?.create("swap",{swapDetails:v.swap},{id:v.swap.requestId});let P=`../${$.swaps}/${v.swap.requestId}`;s(P,{replace:!0}),setTimeout(()=>{e("")},0)}catch(P){l("Error: "+P?.message)}},"addNewSwap"),L=r(async()=>{h(!0),await E(),h(!1)},"onConfirm"),N=r(async()=>{v.warnings?.quote&&Md(v.warnings.quote)&&!a?b(!0):(t&&te({type:"swapStarted",payload:{...Fn(t),stepCount:t.swaps.length}}),await L())},"onStartConfirmSwap"),O=r(async()=>{I({error:null,swap:null,warnings:null}),y({selectedWallets:o,customDestination:i}).then(P=>{I(P)}).catch(P=>console.error(P))},"onRefresh");wa(()=>{!!T.current.length&&!f.length&&O(),T.current=f},[f.length]),wa(()=>{p&&w()},[p]),wa(()=>{p&&d(p)},[p]),wa(()=>{p||y({selectedWallets:o,customDestination:i}).then(P=>I(P)).catch(P=>console.error(P))},[]),Vb(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=v.warnings?.quote??null,j=v.error,ee=[];if(c&&ee.push($e.createElement(zb,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||j){let P=`../${$.settings}`;ee.push($e.createElement(Cr,{warning:q,error:j,couldChangeSettings:!1,refetchQuote:O,skipAlerts:j?.type===4||q?.type===2,showWarningModal:A,confirmationDisabled:!g,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await E()},onChangeSettings:()=>s(P)}))}return $e.createElement(se,{header:{title:ac.t("Confirm Swap"),onWallet:()=>{let P=`../${$.wallets}`;s(P)}},footer:$e.createElement(Xb,null,$e.createElement("div",{className:Yb()},$e.createElement(Qb,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||m,disabled:!!v.error||!g,onClick:N},ac.t("Start Swap"))),$e.createElement(Jg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||m,disabled:!g,onClick:d.bind(null,!0)},$e.createElement(Gb,{size:24})))},u&&$e.createElement(Bf,{open:u,onClose:()=>d(!1),onCancel:w,loading:k,onCheckBalance:x}),$e.createElement(ce,null,$e.createElement("div",{className:Jb()},$e.createElement(qb,{variant:"title",size:"small"},ac.t("You get")),$e.createElement("div",{className:Zb()},$e.createElement(Hi,{onClick:!k&&!u&&!A?O:void 0}))),$e.createElement(sc,{size:"12"}),xm(ee.map((P,Z)=>({element:P,key:`alert-${Z}`})),$e.createElement(sc,{size:10})),ee.length>0?$e.createElement(sc,{size:10}):null,$e.createElement(Jo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:v.error,loading:k,warning:v.warnings?.quote??null})))}r(Rg,"ConfirmSwapPage");import{i18n as ao}from"@lingui/core";import{Button as Cc,CustomTokensZeroStateDarkIcon as Sx,CustomTokensZeroStateIcon as Tx,DeleteIcon as Cx,Divider as Lr,IconButton as kx,MessageBox as wx,NotFound as vx,styled as wc}from"@rango-dev/ui";import Se,{useState as kc}from"react";import{useNavigate as Ex}from"react-router-dom";import{CloseIcon as Rb,IconButton as ex,SearchIcon as tx,TextField as ox}from"@rango-dev/ui";import On from"react";import{styled as eh}from"@rango-dev/ui";var th=eh("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),oh=eh("div",{width:"100%","& ._text-field":{paddingLeft:"$10","& input":{paddingLeft:"$2",paddingTop:"$12",paddingBottom:"$12"}}});function Pt(t){let{variant:e,fullWidth:o,color:n,size:i,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...d}=t,m=s.length?On.createElement(ex,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},On.createElement(Rb,{color:"gray",size:10})):null;return p&&(m=p),On.createElement(oh,null,On.createElement(ox,{prefix:On.createElement(th,null,On.createElement(tx,{color:"black"})),id:u,suffix:m,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:i,value:s,onChange:a,...d}))}r(Pt,"SearchInput");import{i18n as Tc}from"@lingui/core";import{Button as ax,CustomTokenWarning as sx,darkTheme as fh,Divider as io,ExternalLinkIcon as lx,Image as cx,ListItem as px,NotFound as ux,PinIcon as dx,Skeleton as Ro,Typography as Wr,VirtualizedList as mx}from"@rango-dev/ui";import _,{useState as fx}from"react";import{useTranslation as gx}from"react-i18next";import{Divider as dh,ListItem as ix,Skeleton as Nr}from"@rango-dev/ui";import Lt from"react";import{css as Un,darkTheme as cc,ImageContainer as nx,ListItemButton as rx,styled as st,Typography as nh}from"@rango-dev/ui";var pc=Un({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),uc=Un({position:"relative",height:12,width:"30%",maxWidth:"150px"}),dc=Un({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),mc=Un({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${cc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),fc=Un({}),gc=Un(),rh=st("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),hc=st("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),va=st("ul",{flexGrow:1,height:"100%",padding:0,margin:0,display:"flex",flexDirection:"column",listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${uc}`]:{[`& .${mc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${fc}`]:{bottom:"-15px"},[`& .${pc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${dc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),ih=st(rx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),yc=st("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Sc=st(nh,{}),ah=st("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${gc}`]:{$$color:"$colors$neutral600",[`.${cc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ar=st("div",{display:"flex",alignItems:"end",flexDirection:"column"}),$V=st("div",{display:"flex",alignItems:"center"}),sh=st("div",{position:"relative",[`& ${nx}`]:{borderRadius:"$xm",overflow:"hidden"}}),lh=st("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),ch=st(nh,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),ph=st("a",{"& svg:hover":{color:"$colors$info"}}),uh=st("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":{[`.${cc} &`]:{color:"$foreground"}}}});function mh(t){return Lt.createElement(va,null,Array.from(Array(t.size),(e,o)=>Lt.createElement(ix,{key:o,hasDivider:!0,start:Lt.createElement(Nr,{variant:"circular",width:35,height:35}),end:Lt.createElement(Ar,null,Lt.createElement(Nr,{variant:"text",size:"large",width:70}),Lt.createElement(dh,{size:4}),Lt.createElement(Nr,{variant:"text",size:"medium",width:50})),title:Lt.createElement("div",null,Lt.createElement(Nr,{variant:"text",size:"large",width:90}),Lt.createElement(dh,{size:4}),Lt.createElement(Nr,{variant:"text",size:"medium",width:90}))})))}r(mh,"LoadingTokenList");var hx=20,yx=r(t=>{let{address:e,name:o,url:n,token:i,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return _.createElement("div",{className:uc()},o?_.createElement("div",{className:pc()},o):_.createElement(hc,{className:dc()},_.createElement(Wr,{variant:"title",size:"xmedium"},i.symbol),_.createElement(io,{direction:"horizontal",size:4}),_.createElement(yc,{css:a},_.createElement(Sc,{variant:"body",size:"xsmall",css:s},i.blockchain))),!!e&&_.createElement("div",{className:`${mc()} ${!o&&fc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",_.createElement(io,{size:4,direction:"horizontal"}),_.createElement(ph,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},_.createElement(lx,{size:12}))))},"renderDesc");function Pr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:i,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=S().fetchStatus,u=S().blockchains(),{getBalanceFor:d,fetchingWallets:m}=S(),{isTokenPinned:h}=S(),{setFromToken:g,setToToken:f}=z()(),{t:T}=gx(),C=Ve(),[y,k]=fx(null),w=r(()=>{c==="source"?g({token:y,meta:{blockchains:u}}):f({token:y,meta:{blockchains:u}})},"updateToken"),v=r(()=>{w(),C()},"handleImportToken"),I=r(x=>{if(x.customToken){let{customToken:L,...N}=x;return _.createElement(ax,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:r(q=>{q.stopPropagation(),k({...N,warning:!0})},"handleClick")},_.createElement(Wr,{variant:"body",size:"xsmall",color:"background"},T("import")))}let E=fi(d(x));return s?s(x):m?_.createElement(Ar,null,_.createElement(Ro,{variant:"text",size:"large",width:70}),_.createElement(io,{size:4}),_.createElement(Ro,{variant:"text",size:"medium",width:50})):E&&_.createElement(ah,null,_.createElement(ch,{variant:"title",size:"small"},E.amount),_.createElement("div",null),E.usdValue&&_.createElement(Wr,{variant:"body",className:gc(),size:"xsmall"},`$${E.usdValue}`))},"endRenderer"),A=r(()=>_.createElement(mx,{style:{flexGrow:1,minHeight:0},itemContent:x=>{let E=e[x];if(E==="skeleton")return _.createElement(px,{hasDivider:!0,start:_.createElement(Ro,{variant:"circular",width:35,height:35}),end:_.createElement(Ar,null,_.createElement(Ro,{variant:"text",size:"large",width:70}),_.createElement(io,{size:4}),_.createElement(Ro,{variant:"text",size:"medium",width:50})),title:_.createElement("div",null,_.createElement(Ro,{variant:"text",size:"large",width:90}),_.createElement(io,{size:4}),_.createElement(Ro,{variant:"text",size:"medium",width:90}))});let L=u.find(Z=>Z.name===E?.blockchain);if(!L||!E)return null;let N=E.address,O=sl(L.color,"main"),q={$$color:O.main150,[`.${fh} &`]:{$$color:O.main750},backgroundColor:"$$color"},j={$$color:O.main750,[`.${fh} &`]:{$$color:O.main150},color:"$$color"},ee=r(()=>{typeof E!="string"&&!E.customToken&&n?.(E)},"handleClick"),P=N?ri({contractAddress:N,blockchainMeta:L}):void 0;return _.createElement(uh,null,_.createElement(ih,{"tab-index":x,key:`${E.symbol}${N}`,id:`${E.symbol}${N}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:E?.customToken,onClick:ee,start:_.createElement(sh,null,_.createElement(cx,{src:E.image===""?ai:E.image,size:30}),t.type!=="custom-token"&&E&&h(E,t.type)&&_.createElement(lh,null,_.createElement(dx,{size:12,color:"gray"}))),title:E.name||!E.name&&!N?_.createElement(hc,null,_.createElement(Wr,{variant:"title",size:"xmedium"},E.symbol),_.createElement(io,{direction:"horizontal",size:4}),_.createElement(yc,{css:q},_.createElement(Sc,{variant:"body",size:"xsmall",css:j},E.blockchain)),l&&E.warning&&_.createElement(_.Fragment,null,_.createElement(io,{direction:"horizontal",size:4}),_.createElement(sx,{container:W()}))):void 0,description:typeof E!="string"&&L.info&&N&&P?yx({address:N,token:E,customCssForTag:q,customCssForTagTitle:j,name:E.name,url:P}):E.name||void 0,end:I(E)}))},totalCount:e.length,key:`${i}-${o}`}),"renderList"),b=y?Bo(y?.blockchain,u):null;return _.createElement(_.Fragment,null,a&&_.createElement(_.Fragment,null,_.createElement(Wr,{variant:"label",size:"large"},Tc.t("Select Token")),_.createElement(io,{size:4})),_.createElement(rh,null,_.createElement(io,{size:4}),p==="loading"&&_.createElement(mh,{size:hx}),p==="success"&&(e.length?_.createElement(_.Fragment,null,_.createElement(hr,{token:y,address:y?.address??"",blockchain:b??void 0,onImport:v,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),_.createElement(va,{as:"ul"},A())):!!o&&_.createElement(ux,{title:Tc.t("No results found"),description:Tc.t("Try using different keywords")}))))}r(Pr,"TokenList");var bx=wc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),xx=wc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Ix=wc(kx,{"&:hover":{"& svg":{color:"$secondary550"}}});function gh(){let[t,e]=kc(""),{deleteCustomToken:o}=S(),n=S().customTokens(),{fromToken:i,toToken:a,setFromToken:s,setToToken:c}=z()(),{mode:l}=yo({}),p=Ex(),[u,d]=kc(!1),[m,h]=kc(),g=r(y=>{let k=y.target.value;e(k)},"handleSearch"),f=l==="dark",T=n.filter(y=>pt(y.symbol,t)||pt(y.address||"",t)||pt(y.name||"",t)),C=r(()=>{if(m){let y=a?Ct(a):null,k=i?Ct(i):null,w=Ct(m);y===w?c({token:null}):k===w&&s({token:null}),o(m)}d(!1)},"handleDeleteCustomToken");return Se.createElement(se,{header:{title:ao.t("Custom Tokens")}},Se.createElement(ce,null,Se.createElement(bx,null,n.length?Se.createElement(Se.Fragment,null,Se.createElement(Pt,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:ao.t("Search Token"),onChange:g}),Se.createElement(Lr,{size:16}),Se.createElement(Pr,{list:T,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:y=>Se.createElement(Ix,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(y)}},Se.createElement(Cx,{size:12,color:"gray"}))})):Se.createElement(xx,null,Se.createElement(vx,{icon:f?Se.createElement(Sx,{size:200}):Se.createElement(Tx,{size:200}),title:ao.t("No custom tokens"),description:ao.t("press the button to add your custom token")})),Se.createElement(Lr,{size:20}),Se.createElement(Cc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p($.addCustomTokens)},ao.t("Add Custom Token"))),Se.createElement(ie,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:W()},Se.createElement(wx,{title:ao.t("Delete Custom Token"),type:"error",description:ao.t("Are you sure you want to Delete this Token?")},Se.createElement(Lr,{size:40}),Se.createElement(Lr,{size:10}),Se.createElement(Cc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},ao.t("Yes, Delete it")),Se.createElement(Lr,{size:12}),Se.createElement(Cc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},ao.t("No, Continue"))))))}r(gh,"CustomTokensPage");import{i18n as Fe}from"@lingui/core";import{useManager as Kx}from"@rango-dev/queue-manager-react";import{Button as Nc,darkTheme as jx,Divider as Eo,MessageBox as Xx,NotFound as Yx,styled as Wc,Tabs as Zx,Typography as xa}from"@rango-dev/ui";import{TransactionStatus as Mr}from"rango-types";import ne,{useMemo as _h,useState as Dr}from"react";import{useNavigate as Jx}from"react-router-dom";import{FilterIcon as _x,Popover as Mx}from"@rango-dev/ui";import en from"react";import{css as Ax,darkTheme as Ea,IconButton as Nx,styled as Br}from"@rango-dev/ui";var vc=Br("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Ea} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),hh=Br(Nx,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Ea} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Ea} &`]:{backgroundColor:"$neutral"},[`& ${vc}::before`]:{backgroundColor:"$secondary100",[`.${Ea} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),yh=Br("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Sh=Br("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),Th=Ax({display:"flex",justifyContent:"space-between",alignItems:"center"}),Ch=Br("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as kh}from"@lingui/core";import{Button as Wx,Divider as wh,ListItemButton as Px,Radio as Lx,RadioRoot as Bx,Typography as vh}from"@rango-dev/ui";import gt from"react";function Eh(t){let{filterBy:e,onClickItem:o}=t;return gt.createElement(Sh,null,gt.createElement("div",{className:Th()},gt.createElement(vh,{size:"small",variant:"body"},kh.t("Status")),gt.createElement(Wx,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},kh.t("Reset"))),gt.createElement(wh,{size:10}),gt.createElement(Bx,{value:e},gt.createElement(Ch,null,t.list.map((n,i)=>gt.createElement(Px,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=i,id:n.id,title:gt.createElement(gt.Fragment,null,gt.createElement(wh,{direction:"horizontal",size:4}),gt.createElement(vh,{size:"medium",variant:"body"},n.title)),start:gt.createElement(Lx,{value:n.id}),onClick:o})))))}r(Eh,"FilterSelectorContent");function Ec(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:i,open:a}=t;return en.createElement("div",null,en.createElement(Mx,{open:a,align:"end",onOpenChange:o,container:W(),content:en.createElement(Eh,{list:i,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},en.createElement(hh,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},en.createElement(vc,{isSelect:!!n},en.createElement(_x,{size:16,color:"black"}),!!n&&en.createElement(yh,null)))))}r(Ec,"FilterSelector");import{i18n as Fx}from"@lingui/core";import{getCurrentStep as Ox}from"@rango-dev/queue-manager-rango-preset";import{Divider as Nh,GroupedVirtualizedList as Ux,Skeleton as zx,SwapListItem as Wh,Typography as Qx}from"@rango-dev/ui";import et,{useCallback as Ph,useEffect as Hx,useRef as qx,useState as Gx}from"react";function bh(t,e){let o=[],n=0;do{let i=t[n];i&&(o.push(Math.min(i,e)),e-=i),n++}while(e>0&&n<=t.length);return o}r(bh,"calculateGroupsSoFar");import{css as Dx,darkTheme as $x,styled as _r}from"@rango-dev/ui";var bc=Dx(),xh=_r("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),xc=_r("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${bc}`]:{$$color:"$colors$neutral600",[`.${$x} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ic=_r("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Ih=_r("div",{gap:"$10",display:"flex",flexDirection:"column"}),Ah=_r("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var Vx=10;function Ac(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:i}=t,[a,s]=Gx([]),c=qx(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=Ph(bh,[]),m=Ph(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,Vx),s(d(p,c.current)))},[e.length]);if(Hx(()=>{i||m()},[i,m]),i){let h=[1,2];return et.createElement(et.Fragment,null,[h,h].map((f,T)=>et.createElement(xc,{key:T},et.createElement(Ic,null,et.createElement(zx,{variant:"text",width:60,size:"small"}),et.createElement(Nh,{size:16})),et.createElement(Nh,{size:4}),et.createElement(Ih,null,f.map((y,k)=>et.createElement(Wh,{isLoading:!0,key:k}))))))}return et.createElement(Ux,{style:{flexGrow:1,minHeight:0},endReached:()=>{c.current<e.length&&m()},groupCounts:a,groupContent:h=>et.createElement(xc,null,et.createElement(Ic,null,et.createElement(Qx,{variant:"label",size:"medium",className:bc()},u[h]))),itemContent:(h,g)=>{let f=l[h];if(!f)return null;let T=Ox(f),C=f.steps[0],y=f.steps[f.steps.length-1];return!C||!y?null:et.createElement(xh,{key:f.requestId},et.createElement(Wh,{className:"widget-history-group-list-swap-item-btn",requestId:f.requestId,creationTime:f.creationTime,status:f.status,onClick:o,currentStep:T,tooltipContainer:W(),onlyShowTime:u[g]===Fx.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:M(f.inputAmount,6,6),realAmount:f.inputAmount},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:M(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:y.outputAmount||y.expectedOutputAmountHumanReadable||""}}}))}})}r(Ac,"HistoryGroupedList");import{i18n as ba}from"@lingui/core";import Lh from"dayjs";var Bh=r(t=>{let e=new Map([["today",{title:ba.t("Today"),swaps:[]}],["week",{title:ba.t("This week"),swaps:[]}],["month",{title:ba.t("This month"),swaps:[]}],["year",{title:ba.t("This year"),swaps:[]}]]);function o(l,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}r(o,"addYearsToOutput");let n=Lh();t.forEach(l=>{let p=Number(l.creationTime),u=Lh(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 i=Array.from(e.values()).filter(l=>l.swaps.length>0),a=i.flatMap(l=>l.swaps),s=i.map(l=>l.swaps.length),c=i.map(l=>l.title);return{swaps:a,groupCounts:s,groups:c}},"groupSwapsByDate");var Rx=Wc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%",minHeight:0,flexGrow:1}),eI=Wc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),tI=Wc("div",{"._typography":{color:"$neutral700",[`.${jx}&`]:{color:"$neutral900"}}}),oI=r((t,e)=>t?.length?t.filter(o=>Dt(o.fromBlockchain,e)||Dt(o.toBlockchain,e)||Dt(o.toSymbol,e)||Dt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Mh(){let t=Jx(),{manager:e,state:o}=Kx(),n=Et(e).map(({swap:b})=>b),[i,a]=Dr(""),[s,c]=Dr(!1),l=!o.loadedFromPersistor,[p,u]=Dr(""),[d,m]=Dr(!1),[h,g]=Dr("all"),f=r(b=>{let x=b.target.value;a(x)},"handleSearch"),{isMultiMode:T}=rt(),C=[{id:Mr.SUCCESS,title:Fe.t("Complete")},{id:Mr.RUNNING,title:Fe.t("Running")},{id:Mr.FAILED,title:Fe.t("Failed")}],y=[{id:"all",title:Fe.t("All")},{id:"swap",title:Fe.t("Swap")},{id:"refuel",title:Fe.t("Refuel")}],k=_h(()=>!i&&!p&&h==="all"?n:n.filter(b=>{let{inputAmount:x,status:E,steps:L,requestId:N,mode:O}=b;return(!i||Dt(x,i)||Dt(E,i)||oI(L,i)||Dt(N,i))&&(!p||p===E)&&(h==="all"?!0:h==="swap"?!O||O==="swap":h==="refuel"?O==="refuel":!1)}),[n,i,p,h]),w=!k?.length&&!l,v=r(()=>m(!1),"onCloseModal"),I=r(async()=>{try{await e?.clearQueue(),m(!1)}catch(b){console.log(b)}},"onClear"),A=_h(()=>!n.some(b=>b.status===Mr.SUCCESS||b.status===Mr.FAILED),[n]);return ne.createElement(se,{header:{title:Fe.t("History"),suffix:ne.createElement(So,null,ne.createElement(Nc,{id:"widget-history-clear-btn",disabled:A,variant:"ghost",size:"xsmall",onClick:()=>m(!0)},ne.createElement(xa,{size:"medium",variant:"label",color:"error"},Fe.t("Clear"))))}},ne.createElement(ce,null,ne.createElement(eI,null,ne.createElement(Pt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Fe.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:f,style:{height:36},value:i}),ne.createElement(Eo,{size:10,direction:"horizontal"}),ne.createElement(Ec,{filterBy:p,open:s,onOpenChange:b=>c(b),onClickItem:b=>u(b),list:C})),ne.createElement(Eo,{size:"16"}),T&&!l&&ne.createElement(ne.Fragment,null,ne.createElement(Zx,{items:y,onChange:b=>g(b.id),value:h,type:"secondary"}),ne.createElement(Eo,{size:"12"})),ne.createElement(Rx,null,w&&ne.createElement(Ah,null,ne.createElement(Eo,{size:32}),ne.createElement(Yx,{title:i?Fe.t("No results found"):Fe.t("No transactions"),titleColor:i?void 0:"$info",hasIcon:!!i,description:i?Fe.t("Try using different keywords"):Fe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!w&&ne.createElement(Ac,{list:k,onSwapClick:t,groupBy:Bh,isLoading:l}))),ne.createElement(ie,{open:d,onClose:v,id:"widget-history-clear-modal",container:W()},ne.createElement(Eo,{size:20}),ne.createElement(Xx,{type:"warning",title:Fe.t("Clear Transaction History"),description:ne.createElement(tI,null,ne.createElement(xa,{variant:"body",size:"medium"},Fe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ne.createElement(Eo,{size:"24"}),ne.createElement(xa,{variant:"body",size:"small"},Fe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ne.createElement(Eo,{size:30}),ne.createElement(Nc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:I},Fe.t("Yes, Clear the history")),ne.createElement(Eo,{size:10}),ne.createElement(Nc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:v},ne.createElement(xa,{variant:"title",size:"medium",color:"primary"},Fe.t("No, Cancel")))))}r(Mh,"HistoryPage");import{i18n as py}from"@lingui/core";import{Button as FI,Divider as qc,styled as OI,WarningIcon as UI}from"@rango-dev/ui";import zI from"bignumber.js";import Ce,{useEffect as uy,useState as dy}from"react";import{useNavigate as QI}from"react-router-dom";import{i18n as $h}from"@lingui/core";import{Alert as rI,Divider as Pc,NoRouteIcon as iI,Typography as aI}from"@rango-dev/ui";import tn from"react";import{styled as nI}from"@rango-dev/ui";var Dh=nI("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Lc(){let{fromToken:t,toToken:e}=z()();return!!t&&!!e&&jt(t,e)?tn.createElement(Dh,null,tn.createElement(Pc,{size:10}),tn.createElement(iI,{size:24,color:"gray"}),tn.createElement(Pc,{size:4}),tn.createElement(aI,{variant:"title",size:"small"},$h.t("No Routes Found")),tn.createElement(Pc,{size:4}),tn.createElement(rI,{title:$h.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}r(Lc,"SameTokensWarning");import{Alert as sI,Button as lI}from"@rango-dev/ui";import Oh from"react";import{i18n as Ia}from"@lingui/core";function Fh(t){let e=null;return t===Si?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:Ia.t("Reset"),title:Ia.t("Slippage cannot be set lower than 0.01%.")},e):t>dn?(e={alertType:"warning",action:"change-settings",actionButtonTitle:Ia.t("Change"),title:Ia.t("Caution, your slippage is high!")},e):null}r(Fh,"makeAlerts");function Uh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:i}=S(),{onChangeSettings:a}=t,c=Fh(o!==null?o:e),l=r(p=>{p==="reset-slippage"?(n(yi),i(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Oh.createElement(sI,{title:c.title,type:c.alertType,variant:"alarm",action:Oh.createElement(lI,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}r(Uh,"SlippageWarningsAndErrors");import{i18n as mI}from"@lingui/core";import{IconButton as fI,ReverseIcon as gI,Skeleton as hI,Tooltip as yI,Typography as $r}from"@rango-dev/ui";import ht from"react";import Aa from"bignumber.js";function Qh(t){let{error:e,isDarkTheme:o,warning:n}=t,{quoteError:i,slippageError:a}=e,{quoteWarning:s,slippageWarning:c}=n,l=!!a||i?.type===4,p=!!c||s?.type===2;return l?"$error500":p?"$warning500":o?"$neutral600":"$neutral700"}r(Qh,"getSlippageColor");function Hh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new Aa(e),i=new Aa(o),a=n.dividedBy(i),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()}}r(Hh,"getUsdExchangeRate");function qh(t,e){let o=new Aa(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,Aa.ROUND_DOWN).toFormat(2)}`}r(qh,"formatTokenValueInUsd");import{darkTheme as uI,styled as _c,Typography as dI}from"@rango-dev/ui";var Gh=_c("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),Vh=_c("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${uI} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Mc=_c(dI,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Dc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:i}=S(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:m}=yo({}),h=gn(d),g=m==="dark",f=n==="default",T={quoteError:a,slippageError:h?.type==="error"?h.message:null},C={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},y=p?.swaps[0]?.from||c,k=p?.swaps[p?.swaps.length-1]?.to||l,w=f?y:k,v=f?k:y,I=Number(f?p?.outputAmount:p?.requestAmount),A=Number(f?p?.requestAmount:p?.outputAmount),b=I||w.usdPrice,x=A||v.usdPrice,{rawValue:E,displayValue:L}=Hh({toTokenUsdPrice:x,fromTokenUsdPrice:b});return ht.createElement(Gh,null,ht.createElement($r,{variant:T||C?"label":"body",size:T||C?"medium":"small",color:Qh({error:T,warning:C,isDarkTheme:g})},mI.t("Slippage:")," ",d,"%"),u?ht.createElement(hI,{height:16,width:104,variant:"rounded"}):b&&x&&ht.createElement(Vh,null,ht.createElement($r,{className:"rate-text",variant:"body",size:"small"},"1"),ht.createElement(Mc,{className:"rate-text",variant:"body",size:"small"},v.symbol),ht.createElement(fI,{id:"widget-home-page-change-rate-button",onClick:i},ht.createElement(gI,{size:14,color:"secondary"})),ht.createElement(yI,{container:W(),side:"top",sideOffset:4,content:ht.createElement($r,{className:"rate-text",variant:"body",size:"small"},E)},ht.createElement($r,{className:"rate-text",variant:"body",size:"small"},L)),ht.createElement(Mc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&&ht.createElement($r,{color:"neutral600",variant:"body",size:"small"},"~",qh(Number(E),w.usdPrice))))}r(Dc,"SwapMetrics");import{i18n as vI}from"@lingui/core";import{Header as EI}from"@rango-dev/ui";import bo,{useEffect as bI,useState as xI}from"react";import{i18n as TI}from"@lingui/core";import{Divider as Fc,FullExpandedQuote as CI,Typography as kI}from"@rango-dev/ui";import ve from"react";import{styled as $c}from"@rango-dev/ui";var Kh=$c("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),jh=$c("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Xh=$c("div",{width:"146px"});import{i18n as Fr}from"@lingui/core";import{Select as SI}from"@rango-dev/ui";import Yh from"react";function Na(t){let{updateQuotePartialState:e,sortStrategy:o}=z()(),n=[{value:"SMART",label:Fr.t("Smart Routing")},{value:"FEE",label:Fr.t("Lowest Fee")},{value:"SPEED",label:Fr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Fr.t("Maximum Return")},{value:"PRICE",label:Fr.t("Maximum Output")}];return Yh.createElement(Xh,null,Yh.createElement(SI,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:i=>{e("sortStrategy",i.value)},variant:"filled"}))}r(Na,"SelectStrategy");var Zh=3;function Or(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:i,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:d,toToken:m,sortStrategy:h,error:g}=z()(),{slippage:f,customSlippage:T}=S(),{findToken:C}=S(),y=c||W(),k=!!p&&p.results.length,w=T??f,{config:{__UNSTABLE_OR_INTERNAL__:v}}=S(),I=r(x=>{if(!d||!m||!p)return null;let E={requestAmount:p.requestAmount,validationStatus:null,...x};return bn({currentQuote:E,userSlippage:w,findToken:C})},"getQuoteWarning"),A=g?.type===0||g?.type===1,b=p?.results?Bi(h,p?.results):[];return ve.createElement(ve.Fragment,null,a&&ve.createElement(ve.Fragment,null,ve.createElement(jh,null,ve.createElement(kI,{size:"xmedium",variant:"title"},TI.t("Sort by")),ve.createElement(Na,{container:y})),ve.createElement(Fc,{size:"10"})),e&&Array.from({length:Zh},(x,E)=>ve.createElement(ve.Fragment,{key:E},s?ve.createElement(CI,{campaignTag:v?.campaignTag,loading:!0}):ve.createElement(xr,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Zh-1&&ve.createElement(Fc,{size:16}))),!e&&ve.createElement(ve.Fragment,null,k?b.map((x,E)=>{let L=I(x),N=rc(x.swaps),O=b.length-1===E;return ve.createElement(ve.Fragment,{key:x.requestId},ve.createElement(Jo,{id:"widget-quotes-quote-info-container",showModalFee:i,container:y,selected:l?.requestId===x.requestId,tagHidden:!1,quote:{...x,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:N?.options||null,warning:L,fullExpandedMode:s,onClick:q=>{N||u("warning",L),u("error",N?.options||null),o(q)},type:"list-item"}),!O&&ve.createElement(Fc,{size:16}))}):A&&ve.createElement(Kh,null,ve.createElement(Sr,{size:s?"large":"small",error:g,fetch:n}))))}r(Or,"Quotes");import{darkTheme as wI,styled as Jh}from"@rango-dev/ui";var Rh=Jh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${wI} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),ey=Jh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var II=100;function Oc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:i,isVisible:a}=t,[s,c]=xI(!1),l=s?"":"is-hidden",{config:p}=S(),u=p?.variant==="full-expanded",d=Do();return bI(()=>{let m=null;return a?m=setTimeout(()=>{c(!0)},II):(c(!1),m&&clearTimeout(m)),()=>{m&&clearTimeout(m)}},[a]),bo.createElement(Rh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Ki()} widget-expanded-quotes-container`,id:kt.EXPANDED_BOX_ID},bo.createElement(EI,{title:vI.t("Routes"),suffix:bo.createElement(bo.Fragment,null,bo.createElement(Na,{container:d}),bo.createElement(Ko,{container:d,onClickRefresh:i,hidden:["history","notifications","settings"]}))}),bo.createElement(ey,null,bo.createElement(Or,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:Do(),onClickOnQuote:n,fullExpandedMode:u})))}r(Oc,"ExpandedQuotes");import{i18n as sy}from"@lingui/core";import{SwapInput as ly}from"@rango-dev/ui";import PI from"bignumber.js";import Ur from"react";import{ReverseIcon as WI}from"@rango-dev/ui";import zc from"react";import{keyframes as AI,styled as ty}from"@rango-dev/ui";var Uc=450,NI=AI({"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)"}}),oy=ty("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),ny=ty("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${NI} ${Uc}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 Qc(){let t=z().use.switchFromAndTo();return zc.createElement(oy,null,zc.createElement(ny,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Uc),t()}},zc.createElement(WI,{size:12})))}r(Qc,"SwitchFromAndToButton");import{styled as ry}from"@rango-dev/ui";var iy=ry("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),ay=ry("div",{position:"relative"});function Hc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:i}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:d,inputUsdValue:m,outputAmount:h,outputUsdValue:g,selectedQuote:f}=z()(),{swapMode:T}=rt(),{connectedWallets:C,getBalanceFor:y}=S(),k=a?y(a):null,w=fi(k)?.amount??"0",v=k?new PI(k.amount).shiftedBy(-k.decimals):ue,I=!!s&&Au(C,s.name),A=!Hs(f,d,m),b=!Hs(f,d,g),x=!m||!g||!g.gt(0)?null:Jt(m.toString(),g.toString());return Ur.createElement(iy,null,Ur.createElement(ay,null,Ur.createElement(ly,{label:sy.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:w,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:A?void 0:M(m,4,4),realUsdValue:A?void 0:m?.toString(),error:A?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:I,tooltipContainer:W(),onSelectMaxBalance:()=>{let E=v.isGreaterThan(ue)?v.toFixed():"";p(E)},anyWalletConnected:C.length>0}),T==="swap"&&Ur.createElement(Qc,null)),Ur.createElement(ly,{selectionType:T==="swap"?"token":"chain",sharpBottomStyle:!i&&(!!f||e),label:sy.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:M(Jt(m,g),2,2),warningLevel:Rt(x??0),price:{value:M(h,6,6),usdValue:b?void 0:M(g,4,4),realValue:h?.toString(),realUsdValue:b?void 0:g?.toString(),error:b?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:W()}))}r(Hc,"Inputs");import{warn as LI}from"@rango-dev/logging-core";import{useCallback as BI,useEffect as _I,useRef as MI,useState as DI}from"react";function cy(){let{fetch:t,loading:e,cancelFetch:o}=Ta({request:async(n,i)=>await dt().getAllRoutes(n,i)});return{fetch:t,loading:e,cancelFetch:o}}r(cy,"useFetchAllQuotes");var $I=600;function Wa({refetchQuote:t}){let{fetch:e,cancelFetch:o}=cy(),{excludeLiquiditySources:n,routing:i}=S().config,{connectedWallets:a}=S(),c=a.some(be=>be.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:m,sortStrategy:h,resetQuote:g,error:f,warning:T,setSelectedQuote:C,updateQuotePartialState:y}=z()(),{slippage:k,customSlippage:w,affiliatePercent:v,affiliateRef:I,affiliateWallets:A,fetchStatus:b}=S(),x=S().getLiquiditySources(),E=S().getDisabledLiquiditySources(),L=S().excludeLiquiditySources(),{findToken:N}=S(),{swapMode:O}=rt(),[q,j]=DI(!0),ee=MI(u),P=w??k,Y=!l||!p||jt(l,p)||!Zn(u),pe=r(be=>{j(be)},"resetState"),Ee=r(be=>{let{fromToken:He,toToken:Xe,inputAmount:St,liquiditySources:ct,excludeLiquiditySources:B,disabledLiquiditySources:V,slippage:Q,affiliateRef:X,affiliatePercent:G,affiliateWallets:J}=be;if(q||pe(!0),!Y&&He&&Xe){g();let U=jd({fromToken:He,toToken:Xe,inputAmount:St,liquiditySources:ct,excludeLiquiditySources:B,disabledLiquiditySources:V,wallets:a,slippage:Q,affiliateRef:X,affiliatePercent:G,affiliateWallets:J,contractCall:c});fn("experimental",i)&&(U.experimental=!0),fn("avoidNativeFee",i)&&(U.avoidNativeFee=!0),fn("enableCentralizedSwappers",i)&&(U.enableCentralizedSwappers=!0),i?.maxLength&&(U.maxLength=i.maxLength),O==="refuel"&&(U.maxLength=1),e(U).then(de=>{let qe=Bi(h,de.results),ot=$d(m,qe,de.requestAmount);j(!1),y("quotes",de),C(ot),de.results?.length&&ot&&yn({type:"routeRequested",payload:{...Fn(ot),routeCount:de.results.length}}),Ca({diagnosisMessages:de.diagnosisMessages,requestId:ot?.requestId||"",swaps:ot?.swaps});let uo=ot&&bn({currentQuote:ot,userSlippage:P,findToken:N});y("warning",uo)}).catch(de=>{let qe=ka(de);qe.type===0?yn({type:"routeNotFound",payload:{sourceChain:He.blockchain,destinationChain:Xe.blockchain,sourceTokenSymbol:He.symbol,sourceTokenAddress:He.address,destinationTokenSymbol:Xe.symbol,destinationTokenAddress:Xe.address,inputAmountUsd:d?d.toNumber():null}}):qe.type===1&&yn({type:"routeFetchFailed",payload:{sourceChain:He.blockchain,destinationChain:Xe.blockchain,errorCode:String(de?.response?.status??"")}}),(qe.type===0||qe.type===1)&&g(),qe.type!==2&&(y("error",qe),j(!1),LI(new Error("quote error"),{tags:{...qe,type:Je[qe.type],requestBody:U}}))})}},"fetch"),Kt=BI(si(be=>{Ee(be)},$I),[Y]);return _I(()=>{if(!t){j(!1);return}if(b!=="success")return;if(Y){j(!1),(m||f||T)&&g();return}if(!Zn(u)&&d?.eq(0)){pe(!1),o();return}g(),pe(!0);let be=Ee;return ee.current&&ee.current!=u&&(be=Kt),ee.current=u,be({inputAmount:u,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:L,disabledLiquiditySources:E,slippage:P,affiliateRef:I,affiliatePercent:v,affiliateWallets:A,contractCall:c}),o},[b,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,Y,x?.length,n,E.length,P,I,v,c,JSON.stringify(A)]),{fetch:()=>Ee({inputAmount:u,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:L,disabledLiquiditySources:E,slippage:P,affiliateRef:I,affiliatePercent:v,affiliateWallets:A,contractCall:c}),loading:q}}r(Wa,"useSwapInput");var HI=OI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),qI=300;function my(){let t=QI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:i,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:m}=z()(),[h,g]=dy(!1),{isLargeScreen:f,isExtraLargeScreen:T}=pa(),{fetch:C,loading:y}=Wa({refetchQuote:a}),{config:k,fetchStatus:w,connectedWallets:v,customSlippage:I,slippage:A,setSlippage:b,setCustomSlippage:x}=S(),{isActiveTab:E}=re(),[L,N]=dy(!1),O=I!==null?I:A,{swapMode:q}=rt(),j=gn(O),P=Gd({fetchMetaStatus:w,fetchingQuote:y,inputAmount:n,quote:i,anyWalletConnected:v.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),Z=_u(f,T,k?.variant),Y=!!n&&!!e&&!!o&&new zI(n).gt(0)&&!tm(e,o),pe=Y&&w==="success"&&y,Ee=j?.quoteValidation||c,He=(!Z||Z&&l?.results.length)&&(Ee||s),Xe=!!e&&!!o,St=Xe&&!!j,ct=(i||s)&&!L?C:void 0,B=r(J=>{Z&&h?(g(!1),setTimeout(()=>{t(J)},qI)):t(J)},"onHandleNavigation"),V=r(J=>{i?.requestId!==J.requestId&&(i&&yn({type:"routeChanged",payload:{sourceChain:J.swaps[0]?.from.blockchain??"",destinationChain:J.swaps[J.swaps.length-1]?.to.blockchain??"",fromRouteId:i.requestId,toRouteId:J.requestId}}),N(!1),p(J))},"onClickOnQuote"),Q=r(J=>{if(J){if(hi.includes(J)){b(J),x(null);return}x(J)}},"onChangeSlippage"),X=r(J=>{B(J==="from"?$.fromSwap:q==="swap"?$.toSwap:$.toSwap+"/"+$.blockchains)},"handleInputTokenClick");uy(()=>{u(),m("refetchQuote",!0)},[]),uy(()=>{g(Y)},[Y]);let G=r(()=>{P.action==="connect-wallet"?Xu({type:"clickConnectWallet"},()=>{B($.wallets)}):P.action==="confirm-warning"?N(!0):i&&(te({type:"swapInitiated",payload:{...Fn(i),walletConnected:v.length>0}}),B($.confirmSwap))},"handleSwapButtonClick");return Ce.createElement(HI,null,Ce.createElement(se,{height:"auto",footer:Ce.createElement(FI,{id:`widget-swap-${P.action}-btn`,type:"primary",size:"large",disabled:P.disabled||!E,prefix:P.action==="confirm-warning"&&Ce.createElement(UI,null),fullWidth:!0,onClick:G},P.title),header:{onWallet:()=>{B($.wallets)},hasBackButton:!1,title:k.title||(q==="swap"?py.t("Swap"):py.t("Refuel")),suffix:Ce.createElement(Ko,{hidden:Z?["refresh"]:void 0,onClickRefresh:ct,onClickHistory:()=>B($.swaps),onClickSettings:()=>{B($.settings)}})}},Ce.createElement(ce,null,Ce.createElement(Hc,{fetchingQuote:pe,fetchMetaStatus:w,isExpandable:Z,onClickToken:X}),Ce.createElement(qc,{size:"2"}),Z?null:Ce.createElement(Jo,{quote:i,loading:pe,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:Ee,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{m("refetchQuote",!1),B($.routes)}:void 0}),Xe&&Ce.createElement(Ce.Fragment,null,Ce.createElement(qc,{size:8}),Ce.createElement(Dc,{quoteError:s,quoteWarning:Ee,fromToken:e,toToken:o,quote:i,loading:pe})),He?Ce.createElement(Ce.Fragment,null,Ce.createElement(Cr,{warning:Ee,error:s,skipAlerts:!!j,couldChangeSettings:!0,refetchQuote:C,showWarningModal:L,confirmationDisabled:!E,onOpenWarningModal:()=>N(!0),onCloseWarningModal:()=>N(!1),onChangeSlippage:Q,onConfirmWarningModal:()=>{N(!1),d(!0),B($.confirmSwap)},onChangeSettings:()=>B($.settings)})):null,St&&Ce.createElement(Ce.Fragment,null,Ce.createElement(qc,{size:"10"}),Ce.createElement(Uh,{onChangeSettings:()=>B($.settings)})),Ce.createElement(Lc,null))),Z?Ce.createElement(Oc,{loading:pe,onClickOnQuote:V,fetch:C,onClickRefresh:ct,isVisible:h}):null)}r(my,"Home");import{i18n as fy}from"@lingui/core";import{Alert as GI,Divider as VI,List as KI,ListItemButton as jI,Radio as XI,RadioRoot as YI,Typography as ZI}from"@rango-dev/ui";import Qt from"react";function xo(){let{setLanguage:t,language:e,config:o}=S(),n=Uu,i=o?.language||hn;return{activeLanguage:e||i,languages:n,defaultLanguage:i,changeLanguage:a=>t(a||hn),resetLanguage:()=>t(null)}}r(xo,"useLanguage");function gy(){let{activeLanguage:t,changeLanguage:e,languages:o}=xo(),n=Ve(),i=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Qt.createElement(ZI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Qt.createElement(XI,{value:s}),start:Qt.createElement(l,null)}});return Qt.createElement(se,{header:{title:fy.t("Language")}},Qt.createElement(ce,null,Qt.createElement(GI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Qt.createElement(VI,{size:"8"}),Qt.createElement(YI,{value:t},Qt.createElement(KI,{type:Qt.createElement(jI,{title:fy.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:i}))))}r(gy,"LanguagePage");import{i18n as so}from"@lingui/core";import{Button as oA,Checkbox as nA,Image as rA,ListItemButton as iA,NotFound as aA,Typography as sA}from"@rango-dev/ui";import tt,{useState as lA}from"react";import{Checkbox as eA,Skeleton as yy}from"@rango-dev/ui";import Qr from"react";import{styled as Gc}from"@rango-dev/ui";var zr=Gc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Vc=Gc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Kc=Gc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as JI,styled as RI}from"@rango-dev/ui";var hy=RI(JI,{height:61});var tA=30;function jc(){return Qr.createElement(zr,null,Array.from(Array(tA),(t,e)=>Qr.createElement(hy,{hasDivider:!0,key:e,start:Qr.createElement(yy,{variant:"circular",width:35,height:35}),title:Qr.createElement(yy,{variant:"text",size:"large",width:90}),end:Qr.createElement(eA,{checked:!1})})))}r(jc,"LoadingLiquiditySourceList");function Xc({sourceType:t}){let e=S().fetchStatus,o=S().swappers(),n=S().getDisabledLiquiditySources(),[i,a]=lA(""),s=S().toggleLiquiditySource,c=S().isInCampaignMode(),l=Ci(o,n),p={Exchanges:so.t("Exchanges"),Bridges:so.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)),m=d.length===d.filter(y=>y.selected).length,h=t==="Exchanges"?"exchanges":"bridges",g=r(()=>{let y=!m;te({type:"settingsChanged",payload:{setting:"liquiditySource",sourceType:h,changeType:y?"selectAll":"deselectAll",previousSelectedCount:d.filter(k=>k.selected).length,totalCount:d.length}}),d.forEach(k=>{m?s(k.groupTitle):k.selected||s(k.groupTitle)})},"toggleAllSources"),f=d.map(y=>{let{selected:k,groupTitle:w,logo:v,id:I,...A}=y;return{id:`widget-setting-liquidity-source-${gu(I.toLowerCase())}-item-btn`,start:tt.createElement(rA,{src:v,size:22,type:"circular"}),onClick:()=>{c||(te({type:"settingsChanged",payload:{setting:"liquiditySource",sourceType:h,changeType:"individual",sources:[{id:w,enabled:!k}]}}),s(w))},end:tt.createElement(nA,{checked:k,disabled:c}),title:tt.createElement(sA,{variant:"title",size:"xmedium"},so.t(w)),selected:k,groupTitle:w,logo:v,...A}}),T=r(y=>{let k=y.target.value;a(k)},"handleSearch"),C=f;return i&&(C=f.filter(y=>Dt(y.groupTitle,i))),tt.createElement(se,{header:{title:so.t(t),suffix:tt.createElement(Vc,null,tt.createElement(oA,{id:`widget-liquidity-source-${m?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:g},m?so.t("Deselect all"):so.t("Select all")))}},tt.createElement(ce,{view:!0},tt.createElement(Pt,{value:i,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:so.t("Search {sourceType}",{sourceType:p[t]}),onChange:T}),e==="loading"&&tt.createElement(jc,null),!C.length&&i?tt.createElement(Kc,null,tt.createElement(aA,{title:so.t("No results found"),description:so.t("Try using different keywords")})):e==="success"&&tt.createElement(zr,{disabled:c,className:"widget-liquidity-source-list"},C.map(y=>{let{groupTitle:k,...w}=y;return tt.createElement(tt.Fragment,{key:y.id},tt.createElement(iA,{style:{height:"61px"},...w,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}r(Xc,"LiquiditySourcePage");import{i18n as cA}from"@lingui/core";import Pa from"react";import{useNavigate as pA}from"react-router-dom";function Sy(){let t=pA(),e=Ve(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:i,updateQuotePartialState:a,error:s}=z()(),{fetch:c,loading:l}=Wa({refetchQuote:n}),p=r(m=>{i(m),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${$.settings}`,d=`../${$.wallets}`;return Pa.createElement(se,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:cA.t("Routes"),suffix:Pa.createElement(Ko,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Pa.createElement(ce,null,Pa.createElement(Or,{fetch:c,loading:l,onClickOnQuote:p})))}r(Sy,"RoutesPage");import{i18n as by}from"@lingui/core";import{Divider as xy,getCategoriesCount as CA,SelectableCategoryList as kA}from"@rango-dev/ui";import lo,{useMemo as wA,useState as Iy}from"react";import{useNavigate as vA}from"react-router-dom";import{i18n as Yc}from"@lingui/core";import{Divider as fA,Image as gA,ListItemButton as hA,NotFound as yA,Typography as Ey}from"@rango-dev/ui";import yt,{useEffect as SA,useState as TA}from"react";var Ty=r((t,e,o)=>t.filter(n=>li(n.type,o)).filter(n=>pt(n.name,e)||pt(n.displayName,e)),"filterBlockchains");import{ImageContainer as uA,styled as Cy}from"@rango-dev/ui";var ky=Cy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),La=Cy(bl,{padding:0,margin:0,listStyle:"none",[`& ${uA}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as dA,Skeleton as wy}from"@rango-dev/ui";import Ba from"react";var mA=20;function vy(){return Ba.createElement(La,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(mA),t=>Ba.createElement(dA,{key:t,hasDivider:!0,start:Ba.createElement(wy,{variant:"circular",width:35,height:35}),title:Ba.createElement(wy,{variant:"text",size:"large",width:90})})))}r(vy,"LoadingBlockchainList");function Zc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:i,showTitle:a=!0}=t,[s,c]=TA(e),{fetchStatus:l}=S();SA(()=>{c([...Ty(e,o,i)])},[e,o,i]);let p=r(()=>!s.length&&o?yt.createElement(yA,{title:Yc.t("No results found"),description:Yc.t("Try using different keywords")}):yt.createElement(La,{as:"ul",key:`${i}-${o}`,id:"widget-blockchain-list"},s.map(u=>yt.createElement(hA,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:yt.createElement(gA,{src:u.logo,size:30}),title:yt.createElement(Ey,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return yt.createElement(yt.Fragment,null,a&&yt.createElement(yt.Fragment,null,yt.createElement(Ey,{variant:"label",size:"large"},Yc.t("Select Chain")),yt.createElement(fA,{size:4})),yt.createElement(ky,null,l==="loading"&&yt.createElement(vy,null),l==="success"&&p()))}r(Zc,"BlockchainList");function _a(t){let{type:e}=t,o=Ve(),[n,i]=Iy(""),[a,s]=Iy("ALL"),c=z().use.setToBlockchain(),l=z().use.setFromBlockchain(),p=z().use.setToToken(),{fetchStatus:u,findNativeToken:d}=S(),m=vA(),{swapMode:h}=rt(),g=S().blockchains({type:e}),f=S().tokens(),T=wA(()=>pu(g,f),[g.length,f.length]),C=CA(T),y=!t.hideCategory&&C!==1,k=r(w=>{if(e==="custom-token")m(`..?blockchain=${w.name}`,{replace:!0});else{if(te({type:"chainFilterApplied",payload:{side:e==="source"?"from":"to",chain:w.name,filterSource:"expanded"}}),e==="source")l(w);else if(h==="swap")c(w);else{let v=d(w);v&&p({token:v,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return lo.createElement(se,{header:{title:by.t("Select Chain")}},lo.createElement(ce,{view:!0},y&&lo.createElement(lo.Fragment,null,lo.createElement(kA,{setCategory:s,category:a,blockchains:T,isLoading:u==="loading"}),lo.createElement(xy,{size:24})),lo.createElement(Pt,{value:n,autoFocus:!0,placeholder:by.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>i(""),onChange:w=>i(w.target.value)}),lo.createElement(xy,{size:16}),lo.createElement(Zc,{list:T,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:k})))}r(_a,"SelectBlockchainPage");import{i18n as $a}from"@lingui/core";import{Divider as My,Spinner as FA}from"@rango-dev/ui";import Io,{useEffect as OA,useState as UA}from"react";import{useNavigate as zA}from"react-router-dom";import{i18n as ep}from"@lingui/core";import{BlockchainsChip as Ma,Divider as Py,Image as Ly,Skeleton as NA,Tooltip as WA,Typography as tp}from"@rango-dev/ui";import xe from"react";import{useEffect as xA}from"react";var Ay=["ETH"];function Jc(t,e,o){let n=JSON.parse(JSON.stringify(t)),i=[];if(n.sort(EA),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(bA(s)),i=n.splice(a)}return{list:n,more:i}}r(Jc,"prepare");function EA(t,e){let o=Ay,n=o.findIndex(c=>c===t.name),i=o.findIndex(c=>c===e.name),a=n>-1,s=i>-1;return a&&s?n>i?1:-1:a?-1:s?1:0}r(EA,"sortByMostUsedBlockchains");function bA(t){return r(function(o,n){let i=t.findIndex(l=>l===o.name),a=t.findIndex(l=>l===n.name),s=i>-1,c=a>-1;return s&&c?i>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}r(bA,"generateSortByPreferredBlockchainsFor");function Ny(t,e){return!!e.list.find(o=>o.name===t)}r(Ny,"isInVisibleList");function Rc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=S();xA(()=>{if(e?.selected){let a=Jc(t,o,e);Ny(e.selected,a)||n(e?.selected)}},[e?.selected]);let i=Jc(t,o,e);return{list:i.list,more:i.more,history:[]}}r(Rc,"usePrepareBlockchainList");import{styled as IA}from"@rango-dev/ui";var Wy=IA("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var PA=6,LA=12;function op(t){let{blockchains:e,type:o,blockchain:n,onChange:i,onMoreClick:a}=t,{showCompactTokenSelector:s}=re(),c=Rc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=S(),p=z().use.resetToBlockchain(),u=z().use.resetFromBlockchain(),d=c.more.length>0,m=c.more[0],h=c.more.length===1&&m,g=!h&&d;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(Py,{size:12}),xe.createElement(tp,{variant:"label",size:"large"},ep.t("Select Chain"))),xe.createElement(Py,{size:12}),xe.createElement(Wy,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?PA:LA),(f,T)=>xe.createElement(NA,{key:T,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(Ma,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(tp,{variant:"body",size:"xsmall",color:"secondary500"},ep.t("All"))),c.list.map(f=>xe.createElement(WA,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:W()},xe.createElement(Ma,{className:"widget-blockchains-section-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>i(f)},xe.createElement(Ly,{src:f.logo,size:30})))),h?xe.createElement(Ma,{className:"widget-blockchains-section-only-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>i(m)},xe.createElement(Ly,{src:m.logo,size:30})):null,g?xe.createElement(Ma,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(tp,{variant:"body",size:"xsmall",color:"secondary500"},ep._("More +{count}",{count:c.more.length}))):null)))}r(op,"BlockchainsSection");import{useCallback as _A,useRef as MA,useState as np}from"react";function rp(){let t=S().blockchains(),e=MA(null),{customTokens:o}=S(),[n,i]=np(!1),[a,s]=np([]),[c,l]=np(null),p=r(async(m,h)=>{l(null),i(!0),s([]);try{let g=await dt().searchCustomTokens({query:m,blockchain:h},{signal:e.current?.signal}),f=new Set(o().map(y=>Yt(y))),T=new Set(t.map(y=>y.name)),C=g.tokens.filter(y=>T.has(y.blockchain)&&!f.has(Yt(y)));s(C),i(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&i(!1)}},"fetch"),u=_A(si((m,h)=>{e.current?.signal.aborted||p(m,h)},600),[t.length]);return{fetch:(m,h)=>{e.current=new AbortController,s([]),i(!0),u(m,h)},cancel:r(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}r(rp,"useSearchCustomTokens");function By(t){return t.trim()?"search":"default "}r(By,"getTokenSelectionMethod");function Da(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}r(Da,"shouldSearchForCustomTokens");function _y(t,e,o,n,i){let a=[...t];return Da(t,o,i)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}r(_y,"prepareTokensList");function Fa(t){let{type:e}=t,o=zA(),n=Ve(),{fromBlockchain:i,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=z()(),{getBalanceFor:u}=S(),{fetch:d,loading:m,tokens:h,cancel:g}=rp(),[f,T]=UA(""),C=e==="source"?i:a,y=C?.name??"",k=S().blockchains({type:e}),w=S().tokens({type:e,blockchain:y,searchFor:f,getBalanceFor:u}),v=_y(w,h,f,m,C?.name),I=r(N=>{e==="source"?l(N):p(N)},"updateBlockchain"),A=r(N=>{e==="source"?s({token:N,meta:{blockchains:k}}):c({token:N,meta:{blockchains:k}})},"updateToken"),b=e==="source"?"from":"to",x=r(N=>{te({type:"chainFilterApplied",payload:{side:b,chain:N.name,filterSource:"featured"}})},"emitChainFilterApplied"),E=r(N=>{te({type:"tokenSelected",payload:{side:b,tokenName:N.name,tokenSymbol:N.symbol,tokenAddress:N.address,chain:N.blockchain,selectionMethod:By(f),activeChainFilter:y||"all"}})},"emitTokenSelected"),L={source:$a.t("Source"),destination:$a.t("Destination")};return OA(()=>(Da(w,f,C?.name)&&d(f,C?.name??void 0),()=>{g()}),[w.length,f,C?.name]),Io.createElement(se,{header:{title:$a.t("Swap {type}",{type:L[e]})}},Io.createElement(ce,null,Io.createElement(op,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?i:a,onMoreClick:()=>o($.blockchains),onChange:N=>{x(N),I(N)}}),Io.createElement(My,{size:24}),Io.createElement(Pt,{value:f,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:$a.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>T(""),onChange:N=>T(N.target.value),suffix:Da(w,f,C?.name)&&m?Io.createElement(FA,{size:12,color:"secondary"}):void 0}),Io.createElement(My,{size:16}),Io.createElement(Pr,{list:v,selectedBlockchain:y,searchedFor:f,type:e,onChange:N=>{E(N),A(N);let O=k.find(q=>N.blockchain===q.name);O&&I(O),n()}})))}r(Fa,"SelectSwapItemsPage");import{i18n as lp}from"@lingui/core";import{Alert as fN,Button as gN,styled as hN}from"@rango-dev/ui";import on from"react";import{useInRouterContext as yN,useSearchParams as SN}from"react-router-dom";import{i18n as zy}from"@lingui/core";import{Alert as GA,Divider as ap,InfoIcon as VA,SlippageIcon as KA,TextField as jA,Tooltip as XA,Typography as Qy}from"@rango-dev/ui";import ze from"react";import{Chip as QA,styled as Hr,TextField as HA}from"@rango-dev/ui";var Dy=Hr("div",{paddingTop:"$5",padding:"$10 $5"}),$y=Hr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${HA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),Fy=Hr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Oa=Hr("div",{maxWidth:"280px",padding:"$10"}),Oy=Hr(QA,{width:"61px",flexShrink:0});import{i18n as ip}from"@lingui/core";import{Typography as qA}from"@rango-dev/ui";import qr from"react";function Uy(){return qr.createElement(Oa,null,qr.createElement(qA,{variant:"label",size:"medium",color:"neutral700"},ip.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),qr.createElement("br",null),qr.createElement("br",null),qr.createElement("b",null,ip.t("Warning")),":\xA0",ip.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.")))}r(Uy,"SlippageTooltipContent");function sp(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=S(),i=o!==null?gn(o):null,a=o??t,s=r((u,d)=>{u!==d&&te({type:"settingsChanged",payload:{setting:"slippage",previousValue:u,newValue:d}})},"emitSlippageChanged"),c=r(u=>{let d=u.target.value,m=parseFloat(d);if(isNaN(m))return n(null);let h=m;m>er&&(h=er),s(a,h),n(h)},"onSlippageValueChange"),l=r(u=>{s(a,u),o!==null&&n(null),e(u)},"onClickSlippageChip"),p=r(u=>{let d=u.target,m=d.value;Su(m)||(d.value=m.slice(0,-1))},"onInput");return ze.createElement(Dy,null,ze.createElement(Fy,null,ze.createElement(KA,{size:16,color:"gray"}),ze.createElement(ap,{direction:"horizontal",size:4}),ze.createElement(Qy,{variant:"title",size:"xmedium"},zy.t("Slippage tolerance per swap")),ze.createElement(ap,{direction:"horizontal",size:4}),ze.createElement(XA,{container:W(),side:"top",sideOffset:4,content:ze.createElement(Uy,null)},ze.createElement(VA,{color:"gray"}))),ze.createElement($y,null,hi.map((u,d)=>{let m=`slippage-${d}`;return ze.createElement(Oy,{id:`widget-slippage-chip-${u.toString()}%-btn`,key:m,onClick:()=>l(u),selected:o===null&&u===t,label:`${u.toString()}%`})}),ze.createElement(jA,{type:"number",min:"0.01",max:"30",step:"0.01",status:i?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:p,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:c,suffix:o&&ze.createElement(Qy,{variant:"body",size:"small"},"%"),placeholder:zy.t("Custom")})),i&&ze.createElement(ze.Fragment,null,ze.createElement(ap,{size:10}),ze.createElement(GA,{id:"widget-slippage-alert",variant:"alarm",type:i.type,title:i.message})))}r(sp,"Slippage");import{i18n as bt}from"@lingui/core";import{AutoThemeIcon as Hy,BridgesIcon as YA,ChevronRightIcon as Ua,DarkModeIcon as qy,Divider as Gr,ExchangeIcon as ZA,InfinityIcon as JA,InfoIcon as RA,LanguageIcon as eN,LightModeIcon as Gy,List as tN,ListItem as oN,ListItemButton as nN,Skeleton as rN,styled as iN,Switch as aN,Tabs as sN,TargetIcon as lN,Tooltip as cN,Typography as lt}from"@rango-dev/ui";import D from"react";import{useNavigate as pN}from"react-router-dom";var uN=iN("div",{width:"202px",height:"$40"}),dN=[{id:"light",icon:D.createElement(Gy,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Light"))},{id:"dark",icon:D.createElement(qy,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Dark"))},{id:"auto",icon:D.createElement(Hy,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Auto"))}],mN=r(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(Hy,{...e});case"dark":return D.createElement(qy,{...e});default:return D.createElement(Gy,{...e})}},"getThemeIcon");function Vy(){let t=pN(),{theme:e}=S().config,{setTheme:o,theme:n}=S(),{activeLanguage:i,languages:a}=xo(),s=a.find(P=>P.local===i)?.label,c=S().fetchStatus,l=S().swappers(),p=S().getDisabledLiquiditySources(),{config:{features:u}}=S(),d=S().customTokens(),m=nt("theme",u),h=nt("liquiditySource",u),g=nt("language",u),f=nt("customTokens",u),T=S().infiniteApprove,C=S().toggleInfiniteApprove,y=Ci(l,p),k=y.filter(P=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(P.type)),w=k.length,v=k.filter(P=>P.selected).length,I=y.filter(P=>P.type==="DEX"),A=I.length,b=I.filter(P=>P.selected).length,x=r((P,Z)=>{switch(c){case"loading":return D.createElement(rN,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(lt,{variant:"body",size:"medium",color:"$error500"},bt.t("Loading failed"));default:return D.createElement(lt,{variant:"body",size:"medium"},`${P} / ${Z}`)}},"handleSwapperEndItem"),E={id:"widget-setting-bridge-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Bridges")),end:D.createElement(D.Fragment,null,x(v,w),D.createElement(Gr,{direction:"horizontal",size:8}),D.createElement(Ua,{color:"black"})),onClick:()=>t($.bridges),start:D.createElement(YA,{color:"gray",size:16})},L={id:"widget-setting-exchange-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Exchanges")),end:D.createElement(D.Fragment,null,x(b,A),D.createElement(Gr,{direction:"horizontal",size:8}),D.createElement(Ua,{color:"black"})),start:D.createElement(ZA,{color:"gray",size:16}),onClick:()=>t($.exchanges)},N={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"body",size:"medium"},`${d.length}`),D.createElement(Gr,{direction:"horizontal",size:8}),D.createElement(Ua,{color:"black"})),start:D.createElement(lN,{color:"gray",size:16}),onClick:()=>t($.customTokens)},O={id:"widget-setting-language-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Language")),start:D.createElement(eN,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"body",size:"medium"},s),D.createElement(Gr,{direction:"horizontal",size:8}),D.createElement(Ua,{color:"black"})),onClick:()=>t($.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Infinite approval")),D.createElement(Gr,{direction:"horizontal",size:4}),D.createElement(cN,{side:"top",sideOffset:4,container:W(),content:D.createElement(Oa,null,D.createElement(lt,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,bt.t("Warning")),":\xA0",bt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(RA,{color:"gray"}))),start:D.createElement(JA,{color:"gray",size:16}),end:D.createElement(aN,{checked:T}),onClick:()=>{te({type:"settingsChanged",payload:{setting:"infiniteApproval",previousValue:T,newValue:!T}}),C()}},j={id:"widget-setting-theme-item-btn",type:D.createElement(oN,null),title:D.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Theme")),end:D.createElement(uN,null,D.createElement(sN,{container:W(),items:dN,value:n,className:"widget-setting-theme-item-tabs-container",onChange:P=>o(P.id),type:"primary",borderRadius:"small"})),start:mN(n)},ee=h?[]:[E,L];return f||ee.push(N),g||ee.push(O),ee.push(q),!e?.singleTheme&&!m&&ee.push(j),D.createElement(tN,{type:D.createElement(nN,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:ee})}r(Vy,"SettingsLists");var TN=hN("div",{paddingLeft:"$8"});function Ky(){let{isInCampaignMode:t,updateCampaignMode:e}=S(),o=t(),[,n]=SN(),i=yN(),a=r(()=>{i&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return on.createElement(se,{header:{title:lp.t("Settings")}},on.createElement(ce,null,o&&on.createElement(fN,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:lp.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:on.createElement(TN,null,on.createElement(gN,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},lp.t("Reset")))}),on.createElement(sp,null),on.createElement(Vy,null)))}r(Ky,"SettingsPage");import{i18n as N0}from"@lingui/core";import{cancelSwap as W0}from"@rango-dev/queue-manager-rango-preset";import{useManager as P0}from"@rango-dev/queue-manager-react";import{Alert as L0}from"@rango-dev/ui";import bp from"react";import{useParams as B0}from"react-router-dom";import{i18n as qt}from"@lingui/core";import{getCurrentNamespaceOfOrNull as g0,getCurrentStep as h0,getRelatedWalletOrNull as y0}from"@rango-dev/queue-manager-rango-preset";import{Button as zS,Divider as S0,QuoteCost as T0,StepDetails as C0,Typography as Tp}from"@rango-dev/ui";import{useWallets as k0}from"@rango-dev/wallets-react";import QS from"bignumber.js";import{PendingSwapNetworkStatus as Hn}from"rango-types";import we,{useEffect as Cp,useRef as kp,useState as Xa}from"react";import{useNavigate as w0}from"react-router-dom";import{i18n as Ao}from"@lingui/core";var CN=[Ao.t("Sunday"),Ao.t("Monday"),Ao.t("Tuesday"),Ao.t("Wednesday"),Ao.t("Thursday"),Ao.t("Friday"),Ao.t("Saturday")];function jy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),i=e.getFullYear();return`${e.getDay()===new Date().getDay()?Ao.t("Today"):`${CN[e.getDay()]} ${o} ${n} ${i}`}, ${new Date(t).toLocaleTimeString()}`}r(jy,"timeSince");function Xy(t){return t.finishTime?jy(parseInt(t.finishTime)):jy(parseInt(t.creationTime))}r(Xy,"getSwapDate");import Vr from"react";import{i18n as za}from"@lingui/core";import{Button as Yy,Divider as cp,MessageBox as kN}from"@rango-dev/ui";import No from"react";var Zy=r(({onCancel:t,onClose:e})=>No.createElement(No.Fragment,null,No.createElement(cp,{size:20}),No.createElement(kN,{type:"error",title:za.t("Cancel Swap"),description:za.t("Are you sure you want to cancel this swap?")}),No.createElement(cp,{size:32}),No.createElement(Yy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},za.t("Yes, Cancel it")),No.createElement(cp,{size:12}),No.createElement(Yy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},za.t("No, Continue"))),"CancelContent");import{i18n as Qa}from"@lingui/core";import{Button as Jy,Divider as pp,MessageBox as wN,Typography as vN}from"@rango-dev/ui";import co from"react";var Ry=r(({onDelete:t,onClose:e})=>co.createElement(co.Fragment,null,co.createElement(pp,{size:20}),co.createElement(wN,{type:"error",title:Qa.t("Delete Transaction"),description:Qa.t("Are you sure you want to delete this swap?")}),co.createElement(pp,{size:32}),co.createElement(Jy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Qa.t("Yes, Delete it")),co.createElement(pp,{size:12}),co.createElement(Jy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},co.createElement(vN,{variant:"title",size:"medium",color:"primary"},Qa.t("No, Cancel")))),"DeleteContent");import{i18n as EN}from"@lingui/core";import{Button as bN,Divider as xN,MessageBox as IN}from"@rango-dev/ui";import nn from"react";var eS=r(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return nn.createElement(nn.Fragment,null,nn.createElement(IN,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&nn.createElement(nn.Fragment,null,nn.createElement(xN,{size:"30"}),nn.createElement(bN,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},EN.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as GN,getCurrentStep as VN,getRelatedWalletOrNull as KN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as jN}from"@rango-dev/ui";import{useWallets as XN}from"@rango-dev/wallets-react";import sS from"react";import{i18n as zn}from"@lingui/core";import{Alert as nS,Button as WN,Checkbox as PN,Divider as Ga,Image as LN,MessageBox as BN,Spinner as _N,WarningIcon as MN}from"@rango-dev/ui";import{useWallets as DN}from"@rango-dev/wallets-react";import Te,{useState as $N}from"react";import{css as AN,darkTheme as NN,styled as up}from"@rango-dev/ui";var tS=AN({wordWrap:"break-word",display:"block"}),oS=up("img",{width:"100%"}),Ha=up("div",{position:"relative"}),qa=up("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${NN} &`]:{$$color:"$warning600"}});var rS=r(t=>{let{wallet:e,namespace:o,onClose:n}=t,[i,a]=$N(null),{list:s}=xt(),c=re.use.isActiveTab(),{state:l,connect:p}=DN(),u=s.find(v=>v.type===e.walletType),d=u?.needsNamespace?.data.find(v=>v.value===o?.namespace);if(!u)return null;let m=l(e.walletType),h=o?.namespace?m.namespaces?.get(o.namespace):null,g=m.connecting||h?.connecting,f=h?.connected,T=r(()=>f?zn.t("Done"):i?zn.t("Try again"):zn.t("Connect"),"getButtonTitle"),C=r(()=>g?Te.createElement(_N,{color:"info"}):i||f?null:Te.createElement(PN,{checked:!0,disabled:!0}),"getNamespaceSuffix"),y=r(async()=>{try{a(null);let v=o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0;await Mt(p(u.type,v),{trigger:"swap-details-modal",source:"user",walletType:u.type,namespaces:v?.map(I=>I.namespace)})}catch(v){a(wt(v)??v)}},"handleConnect"),k=r(async()=>{if(f){n();return}y()},"handleClickButton"),w=r(()=>{if(!f)return null;let v=h?.accounts?.[0]?.split(":"),I=v?.[v?.length-1];return I?mo(I):null},"getAddress");return Te.createElement(Te.Fragment,null,Te.createElement(BN,{type:"warning",title:zn.t("Connect {wallet}",{wallet:u.title}),description:zn.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:Te.createElement(Ha,null,Te.createElement(LN,{src:u.image,size:45}),Te.createElement(qa,null,Te.createElement(MN,{color:"warning",size:10})))}),f&&!d&&Te.createElement(Te.Fragment,null,Te.createElement(Ga,{size:10}),Te.createElement(nS,{type:"success",variant:"alarm",title:zn.t("Wallet connected successfully.")})),i&&!d&&Te.createElement(Te.Fragment,null,Te.createElement(Ga,{size:10}),Te.createElement(nS,{type:"error",title:i?.message,variant:"alarm"})),d&&Te.createElement(Te.Fragment,null,Te.createElement(Ga,{size:30}),Te.createElement(Uo,{namespace:d,suffix:C(),error:i?.message,connected:f,address:w()})),Te.createElement(Ga,{size:"40"}),Te.createElement(WN,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:k,disabled:!c},T()))},"ConnectWalletContent");import{i18n as iS}from"@lingui/core";import{Button as FN,detectInstallLink as ON,Divider as UN,Image as zN,MessageBox as QN,WarningIcon as HN}from"@rango-dev/ui";import{useWallets as qN}from"@rango-dev/wallets-react";import po from"react";var aS=r(t=>{let{walletType:e}=t,{getWalletInfo:o}=qN(),n=e?o(e):null;if(!n)return null;let i=r(()=>window.open(ON(n.installLink),"_blank"),"handleButtonClick");return po.createElement(po.Fragment,null,po.createElement(QN,{type:"warning",title:iS.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:po.createElement(Ha,null,po.createElement(zN,{src:n.img,size:45}),po.createElement(qa,null,po.createElement(HN,{color:"warning",size:10})))}),po.createElement(UN,{size:"40"}),po.createElement(FN,{type:"primary",id:"widget-install-wallet-btn",onClick:i},iS.t("Install")))},"InstallWalletContent");var lS=r(t=>{let{swap:e,onClose:o}=t,{state:n,getWalletInfo:i}=XN(),a=VN(e),s=a?KN(e,a):null,c=s?.walletType,l=c?Jn(i(c),n(c)):null,p=a?GN(e,a):null;return c?l===jN.NOT_INSTALLED?sS.createElement(aS,{walletType:c}):sS.createElement(rS,{wallet:s,namespace:p,onClose:o}):null},"WalletStateContent");function dp(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:i,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return Vr.createElement(ie,{open:e,onClose:i,container:W()},o==="connectWallet"&&Vr.createElement(lS,{swap:c,message:l,onClose:i}),o==="switchNetwork"&&n&&Vr.createElement(eS,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&Vr.createElement(Ry,{onClose:i,onDelete:()=>{i(),a()}}),o==="cancel"&&Vr.createElement(Zy,{onClose:i,onCancel:()=>{i(),s()}}))}r(dp,"SwapDetailsModal");import{i18n as Kr}from"@lingui/core";import{Button as mp,Divider as jr,MessageBox as uS,TokenAmount as YN,Typography as dS}from"@rango-dev/ui";import ke from"react";import{Link as ZN,useNavigate as JN}from"react-router-dom";var cS="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",pS="/profile";function fp(t){let{open:e,onClose:o,status:n,priceValue:i,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:d,diagnosisUrl:m}=t,h=JN(),{showProfileBanner:g}=re();return ke.createElement(ie,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(kt.SWAP_BOX_ID)||document.body},n==="success"?ke.createElement(uS,{type:"success",title:Kr.t("Swap Successful")},ke.createElement(YN,{direction:"vertical",tooltipContainer:W(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:i,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),ke.createElement(jr,{size:12}),ke.createElement(dS,{className:tS(),variant:"body",size:"medium",color:"neutral700",align:"center"},d)):ke.createElement(uS,{type:"error",title:Kr.t("Transaction Failed"),description:d}),ke.createElement(jr,{size:30}),n==="success"&&ke.createElement(ke.Fragment,null,g&&ke.createElement(ke.Fragment,null,ke.createElement(ZN,{to:pS},ke.createElement(oS,{src:cS,alt:"Profile Banner"})),ke.createElement(jr,{size:30})),ke.createElement(mp,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Kr.t("Done"))),ke.createElement(jr,{size:12}),m&&ke.createElement(ke.Fragment,null,ke.createElement(mp,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(m,"_blank")},Kr.t("Diagnosis")),ke.createElement(jr,{size:12})),ke.createElement(mp,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},ke.createElement(dS,{variant:"title",size:"medium",color:"primary"},Kr.t("See Details"))))}r(fp,"SwapDetailsCompleteModal");import{i18n as ja}from"@lingui/core";import{CopyIcon as p0,DoneIcon as u0,IconButton as d0,RangoExplorerIcon as m0,Tooltip as MS,Typography as DS,useCopyToClipboard as f0}from"@rango-dev/ui";import Bt from"react";import c0 from"react";import{i18n as i0}from"@lingui/core";import{Alert as PS,IconButton as a0,LinkIcon as s0}from"@rango-dev/ui";import Wo,{Fragment as l0}from"react";import{Alert as e0,ChevronDownIcon as t0,IconButton as o0}from"@rango-dev/ui";import Qn,{useState as n0}from"react";import{css as Xr,darkTheme as mS,styled as Ht,Typography as RN}from"@rango-dev/ui";var fS=Ht(ce,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${mS} &`]:{color:"$secondary500"}}}}}),gS=Ht("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),hS=Ht("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),yS=Ht("div",{padding:"$0 $20 $20 $20"}),ZY=Ht("div",{display:"flex",flexDirection:"column",gap:"$10"}),SS=Ht("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),JY=Ht("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),rn=Xr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${mS} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),TS=Xr({padding:"$5 0"}),Va=Xr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),CS=Xr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),kS=Xr({width:"100%",padding:"0 $20 $10"}),wS=Ht("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),vS=Ht("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ka=Ht(RN,{wordBreak:"break-word"});import{styled as gp}from"@rango-dev/ui";var ES=gp("div",{display:"flex",flexDirection:"column",gap:"$10"}),bS=gp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),xS=gp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function IS(t){let{message:e}=t,[o,n]=n0(!1);return Qn.createElement(e0,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Qn.createElement(o0,{id:"widget-swap-details-failed-btn",onClick:()=>n(i=>!i),variant:"ghost",size:"xsmall"},Qn.createElement(bS,{rotated:o},Qn.createElement(t0,{size:12,color:"gray"}))),footer:Qn.createElement(xS,{open:o},Qn.createElement(Ka,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}r(IS,"FailedAlert");import{i18n as AS}from"@lingui/core";import{Alert as hp,Button as NS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as r0}from"rango-types";import Yr from"react";function WS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:i,showNetworkModal:a}=t;return e?Yr.createElement(hp,{type:"warning",id:"widget-swap-details-change-network-alert",title:i.shortMessage,action:Yr.createElement(NS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},AS.t("Change"))}):a===r0.WaitingForConnectingWallet?Yr.createElement(hp,{type:"warning",title:i.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Yr.createElement(NS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},AS.t("Connect"))}):Yr.createElement(hp,{id:"widget-swap-details-short-alert",type:"warning",title:i.shortMessage})}r(WS,"WarningAlert");function yp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:i,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=mr(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,d=u&&!c||p&&!s.explorerUrl?.length;return Wo.createElement(ES,null,s.explorerUrl?.map((m,h,g)=>{let f=h+m.url,T=h===g.length-1,C=(T&&u||p)&&!d,y=T&&s.status==="failed";return Wo.createElement(l0,{key:f},Wo.createElement(PS,{id:"widget-swap-details-tx-alert",type:T&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:i0.t("View transaction"),action:m.url&&Wo.createElement(a0,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Wo.createElement(s0,{size:12}))}))}),d&&Wo.createElement(PS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&Wo.createElement(WS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:i,message:a}),s.status==="failed"&&Wo.createElement(IS,{message:a}))}r(yp,"SwapDetailsAlerts");var LS=2e3;var BS=r(({swap:t,blockchains:e,swappers:o,...n})=>{let i=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:Tt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Tt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Kn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:Tt(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:Tt(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Kn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:c0.createElement(yp,{step:a,hasAlreadyProceededToSign:i,...n})}})},"getSteps");function _S(t){if(mr(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"}}r(_S,"getStepState");function $S(t){let{requestId:e}=t,[o,n]=f0(LS);return Bt.createElement(hS,{className:rn()},Bt.createElement(DS,{variant:"label",size:"large",color:"neutral700"},ja.t("Request ID")),Bt.createElement("div",{className:Va()},Bt.createElement(DS,{variant:"label",size:"small",color:"neutral700"},e),Bt.createElement(MS,{container:W(),content:o?ja.t("Copied To Clipboard"):ja.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Bt.createElement(d0,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Bt.createElement(u0,{size:16,color:"secondary"}):Bt.createElement(p0,{size:16,color:"gray"}))),Bt.createElement(wS,{target:"_blank",href:`${Rp}/swap/${e}`},Bt.createElement(MS,{container:W(),content:ja.t("View on Rango Explorer"),side:"bottom"},Bt.createElement(m0,{size:20})))))}r($S,"RequestIdRow");import{i18n as FS}from"@lingui/core";import{Typography as OS}from"@rango-dev/ui";import Sp from"react";function US(t){let{date:e,isFinished:o}=t;return Sp.createElement("div",{className:rn()},Sp.createElement(OS,{variant:"label",size:"large",color:"neutral700"},o?FS.t("Finished at"):FS.t("Created at")),Sp.createElement(OS,{variant:"label",size:"small",color:"neutral700"},e))}r(US,"SwapDateRow");var v0=3e3;function wp(t){let{swap:e,requestId:o,onDelete:n,onCancel:i}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=k0(),l=S().blockchains(),p=S().swappers(),{findToken:u}=S(),d=z().use.retry(),m=w0(),h=kp(null),[g,f]=Xa(!1),[T,C]=Xa(null),[y,k]=Xa(null),[w,v]=Xa(null),I=kp(T),A=kp(y),b=Pe.use.getNotifications(),x=Pe.use.removeNotification(),E=b(),L=h0(e),N=L?.networkStatus,O=r(Ne=>{f(!0),C(Ne)},"handleChangeModalState"),q=r(()=>{f(!1)},"handleCloseModal"),j=r(()=>{k({type:"loading",title:qt.t("Change Network"),description:`We\u2019re switching the connected network to ${Y?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),ee=r(()=>{k({type:"success",title:qt.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),P=r(Ne=>{k({type:"error",title:qt.t("Network Switch Failed"),description:Ne?.message||Q.detailedMessage.content})},"handleShowSwitchNetworkFailed"),Z=Jd(e),Y=L?g0(e,L):null,pe=L?y0(e,L):null,Ee=Xy(e),Kt=Rd(e),be=r(Ne=>!!c(Ne)?.mobileWallet,"checkIsMobileWallet"),He=!!N&&[Hn.WaitingForNetworkChange,Hn.NetworkChangeFailed].includes(N),Xe=!!pe?.walletType&&be(pe.walletType),St=!!pe&&!!Y&&a(pe.walletType,Y.network,Y),ct=!!Y&&He&&(Xe||St),B=r(()=>{ct&&(j(),Mt(s(pe.walletType,[{namespace:Y.namespace,network:Y.network}]),{trigger:"swap-details",source:"user",walletType:pe.walletType,namespaces:[Y.namespace]}).then(()=>{ee()}).catch(Ne=>{P(wt(Ne)??Ne)}))},"handleSwitchNetwork"),V=r(()=>{O("switchNetwork"),B()},"handleSwitchNetworkClick"),Q=Zd(e,L,c),X=BS({swap:e,switchNetworkIsAvailable:ct,handleSwitchNetworkClick:V,showNetworkModal:N,setNetworkModal:O,message:Q,blockchains:l,swappers:p}),G=X.length,[J,U]=[e.steps[0],e.steps[G-1]],de=U?.outputAmount||U?.expectedOutputAmountHumanReadable,qe=e.steps.reduce((Ne,_t)=>Ne+parseFloat(_t.feeInUsd||""),0),ot=e.steps.find(Ne=>Ne.diagnosisUrl)?.diagnosisUrl,uo=M(parseFloat(de||"0")*(U?.toUsdPrice||0),4,4),Gn=M(parseFloat(e.inputAmount)*(J?.fromUsdPrice||0),4,4),Po=de?new QS(de).multipliedBy(U.toUsdPrice||0).toString():"",ti=new QS(e.inputAmount).multipliedBy(J?.fromUsdPrice||0).toString(),sn=Jt(Gn,uo),as=Q.detailedMessage.content||Q.shortMessage,wT=e.status==="success"?qt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(de,6,6),token:X[G-1]?.to.token.displayName,conciseAddress:mo(e.wallets[X[G-1]?.to.chain.displayName||""]?.address||""),chain:X[G-1]?.to.chain.displayName}}):we.createElement(vS,null,we.createElement(Tp,{variant:"body",size:"medium",color:"neutral700",align:"center"},as?"":qt.t("Transaction was not sent."),Z?`${qt.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:Z.outputAmount,symbol:Z.symbol,blockchain:Z.blockchain}})}`:""),as&&we.createElement(Ka,{align:"center",variant:"body",size:"medium",color:"neutral700"},we.createElement("b",null,"Reason:")," ",as));return Cp(()=>{E.find(_t=>_t.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId),q()):w&&v(null))},[e.status,e.requestId]),Cp(()=>{if(ct){if(O("switchNetwork"),N===Hn.WaitingForNetworkChange){j();return}if(N===Hn.NetworkChangeFailed){P();return}return}if(N===Hn.WaitingForConnectingWallet){O("connectWallet");return}if(N===Hn.NetworkChanged){O("switchNetwork"),ee();return}T&&["connectWallet","switchNetwork"].includes(T)&&q()},[N]),Cp(()=>{if(I.current=T,A.current=y,T==="switchNetwork"&&y?.type==="success"){let Ne=setTimeout(()=>{I.current==="switchNetwork"&&A.current?.type==="success"&&q()},v0);return()=>clearTimeout(Ne)}},[T,y]),we.createElement(se,{header:{title:qt.t("Swap Details"),onCancel:e.status==="running"?()=>O("cancel"):void 0,suffix:e.status!=="running"&&we.createElement(So,null,we.createElement(zS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>O("delete")},we.createElement(Tp,{size:"medium",variant:"label",color:"error"},qt.t("Delete"))))},footer:Kt&&!w&&we.createElement(zS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{te({type:"swapRetried",payload:{routeId:e.requestId}});let Ne=Li(e,l,u);d(Ne),setTimeout(()=>{m("../../")},0)}},qt.t("Try again"))},we.createElement(fS,{compact:!0,ref:h},we.createElement($S,{requestId:o}),we.createElement(US,{date:Ee,isFinished:!!e.finishTime}),we.createElement("div",{className:CS()},we.createElement(T0,{fee:M(String(qe),2,2),time:Yn(pi(e.steps)),steps:G}),we.createElement(kr,{from:{price:{value:M(e.inputAmount,6,6),usdValue:Gn,realUsdValue:ti,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:M(de,6,6),usdValue:uo,realUsdValue:Po,realValue:de||""},token:{displayName:X[G-1]?.to.token.displayName||"",image:X[G-1]?.to.token.image},chain:{image:X[G-1]?.to.chain.image,displayName:X[G-1]?.to.chain.displayName||""}},percentageChange:M(sn,2,2),warningLevel:Rt(sn??0)})),we.createElement("div",{className:kS()},we.createElement(Tp,{variant:"title",size:"small"},qt.t("Swaps steps"))),we.createElement(S0,{size:8}),we.createElement(yS,null,X.map((Ne,_t)=>{let Mp=_t,Vn=e.steps[_t]&&_S(e.steps[_t]),vT=Vn==="error"||Vn==="in-progress"||Vn==="warning"||Vn==="completed"&&_t===X.length-1;return we.createElement(C0,{className:"widget-swap-details-step-item-container",key:Mp,step:Ne,type:"swap-progress",ref:h,state:Vn,hasSeparator:_t!==0,tabIndex:Mp,isFocused:vT,tooltipContainer:W()})}))),we.createElement(dp,{isOpen:g,state:T,switchNetworkModalState:y,onClose:q,onCancel:i,onDelete:n,message:Q.detailedMessage.content,swap:e,handleSwitchNetwork:V}),we.createElement(fp,{open:!!w,diagnosisUrl:ot,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:M(de,6,6),usdValue:uo,realUsdValue:Po,realValue:de||"",percentageChange:M(sn,2,2),token:{displayName:X[G-1]?.to.token.displayName||"",image:X[G-1]?.to.token.image},chain:{image:X[G-1]?.to.chain.image},description:wT}))}r(wp,"SwapDetails");import{i18n as Za}from"@lingui/core";import{Divider as GS,NotFound as A0,Skeleton as Jr,Typography as Ja}from"@rango-dev/ui";import Ae from"react";import{i18n as E0}from"@lingui/core";import{Divider as b0,Skeleton as x0,Typography as I0}from"@rango-dev/ui";import Ie from"react";import{css as Gt,styled as vp}from"@rango-dev/ui";var HS=vp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Zr=vp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Ya=vp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),N9=Gt({display:"flex",justifyContent:"space-between",alignItems:"center"}),W9=Gt({paddingTop:"$15",display:"flex"}),P9=Gt({padding:"$15 $0"}),L9=Gt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),B9=Gt({paddingBottom:"$10"}),_9=Gt({display:"flex",justifyContent:"start",alignItems:"center"}),M9=Gt({paddingTop:"$5",display:"flex",alignItems:"center"}),D9=Gt({display:"flex",alignItems:"center"}),$9=Gt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),qS=Gt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Ep(){return Ie.createElement(HS,null,Ie.createElement(Er,{type:"swap-preview"}),Ie.createElement("div",{className:"swaps-steps"},Ie.createElement(I0,{variant:"title",size:"small"},E0.t("Swaps steps"))),Ie.createElement(Ie.Fragment,null,Ie.createElement(Zr,null,Ie.createElement(zt,{separator:!1}),Ie.createElement("div",{className:qS()},Ie.createElement(b0,{direction:"horizontal",size:20}),Ie.createElement(x0,{height:22,variant:"rectangular"}))),Ie.createElement(Ya,null),Ie.createElement(Zr,null,Ie.createElement(zt,{separator:!1})),Ie.createElement(Ya,null),Ie.createElement(Zr,null,Ie.createElement(zt,{separator:!1})),Ie.createElement(Ya,null),Ie.createElement(Zr,null,Ie.createElement(zt,{separator:!1}))))}r(Ep,"LoadingSwapDetails");function VS(t){let{requestId:e,showSkeleton:o}=t;return Ae.createElement(se,{header:{title:Za.t("Swap Details"),suffix:Ae.createElement(So,null)}},o&&Ae.createElement(gS,null,Ae.createElement("div",{className:rn()},Ae.createElement(Ja,{variant:"label",size:"large",color:"neutral700"},`${Za.t("Request ID")}`),Ae.createElement("div",{className:Va()},Ae.createElement(Ja,{variant:"label",size:"small",color:"neutral700"},Ae.createElement(Jr,{width:60,height:10,variant:"rounded"})),Ae.createElement(GS,{direction:"horizontal",size:4}),Ae.createElement(Jr,{width:16,height:16,variant:"rectangular"}),Ae.createElement(GS,{direction:"horizontal",size:4}),Ae.createElement(Jr,{width:16,height:16,variant:"rectangular"}))),Ae.createElement("div",{className:rn()},Ae.createElement(Ja,{className:TS(),variant:"label",size:"large",color:"neutral700"},Ae.createElement(Jr,{width:60,height:10,variant:"rounded"})),Ae.createElement(Ja,{variant:"label",size:"small",color:"neutral700"},Ae.createElement(Jr,{width:60,height:10,variant:"rounded"}))),Ae.createElement(Ep,null)),!o&&Ae.createElement(SS,null,Ae.createElement(A0,{title:Za.t("Not found"),description:Za.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}r(VS,"SwapDetailsPlaceholder");function KS(){let{manager:t,state:e}=P0(),o=!e.loadedFromPersistor,n=Et(t),{requestId:i}=B0(),a=Ve(),{fetchStatus:s}=S();if(!i)return bp.createElement(L0,{containerStyles:{margin:"20px"},type:"error",title:N0.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=i?n.find(({swap:m})=>m.requestId===i):void 0,p=r(()=>{if(l?.id){let m=t?.get(l.id);m&&(te({type:"swapCancelled",payload:{routeId:i}}),W0(m))}},"onCancel"),u=r(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(m){console.log(m)}},"onDelete"),d=l?.swap;return!d||c?bp.createElement(VS,{requestId:i,showSkeleton:c}):bp.createElement(wp,{swap:d,requestId:i,onCancel:p,onDelete:u})}r(KS,"SwapDetailsPage");import{i18n as jS}from"@lingui/core";import{Divider as _0,getCategoriesCount as M0,SelectableCategoryList as D0,styled as YS,Typography as $0,Wallet as F0}from"@rango-dev/ui";import Vt,{useState as XS}from"react";var O0=YS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),U0=YS(ce,{textAlign:"center"});function ZS(){let{fetchStatus:t}=S(),[e,o]=XS("ALL"),n=S().blockchains(),{config:i}=S(),[a,s]=XS(),c=re.use.isActiveTab(),{list:l}=xt(),p=Nu(l,n),d=M0(p)!==1,m=Wu(l,e),h=r(g=>{lu(l,i.multiWallets)||s(g)},"handleWalletItemClick");return Vt.createElement(se,{header:{title:jS.t("Connect Wallets")}},Vt.createElement(U0,null,d&&Vt.createElement(Vt.Fragment,null,Vt.createElement(D0,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),Vt.createElement(_0,{size:24})),Vt.createElement($0,{variant:"title",size:"xmedium",align:"center"},jS.t("Choose a wallet to connect.")),Vt.createElement(O0,null,m.map((g,f)=>{let T=`wallet-${f}-${g.type}`;return Vt.createElement(F0,{key:T,...g,state:g.state,container:W(),onClick:()=>h(g),isLoading:t==="loading",disabled:!c})}),Vt.createElement(ur,{id:"widget-state-full-connect-modal",wallet:a,onClose:()=>{s(void 0)}}))))}r(ZS,"WalletsPage");function JS(){return pm(),Zs(),z0([{path:$.home,element:Qe.createElement(my,null)},{path:$.routes,element:Qe.createElement(Sy,null)},{path:$.fromSwap,children:[{index:!0,element:Qe.createElement(Fa,{type:"source"})},{path:$.blockchains,element:Qe.createElement(_a,{type:"source"})}]},{path:$.toSwap,children:[{index:!0,element:Qe.createElement(Fa,{type:"destination"})},{path:$.blockchains,element:Qe.createElement(_a,{type:"destination"})}]},{path:$.settings,children:[{index:!0,element:Qe.createElement(Ky,null)},{path:$.languages,element:Qe.createElement(gy,null)},{path:$.exchanges,element:Qe.createElement(Xc,{sourceType:"Exchanges"})},{path:$.bridges,element:Qe.createElement(Xc,{sourceType:"Bridges"})},{path:$.customTokens,children:[{index:!0,element:Qe.createElement(gh,null)},{path:$.addCustomTokens,children:[{index:!0,element:Qe.createElement(lf,null)},{path:$.blockchains,element:Qe.createElement(_a,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:$.swaps,children:[{index:!0,element:Qe.createElement(Mh,null)},{path:$.swapDetails,element:Qe.createElement(KS,null)}]},{path:$.wallets,element:Qe.createElement(ZS,null)},{path:$.confirmSwap,element:Qe.createElement(Rg,null)}])}r(JS,"AppRoutes");import{useQueueManager as nW}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as rW}from"rango-sdk";import{useContext as iW,useEffect as Np,useState as cT}from"react";import{WalletTypes as ei}from"@rango-dev/provider-all";import{Provider as G0}from"@rango-dev/wallets-react";import Ra,{createContext as V0,useEffect as oT,useMemo as K0,useRef as nT}from"react";import{useEffect as Q0}from"react";function RS(t){return t.map(e=>typeof e=="string"?e:e.id).join("-")}r(RS,"hashProviders");function xp(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:i}=S(),a=n();return Q0(()=>{o(),i()},[RS(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}r(xp,"useWalletProviders");import{Events as Rr}from"@rango-dev/wallets-react";import{isEvmBlockchain as H0}from"rango-sdk";function eT(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,blockchains:i}=S(),{onConnectWalletHandler:a,onDisconnectWalletHandler:s}=t,c=i().filter(H0).map(u=>u.name),l=r((u,d)=>{let[m,,h,g,f]=u,T={walletType:m,network:g.network??void 0,accounts:h};a.current?a.current(T):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let C=vu(m,h,c,d.supportedChainNames,f.isContractWallet);C.length&&e(C,f.namespace,g.derivationPath,{walletName:m})},"onAccountsEvent");return{handler:r((u,d,m,h,g)=>{if(d===Rr.ACCOUNTS){let f=mi(g.supportedBlockchains);m&&l([u,d,m,h,g],{supportedChainNames:f})}if(d===Rr.PROVIDER_DISCONNECTED&&(o(u),s.current?s.current(u):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),d===Rr.NAMESPACE_DISCONNECTED&&n(u,m),d===Rr.CONNECTED&&m){let f={walletType:u,network:h.network??void 0,accounts:h.accounts??void 0};a.current?a.current(f):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(d===Rr.NETWORK&&m){let f={walletType:u,network:m,accounts:h.accounts??void 0};a.current?a.current(f):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handler")}}r(eT,"useUpdates");import{Events as q0}from"@rango-dev/wallets-react";function tT(t,e){let[o,n,i,a,s]=e;n!==q0.PROVIDER_DISCONNECTED&&t(o,n,i,a,s)}r(tT,"propagateEvents");var es=V0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function j0(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:i}=S(),a=S().blockchains(),s=S().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=xp(s.wallets,c),p=nT(),u=nT(),{handler:d}=eT({onConnectWalletHandler:p,onDisconnectWalletHandler:u});oT(()=>{n().catch(console.log)},[]),oT(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,i]);let m=re.use.isActiveTab(),h=K0(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Ra.createElement(es.Provider,{value:h},Ra.createElement(G0,{allBlockChains:a,providers:l,onUpdateState:(g,f,T,C,y)=>{let k=[g,f,T,C,y];d(...k),t.onUpdateState&&tT(t.onUpdateState,k)},autoConnect:!!m,configs:{wallets:s.wallets,walletOptions:{[ei.TON_CONNECT]:{provider:{manifestUrl:s.tonConnect?.manifestUrl}},[ei.OKX]:{provider:{tonConnectManifestUrl:s.tonConnect?.manifestUrl}},[ei.TREZOR]:{provider:{manifest:s.trezorManifest}},[ei.WALLET_CONNECT_2]:{provider:{WC_PROJECT_ID:s.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:s.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,meta:a}},[ei.LEDGER_WALLET]:{provider:s.ledgerWallet}}}},t.children))}r(j0,"Main");function ts(t){let{config:e,...o}=t;return Ra.createElement(ju,{config:e},Ra.createElement(j0,{...o,config:e}))}r(ts,"WidgetWallets");import{globalCss as X0}from"@rango-dev/ui";var rT=r(()=>X0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");import{useWallets as Y0}from"@rango-dev/wallets-react";import{useEffect as Z0,useRef as J0}from"react";function iT(){let{connect:t,state:e}=Y0(),o=J0({}),{fetchStatus:n}=S(),i=new URLSearchParams(location.search).get("autoConnect")||"",a=e(i);Z0(()=>{n==="success"&&i&&a.installed&&!a.connecting&&!a.connected&&!o.current[i]&&(o.current[i]=!0,t(i))},[a,n])}r(iT,"useForceAutoConnect");import{isApprovalTX as R0,RouteEventType as aT,StepEventType as sT,StepExecutionEventStatus as eW,WidgetEvents as os}from"@rango-dev/queue-manager-rango-preset";import{useEffect as lT}from"react";function Ip(){let t=Pe.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=S();lT(()=>{let i=r(a=>{let{event:s,step:c,route:l}=a;if(s.type===sT.TX_EXECUTION&&s.status===eW.TX_SENT&&!R0(c)||s.type===sT.SUCCEEDED){let u=[],d=l.wallets[c?.fromBlockchain];if(d){let m=e.find(h=>h.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&h.walletType===d.walletType&&h.chain===c?.fromBlockchain);m&&u.push(m)}if(c?.fromBlockchain!==c?.toBlockchain){let m=l.wallets[c?.toBlockchain];if(m){let h=e.find(g=>g.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&g.walletType===m.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let m=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(f=>m.some(T=>T.blockchain===f.blockchain&&T.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&T.symbol?.toLocaleLowerCase()===f.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return ge.on(os.StepEvent,i),()=>ge.off(os.StepEvent,i)},[ge,e]),lT(()=>{let i=r(a=>{let{event:s,route:c}=a;(s.type===aT.FAILED||s.type===aT.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return ge.on(os.RouteEvent,i),()=>ge.off(os.RouteEvent,i)},[ge])}r(Ip,"useSubscribeToWidgetEvents");import{useManager as tW}from"@rango-dev/queue-manager-react";import{useEffect as oW}from"react";function Ap(){let{isSynced:t,syncNotifications:e}=Pe(),{manager:o,state:n}=tW();oW(()=>{if(Pe.persist.hasHydrated()&&n.loadedFromPersistor&&!t){let a=Et(o);e(a),a.forEach(({swap:s})=>{if(!(s.status==="running"&&s.steps.length>1))return;let l=s.steps.findIndex(p=>p.status!=="success");l!==-1&&te({type:"swapResumed",payload:{routeId:s.requestId,stepCount:s.steps.length,stepNumber:l+1}})})}},[Pe.persist.hasHydrated(),n.loadedFromPersistor,t])}r(Ap,"useSyncNotifications");function Wp(){iT(),rT(),Ip(),Ap();let t=S().blockchains(),{canSwitchNetworkTo:e}=pT(),[o,n]=cT(null),[i,a]=cT(),s=iW(es),c=t.filter(rW);Np(()=>()=>lm(),[]),Np(()=>()=>cm(),[]),nW({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:i,evmChains:c,canSwitchNetworkTo:e}),Np(()=>(Oo.init(),Pe.persist.hasHydrated()||Pe.persist.rehydrate(),s.onConnectWallet(l=>{n(p=>{if(!p||p.walletType!==l.walletType)return l;let u={...p};return l.network&&(u.network=l.network),l.accounts&&(u.accounts=l.accounts),u})}),s.onDisconnectWallet(l=>{a(l),n(p=>l===p?.walletType?null:p)}),Oo.destroy),[])}r(Wp,"useBootstrap");import{styled as aW}from"@rango-dev/ui";var uT=aW("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left",height:"100%","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function an(){Wp();let{config:t}=S(),{activeTheme:e}=yo(t?.theme||{}),{activeLanguage:o}=xo();return Pp.createElement(sW,{language:o},Pp.createElement(uT,{id:"swap-container",className:e()},Pp.createElement(JS,null)))}r(an,"Main");import{setSolanaSignerConfig as AW}from"@rango-dev/signer-solana";import Bp,{useEffect as _p,useMemo as NW}from"react";function dT(){let{setWatermark:t,setShowProfileBanner:e}=re();return{fetchApiConfig:r(async()=>{let n=await fetch(`${Xt("BASE_URL")}/meta/dapp/config?apiKey=${Xt("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let i=await n.json();t(i.config.watermark),e(i.config.banners.profile)},"fetchApiConfig")}}r(dT,"useFetchApiConfig");import{useState as lW}from"react";var cW=r(()=>{let[t,e]=lW(null),o=r(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=r(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:r(a=>{n();let s=su(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),mT=cW;import{convertEvmBlockchainMetaToEvmChainInfo as pW}from"@rango-dev/internal-blockchains";import{checkWaitingForNetworkChange as uW,makeQueueDefinition as dW}from"@rango-dev/queue-manager-rango-preset";import{Provider as mW}from"@rango-dev/queue-manager-react";import{useWallets as fW}from"@rango-dev/wallets-react";import{isEvmBlockchain as gW}from"rango-types";import hW,{useMemo as yW}from"react";function SW(t){let{getSigners:e,state:o,connect:n,canSwitchNetworkTo:i,getWalletInfo:a,hubProvider:s}=fW(),c=yW(()=>dW({API_KEY:t.apiKey||Xt("API_KEY"),BASE_URL:Xt("BASE_URL"),emitter:{emit:ge.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=S(),u=l(),d={blockchains:p.map(k=>({accounts:[k],name:k.chain}))},m=r(async(k,w)=>i(k,w.network,w)?await Mt(n(k,[w]),{trigger:"queue-manager",source:"user",walletType:k,namespaces:[w.namespace]}):void 0,"switchNetwork"),h=r(k=>!!a(k).mobileWallet,"isMobileWallet"),g=u.filter(k=>k.enabled).reduce((k,w)=>(k[w.name]=w,k),{}),f=u.filter(gW),T=r(k=>{let{supportedChains:w}=a(k);return mi(w)},"getSupportedChainNames"),C={meta:{blockchains:g,evmBasedChains:f,evmNetworkChainInfo:pW(f),getSupportedChainNames:T},getSigners:async k=>{try{return await e(k)}catch(w){throw wt(w)??w}},wallets:d,switchNetwork:m,canSwitchNetworkTo:i,state:o,isMobileWallet:h,hubProvider:s},y=re.use.isActiveTab();return hW.createElement(mW,{queuesDefs:[c],context:C,onPersistedDataLoaded:k=>{uW(k)},isPaused:!y},t.children)}r(SW,"QueueManager");var fT=SW;import{useManager as vW}from"@rango-dev/queue-manager-react";import EW,{createContext as bW,useContext as xW}from"react";function gT(){let{findToken:t}=S(),e=S().blockchains(),o=S().tokens(),{setFromBlockchain:n,setFromToken:i,setToBlockchain:a,setToToken:s,setInputAmount:c}=z()();return r(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:m,toToken:h,requestAmount:g}=p,f={blockchains:e,tokens:o};if(u!==void 0){let T=e.find(C=>C.name===u)??null;n(T)}if(d!==void 0){let T=d?t(d)??null:null;i({meta:f,token:T})}if(m!==void 0){let T=e.find(C=>C.name===m)??null;a(T)}if(h!==void 0){let T=h?t(h)??null:null;s({meta:f,token:T})}g!==void 0&&c(g)},"updateQuoteInputs")}r(gT,"useUpdateQuoteInputs");import{cancelSwap as TW,getCurrentNamespaceOfOrNull as CW,getCurrentStep as kW,getRelatedWalletOrNull as wW}from"@rango-dev/queue-manager-rango-preset";var ns=class{static{r(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Et(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=Li(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&TW(o)}getCurrentStepInfo(e){let o=kW(e);return{step:o,wallet:o?wW(e,o):null,network:o?CW(e,o)?.network:null}}};var hT=bW(void 0);function Lp(t){let{manager:e}=vW(),o=re.use.isActiveTab(),n=z().use.retry(),{findToken:i,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=S(),l=new ns(e,{retrySwap:n,findToken:i}),{fetchingWallets:p}=S(),u=Eu(a()),d=S().blockchains(),m=S().tokens(),h=S().swappers(),g=S().fetchStatus,f=xo().resetLanguage,T=Pe().getNotifications(),C=Pe().clearNotifications,y=gT(),{fromBlockchain:k,toBlockchain:w,fromToken:v,toToken:I,inputAmount:A}=z()(),b={isActiveTab:o,setCurrentTabAsActive:Oo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async x=>c(x)},meta:{blockchains:d,tokens:m,swappers:h,loadingStatus:g,findToken:i},resetLanguage:f,notifications:{list:T,clearAll:C},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:v?{symbol:v.symbol,blockchain:v.blockchain,address:v.address}:null,toBlockchain:w?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:A},updateQuoteInputs:y}};return EW.createElement(hT.Provider,{value:b},t.children)}r(Lp,"WidgetInfo");function yT(){let t=xW(hT);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}r(yT,"useWidget");import{Provider as IW}from"@hub3js/core";function ST(t){return typeof t=="string"||t instanceof IW}r(ST,"isHubWallet");function qn(t){let{onUpdateState:e,config:o}=t,n=o?.wallets;if(n&&!n.every(ST))throw new Error("Legacy providers aren't supported anymore. Expected a provider with version '1.0.0'.");let i=t.config?.theme?.fontFamily,{fetchApiConfig:a}=dT(),{handleLoadCustomFont:s}=mT();return _p(()=>{a().catch(console.log)},[]),_p(()=>{i&&s(i)},[i]),NW(()=>{Pu({API_KEY:o?.apiKey||Xp(),BASE_URL:o?.apiUrl||Jp})},[o.apiKey,o.apiUrl]),_p(()=>{t.config?.signers?.customSolanaRPC&&AW("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Bp.createElement(ts,{config:{...o,wallets:n},onUpdateState:e},Bp.createElement(fT,{apiKey:o.apiKey},Bp.createElement(Lp,null,t.children)))}r(qn,"WidgetProvider");function TT(t){let e=t.config?.externalWallets;return rs.createElement(Wi,null,e?rs.createElement(an,null):rs.createElement(qn,{config:t.config??Xn},rs.createElement(an,null)))}r(TT,"Refuel");import is from"react";function CT(t){let e=t.config?.externalWallets;return is.createElement(Wi,null,e?is.createElement(an,null):is.createElement(qn,{config:t.config??Xn},is.createElement(an,null)))}r(CT,"Widget");function kT(){let{on:t,off:e}=ge;return{on:t,off:e}}r(kT,"useWidgetEvents");var Ute={DerivationPath:lr,Namespaces:ir,Detached:sr,isOnDerivationPath:pr,isOnNamespace:cr,isOnDetached:Lo};export{fte as EventSeverity,mn as MainEvents,ute as Networks,wte as PendingSwapNetworkStatus,tr as QuoteEventTypes,TT as Refuel,gte as RouteEventType,ps as SUPPORTED_FONTS,Ute as StatefulConnect,hte as StepEventType,yte as StepExecutionBlockedEventStatus,Ste as StepExecutionEventStatus,xd as SwapModeContext,kt as UI_ID,Re as UiEventTypes,Ti as WalletEventTypes,Cte as WalletEvents,CT as Widget,mn as WidgetEvents,qn as WidgetProvider,ts as WidgetWallets,ul as customizedThemeTokens,ls as pickProviderVersion,dte as readAccountAddress,ln as useStatefulConnect,xt as useWalletList,pT as useWallets,yT as useWidget,kT as useWidgetEvents,FC as widgetEventEmitter};
|
|
3
4
|
//# sourceMappingURL=index.js.map
|