@rango-dev/widget-embedded 0.45.1-next.1 → 0.45.1-next.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CustomDestination/CustomDestination.styles.d.ts +1 -0
- package/dist/components/CustomDestination/CustomDestination.styles.d.ts.map +1 -1
- package/dist/components/NamespaceItem/NamespaceItem.d.ts +4 -0
- package/dist/components/NamespaceItem/NamespaceItem.d.ts.map +1 -0
- package/dist/components/{WalletStatefulConnect/Namespaces.helpers.d.ts → NamespaceItem/NamespaceItem.helpers.d.ts} +1 -1
- package/dist/components/NamespaceItem/NamespaceItem.helpers.d.ts.map +1 -0
- package/dist/components/NamespaceItem/NamespaceItem.styles.d.ts +1450 -0
- package/dist/components/NamespaceItem/NamespaceItem.styles.d.ts.map +1 -0
- package/dist/components/NamespaceItem/NamespaceItem.types.d.ts +13 -0
- package/dist/components/NamespaceItem/NamespaceItem.types.d.ts.map +1 -0
- package/dist/components/{WalletStatefulConnect → NamespaceItem}/NamespaceUnsupportedItem.d.ts +1 -1
- package/dist/components/NamespaceItem/NamespaceUnsupportedItem.d.ts.map +1 -0
- package/dist/components/NamespaceItem/SupportedChainsList.d.ts.map +1 -0
- package/dist/components/NamespaceItem/SupportedChainsList.styles.d.ts.map +1 -0
- package/dist/components/NamespaceItem/SupportedChainsList.types.d.ts.map +1 -0
- package/dist/components/NamespaceItem/index.d.ts +2 -0
- package/dist/components/NamespaceItem/index.d.ts.map +1 -0
- package/dist/components/Slippage/Slippage.d.ts.map +1 -1
- package/dist/components/Slippage/Slippage.styles.d.ts +0 -162
- package/dist/components/Slippage/Slippage.styles.d.ts.map +1 -1
- package/dist/components/StatefulConnectModal/StatefulConnectModal.d.ts.map +1 -1
- package/dist/components/SwapDetails/RequestIdRow.d.ts +4 -0
- package/dist/components/SwapDetails/RequestIdRow.d.ts.map +1 -0
- package/dist/components/SwapDetails/SwapDateRow.d.ts +4 -0
- package/dist/components/SwapDetails/SwapDateRow.d.ts.map +1 -0
- package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.types.d.ts +7 -0
- package/dist/components/SwapDetails/SwapDetails.types.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.ConnectWallet.d.ts +4 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.ConnectWallet.d.ts.map +1 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.InstallWallet.d.ts +4 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.InstallWallet.d.ts.map +1 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.NetworkState.d.ts +4 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.NetworkState.d.ts.map +1 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.styles.d.ts +320 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.styles.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts +29 -10
- package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/Detached.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/Detached.styles.d.ts +161 -0
- package/dist/components/WalletStatefulConnect/Detached.styles.d.ts.map +1 -0
- package/dist/components/WalletStatefulConnect/Detached.types.d.ts +1 -0
- package/dist/components/WalletStatefulConnect/Detached.types.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/NamespaceDetachedItem.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/NamespaceListItem.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/Namespaces.styles.d.ts +281 -1730
- package/dist/components/WalletStatefulConnect/Namespaces.styles.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts +0 -3
- package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts.map +1 -1
- package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts.map +1 -1
- package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts +1 -1
- package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts.map +1 -1
- package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts +1 -2
- package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts.map +1 -1
- package/dist/hooks/useSwapInput.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +4 -4
- package/dist/store/slices/wallets.d.ts +2 -2
- package/dist/store/slices/wallets.d.ts.map +1 -1
- package/dist/types/quote.d.ts +1 -1
- package/dist/types/quote.d.ts.map +1 -1
- package/dist/types/wallets.d.ts +1 -0
- package/dist/types/wallets.d.ts.map +1 -1
- package/dist/utils/swap.d.ts +1 -0
- package/dist/utils/swap.d.ts.map +1 -1
- package/dist/widget-embedded.build.json +1 -1
- package/package.json +7 -7
- package/src/components/{WalletStatefulConnect/Namespaces.helpers.ts → NamespaceItem/NamespaceItem.helpers.ts} +1 -1
- package/src/components/NamespaceItem/NamespaceItem.styles.ts +93 -0
- package/src/components/NamespaceItem/NamespaceItem.tsx +117 -0
- package/src/components/NamespaceItem/NamespaceItem.types.ts +14 -0
- package/src/components/{WalletStatefulConnect → NamespaceItem}/NamespaceUnsupportedItem.tsx +3 -3
- package/src/components/NamespaceItem/index.ts +1 -0
- package/src/components/Quote/Quote.tsx +4 -4
- package/src/components/Slippage/Slippage.styles.ts +0 -23
- package/src/components/Slippage/Slippage.tsx +24 -26
- package/src/components/StatefulConnectModal/StatefulConnectModal.tsx +4 -0
- package/src/components/SwapDetails/RequestIdRow.tsx +73 -0
- package/src/components/SwapDetails/SwapDateRow.tsx +21 -0
- package/src/components/SwapDetails/SwapDetails.tsx +39 -83
- package/src/components/SwapDetails/SwapDetails.types.ts +7 -0
- package/src/components/SwapDetailsModal/SwapDetailsModal.ConnectWallet.tsx +177 -0
- package/src/components/SwapDetailsModal/SwapDetailsModal.InstallWallet.tsx +52 -0
- package/src/components/SwapDetailsModal/SwapDetailsModal.NetworkState.tsx +17 -0
- package/src/components/SwapDetailsModal/SwapDetailsModal.WalletState.tsx +22 -62
- package/src/components/SwapDetailsModal/SwapDetailsModal.styles.ts +20 -1
- package/src/components/SwapDetailsModal/SwapDetailsModal.tsx +24 -35
- package/src/components/SwapDetailsModal/SwapDetailsModal.types.ts +31 -10
- package/src/components/WalletStatefulConnect/Detached.styles.ts +6 -0
- package/src/components/WalletStatefulConnect/Detached.tsx +21 -4
- package/src/components/WalletStatefulConnect/Detached.types.ts +1 -0
- package/src/components/WalletStatefulConnect/NamespaceDetachedItem.tsx +20 -106
- package/src/components/WalletStatefulConnect/NamespaceListItem.tsx +9 -34
- package/src/components/WalletStatefulConnect/Namespaces.styles.ts +2 -94
- package/src/components/WalletStatefulConnect/Namespaces.tsx +1 -1
- package/src/components/WalletStatefulConnect/Namespaces.types.tsx +0 -4
- package/src/containers/Wallets/useUpdates.ts +1 -1
- package/src/hooks/useConfirmSwap/useConfirmSwap.helpers.ts +10 -23
- package/src/hooks/useConfirmSwap/useConfirmSwap.ts +19 -4
- package/src/hooks/useStatefulConnect/useStatefulConnect.ts +23 -7
- package/src/hooks/useSwapInput.ts +13 -4
- package/src/hooks/useWalletList.ts +1 -1
- package/src/store/slices/wallets.ts +11 -5
- package/src/types/quote.ts +1 -1
- package/src/types/wallets.ts +1 -0
- package/src/utils/swap.ts +10 -5
- package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts +0 -4
- package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts.map +0 -1
- package/dist/components/WalletStatefulConnect/NamespaceUnsupportedItem.d.ts.map +0 -1
- package/dist/components/WalletStatefulConnect/Namespaces.helpers.d.ts.map +0 -1
- package/dist/components/WalletStatefulConnect/SupportedChainsList.d.ts.map +0 -1
- package/dist/components/WalletStatefulConnect/SupportedChainsList.styles.d.ts.map +0 -1
- package/dist/components/WalletStatefulConnect/SupportedChainsList.types.d.ts.map +0 -1
- package/src/components/SwapDetailsModal/SwapDetailsModal.helpers.tsx +0 -26
- /package/dist/components/{WalletStatefulConnect → NamespaceItem}/SupportedChainsList.d.ts +0 -0
- /package/dist/components/{WalletStatefulConnect → NamespaceItem}/SupportedChainsList.styles.d.ts +0 -0
- /package/dist/components/{WalletStatefulConnect → NamespaceItem}/SupportedChainsList.types.d.ts +0 -0
- /package/src/components/{WalletStatefulConnect → NamespaceItem}/SupportedChainsList.styles.ts +0 -0
- /package/src/components/{WalletStatefulConnect → NamespaceItem}/SupportedChainsList.tsx +0 -0
- /package/src/components/{WalletStatefulConnect → NamespaceItem}/SupportedChainsList.types.ts +0 -0
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var bS=Object.defineProperty;var i=(t,e)=>bS(t,"name",{value:e,configurable:!0});import{EventSeverity as _Z,RouteEventType as DZ,StepEventType as $Z,StepExecutionBlockedEventStatus as FZ,StepExecutionEventStatus as OZ}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as zZ}from"@rango-dev/wallets-core/legacy";import{useWallets as Fi,Events as qZ}from"@rango-dev/wallets-react";import{Networks as GZ,WalletTypes as VZ}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as jZ}from"rango-types";import{Divider as DT}from"@rango-dev/ui";import to,{useEffect as $T,useRef as FT,useState as Vu}from"react";import{WalletState as xS}from"@rango-dev/ui";import{useWallets as ES}from"@rango-dev/wallets-react";import{useReducer as IS}from"react";function up(t){return!!t.derivationPath}i(up,"isStateOnDerivationPathStep");function dp(t){return!!t.namespace}i(dp,"isStateOnNamespace");var Dr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function mp(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 Dr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Dr;default:throw new Error("Action hasn't been defined.")}}i(mp,"reducer");function Uo(){let{state:t,disconnect:e,connect:o}=ES(),[n,r]=IS(mp,Dr),a=i(async(u,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(u,g),{status:"connected"}}catch(g){let m=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:g})}},"runConnect"),s=i(async(u,f)=>{if(u.state===xS.DISCONNECTED){let g=!!u.isHub,m=g?u.properties?.find(y=>y.name==="namespaces")?.value:u.needsNamespace,d=g?u.properties?.find(y=>y.name==="derivationPath")?.value:u.needsDerivationPath;if(!m?.data?.length)return await a(u.type,void 0,f);if(m?.data.length&&m.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:u,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(m?.data.length===1){if(d){let y=m.data[0];return r({type:"needsDerivationPath",payload:{providerType:u.type,providerImage:u.image,namespace:y.value}}),{status:"derivation-path"}}return await a(u.type,m?.data?.map(y=>({namespace:y.value})),f)}}if(u.isHub){let g=u.properties?.find(m=>m.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:u,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await p(u.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(u,f)=>{let h=!!u.isHub,g=h?u.properties?.find(S=>S.name==="namespaces")?.value:u.needsNamespace,m=h?u.properties?.find(S=>S.name==="derivationPath")?.value:u.needsDerivationPath,d=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(d&&m)return r({type:"needsDerivationPath",payload:{providerType:u.type,providerImage:u.image,namespace:y}}),{status:"derivation-path"};if(!dp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=f.map(S=>({namespace:S}));return r({type:"detached",payload:{targetWallet:u,selectedNamespaces:C?.map(S=>S.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async u=>{if(!u)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!up(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let f=n.derivationPath.providerType,g=[{namespace:n.derivationPath.namespace,derivationPath:u}];return await a(f,g)},"handleDerivationPath"),p=i(async u=>{let f=t(u);return f.connected||f.connecting?(await e(u),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:p,handleNamespace:c,handleDerivationPath:l,getState:()=>n,resetState:u=>{r(u==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Uo,"useStatefulConnect");import{WalletState as cs}from"@rango-dev/ui";import{useWallets as $C}from"@rango-dev/wallets-react";import{detectMobileScreens as FC,KEPLR_COMPATIBLE_WALLETS as OC,WalletTypes as On}from"@rango-dev/wallets-shared";import{useCallback as UC,useEffect as zC}from"react";import LC,{createContext as MC,useContext as PC,useEffect as _C,useRef as DC}from"react";import{create as BC}from"zustand";import{persist as WC}from"zustand/middleware";import{allProviders as AS}from"@rango-dev/provider-all";var Ua=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()}},zo=new Ua;import{defineVersions as gp,pickVersion as hp,Provider as za}from"@rango-dev/wallets-core";function yp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=Sp(a);return s instanceof za?s.id===n:s.config.type===n});r?o.push(r):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else n instanceof za?o.push(gp().version("1.0.0",n).build()):o.push(gp().version("0.0.0",n).build())}),o}return t}i(yp,"matchAndGenerateProviders");function Sp(t){try{return hp(t,"1.0.0")[1]}catch{return hp(t,"0.0.0")[1]}}i(Sp,"pickProviderVersionWithFallbackToLegacy");function Cp(t){return t.map(o=>Sp(o)).map(o=>o instanceof za?o.id:o.config.type)}i(Cp,"configWalletsToWalletName");function $r(t,e){return e.find(o=>o.name===t)?.displayName}i($r,"getBlockchainDisplayNameFor");function ft(t,e){return e.find(o=>o.name===t)?.shortName}i(ft,"getBlockchainShortNameFor");function Tp(t,e){return e.find(o=>o.name===t)?.logo}i(Tp,"getBlockchainImage");function Bn(t,e){return e.find(o=>o.id===t)?.title}i(Bn,"getSwapperDisplayName");function So(t,e){return e.find(o=>o.name===t)??null}i(So,"findBlockchain");function Qa(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(Qa,"isTokenNative");function gt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(gt,"createTokenHash");function Qo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Qo,"isValidTokenAddress");function Wn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=gt(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{c.has(l)||a(o.tokensMapByBlockchainName[l])})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=gt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Wn,"matchTokensFromConfigWithMeta");function Fr(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(Fr,"getSupportedBlockchainsFromConfig");function vp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(vp,"makeProvidersOptionsFromConfig");var Or={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/manifests/tonconnect-manifest.json"}},NS={clientUrl:void 0},BS={liquiditySources:void 0};function kp(t){let e=vp(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return AS(o).map(a=>a())}i(kp,"generateProviders");var wp=i((t,e,o)=>{let n=kp({...Or,...t});return{config:{...Or,...t},iframe:NS,campaignMode:BS,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c}=o(),l=Wn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=Wn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});zo.set("supportedSourceTokens",l),zo.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=kp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=vp(a);return yp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as bp}from"rango-types";var xp=[bp.EVM,bp.SOLANA],Ur="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as GS}from"rango-sdk";import{UI_ID as WS}from"@rango-dev/ui";var zr="c6381a79-2817-4602-83bf-6a641a409e32",Ep="https://api.rango.exchange",Ip="https://explorer.rango.exchange",Qe={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...WS};import{BlockchainCategories as FS,WalletState as it}from"@rango-dev/ui";import{legacyReadAccountAddress as OS}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as US,getCosmosExperimentalChainInfo as zS,isEvmAddress as QS,KEPLR_COMPATIBLE_WALLETS as ZN,Networks as jp}from"@rango-dev/wallets-shared";import Ho from"bignumber.js";import{isCosmosBlockchain as qS}from"rango-types";import LS from"bignumber.js";var de=new LS(0);import{WalletTypes as MS}from"@rango-dev/wallets-shared";var Co="~",Ap=[MS.LEAP];import{BlockchainCategories as Ha,WalletState as $S}from"@rango-dev/ui";import{TransactionType as Qr}from"rango-sdk";var Np="Roboto",qa=[{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 qo(t){return Array.from(new Set(t))}i(qo,"removeDuplicateFrom");function qr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(qr,"debounce");function rt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(rt,"containsText");function Lp(t,e){return t.toLowerCase()===e.toLowerCase()}i(Lp,"exactText");function Mp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Mp,"startWithText");var N=i(()=>document.getElementById(Qe.SWAP_BOX_ID),"getContainer"),To=i(()=>document.getElementById(Qe.EXPANDED_BOX_ID),"getExpanded");function Pp(t,e,o){let n=!!e&&Lp(e,t),r=!!o&&Lp(o,t);return n!==r?n?-1:1:0}i(Pp,"compareExactMatchText");function Ga(t,e,o){let n=!!e&&rt(e,t),r=!!o&&rt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ga,"compareContainsText");function Va(t,e,o){let n=!!e&&Mp(e,t),r=!!o&&Mp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Va,"compareStartWithText");function _p(t,e,o){if(!o)return 0;let n=Pp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Pp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Va(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ga(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Va(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ga(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Va(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ga(o,t.address,e.address);if(r!==0)return r}return 0}i(_p,"compareWithSearchFor");var Hr=i((t,e)=>{switch(e){case Ha.ALL:return!0;case Ha.UTXO:return t===Qr.TRANSFER;case Ha.OTHER:return t!==Qr.TRANSFER&&t!==Qr.COSMOS&&t!==Qr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Dp=i(t=>qa.find(o=>o.value===t)?.url,"getFontUrlByName");function $p(t,e){let o=!!t.find(n=>n.state===$S.CONNECTED);return e===!1&&o}i($p,"isSingleWalletActive");function Fp(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(Fp,"memoizedResult");import{BigNumber as Vp}from"bignumber.js";function Op(t){return t.replace(/^0+(?=\d)/g,"")}i(Op,"removeLeadingZeros");function Up(t){return t.replace(/^\.(\d+)/,"0.$1")}i(Up,"ensureLeadingZeroForDecimal");function zp(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(zp,"formatThousandsWithCommas");function Qp(t){return t.replace(/\s+/g,"-")}i(Qp,"replaceSpacesWithDash");function qp(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(qp,"stripTrailingZeros");function Gr(t){return/^0+(?:\.0+)?$/.test(t)}i(Gr,"isZeroValue");function Hp(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(Hp,"isValidCurrencyFormat");function Gp(t){return/\d+$/.test(t)}i(Gp,"isColorKeyOverridden");var Ln=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),_=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Vp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Vp(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 Vr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Nt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Mn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Kp(t){return Gr(t)?"0":qp(t)}i(Kp,"sanitizeInputAmount");function Pn(t){return t.connected?it.CONNECTED:t.connecting?it.CONNECTING:t.installed?it.DISCONNECTED:it.NOT_INSTALLED}i(Pn,"mapStatusToWalletState");function Xp(t,e,o,n){return o.filter(r=>!Ap.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:f,properties:h,isHub:g}=e(r),m=qo(u.map(y=>y.type)),d=Pn(t(r));return{title:a,image:s,link:US(c),state:d,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:m,needsDerivationPath:f,properties:h,isHub:g}})}i(Xp,"mapWalletTypesToWalletInfo");function _n(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(_n,"walletAndSupportedChainsNames");function ja(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(h=>h.chain===l)){let h={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(h)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=OS(l),f=c.length>0,h=c.includes(u),g=u===jp.Unknown;if(f&&!h&&!g)return;let d=u===jp.Unknown&&QS(p);if(g&&!d)return;o.includes(u)||d?r?s(u,p.toLowerCase(),r):c.filter(S=>o.includes(S)).forEach(S=>{s(S,p.toLowerCase())}):s(u,p)}),a}i(ja,"prepareAccountsForWalletStore");function ko(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 f=p.from.blockchain,h=p.to.blockchain,g=a===o.swaps.length-1,m=u===l.length-1;(!g&&!m||g&&c!==f||e==="all")&&n.add(f),e==="all"&&n.add(h)})}e==="all"&&n.add(c)}),Array.from(n)}i(ko,"getQuoteChains");function Dn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Dn,"isAccountAndWalletMatched");var Yp=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?Ka(n.usdValue,n.decimals):de.toFixed();return o.plus(r)},new Ho(de));return HS(e.toString())},"calculateWalletUsdValue");function HS(t){let e=t.toString().split(".");return e[0]=zp(e[0]),e.join(".")}i(HS,"numberWithThousandSeparator");var Xr=i((t,e)=>{let o=zS(Object.entries(t).map(([,n])=>n).filter(qS));return o&&o[e]?.experimental},"isExperimentalChain");function Ka(t,e){return new Ho(t).shiftedBy(-e).toFixed()}i(Ka,"representAmountInNumber");function Yr(t){if(!t)return null;let e=Ka(t.amount,t.decimals),o=t.usdValue?Ka(t.usdValue,t.decimals):null,n=_(e,8,8),r=o?_(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(Yr,"formatBalance");function Zp(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Ho(t.usdValue).shiftedBy(-t.decimals):de,n=e&&e.usdValue?new Ho(e.usdValue).shiftedBy(-e.decimals):de;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Ho(t.amount).shiftedBy(-t.decimals):de,n=e&&e.amount?new Ho(e.amount).shiftedBy(-e.decimals):de;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Zp,"compareTokenBalance");function Ft(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Ft,"areTokensEqual");function Jp(t,e){return t.map(o=>({isPartiallyConnected:Xa(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===it.CONNECTED&&!n.isPartiallyConnected)-+(o.state===it.CONNECTED&&!o.isPartiallyConnected)||+(n.state===it.CONNECTED)-+(o.state===it.CONNECTED)||+(n.state===it.DISCONNECTED||n.state===it.CONNECTING)-+(o.state===it.DISCONNECTED||o.state===it.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(Jp,"sortWalletsBasedOnConnectionState");function Go(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(Go,"getConciseAddress");function Rp({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Rp,"getAddress");var eu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function tu(t){return t.map(e=>e.state).join("-")}i(tu,"hashWalletsState");function ou(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(ou,"filterBlockchainsByWalletTypes");function nu(t,e){return e===FS.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Hr(n,e))return!0;return!1})}i(nu,"filterWalletsByCategory");function Xa(t,e){return!t.isHub||!t.needsNamespace||t.state!==it.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(Xa,"checkIsWalletPartiallyConnected");var Ya={API_KEY:zr};function Ot(t){return Ya[t]||""}i(Ot,"getConfig");function ru(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ya=e,Ya}i(ru,"initConfig");var iu=20,au=25,Za="theme-widget",Ja=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Ft(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Ft(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Ra=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),su=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Zr,at=i(()=>Zr||(Zr=new GS(Ot("API_KEY"),Ot("BASE_URL")),Zr),"httpService");import{i18n as cu}from"@lingui/core";var Jr=[.5,1,3],Rr=1,Vo=5,$n=30,ei=0;import{WidgetEvents as lu}from"@rango-dev/queue-manager-rango-preset";var es=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(es||{}),ts=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(ts||{}),os=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(os||{}),Ko=(a=>(a[a.RouteEvent=lu.RouteEvent]="RouteEvent",a[a.StepEvent=lu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Ko||{});function ti(t,e){let o=t.map(a=>a.swapperGroup),n=[];return qo(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(ti,"getUniqueSwappersGroups");function pu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(pu,"sortLiquiditySourcesByGroupTitle");function Re(t,e){return e?.[t]==="hidden"}i(Re,"isFeatureHidden");function jo(t,e){return e?.[t]==="enabled"}i(jo,"isRoutingEnabled");var uu=i((t,e,o)=>Re("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function Xo(t){return t==ei?{type:"error",message:cu.t("Slippage must be greater than or equal to 0.01")}:t>Vo&&t<=$n?{type:"warning",message:cu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(Xo,"getSlippageValidation");var du=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=Fr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>xp.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",f=zo.get(u);f?.length||(f=Wn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),zo.set(u,f)),f=uu(f,s,a.features);let h=e().blockchains({type:o.type});return f.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!h.some(d=>d.name===m.blockchain)?!1:o.searchFor?!!(rt(m.symbol,o.searchFor)||rt(m.address||"",o.searchFor)||rt(m.name||"",o.searchFor)):!0).sort((m,d)=>{let y=e().isTokenPinned(m,o.type),C=e().isTokenPinned(d,o.type);if(y!==C)return y?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(m),A=o.getBalanceFor(d),E=Zp(I,A);if(E!==0)return E}let S=l.get(m.blockchain),k=l.get(d.blockchain),v=Qa(m,S),x=Qa(d,k);if(v!==x)return v?-1:1;if(m.isPopular!==d.isPopular)return m.isPopular?-1:1;if(o.searchFor){let I=_p(m,d,o.searchFor);if(I)return I}return m.isSecondaryCoin!==d.isSecondaryCoin?m.isSecondaryCoin?1:-1:S&&k?S.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=gt(o),s=n.get(a);return s||(s=r.find(c=>gt(c)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Ft(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(pu)},fetch:async()=>{try{let{routing:o}=e().config,n=jo("enableCentralizedSwappers",o),r=await at().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],p=r.popularTokens,u=r.swappers.filter(g=>g.enabled),f=new Set;r.tokens.forEach(g=>{f.add(g.blockchain),l.push(g)}),r.blockchains.sort((g,m)=>g.sort-m.sort).forEach(g=>{g.enabled&&f.has(g.name)&&a.set(g.name,g)}),l.forEach(g=>{let m=gt(g);c[g.blockchain]||(c[g.blockchain]=[]),s.set(m,g),c[g.blockchain].push(m)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as VS,Catalonia as KS,Chinese as mu,Denmark as jS,English as XS,Finland as YS,French as ZS,German as JS,Greece as RS,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 CC,Swedish as TC,Thai as kC,Turkish as vC,Ukrainian as wC,Vietnamese as bC}from"@rango-dev/ui";var fu=[{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:VS},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:KS},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:mu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:mu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:jS},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:lC},{title:"English",label:"English",local:"en",SVGFlag:XS},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:pC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:YS},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:ZS},{title:"German",label:"Deutsch",local:"de",SVGFlag:JS},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:RS},{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:CC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:TC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:kC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:vC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:wC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:cC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:bC}],Yo="en";var gu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Rr,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=qo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Re("theme",n),s=Re("language",n),c=Re("liquiditySource",n),l=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Yo},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||Yo}})},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=Fr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import ls from"bignumber.js";import xC from"mitt";var Te=xC(),EC={on:Te.on,off:Te.off};var hu=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 yu from"bignumber.js";function Ut(t){return`${t.blockchain}${Co}${t.address}${Co}${t.symbol}`}i(Ut,"createAssetKey");function Su(t,e){return`${Ut(e)}${Co}${t}`}i(Su,"createBalanceKey");function Fn(t){let[e,o,n]=t.split(Co);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Fn,"extractAssetFromBalanceKey");function rs(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Ut(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new yu(r??de).multipliedBy(o[s].amount).toString():""})})}),o}i(rs,"computeNextBalancesWithNewPrices");function is(t,e){let o={};return t.balances?.forEach(n=>{let r=Su(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new yu(c??de).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(is,"createBalanceStateForNewAccount");function as(t,e){for(let o in e){let n=Fn(o),r=Ut(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(as,"updateAggregatedBalanceStateForNewAccount");function IC(t,e){let o=Fn(e),n=Ut(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(IC,"removeBalanceFromAggregatedBalance");function ss(t,e,o){let n=t.connectedWallets.filter(l=>l.walletType===e);t.connectedWallets.forEach(l=>{l.walletType!==e&&(n=n.filter(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=Fn(l);!!n.find(f=>Su(f.address,{address:p.address,blockchain:f.chain,symbol:p.symbol})===l)?a=IC(a,l):r[l]=s[l]}),{_balances:r,_aggregatedBalances:a}}i(ss,"computeNextStateAfterWalletBalanceRemoval");function AC(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(AC,"matchWalletDetailsWithConnectedWallet");var NC=Fp(),Cu=hu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Dn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Dn(s,a))?{...a,loading:!1,error:!1,explorerUrl:AC(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Dn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n)=>{let r=e().connectedWallets,a=o.filter(s=>!r.some(c=>Dn(s,c)));if(a.length>0){let s=a.map(c=>{let l=!r.some(p=>p.chain===c.chain&&p.selected&&p.walletType!==c.walletType);return{address:c.address,chain:c.chain,isContractWallet:c.isContractWallet,explorerUrl:null,walletType:c.walletType,selected:l,namespace:n,loading:!1,error:!1}});t(c=>({connectedWallets:[...c.connectedWallets.filter(p=>!s.some(u=>u.walletType===p.walletType&&u.chain===p.chain)),...s]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=r.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address].push(...a[p.chain]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await at().getMultipleTokenBalance({assets:p.map(({symbol:f,address:h,blockchain:g})=>({symbol:f,address:h,blockchain:g})),walletAddress:l});if(u){let f=e()._balances,h=e()._aggregatedBalances;u.forEach(g=>{if(parseFloat(g.amount.amount)===0)return;let m={blockChain:g.asset.blockchain,balances:[g],address:l},d={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};rs(d,m,f);let y=is(m,e);h=as(h,y),f={...f,...y}}),t(g=>({_balances:{...g._balances,...f},_aggregatedBalances:h}))}}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)=>{Te.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o,n),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=ss(r,o,n);t({_balances:a,_aggregatedBalances:s})},disconnectNamespaces:(o,n)=>{if(e().connectedWallets.find(a=>a.walletType===o)){e().removeBalancesForWallet(o,{namespaces:n}),e()._changeSelectedWalletIfNeededOnRemove(o,{namespaces:n});let a=e().connectedWallets.filter(s=>s.namespace?!(s.walletType===o&&n.includes(s.namespace)):!0);t({connectedWallets:a})}},disconnectWallet:o=>{let n=e().connectedWallets.find(r=>r.walletType===o);if(Te.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0)return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await at().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(f=>{if(f.failed)return;let h={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};rs(h,f,l);let{_balances:g,_aggregatedBalances:m}=ss(h,r,{chains:[f.blockChain]});if(p=m,l=g,!e().connectedWallets.find(y=>y.walletType===r&&y.address===f.address&&y.chain===f.blockChain))return;let d=is(f,e);p=as(p,d),l={...l,...d}}),t(f=>({_balances:{...f._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let f=c.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.address}));f.length>0&&await e().fetchMainTokensBalances(f,{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=Ut(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let l=a[0];return n[l]}let c=n[a[0]];return a.forEach(l=>{let p=n[l],u=new ls(p.amount),f=new ls(c.amount);u.isGreaterThan(f)&&(c=p)}),c},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(Co);return 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=Fn(c);if(p.blockchain===n.chain){let u=e().findToken(p),f=l.amount?new ls(l.amount).shiftedBy(-l.decimals):de;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:f.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Tu(t){return BC()(WC((...e)=>({...Cu(...e),...du(...e),...gu(...e),...wp(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(Tu,"createAppStore");var ku=MC(null);function T(){let t=PC(ku);if(_C(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(T,"useAppStore");function vu(t){let e=DC();return e.current||(e.current=Tu(t.config)),LC.createElement(ku.Provider,{value:e.current},t.children)}i(vu,"AppStoreProvider");function Tt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=T(),{state:r,getWalletInfo:a}=$C(),s=T().blockchains(),{handleDisconnect:c}=Uo(),l=Cp(n()),p=Xp(r,a,l,e);p=FC()?p.filter(d=>d.showOnMobile!==!1&&r(d.type).installed):p;let u=Jp(p,r),f=i(d=>!o.find(y=>y.walletType===d&&y.chain===e),"isExperimentalChainNotAdded"),h=UC(()=>{let d=p?.filter(y=>y.state===cs.CONNECTING)||[];for(let y of d)c(y.type)},[tu(p)]);zC(()=>()=>{h()},[]);let g=i(d=>{let y=d.find(S=>S.type===On.DEFAULT);return!y||y.state===cs.NOT_INSTALLED?!1:d.filter(S=>S.state!=cs.NOT_INSTALLED&&![On.DEFAULT,On.WALLET_CONNECT_2,On.LEDGER].includes(S.type)&&a(S.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),m=i((d,y,C)=>Xr(C,y)&&f(d)&&!OC.includes(d)||d==On.DEFAULT&&!g(p),"shouldExcludeWallet");return{list:u.filter(d=>!m(d.type,e??"",s)),terminateConnectingWallets:h}}i(Tt,"useWalletList");import{Modal as GC}from"@rango-dev/ui";import VC from"react";import{create as HC}from"zustand";var wu="rango-widget";var Un=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(wu),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 qC=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"),Zo=qC;var te=Zo(HC()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),wo=new Un({onInit:()=>te.setState({tabManagerInitiated:!0}),onClaim:()=>te.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>te.setState({isActiveTab:!1})});function J(t){let{watermark:e}=te();return VC.createElement(GC,{hasWatermark:e==="FULL",...t},t.children)}i(J,"WatermarkedModal");import{i18n as rn}from"@lingui/core";import{Alert as oT,Button as nT,Divider as si,Image as rT,MessageBox as iT,RadioRoot as aT}from"@rango-dev/ui";import me,{useEffect as sT,useMemo as lT,useState as cT}from"react";import{Checkbox as JC,Radio as RC,Typography as eT}from"@rango-dev/ui";import eo from"react";function Jo(t,e){return t.find(o=>o.name===e)?.logo}i(Jo,"getBlockchainLogo");import{Button as KC,darkTheme as jC,Image as XC,styled as kt,Typography as YC}from"@rango-dev/ui";var oi=kt("ul",{padding:0,paddingTop:"$10",paddingBottom:"$20",margin:0}),Ro=kt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100 ",[`.${jC} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),en=kt("div",{display:"flex",gap:"$8",alignItems:"center"}),ni=kt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),xu=kt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),tn=kt(XC,{variants:{disabled:{true:{opacity:"0.5"}}}}),on=kt(KC,{minHeight:"$40"}),Eu=kt(YC,{maxWidth:"100px"}),Iu=kt("div",{paddingLeft:"48px"}),Au=kt("div",{display:"flex",gap:"2px",cursor:"pointer",alignItems:"center",width:"fit-content"}),Nu=kt("div",{display:"flex",gap:"6px",alignItems:"center"});import{Image as Wu,Tooltip as Lu,Typography as ZC}from"@rango-dev/ui";import Bt from"react";import{styled as Bu}from"@rango-dev/ui";var ps=Bu("div",{display:"flex",alignItems:"center",padding:0,margin:0}),ri=Bu("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 us=3;function ii(t){let{chains:e}=t;return Bt.createElement(ps,{id:"widget-supported-chains-container"},e.slice(0,us).map((o,n)=>Bt.createElement(Lu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Bt.createElement(ri,{firstItem:n===0},Bt.createElement(Wu,{src:o.logo,size:15})))),e.length>us&&Bt.createElement(Lu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Bt.createElement(ps,null,e.map((o,n)=>Bt.createElement(ri,{key:o.name,firstItem:n===0},Bt.createElement(Wu,{src:o.logo,size:15}))))},Bt.createElement(ri,null,Bt.createElement(ZC,{variant:"body",size:"xsmall"},"+",e.length-us))))}i(ii,"SupportedChainsList");function Mu(t){let{onClick:e,type:o,namespace:n}=t,r=T().blockchains(),a=n.getSupportedChains(r),s=a.length>1;return eo.createElement(Ro,{onClick:e,clickable:!0,className:"widget-namespace-list-item"},eo.createElement(en,null,eo.createElement(tn,{src:Jo(r,n.id),size:40}),eo.createElement(ni,{showSupportedChains:s},eo.createElement(eT,{variant:"label",size:"large"},n.label),s&&eo.createElement(ii,{chains:a})),o==="radio"?eo.createElement(RC,{value:n.value}):eo.createElement(JC,{checked:t.value})))}i(Mu,"NamespaceListItem");import{i18n as tT}from"@lingui/core";import{Typography as Pu}from"@rango-dev/ui";import nn from"react";function ai(t){let{namespace:e}=t,o=T().blockchains();return nn.createElement(Ro,{unsupported:!0},nn.createElement(en,null,nn.createElement(tn,{src:Jo(o,e.id),size:40,disabled:!0}),nn.createElement(xu,null,nn.createElement(Pu,{variant:"label",size:"large"},e.label),nn.createElement(Pu,{variant:"body",size:"xsmall"},tT.t("(Currently not supported)")))))}i(ai,"NamespaceUnsupportedItem");function zn(t){let{targetWallet:e}=t.value,o=e.properties?.find(d=>d.name==="namespaces"),n=e.isHub,r=e.isHub?o?.value.selection==="single":e.needsNamespace?.selection==="single",a=n?o?.value:e.needsNamespace,s=e.image,c=T().blockchains(),[l,p]=cT([]),u=lT(()=>a?.data.filter(d=>!d.unsupported),[e?.type]),f=i(d=>{p(r?[d]:y=>y.includes(d)?y.filter(C=>C!==d):y.concat(d))},"onSelect"),h=u?.length===l.length,g=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");h?p([]):u&&p(u.map(d=>d.value))},"onSelectAll"),m=i(d=>r?me.createElement(aT,{value:l?.[0]},d):me.createElement(me.Fragment,null,d),"wrapRadioRoot");return sT(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let d=u.filter(y=>y.getSupportedChains(c).some(C=>t.value.defaultSelectedChains?.includes(C.name)));p(d.map(y=>y.value))}else p(u.map(d=>d.value))},[]),me.createElement(me.Fragment,null,me.createElement(iT,{type:"info",title:rn.t("Connect {wallet}",{wallet:e.title}),description:rn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:me.createElement(rT,{src:s,size:45})}),r?me.createElement(me.Fragment,null,me.createElement(si,{size:20}),me.createElement(oT,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:rn.t("This wallet can only connect to one chain at a time. ")})):me.createElement(me.Fragment,null,me.createElement(si,{size:30}),me.createElement(nT,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:g},h?rn.t("Deselect all"):rn.t("Select all"))),me.createElement(oi,null,m(me.createElement(me.Fragment,null,a?.data.map((d,y,C)=>me.createElement(me.Fragment,{key:d.id},d.unsupported?me.createElement(ai,{namespace:d}):me.createElement(Mu,{value:l.includes(d.value),namespace:d,type:r?"radio":"checkbox",onClick:()=>f(d.value)}),y!==C.length-1&&me.createElement(si,{size:10})))))),me.createElement(si,{size:20}),me.createElement(on,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},rn.t("Connect")))}i(zn,"Namespaces");import{i18n as ds}from"@lingui/core";import{Divider as ms,Image as CT,MessageBox as TT}from"@rango-dev/ui";import st from"react";import{i18n as an}from"@lingui/core";import{Button as pT,ChevronDownIcon as uT,ChevronUpIcon as dT,Divider as mT,Spinner as fT,Typography as Qn}from"@rango-dev/ui";import{useWallets as gT}from"@rango-dev/wallets-react";import ke,{useEffect as hT,useLayoutEffect as yT,useRef as ST,useState as _u}from"react";var Du=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,a=T().blockchains(),{connect:s,disconnect:c,state:l}=gT(),[p,u]=_u(null),[f,h]=_u(!1),m=l(o).namespaces?.get(n.value),d=m.accounts?.[0]?.split(":"),y=n.getSupportedChains(a),C=ST(!1);hT(()=>h(!1),[p]),yT(()=>{r&&!C.current&&S(o,n.value)},[]);let S=i(async(x,I)=>{try{C.current=!0,await s(x,[{namespace:I,network:""}])}catch(A){u(A)}finally{C.current=!1}},"handleConnectNamespace"),k=i(async x=>{u(null),x.connected?await c(o,[n.value]):S(o,n.value)},"handleButtonClick"),v=i(()=>m.connected?an.t("Disconnect"):p?an.t("Try again"):an.t("Connect"),"getButtonText");return ke.createElement(Ro,{hasError:!!p},ke.createElement(en,null,ke.createElement(tn,{src:Jo(a,n.id),size:40}),ke.createElement(ni,null,ke.createElement(Nu,{className:"widget-namespace-detached-item-info-div"},ke.createElement(Qn,{variant:"label",size:"large"},n.label),m.connected&&ke.createElement(Qn,{variant:"body",size:"small",color:"success500"},an.t("Connected")),!m.connected&&!!p&&ke.createElement(Qn,{variant:"body",size:"small",color:"error500"},an.t("Connection failed"))),m.connected&&ke.createElement(Eu,{variant:"body",size:"small",color:"neutral700"},Go(d?.[d?.length-1])),!m.connected&&p&&ke.createElement(Au,{className:"widget-namespace-detached-item-error-toggle-btn",onClick:()=>h(x=>!x)},ke.createElement(Qn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},an.t("See why")),f?ke.createElement(dT,{size:12,color:"gray"}):ke.createElement(uT,{size:12,color:"gray"})),!m.connected&&!p&&y.length>1&&ke.createElement(ii,{chains:y})),m.connecting?ke.createElement(fT,{color:"info"}):ke.createElement(pT,{id:"widget-name-space-connect-btn",variant:"ghost",type:m.connected?"error":"primary",size:"small",onClick:async()=>k(m)},v())),!m.connected&&!!p&&f&&ke.createElement(ke.Fragment,null,ke.createElement(mT,{size:4}),ke.createElement(Iu,{id:"widget-namespace-item-error-div"},ke.createElement(Qn,{variant:"body",size:"small",color:"neutral700"},p.cause?.message||p.message))))},"NamespaceDetachedItem");function qn(t){let{selectedNamespaces:e,value:o}=t,{targetWallet:n}=o;return st.createElement(st.Fragment,null,st.createElement(TT,{type:"info",title:ds.t("Connect {wallet}",{wallet:n.type}),description:ds.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:st.createElement(CT,{src:n.image,size:45})}),st.createElement(ms,{size:20}),st.createElement(oi,{id:"widget-detached-namespace-list",as:"ul"},n.needsNamespace?.data.map((r,a,s)=>st.createElement(st.Fragment,{key:r.id},r.unsupported?st.createElement(ai,{namespace:r}):st.createElement(Du,{walletType:n.type,namespace:r,initialConnect:e?.includes(r.value)}),a!==s.length-1&&st.createElement(ms,{size:10})))),st.createElement(ms,{size:20}),st.createElement(on,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},ds.t("Done")))}i(qn,"Detached");import{i18n as sn}from"@lingui/core";import{Divider as Fu,Image as bT,MessageBox as xT,Select as ET,TextField as IT}from"@rango-dev/ui";import ht,{useEffect as AT,useState as Ou}from"react";import{namespaces as kT}from"@rango-dev/wallets-shared";var li={id:"custom",label:"Custom",generateDerivationPath:t=>t};function fs(t){let e=t?kT[t].derivationPaths:null;return e?[...e,li]:[]}i(fs,"getDerivationPaths");import{Button as vT,styled as gs,Typography as wT}from"@rango-dev/ui";var $u=gs("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),hs=gs(wT,{paddingLeft:"$10"}),ys={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},mM=gs(vT,{minHeight:"$40"});var Uu="0";function Hn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Ou(null),[c,l]=Ou(Uu),p=a===li.id,u=fs(o),f=i(({value:g})=>{let m=u?.find(d=>d.id===g);m&&(a===li.id&&Number.isNaN(Number(c))&&l(Uu),s(m.id))},"handleDerivationPathItemClick"),h=i(()=>{let g=u.find(m=>m.id===a);if(g)e(g.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return AT(()=>{s(fs(o)[0]?.id||null)},[o]),ht.createElement(ht.Fragment,null,ht.createElement(Fu,{size:20}),ht.createElement(xT,{type:"info",title:sn.t("Select Derivation Path"),description:sn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:ht.createElement(bT,{src:n,size:45})}),ht.createElement($u,null,ht.createElement(hs,{variant:"body",size:"xsmall",color:"$neutral600"},sn.t("Choose Derivation Path Template")),ht.createElement(ET,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(g=>({value:g.id,label:g.label})),variant:"filled",handleItemClick:f,styles:{trigger:ys}}),ht.createElement(Fu,{size:20}),ht.createElement(hs,{variant:"body",size:"xsmall",color:"$neutral600"},p?sn.t("Enter Path"):sn.t("Enter Index")),ht.createElement(IT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:g=>l(g.target.value),style:ys})),ht.createElement(on,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!u||!a||!c},sn.t("Confirm")))}i(Hn,"DerivationPath");import{i18n as ln}from"@lingui/core";import{Image as WT,MessageBox as Ss,WalletState as LT}from"@rango-dev/ui";import{useWallets as MT}from"@rango-dev/wallets-react";import bo from"react";import{keyframes as NT,styled as ci}from"@rango-dev/ui";var bM=ci("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),zu=ci("div",{position:"relative"}),BT=NT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Qu=ci("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${BT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),qu=ci("div",{"& img":{borderRadius:"50%"}});function Cs(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=MT();return Pn(a(n))===LT.CONNECTED?bo.createElement(Ss,{type:"success",title:ln.t("Wallet Connected"),description:ln.t("Your wallet is connected, you can use it to swap.")}):o?bo.createElement(Ss,{type:"error",title:ln.t("Failed to Connect"),description:o||ln.t("Your wallet is not connected. Please try again.")}):bo.createElement(Ss,{type:"loading",title:ln.t("Connecting to your wallet"),description:ln.t("Click connect in your wallet popup."),icon:bo.createElement(zu,null,bo.createElement(qu,null,bo.createElement(WT,{src:r,size:45})),bo.createElement(Qu,null))})}i(Cs,"ConnectStatus");import{i18n as Ts}from"@lingui/core";import{Button as PT,Divider as Hu,MessageBox as _T}from"@rango-dev/ui";import pi from"react";function ks(t){let{displayName:e,onConfirm:o,id:n}=t;return pi.createElement(_T,{id:n,title:Ts.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Ts.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},pi.createElement(Hu,{size:18}),pi.createElement(Hu,{size:32}),pi.createElement(PT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Ts.t("Confirm")))}i(ks,"ExperimentalChain");function Gu(t,e){return t().status==="init"&&!!e}i(Gu,"isOnStatus");function Gn(t){return t().status==="namespace"}i(Gn,"isOnNamespace");function Vn(t){return t().status==="derivationPath"}i(Vn,"isOnDerivationPath");function Kn(t){return t().status==="detached"}i(Kn,"isOnDetached");var OT=3e3,UT=300;function xo(t){let e=FT(),[o,n]=Vu(!1),[r,a]=Vu(),s=i(k=>{a(k.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=Tt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:f,resetState:h}=Uo(),g=i(k=>{u(t.wallet,k).then(S).catch(s)},"handleConfirmNamespaces"),m=i(()=>{y()},"handleDetachedConfirm"),d=i(k=>{if(!k)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(k).then(S).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),S=i((k,v)=>{let x=k.status==="connected",I=["disconnected","disconnected-unhandled"].includes(k.status);x?(t.onConnect?.(),v||(e.current=setTimeout(y,OT))):I&&y()},"afterConnected");return $T(()=>{if(t.wallet){C();let k=!1,v=!0;i(()=>{setTimeout(()=>{v=!1,k||n(!0)},UT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(I=>{["namespace","Detached","derivation-path"].includes(I.status)||(k=!0),S(I,v)}).catch(s)}},[t.wallet]),to.createElement(J,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},Gu(f,t.wallet)&&to.createElement(to.Fragment,null,to.createElement(Cs,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),to.createElement(DT,{direction:"vertical",size:32})),Gn(f)&&to.createElement(zn,{onConfirm:g,value:f().namespace}),Vn(f)&&to.createElement(Hn,{onConfirm:d,value:f().derivationPath}),Kn(f)&&to.createElement(qn,{onConfirm:m,value:f().namespace,selectedNamespaces:f().selectedNamespaces}))}i(xo,"StatefulConnectModal");import{Provider as GT}from"@rango-dev/wallets-react";import ui,{createContext as VT,useEffect as Zu,useMemo as KT,useRef as Ju}from"react";import{useEffect as zT}from"react";function Ku(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Ku,"hashProviders");function vs(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=T(),a=n();return zT(()=>{o(),r()},[Ku(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(vs,"useWalletProviders");import{legacyFormatAddressWithNetwork as QT,legacyReadAccountAddress as ju}from"@rango-dev/wallets-core/legacy";import{Events as cn}from"@rango-dev/wallets-react";import{isEvmBlockchain as qT}from"rango-sdk";function Xu(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=T(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(qT).map(d=>d.name),u=i((d,y)=>{let[C,,S,k,v]=d,x={walletType:C,network:k.network??void 0,accounts:S};c.current?c.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let I=ja(C,S,p,y.supportedChainNames,v.isContractWallet);I.length&&e(I,v.namespace)},"onAccountsEvent"),f=i((d,y,C,S,k)=>{if(y===cn.ACCOUNTS){let v=_n(k.supportedBlockchains);C&&u([d,y,C,S,k],{supportedChainNames:v})}y===cn.PROVIDER_DISCONNECTED&&(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),y===cn.NAMESPACE_DISCONNECTED&&n(d,C)},"handleUpdatesForHub"),h=i((d,y,C,S,k)=>{if(y===cn.ACCOUNTS){let v=_n(k.supportedBlockchains),x=[],I=[];if(C?.forEach(E=>{let{network:b}=ju(E);p.includes(b)?x.push(E):I.push(E)}),r.filter(E=>E.walletType===d).map(E=>QT(E.address,E.chain)).length>0){if(x.length>0){let E=ja(d,x,p,v,k.isContractWallet);a(d,{chains:E.map(b=>b.chain)})}I.length>0&&a(d,{chains:I.map(E=>{let{network:b}=ju(E);return b})})}C?u([d,y,C,S,k],{supportedChainNames:v}):(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),g=i((d,y,C,S,k)=>{if(y===cn.CONNECTED&&C){let v={walletType:d,network:S.network??void 0,accounts:S.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(y===cn.NETWORK&&C){let v={walletType:d,network:C,accounts:S.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((d,y,C,S,k)=>{k.isHub?f(d,y,C,S,k):h(d,y,C,S,k),g(d,y,C,S,k)},"handler")}}i(Xu,"useUpdates");import{LegacyEvents as HT}from"@rango-dev/wallets-core/legacy";function Yu(t,e){let[o,n,r,a,s]=e;n!==HT.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(Yu,"propagateEvents");var di=VT({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function jT(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=T(),a=T().blockchains(),s=T().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=vs(s.wallets,c),p=Ju(),u=Ju(),{handler:f}=Xu({onConnectWalletHandler:p,onDisconnectWalletHandler:u});Zu(()=>{n().catch(console.log)},[]),Zu(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let h=te.use.isActiveTab(),g=KT(()=>({onConnectWallet:m=>{p.current=m},onDisconnectWallet:m=>{u.current=m}}),[]);return ui.createElement(di.Provider,{value:g},ui.createElement(GT,{allBlockChains:a,providers:l,onUpdateState:(m,d,y,C,S)=>{let k=[m,d,y,C,S];f(...k),t.onUpdateState&&Yu(t.onUpdateState,k)},autoConnect:!!h,configs:{wallets:s.wallets}},t.children))}i(jT,"Main");function mi(t){let{config:e,...o}=t;return ui.createElement(vu,{config:e},ui.createElement(jT,{...o,config:e}))}i(mi,"WidgetWallets");import Oa from"react";import XT,{Fragment as YT}from"react";import{MemoryRouter as ZT,useInRouterContext as JT}from"react-router";function Ru({children:t}){let o=JT()?YT:ZT;return XT.createElement(o,null,t)}i(Ru,"AppRouter");import{I18nManager as S0}from"@rango-dev/ui";import lp from"react";import Oe from"react";import{useRoutes as i0}from"react-router-dom";var F={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as un,useRef as ki}from"react";import et from"bignumber.js";import{create as ok}from"zustand";import{subscribeWithSelector as nk}from"zustand/middleware";import{i18n as vt}from"@lingui/core";import{getRelatedWalletOrNull as tk,RouteEventType as f_}from"@rango-dev/queue-manager-rango-preset";import He from"bignumber.js";import{PendingSwapNetworkStatus as Ci}from"rango-types";import{i18n as qe}from"@lingui/core";var oe=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 ed(t){return t.type===0?t.diagnosisMessage??oe().noResultError.title:t.type===1?t.diagnosisMessage??oe().genericServerError:""}i(ed,"getQuoteErrorMessage");import{i18n as fi}from"@lingui/core";var Eo=i(()=>({connectWallet:fi.t("Connect Wallet"),swap:fi.t("Swap"),swapAnyway:fi.t("Swap anyway"),ethWarning:fi.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function ws(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(ws,"getFeeLabel");var bs=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],td=100,od=30,nd=15,rd=60;var id=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],ad=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as ek}from"@rango-dev/queue-manager-rango-preset";import e_ from"bignumber.js";function ld(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(ld,"getRequiredBalanceOfWallet");function Qt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Qt,"getPriceImpactLevel");function gi(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=ek(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=So(a?a.toBlockchain:n.fromBlockchain,e),l=So(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),f=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:f}}i(gi,"createRetryQuote");function pn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=jn(o),s=yt(o);if(o&&a&&s){let p=zt(a.toString(),s.toString());if(!!p&&md(a,p)){let f=yi(o?.swaps,n),h=Qt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:f,warningLevel:h}}}if(e&&hd(e,o))return{type:4,usdValueChange:_(yt(o)?.minus(yt(e)??0).toString()??"0",null,2),percentageChange:_(zt(yt(e)??"1",yt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=Si(o.swaps),l=r>Vo;if(gd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:fd(o,r),minRequiredSlippage:c};return null}i(pn,"generateQuoteWarnings");function cd(t){return![4].includes(t.type)}i(cd,"isQuoteWarningConfirmationRequired");function zt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:xs(t.toString(),e.toString());return n&&n<0?n:null}i(zt,"getPriceImpact");var pd=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"),hi=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"),ud=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(c=>c.swapperId));return Array.from(n).every(c=>s.has(c))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),dd=i(t=>{let e=i((o,n)=>{let r=bs.indexOf(o.value),a=bs.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function md(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return id.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new He(r)))}i(md,"hasHighValueLoss");function yd(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new He(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new He(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(yd,"hasLimitError");function Sd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new He(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new He(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0],o=e.fromAmountMinValue?new He(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new He(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=vt.t({id:"Required: >= {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=vt.t({id:"Required: > {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=vt.t({id:"Required: <= {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=vt.t({id:"Required: < {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Sd,"getLimitErrorMessage");function Cd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Eo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Eo().swap,action:"confirm-swap",disabled:!0}:s?{title:Eo().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Eo().ethWarning,action:"confirm-warning",disabled:!1}:{title:Eo().swap,action:"confirm-swap",disabled:!1}:{title:Eo().connectWallet,action:"connect-wallet",disabled:!1}}i(Cd,"getSwapButtonState");function Es(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(de))&&e&&e!=="0"&&n!==0)}i(Es,"canComputePriceImpact");function Is(t,e){let o=de;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new He(r.amount).multipliedBy(a||0))}return o}i(Is,"getUsdFeeOfStep");function yi(t,e){return t.reduce((o,n)=>o.plus(Is(n,e)),de)}i(yi,"getTotalFeeInUsd");function As(t){let e=de,o=new He(t.price||0);return e=e.plus(new He(t.amount).multipliedBy(o)),e}i(As,"getUsdFee");function Td(t){return t.reduce((e,o)=>e.plus(As(o)),de)}i(Td,"getTotalFeesInUsd");function kd(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(kd,"getFeesGroup");function vd(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(vd,"checkSlippageErrors");function fd(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(fd,"checkSlippageWarnings");function Si(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(Si,"getMinRequiredSlippage");function gd(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(gd,"hasProperSlippage");function wd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:f,affiliateWallets:h,destination:g,contractCall:m}=t,d=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),y=[];return r?.forEach(S=>{y.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:f??void 0,affiliateWallets:h??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:y,selectedWallets:d??{},slippage:p.toString(),contractCall:m,...g&&{destination:g},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(wd,"createQuoteRequestBody");function bd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(bd,"getWalletsForNewSwap");function jn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(jn,"getUsdInputFrom");function yt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(yt,"getUsdOutputFrom");function xs(t,e){return new He(e).div(new He(t)).minus(1).multipliedBy(td).toNumber()}i(xs,"getPercentageChange");function hd(t,e){let o=jn(t),n=yt(t),r=yt(e);if(!o||!n||!r)return!1;let a=xs(n.toString(),r.toString());return ad.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(hd,"isOutputAmountChangedExcessively");function xd(t,e,o){let n=t.validationStatus,r=ko({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>ld(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=_(new He(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=_(new He(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=vt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=vt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=vt.t(" for input and network fee")),vt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:ft(s.asset.blockchain,o)}})})}i(xd,"generateBalanceWarnings");function Xn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Ci.NetworkChanged}i(Xn,"isNetworkStatusInWarningState");function Ed(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,"")),Xn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?tk(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case Ci.WaitingForConnectingWallet:r=u?vt.t("Connect {wallet}",{wallet:u}):r;break;case Ci.WaitingForQueue:r=r||vt.t("Waiting for other running tasks to be finished");break;case Ci.WaitingForNetworkChange:r=r||vt.t("Waiting for changing wallet network");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(Ed,"getSwapMessages");function Id(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(Id,"getLastConvertedTokenInFailedSwap");function Ad(t){return t.status==="failed"}i(Ad,"shouldRetrySwap");function Nd(t,e,o,n,r,a){if(!n||t)return!0;let s=ko({filter:"all",quote:n}),c=ko({filter:"required",quote:n}),l=s.every(f=>r.some(h=>h.chain===f)),p=c.every(f=>r.some(h=>h.chain===f)),u=o&&a?Qo(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Nd,"isConfirmSwapDisabled");function Bd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Bd,"isTokensIdentical");var Ti=i((t,e)=>t?.usdPrice?new et(e||de).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Zo(ok()(nk(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new et(0),outputUsdValue:new et(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=de,a=o.inputUsdValue;return Mn(o.inputAmount)?(e&&(n=e?.outputAmount?new et(e?.outputAmount):null,a=jn(e)??de,r=yt(e)??de),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new et(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new et(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new et(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:Ti(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 et(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=Kp(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;Gr(e)||(o=Op(o),o=Up(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new et(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Ti(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:Ti(n??null,s),outputUsdValue:new et(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?Ti(e.toToken,e.outputAmount?.toString()||""):new et(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new et(0),inputUsdValue:new et(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new et(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})})))),Wd=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Te.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&Te.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function Ld(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=O(),u=T().config,f=T().fetchStatus,h=T().blockchains(),{findToken:g}=T(),{setAffiliateRef:m,setAffiliatePercent:d,setAffiliateWallets:y}=T(),C=u?.from?.tokens,S=u?.from?.blockchains,k=u?.to?.tokens,v=u?.to?.blockchains,x=ki(void 0),I=ki(void 0),A=ki(void 0),E=ki(void 0);un(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),un(()=>{if(f==="success"){r();let b=h.find(P=>P.name===u?.from?.blockchain),w=u?.from?.token,B=w&&g(w);(b||!b&&A.current)&&n(b??null),B?a({token:B,meta:{blockchains:h}}):!B&&x.current&&a({token:null}),A.current=u?.from?.blockchain,x.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,f]),un(()=>{Ja(s,C)&&a({token:null}),Ra(l,S)&&n(null)},[C,S]),un(()=>{Ja(c,k)&&a({token:null}),Ra(p,v)&&o(null)},[k,v]),un(()=>{if(f==="success"){r();let b=h.find(P=>P.name===u?.to?.blockchain),w=u?.to?.token,B=w&&g(w);(b||!b&&E.current)&&o(b??null),B?e({token:B,meta:{blockchains:h}}):!B&&I.current&&e({token:null}),E.current=u?.to?.blockchain,I.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,f]),un(()=>{m(u?.affiliate?.ref??null),d(u?.affiliate?.percent??null),y(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Ld,"useSyncStoresWithConfig");import{useEffect as Ws,useRef as rk}from"react";import{useInRouterContext as ik,useLocation as ak,useSearchParams as sk}from"react-router-dom";function Ns(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Ns,"convertTokenSearchParamToAsset");function Bs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Bs,"tokenToSearchParam");function Ms(){let t=ak(),[e,o]=sk(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:f,setInputAmount:h}=O(),g=T().fetchStatus,m=T().blockchains(),d=ik(),{updateIframe:y,updateCampaignMode:C}=T(),S=T().isInCampaignMode(),k=rk(),{findToken:v}=T(),x=i(()=>{let A={};for(let[L,ae]of e.entries())L.startsWith("utm_")&&(A[L]=ae);let E=e.get("fromAmount"),b=e.get("fromBlockchain"),w=e.get("fromToken"),B=e.get("toBlockchain"),P=e.get("toToken"),$=e.get("autoConnect"),q=e.get("clientUrl"),R=e.get("liquiditySources"),K=e.get("blockchain");return{fromAmount:E,fromBlockchain:b,fromToken:w,toBlockchain:B,toToken:P,autoConnect:$,clientUrl:q,liquiditySources:R,utmQueryParams:A,blockchain:K}},"getUrlSearchParams"),I=i(A=>{for(let E in A)A[E]||delete A[E];o(A,{replace:!0})},"updateUrlSearchParams");Ws(()=>{let{autoConnect:A,clientUrl:E,utmQueryParams:b,blockchain:w}=x();d&&g==="success"&&I({fromBlockchain:n?.name,fromToken:Bs(a),toBlockchain:r?.name,toToken:Bs(s),fromAmount:c,autoConnect:A??void 0,clientUrl:E??void 0,blockchain:w??void 0,liquiditySources:S?k.current:void 0,...b})},[t.pathname,c,n,a,r,s,S,g]),Ws(()=>{if(!d)return;let A=x();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&h(A.fromAmount),g==="success"){let E=m.find(P=>P.name===A.fromBlockchain),b=A.fromToken&&E?v(Ns(A.fromToken,E)):void 0,w=m.find(P=>P.name===A.toBlockchain),B=A.toToken&&w?v(Ns(A.toToken,w)):void 0;E&&(l(E),b&&u({token:b,meta:{blockchains:m}})),w&&(p(w),B&&f({token:B,meta:{blockchains:m}}))}},[g]),Ws(()=>{let{clientUrl:A,liquiditySources:E}=x();y("clientUrl",A||void 0),C("liquiditySources",E?.split(",")??void 0)},[])}i(Ms,"useSyncUrlAndStore");import{i18n as hn}from"@lingui/core";import{Alert as Av,Button as Nv,darkTheme as Bv,Divider as pl,DoneIcon as Wv,styled as Lv,TextField as Mv,Typography as Pv}from"@rango-dev/ui";import Ve,{useState as _v}from"react";import{useNavigate as Dv,useSearchParams as $v}from"react-router-dom";import{ChevronRightIcon as lk,Divider as $d,Image as ck,Typography as Fd}from"@rango-dev/ui";import wt from"react";import{darkTheme as Md,styled as Ps}from"@rango-dev/ui";var Pd=Ps("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Md} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Md} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),_d=Ps("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),Dd=Ps("div",{display:"flex"});function _s(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return wt.createElement(_d,null,wt.createElement(Fd,{size:"large",variant:"label"},n),wt.createElement($d,{size:10}),wt.createElement(Pd,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},wt.createElement(Dd,null,r&&wt.createElement(wt.Fragment,null,wt.createElement(ck,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),wt.createElement($d,{size:4,direction:"horizontal"})),wt.createElement(Fd,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),wt.createElement(lk,{size:12,color:"black"})))}i(_s,"BlockchainSelectorButton");import{i18n as Us}from"@lingui/core";import{Button as mk,Divider as Qd,MessageBox as fk}from"@rango-dev/ui";import oo,{useEffect as qd,useState as zs}from"react";import{i18n as vi}from"@lingui/core";import{Divider as Io,ExternalLinkIcon as uk,Image as dk,Typography as mn}from"@rango-dev/ui";import ve from"react";var Od="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function Ud(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Ud,"generateExplorerLink");import{Button as pk,darkTheme as dn,styled as Ds}from"@rango-dev/ui";var $s=Ds("a",{textDecoration:"none",color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${dn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${dn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),zd=Ds("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${dn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"}}}),Fs=Ds(pk,{minHeight:"$40"});function Os(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=Ud(n.address,s),l=i(()=>window.open(Od,"_blank"),"onClickLearnMore");return ve.createElement(J,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},ve.createElement(zd,null,ve.createElement(dk,{src:n.image===""?Ur:n.image,size:45,type:"circular"}),ve.createElement(Io,{size:4}),ve.createElement(mn,{variant:"title",size:"medium"},n.symbol),ve.createElement(mn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),ve.createElement(Io,{size:4}),ve.createElement(mn,{variant:"body",size:"medium"},c?ve.createElement($s,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,ve.createElement(uk,{size:12,color:"gray"})):ve.createElement($s,null,n.address)),ve.createElement(Io,{size:4}),n.coinSource&&ve.createElement(mn,{className:"_coin-source",variant:"body",size:"xsmall"},vi.t("via")," ",ve.createElement(mn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),ve.createElement(Io,{size:"32"}),ve.createElement(mn,{size:"medium",variant:"body",className:"_custom-token-description"},vi.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."))),ve.createElement(Io,{size:40}),ve.createElement(Io,{size:10}),ve.createElement(Fs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},vi.t("Import Anyway")),ve.createElement(Io,{size:10}),ve.createElement(Fs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},vi.t("Learn More")))}i(Os,"CustomTokenModal");function Yn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=T(),[f,h]=zs(!1),[g,m]=zs(!1),[d,y]=zs(!1),C=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),S=i(()=>{n?.type!=="network-error"&&s?.(),h(!1)},"closeErrorModal"),k=i(()=>{y(!0),S()},"handleErrorModalButtonClick"),v=i(()=>{d&&n?.type==="network-error"&&(y(!1),C()),l()},"handleExit"),x=i(()=>{e&&(u(e),c())},"handleSubmit");return qd(()=>{n&&h(!0)},[n]),qd(()=>{o&&e&&m(!0)},[o,e]),oo.createElement(oo.Fragment,null,oo.createElement(J,{open:f,dismissible:!0,id:"widget-add-custom-token-modal",onClose:S,onExit:v,container:N()},oo.createElement(fk,{title:n?.title??"",type:"error",description:n?.message||Us.t("Failed Network, Please retry.")},oo.createElement(Qd,{size:40}),oo.createElement(Qd,{size:10}),oo.createElement(mk,{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"?Us.t("Retry"):Us.t("Add another custom token")))),o&&e&&oo.createElement(Os,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>m(!1),open:g,onExit:p}))}i(Yn,"ImportCustomToken");import{useManager as vv}from"@rango-dev/queue-manager-react";import{BottomLogo as wv,Divider as km,Header as bv}from"@rango-dev/ui";import Ne,{useEffect as Wi,useLayoutEffect as xv,useRef as vm,useState as wm}from"react";import{useRef as gk}from"react";function Zn(){return window.self!==window.top}i(Zn,"isAppLoadedIntoIframe");function Qs(){let t=gk(null),{iframe:e}=T(),o=Zn()&&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(Qs,"useIframe");import{useNavigate as hk}from"react-router-dom";function Ge(){let t=hk();return()=>t(-1)}i(Ge,"useNavigateBack");import{useLayoutEffect as yk,useState as Jn}from"react";var Hd=480,Gd=768,Vd=1024,Kd=1200,Sk=i(()=>{let[t,e]=Jn(!1),[o,n]=Jn(!1),[r,a]=Jn(!1),[s,c]=Jn(!1),[l,p]=Jn(!1),u=i(()=>{e(window.innerWidth<=Hd),n(window.innerWidth>Hd&&window.innerWidth<=Gd),a(window.innerWidth>Gd&&window.innerWidth<=Vd),c(window.innerWidth>Vd&&window.innerWidth<=Kd),p(window.innerWidth>Kd)},"handleResize");return yk(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),fn=Sk;import{createTheme as Xs,darkTheme as Wk,lightTheme as Lk}from"@rango-dev/ui";import{useEffect as Mk,useState as Pk}from"react";import{theme as Nk,darkColors as Bk}from"@rango-dev/ui";import Ks from"react";var wi=16,bi=255,jd=.11;function Ck(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Ck,"expandShortHexColor");function Tk(t,e){return t.padStart(e,"0")}i(Tk,"pad");function qs(t){let e=Math.min(Math.max(Math.round(t),0),bi);return Tk(e.toString(wi),2)}i(qs,"intToHex");function kk(t){return`#${qs(t.red)}${qs(t.green)}${qs(t.blue)}`}i(kk,"rgbToHex");function vk(t){let e=parseInt(t.slice(1,3),wi),o=parseInt(t.slice(3,5),wi),n=parseInt(t.slice(5,7),wi);return{red:e,green:o,blue:n}}i(vk,"hexToRGB");function wk(t,e){let o=1-jd*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(wk,"generateShade");function bk(t,e){let o=jd*e;return{red:t.red+(bi-t.red)*o,green:t.green+(bi-t.green)*o,blue:t.blue+(bi-t.blue)*o}}i(bk,"generateTint");function xk(t){return Xd(t,wk)}i(xk,"calculateShades");function Ek(t){return Xd(t,bk)}i(Ek,"calculateTints");function Xd(t,e){let o=vk(t),n=[];for(let r=1;r<9;r++)n.push(kk(e(o,r)));return n}i(Xd,"calculateColors");function Hs(t,e,o){let a=Ek(t).reverse().concat(t),s=xk(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let f=100+(o?p-1-u:u)*50;l[`${e}${f}`]=c[u]}return l}i(Hs,"createTintsAndShades");function Gs(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)&&!Gp(r)){let l=Ck(a);Object.assign(n,Hs(l,r,s))}}return{...n,...e}}i(Gs,"expandToGenerateThemeColors");var Yd=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Ik=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Yd(o%52)+e;return Yd(o%52)+e},"toAlphabeticName"),Ak=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Vs=i(t=>Ik(Ak(5381,JSON.stringify(t))>>>0),"toHash");function js(t){let e=Nk.colors,o={...e,...Bk},n,r;if(t?.light){let s={colors:Gs(e,t.light)};n={id:`${Za}-light-${Vs(s)}`,tokens:s}}if(t?.dark){let s={colors:Gs(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Za}-dark-${Vs(s)}`,tokens:s}}return{light:n,dark:r}}i(js,"customizedThemeTokens");function Zd(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ks.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ks.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(Ks.cloneElement(e,{key:c}))}}),o}i(Zd,"joinList");function Jd(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Jd,"doesWindowPreferDarkColorScheme");function no(t){let{colors:e,fontFamily:o=Np,borderRadius:n=iu,secondaryBorderRadius:r=au}=t,[a,s]=Pk(Jd()?"dark":"light"),{theme:c}=T(),{dark:l,light:p}=js(e),u=Xs({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[u.className,Lk.className],h=[u.className,Wk.className];if(p){let m=Xs(p.id,p.tokens);f.push(m.className)}if(l){let m=Xs(l.id,l.tokens);h.push(m.className)}return Mk(()=>{let m=i(d=>{d.matches?s("dark"):s("light")},"switchThemeListener");return Jd()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",m),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",m)}},[]),{activeTheme:i(()=>{let m=f.join(" "),d=h.join(" ");return c==="auto"?a==="dark"?d:m:c==="dark"?d:m},"getActiveTheme"),mode:c==="auto"?a:c}}i(no,"useTheme");var St=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Rd}from"@lingui/core";import{Alert as _k,Button as Dk}from"@rango-dev/ui";import em from"react";function Ys(t){return em.createElement(_k,{action:em.createElement(Dk,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Rd.t("Activate this tab")),type:"warning",variant:"alarm",title:Rd.t("Another tab is open and handles transactions.")})}i(Ys,"ActivateTabAlert");import{i18n as Zs}from"@lingui/core";import{Button as $k,Divider as Fk,MessageBox as Ok}from"@rango-dev/ui";import xi from"react";function Js(t){let{open:e,onClose:o,onConfirm:n}=t;return xi.createElement(J,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},xi.createElement(Ok,{title:Zs.t("Activate current tab"),type:"warning",description:Zs.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.")},xi.createElement(Fk,{size:20}),xi.createElement($k,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Zs.t("Confirm"))))}i(Js,"ActivateTabModal");import{ChevronLeftIcon as Qk}from"@rango-dev/ui";import lm from"react";import{css as Uk,darkTheme as tm,IconButton as zk,styled as Ao}from"@rango-dev/ui";var Lt=Ao(zk,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${tm} &`]:{backgroundColor:"$neutral"}}}),om=Ao("div",{position:"absolute",background:"$secondary500",[`.${tm} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),ro=Ao("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),nm=Ao("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"}}}}),rm=Ao("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),im=Ao("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),am=Uk({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),sm=Ao("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function Rs(t){return lm.createElement(Lt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},lm.createElement(Qk,{color:"black",size:16}))}i(Rs,"BackButton");import{i18n as qk}from"@lingui/core";import{Button as Hk,Typography as Gk}from"@rango-dev/ui";import el from"react";function tl(t){return el.createElement(ro,null,el.createElement(Hk,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},el.createElement(Gk,{variant:"label",size:"medium",color:"error500"},qk.t("Cancel"))))}i(tl,"CancelButton");import{i18n as Vk}from"@lingui/core";import{Image as Kk,Tooltip as jk,WalletIcon as Xk}from"@rango-dev/ui";import No from"react";function ol(t){let{list:e}=Tt(),o=e.filter(r=>r.state==="connected"),n=o.length?No.createElement("div",{className:am()},o.map(r=>No.createElement(sm,{key:r.title},No.createElement(Kk,{src:r.image,size:14})))):Vk.t("Connect Wallet");return No.createElement(jk,{container:t.container,side:"bottom",content:n},No.createElement(Lt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&No.createElement(om,null),No.createElement(Xk,{size:18,color:"black"})))}i(ol,"WalletButton");import{i18n as Ii}from"@lingui/core";import{NotificationsIcon as uv,Popover as dv,SettingsIcon as mv,Tooltip as Ai,TransactionIcon as fv}from"@rango-dev/ui";import Pe from"react";import{Notifications as Rk}from"@rango-dev/ui";import ev from"react";import{useNavigate as tv}from"react-router-dom";import{create as Yk}from"zustand";import{persist as Zk,subscribeWithSelector as Jk}from"zustand/middleware";var Ae=Zo(Yk()(Zk(Jk((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function nl(){let t=tv(),{getNotifications:e,clearNotifications:o}=Ae(),n=e(),r=T().blockchains(),{findToken:a}=T();return ev.createElement(Rk,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Tp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${F.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(nl,"NotificationContent");import{useManager as ov}from"@rango-dev/queue-manager-react";import{InProgressIcon as nv}from"@rango-dev/ui";import cm from"react";var rv=i(()=>{let{manager:t}=ov();return St(t).map(({swap:o})=>o).find(o=>o.status==="running")?cm.createElement(im,{id:"widget-header-history-badge-container"},cm.createElement(nv,{color:"info",size:6})):null},"InProgressTransactionBadge"),pm=rv;import{EventSeverity as iv}from"@rango-dev/queue-manager-rango-preset";import{Typography as av}from"@rango-dev/ui";import um from"react";function dm(){let{getNotifications:t}=Ae(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===iv.WARNING);return o?um.createElement(nm,{isSever:n},um.createElement(av,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(dm,"NotificationsBadge");import{RefreshProgressButton as sv}from"@rango-dev/ui";import rl,{useEffect as lv,useState as mm}from"react";var cv=1e3,fm=60,pv=100;function Ei({onClick:t}){let[e,o]=mm(0),[n,r]=mm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");lv(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===fm&&c()},cv):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 rl.createElement(Lt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},rl.createElement(rm,{onTransitionEnd:()=>r(!1),isRefetched:n},rl.createElement(sv,{size:22,color:t?"black":"gray",progress:e/fm*pv})))}i(Ei,"RefreshButton");function Bo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=T(),c=Re("notification",s)||r.includes("notifications");return Pe.createElement(Pe.Fragment,null,!r.includes("refresh")&&Pe.createElement(Ai,{container:a||N(),side:"top",content:Ii.t("Refresh")},Pe.createElement(Ei,{onClick:e})),!c&&Pe.createElement(dv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:Pe.createElement(nl,null)},Pe.createElement("div",null,Pe.createElement(Ai,{container:N(),side:"top",content:Ii.t("Notifications")},Pe.createElement(Lt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Pe.createElement(uv,{size:18,color:"black"}),Pe.createElement(dm,null))))),!r.includes("settings")&&Pe.createElement(Ai,{container:N(),side:"top",content:Ii.t("Settings")},Pe.createElement(Lt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Pe.createElement(mv,{size:18,color:"black"}))),!r.includes("history")&&Pe.createElement(Ai,{container:N(),side:"top",content:Ii.t("History")},Pe.createElement(Lt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Pe.createElement(fv,{size:18,color:"black"}),Pe.createElement(pm,null))))}i(Bo,"HeaderButtons");import{i18n as il}from"@lingui/core";import{Divider as hm,MessageBox as yv,RefreshIcon as Sv}from"@rango-dev/ui";import gn from"react";import{Button as gv,styled as hv}from"@rango-dev/ui";var gm=hv(gv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function al(t){let{open:e,onClose:o}=t;return gn.createElement(J,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},gn.createElement(yv,{title:il.t("Something went wrong"),type:"error",description:il.t("Something went wrong. Please refresh the app.")},gn.createElement(hm,{size:30}),gn.createElement(gm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},gn.createElement(Sv,{size:20,color:"primary"}),gn.createElement(hm,{size:4,direction:"horizontal"}),il.t("Refresh"))))}i(al,"RefreshModal");function sl(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(sl,"onScrollContentAttachStatusToContainer");import{css as Tv,styled as Ni}from"@rango-dev/ui";var Bi=Tv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),ym=Ni("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:700},fixed:{minHeight:425,maxHeight:700,height:700}},showBanner:{true:{overflow:"visible"}}}}),Sm=Ni("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Cm=Ni("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"}}}),Tm=Ni("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Qs(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=T(),[u,f]=wm(!1),{config:{features:h,theme:g}}=T(),{watermark:m,setShowCompactTokenSelector:d}=te(),y=m==="FULL",{activeTheme:C}=no(g||{}),[S,k]=wm(!1),v=Re("connectWalletButton",h),{isActiveTab:x,tabManagerInitiated:I,showActivateTabModal:A,setShowActivateTabModal:E,activateCurrentTab:b}=te(),w=Ge(),{manager:B}=vv(),{isTablet:P,isMobile:$}=fn(),R=St(B).map(({swap:ee})=>ee).some(ee=>ee.status==="running"),K=i(()=>b(wo.forceClaim,R),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),ae=typeof r.hasBackButton>"u"||r.hasBackButton,re=vm(null),Q=vm(null);return Wi(()=>{let ee=(p?.swapBoxBanner?.routes?.length??0)===0,le=!!p?.swapBoxBanner?.routes?.some(ue=>location.pathname.endsWith(ue));k(!!p?.swapBoxBanner&&(ee||le))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),Wi(()=>(Zn()&&Q.current&&e(Q.current),()=>{o()}),[]),Wi(()=>(re.current?.addEventListener("scroll",sl),()=>{re.current?.removeEventListener("scroll",sl)}),[]),Wi(()=>{f(c==="failed")},[c]),xv(()=>{let ee=s==="auto"||!Q.current||Zn(),le=$||P,ue=i(()=>{ee||(le?Q.current.style.height=`${window.innerHeight-Q.current.offsetTop}px`:Q.current.style.height=`${700}px`,d(parseFloat(Q.current.style.height)<640))},"handler");return ue(),window.addEventListener("resize",ue),()=>window.removeEventListener("resize",ue)},[s,$,P]),Ne.createElement(ym,{height:s,id:Qe.SWAP_BOX_ID,className:`${C()} ${Bi()}`,ref:Q,showBanner:S},Ne.createElement(bv,{prefix:ae?Ne.createElement(Rs,{onClick:()=>{w(),r.onBack?.()}}):null,title:r.title,suffix:Ne.createElement(Ne.Fragment,null,r.suffix,r.onWallet&&!v&&Ne.createElement(ol,{container:N(),onClick:L,isConnected:!!l?.length}),r.onCancel&&Ne.createElement(tl,{onClick:r.onCancel}))}),Ne.createElement(Sm,{ref:re},n),Ne.createElement(Js,{open:A,onClose:()=>E(!1),onConfirm:K}),Ne.createElement(Cm,null,Ne.createElement("div",{className:"footer__content"},I&&!x&&Ne.createElement("div",{className:"footer__alert"},Ne.createElement(Ys,{onActivateTab:K}),Ne.createElement(km,{size:10})),a),Ne.createElement(km,{size:12}),Ne.createElement("div",{className:`footer__logo ${y?"logo__show":"logo__hidden"}`},Ne.createElement(wv,null))),S&&Ne.createElement(Tm,null,p?.swapBoxBanner?.element),Ne.createElement(al,{open:u,onClose:()=>f(!1)}))}i(ie,"Layout");import{styled as Ev}from"@rango-dev/ui";var bm="$20 $20 $10 $20",ll=Ev("div",{padding:bm,overflowY:"auto",flexGrow:1});import{styled as Iv}from"@rango-dev/ui";var ce=Iv("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 io}from"@lingui/core";import{useState as cl}from"react";function xm(){let[t,e]=cl(!1),[o,n]=cl(null),[r,a]=cl(null),{findToken:s}=T(),c=T().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(f,h){switch(f){case"duplicated":return{type:f,title:io.t("Duplicate Token"),message:io.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:f,title:io.t("Token Already Exists"),message:io.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:f,title:io.t("Token Not Found"),message:io.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:h}})};case"network-error":return{type:f,title:io.t("Network error"),message:io.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:f,tokenAddress:h})=>{e(!0);try{if(c.some(C=>C.address?.toLowerCase()===h.toLowerCase())){let C=p("duplicated");n(C);return}let m=await at().getCustomToken({blockchain:f,address:h});if(!m||!m.token||m.error){let C=p("not-found",f);n(C);return}let d=m.token;if(s({blockchain:d.blockchain,address:d.address,symbol:d.symbol})){let C=p("token-exist");n(C);return}return a({...d,warning:!0})}catch(g){if(g.code==="ERR_BAD_REQUEST"){let m=p("not-found",f);n(m);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(xm,"useFetchCustomToken");var Fv=Lv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${Bv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Em(){let t=Dv(),[e]=$v(),o=Ge(),n=T().blockchains(),r=e.get("blockchain")||"",a=So(r,n),[s,c]=_v(""),{fetchCustomToken:l,token:p,loading:u,error:f,resetState:h}=xm(),g=!!a&&Qo(a,s),m=!a||!s||!g,d=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ve.createElement(ie,{header:{title:hn.t("Add Custom Token")}},Ve.createElement(ce,null,Ve.createElement(Fv,null,Ve.createElement("div",null,Ve.createElement(_s,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:hn.t("Select chain"),placeholder:hn.t("Select chain")}),Ve.createElement(pl,{size:"24"}),Ve.createElement(Pv,{size:"large",variant:"label"},hn.t("Enter Address")),Ve.createElement(pl,{size:10}),Ve.createElement(Mv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:hn.t("Enter token address"),size:"large",value:s,suffix:!!s&&g&&Ve.createElement(Wv,{color:"success",size:12}),onChange:y=>c(y.target.value)}),!g&&!!s&&Ve.createElement(Ve.Fragment,null,Ve.createElement(pl,{size:4}),Ve.createElement(Av,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ve.createElement(Nv,{id:"widget-add-custom-token-import-btn",disabled:m,type:"primary",variant:"contained",loading:u,size:"large",onClick:d},hn.t("Import"))),Ve.createElement(Yn,{token:p,blockchain:a??void 0,address:s,error:f??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{f?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:h,onExitImportModal:h})))}i(Em,"AddCustomTokenPage");import{i18n as zl}from"@lingui/core";import{useManager as vb}from"@rango-dev/queue-manager-react";import{Alert as wb,Button as bb,css as ql,Divider as Ql,IconButton as hg,styled as xb,Typography as Eb,WalletIcon as Ib}from"@rango-dev/ui";import De,{useEffect as na,useLayoutEffect as Ab,useRef as Nb,useState as dr}from"react";import{useNavigate as Bb}from"react-router-dom";import{i18n as Wo}from"@lingui/core";import{Alert as pw,BalanceErrors as uw,Button as Jm,ChevronLeftIcon as dw,Divider as Sl,MessageBox as mw,Typography as Cl}from"@rango-dev/ui";import ne,{useCallback as fw,useEffect as Rm,useMemo as gw,useState as Cn}from"react";import{useNavigate as hw}from"react-router-dom";import{i18n as fl}from"@lingui/core";import{Alert as qv,ChevronDownIcon as Hv,CloseIcon as Gv,Divider as Mm,IconButton as Pm,PasteIcon as Vv,Typography as Kv,WalletIcon as jv}from"@rango-dev/ui";import _e,{useEffect as Xv,useRef as Yv}from"react";import _i,{useRef as zv}from"react";import*as yn from"@radix-ui/react-collapsible";import{keyframes as Im,styled as Li}from"@rango-dev/ui";var ul=300,Ov=Im({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Uv=Im({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Am=Li(yn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),dl=Li(yn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Mi=Li(yn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Ov} ${ul}ms ease-out`},false:{animation:`${Uv} ${ul}ms ease-out`}}}}),Pi=Li("div",{transition:`all ${ul}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Di(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=zv(null);return _i.createElement(Am,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&_i.createElement(dl,{className:"collapsible_trigger",onClick:a},s),_i.createElement(Mi,{className:"collapsible_content",open:e},r),c==="bottom"&&_i.createElement(dl,{className:"collapsible_trigger",onClick:a},s))}i(Di,"CustomCollapsible");import{darkTheme as Nm,styled as ml,TextField as Qv}from"@rango-dev/ui";var Bm=ml("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Wm=ml(Qv,{backgroundColor:"$neutral100",padding:"$15"}),Lm=ml("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Nm} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Nm} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function _m(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=T(),c=T().blockchains(),l=$r(e.name,c),p=Yv(null),u=s?.defaultCustomDestinations?.[e.name],f=navigator?.userAgent.includes("Firefox"),g=n&&!!r&&e&&!Qo(e,r),m=i(()=>{a("")},"handleClear"),d=i(async C=>{if(C.preventDefault(),navigator.clipboard!==void 0){let S=await navigator.clipboard.readText();a(S),p?.current?.focus()}},"handlePaste"),y=i(()=>r?_e.createElement(Pm,{id:"widget-custom-destination-close-icon-btn",onClick:m,variant:"ghost"},_e.createElement(Gv,{size:12,color:"gray"})):f?null:_e.createElement(Pm,{id:"widget-custom-destination-paste-icon-btn",onClick:d,variant:"ghost"},_e.createElement(Vv,{size:16})),"renderSuffix");return Xv(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),_e.createElement(Bm,null,_e.createElement(Di,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:_e.createElement(Lm,{id:"widget-custom-destination-collapsible-btn"},_e.createElement("div",{className:"button__content"},_e.createElement(jv,{size:18,color:"info"}),_e.createElement(Mm,{size:4,direction:"horizontal"}),_e.createElement(Kv,{variant:"label",size:"medium",color:n?"$neutral600":void 0},fl.t("Send to a different address"))),_e.createElement(Pi,{orientation:n?"up":"down"},_e.createElement(Hv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},_e.createElement(Wm,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:fl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:y(),onChange:C=>{let S=C.target.value;a(S)}})),g&&_e.createElement(_e.Fragment,null,_e.createElement(Mm,{size:4}),_e.createElement(qv,{variant:"alarm",type:"error",title:fl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(_m,"CustomDestination");import{css as Zv,IconButton as Jv,SelectableWalletButton as Rv,styled as ao}from"@rango-dev/ui";var Dm=ao("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),$m=ao("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Fm=ao(Rv,{justifyContent:"center"}),Om=ao("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Um=ao(Jv,{position:"absolute",left:"$20"}),zm=ao("div",{paddingTop:"$20"}),Qm=Zv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),qm=ao("div",{display:"flex"}),Hm=ao("div",{overflow:"visible",width:"100%"});import{i18n as hl}from"@lingui/core";import{warn as rw}from"@rango-dev/logging-core";import{Divider as iw,makeInfo as aw,SelectableWallet as sw,Typography as Ym,WalletState as $i}from"@rango-dev/ui";import tt,{useEffect as Zm,useState as tr}from"react";import{Image as ow,MessageBox as nw}from"@rango-dev/ui";import er from"react";import{keyframes as ew,styled as gl}from"@rango-dev/ui";var Gm=gl("div",{position:"relative"}),tw=ew({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Vm=gl("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}),Km=gl("div",{"& img":{borderRadius:"50%"}});import{i18n as Sn}from"@lingui/core";function jm(t,e){switch(t){case"in-progress":return{type:"loading",title:Sn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Sn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Sn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Sn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Sn.t("Request Rejected"),description:Sn.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(jm,"generateMessageByStatus");function Xm(t){let{status:e,displayName:o,image:n}=t,r=jm(e,o),a=e=="in-progress";return er.createElement(nw,{type:r.type,title:r.title,description:r.description,icon:a?er.createElement(Gm,null,er.createElement(Km,null,er.createElement(ow,{src:n,size:45})),er.createElement(Vm,null)):void 0})}i(Xm,"ExperimentalChainStatus");var lw=7,cw=3e3;function yl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=te.use.isActiveTab(),{blockchains:l,connectedWallets:p}=T(),[u,f]=tr(),[h,g]=tr(null),[m,d]=tr(!1),[y,C]=tr(null),{suggestAndConnect:S}=Fi(),{list:k}=Tt({chain:e}),[v,x]=tr(k),I=k.length,A=a&&I-a>0,E=i(async w=>{d(!1),C("in-progress");try{await S(w.walletType,w.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");Zm(()=>{x(w=>{let B=k.findIndex(P=>n(P.type,e));return A&&B>1?[k[B]].concat(k.filter((P,$)=>$!==B)):w.map(P=>k.find($=>$.type===P.type)??P)})},[JSON.stringify(k)]);let b=document.getElementById(Qe.SWAP_BOX_ID);return Zm(()=>{let w=null;return(y==="completed"||y==="rejected")&&(w=setTimeout(()=>C(null),cw)),()=>{w&&clearTimeout(w)}},[y]),tt.createElement(tt.Fragment,null,v.slice(0,a).map(w=>{let B=Rp({connectedWallets:p,walletType:w.type,chain:e}),P=w.state===$i.CONNECTED,$=B?Go(B,lw):"",q=P&&!!w.needsNamespace&&!$,R=Xr(l(),e),K=!p.find(ue=>ue.walletType===w.type&&ue.chain===e),L=R&&K&&w.state===$i.CONNECTED,ae=i(async()=>{w.state===$i.DISCONNECTED||q?f(w):L?(g({walletType:w.type,chain:e,address:B??""}),d(!0)):r({walletType:w.type,chain:e,address:B??""})},"onSelectableWalletClick"),re=aw(w.state),Q=i(()=>L?hl.t({id:"Add {chain} chain",values:{chain:e}}):q?hl.t("Chain not connected"):$||re.description,"getWalletDescription"),ee=i(()=>w.state===$i.CONNECTED?q?"neutral600":"neutral700":re.color,"getWalletDescriptionColor"),le=h?.chain?$r(h.chain,l()):void 0;return tt.createElement(tt.Fragment,{key:`${w.title}_${le}`},!!h&&tt.createElement(J,{id:"widget-wallets-list-watermarked-modal",open:!!h&&m,container:b,onClose:()=>{g(null)}},tt.createElement(ks,{id:"widget-wallets-list-experimental-chain-container",displayName:le,onConfirm:()=>{E(h)}})),y&&tt.createElement(J,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!y,onClose:C.bind(null,null),container:b},tt.createElement(Xm,{status:y,displayName:le,image:w.image}),tt.createElement(iw,{direction:"vertical",size:32})),tt.createElement(sw,{key:w.type,id:"widget-wallets-list-selectable-wallet-btn",description:Q(),descriptionColor:ee(),onClick:ae,selected:n(w.type,e),disabled:!c,...w}))}),tt.createElement(xo,{id:"widget-wallets-list-stateful-connect-modal",wallet:u,options:{defaultSelectedChains:o||[e]},onClose:()=>{f(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):rw(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),A&&tt.createElement(Fm,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},tt.createElement(Ym,{variant:"label",size:"medium"},hl.t("Show more wallets"),tt.createElement(Ym,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(a??0)))))}i(yl,"WalletList");var yw=2;function ef(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=hw(),c=T().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:f,customDestination:h,setCustomDestination:g}=O(),{config:m,connectedWallets:d,setWalletsAsSelected:y}=T(),[C,S]=Cn(""),[k,v]=Cn([]),[x,I]=Cn(""),[A,E]=Cn(!!h),b=gw(()=>ko({filter:"all",quote:l}),[l]),w=ko({filter:"required",quote:l}),B=c.find(W=>W.name===l?.swaps[l?.swaps.length-1].to.blockchain),P=i(W=>w.includes(W),"isWalletRequiredFor"),$=fw(()=>d.filter(W=>W.selected&&b.includes(W.chain)),[d,b]),[q,R]=Cn($()),[K,L]=Cn([]),ae=i((W,G)=>L(j=>j.concat({blockchain:W,walletType:G})),"addNextSelectedWallets"),re=k.length>0,Q=i((W,G)=>!!q.find(j=>j.walletType===W&&j.chain===G&&j.selected&&(P(G)||!P(G)&&!h)),"isSelected"),ee=i((W,G,j)=>{let X=!1;return W.map(fe=>{if(fe.chain===G){let Ue=fe.selected;return!X&&j?(X=!0,Ue=!0):j||(Ue=!1),{...fe,selected:Ue}}return fe})},"updateSelectableWallets"),le=i(W=>{E(W),W?P(B?.name??"")||R(G=>ee(G,B?.name||"",!1)):(g(""),R(G=>ee(G,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),ue=i(W=>{if(C&&S(""),Q(W.walletType,W.chain))return;let j=d.find(X=>X.walletType===W.walletType&&X.chain===W.chain);j&&(n(),W.chain===B?.name&&A&&!P(B.name)&&(E(!1),g(null)),R(X=>X.filter(fe=>fe.chain!==W.chain).concat({...j,selected:!0})))},"onChange"),se=i(()=>{let W=q.filter(G=>G.selected);y(W),p(W),f(!0),o()},"onConfirmBalance"),Ze=i(async()=>{v([]),I("");let W=await r?.({selectedWallets:q.filter(j=>j.selected),customDestination:h}),G=W.warnings;G?.balance?.messages&&v(G.balance.messages),W.error&&I(ed(W.error)),!W.error&&!G?.balance?.messages.length?se():v(G?.balance?.messages??[])},"onConfirmWallets");Rm(()=>{R(W=>{let G=[];return W.forEach(j=>{!d.some(fe=>fe.chain===j.chain&&fe.walletType===j.walletType&&fe.address===j.address)||G.push(j)}),G=G.concat(d.filter(j=>!!!G.find(fe=>fe.chain===j.chain)&&j.selected&&b.includes(j.chain))),G})},[d,b]),Rm(()=>{let W=[];K.length>0&&(K.forEach(G=>{let j=d.find(X=>X.chain===G.blockchain&&X.walletType===G.walletType);j?ue(j):W.push(G)}),L(W))},[d,K]);let H=document.getElementById(Qe.SWAP_BOX_ID);return ne.createElement(J,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!C,container:H,...!C&&{styles:{container:{height:"100%"}},footer:ne.createElement(qm,null,ne.createElement(Jm,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Nd(a,A,h,l,q,B),onClick:Ze,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Wo.t("Confirm")))},...C&&{styles:{container:{height:"100%",padding:"$0"}},header:ne.createElement(Om,null,ne.createElement(Um,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:S.bind(null,"")},ne.createElement(dw,{size:16})),ne.createElement(Cl,{variant:"headline",size:"small"},Wo.t({id:"Your {blockchainName} wallets",values:{blockchainName:ft(C,c)}})))},anchor:"center"},ne.createElement(J,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:re,onClose:v.bind(null,[]),container:H},ne.createElement(mw,{title:Wo.t("Insufficient account balance"),type:"error",description:ne.createElement(uw,{messages:k??[]})},ne.createElement(Jm,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:se},Wo.t("Proceed anyway")))),C&&ne.createElement(zm,null,ne.createElement("div",{className:Qm()},ne.createElement(yl,{chain:C,quoteChains:b,isSelected:Q,selectWallet:ue,onShowMore:()=>S(C),onConnect:W=>{ae(C,W)}}))),!C&&ne.createElement(ne.Fragment,null,x&&ne.createElement(ne.Fragment,null,ne.createElement(pw,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Wo.t(x)}),ne.createElement(Sl,{size:12})),ne.createElement(Hm,null,b.map((W,G)=>{let j=c.find(Je=>Je.name===W),X=`wallet-${G}`,fe=G===b.length-1,Ue=fe&&B&&m?.customDestination!==!1;return ne.createElement("div",{key:X},ne.createElement(Dm,null,ne.createElement(Cl,{variant:"title",size:"xmedium"},Wo.t({id:"Your {blockchainName} wallets",values:{blockchainName:j?.shortName}})),ne.createElement(Cl,{variant:"label",color:"$neutral700",size:"medium"},Wo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:j?.shortName}}))),ne.createElement(Sl,{size:24}),ne.createElement($m,null,ne.createElement(yl,{chain:W,quoteChains:b,isSelected:Q,selectWallet:ue,limit:yw,onShowMore:()=>S(j?.name??""),onConnect:Je=>{ae(W,Je)}})),!fe&&ne.createElement(Sl,{size:32}),Ue&&ne.createElement(_m,{blockchain:B,open:A,handleOpenChange:le}))}))))}i(ef,"ConfirmWalletsModal");import{i18n as Fw}from"@lingui/core";import{Alert as Ow,Button as Uw,Divider as Tf,InfoIcon as zw}from"@rango-dev/ui";import Fe from"react";import{Alert as Tw,Button as kw,Divider as vl,NoRouteIcon as vw,RefreshIcon as ww,Typography as lf}from"@rango-dev/ui";import lt from"react";import{i18n as tf}from"@lingui/core";var Sw=24,Cw=60;function of(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:tf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:tf.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(of,"makeInfo");var Tl=(o=>(o[o.small=Sw]="small",o[o.large=Cw]="large",o))(Tl||{}),kl=(o=>(o.small="small",o.large="medium",o))(kl||{});import{styled as Oi}from"@rango-dev/ui";var nf=Oi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),rf=Oi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),af=Oi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),sf=Oi("div",{padding:"$6 $0"});function or(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=T().getDisabledLiquiditySources(),s=T().toggleAllLiquiditySources,c=T().swappers(),l=of(o,a,()=>s(c,!0),e);return r&&(l.alert=null),lt.createElement(nf,{id:"widget-no-result-container"},lt.createElement(vw,{size:Tl[n],color:"gray"}),lt.createElement(vl,{size:4}),lt.createElement(lf,{variant:"title",size:kl[n]},oe().noResultError.title),n==="large"&<.createElement(vl,{size:4}),!!l.description&<.createElement(rf,{size:n},lt.createElement(lf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),lt.createElement(vl,{size:n==="large"?"24":"4"}),!!l.alert&<.createElement(af,{size:n},lt.createElement(Tw,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&<.createElement(kw,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:lt.createElement(sf,null,lt.createElement(ww,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(or,"NoResult");import{i18n as rr}from"@lingui/core";import{Button as Ew,Divider as Iw,MessageBox as Aw,Typography as Nw,WarningIcon as Bw}from"@rango-dev/ui";import qt from"react";import{Typography as mf}from"@rango-dev/ui";import bl from"react";import{Button as bw,darkTheme as xw,styled as nr}from"@rango-dev/ui";var cf=nr("div",{width:"100%"}),wl=nr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),pf=nr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${xw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),uf=nr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),df=nr(bw,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function ff(t){let{title:e,value:o,valueColor:n}=t;return bl.createElement(pf,null,bl.createElement(mf,{size:"medium",variant:"label",className:"_title"},e),bl.createElement(mf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(ff,"QuoteErrorsModalItem");function gf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:rr.t("Swapping"),value:_(r.inputUsdValue,4,4)},{title:rr.t("Gas cost"),value:_(r.totalFee,2,2)},{title:rr.t("Receiving"),value:_(r.outputUsdValue,4,4)},{title:rr.t("Price impact"),value:_(r.priceImpact,2,2),valueColor:`${s}500`}];return qt.createElement(J,{id:"widget-high-value-loss-warning-modal",footer:qt.createElement(Ew,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:qt.createElement(Bw,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},qt.createElement(Aw,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),qt.createElement(wl,null,qt.createElement(Iw,{size:"4"}),qt.createElement(Nw,{size:"small",variant:"title"},rr.t("Details")),qt.createElement(wl,null,c.map((l,p)=>qt.createElement(ff,{key:p,...l})))))}i(gf,"HighValueLossWarningModal");import{i18n as Tn}from"@lingui/core";function hf(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=Tn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Tn.t("Increase")),o;if(t){switch(t.type){case 0:{Qt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title;break}case 4:{o.title=Tn.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=Tn.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=Tn.t("Increase");break}case 3:{o.title=Tn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(hf,"makeAlerts");function yf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(yf,"getRequiredSlippage");import{i18n as kn}from"@lingui/core";import{Button as Ww,Divider as xl,MessageBox as Lw,WarningIcon as Mw}from"@rango-dev/ui";import co from"react";import{useNavigate as Pw}from"react-router-dom";function Sf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=Pw();return co.createElement(J,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},co.createElement(Lw,{type:"warning",title:r.type===3?kn.t("High slippage"):kn.t("Low slippage"),description:r.type===3?kn.t("Caution, your slippage is high. Your trade may be front run."):kn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},co.createElement(xl,{size:18}),co.createElement(xl,{size:32}),co.createElement(df,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},co.createElement(Mw,{color:"white",size:16}),kn.t("Swap anyway")),co.createElement(xl,{size:10}),co.createElement(Ww,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+F.settings)},kn.t("Change Slippage"))))}i(Sf,"SlippageWarningModal");import{Button as _w,MessageBox as Dw,WarningIcon as $w}from"@rango-dev/ui";import Ui from"react";function Cf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ui.createElement(J,{id:"widget-unknown-price-warning-modal",footer:Ui.createElement(_w,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Ui.createElement($w,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Ui.createElement(Dw,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Cf,"UnknownPriceWarningModal");function ir(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:f,onChangeSlippage:h}=t,g={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},m=o?.type===0||o?.type===1,d=hf(e,o?.type===3||o?.type===4?o:null);d&&!n&&(d.action=null);let y=!!d&&!s,C=i(S=>{if(S==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,v=yf(e,k);h?.(v)}else S==="change-settings"&&f()},"onclickActionButton");return Fe.createElement(Fe.Fragment,null,m&&Fe.createElement(Fe.Fragment,null,Fe.createElement(Tf,{size:10}),Fe.createElement(or,{skipAlerts:s,error:o,fetch:c})),y&&Fe.createElement(cf,null,Fe.createElement(Tf,{size:10}),Fe.createElement(Ow,{id:"widget-quote-warning-and-errors-alert",title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:Fe.createElement(uf,{onClick:l},Fe.createElement(zw,{size:12,color:"gray"}))},...(d.action==="change-settings"||d.action==="change-slippage")&&{action:Fe.createElement(Uw,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:d.alertType,onClick:()=>C(d.action)},d.actionButtonTitle||Fw.t("Change"))}})),e&&Fe.createElement(Fe.Fragment,null,e.type===0&&Fe.createElement(gf,{...g,warning:e}),(e.type===3||e.type===2)&&Fe.createElement(Sf,{...g,warning:e}),e.type===1&&Fe.createElement(Cf,{...g,warning:e})))}i(ir,"QuoteWarningsAndErrors");import hb from"bignumber.js";import Ri from"react";import{i18n as Lo}from"@lingui/core";import{Alert as nb,Divider as wn,FullExpandedQuote as rb,InfoIcon as ib,NumericTooltip as jf,QuoteTag as ab,StepDetails as sb,TokenAmount as lb,Typography as bn}from"@rango-dev/ui";import Pl from"bignumber.js";import U,{useRef as cb,useState as pb}from"react";import{styled as El}from"@rango-dev/ui";var Il=El("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),kf=El("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),vf=El("div",{width:"100%",display:"flex"});import*as zi from"@radix-ui/react-collapsible";import{Button as Qw,css as ar,darkTheme as Be,Image as wf,styled as Ke,Typography as qw}from"@rango-dev/ui";var Hw=300,bf=Ke(zi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),xf=ar({padding:"$10 $15"}),Ef=Ke(Qw,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Be} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Be} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Be} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),If=Ke("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",[`.${Be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Be} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Be} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Be} &`]:{backgroundColor:"$neutral400"}}}}]}),Af=ar({width:"100%",padding:"$15 $15 $10 $15"}),Nf=ar({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),vn=ar({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Bf=ar({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Be} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wf=Ke(zi.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:{[`& ${wf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${wf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Lf=Ke("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"}}}}),Mf=Ke(Mi,{width:"100%",background:"inherit"}),Al=Ke("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Hw}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),sQ=Ke("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Pf=Ke("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Be} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),_f=Ke("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Nl=Ke(qw,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Df=Ke("div",{display:"flex",flexWrap:"wrap"}),Bl=Ke("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"}}}}),$f=Ke("div",{display:"flex"}),Qi=Ke("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Be} &`]:{borderTopColor:"$neutral800"}});import{i18n as Mt}from"@lingui/core";import{ChevronDownIcon as Vw,CloseIcon as Kw,Divider as Gi,IconButton as jw,NumericTooltip as Xw,QuoteCost as Yw,Typography as bt}from"@rango-dev/ui";import Y,{useState as zf}from"react";import{css as Gw,styled as qi}from"@rango-dev/ui";var Hi=qi("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Wl=qi("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Ff=qi("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Of=qi("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Uf=Gw({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Zw=i(t=>t.fee.isZero()?null:Y.createElement(Hi,null,Y.createElement(bt,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(bt,{variant:"label",size:"medium"},"$",_(t.fee,4,4))),"NonPayableFee");function Ll(t){let[e,o]=zf(!1),[n,r]=zf(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:f,fullExpandedMode:h=!1}=t,g=s?.swaps??[],m=h?To():N(),d=kd(g),y=_(c,2,2);return Y.createElement(Y.Fragment,null,Y.createElement(Yw,{onClickFee:f?C=>{C.stopPropagation(),o(!e)}:void 0,fee:y,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:f?Mt.t("View more info"):void 0,tooltipContainer:m}),Y.createElement(J,{id:"widget-quote-cost-explanation-modal",container:m,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:Y.createElement(Of,{style:{textAlign:h?"left":"center"}},Y.createElement(bt,{variant:"title",size:"medium"},Mt.t("Gas & Fee Explanation")),Y.createElement(jw,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement(Kw,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(Ff,null,Y.createElement(bt,{variant:"title",size:"small"},Mt.t("Details")),Y.createElement(Gi,{size:10}),Object.entries(d.payable).flatMap(([C,S])=>S.map((k,v)=>{let x=`payable-fee-${v}`,I=As(k);return Y.createElement(Hi,{key:x},Y.createElement(bt,{variant:"label",size:"medium",color:"neutral600"},ws(C,Mt.t)),Y.createElement(Xw,{content:k.amount,container:m},Y.createElement(bt,{variant:"label",size:"medium"},_(k.amount,2,2),k.asset.symbol," ($",_(I,4,4),")")))})),Y.createElement(Hi,{className:"total_payable_fee"},Y.createElement(bt,{variant:"label",size:"medium"},Mt.t("Total Payable Fee")),Y.createElement(bt,{variant:"label",size:"medium"},"$",_(c,4,4))),Y.createElement(Wl,null),!!Object.keys(d.nonePayable).length&&Y.createElement(Di,{triggerAnchor:"bottom",onClickTrigger:()=>r(C=>!C),trigger:Y.createElement("div",{className:Uf()},Y.createElement(bt,{size:"small",variant:"body",color:"neutral700"},n?Mt.t("Hide non-payable fees"):Mt.t("Show non-payable fees")),Y.createElement(Gi,{size:4,direction:"horizontal"}),Y.createElement(Pi,{orientation:n?"up":"down"},Y.createElement(Vw,{size:12,color:"gray"}))),open:n},Y.createElement(bt,{size:"small",variant:"title"},Mt.t("Description")),Y.createElement(Gi,{size:4}),Y.createElement(bt,{size:"small",variant:"body",color:"neutral700"},Mt.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),Y.createElement(Gi,{size:10}),Object.entries(d.nonePayable).map(([C,S],k)=>{let v=Td(S),x=ws(C,Mt.t),I=`non-payable-fee-${k}`;return Y.createElement(Zw,{key:I,fee:v,label:x})}),Y.createElement(Wl,null)))))}i(Ll,"QuoteCostDetails");import{i18n as Hf}from"@lingui/core";import{TokenAmount as Gf}from"@rango-dev/ui";import Vi from"react";import{css as Jw,styled as Rw}from"@rango-dev/ui";var Qf=Rw("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),qf=Jw({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function sr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Vi.createElement(Qf,null,Vi.createElement(Gf,{direction:"horizontal",label:Hf.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Vi.createElement("div",{className:qf()}),Vi.createElement(Gf,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:Hf.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(sr,"QuoteSummary");import{i18n as Vf}from"@lingui/core";import{ChevronDownIcon as eb,ChevronRightIcon as tb,Divider as Ml,Image as ob,Tooltip as Yi,Typography as Ki}from"@rango-dev/ui";import z from"react";var ji=4,Xi=6,lr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return z.createElement(Yi,{container:c,side:"bottom",sideOffset:4,open:r,content:e},z.createElement(Lf,{className:n,state:a},z.createElement(ob,{src:o,size:16})))},"ImageComponent");function Kf(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),p=r.length,u=pd(r),{isTablet:f,isMobile:h}=fn();return z.createElement(Wf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:g=>e.current=g,selected:o,onClick:g=>{g.stopPropagation(),n(m=>!m)}},z.createElement("div",{className:vn()},z.createElement(Ki,{variant:"body",size:"xsmall"},Vf.t("Via:")),z.createElement(Ml,{direction:"horizontal",size:4}),r.map((g,m)=>{let d=`item-${m}`,y=z.createElement(Al,null,z.createElement(tb,{size:12,color:"black"}));return h||f?z.createElement(z.Fragment,{key:d},z.createElement(lr,{content:g.swapper.displayName,src:g.swapper.image??"",state:g.state,container:c}),m!==p-1&&z.createElement(z.Fragment,null,y)):z.createElement(z.Fragment,{key:d},p<=ji||p>ji&&m<ji-1?z.createElement(z.Fragment,null,z.createElement(lr,{content:g.swapper.displayName,src:g.swapper.image??"",state:g.state,container:c}),m!==p-1&&z.createElement(z.Fragment,null,y)):m===ji-1&&z.createElement(Yi,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:vn()},y,r.map((C,S)=>{let k=`image-${S}`;return S>=m&&z.createElement(z.Fragment,{key:k},z.createElement(lr,{content:C.swapper.displayName,src:C.swapper.image??"",state:C.state,open:!1}),S!==p-1&&z.createElement(z.Fragment,null,y))}))},z.createElement(Bl,{state:r.find((C,S)=>S>=m&&(C.state==="error"||C.state==="warning"))?.state},z.createElement(Ki,{size:"xsmall",variant:"body"},"+",p-m))))})),z.createElement("div",{className:vn()},z.createElement("div",{className:"blockchains_section"},z.createElement("div",{className:vn()},z.createElement(Ki,{variant:"body",size:"xsmall"},Vf.t("Chains:")),z.createElement(Ml,{direction:"horizontal",size:4}),u.map((g,m)=>z.createElement(z.Fragment,{key:g.displayName},u.length<=Xi||u.length>Xi&&m<Xi-1?z.createElement(Yi,{container:l,side:"bottom",content:g.displayName,sideOffset:4},z.createElement(lr,{content:"",src:g.image??"",open:!1,className:m!==0?"blockchainImage":""})):m===Xi-1&&z.createElement(Yi,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:vn()},u.map((d,y)=>y>=m&&z.createElement(lr,{key:d.displayName,content:"",src:d.image??"",open:!1,className:y>m?"blockchainImage":"",container:c})))},z.createElement(Bl,{className:"blockchainImage"},z.createElement(Ki,{size:"xsmall",variant:"body"},"+",u.length-m))))),z.createElement(Ml,{direction:"horizontal",size:32}))),z.createElement(Al,{orientation:a?"up":"down"},z.createElement(eb,{size:12,color:"black"}))))}i(Kf,"QuoteTrigger");function _l(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:f=!1,container:h}=t,g=T().blockchains(),{findToken:m}=T(),d=T().swappers(),{customSlippage:y,slippage:C}=T(),S=y||C,[k,v]=pb(t.expanded),x=cb(null),I=_(o.value,6,6),A=_(n.value,6,6),E=n.usdValue?_(n.usdValue,4,4):"",b=zt(o.usdValue,n.usdValue??null),w=_(b,2,2),B=Qt(b??0),P=i((se,Ze)=>se.map((H,W)=>{let G,j=r?.type===3&&r.swap.swapperId===H.swapperId,X=r?.type===4&&r.recommendedSlippages?.has(W),fe=a?.type===2&&a.recommendedSlippages?.has(W),Ue=j||X,Je=fe;Ue?G="error":Je&&(G="warning");let be=Ue?Lo.t("Slippage Error"):Lo.t("Slippage Warning");return j&&(be=Lo.t("Bridge Limit Error")),{swapper:{displayName:Bn(H.swapperId,d)??"",image:H.swapperLogo},from:{token:{displayName:H.from.symbol,image:H.from.logo},chain:{displayName:ft(H.from.blockchain,g)??"",image:H.from.blockchainLogo},price:{value:W===0&&!Ze?_(o.value,6,6):_(H.fromAmount,6,6),usdValue:_((H.from.usdPrice??0)*parseFloat(H.fromAmount),4,4),realValue:W===0?o.value:H.fromAmount,realUsdValue:new Pl(H.from.usdPrice??0).multipliedBy(H.fromAmount).toString()}},to:{token:{displayName:H.to.symbol,image:H.to.logo},chain:{displayName:ft(H.to.blockchain,g)||"",image:H.to.blockchainLogo},price:{value:_(H.toAmount,6,6),usdValue:_((H.to.usdPrice??0)*parseFloat(H.toAmount),4,4),realValue:H.toAmount,realUsdValue:new Pl(H.to.usdPrice??0).multipliedBy(H.toAmount).toString()}},state:G,alerts:Ue||Je?U.createElement(kf,{dense:f},U.createElement(nb,{variant:"alarm",type:Ue?"error":"warning",title:be,id:"widget-quote-footer-step-alarm-alert",footer:U.createElement(vf,null,j&&U.createElement("div",null,U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(wn,{direction:"vertical",size:2}),U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},Lo.t({id:"Yours: {amount} {symbol}",values:{amount:_(H.fromAmount,6,6),symbol:H?.from.symbol}}))),(X||fe)&&!j&&U.createElement("div",null,U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},Lo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(W)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(W)}}})),U.createElement(wn,{direction:"vertical",size:2}),U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},Lo.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Ln(H.estimatedTimeInSeconds),fee:_(Is(H,m),2,2),internalSwaps:H.internalSwaps?P(H.internalSwaps):void 0}}),"getQuoteSteps"),$=P(e?.swaps??[]),q=$.length,R=h||N(),K=dd(t.quote.tags||[]),L=!!u,ae=Vr(e?.swaps),re=Ln(ae),Q=yi(e?.swaps??[],m),ee=_(Q,2,2),le=Q.gte(new Pl(od)),ue=ae/rd>=nd;return f?U.createElement(rb,{selected:c,fee:ee,time:re,tooltipContainer:To(),steps:$,tags:K,id:"widget-quote-full-expanded-quote-container",quoteCost:U.createElement(Ll,{quote:e,fullExpandedMode:!0,time:re,fee:Q,feeWarning:le,timeWarning:ue,showModalFee:p,steps:q}),percentageChange:w,warningLevel:B,outputPrice:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):U.createElement(If,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},U.createElement("div",{className:Af()},!l&&K.length?U.createElement(U.Fragment,null,U.createElement($f,null,K.map((se,Ze)=>{let H=`${se.value}_${Ze}`;return U.createElement(U.Fragment,{key:H},U.createElement(ab,{label:se.label,value:se.value}),U.createElement(wn,{size:4,direction:"horizontal"}))})),U.createElement(Qi,null),!L&&U.createElement(wn,{size:4})):null,U.createElement("div",{id:"portal-root",className:Nf()},U.createElement(Ll,{quote:e,time:re,fee:Q,feeWarning:le,timeWarning:ue,showModalFee:p,steps:q}),L&&U.createElement(Ef,{onClick:se=>{se.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(bn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Lo.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:Bf()},U.createElement(_f,null,U.createElement(ib,{size:12,color:"gray"})),U.createElement(Df,null,U.createElement(Nl,{size:"small",variant:"body"},`${I} ${$[0].from.token.displayName} = `),U.createElement(jf,{content:n.value,container:R,open:n.value?void 0:!1},U.createElement(Nl,{size:"small",variant:"body"},"\xA0",`${A} ${$[$.length-1].to.token.displayName}`))),U.createElement(jf,{content:n.usdValue,container:R},U.createElement(wn,{size:2,direction:"horizontal"}),U.createElement(bn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&U.createElement(lb,{id:"widget-quote-token-amount-container",tooltipContainer:R,type:"output",direction:"vertical",price:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:$[q-1].to.token.displayName,image:$[q-1].to.token.image},chain:{image:$[q-1].to.chain.image},percentageChange:w,warningLevel:B}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(sr,{from:$[0].from,to:$[q-1].to,percentageChange:w,warningLevel:B}),U.createElement(wn,{size:4}))),U.createElement(bf,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},U.createElement(Kf,{type:s,quoteRef:x,selected:c,setExpanded:v,container:R,expanded:k,steps:$}),U.createElement(Mf,{open:k},U.createElement(Pf,null),U.createElement("div",{className:xf()},$.map((se,Ze)=>{let H=`item-${Ze}`;return U.createElement(sb,{type:"quote-details",className:"widget-quote-step-details-container",key:H,tooltipContainer:R,step:se,hasSeparator:Ze!==$.length-1,state:se.state})})))))}i(_l,"Quote");import{Divider as fb,Skeleton as gb}from"@rango-dev/ui";import Kt from"react";import{darkTheme as ub,styled as Zi}from"@rango-dev/ui";var Xf=Zi("div",{$$color:"$colors$neutral100",[`.${ub} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Yf=Zi("div",{paddingTop:"$2"}),Zf=Zi("div",{paddingLeft:"$8"}),Jf=Zi("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as lg,Divider as xt,Skeleton as ct}from"@rango-dev/ui";import V from"react";import{css as db,styled as Vt}from"@rango-dev/ui";var Dl=Vt("div",{display:"flex"}),Rf=Vt("div",{padding:"$10 $0 $20"}),eg=Vt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),tg=Vt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),og=Vt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),ng=Vt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),rg=Vt("div",{width:"65%",display:"flex",justifyContent:"start"}),ig=Vt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),ag=Vt("div",{padding:"$15 $0 $15 $0"}),sg=db({display:"flex",justifyContent:"space-between",alignItems:"center"});function cr(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(og,null,V.createElement(rg,null,V.createElement(lg,{loading:!0,size:"medium"}),V.createElement(xt,{size:8,direction:"horizontal"}),V.createElement(ig,null,V.createElement(ct,{height:10,width:60,variant:"rounded"}),V.createElement(xt,{size:4}),V.createElement(ct,{height:15,variant:"rounded"}))),V.createElement(ct,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(Dl,null,V.createElement(ct,{width:65,height:20,variant:"rounded"}),V.createElement(xt,{size:4,direction:"horizontal"}),V.createElement(ct,{width:65,height:20,variant:"rounded"}),V.createElement(xt,{size:4,direction:"horizontal"}),V.createElement(ct,{width:65,height:20,variant:"rounded"})),V.createElement(Qi,null),!r&&V.createElement(xt,{size:4})),V.createElement("div",{className:sg()},V.createElement(Dl,null,V.createElement(ct,{width:60,height:10,variant:"rounded"}),V.createElement(xt,{size:4,direction:"horizontal"}),V.createElement(ct,{width:60,height:10,variant:"rounded"}),V.createElement(xt,{size:4,direction:"horizontal"}),V.createElement(ct,{width:60,height:10,variant:"rounded"})),r&&V.createElement(ct,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(Rf,null,V.createElement(ct,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(eg,null,V.createElement(tg,null,V.createElement(lg,{loading:!0,size:"medium"}),V.createElement(xt,{direction:"horizontal",size:4}),V.createElement(ct,{height:15,width:150,variant:"rounded"})),V.createElement(xt,{size:10}),V.createElement(ct,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(xt,{size:4}),V.createElement(ag,null,n,V.createElement(ng,null),n),V.createElement(xt,{size:12})))}i(cr,"QuoteSummarySkeleton");import{ChainToken as mg,Divider as Fl,NextIcon as mb,Skeleton as Ji}from"@rango-dev/ui";import We from"react";import{styled as pr}from"@rango-dev/ui";var cg=pr("div",{display:"flex",alignItems:"start"}),pg=pr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),$l=pr("div",{display:"flex",alignItems:"center",flexGrow:1}),ug=pr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),dg=pr("div",{display:"flex",alignItems:"center"});function Pt(t){let{separator:e=!0}=t;return We.createElement(We.Fragment,null,We.createElement(dg,null,We.createElement(Ji,{height:22,width:22,variant:"circular"}),We.createElement(Fl,{direction:"horizontal",size:8}),We.createElement(Ji,{height:15,width:148,variant:"rounded"})),We.createElement(cg,null,We.createElement(Jf,{hideSeparator:!e}),We.createElement(pg,{extraSpace:e},We.createElement($l,null,We.createElement(mg,{size:"small",loading:!0}),We.createElement(Fl,{direction:"horizontal",size:8}),We.createElement(Ji,{height:12,variant:"rounded"})),We.createElement(ug,null,We.createElement(mb,{color:"gray",size:16})),We.createElement($l,null,We.createElement(mg,{size:"small",loading:!0}),We.createElement(Fl,{direction:"horizontal",size:8}),We.createElement(Ji,{height:12,variant:"rounded"})))))}i(Pt,"StepSkeleton");function ur(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Kt.createElement(Xf,{expanded:o,rounded:e!=="basic"},Kt.createElement(cr,{type:e,tagHidden:n}),Kt.createElement(Yf,null,Kt.createElement(gb,{height:15,variant:"rounded"})),o&&Kt.createElement(Zf,null,Kt.createElement(fb,{size:24}),Kt.createElement(Pt,null),Kt.createElement(Pt,null),Kt.createElement(Pt,{separator:!1})))}i(ur,"QuoteSkeleton");function Mo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:f,onClickAllRoutes:h,fullExpandedMode:g=!1,container:m}=t,{inputAmount:d,inputUsdValue:y}=O(),C=e?.outputAmount?new hb(e?.outputAmount):null,S=e?yt(e):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Ri.createElement(Il,null,Ri.createElement(ur,{tagHidden:c,type:o,expanded:s})):v?Ri.createElement(Il,{onClick:()=>l?.(e),id:f},Ri.createElement(_l,{quote:e,error:r,container:m,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:h,fullExpandedMode:g,input:{value:d,usdValue:y?.toString()??""},output:{value:C?.toString()??"",usdValue:S?.toString()??""}})):null}i(Mo,"QuoteInfo");import{calculatePendingSwap as Tb}from"@rango-dev/queue-manager-rango-preset";import{useEffect as kb}from"react";import{useRef as yb,useState as Sb}from"react";var Cb=2e3;function ea({request:t}){let[e,o]=Sb(!1),n=yb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,Cb)),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(ea,"useFetch");function fg(){let{fetch:t,loading:e,cancelFetch:o}=ea({request:async(n,r)=>await at().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(fg,"useFetchConfirmQuote");function ta(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Ol(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ta,"throwErrorIfResponseIsNotValid");function Ol(t){if(yd(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Sd(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=vd(t);if(o){let n=Si(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Ol,"getQuoteError");function gg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=pn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=xd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(gg,"generateWarnings");function oa(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:t?.code==="ERR_BAD_REQUEST"?{swap:null,error:{type:0,diagnosisMessage:t.response.data.error},warnings:null}:{swap:null,error:{type:1,diagnosisMessage:t.message},warnings:null}}i(oa,"handleQuoteErrors");function Ul(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=O(),{slippage:l,customSlippage:p}=T(),u=T().getDisabledLiquiditySources(),f=T().blockchains(),h=T().tokens(),{findToken:g}=T(),m=p||l,{fetch:d,cancelFetch:y,loading:C}=fg();return kb(()=>y,[]),{loading:C,fetch:i(async k=>{let v=k.selectedWallets,x=k?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=v.reduce((E,b)=>(E[b.chain]=b.address,E),{}),A={requestId:a?.requestId||"",selectedWallets:I,destination:x||void 0};try{return await d(A,!0).then(E=>{let{result:b}=E;if(!b)throw new Error(E.error??"Error fetching updated quote");ta({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let w={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};r(w);let B={slippage:m.toString(),disabledSwappersGroups:u},P=gg({previousQuote:a??void 0,currentQuote:w,meta:{blockchains:f},selectedWallets:v,userSlippage:m,inputUsdValue:n,findToken:g});c();let $=!!P.balance,q=Tb(o.toString(),b,bd(v),B,!$,{blockchains:f,tokens:h});return{quote:w,swap:q,error:null,warnings:P}})}catch(E){return oa(E)}},"fetch"),cancelFetch:y}}i(Ul,"useConfirmSwap");var Wb=xb("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${hg}`]:{width:"$48",height:"$48"}}),Lb=ql({flexGrow:1,paddingRight:"$10"}),Mb=ql({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Pb=ql({display:"flex",justifyContent:"space-between",alignItems:"center"});function yg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=Bb(),[c,l]=dr(""),p=!n,[u,f]=dr(!1),[h,g]=dr(!1),{isActiveTab:m}=te(),d=T().getDisabledLiquiditySources(),y=Nb(d),{manager:C}=vb(),{fetch:S,loading:k,cancelFetch:v}=Ul(),[x,I]=dr({swap:null,error:null,warnings:null}),[A,E]=dr(!1),b=i(async({selectedWallets:L,customDestination:ae})=>{let re=await S?.({selectedWallets:L,customDestination:ae});return I(re),re},"onConfirmSwap"),w=i(async()=>{if(x.swap&&n)try{await C?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let L=`../${F.swaps}/${x.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{g(!0),await w(),g(!1)},"onConfirm"),P=i(async()=>{x.warnings?.quote&&cd(x.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),$=i(async()=>{I({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(L=>{I(L)}).catch(L=>console.error(L))},"onRefresh");na(()=>{!!y.current.length&&!d.length&&$(),y.current=d},[d.length]),na(()=>{p&&v()},[p]),na(()=>{p&&f(p)},[p]),na(()=>{p||S({selectedWallets:o,customDestination:r}).then(L=>I(L)).catch(L=>console.error(L))},[]),Ab(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=x.warnings?.quote??null,R=x.error,K=[];if(c&&K.push(De.createElement(wb,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||R){let L=`../${F.settings}`;K.push(De.createElement(ir,{warning:q,error:R,couldChangeSettings:!1,refetchQuote:$,skipAlerts:R?.type===4||q?.type===2,showWarningModal:A,confirmationDisabled:!m,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await w()},onChangeSettings:()=>s(L)}))}return De.createElement(ie,{header:{title:zl.t("Confirm Swap"),onWallet:()=>{let L=`../${F.wallets}`;s(L)}},footer:De.createElement(Wb,null,De.createElement("div",{className:Lb()},De.createElement(bb,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||h,disabled:!!x.error||!m,onClick:P},zl.t("Start Swap"))),De.createElement(hg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||h,disabled:!m,onClick:f.bind(null,!0)},De.createElement(Ib,{size:24})))},u&&De.createElement(ef,{open:u,onClose:()=>f(!1),onCancel:v,loading:k,onCheckBalance:b}),De.createElement(ce,null,De.createElement("div",{className:Pb()},De.createElement(Eb,{variant:"title",size:"small"},zl.t("You get")),De.createElement("div",{className:Mb()},De.createElement(Ei,{onClick:!k&&!u&&!A?$:void 0}))),De.createElement(Ql,{size:"12"}),Zd(K.map((L,ae)=>({element:L,key:`alert-${ae}`})),De.createElement(Ql,{size:10})),K.length>0?De.createElement(Ql,{size:10}):null,De.createElement(Mo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:x.error,loading:k,warning:x.warnings?.quote??null})))}i(yg,"ConfirmSwapPage");import{i18n as Xt}from"@lingui/core";import{Button as tc,CustomTokensZeroStateDarkIcon as tx,CustomTokensZeroStateIcon as ox,DeleteIcon as nx,Divider as Sr,IconButton as rx,MessageBox as ix,NotFound as ax,styled as nc}from"@rango-dev/ui";import ye,{useState as oc}from"react";import{useNavigate as sx}from"react-router-dom";import{CloseIcon as Db,IconButton as $b,SearchIcon as Fb,TextField as Ob}from"@rango-dev/ui";import mr from"react";import{styled as _b}from"@rango-dev/ui";var Sg=_b("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Et(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...f}=t,h=s.length?mr.createElement($b,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},mr.createElement(Db,{color:"gray",size:10})):null;return p&&(h=p),mr.createElement(Ob,{prefix:mr.createElement(Sg,null,mr.createElement(Fb,{color:"black"})),id:u,suffix:h,fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...f})}i(Et,"SearchInput");import{i18n as ec}from"@lingui/core";import{Button as qb,CustomTokenWarning as Hb,darkTheme as Bg,Divider as jt,ExternalLinkIcon as Gb,Image as Vb,ListItem as Kb,NotFound as jb,PinIcon as Xb,Skeleton as Po,Typography as hr,VirtualizedList as Yb}from"@rango-dev/ui";import M,{useState as Zb}from"react";import{useTranslation as Jb}from"react-i18next";import{Divider as Ag,ListItem as Qb,Skeleton as gr}from"@rango-dev/ui";import It from"react";import{css as xn,darkTheme as Hl,ImageContainer as Ub,ListItemButton as zb,styled as ot,Typography as Cg}from"@rango-dev/ui";var Gl=xn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Vl=xn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Kl=xn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),jl=xn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Hl} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Xl=xn({}),Yl=xn(),Tg=ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),Zl=ot("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ra=ot("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Vl}`]:{[`& .${jl}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Xl}`]:{bottom:"-15px"},[`& .${Gl}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Kl}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),kg=ot(zb,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),Jl=ot("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Rl=ot(Cg,{}),vg=ot("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Yl}`]:{$$color:"$colors$neutral600",[`.${Hl} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),fr=ot("div",{display:"flex",alignItems:"end",flexDirection:"column"}),RH=ot("div",{display:"flex",alignItems:"center"}),wg=ot("div",{position:"relative",[`& ${Ub}`]:{borderRadius:"$xm",overflow:"hidden"}}),bg=ot("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),xg=ot(Cg,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Eg=ot("a",{"& svg:hover":{color:"$colors$info"}}),Ig=ot("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${Hl} &`]:{color:"$foreground"}}}});function Ng(t){return It.createElement(ra,null,Array.from(Array(t.size),e=>It.createElement(Qb,{key:e,hasDivider:!0,start:It.createElement(gr,{variant:"circular",width:35,height:35}),end:It.createElement(fr,null,It.createElement(gr,{variant:"text",size:"large",width:70}),It.createElement(Ag,{size:4}),It.createElement(gr,{variant:"text",size:"medium",width:50})),title:It.createElement("div",null,It.createElement(gr,{variant:"text",size:"large",width:90}),It.createElement(Ag,{size:4}),It.createElement(gr,{variant:"text",size:"medium",width:90}))})))}i(Ng,"LoadingTokenList");var Rb=20,ex=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return M.createElement("div",{className:Vl()},o?M.createElement("div",{className:Gl()},o):M.createElement(Zl,{className:Kl()},M.createElement(hr,{variant:"title",size:"xmedium"},r.symbol),M.createElement(jt,{direction:"horizontal",size:4}),M.createElement(Jl,{css:a},M.createElement(Rl,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&M.createElement("div",{className:`${jl()} ${!o&&Xl()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",M.createElement(jt,{size:4,direction:"horizontal"}),M.createElement(Eg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},M.createElement(Gb,{size:12}))))},"renderDesc");function yr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=T().fetchStatus,u=T().blockchains(),{getBalanceFor:f,fetchingWallets:h}=T(),{isTokenPinned:g}=T(),{setFromToken:m,setToToken:d}=O(),{t:y}=Jb(),C=Ge(),[S,k]=Zb(null),v=i(()=>{c==="source"?m({token:S,meta:{blockchains:u}}):d({token:S,meta:{blockchains:u}})},"updateToken"),x=i(()=>{v(),C()},"handleImportToken"),I=i(b=>{if(b.customToken){let{customToken:B,...P}=b;return M.createElement(qb,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),k({...P,warning:!0})},"handleClick")},M.createElement(hr,{variant:"body",size:"xsmall",color:"background"},y("import")))}let w=Yr(f(b));return s?s(b):h?M.createElement(fr,null,M.createElement(Po,{variant:"text",size:"large",width:70}),M.createElement(jt,{size:4}),M.createElement(Po,{variant:"text",size:"medium",width:50})):w&&M.createElement(vg,null,M.createElement(xg,{variant:"title",size:"small"},w.amount),M.createElement("div",null),w.usdValue&&M.createElement(hr,{variant:"body",className:Yl(),size:"xsmall"},`$${w.usdValue}`))},"endRenderer"),A=i(()=>M.createElement(Yb,{itemContent:b=>{let w=e[b];if(w==="skeleton")return M.createElement(Kb,{hasDivider:!0,start:M.createElement(Po,{variant:"circular",width:35,height:35}),end:M.createElement(fr,null,M.createElement(Po,{variant:"text",size:"large",width:70}),M.createElement(jt,{size:4}),M.createElement(Po,{variant:"text",size:"medium",width:50})),title:M.createElement("div",null,M.createElement(Po,{variant:"text",size:"large",width:90}),M.createElement(jt,{size:4}),M.createElement(Po,{variant:"text",size:"medium",width:90}))});let B=w.address||"",P=u.find(L=>L.name===w.blockchain);if(!P)return null;let $=Hs(P.color,"main"),q={$$color:$.main150,[`.${Bg} &`]:{$$color:$.main750},backgroundColor:"$$color"},R={$$color:$.main750,[`.${Bg} &`]:{$$color:$.main150},color:"$$color"},K=i(()=>{typeof w!="string"&&!w.customToken&&n?.(w)},"handleClick");return M.createElement(Ig,null,M.createElement(kg,{"tab-index":b,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:w.customToken,onClick:K,start:M.createElement(wg,null,M.createElement(Vb,{src:w.image===""?Ur:w.image,size:30}),t.type!=="custom-token"&&g(w,t.type)&&M.createElement(bg,null,M.createElement(Xb,{size:12,color:"gray"}))),title:P?.type==="COSMOS"||w.name||!w.name&&!B?M.createElement(Zl,null,M.createElement(hr,{variant:"title",size:"xmedium"},w.symbol),M.createElement(jt,{direction:"horizontal",size:4}),M.createElement(Jl,{css:q},M.createElement(Rl,{variant:"body",size:"xsmall",css:R},w.blockchain)),l&&w.warning&&M.createElement(M.Fragment,null,M.createElement(jt,{direction:"horizontal",size:4}),M.createElement(Hb,{container:N()}))):void 0,description:typeof w!="string"&&P?.info&&B&&P.type!=="COSMOS"?ex({address:B,token:w,customCssForTag:q,customCssForTagTitle:R,name:w.name,url:P.info.addressUrl.split("{wallet}").join(B)}):w.name||void 0,end:I(w)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=S?So(S?.blockchain,u):null;return M.createElement(M.Fragment,null,a&&M.createElement(M.Fragment,null,M.createElement(hr,{variant:"label",size:"large"},ec.t("Select Token")),M.createElement(jt,{size:4})),M.createElement(Tg,null,M.createElement(jt,{size:4}),p==="loading"&&M.createElement(Ng,{size:Rb}),p==="success"&&(e.length?M.createElement(M.Fragment,null,M.createElement(Yn,{token:S,address:S?.address??"",blockchain:E??void 0,onImport:x,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),M.createElement(ra,{as:"ul"},A())):!!o&&M.createElement(jb,{title:ec.t("No results found"),description:ec.t("Try using different keywords")}))))}i(yr,"TokenList");var lx=nc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),cx=nc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),px=nc(rx,{"&:hover":{"& svg":{color:"$secondary550"}}});function Wg(){let[t,e]=oc(""),{deleteCustomToken:o}=T(),n=T().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=O(),{mode:l}=no({}),p=sx(),[u,f]=oc(!1),[h,g]=oc(),m=i(S=>{let k=S.target.value;e(k)},"handleSearch"),d=l==="dark",y=n.filter(S=>rt(S.symbol,t)||rt(S.address||"",t)||rt(S.name||"",t)),C=i(()=>{if(h){let S=a?gt(a):null,k=r?gt(r):null,v=gt(h);S===v?c({token:null}):k===v&&s({token:null}),o(h)}f(!1)},"handleDeleteCustomToken");return ye.createElement(ie,{header:{title:Xt.t("Custom Tokens")}},ye.createElement(ce,null,ye.createElement(lx,null,n.length?ye.createElement(ye.Fragment,null,ye.createElement(Et,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Xt.t("Search Token"),onChange:m}),ye.createElement(Sr,{size:16}),ye.createElement(yr,{list:y,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:S=>ye.createElement(px,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{f(!0),g(S)}},ye.createElement(nx,{size:12,color:"gray"}))})):ye.createElement(cx,null,ye.createElement(ax,{icon:d?ye.createElement(tx,{size:200}):ye.createElement(ox,{size:200}),title:Xt.t("No custom tokens"),description:Xt.t("press the button to add your custom token")})),ye.createElement(Sr,{size:20}),ye.createElement(tc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(F.addCustomTokens)},Xt.t("Add Custom Token"))),ye.createElement(J,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>f(!1),container:N()},ye.createElement(ix,{title:Xt.t("Delete Custom Token"),type:"error",description:Xt.t("Are you sure you want to Delete this Token?")},ye.createElement(Sr,{size:40}),ye.createElement(Sr,{size:10}),ye.createElement(tc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},Xt.t("Yes, Delete it")),ye.createElement(Sr,{size:12}),ye.createElement(tc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>f(!1)},Xt.t("No, Continue"))))))}i(Wg,"CustomTokensPage");import{i18n as Xe}from"@lingui/core";import{useManager as Bx}from"@rango-dev/queue-manager-react";import{Button as pc,darkTheme as Wx,Divider as Do,MessageBox as Lx,NotFound as Mx,styled as uc,Typography as sa}from"@rango-dev/ui";import{TransactionStatus as kr}from"rango-types";import pe,{useMemo as Yg,useState as la}from"react";import{useNavigate as Px}from"react-router-dom";import{FilterIcon as yx,Popover as Sx}from"@rango-dev/ui";import _o from"react";import{css as ux,darkTheme as ia,IconButton as dx,styled as Cr}from"@rango-dev/ui";var rc=Cr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ia} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),Lg=Cr(dx,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ia} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ia} &`]:{backgroundColor:"$neutral"},[`& ${rc}::before`]:{backgroundColor:"$secondary100",[`.${ia} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Mg=Cr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Pg=Cr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),_g=ux({display:"flex",justifyContent:"space-between",alignItems:"center"}),Dg=Cr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as $g}from"@lingui/core";import{Button as mx,Divider as Fg,ListItemButton as fx,Radio as gx,RadioRoot as hx,Typography as Og}from"@rango-dev/ui";import pt from"react";function Ug(t){let{filterBy:e,onClickItem:o}=t;return pt.createElement(Pg,null,pt.createElement("div",{className:_g()},pt.createElement(Og,{size:"small",variant:"body"},$g.t("Status")),pt.createElement(mx,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},$g.t("Reset"))),pt.createElement(Fg,{size:10}),pt.createElement(hx,{value:e},pt.createElement(Dg,null,t.list.map((n,r)=>pt.createElement(fx,{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:pt.createElement(pt.Fragment,null,pt.createElement(Fg,{direction:"horizontal",size:4}),pt.createElement(Og,{size:"medium",variant:"body"},n.title)),start:pt.createElement(gx,{value:n.id}),onClick:o})))))}i(Ug,"FilterSelectorContent");function ic(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return _o.createElement("div",null,_o.createElement(Sx,{open:a,align:"end",onOpenChange:o,container:N(),content:_o.createElement(Ug,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},_o.createElement(Lg,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},_o.createElement(rc,{isSelect:!!n},_o.createElement(yx,{size:16,color:"black"}),!!n&&_o.createElement(Mg,null)))))}i(ic,"FilterSelector");import{i18n as kx}from"@lingui/core";import{getCurrentStep as vx}from"@rango-dev/queue-manager-rango-preset";import{Divider as Gg,GroupedVirtualizedList as wx,Skeleton as bx,SwapListItem as Vg,Typography as xx}from"@rango-dev/ui";import je,{useCallback as Kg,useEffect as Ex,useRef as Ix,useState as Ax}from"react";function zg(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(zg,"calculateGroupsSoFar");import{css as Cx,darkTheme as Tx,styled as Tr}from"@rango-dev/ui";var ac=Cx(),Qg=Tr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),sc=Tr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ac}`]:{$$color:"$colors$neutral600",[`.${Tx} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),lc=Tr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),qg=Tr("div",{gap:"$10",display:"flex",flexDirection:"column"}),Hg=Tr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var Nx=10;function cc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=Ax([]),c=Ix(0),{swaps:l,groupCounts:p,groups:u}=n(e),f=Kg(zg,[]),h=Kg(()=>{let g=e.length-c.current;g&&(c.current+=Math.min(g,Nx),s(f(p,c.current)))},[e.length]);if(Ex(()=>{r||h()},[r,h]),r){let g=[1,2];return je.createElement(je.Fragment,null,[g,g].map((d,y)=>je.createElement(sc,{key:y},je.createElement(lc,null,je.createElement(bx,{variant:"text",width:60,size:"small"}),je.createElement(Gg,{size:16})),je.createElement(Gg,{size:4}),je.createElement(qg,null,d.map((S,k)=>je.createElement(Vg,{isLoading:!0,key:k}))))))}return je.createElement(wx,{endReached:()=>{c.current<e.length&&h()},groupCounts:a,groupContent:g=>je.createElement(sc,null,je.createElement(lc,null,je.createElement(xx,{variant:"label",size:"medium",className:ac()},u[g]))),itemContent:(g,m)=>{let d=l[g];if(!d)return null;let y=vx(d),C=d.steps[0],S=d.steps[d.steps.length-1];return je.createElement(Qg,{key:d.requestId},je.createElement(Vg,{className:"widget-history-group-list-swap-item-btn",requestId:d.requestId,creationTime:d.creationTime,status:d.status,onClick:o,currentStep:y,tooltipContainer:N(),onlyShowTime:u[m]===kx.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:_(d.inputAmount,6,6),realAmount:d.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:_(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(cc,"HistoryGroupedList");import{i18n as aa}from"@lingui/core";import jg from"dayjs";var Xg=i(t=>{let e=new Map([["today",{title:aa.t("Today"),swaps:[]}],["week",{title:aa.t("This week"),swaps:[]}],["month",{title:aa.t("This month"),swaps:[]}],["year",{title:aa.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=jg();t.forEach(l=>{let p=Number(l.creationTime),u=jg(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 f=new Date(p).getFullYear().toString();o(f,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 _x=uc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Dx=uc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),$x=uc("div",{"._typography":{color:"$neutral700",[`.${Wx}&`]:{color:"$neutral900"}}}),Fx=[{id:kr.SUCCESS,title:Xe.t("Complete")},{id:kr.RUNNING,title:Xe.t("Running")},{id:kr.FAILED,title:Xe.t("Failed")}],Ox=i((t,e)=>t?.length?t.filter(o=>Nt(o.fromBlockchain,e)||Nt(o.toBlockchain,e)||Nt(o.toSymbol,e)||Nt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Zg(){let t=Px(),{manager:e,state:o}=Bx(),n=St(e).map(({swap:k})=>k),[r,a]=la(""),[s,c]=la(!1),l=!o.loadedFromPersistor,[p,u]=la(""),[f,h]=la(!1),g=i(k=>{let v=k.target.value;a(v)},"handleSearch"),m=Yg(()=>!r&&!p?n:n.filter(k=>{let{inputAmount:v,status:x,steps:I,requestId:A}=k;return(!r||Nt(v,r)||Nt(x,r)||Ox(I,r)||Nt(A,r))&&(!p||p===x)}),[n,r,p]),d=!m?.length&&!l,y=i(()=>h(!1),"onCloseModal"),C=i(async()=>{try{await e?.clearQueue(),h(!1)}catch(k){console.log(k)}},"onClear"),S=Yg(()=>!n.some(k=>k.status===kr.SUCCESS||k.status===kr.FAILED),[n]);return pe.createElement(ie,{header:{title:Xe.t("History"),suffix:pe.createElement(ro,null,pe.createElement(pc,{id:"widget-history-clear-btn",disabled:S,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},pe.createElement(sa,{size:"medium",variant:"label",color:"error"},Xe.t("Clear"))))}},pe.createElement(ce,null,pe.createElement(Dx,null,pe.createElement(Et,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Xe.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:g,style:{height:36},value:r}),pe.createElement(Do,{size:10,direction:"horizontal"}),pe.createElement(ic,{filterBy:p,open:s,onOpenChange:k=>c(k),onClickItem:k=>u(k),list:Fx})),pe.createElement(Do,{size:"16"}),pe.createElement(_x,null,d&&pe.createElement(Hg,null,pe.createElement(Do,{size:32}),pe.createElement(Mx,{title:r?Xe.t("No results found"):Xe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Xe.t("Try using different keywords"):Xe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!d&&pe.createElement(cc,{list:m,onSwapClick:t,groupBy:Xg,isLoading:l}))),pe.createElement(J,{open:f,onClose:y,id:"widget-history-clear-modal",container:N()},pe.createElement(Do,{size:20}),pe.createElement(Lx,{type:"warning",title:Xe.t("Clear Transaction History"),description:pe.createElement($x,null,pe.createElement(sa,{variant:"body",size:"medium"},Xe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),pe.createElement(Do,{size:"24"}),pe.createElement(sa,{variant:"body",size:"small"},Xe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),pe.createElement(Do,{size:30}),pe.createElement(pc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},Xe.t("Yes, Clear the history")),pe.createElement(Do,{size:10}),pe.createElement(pc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:y},pe.createElement(sa,{variant:"title",size:"medium",color:"primary"},Xe.t("No, Cancel")))))}i(Zg,"HistoryPage");import{i18n as TE}from"@lingui/core";import{Button as kE,Divider as xc,styled as vE,WarningIcon as wE}from"@rango-dev/ui";import bE from"bignumber.js";import Se,{useEffect as Ih,useState as Ah}from"react";import{useNavigate as xE}from"react-router-dom";import{i18n as Rg}from"@lingui/core";import{Alert as zx,Divider as dc,NoRouteIcon as Qx,Typography as qx}from"@rango-dev/ui";import $o from"react";import{styled as Ux}from"@rango-dev/ui";var Jg=Ux("div",{display:"flex",flexDirection:"column",alignItems:"center"});function mc(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Ft(t,e)?$o.createElement(Jg,null,$o.createElement(dc,{size:10}),$o.createElement(Qx,{size:24,color:"gray"}),$o.createElement(dc,{size:4}),$o.createElement(qx,{variant:"title",size:"small"},Rg.t("No Routes Found")),$o.createElement(dc,{size:4}),$o.createElement(zx,{title:Rg.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(mc,"SameTokensWarning");import{Alert as Hx,Button as Gx}from"@rango-dev/ui";import th from"react";import{i18n as ca}from"@lingui/core";function eh(t){let e=null;return t===ei?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ca.t("Reset"),title:ca.t("Slippage cannot be set lower than 0.01%.")},e):t>Vo?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ca.t("Change"),title:ca.t("Caution, your slippage is high!")},e):null}i(eh,"makeAlerts");function oh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=T(),{onChangeSettings:a}=t,c=eh(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(Rr),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?th.createElement(Hx,{title:c.title,type:c.alertType,variant:"alarm",action:th.createElement(Gx,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(oh,"SlippageWarningsAndErrors");import{i18n as Yx}from"@lingui/core";import{IconButton as Zx,ReverseIcon as Jx,Skeleton as Rx,Tooltip as eE,Typography as vr}from"@rango-dev/ui";import ut from"react";import pa from"bignumber.js";function rh(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(rh,"getSlippageColor");function ih(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new pa(e),r=new pa(o),a=n.dividedBy(r),s;return a.isLessThan(1)?s=a.toFixed(14).replace(/\.?0+$/,""):a.toFixed(0).length>10?s=a.toFixed(0).slice(0,10):s=a.toFixed(2),{displayValue:s,rawValue:a.toFixed()}}i(ih,"getUsdExchangeRate");function ah(t,e){let o=new pa(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,pa.ROUND_DOWN).toFormat(2)}`}i(ah,"formatTokenValueInUsd");import{darkTheme as jx,styled as gc,Typography as Xx}from"@rango-dev/ui";var sh=gc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),lh=gc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${jx} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),hc=gc(Xx,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function yc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=T(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,f=o!==null?o:e,{mode:h}=no({}),g=Xo(f),m=h==="dark",d=n==="default",y={quoteError:a,slippageError:g?.type==="error"?g.message:null},C={quoteWarning:s,slippageWarning:g?.type==="warning"?g.message:null},S=p?.swaps[0].from||c,k=p?.swaps[p?.swaps.length-1].to||l,v=d?S:k,x=d?k:S,I=Number(d?p?.outputAmount:p?.requestAmount),A=Number(d?p?.requestAmount:p?.outputAmount),E=I||v.usdPrice,b=A||x.usdPrice,{rawValue:w,displayValue:B}=ih({toTokenUsdPrice:b,fromTokenUsdPrice:E});return ut.createElement(sh,null,ut.createElement(vr,{variant:y||C?"label":"body",size:y||C?"medium":"small",color:rh({error:y,warning:C,isDarkTheme:m})},Yx.t("Slippage:")," ",f,"%"),u?ut.createElement(Rx,{height:16,width:104,variant:"rounded"}):E&&b&&ut.createElement(lh,null,ut.createElement(vr,{className:"rate-text",variant:"body",size:"small"},"1"),ut.createElement(hc,{className:"rate-text",variant:"body",size:"small"},x.symbol),ut.createElement(Zx,{id:"widget-home-page-change-rate-button",onClick:r},ut.createElement(Jx,{size:14,color:"secondary"})),ut.createElement(eE,{container:N(),side:"top",sideOffset:4,content:ut.createElement(vr,{className:"rate-text",variant:"body",size:"small"},w)},ut.createElement(vr,{className:"rate-text",variant:"body",size:"small"},B)),ut.createElement(hc,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&ut.createElement(vr,{color:"neutral600",variant:"body",size:"small"},"~",ah(Number(w),v.usdPrice))))}i(yc,"SwapMetrics");import{i18n as aE}from"@lingui/core";import{Header as sE}from"@rango-dev/ui";import po,{useEffect as lE,useState as cE}from"react";import{i18n as oE}from"@lingui/core";import{Divider as Cc,FullExpandedQuote as nE,Typography as rE}from"@rango-dev/ui";import we from"react";import{styled as Sc}from"@rango-dev/ui";var ch=Sc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),ph=Sc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),uh=Sc("div",{width:"146px"});import{i18n as wr}from"@lingui/core";import{Select as tE}from"@rango-dev/ui";import dh from"react";function ua(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:wr.t("Smart Routing")},{value:"FEE",label:wr.t("Lowest Fee")},{value:"SPEED",label:wr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:wr.t("Maximum Return")},{value:"PRICE",label:wr.t("Maximum Output")}];return dh.createElement(uh,null,dh.createElement(tE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ua,"SelectStrategy");var mh=3;function br(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:f,toToken:h,sortStrategy:g,error:m}=O(),{slippage:d,customSlippage:y}=T(),{findToken:C}=T(),S=c||N(),k=!!p&&p.results.length,v=y??d,x=i(E=>{if(!f||!h||!p)return null;let b={requestAmount:p.requestAmount,validationStatus:null,...E};return pn({currentQuote:b,userSlippage:v,findToken:C})},"getQuoteWarning"),I=m?.type===0||m?.type===1,A=p?.results?hi(g,p?.results):[];return we.createElement(we.Fragment,null,a&&we.createElement(we.Fragment,null,we.createElement(ph,null,we.createElement(rE,{size:"xmedium",variant:"title"},oE.t("Sort by")),we.createElement(ua,{container:S})),we.createElement(Cc,{size:"10"})),e&&Array.from({length:mh},(E,b)=>we.createElement(we.Fragment,{key:b},s?we.createElement(nE,{loading:!0}):we.createElement(ur,{tagHidden:!1,type:"list-item",expanded:!1}),b!==mh-1&&we.createElement(Cc,{size:16}))),!e&&we.createElement(we.Fragment,null,k?A.map((E,b)=>{let w=x(E),B=Ol(E.swaps),P=A.length-1===b;return we.createElement(we.Fragment,{key:E.requestId},we.createElement(Mo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:S,selected:l?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:w,fullExpandedMode:s,onClick:$=>{B||u("warning",w),u("error",B?.options||null),o($)},type:"list-item"}),!P&&we.createElement(Cc,{size:16}))}):I&&we.createElement(ch,null,we.createElement(or,{size:s?"large":"small",error:m,fetch:n}))))}i(br,"Quotes");import{darkTheme as iE,styled as fh}from"@rango-dev/ui";var gh=fh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${iE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),hh=fh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var pE=100;function Tc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=cE(!1),l=s?"":"is-hidden",{config:p}=T(),u=p?.variant==="full-expanded",f=To();return lE(()=>{let h=null;return a?h=setTimeout(()=>{c(!0)},pE):(c(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),po.createElement(gh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Bi()} widget-expanded-quotes-container`,id:Qe.EXPANDED_BOX_ID},po.createElement(sE,{title:aE.t("Routes"),suffix:po.createElement(po.Fragment,null,po.createElement(ua,{container:f}),po.createElement(Bo,{container:f,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),po.createElement(hh,null,po.createElement(br,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:To(),onClickOnQuote:n,fullExpandedMode:u})))}i(Tc,"ExpandedQuotes");import{i18n as wh}from"@lingui/core";import{SwapInput as bh}from"@rango-dev/ui";import fE from"bignumber.js";import xr from"react";import{ReverseIcon as mE}from"@rango-dev/ui";import vc from"react";import{keyframes as uE,styled as yh}from"@rango-dev/ui";var kc=450,dE=uE({"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)"}}),Sh=yh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Ch=yh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${dE} ${kc}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 wc(){let t=O.use.switchFromAndTo();return vc.createElement(Sh,null,vc.createElement(Ch,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},kc),t()}},vc.createElement(mE,{size:12})))}i(wc,"SwitchFromAndToButton");import{styled as Th}from"@rango-dev/ui";var kh=Th("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),vh=Th("div",{position:"relative"});function bc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:f,inputUsdValue:h,outputAmount:g,outputUsdValue:m,selectedQuote:d}=O(),{connectedWallets:y,getBalanceFor:C}=T(),S=a?C(a):null,k=Yr(S)?.amount??"0",v=S?new fE(S.amount).shiftedBy(-S.decimals):de,x=!!s&&eu(y,s.name),I=!Es(d,f,h),A=!Es(d,f,m),E=!h||!m||!m.gt(0)?null:zt(h.toString(),m.toString());return xr.createElement(kh,null,xr.createElement(vh,null,xr.createElement(bh,{label:wh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:k,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:f,usdValue:I?void 0:_(h,4,4),realUsdValue:I?void 0:h?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:N(),onSelectMaxBalance:()=>{let b=_(v,S?.decimals),w=S?.amount?b.split(",").join(""):"";p(w)},anyWalletConnected:y.length>0}),xr.createElement(wc,null)),xr.createElement(bh,{sharpBottomStyle:!r&&(!!d||e),label:wh.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:_(zt(h,m),2,2),warningLevel:Qt(E??0),price:{value:_(g,6,6),usdValue:A?void 0:_(m,4,4),realValue:g?.toString(),realUsdValue:A?void 0:m?.toString(),error:A?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(bc,"Inputs");import{useCallback as gE,useEffect as hE,useRef as yE,useState as SE}from"react";function xh(){let{fetch:t,loading:e,cancelFetch:o}=ea({request:async(n,r)=>await at().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(xh,"useFetchAllQuotes");var CE=600;function da({refetchQuote:t}){let{fetch:e,cancelFetch:o}=xh(),{excludeLiquiditySources:n,routing:r}=T().config,{connectedWallets:a}=T(),c=a.some(le=>le.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:f,selectedQuote:h,sortStrategy:g,resetQuote:m,error:d,warning:y,setSelectedQuote:C,updateQuotePartialState:S}=O(),{slippage:k,customSlippage:v,affiliatePercent:x,affiliateRef:I,affiliateWallets:A,fetchStatus:E}=T(),b=T().getLiquiditySources(),w=T().getDisabledLiquiditySources(),B=T().excludeLiquiditySources(),{findToken:P}=T(),[$,q]=SE(!0),R=yE(u),K=v??k,ae=!l||!p||Ft(l,p)||!Mn(u),re=i(le=>{q(le)},"resetState"),Q=i(le=>{let{fromToken:ue,toToken:se,inputAmount:Ze,liquiditySources:H,excludeLiquiditySources:W,disabledLiquiditySources:G,slippage:j,affiliateRef:X,affiliatePercent:fe,affiliateWallets:Ue}=le;if($||re(!0),!ae&&ue&&se){m();let Je=wd({fromToken:ue,toToken:se,inputAmount:Ze,liquiditySources:H,excludeLiquiditySources:W,disabledLiquiditySources:G,wallets:a,slippage:j,affiliateRef:X,affiliatePercent:fe,affiliateWallets:Ue,contractCall:c});jo("experimental",r)&&(Je.experimental=!0),jo("avoidNativeFee",r)&&(Je.avoidNativeFee=!0),jo("enableCentralizedSwappers",r)&&(Je.enableCentralizedSwappers=!0),r?.maxLength&&(Je.maxLength=r.maxLength),e(Je).then(be=>{let ze=hi(g,be.results),Rt=ud(h,ze,be.requestAmount);q(!1),S("quotes",be),C(Rt),ta({diagnosisMessages:be.diagnosisMessages,requestId:Rt?.requestId||"",swaps:Rt?.swaps});let yo=Rt&&pn({currentQuote:Rt,userSlippage:K,findToken:P});S("warning",yo)}).catch(be=>{let{error:ze}=oa(be);(ze?.type===0||ze?.type===1)&&m(),ze?.type!==2&&(S("error",ze),q(!1))})}},"fetch"),ee=gE(qr(le=>{Q(le)},CE),[ae]);return hE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(ae){q(!1),(h||d||y)&&m();return}if(!Mn(u)&&f?.eq(0)){re(!1),o();return}m(),re(!0);let le=Q;return R.current&&R.current!=u&&(le=ee),R.current=u,le({inputAmount:u,fromToken:l,toToken:p,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:K,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,ae,b?.length,n,w.length,K,I,x,c,JSON.stringify(A)]),{fetch:()=>Q({inputAmount:u,fromToken:l,toToken:p,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:K,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),loading:$}}i(da,"useSwapInput");function Eh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Te.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Eh,"emitPreventableEvent");var EE=vE("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),IE=300;function Nh(){let t=xE(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:f,updateQuotePartialState:h}=O(),[g,m]=Ah(!1),{isLargeScreen:d,isExtraLargeScreen:y}=fn(),{fetch:C,loading:S}=da({refetchQuote:a}),{config:k,fetchStatus:v,connectedWallets:x,customSlippage:I,slippage:A,setSlippage:E,setCustomSlippage:b}=T(),{isActiveTab:w}=te(),[B,P]=Ah(!1),q=Xo(I!==null?I:A),K=Cd({fetchMetaStatus:v,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),L=su(d,y,k?.variant),ae=!!n&&!!e&&!!o&&new bE(n).gt(0)&&!Bd(e,o),re=ae&&v==="success"&&S,Q=q?.quoteValidation||c,ue=(!L||L&&l?.results.length)&&(Q||s),se=!!e&&!!o,Ze=se&&!!q,H=(r||s)&&!B?C:void 0,W=i(X=>{L&&g?(m(!1),setTimeout(()=>{t(X)},IE)):t(X)},"onHandleNavigation"),G=i(X=>{r?.requestId!==X.requestId&&(P(!1),p(X))},"onClickOnQuote"),j=i(X=>{if(X){if(Jr.includes(X)){E(X),b(null);return}b(X)}},"onChangeSlippage");return Ih(()=>{u(),h("refetchQuote",!0)},[]),Ih(()=>{m(ae)},[ae]),Se.createElement(EE,null,Se.createElement(ie,{height:"auto",footer:Se.createElement(kE,{id:`widget-swap-${K.action}-btn`,type:"primary",size:"large",disabled:K.disabled||!w,prefix:K.action==="confirm-warning"&&Se.createElement(wE,null),fullWidth:!0,onClick:()=>{K.action==="connect-wallet"?Eh({type:"clickConnectWallet"},()=>W(F.wallets)):K.action==="confirm-warning"?P(!0):W(F.confirmSwap)}},K.title),header:{onWallet:()=>{W(F.wallets)},hasBackButton:!1,title:k.title||TE.t("Swap"),suffix:Se.createElement(Bo,{hidden:L?["refresh"]:void 0,onClickRefresh:H,onClickHistory:()=>W(F.swaps),onClickSettings:()=>{W(F.settings)}})}},Se.createElement(ce,null,Se.createElement(bc,{fetchingQuote:re,fetchMetaStatus:v,isExpandable:L,onClickToken:X=>{W(X==="from"?F.fromSwap:F.toSwap)}}),Se.createElement(xc,{size:"2"}),L?null:Se.createElement(Mo,{quote:r,loading:re,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:Q,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{h("refetchQuote",!1),W(F.routes)}:void 0}),se&&Se.createElement(Se.Fragment,null,Se.createElement(xc,{size:8}),Se.createElement(yc,{quoteError:s,quoteWarning:Q,fromToken:e,toToken:o,quote:r,loading:re})),ue?Se.createElement(Se.Fragment,null,Se.createElement(ir,{warning:Q,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:C,showWarningModal:B,confirmationDisabled:!w,onOpenWarningModal:()=>P(!0),onCloseWarningModal:()=>P(!1),onChangeSlippage:j,onConfirmWarningModal:()=>{P(!1),f(!0),W(F.confirmSwap)},onChangeSettings:()=>W(F.settings)})):null,Ze&&Se.createElement(Se.Fragment,null,Se.createElement(xc,{size:"10"}),Se.createElement(oh,{onChangeSettings:()=>W(F.settings)})),Se.createElement(mc,null))),L?Se.createElement(Tc,{loading:re,onClickOnQuote:G,fetch:C,onClickRefresh:H,isVisible:g}):null)}i(Nh,"Home");import{i18n as Bh}from"@lingui/core";import{Alert as AE,Divider as NE,List as BE,ListItemButton as WE,Radio as LE,RadioRoot as ME,Typography as PE}from"@rango-dev/ui";import _t from"react";function uo(){let{setLanguage:t,language:e,config:o}=T(),n=fu,r=o?.language||Yo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Yo),resetLanguage:()=>t(null)}}i(uo,"useLanguage");function Wh(){let{activeLanguage:t,changeLanguage:e,languages:o}=uo(),n=Ge(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:_t.createElement(PE,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:_t.createElement(LE,{value:s}),start:_t.createElement(l,null)}});return _t.createElement(ie,{header:{title:Bh.t("Language")}},_t.createElement(ce,null,_t.createElement(AE,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),_t.createElement(NE,{size:"8"}),_t.createElement(ME,{value:t},_t.createElement(BE,{type:_t.createElement(WE,{title:Bh.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(Wh,"LanguagePage");import{i18n as Yt}from"@lingui/core";import{Button as OE,Checkbox as UE,Image as zE,ListItemButton as QE,NotFound as qE,Typography as HE}from"@rango-dev/ui";import Ye,{useState as GE}from"react";import{Checkbox as $E,Skeleton as Mh}from"@rango-dev/ui";import Ir from"react";import{styled as Ec}from"@rango-dev/ui";var Er=Ec("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Ic=Ec("div",{width:80,display:"flex",justifyContent:"flex-end"}),Ac=Ec("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as _E,styled as DE}from"@rango-dev/ui";var Lh=DE(_E,{height:61});var FE=30;function Nc(){return Ir.createElement(Er,null,Array.from(Array(FE),(t,e)=>Ir.createElement(Lh,{hasDivider:!0,key:e,start:Ir.createElement(Mh,{variant:"circular",width:35,height:35}),title:Ir.createElement(Mh,{variant:"text",size:"large",width:90}),end:Ir.createElement($E,{checked:!1})})))}i(Nc,"LoadingLiquiditySourceList");function Bc({sourceType:t}){let e=T().fetchStatus,o=T().swappers(),n=T().getDisabledLiquiditySources(),[r,a]=GE(""),s=T().toggleLiquiditySource,c=T().isInCampaignMode(),l=ti(o,n),p={Exchanges:Yt.t("Exchanges"),Bridges:Yt.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let f=l.filter(C=>u.includes(C.type)),h=f.length===f.filter(C=>C.selected).length,g=i(()=>{f.forEach(C=>{h?s(C.groupTitle):C.selected||s(C.groupTitle)})},"toggleAllSources"),m=f.map(C=>{let{selected:S,groupTitle:k,logo:v,id:x,...I}=C;return{id:`widget-setting-liquidity-source-${Qp(x.toLowerCase())}-item-btn`,start:Ye.createElement(zE,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:Ye.createElement(UE,{checked:S,disabled:c}),title:Ye.createElement(HE,{variant:"title",size:"xmedium"},Yt.t(k)),selected:S,groupTitle:k,logo:v,...I}}),d=i(C=>{let S=C.target.value;a(S)},"handleSearch"),y=m;return r&&(y=m.filter(C=>Nt(C.groupTitle,r))),Ye.createElement(ie,{header:{title:Yt.t(t),suffix:Ye.createElement(Ic,null,Ye.createElement(OE,{id:`widget-liquidity-source-${h?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:g},h?Yt.t("Deselect all"):Yt.t("Select all")))}},Ye.createElement(ce,{view:!0},Ye.createElement(Et,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:Yt.t("Search {sourceType}",{sourceType:p[t]}),onChange:d}),e==="loading"&&Ye.createElement(Nc,null),!y.length&&r?Ye.createElement(Ac,null,Ye.createElement(qE,{title:Yt.t("No results found"),description:Yt.t("Try using different keywords")})):e==="success"&&Ye.createElement(Er,{disabled:c,className:"widget-liquidity-source-list"},y.map(C=>{let{groupTitle:S,...k}=C;return Ye.createElement(Ye.Fragment,{key:C.id},Ye.createElement(QE,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Bc,"LiquiditySourcePage");import{i18n as VE}from"@lingui/core";import ma from"react";import{useNavigate as KE}from"react-router-dom";function Ph(){let t=KE(),e=Ge(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:c,loading:l}=da({refetchQuote:n}),p=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${F.settings}`,f=`../${F.wallets}`;return ma.createElement(ie,{header:{onWallet:()=>{t(f),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:VE.t("Routes"),suffix:ma.createElement(Bo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},ma.createElement(ce,null,ma.createElement(br,{fetch:c,loading:l,onClickOnQuote:p})))}i(Ph,"RoutesPage");import{i18n as zh}from"@lingui/core";import{Divider as Qh,getCategoriesCount as nI,SelectableCategoryList as rI}from"@rango-dev/ui";import Zt,{useState as qh}from"react";import{useNavigate as iI}from"react-router-dom";import{i18n as Wc}from"@lingui/core";import{Divider as ZE,Image as JE,ListItemButton as RE,NotFound as eI,Typography as Uh}from"@rango-dev/ui";import dt,{useEffect as tI,useState as oI}from"react";var _h=i((t,e,o)=>t.filter(n=>Hr(n.type,o)).filter(n=>rt(n.name,e)||rt(n.displayName,e)),"filterBlockchains");import{ImageContainer as jE,styled as Dh}from"@rango-dev/ui";var $h=Dh("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),fa=Dh(ll,{padding:0,margin:0,listStyle:"none",[`& ${jE}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as XE,Skeleton as Fh}from"@rango-dev/ui";import ga from"react";var YE=20;function Oh(){return ga.createElement(fa,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(YE),t=>ga.createElement(XE,{key:t,hasDivider:!0,start:ga.createElement(Fh,{variant:"circular",width:35,height:35}),title:ga.createElement(Fh,{variant:"text",size:"large",width:90})})))}i(Oh,"LoadingBlockchainList");function Lc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=oI(e),{fetchStatus:l}=T();tI(()=>{c([..._h(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?dt.createElement(eI,{title:Wc.t("No results found"),description:Wc.t("Try using different keywords")}):dt.createElement(fa,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>dt.createElement(RE,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:dt.createElement(JE,{src:u.logo,size:30}),title:dt.createElement(Uh,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return dt.createElement(dt.Fragment,null,a&&dt.createElement(dt.Fragment,null,dt.createElement(Uh,{variant:"label",size:"large"},Wc.t("Select Chain")),dt.createElement(ZE,{size:4})),dt.createElement($h,null,l==="loading"&&dt.createElement(Oh,null),l==="success"&&p()))}i(Lc,"BlockchainList");function ha(t){let{type:e}=t,o=Ge(),[n,r]=qh(""),[a,s]=qh("ALL"),c=O.use.setToBlockchain(),l=O.use.setFromBlockchain(),{fetchStatus:p}=T(),u=iI(),f=T().blockchains({type:e}),h=nI(f),g=!t.hideCategory&&h!==1;return Zt.createElement(ie,{header:{title:zh.t("Select Chain")}},Zt.createElement(ce,{view:!0},g&&Zt.createElement(Zt.Fragment,null,Zt.createElement(rI,{setCategory:s,category:a,blockchains:f,isLoading:p==="loading"}),Zt.createElement(Qh,{size:24})),Zt.createElement(Et,{value:n,autoFocus:!0,placeholder:zh.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Zt.createElement(Qh,{size:16}),Zt.createElement(Lc,{list:f,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:m=>{e==="custom-token"?u(`..?blockchain=${m.name}`,{replace:!0}):(e==="source"?l(m):c(m),o())}})))}i(ha,"SelectBlockchainPage");import{i18n as Ca}from"@lingui/core";import{Divider as Yh,Spinner as TI}from"@rango-dev/ui";import mo,{useEffect as kI,useState as vI}from"react";import{useNavigate as wI}from"react-router-dom";import{i18n as _c}from"@lingui/core";import{BlockchainsChip as ya,Divider as Kh,Image as jh,Skeleton as uI,Tooltip as dI,Typography as Dc}from"@rango-dev/ui";import xe from"react";import{useEffect as lI}from"react";var Hh=["ETH","COSMOS","OSMOSIS"];function Mc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(aI),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(sI(s)),r=n.splice(a)}return{list:n,more:r}}i(Mc,"prepare");function aI(t,e){let o=Hh,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(aI,"sortByMostUsedBlockchains");function sI(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(sI,"generateSortByPreferredBlockchainsFor");function Gh(t,e){return!!e.list.find(o=>o.name===t)}i(Gh,"isInVisibleList");function Pc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=T();lI(()=>{if(e?.selected){let a=Mc(t,o,e);Gh(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Mc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Pc,"usePrepareBlockchainList");import{styled as cI}from"@rango-dev/ui";var Vh=cI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var mI=6,fI=12;function $c(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=te(),c=Pc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=T(),p=O.use.resetToBlockchain(),u=O.use.resetFromBlockchain(),f=c.more.length>0,h=c.more.length===1,g=!h&&f;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(Kh,{size:12}),xe.createElement(Dc,{variant:"label",size:"large"},_c.t("Select Chain"))),xe.createElement(Kh,{size:12}),xe.createElement(Vh,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?mI:fI),(m,d)=>xe.createElement(uI,{key:d,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(ya,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(Dc,{variant:"body",size:"xsmall",color:"secondary500"},_c.t("All"))),c.list.map(m=>xe.createElement(dI,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:N()},xe.createElement(ya,{className:"widget-blockchains-section-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},xe.createElement(jh,{src:m.logo,size:30})))),h?xe.createElement(ya,{className:"widget-blockchains-section-only-item-btn",key:c.more[0].name,selected:!!n&&n.name===c.more[0].name,onClick:()=>r(c.more[0])},xe.createElement(jh,{src:c.more[0].logo,size:30})):null,g?xe.createElement(ya,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(Dc,{variant:"body",size:"xsmall",color:"secondary500"},_c._("More +{count}",{count:c.more.length}))):null)))}i($c,"BlockchainsSection");import{useCallback as hI,useRef as yI,useState as Fc}from"react";function Oc(){let t=T().blockchains(),e=yI(null),{customTokens:o}=T(),[n,r]=Fc(!1),[a,s]=Fc([]),[c,l]=Fc(null),p=i(async(h,g)=>{l(null),r(!0),s([]);try{let m=await at().searchCustomTokens({query:h,blockchain:g},{signal:e.current?.signal}),d=new Set(o().map(S=>Ut(S))),y=new Set(t.map(S=>S.name)),C=m.tokens.filter(S=>y.has(S.blockchain)&&!d.has(Ut(S)));s(C),r(!1)}catch(m){l(m instanceof Error?m.message:"something went wrong"),s([]),m?.name!=="CanceledError"&&r(!1)}},"fetch"),u=hI(qr((h,g)=>{e.current?.signal.aborted||p(h,g)},600),[t.length]);return{fetch:(h,g)=>{e.current=new AbortController,s([]),r(!0),u(h,g)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Oc,"useSearchCustomTokens");function Sa(t,e,o){return o&&t.length===1&&t[0].address===e?!1:t.length<20&&e.trim().length>=3}i(Sa,"shouldSearchForCustomTokens");function Xh(t,e,o,n,r){let a=[...t];return Sa(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(Xh,"prepareTokensList");function Ta(t){let{type:e}=t,o=wI(),n=Ge(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=O(),{getBalanceFor:u}=T(),{fetch:f,loading:h,tokens:g,cancel:m}=Oc(),[d,y]=vI(""),C=e==="source"?r:a,S=C?.name??"",k=T().blockchains({type:e}),v=T().tokens({type:e,blockchain:S,searchFor:d,getBalanceFor:u}),x=Xh(v,g,d,h,C?.name),I=i(b=>{e==="source"?l(b):p(b)},"updateBlockchain"),A=i(b=>{e==="source"?s({token:b,meta:{blockchains:k}}):c({token:b,meta:{blockchains:k}})},"updateToken"),E={source:Ca.t("Source"),destination:Ca.t("Destination")};return kI(()=>(Sa(v,d,C?.name)&&f(d,C?.name??void 0),()=>{m()}),[v.length,d,C?.name]),mo.createElement(ie,{header:{title:Ca.t("Swap {type}",{type:E[e]})}},mo.createElement(ce,null,mo.createElement($c,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:b=>{I(b)}}),mo.createElement(Yh,{size:24}),mo.createElement(Et,{value:d,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:Ca.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>y(""),onChange:b=>y(b.target.value),suffix:Sa(v,d,C?.name)&&h?mo.createElement(TI,{size:12,color:"secondary"}):void 0}),mo.createElement(Yh,{size:16}),mo.createElement(yr,{list:x,selectedBlockchain:S,searchedFor:d,type:e,onChange:b=>{A(b);let w=k.find(B=>b.blockchain===B.name);w&&I(w),n()}})))}i(Ta,"SelectSwapItemsPage");import{i18n as qc}from"@lingui/core";import{Alert as YI,Button as ZI,styled as JI}from"@rango-dev/ui";import Fo from"react";import{useInRouterContext as RI,useSearchParams as eA}from"react-router-dom";import{i18n as ny}from"@lingui/core";import{Alert as II,Divider as zc,InfoIcon as AI,SlippageIcon as NI,TextField as BI,Tooltip as WI,Typography as ry}from"@rango-dev/ui";import $e from"react";import{Chip as bI,styled as En,TextField as xI}from"@rango-dev/ui";var Zh=En("div",{paddingTop:"$5",padding:"$10 $5"}),Jh=En("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${xI}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Rh=En("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ka=En("div",{maxWidth:"280px",padding:"$10"}),ey=En(bI,{width:"61px",flexShrink:0}),ty=En("div",{outlineWidth:1,outlineStyle:"solid",borderRadius:"$xs",flex:1,variants:{status:{safe:{outlineColor:"$secondary500"},error:{outlineColor:"$error500"},warning:{outlineColor:"$warning500"},empty:{outlineWidth:0}}}});import{i18n as Uc}from"@lingui/core";import{Typography as EI}from"@rango-dev/ui";import Ar from"react";function oy(){return Ar.createElement(ka,null,Ar.createElement(EI,{variant:"label",size:"medium",color:"neutral700"},Uc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Ar.createElement("br",null),Ar.createElement("br",null),Ar.createElement("b",null,Uc.t("Warning")),":\xA0",Uc.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(oy,"SlippageTooltipContent");function Qc(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=T(),r=o!==null?Xo(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let f=u;u>$n&&(f=$n),n(f)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;Hp(u)||(p.value=u.slice(0,-1))},"onInput");return $e.createElement(Zh,null,$e.createElement(Rh,null,$e.createElement(NI,{size:16,color:"gray"}),$e.createElement(zc,{direction:"horizontal",size:4}),$e.createElement(ry,{variant:"title",size:"xmedium"},ny.t("Slippage tolerance per swap")),$e.createElement(zc,{direction:"horizontal",size:4}),$e.createElement(WI,{container:N(),side:"top",sideOffset:4,content:$e.createElement(oy,null)},$e.createElement(AI,{color:"gray"}))),$e.createElement(Jh,null,Jr.map((l,p)=>{let u=`slippage-${p}`;return $e.createElement(ey,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),$e.createElement(ty,{status:r?.type||(o?"safe":"empty")},$e.createElement(BI,{type:"number",min:"0.01",max:"30",step:"0.01",id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&$e.createElement(ry,{variant:"body",size:"small"},"%"),placeholder:ny.t("Custom")}))),r&&$e.createElement($e.Fragment,null,$e.createElement(zc,{size:10}),$e.createElement(II,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(Qc,"Slippage");import{i18n as Ct}from"@lingui/core";import{AutoThemeIcon as iy,BridgesIcon as LI,ChevronRightIcon as va,DarkModeIcon as ay,Divider as Nr,ExchangeIcon as MI,InfinityIcon as PI,InfoIcon as _I,LanguageIcon as DI,LightModeIcon as sy,List as $I,ListItem as FI,ListItemButton as OI,Skeleton as UI,styled as zI,Switch as QI,Tabs as qI,TargetIcon as HI,Tooltip as GI,Typography as nt}from"@rango-dev/ui";import D from"react";import{useNavigate as VI}from"react-router-dom";var KI=zI("div",{width:"202px",height:"$40"}),jI=[{id:"light",icon:D.createElement(sy,{color:"black",size:24}),tooltip:D.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Light"))},{id:"dark",icon:D.createElement(ay,{color:"black",size:24}),tooltip:D.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Dark"))},{id:"auto",icon:D.createElement(iy,{color:"black",size:24}),tooltip:D.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Auto"))}],XI=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(iy,{...e});case"dark":return D.createElement(ay,{...e});default:return D.createElement(sy,{...e})}},"getThemeIcon");function ly(){let t=VI(),{theme:e}=T().config,{setTheme:o,theme:n}=T(),{activeLanguage:r,languages:a}=uo(),s=a.find(L=>L.local===r)?.label,c=T().fetchStatus,l=T().swappers(),p=T().getDisabledLiquiditySources(),{config:{features:u}}=T(),f=T().customTokens(),h=Re("theme",u),g=Re("liquiditySource",u),m=Re("language",u),d=Re("customTokens",u),y=T().infiniteApprove,C=T().toggleInfiniteApprove,S=ti(l,p),k=S.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),v=k.length,x=k.filter(L=>L.selected).length,I=S.filter(L=>L.type==="DEX"),A=I.length,E=I.filter(L=>L.selected).length,b=i((L,ae)=>{switch(c){case"loading":return D.createElement(UI,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(nt,{variant:"body",size:"medium",color:"$error500"},Ct.t("Loading failed"));default:return D.createElement(nt,{variant:"body",size:"medium"},`${L} / ${ae}`)}},"handleSwapperEndItem"),w={id:"widget-setting-bridge-item-btn",title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Bridges")),end:D.createElement(D.Fragment,null,b(x,v),D.createElement(Nr,{direction:"horizontal",size:8}),D.createElement(va,{color:"black"})),onClick:()=>t(F.bridges),start:D.createElement(LI,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Exchanges")),end:D.createElement(D.Fragment,null,b(E,A),D.createElement(Nr,{direction:"horizontal",size:8}),D.createElement(va,{color:"black"})),start:D.createElement(MI,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},P={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(nt,{variant:"body",size:"medium"},`${f.length}`),D.createElement(Nr,{direction:"horizontal",size:8}),D.createElement(va,{color:"black"})),start:D.createElement(HI,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},$={id:"widget-setting-language-item-btn",title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Language")),start:D.createElement(DI,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(nt,{variant:"body",size:"medium"},s),D.createElement(Nr,{direction:"horizontal",size:8}),D.createElement(va,{color:"black"})),onClick:()=>t(F.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Infinite approval")),D.createElement(Nr,{direction:"horizontal",size:4}),D.createElement(GI,{side:"top",sideOffset:4,container:N(),content:D.createElement(ka,null,D.createElement(nt,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,Ct.t("Warning")),":\xA0",Ct.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(_I,{color:"gray"}))),start:D.createElement(PI,{color:"gray",size:16}),end:D.createElement(QI,{checked:y}),onClick:C},R={id:"widget-setting-theme-item-btn",type:D.createElement(FI,null),title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Theme")),end:D.createElement(KI,null,D.createElement(qI,{container:N(),items:jI,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:XI(n)},K=g?[]:[w,B];return d||K.push(P),m||K.push($),K.push(q),!e?.singleTheme&&!h&&K.push(R),D.createElement($I,{type:D.createElement(OI,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:K})}i(ly,"SettingsLists");var tA=JI("div",{paddingLeft:"$8"});function cy(){let{isInCampaignMode:t,updateCampaignMode:e}=T(),o=t(),[,n]=eA(),r=RI(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Fo.createElement(ie,{header:{title:qc.t("Settings")}},Fo.createElement(ce,null,o&&Fo.createElement(YI,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:qc.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:Fo.createElement(tA,null,Fo.createElement(ZI,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},qc.t("Reset")))}),Fo.createElement(Qc,null),Fo.createElement(ly,null)))}i(cy,"SettingsPage");import{i18n as GA}from"@lingui/core";import{cancelSwap as VA}from"@rango-dev/queue-manager-rango-preset";import{useManager as KA}from"@rango-dev/queue-manager-react";import{Alert as jA}from"@rango-dev/ui";import rp from"react";import{useParams as XA}from"react-router-dom";import{i18n as mt}from"@lingui/core";import{getCurrentNamespaceOfOrNull as EA,getCurrentStep as IA,getRelatedWalletOrNull as AA}from"@rango-dev/queue-manager-rango-preset";import{Button as Gy,CopyIcon as NA,Divider as BA,DoneIcon as WA,IconButton as LA,QuoteCost as MA,RangoExplorerIcon as PA,StepDetails as _A,Tooltip as Vy,Typography as Oo,useCopyToClipboard as DA}from"@rango-dev/ui";import{useWallets as $A}from"@rango-dev/wallets-react";import Ky from"bignumber.js";import{PendingSwapNetworkStatus as Wa}from"rango-types";import Z,{useEffect as jy,useRef as FA,useState as Xy}from"react";import{useNavigate as OA}from"react-router-dom";import{i18n as fo}from"@lingui/core";var oA=[fo.t("Sunday"),fo.t("Monday"),fo.t("Tuesday"),fo.t("Wednesday"),fo.t("Thursday"),fo.t("Friday"),fo.t("Saturday")];function py(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?fo.t("Today"):`${oA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(py,"timeSince");function uy(t){return t.finishTime?py(parseInt(t.finishTime)):py(parseInt(t.creationTime))}i(uy,"getSwapDate");import{PendingSwapNetworkStatus as Ia}from"rango-types";import Aa from"react";import{i18n as wa}from"@lingui/core";import{Button as dy,Divider as Hc,MessageBox as nA}from"@rango-dev/ui";import go from"react";var my=i(({onCancel:t,onClose:e})=>go.createElement(go.Fragment,null,go.createElement(Hc,{size:20}),go.createElement(nA,{type:"error",title:wa.t("Cancel Swap"),description:wa.t("Are you sure you want to cancel this swap?")}),go.createElement(Hc,{size:32}),go.createElement(dy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},wa.t("Yes, Cancel it")),go.createElement(Hc,{size:12}),go.createElement(dy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},wa.t("No, Continue"))),"CancelContent");import{i18n as ba}from"@lingui/core";import{Button as fy,Divider as Gc,MessageBox as rA,Typography as iA}from"@rango-dev/ui";import Jt from"react";var gy=i(({onDelete:t,onClose:e})=>Jt.createElement(Jt.Fragment,null,Jt.createElement(Gc,{size:20}),Jt.createElement(rA,{type:"error",title:ba.t("Delete Transaction"),description:ba.t("Are you sure you want to delete this swap?")}),Jt.createElement(Gc,{size:32}),Jt.createElement(fy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},ba.t("Yes, Delete it")),Jt.createElement(Gc,{size:12}),Jt.createElement(fy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Jt.createElement(iA,{variant:"title",size:"medium",color:"primary"},ba.t("No, Cancel")))),"DeleteContent");import{i18n as xa}from"@lingui/core";import{PendingSwapNetworkStatus as Ea}from"rango-types";var Vc={[Ea.WaitingForNetworkChange]:{type:"loading",title:xa.t("Change Network")},[Ea.WaitingForConnectingWallet]:{type:"warning",title:xa.t("Connect Wallet")},[Ea.NetworkChanged]:{type:"success",title:xa.t("Network Changed")},[Ea.NetworkChangeFailed]:{type:"warning",title:xa.t("Network Change Failed")}};import{warn as aA}from"@rango-dev/logging-core";import{getCurrentStep as sA,getRelatedWalletOrNull as lA}from"@rango-dev/queue-manager-rango-preset";import{MessageBox as cA,Wallet as pA}from"@rango-dev/ui";import{useWallets as uA}from"@rango-dev/wallets-react";import In,{useState as dA}from"react";import{styled as Kc}from"@rango-dev/ui";var hy=Kc("div",{display:"flex",justifyContent:"center"}),Vj=Kc("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),yy=Kc("img",{width:"100%"});var Sy=i(t=>{let{type:e,title:o,swap:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[c,l]=dA(),{getWalletInfo:p,state:u}=uA(),f=sA(n),h=f?lA(n,f):null,g=f?.fromBlockchain,m=h?.walletType,d=m?Pn(u(m)):null,y=m?p(m):null,C=a&&!!m&&!!d&&!!y,{list:S}=Tt(),k=i(()=>{if(m){let v=S.find(x=>x.type===m);v?l(v):aA(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${v}`))}},"handleWalletItemClick");return In.createElement(In.Fragment,null,In.createElement(cA,{type:e,title:o,description:r}),C&&In.createElement(hy,null,In.createElement(pA,{container:N(),title:y.name,image:y.img,type:m,state:d,link:y.installLink,disabled:s,onClick:k})),In.createElement(xo,{id:"widget-swap-details-modal",wallet:c,onClose:()=>{l(void 0)},options:{defaultSelectedChains:g?[g]:void 0}}))},"WalletStateContent");function jc(t){let{state:e,onClose:o,onDelete:n,onCancel:r,swap:a,message:s,walletButtonDisabled:c}=t,l=e===Ia.WaitingForNetworkChange||e===Ia.WaitingForConnectingWallet||e===Ia.NetworkChanged;return Aa.createElement(J,{id:"widget-swap-details-modal",open:!!e,onClose:o,container:document.getElementById(Qe.SWAP_BOX_ID)||document.body},l&&Aa.createElement(Sy,{type:Vc[e].type,title:Vc[e].title,swap:a,message:s,walletButtonDisabled:c,showWalletButton:e!==Ia.WaitingForNetworkChange}),e==="delete"&&Aa.createElement(gy,{onClose:o,onDelete:n}),e==="cancel"&&Aa.createElement(my,{onClose:o,onCancel:r}))}i(jc,"SwapDetailsModal");import{i18n as Br}from"@lingui/core";import{Button as Xc,Divider as Wr,MessageBox as ky,TokenAmount as mA,Typography as vy}from"@rango-dev/ui";import Ce from"react";import{Link as fA,useNavigate as gA}from"react-router-dom";var Cy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Ty="/profile";function Yc(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:f,diagnosisUrl:h}=t,g=gA(),{showProfileBanner:m}=te();return Ce.createElement(J,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(Qe.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement(ky,{type:"success",title:Br.t("Swap Successful")},Ce.createElement(mA,{direction:"vertical",tooltipContainer:N(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),Ce.createElement(Wr,{size:12}),Ce.createElement(vy,{variant:"body",size:"medium",color:"neutral700",align:"center"},f)):Ce.createElement(ky,{type:"error",title:Br.t("Transaction Failed"),description:f}),Ce.createElement(Wr,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,m&&Ce.createElement(Ce.Fragment,null,Ce.createElement(fA,{to:Ty},Ce.createElement(yy,{src:Cy,alt:"Profile Banner"})),Ce.createElement(Wr,{size:30})),Ce.createElement(Xc,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{g("../../")}},Br.t("Done"))),Ce.createElement(Wr,{size:12}),h&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Xc,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},Br.t("Diagnosis")),Ce.createElement(Wr,{size:12})),Ce.createElement(Xc,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement(vy,{variant:"title",size:"medium",color:"primary"},Br.t("See Details"))))}i(Yc,"SwapDetailsCompleteModal");import xA from"react";import{i18n as kA}from"@lingui/core";import{Alert as zy,IconButton as vA,LinkIcon as wA}from"@rango-dev/ui";import ho,{Fragment as bA}from"react";import{Alert as yA,ChevronDownIcon as SA,IconButton as CA}from"@rango-dev/ui";import Nn,{useState as TA}from"react";import{css as Lr,darkTheme as wy,styled as Dt,Typography as hA}from"@rango-dev/ui";var by=Dt(ce,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${wy} &`]:{color:"$secondary500"}}}}}),xy=Dt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Ey=Dt("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),Iy=Dt("div",{padding:"$0 $20 $20 $20"}),P3=Dt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Ay=Dt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),_3=Dt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),An=Lr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${wy} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Ny=Lr({padding:"$5 0"}),Na=Lr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),By=Lr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Wy=Lr({width:"100%",padding:"0 $20 $10"}),Ly=Dt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),My=Dt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ba=Dt(hA,{wordBreak:"break-word"});import{styled as Zc}from"@rango-dev/ui";var Py=Zc("div",{display:"flex",flexDirection:"column",gap:"$10"}),_y=Zc("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Dy=Zc("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function $y(t){let{message:e}=t,[o,n]=TA(!1);return Nn.createElement(yA,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Nn.createElement(CA,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Nn.createElement(_y,{rotated:o},Nn.createElement(SA,{size:12,color:"gray"}))),footer:Nn.createElement(Dy,{open:o},Nn.createElement(Ba,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i($y,"FailedAlert");import{i18n as Fy}from"@lingui/core";import{Alert as Jc,Button as Oy}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Rc}from"rango-types";import Mr from"react";function Uy(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Mr.createElement(Jc,{type:"warning",id:"widget-swap-details-change-network-alert",title:n.shortMessage,action:Mr.createElement(Oy,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Rc.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Fy.t("Change"))}):r===Rc.WaitingForConnectingWallet?Mr.createElement(Jc,{type:"warning",title:n.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Mr.createElement(Oy,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Rc.WaitingForConnectingWallet)}},Fy.t("Connect"))}):Mr.createElement(Jc,{id:"widget-swap-details-short-alert",type:"warning",title:n.shortMessage})}i(Uy,"WarningAlert");function ep(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,c=Xn(a),l=a.status==="waitingForApproval"&&!c,p=a.status==="running"&&!c,u=p&&!s||l&&!a.explorerUrl?.length;return ho.createElement(Py,null,a.explorerUrl?.map((f,h,g)=>{let m=h+f.url,d=h===g.length-1,y=(d&&p||l)&&!u,C=d&&a.status==="failed";return ho.createElement(bA,{key:m},ho.createElement(zy,{id:"widget-swap-details-tx-alert",type:d&&(y&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:kA.t("View transaction"),action:f.url&&ho.createElement(vA,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},ho.createElement(wA,{size:12}))}))}),u&&ho.createElement(zy,{id:"widget-swap-details-loading-alert",type:"loading",title:r.shortMessage}),a.status!=="failed"&&c&&ho.createElement(Uy,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&ho.createElement($y,{message:r}))}i(ep,"SwapDetailsAlerts");var Qy=2e3;var qy=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:ft(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:_(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ft(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:_(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Bn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:ft(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:ft(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Bn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:xA.createElement(ep,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Hy(t){if(Xn(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(Hy,"getStepState");function tp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=$A(),l=T().blockchains(),p=T().swappers(),{findToken:u}=T(),f=O.use.retry(),h=te.use.isActiveTab(),g=OA(),[m,d]=DA(Qy),y=FA(null),[C,S]=Xy(null),[k,v]=Xy(null),x=i(()=>{r(),S(null)},"onCancel"),I=Ae.use.getNotifications(),A=Ae.use.removeNotification(),E=I(),b=IA(e),w=b?.networkStatus;jy(()=>{E.find(ze=>ze.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),A(e.requestId)):k&&v(null))},[e.status,e.requestId]),jy(()=>{L?S(Wa.WaitingForNetworkChange):w===Wa.WaitingForConnectingWallet||w===Wa.NetworkChanged?S(w):S(null)},[w]);let B=Id(e),P=b?EA(e,b):null,$=b?AA(e,b):null,q=uy(e),R=Ad(e),K=i(be=>!!c(be)?.mobileWallet,"isMobileWallet"),L=w===Wa.WaitingForNetworkChange&&!!P&&!!$?.walletType&&(K($.walletType)||a($.walletType,P.network)),ae=L?s.bind(null,$.walletType,[{namespace:P.namespace,network:P.network}]):void 0,re=Ed(e,b,c),Q=qy({swap:e,switchNetwork:ae,showNetworkModal:w,setNetworkModal:S,message:re,blockchains:l,swappers:p}),ee=Q.length,[le,ue]=[e.steps[0],e.steps[ee-1]],se=ue.outputAmount||ue.expectedOutputAmountHumanReadable,Ze=e.steps.reduce((be,ze)=>be+parseFloat(ze.feeInUsd||""),0),H=e.steps.find(be=>be.diagnosisUrl)?.diagnosisUrl,W=_(parseFloat(se||"0")*(ue.toUsdPrice||0),4,4),G=_(parseFloat(e.inputAmount)*(le.fromUsdPrice||0),4,4),j=se?new Ky(se).multipliedBy(ue.toUsdPrice||0).toString():"",X=new Ky(e.inputAmount).multipliedBy(le.fromUsdPrice||0).toString(),fe=zt(G,W),Ue=re.detailedMessage.content||re.shortMessage,Je=e.status==="success"?mt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:_(se,6,6),token:Q[ee-1].to.token.displayName,conciseAddress:Go(e.wallets[Q[ee-1].to.chain.displayName]?.address||""),chain:Q[ee-1].to.chain.displayName}}):Z.createElement(My,null,Z.createElement(Oo,{variant:"body",size:"medium",color:"neutral700",align:"center"},Ue?"":mt.t("Transaction was not sent."),B?`${mt.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),Ue&&Z.createElement(Ba,{align:"center",variant:"body",size:"medium",color:"neutral700"},Z.createElement("b",null,"Reason:")," ",Ue));return Z.createElement(ie,{header:{title:mt.t("Swap Details"),onCancel:e.status==="running"?()=>S("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(ro,null,Z.createElement(Gy,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>S("delete")},Z.createElement(Oo,{size:"medium",variant:"label",color:"error"},mt.t("Delete"))))},footer:R&&!k&&Z.createElement(Gy,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let be=gi(e,l,u);f(be),setTimeout(()=>{g("../../")},0)}},mt.t("Try again"))},Z.createElement(by,{compact:!0,ref:y,id:"widget-swap-details-container"},Z.createElement(Ey,{className:An()},Z.createElement(Oo,{variant:"label",size:"large",color:"neutral700"},`${mt.t("Request ID")}`),Z.createElement("div",{className:Na()},Z.createElement(Oo,{variant:"label",size:"small",color:"neutral700"},o),Z.createElement(Vy,{container:N(),content:m?mt.t("Copied To Clipboard"):mt.t("Copy Request ID"),open:m||void 0,side:"bottom",alignOffset:-16,align:"end"},Z.createElement(LA,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:d.bind(null,o||"")},m?Z.createElement(WA,{size:16,color:"secondary"}):Z.createElement(NA,{size:16,color:"gray"}))),Z.createElement(Ly,{target:"_blank",href:`${Ip}/swap/${o}`},Z.createElement(Vy,{container:N(),content:mt.t("View on Rango Explorer"),side:"bottom"},Z.createElement(PA,{size:20}))))),Z.createElement("div",{className:An()},Z.createElement(Oo,{variant:"label",size:"large",color:"neutral700"},e.finishTime?mt.t("Finished at"):mt.t("Created at")),Z.createElement(Oo,{variant:"label",size:"small",color:"neutral700"},q)),Z.createElement("div",{className:By()},Z.createElement(MA,{fee:_(String(Ze),2,2),time:Ln(Vr(e.steps)),steps:ee}),Z.createElement(sr,{from:{price:{value:_(e.inputAmount,6,6),usdValue:G,realUsdValue:X,realValue:e.inputAmount},token:{displayName:Q[0].from.token.displayName,image:Q[0].from.token.image},chain:{image:Q[0].from.chain.image,displayName:Q[0].from.chain.displayName}},to:{price:{value:_(se,6,6),usdValue:W,realUsdValue:j,realValue:se||""},token:{displayName:Q[ee-1].to.token.displayName,image:Q[ee-1].to.token.image},chain:{image:Q[ee-1].to.chain.image,displayName:Q[ee-1].to.chain.displayName}},percentageChange:_(fe,2,2),warningLevel:Qt(fe??0)})),Z.createElement("div",{className:Wy()},Z.createElement(Oo,{variant:"title",size:"small"},mt.t("Swaps steps"))),Z.createElement(BA,{size:8}),Z.createElement(Iy,null,Q.map((be,ze)=>{let Rt=ze,yo=Hy(e.steps[ze]),wS=yo==="error"||yo==="in-progress"||yo==="warning"||yo==="completed"&&ze===Q.length-1;return Z.createElement(_A,{className:"widget-swap-details-step-item-container",key:Rt,step:be,type:"swap-progress",ref:y,state:yo,hasSeparator:ze!==0,tabIndex:Rt,isFocused:wS,tooltipContainer:N()})}))),Z.createElement(jc,{state:C,onClose:()=>S(null),onCancel:x,onDelete:n,message:re.detailedMessage.content,swap:e,walletButtonDisabled:!h}),Z.createElement(Yc,{open:!!k,diagnosisUrl:H,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:_(se,6,6),usdValue:W,realUsdValue:j,realValue:se||"",percentageChange:_(fe,2,2),token:{displayName:Q[ee-1].to.token.displayName,image:Q[ee-1].to.token.image},chain:{image:Q[ee-1].to.chain.image},description:Je}))}i(tp,"SwapDetails");import{i18n as Ma}from"@lingui/core";import{Divider as Jy,NotFound as HA,Skeleton as _r,Typography as Pa}from"@rango-dev/ui";import Ie from"react";import{i18n as UA}from"@lingui/core";import{Divider as zA,Skeleton as QA,Typography as qA}from"@rango-dev/ui";import Ee from"react";import{css as At,styled as op}from"@rango-dev/ui";var Yy=op("div",{width:"100%",height:"100%",padding:"$10 $20"}),Pr=op("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),La=op("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),KX=At({display:"flex",justifyContent:"space-between",alignItems:"center"}),jX=At({display:"flex",justifyContent:"space-between",alignItems:"center"}),XX=At({paddingTop:"$15",display:"flex"}),YX=At({padding:"$15 $0"}),ZX=At({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),JX=At({paddingBottom:"$10"}),RX=At({display:"flex",justifyContent:"start",alignItems:"center"}),eY=At({paddingTop:"$5",display:"flex",alignItems:"center"}),tY=At({display:"flex",alignItems:"center"}),oY=At({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Zy=At({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function np(){return Ee.createElement(Yy,null,Ee.createElement(cr,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(qA,{variant:"title",size:"small"},UA.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1}),Ee.createElement("div",{className:Zy()},Ee.createElement(zA,{direction:"horizontal",size:20}),Ee.createElement(QA,{height:22,variant:"rectangular"}))),Ee.createElement(La,null),Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1})),Ee.createElement(La,null),Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1})),Ee.createElement(La,null),Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1}))))}i(np,"LoadingSwapDetails");function Ry(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(ie,{header:{title:Ma.t("Swap Details"),suffix:Ie.createElement(ro,null)}},o&&Ie.createElement(xy,null,Ie.createElement("div",{className:An()},Ie.createElement(Pa,{variant:"label",size:"large",color:"neutral700"},`${Ma.t("Request ID")}`),Ie.createElement("div",{className:Na()},Ie.createElement(Pa,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"})),Ie.createElement(Jy,{direction:"horizontal",size:4}),Ie.createElement(_r,{width:16,height:16,variant:"rectangular"}),Ie.createElement(Jy,{direction:"horizontal",size:4}),Ie.createElement(_r,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:An()},Ie.createElement(Pa,{className:Ny(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"})),Ie.createElement(Pa,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"}))),Ie.createElement(np,null)),!o&&Ie.createElement(Ay,null,Ie.createElement(HA,{title:Ma.t("Not found"),description:Ma.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Ry,"SwapDetailsPlaceholder");function eS(){let{manager:t,state:e}=KA(),o=!e.loadedFromPersistor,n=St(t),{requestId:r}=XA(),a=Ge(),{fetchStatus:s}=T();if(!r)return rp.createElement(jA,{containerStyles:{margin:"20px"},type:"error",title:GA.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:h})=>h.requestId===r):void 0,p=i(()=>{if(l?.id){let h=t?.get(l.id);h&&VA(h)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(h){console.log(h)}},"onDelete"),f=l?.swap;return!f||c?rp.createElement(Ry,{requestId:r,showSkeleton:c}):rp.createElement(tp,{swap:f,requestId:r,onCancel:p,onDelete:u})}i(eS,"SwapDetailsPage");import{i18n as tS}from"@lingui/core";import{Divider as YA,getCategoriesCount as ZA,SelectableCategoryList as JA,styled as nS,Typography as RA,Wallet as e0,WalletState as t0}from"@rango-dev/ui";import{useWallets as o0}from"@rango-dev/wallets-react";import $t,{useState as oS}from"react";var n0=nS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),r0=nS(ce,{textAlign:"center"});function rS(){let{fetchStatus:t}=T(),[e,o]=oS("ALL"),n=T().blockchains(),{config:r}=T(),{state:a}=o0(),[s,c]=oS(),l=te.use.isActiveTab(),{list:p}=Tt(),u=ou(p,n),h=ZA(u)!==1,g=nu(p,e),m=i(d=>{$p(p,r.multiWallets)||c(d)},"handleWalletItemClick");return $t.createElement(ie,{header:{title:tS.t("Connect Wallets")}},$t.createElement(r0,null,h&&$t.createElement($t.Fragment,null,$t.createElement(JA,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),$t.createElement(YA,{size:24})),$t.createElement(RA,{variant:"title",size:"xmedium",align:"center"},tS.t("Choose a wallet to connect.")),$t.createElement(n0,null,g.map((d,y)=>{let S=a(d.type).namespaces,k=`wallet-${y}-${d.type}`,v=Xa(d,S);return $t.createElement(e0,{key:k,...d,state:v?t0.PARTIALLY_CONNECTED:d.state,container:N(),onClick:()=>m(d),isLoading:t==="loading",disabled:!l})}),$t.createElement(xo,{id:"widget-state-full-connect-modal",wallet:s,onClose:()=>{c(void 0)}}))))}i(rS,"WalletsPage");function iS(){return Ld(),Ms(),i0([{path:F.home,element:Oe.createElement(Nh,null)},{path:F.routes,element:Oe.createElement(Ph,null)},{path:F.fromSwap,children:[{index:!0,element:Oe.createElement(Ta,{type:"source"})},{path:F.blockchains,element:Oe.createElement(ha,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:Oe.createElement(Ta,{type:"destination"})},{path:F.blockchains,element:Oe.createElement(ha,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:Oe.createElement(cy,null)},{path:F.languages,element:Oe.createElement(Wh,null)},{path:F.exchanges,element:Oe.createElement(Bc,{sourceType:"Exchanges"})},{path:F.bridges,element:Oe.createElement(Bc,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:Oe.createElement(Wg,null)},{path:F.addCustomTokens,children:[{index:!0,element:Oe.createElement(Em,null)},{path:F.blockchains,element:Oe.createElement(ha,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:Oe.createElement(Zg,null)},{path:F.swapDetails,element:Oe.createElement(eS,null)}]},{path:F.wallets,element:Oe.createElement(rS,null)},{path:F.confirmSwap,element:Oe.createElement(yg,null)}])}i(iS,"AppRoutes");import{useQueueManager as f0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as g0}from"rango-sdk";import{useContext as h0,useEffect as dS,useState as mS}from"react";import{globalCss as a0}from"@rango-dev/ui";var aS=i(()=>a0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function sS(){let{setWatermark:t,setShowProfileBanner:e}=te();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Ot("BASE_URL")}/meta/dapp/config?apiKey=${Ot("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(sS,"useFetchApiConfig");import{useWallets as s0}from"@rango-dev/wallets-react";import{useEffect as l0,useRef as c0}from"react";function lS(){let{connect:t,state:e}=s0(),o=c0({}),{fetchStatus:n}=T(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);l0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(lS,"useForceAutoConnect");import{isApprovalTX as p0,RouteEventType as cS,StepEventType as pS,StepExecutionEventStatus as u0,WidgetEvents as _a}from"@rango-dev/queue-manager-rango-preset";import{useEffect as uS}from"react";function ip(){let t=Ae.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=T();uS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===pS.TX_EXECUTION&&s.status===u0.TX_SENT&&!p0(c)||s.type===pS.SUCCEEDED){let u=[],f=l.wallets[c?.fromBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.fromBlockchain);h&&u.push(h)}if(c?.fromBlockchain!==c?.toBlockchain){let h=l.wallets[c?.toBlockchain];if(h){let g=e.find(m=>m.address?.toLocaleLowerCase()===h.address?.toLocaleLowerCase()&&m.walletType===h.walletType&&m.chain===c?.toBlockchain);g&&u.push(g)}}if(u.length>0){let h=n(),m=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(d=>h.some(y=>y.blockchain===d.blockchain&&y.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&y.symbol?.toLocaleLowerCase()===d.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:m,shouldFetchCustomTokens:m.length>0})}}t(s,l)},"handleStepEvent");return Te.on(_a.StepEvent,r),()=>Te.off(_a.StepEvent,r)},[Te,e]),uS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===cS.FAILED||s.type===cS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return Te.on(_a.RouteEvent,r),()=>Te.off(_a.RouteEvent,r)},[Te])}i(ip,"useSubscribeToWidgetEvents");import{useManager as d0}from"@rango-dev/queue-manager-react";import{useEffect as m0}from"react";function ap(){let{isSynced:t,syncNotifications:e}=Ae(),{manager:o,state:n}=d0();m0(()=>{Ae.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(St(o))},[Ae.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ap,"useSyncNotifications");function sp(){lS(),aS(),ip(),ap();let t=T().blockchains(),{canSwitchNetworkTo:e}=Fi(),[o,n]=mS(null),[r,a]=mS(),s=h0(di),c=t.filter(g0),{fetchApiConfig:l}=sS();dS(()=>()=>Wd(),[]),f0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),dS(()=>(wo.init(),Ae.persist.hasHydrated()||Ae.persist.rehydrate(),s.onConnectWallet(p=>{n(u=>{if(!u||u.walletType!==p.walletType)return p;let f={...u};return p.network&&(f.network=p.network),p.accounts&&(f.accounts=p.accounts),f})}),s.onDisconnectWallet(p=>{a(p),n(u=>p===u?.walletType?null:u)}),l().catch(console.log),wo.destroy),[])}i(sp,"useBootstrap");import{styled as y0}from"@rango-dev/ui";var fS=y0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Da(){sp();let{config:t}=T(),{activeTheme:e}=no(t?.theme||{}),{activeLanguage:o}=uo();return lp.createElement(S0,{language:o},lp.createElement(fS,{id:"swap-container",className:e()},lp.createElement(iS,null)))}i(Da,"Main");import{setSolanaSignerConfig as F0}from"@rango-dev/signer-solana";import pp,{useEffect as TS,useMemo as O0}from"react";import{useState as C0}from"react";var T0=i(()=>{let[t,e]=C0(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Dp(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),gS=T0;import{checkWaitingForNetworkChange as k0,makeQueueDefinition as v0}from"@rango-dev/queue-manager-rango-preset";import{Provider as w0}from"@rango-dev/queue-manager-react";import{useWallets as b0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as x0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as E0}from"rango-types";import I0,{useMemo as A0}from"react";function N0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=b0(),c=A0(()=>v0({API_KEY:t.apiKey||Ot("API_KEY"),BASE_URL:Ot("BASE_URL"),emitter:{emit:Te.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=T(),u=l(),f={blockchains:p.map(v=>({accounts:[v],name:v.chain}))},h=i(async(v,x)=>a(v,x.network)?await r(v,[x]):void 0,"switchNetwork"),g=i(v=>!!s(v).mobileWallet,"isMobileWallet"),m=u.filter(v=>v.enabled).reduce((v,x)=>(v[x.name]=x,v),{}),d=u.filter(E0),y=i(v=>{let{supportedChains:x}=s(v);return _n(x)},"getSupportedChainNames"),C=e(),S={meta:{blockchains:m,evmBasedChains:d,evmNetworkChainInfo:x0(d),getSupportedChainNames:y},getSigners:o,wallets:f,providers:C,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:g},k=te.use.isActiveTab();return I0.createElement(w0,{queuesDefs:[c],context:S,onPersistedDataLoaded:v=>{k0(v)},isPaused:!k},t.children)}i(N0,"QueueManager");var hS=N0;import{useManager as P0}from"@rango-dev/queue-manager-react";import _0,{createContext as D0,useContext as $0}from"react";function yS(){let{findToken:t}=T(),e=T().blockchains(),o=T().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=O();return i(p=>{let{fromBlockchain:u,fromToken:f,toBlockchain:h,toToken:g,requestAmount:m}=p,d={blockchains:e,tokens:o};if(u!==void 0){let y=e.find(C=>C.name===u)??null;n(y)}if(f!==void 0){let y=f?t(f)??null:null;r({meta:d,token:y})}if(h!==void 0){let y=e.find(C=>C.name===h)??null;a(y)}if(g!==void 0){let y=g?t(g)??null:null;s({meta:d,token:y})}m!==void 0&&c(m)},"updateQuoteInputs")}i(yS,"useUpdateQuoteInputs");import{cancelSwap as B0,getCurrentNamespaceOfOrNull as W0,getCurrentStep as L0,getRelatedWalletOrNull as M0}from"@rango-dev/queue-manager-rango-preset";var $a=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return St(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=gi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&B0(o)}getCurrentStepInfo(e){let o=L0(e);return{step:o,wallet:o?M0(e,o):null,network:o?W0(e,o)?.network:null}}};var SS=D0(void 0);function cp(t){let{manager:e}=P0(),o=te.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=T(),l=new $a(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=T(),u=Yp(a()),f=T().blockchains(),h=T().tokens(),g=T().swappers(),m=T().fetchStatus,d=uo().resetLanguage,y=Ae().getNotifications(),C=Ae().clearNotifications,S=yS(),{fromBlockchain:k,toBlockchain:v,fromToken:x,toToken:I,inputAmount:A}=O(),E={isActiveTab:o,setCurrentTabAsActive:wo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async b=>c(b)},meta:{blockchains:f,tokens:h,swappers:g,loadingStatus:m,findToken:r},resetLanguage:d,notifications:{list:y,clearAll:C},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:v?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:A},updateQuoteInputs:S}};return _0.createElement(SS.Provider,{value:E},t.children)}i(cp,"WidgetInfo");function CS(){let t=$0(SS);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(CS,"useWidget");function Fa(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=gS();return TS(()=>{n&&r(n)},[n]),O0(()=>{ru({API_KEY:o?.apiKey||zr,BASE_URL:o?.apiUrl||Ep})},[o.apiKey,o.apiUrl]),TS(()=>{t.config?.signers?.customSolanaRPC&&F0("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),pp.createElement(mi,{config:o,onUpdateState:e},pp.createElement(hS,{apiKey:o.apiKey},pp.createElement(cp,null,t.children)))}i(Fa,"WidgetProvider");function kS(t){let e=t.config?.externalWallets;return Oa.createElement(Ru,null,e?Oa.createElement(Da,null):Oa.createElement(Fa,{config:t.config??Or},Oa.createElement(Da,null)))}i(kS,"Widget");function vS(){let{on:t,off:e}=Te;return{on:t,off:e}}i(vS,"useWidgetEvents");var cJ={DerivationPath:Hn,Namespaces:zn,Detached:qn,isOnDerivationPath:Vn,isOnNamespace:Gn,isOnDetached:Kn};export{_Z as EventSeverity,Ko as MainEvents,GZ as Networks,jZ as PendingSwapNetworkStatus,es as QuoteEventTypes,DZ as RouteEventType,qa as SUPPORTED_FONTS,cJ as StatefulConnect,$Z as StepEventType,FZ as StepExecutionBlockedEventStatus,OZ as StepExecutionEventStatus,Qe as UI_ID,os as UiEventTypes,ts as WalletEventTypes,qZ as WalletEvents,VZ as WalletTypes,kS as Widget,Ko as WidgetEvents,Fa as WidgetProvider,mi as WidgetWallets,js as customizedThemeTokens,zZ as readAccountAddress,Uo as useStatefulConnect,Tt as useWalletList,Fi as useWallets,CS as useWidget,vS as useWidgetEvents,EC as widgetEventEmitter};
|
|
1
|
+
var HS=Object.defineProperty;var i=(t,e)=>HS(t,"name",{value:e,configurable:!0});import{EventSeverity as hR,RouteEventType as yR,StepEventType as SR,StepExecutionBlockedEventStatus as CR,StepExecutionEventStatus as TR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as vR}from"@rango-dev/wallets-core/legacy";import{useWallets as qi,Events as bR}from"@rango-dev/wallets-react";import{Networks as ER,WalletTypes as IR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as NR}from"rango-types";import{Divider as ak}from"@rango-dev/ui";import no,{useEffect as sk,useRef as lk,useState as od}from"react";import{WalletState as GS}from"@rango-dev/ui";import{useWallets as VS}from"@rango-dev/wallets-react";import{useReducer as KS}from"react";function Sp(t){return!!t.derivationPath}i(Sp,"isStateOnDerivationPathStep");function Cp(t){return!!t.namespace}i(Cp,"isStateOnNamespace");var $r={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Tp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return $r;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:$r;default:throw new Error("Action hasn't been defined.")}}i(Tp,"reducer");function Qo(){let{state:t,disconnect:e,connect:o}=VS(),[n,r]=KS(Tp,$r),a=i(async(d,g,h)=>{r({type:"reset"});try{let f=g?.map(m=>({...m,network:void 0}));return await o(d,f),{status:"connected"}}catch(f){let m=f?.message?`Error: ${f.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:f})}},"runConnect"),s=i(async(d,g)=>{if(d.state===GS.DISCONNECTED){let f=!!d.isHub,m=f?d.properties?.find(y=>y.name==="namespaces")?.value:d.needsNamespace,T=f?d.properties?.find(y=>y.name==="derivationPath")?.value:d.needsDerivationPath;if(!m?.data?.length)return await a(d.type,void 0,g);if(m?.data.length&&m.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:g?.defaultSelectedChains}}),{status:"namespace"};if(m?.data.length===1){if(T){let y=m.data[0];return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y.value}}),{status:"derivation-path"}}return await a(d.type,m?.data?.map(y=>({namespace:y.value})),g)}}if(d.isHub){let f=d.properties?.find(m=>m.name==="namespaces")?.value;if(f?.data.length&&f.data.length>1)return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return g?.disconnectIfConnected?(await u(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(d,g)=>{let h=!!d.isHub,f=h?d.properties?.find(k=>k.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(k=>k.name==="derivationPath")?.value:d.needsDerivationPath,T=f?.selection==="single",y=g[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(T&&m)return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y}}),{status:"derivation-path"};if(!Cp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=g.map(k=>({namespace:k}));return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:C?.map(k=>k.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async d=>{if(!d)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Sp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let g=n.derivationPath.providerType,f=[{namespace:n.derivationPath.namespace,derivationPath:d}];return await a(g,f)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let g=t(d.type);return g.connected||g.connecting?(await e(d.type),Co(p)?(r({type:"needsNamespace",payload:{targetWallet:d}}),{status:"namespace"}):{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:p,resetState:d=>{r(d==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Qo,"useStatefulConnect");import{WalletState as ds}from"@rango-dev/ui";import{useWallets as nT}from"@rango-dev/wallets-react";import{detectMobileScreens as rT,KEPLR_COMPATIBLE_WALLETS as iT,WalletTypes as Dn}from"@rango-dev/wallets-shared";import{useCallback as aT,useEffect as sT}from"react";import JC,{createContext as RC,useContext as eT,useEffect as tT,useRef as oT}from"react";import{create as YC}from"zustand";import{persist as ZC}from"zustand/middleware";import{allProviders as jS}from"@rango-dev/provider-all";var Qa=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},Ho=new Qa;import{defineVersions as vp,pickVersion as wp,Provider as Ha}from"@rango-dev/wallets-core";function bp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=xp(a);return s instanceof Ha?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 Ha?o.push(vp().version("1.0.0",n).build()):o.push(vp().version("0.0.0",n).build())}),o}return t}i(bp,"matchAndGenerateProviders");function xp(t){try{return wp(t,"1.0.0")[1]}catch{return wp(t,"0.0.0")[1]}}i(xp,"pickProviderVersionWithFallbackToLegacy");function Ep(t){return t.map(o=>xp(o)).map(o=>o instanceof Ha?o.id:o.config.type)}i(Ep,"configWalletsToWalletName");function Fr(t,e){return e.find(o=>o.name===t)?.displayName}i(Fr,"getBlockchainDisplayNameFor");function gt(t,e){return e.find(o=>o.name===t)?.shortName}i(gt,"getBlockchainShortNameFor");function Ip(t,e){return e.find(o=>o.name===t)?.logo}i(Ip,"getBlockchainImage");function In(t,e){return e.find(o=>o.id===t)?.title}i(In,"getSwapperDisplayName");function To(t,e){return e.find(o=>o.name===t)??null}i(To,"findBlockchain");function Ga(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Ga,"isTokenNative");function ht(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(ht,"createTokenHash");function Go(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Go,"isValidTokenAddress");function An(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=ht(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{c.has(l)||a(o.tokensMapByBlockchainName[l])})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=ht(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(An,"matchTokensFromConfigWithMeta");function Or(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(Or,"getSupportedBlockchainsFromConfig");function Np(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Np,"makeProvidersOptionsFromConfig");var Ur={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/manifests/tonconnect-manifest.json"}},XS={clientUrl:void 0},YS={liquiditySources:void 0};function Ap(t){let e=Np(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return jS(o).map(a=>a())}i(Ap,"generateProviders");var Bp=i((t,e,o)=>{let n=Ap({...Ur,...t});return{config:{...Ur,...t},iframe:XS,campaignMode:YS,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c}=o(),l=An({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=An({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});Ho.set("supportedSourceTokens",l),Ho.set("supportedDestinationTokens",p),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=Ap(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Np(a);return bp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Wp}from"rango-types";var Lp=[Wp.EVM,Wp.SOLANA],zr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as uC}from"rango-sdk";import{UI_ID as ZS}from"@rango-dev/ui";var qr="c6381a79-2817-4602-83bf-6a641a409e32",Pp="https://api.rango.exchange",Mp="https://explorer.rango.exchange",tt={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...ZS};import{BlockchainCategories as rC,WalletState as lt}from"@rango-dev/ui";import{legacyReadAccountAddress as iC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as aC,getCosmosExperimentalChainInfo as sC,isEvmAddress as lC,KEPLR_COMPATIBLE_WALLETS as OB,Networks as tu}from"@rango-dev/wallets-shared";import Ko from"bignumber.js";import{isCosmosBlockchain as cC}from"rango-types";import JS from"bignumber.js";var ce=new JS(0);import{WalletTypes as RS}from"@rango-dev/wallets-shared";var ko="~",_p=[RS.LEAP];import{BlockchainCategories as Ka,WalletState as nC}from"@rango-dev/ui";import{TransactionType as Qr}from"rango-sdk";var Dp="Roboto",Va=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];function Vo(t){return Array.from(new Set(t))}i(Vo,"removeDuplicateFrom");function Hr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Hr,"debounce");function st(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(st,"containsText");function Op(t,e){return t.toLowerCase()===e.toLowerCase()}i(Op,"exactText");function Up(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Up,"startWithText");var N=i(()=>document.getElementById(tt.SWAP_BOX_ID),"getContainer"),vo=i(()=>document.getElementById(tt.EXPANDED_BOX_ID),"getExpanded");function zp(t,e,o){let n=!!e&&Op(e,t),r=!!o&&Op(o,t);return n!==r?n?-1:1:0}i(zp,"compareExactMatchText");function ja(t,e,o){let n=!!e&&st(e,t),r=!!o&&st(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ja,"compareContainsText");function Xa(t,e,o){let n=!!e&&Up(e,t),r=!!o&&Up(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Xa,"compareStartWithText");function qp(t,e,o){if(!o)return 0;let n=zp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=zp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Xa(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ja(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Xa(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ja(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Xa(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ja(o,t.address,e.address);if(r!==0)return r}return 0}i(qp,"compareWithSearchFor");var Gr=i((t,e)=>{switch(e){case Ka.ALL:return!0;case Ka.UTXO:return t===Qr.TRANSFER;case Ka.OTHER:return t!==Qr.TRANSFER&&t!==Qr.COSMOS&&t!==Qr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Qp=i(t=>Va.find(o=>o.value===t)?.url,"getFontUrlByName");function Hp(t,e){let o=!!t.find(n=>n.state===nC.CONNECTED);return e===!1&&o}i(Hp,"isSingleWalletActive");function Gp(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(Gp,"memoizedResult");import{BigNumber as Rp}from"bignumber.js";function Vp(t){return t.replace(/^0+(?=\d)/g,"")}i(Vp,"removeLeadingZeros");function Kp(t){return t.replace(/^\.(\d+)/,"0.$1")}i(Kp,"ensureLeadingZeroForDecimal");function jp(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(jp,"formatThousandsWithCommas");function Xp(t){return t.replace(/\s+/g,"-")}i(Xp,"replaceSpacesWithDash");function Yp(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(Yp,"stripTrailingZeros");function Vr(t){return/^0+(?:\.0+)?$/.test(t)}i(Vr,"isZeroValue");function Zp(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(Zp,"isValidCurrencyFormat");function Jp(t){return/\d+$/.test(t)}i(Jp,"isColorKeyOverridden");var Nn=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),_=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Rp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Rp(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Kr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Wt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Bn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function eu(t){return Vr(t)?"0":Yp(t)}i(eu,"sanitizeInputAmount");function Wn(t){return t.connected?lt.CONNECTED:t.connecting?lt.CONNECTING:t.installed?lt.DISCONNECTED:lt.NOT_INSTALLED}i(Wn,"mapStatusToWalletState");function ou(t,e,o,n){return o.filter(r=>!_p.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:d,properties:g,isHub:h}=e(r),f=Vo(u.map(T=>T.type)),m=Wn(t(r));return{title:a,image:s,link:aC(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:f,needsDerivationPath:d,properties:g,isHub:h}})}i(ou,"mapWalletTypesToWalletInfo");function Ln(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Ln,"walletAndSupportedChainsNames");function Za(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(g=>g.chain===l)){let g={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(g)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=iC(l),d=c.length>0,g=c.includes(u),h=u===tu.Unknown;if(d&&!g&&!h)return;let m=u===tu.Unknown&&lC(p);if(h&&!m)return;o.includes(u)||m?r?s(u,p.toLowerCase(),r):c.filter(C=>o.includes(C)).forEach(C=>{s(C,p.toLowerCase())}):s(u,p)}),a}i(Za,"prepareAccountsForWalletStore");function wo(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((p,u)=>{let d=p.from.blockchain,g=p.to.blockchain,h=a===o.swaps.length-1,f=u===l.length-1;(!h&&!f||h&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(g)})}e==="all"&&n.add(c)}),Array.from(n)}i(wo,"getQuoteChains");function Pn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Pn,"isAccountAndWalletMatched");var nu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?Ya(n.usdValue,n.decimals):ce.toFixed();return o.plus(r)},new Ko(ce));return pC(e.toString())},"calculateWalletUsdValue");function pC(t){let e=t.toString().split(".");return e[0]=jp(e[0]),e.join(".")}i(pC,"numberWithThousandSeparator");var Yr=i((t,e)=>{let o=sC(Object.entries(t).map(([,n])=>n).filter(cC));return o&&o[e]?.experimental},"isExperimentalChain");function Ya(t,e){return new Ko(t).shiftedBy(-e).toFixed()}i(Ya,"representAmountInNumber");function Zr(t){if(!t)return null;let e=Ya(t.amount,t.decimals),o=t.usdValue?Ya(t.usdValue,t.decimals):null,n=_(e,8,8),r=o?_(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(Zr,"formatBalance");function ru(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Ko(t.usdValue).shiftedBy(-t.decimals):ce,n=e&&e.usdValue?new Ko(e.usdValue).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Ko(t.amount).shiftedBy(-t.decimals):ce,n=e&&e.amount?new Ko(e.amount).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(ru,"compareTokenBalance");function Ot(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Ot,"areTokensEqual");function iu(t,e){return t.map(o=>({isPartiallyConnected:Ja(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===lt.CONNECTED&&!n.isPartiallyConnected)-+(o.state===lt.CONNECTED&&!o.isPartiallyConnected)||+(n.state===lt.CONNECTED)-+(o.state===lt.CONNECTED)||+(n.state===lt.DISCONNECTED||n.state===lt.CONNECTING)-+(o.state===lt.DISCONNECTED||o.state===lt.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(iu,"sortWalletsBasedOnConnectionState");function oo(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(oo,"getConciseAddress");function au({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(au,"getAddress");var su=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function lu(t){return t.map(e=>e.state).join("-")}i(lu,"hashWalletsState");function cu(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(cu,"filterBlockchainsByWalletTypes");function pu(t,e){return e===rC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Gr(n,e))return!0;return!1})}i(pu,"filterWalletsByCategory");function Ja(t,e){return!t.isHub||!t.needsNamespace||t.state!==lt.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(Ja,"checkIsWalletPartiallyConnected");var Ra={API_KEY:qr};function Ut(t){return Ra[t]||""}i(Ut,"getConfig");function uu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ra=e,Ra}i(uu,"initConfig");var du=20,mu=25,es="theme-widget",ts=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Ot(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Ot(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),os=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),fu=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Jr,ct=i(()=>Jr||(Jr=new uC(Ut("API_KEY"),Ut("BASE_URL")),Jr),"httpService");import{i18n as hu}from"@lingui/core";var Rr=[.5,1,3],ei=1,jo=5,Mn=30,ti=0;var Xe=(a=>(a[a.NO_RESULT=0]="NO_RESULT",a[a.REQUEST_FAILED=1]="REQUEST_FAILED",a[a.REQUEST_CANCELED=2]="REQUEST_CANCELED",a[a.BRIDGE_LIMIT=3]="BRIDGE_LIMIT",a[a.INSUFFICIENT_SLIPPAGE=4]="INSUFFICIENT_SLIPPAGE",a))(Xe||{});import{WidgetEvents as gu}from"@rango-dev/queue-manager-rango-preset";var ns=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ns||{}),rs=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(rs||{}),is=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(is||{}),Xo=(a=>(a[a.RouteEvent=gu.RouteEvent]="RouteEvent",a[a.StepEvent=gu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Xo||{});function oi(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Vo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(c=>c.swapperGroup===a);if(s){let c=!0;o&&(c=o.some(l=>l===s.swapperGroup)),c&&s.types.map(l=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:l,selected:!e.includes(s.swapperGroup)})})}}),n}i(oi,"getUniqueSwappersGroups");function yu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(yu,"sortLiquiditySourcesByGroupTitle");function ot(t,e){return e?.[t]==="hidden"}i(ot,"isFeatureHidden");function Yo(t,e){return e?.[t]==="enabled"}i(Yo,"isRoutingEnabled");var Su=i((t,e,o)=>ot("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function Zo(t){return t==ti?{type:"error",message:hu.t("Slippage must be greater than or equal to 0.01")}:t>jo&&t<=Mn?{type:"warning",message:hu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(Zo,"getSlippageValidation");var Cu=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let l=Or({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>Lp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",d=Ho.get(u);d?.length||(d=An({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Ho.set(u,d)),d=Su(d,s,a.features);let g=e().blockchains({type:o.type});return d.filter(f=>o.blockchain&&f.blockchain!==o.blockchain||!g.some(m=>m.name===f.blockchain)?!1:o.searchFor?!!(st(f.symbol,o.searchFor)||st(f.address||"",o.searchFor)||st(f.name||"",o.searchFor)):!0).sort((f,m)=>{let T=e().isTokenPinned(f,o.type),y=e().isTokenPinned(m,o.type);if(T!==y)return T?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(f),I=o.getBalanceFor(m),E=ru(A,I);if(E!==0)return E}let C=l.get(f.blockchain),k=l.get(m.blockchain),v=Ga(f,C),x=Ga(m,k);if(v!==x)return v?-1:1;if(f.isPopular!==m.isPopular)return f.isPopular?-1:1;if(o.searchFor){let A=qp(f,m,o.searchFor);if(A)return A}return f.isSecondaryCoin!==m.isSecondaryCoin?f.isSecondaryCoin?1:-1:C&&k?C.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=ht(o),s=n.get(a);return s||(s=r.find(c=>ht(c)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Ot(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(yu)},fetch:async()=>{try{let{routing:o}=e().config,n=Yo("enableCentralizedSwappers",o),r=await ct().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],p=r.popularTokens,u=r.swappers.filter(h=>h.enabled),d=new Set;r.tokens.forEach(h=>{d.add(h.blockchain),l.push(h)}),r.blockchains.sort((h,f)=>h.sort-f.sort).forEach(h=>{h.enabled&&d.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let f=ht(h);c[h.blockchain]||(c[h.blockchain]=[]),s.set(f,h),c[h.blockchain].push(f)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as dC,Catalonia as mC,Chinese as Tu,Denmark as fC,English as gC,Finland as hC,French as yC,German as SC,Greece as CC,Hungary as TC,India as kC,Indonesian as vC,Italian as wC,Japanese as bC,Korea as xC,Lithuania as EC,Malay as IC,Netherlands as AC,Pakistan as NC,Philippines as BC,Poland as WC,Portuguese as LC,Russian as PC,SaudiArabia as MC,Serbia as _C,Slovakia as DC,SouthAfrica as $C,Spanish as FC,Swahili as OC,Swedish as UC,Thai as zC,Turkish as qC,Ukrainian as QC,Vietnamese as HC}from"@rango-dev/ui";var ku=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:$C},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:MC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:dC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:mC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Tu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Tu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:fC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:AC},{title:"English",label:"English",local:"en",SVGFlag:gC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:BC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:hC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:yC},{title:"German",label:"Deutsch",local:"de",SVGFlag:SC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:CC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:kC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:TC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:vC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:wC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:bC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:xC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:EC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:IC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:WC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:LC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:PC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:_C},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:DC},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:FC},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:OC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:UC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:zC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:qC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:QC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:NC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:HC}],Jo="en";var vu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:ei,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],quoteTokensRate:"default",changeQuoteTokensRate:()=>t(o=>({quoteTokensRate:o.quoteTokensRate==="default"?"reversed":"default"})),addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,c)=>{let l=s===o,p=c<=9;return l&&p}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=Vo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=ot("theme",n),s=ot("language",n),c=ot("liquiditySource",n),l=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Jo},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||Jo}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=Or({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import us from"bignumber.js";import GC from"mitt";var we=GC(),VC={on:we.on,off:we.off};var wu=i(t=>(e,o,n)=>t(i((...a)=>{let[s,...c]=a;e(l=>({...typeof s=="function"?s(l):s,lastUpdatedAt:+new Date}),...c)},"modifedSet"),o,n),"keepLastUpdated");import bu from"bignumber.js";function zt(t){return`${t.blockchain}${ko}${t.address}${ko}${t.symbol}`}i(zt,"createAssetKey");function xu(t,e){return`${zt(e)}${ko}${t}`}i(xu,"createBalanceKey");function _n(t){let[e,o,n]=t.split(ko);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(_n,"extractAssetFromBalanceKey");function ss(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[zt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new bu(r??ce).multipliedBy(o[s].amount).toString():""})})}),o}i(ss,"computeNextBalancesWithNewPrices");function ls(t,e){let o={};return t.balances?.forEach(n=>{let r=xu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new bu(c??ce).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(ls,"createBalanceStateForNewAccount");function cs(t,e){for(let o in e){let n=_n(o),r=zt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(cs,"updateAggregatedBalanceStateForNewAccount");function KC(t,e){let o=_n(e),n=zt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(KC,"removeBalanceFromAggregatedBalance");function ps(t,e,o){let n=t.connectedWallets.filter(l=>l.walletType===e);t.connectedWallets.forEach(l=>{l.walletType!==e&&(n=n.filter(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=_n(l);!!n.find(d=>xu(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=KC(a,l):r[l]=s[l]}),{_balances:r,_aggregatedBalances:a}}i(ps,"computeNextStateAfterWalletBalanceRemoval");function jC(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(jC,"matchWalletDetailsWithConnectedWallet");var XC=Gp(),Eu=wu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Pn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Pn(s,a))?{...a,loading:!1,error:!1,explorerUrl:jC(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Pn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Pn(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 ct().getMultipleTokenBalance({assets:p.map(({symbol:d,address:g,blockchain:h})=>({symbol:d,address:g,blockchain:h})),walletAddress:l});if(u){let d=e()._balances,g=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let f={blockChain:h.asset.blockchain,balances:[h],address:l},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};ss(m,f,d);let T=ls(f,e);g=cs(g,T),d={...d,...T}}),t(h=>({_balances:{...h._balances,...d},_aggregatedBalances:g}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{we.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=ps(r,o,n);t({_balances:a,_aggregatedBalances:s})},disconnectNamespaces:(o,n)=>{if(e().connectedWallets.find(a=>a.walletType===o)){e().removeBalancesForWallet(o,{namespaces:n}),e()._changeSelectedWalletIfNeededOnRemove(o,{namespaces:n});let a=e().connectedWallets.filter(s=>s.namespace?!(s.walletType===o&&n.includes(s.namespace)):!0);t({connectedWallets:a})}},disconnectWallet:o=>{let n=e().connectedWallets.find(r=>r.walletType===o);if(we.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0)return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await ct().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(d=>{if(d.failed)return;let g={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};ss(g,d,l);let{_balances:h,_aggregatedBalances:f}=ps(g,r,{chains:[d.blockChain]});if(p=f,l=h,!e().connectedWallets.find(T=>T.walletType===r&&T.address===d.address&&T.chain===d.blockChain))return;let m=ls(d,e);p=cs(p,m),l={...l,...m}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let d=c.filter(g=>g.failed).map(g=>({chain:g.blockChain,walletType:r,address:g.address}));d.length>0&&await e().fetchMainTokensBalances(d,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=zt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let l=a[0];return n[l]}let c=n[a[0]];return a.forEach(l=>{let p=n[l],u=new us(p.amount),d=new us(c.amount);u.isGreaterThan(d)&&(c=p)}),c},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(ko);return p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>XC(()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,c)=>{let l=r[c],p=_n(c);if(p.blockchain===n.chain){let u=e().findToken(p),d=l.amount?new us(l.amount).shiftedBy(-l.decimals):ce;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:d.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Iu(t){return YC()(ZC((...e)=>({...Eu(...e),...Cu(...e),...vu(...e),...Bp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i(Iu,"createAppStore");var Au=RC(null);function S(){let t=eT(Au);if(tT(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(S,"useAppStore");function Nu(t){let e=oT();return e.current||(e.current=Iu(t.config)),JC.createElement(Au.Provider,{value:e.current},t.children)}i(Nu,"AppStoreProvider");function vt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=S(),{state:r,getWalletInfo:a}=nT(),s=S().blockchains(),{handleDisconnect:c}=Qo(),l=Ep(n()),p=ou(r,a,l,e);p=rT()?p.filter(m=>m.showOnMobile!==!1&&r(m.type).installed):p;let u=iu(p,r),d=i(m=>!o.find(T=>T.walletType===m&&T.chain===e),"isExperimentalChainNotAdded"),g=aT(()=>{let m=p?.filter(T=>T.state===ds.CONNECTING)||[];for(let T of m)c(T)},[lu(p)]);sT(()=>()=>{g()},[]);let h=i(m=>{let T=m.find(C=>C.type===Dn.DEFAULT);return!T||T.state===ds.NOT_INSTALLED?!1:m.filter(C=>C.state!=ds.NOT_INSTALLED&&![Dn.DEFAULT,Dn.WALLET_CONNECT_2,Dn.LEDGER].includes(C.type)&&a(C.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),f=i((m,T,y)=>Yr(y,T)&&d(m)&&!iT.includes(m)||m==Dn.DEFAULT&&!h(p),"shouldExcludeWallet");return{list:u.filter(m=>!f(m.type,e??"",s)),terminateConnectingWallets:g}}i(vt,"useWalletList");import{Modal as uT}from"@rango-dev/ui";import dT from"react";import{create as pT}from"zustand";var Bu="rango-widget";var $n=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(Bu),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var cT=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Ro=cT;var oe=Ro(pT()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),xo=new $n({onInit:()=>oe.setState({tabManagerInitiated:!0}),onClaim:()=>oe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>oe.setState({isActiveTab:!1})});function R(t){let{watermark:e}=oe();return dT.createElement(uT,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as on}from"@lingui/core";import{Alert as ET,Button as IT,Divider as pi,Image as AT,MessageBox as NT,RadioRoot as BT}from"@rango-dev/ui";import pe,{useEffect as WT,useMemo as LT,useState as PT}from"react";import{i18n as hT}from"@lingui/core";import{Typography as Fu}from"@rango-dev/ui";import en from"react";function ni(t,e){return t.find(o=>o.name===e)?.logo}i(ni,"getBlockchainLogo");import{darkTheme as mT,Image as fT,styled as qt,Typography as gT}from"@rango-dev/ui";var ri=qt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${mT} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),ii=qt("div",{display:"flex",gap:"$8",alignItems:"center"}),Lu=qt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Pu=qt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Mu=qt("div",{display:"flex",gap:"$6",alignItems:"center"}),_u=qt("div",{paddingLeft:"48px"}),Du=qt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),$u=qt(gT,{maxWidth:"100px"}),ai=qt(fT,{variants:{disabled:{true:{opacity:"0.5"}}}});function si(t){let{namespace:e}=t,o=S().blockchains();return en.createElement(ri,{unsupported:!0},en.createElement(ii,null,en.createElement(ai,{src:ni(o,e.id),size:40,disabled:!0}),en.createElement(Pu,null,en.createElement(Fu,{variant:"label",size:"large"},e.label),en.createElement(Fu,{variant:"body",size:"xsmall"},hT.t("(Currently not supported)")))))}i(si,"NamespaceUnsupportedItem");import{Checkbox as wT,Radio as bT}from"@rango-dev/ui";import hs from"react";import{i18n as gs}from"@lingui/core";import{ChevronDownIcon as ST,ChevronUpIcon as CT,Divider as TT,Typography as Fn}from"@rango-dev/ui";import Ne,{useEffect as kT,useState as vT}from"react";import{Image as Uu,Tooltip as zu,Typography as yT}from"@rango-dev/ui";import Lt from"react";import{styled as Ou}from"@rango-dev/ui";var ms=Ou("div",{display:"flex",alignItems:"center",padding:0,margin:0}),li=Ou("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var fs=3;function qu(t){let{chains:e}=t;return Lt.createElement(ms,{id:"widget-supported-chains-container"},e.slice(0,fs).map((o,n)=>Lt.createElement(zu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Lt.createElement(li,{firstItem:n===0},Lt.createElement(Uu,{src:o.logo,size:15})))),e.length>fs&&Lt.createElement(zu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Lt.createElement(ms,null,e.map((o,n)=>Lt.createElement(li,{key:o.name,firstItem:n===0},Lt.createElement(Uu,{src:o.logo,size:15}))))},Lt.createElement(li,null,Lt.createElement(yT,{variant:"body",size:"xsmall"},"+",e.length-fs))))}i(qu,"SupportedChainsList");function Eo(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=vT(!1),p=S().blockchains();kT(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!o&&!r&&u.length>1;return Ne.createElement(ri,{hasError:!!o,clickable:!!s,onClick:s},Ne.createElement(ii,null,Ne.createElement(ai,{src:ni(p,e.id),size:40}),Ne.createElement(Lu,{showSupportedChains:d||r||!!o},Ne.createElement(Mu,null,Ne.createElement(Fn,{variant:"label",size:"large"},e.label),r&&Ne.createElement(Fn,{variant:"body",size:"small",color:"success500"},gs.t("Connected")),!!o&&Ne.createElement(Fn,{variant:"body",size:"small",color:"error500"},gs.t("Connection failed"))),d&&Ne.createElement(qu,{chains:u}),r&&Ne.createElement($u,{variant:"body",size:"small",color:"neutral700"},a),o&&Ne.createElement(Du,{onClick:()=>l(g=>!g)},Ne.createElement(Fn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},gs.t("See why")),c?Ne.createElement(CT,{size:12,color:"gray"}):Ne.createElement(ST,{size:12,color:"gray"}))),n),!!o&&c&&Ne.createElement(Ne.Fragment,null,Ne.createElement(TT,{size:4}),Ne.createElement(_u,null,Ne.createElement(Fn,{variant:"body",size:"small",color:"neutral700"},o))))}i(Eo,"NamespaceItem");function Qu(t){let{onClick:e,type:o,namespace:n}=t;return hs.createElement(Eo,{namespace:n,onClick:e,suffix:o==="radio"?hs.createElement(bT,{value:n.value}):hs.createElement(wT,{checked:t.value})})}i(Qu,"NamespaceListItem");import{Button as xT,styled as Hu}from"@rango-dev/ui";var ci=Hu("ul",{padding:0,paddingTop:"$16",paddingBottom:"$20",margin:0}),tn=Hu(xT,{minHeight:"$40"});function On(t){let{targetWallet:e}=t.value,o=e.properties?.find(m=>m.name==="namespaces"),n=e.isHub,r=e.isHub?o?.value.selection==="single":e.needsNamespace?.selection==="single",a=n?o?.value:e.needsNamespace,s=e.image,c=S().blockchains(),[l,p]=PT([]),u=LT(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:T=>T.includes(m)?T.filter(y=>y!==m):T.concat(m))},"onSelect"),g=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");g?p([]):u&&p(u.map(m=>m.value))},"onSelectAll"),f=i(m=>r?pe.createElement(BT,{value:l?.[0]},m):pe.createElement(pe.Fragment,null,m),"wrapRadioRoot");return WT(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(T=>T.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(m.map(T=>T.value))}else p(u.map(m=>m.value))},[]),pe.createElement(pe.Fragment,null,pe.createElement(NT,{type:"info",title:on.t("Connect {wallet}",{wallet:e.title}),description:on.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:pe.createElement(AT,{src:s,size:45})}),r?pe.createElement(pe.Fragment,null,pe.createElement(pi,{size:20}),pe.createElement(ET,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:on.t("This wallet can only connect to one chain at a time. ")})):pe.createElement(pe.Fragment,null,pe.createElement(pi,{size:30}),pe.createElement(IT,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},g?on.t("Deselect all"):on.t("Select all"))),pe.createElement(ci,null,f(pe.createElement(pe.Fragment,null,a?.data.map((m,T,y)=>pe.createElement(pe.Fragment,{key:m.id},m.unsupported?pe.createElement(si,{namespace:m}):pe.createElement(Qu,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),T!==y.length-1&&pe.createElement(pi,{size:10})))))),pe.createElement(pi,{size:20}),pe.createElement(tn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},on.t("Connect")))}i(On,"Namespaces");import{i18n as ui}from"@lingui/core";import{Button as zT,Divider as Cs,Image as qT,MessageBox as QT}from"@rango-dev/ui";import{useWallets as HT}from"@rango-dev/wallets-react";import Ye from"react";import{styled as MT}from"@rango-dev/ui";var Gu=MT("div",{display:"flex",justifyContent:"end"});import{i18n as ys}from"@lingui/core";import{Button as _T,Spinner as DT}from"@rango-dev/ui";import{useWallets as $T}from"@rango-dev/wallets-react";import Ss,{useLayoutEffect as FT,useRef as OT,useState as UT}from"react";var Vu=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,{connect:a,disconnect:s,state:c}=$T(),[l,p]=UT(null),d=c(o).namespaces?.get(n.value),g=d.accounts?.[0]?.split(":"),h=OT(!1);FT(()=>{r&&!h.current&&f(o,n.value)},[]);let f=i(async(y,C)=>{try{h.current=!0,await a(y,[{namespace:C,network:""}])}catch(k){p(k)}finally{h.current=!1}},"handleConnectNamespace"),m=i(async y=>{p(null),y.connected?await s(o,[n.value]):f(o,n.value)},"handleButtonClick"),T=i(()=>d.connected?ys.t("Disconnect"):l?ys.t("Try again"):ys.t("Connect"),"getButtonText");return Ss.createElement(Eo,{namespace:n,connected:d.connected,error:l?.message,address:d.connected?oo(g?.[g?.length-1]):"",suffix:d.connecting?Ss.createElement(DT,{color:"info"}):Ss.createElement(_T,{id:"widget-name-space-connect-btn",variant:"ghost",type:d.connected?"error":"primary",size:"xsmall",onClick:async()=>m(d)},T())})},"NamespaceDetachedItem");function Un(t){let{selectedNamespaces:e,value:o,onDisconnectWallet:n}=t,{targetWallet:r}=o,{state:a}=HT(),s=a(r.type);return Ye.createElement(Ye.Fragment,null,Ye.createElement(QT,{type:"info",title:ui.t("Connect {wallet}",{wallet:r.type}),description:ui.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:Ye.createElement(qT,{src:r.image,size:45})}),Ye.createElement(Cs,{size:30}),Ye.createElement(Gu,null,Ye.createElement(zT,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:s.connecting||!s.connected,onClick:n},ui.t("Disconnect wallet"))),Ye.createElement(ci,{id:"widget-detached-namespace-list",as:"ul"},r.needsNamespace?.data.map((c,l,p)=>Ye.createElement(Ye.Fragment,{key:c.id},c.unsupported?Ye.createElement(si,{namespace:c}):Ye.createElement(Vu,{walletType:r.type,namespace:c,initialConnect:e?.includes(c.value)}),l!==p.length-1&&Ye.createElement(Cs,{size:10})))),Ye.createElement(Cs,{size:20}),Ye.createElement(tn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},ui.t("Done")))}i(Un,"Detached");import{i18n as nn}from"@lingui/core";import{Divider as ju,Image as jT,MessageBox as XT,Select as YT,TextField as ZT}from"@rango-dev/ui";import yt,{useEffect as JT,useState as Xu}from"react";import{namespaces as GT}from"@rango-dev/wallets-shared";var di={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ts(t){let e=t?GT[t].derivationPaths:null;return e?[...e,di]:[]}i(Ts,"getDerivationPaths");import{Button as VT,styled as ks,Typography as KT}from"@rango-dev/ui";var Ku=ks("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),vs=ks(KT,{paddingLeft:"$10"}),ws={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},dM=ks(VT,{minHeight:"$40"});var Yu="0";function zn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Xu(null),[c,l]=Xu(Yu),p=a===di.id,u=Ts(o),d=i(({value:h})=>{let f=u?.find(m=>m.id===h);f&&(a===di.id&&Number.isNaN(Number(c))&&l(Yu),s(f.id))},"handleDerivationPathItemClick"),g=i(()=>{let h=u.find(f=>f.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return JT(()=>{s(Ts(o)[0]?.id||null)},[o]),yt.createElement(yt.Fragment,null,yt.createElement(ju,{size:20}),yt.createElement(XT,{type:"info",title:nn.t("Select Derivation Path"),description:nn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:yt.createElement(jT,{src:n,size:45})}),yt.createElement(Ku,null,yt.createElement(vs,{variant:"body",size:"xsmall",color:"$neutral600"},nn.t("Choose Derivation Path Template")),yt.createElement(YT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:ws}}),yt.createElement(ju,{size:20}),yt.createElement(vs,{variant:"body",size:"xsmall",color:"$neutral600"},p?nn.t("Enter Path"):nn.t("Enter Index")),yt.createElement(ZT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:ws})),yt.createElement(tn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:g,disabled:!u||!a||!c},nn.t("Confirm")))}i(zn,"DerivationPath");import{i18n as rn}from"@lingui/core";import{Image as tk,MessageBox as bs,WalletState as ok}from"@rango-dev/ui";import{useWallets as nk}from"@rango-dev/wallets-react";import Io from"react";import{keyframes as RT,styled as mi}from"@rango-dev/ui";var wM=mi("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Zu=mi("div",{position:"relative"}),ek=RT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Ju=mi("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ek} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Ru=mi("div",{"& img":{borderRadius:"50%"}});function xs(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=nk();return Wn(a(n))===ok.CONNECTED?Io.createElement(bs,{type:"success",title:rn.t("Wallet Connected"),description:rn.t("Your wallet is connected, you can use it to swap.")}):o?Io.createElement(bs,{type:"error",title:rn.t("Failed to Connect"),description:o||rn.t("Your wallet is not connected. Please try again.")}):Io.createElement(bs,{type:"loading",title:rn.t("Connecting to your wallet"),description:rn.t("Click connect in your wallet popup."),icon:Io.createElement(Zu,null,Io.createElement(Ru,null,Io.createElement(tk,{src:r,size:45})),Io.createElement(Ju,null))})}i(xs,"ConnectStatus");import{i18n as Es}from"@lingui/core";import{Button as rk,Divider as ed,MessageBox as ik}from"@rango-dev/ui";import fi from"react";function Is(t){let{displayName:e,onConfirm:o,id:n}=t;return fi.createElement(ik,{id:n,title:Es.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Es.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},fi.createElement(ed,{size:18}),fi.createElement(ed,{size:32}),fi.createElement(rk,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Es.t("Confirm")))}i(Is,"ExperimentalChain");function td(t,e){return t().status==="init"&&!!e}i(td,"isOnStatus");function qn(t){return t().status==="namespace"}i(qn,"isOnNamespace");function Qn(t){return t().status==="derivationPath"}i(Qn,"isOnDerivationPath");function Co(t){return t().status==="detached"}i(Co,"isOnDetached");var ck=3e3,pk=300;function Hn(t){let e=lk(),[o,n]=od(!1),[r,a]=od(),s=i(v=>{a(v.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=vt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:g,handleDisconnect:h}=Qo(),f=i(v=>{u(t.wallet,v).then(k).catch(s)},"handleConfirmNamespaces"),m=i(()=>{y()},"handleDetachedConfirm"),T=i(v=>{if(!v)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(v).then(k).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),g(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),k=i((v,x)=>{let A=v.status==="connected",I=["disconnected","disconnected-unhandled"].includes(v.status);A?(t.onConnect?.(),x||(e.current=setTimeout(y,ck))):I&&y()},"afterConnected");return sk(()=>{if(t.wallet){C();let v=!1,x=!0;i(()=>{setTimeout(()=>{x=!1,v||n(!0)},pk)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(I=>{["namespace","Detached","derivation-path"].includes(I.status)||(v=!0),k(I,x)}).catch(s)}},[t.wallet]),no.createElement(R,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},td(d,t.wallet)&&no.createElement(no.Fragment,null,no.createElement(xs,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),no.createElement(ak,{direction:"vertical",size:32})),qn(d)&&no.createElement(On,{onConfirm:f,value:d().namespace}),Qn(d)&&no.createElement(zn,{onConfirm:T,value:d().derivationPath}),Co(d)&&no.createElement(Un,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces}))}i(Hn,"StatefulConnectModal");import{Provider as gk}from"@rango-dev/wallets-react";import gi,{createContext as hk,useEffect as sd,useMemo as yk,useRef as ld}from"react";import{useEffect as uk}from"react";function nd(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(nd,"hashProviders");function As(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=S(),a=n();return uk(()=>{o(),r()},[nd(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(As,"useWalletProviders");import{legacyFormatAddressWithNetwork as dk,legacyReadAccountAddress as rd}from"@rango-dev/wallets-core/legacy";import{Events as an}from"@rango-dev/wallets-react";import{isEvmBlockchain as mk}from"rango-sdk";function id(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=S(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(mk).map(m=>m.name),u=i((m,T)=>{let[y,,C,k,v]=m,x={walletType:y,network:k.network??void 0,accounts:C};c.current?c.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let A=Za(y,C,p,T.supportedChainNames,v.isContractWallet);A.length&&e(A,v.namespace,k.derivationPath)},"onAccountsEvent"),d=i((m,T,y,C,k)=>{if(T===an.ACCOUNTS){let v=Ln(k.supportedBlockchains);y&&u([m,T,y,C,k],{supportedChainNames:v})}T===an.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),T===an.NAMESPACE_DISCONNECTED&&n(m,y)},"handleUpdatesForHub"),g=i((m,T,y,C,k)=>{if(T===an.ACCOUNTS){let v=Ln(k.supportedBlockchains),x=[],A=[];if(y?.forEach(E=>{let{network:b}=rd(E);p.includes(b)?x.push(E):A.push(E)}),r.filter(E=>E.walletType===m).map(E=>dk(E.address,E.chain)).length>0){if(x.length>0){let E=Za(m,x,p,v,k.isContractWallet);a(m,{chains:E.map(b=>b.chain)})}A.length>0&&a(m,{chains:A.map(E=>{let{network:b}=rd(E);return b})})}y?u([m,T,y,C,k],{supportedChainNames:v}):(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((m,T,y,C,k)=>{if(T===an.CONNECTED&&y){let v={walletType:m,network:C.network??void 0,accounts:C.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(T===an.NETWORK&&y){let v={walletType:m,network:y,accounts:C.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((m,T,y,C,k)=>{k.isHub?d(m,T,y,C,k):g(m,T,y,C,k),h(m,T,y,C,k)},"handler")}}i(id,"useUpdates");import{LegacyEvents as fk}from"@rango-dev/wallets-core/legacy";function ad(t,e){let[o,n,r,a,s]=e;n!==fk.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(ad,"propagateEvents");var hi=hk({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Sk(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=S(),a=S().blockchains(),s=S().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=As(s.wallets,c),p=ld(),u=ld(),{handler:d}=id({onConnectWalletHandler:p,onDisconnectWalletHandler:u});sd(()=>{n().catch(console.log)},[]),sd(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let g=oe.use.isActiveTab(),h=yk(()=>({onConnectWallet:f=>{p.current=f},onDisconnectWallet:f=>{u.current=f}}),[]);return gi.createElement(hi.Provider,{value:h},gi.createElement(gk,{allBlockChains:a,providers:l,onUpdateState:(f,m,T,y,C)=>{let k=[f,m,T,y,C];d(...k),t.onUpdateState&&ad(t.onUpdateState,k)},autoConnect:!!g,configs:{wallets:s.wallets}},t.children))}i(Sk,"Main");function yi(t){let{config:e,...o}=t;return gi.createElement(Nu,{config:e},gi.createElement(Sk,{...o,config:e}))}i(yi,"WidgetWallets");import qa from"react";import Ck,{Fragment as Tk}from"react";import{MemoryRouter as kk,useInRouterContext as vk}from"react-router";function cd({children:t}){let o=vk()?Tk:kk;return Ck.createElement(o,null,t)}i(cd,"AppRouter");import{I18nManager as iN}from"@rango-dev/ui";import gp from"react";import qe from"react";import{useRoutes as V0}from"react-router-dom";var F={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as ln,useRef as xi}from"react";import nt from"bignumber.js";import{create as Ek}from"zustand";import{subscribeWithSelector as Ik}from"zustand/middleware";import{i18n as wt}from"@lingui/core";import{getRelatedWalletOrNull as xk,RouteEventType as mD}from"@rango-dev/queue-manager-rango-preset";import Ge from"bignumber.js";import{PendingSwapNetworkStatus as wi}from"rango-types";import{i18n as He}from"@lingui/core";var ne=i(()=>({genericServerError:He.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:He.t("Please reset your liquidity sources."),description:He.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:He.t("No Routes Found."),description:He.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:He.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:He.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:He.t("High Price Impact"),title:He.t("Price impact is too high!"),description:He.t("The price impact is significantly higher than the allowed amount."),confirmMessage:He.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:He.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:He.t("USD Price Unknown"),title:He.t("USD Price Unknown, Cannot calculate Price Impact."),description:He.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:He.t("Confirm USD Price Unknown")}}),"errorMessages");function pd(t){return t.type===0?t.diagnosisMessage??ne().noResultError.title:t.type===1?t.diagnosisMessage??ne().genericServerError:""}i(pd,"getQuoteErrorMessage");import{i18n as Si}from"@lingui/core";var Ao=i(()=>({connectWallet:Si.t("Connect Wallet"),swap:Si.t("Swap"),swapAnyway:Si.t("Swap anyway"),ethWarning:Si.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ns(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Ns,"getFeeLabel");var Bs=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],ud=100,dd=30,md=15,fd=60;var gd=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],hd=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as bk}from"@rango-dev/queue-manager-rango-preset";import R_ from"bignumber.js";function Sd(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(Sd,"getRequiredBalanceOfWallet");function Ht(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Ht,"getPriceImpactLevel");function Ci(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=bk(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=To(a?a.toBlockchain:n.fromBlockchain,e),l=To(r.toBlockchain,e),p=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:d}}i(Ci,"createRetryQuote");function sn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=Gn(o),s=St(o);if(o&&a&&s){let p=Qt(a.toString(),s.toString());if(!!p&&wd(a,p)){let d=ki(o?.swaps,n),g=Ht(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:g}}}if(e&&Ed(e,o))return{type:4,usdValueChange:_(St(o)?.minus(St(e)??0).toString()??"0",null,2),percentageChange:_(Qt(St(e)??"1",St(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=vi(o.swaps),l=r>jo;if(xd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:bd(o,r),minRequiredSlippage:c};return null}i(sn,"generateQuoteWarnings");function Cd(t){return![4].includes(t.type)}i(Cd,"isQuoteWarningConfirmationRequired");function Qt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ws(t.toString(),e.toString());return n&&n<0?n:null}i(Qt,"getPriceImpact");var Td=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),Ti=i((t,e)=>e.sort((o,n)=>{let r=i(p=>p.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),kd=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(c=>c.swapperId));return Array.from(n).every(c=>s.has(c))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),vd=i(t=>{let e=i((o,n)=>{let r=Bs.indexOf(o.value),a=Bs.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function wd(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return gd.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ge(r)))}i(wd,"hasHighValueLoss");function Id(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(Id,"hasLimitError");function Ad(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new Ge(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new Ge(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0],o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=wt.t({id:"Required: >= {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=wt.t({id:"Required: > {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=wt.t({id:"Required: <= {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=wt.t({id:"Required: < {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Ad,"getLimitErrorMessage");function Nd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Ao().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Ao().swap,action:"confirm-swap",disabled:!0}:s?{title:Ao().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Ao().ethWarning,action:"confirm-warning",disabled:!1}:{title:Ao().swap,action:"confirm-swap",disabled:!1}:{title:Ao().connectWallet,action:"connect-wallet",disabled:!1}}i(Nd,"getSwapButtonState");function Ls(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ce))&&e&&e!=="0"&&n!==0)}i(Ls,"canComputePriceImpact");function Ps(t,e){let o=ce;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ge(r.amount).multipliedBy(a||0))}return o}i(Ps,"getUsdFeeOfStep");function ki(t,e){return t.reduce((o,n)=>o.plus(Ps(n,e)),ce)}i(ki,"getTotalFeeInUsd");function Ms(t){let e=ce,o=new Ge(t.price||0);return e=e.plus(new Ge(t.amount).multipliedBy(o)),e}i(Ms,"getUsdFee");function Bd(t){return t.reduce((e,o)=>e.plus(Ms(o)),ce)}i(Bd,"getTotalFeesInUsd");function Wd(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(Wd,"getFeesGroup");function Ld(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?Object.fromEntries(e):null}i(Ld,"checkSlippageErrors");function bd(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(bd,"checkSlippageWarnings");function vi(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(vi,"getMinRequiredSlippage");function xd(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(xd,"hasProperSlippage");function Pd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:d,affiliateWallets:g,destination:h,contractCall:f}=t,m=a?.reduce((C,k)=>(C[k.chain]=k.address,C),{}),T=[];return r?.forEach(C=>{T.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??void 0,affiliateWallets:g??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:T,selectedWallets:m??{},slippage:p.toString(),contractCall:f,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1}}}i(Pd,"createQuoteRequestBody");function Md(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Md,"getWalletsForNewSwap");function Gn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}i(Gn,"getUsdInputFrom");function St(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(St,"getUsdOutputFrom");function Ws(t,e){return new Ge(e).div(new Ge(t)).minus(1).multipliedBy(ud).toNumber()}i(Ws,"getPercentageChange");function Ed(t,e){let o=Gn(t),n=St(t),r=St(e);if(!o||!n||!r)return!1;let a=Ws(n.toString(),r.toString());return hd.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Ed,"isOutputAmountChangedExcessively");function _d(t,e,o){let n=t.validationStatus,r=wo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>Sd(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=_(new Ge(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=_(new Ge(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=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:gt(s.asset.blockchain,o)}})})}i(_d,"generateBalanceWarnings");function Vn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==wi.NetworkChanged}i(Vn,"isNetworkStatusInWarningState");function Dd(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),Vn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?xk(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case wi.WaitingForConnectingWallet:r=u?wt.t("Connect {wallet}",{wallet:u}):r;break;case wi.WaitingForQueue:r=r||wt.t("Waiting for other running tasks to be finished");break;case wi.WaitingForNetworkChange:r=r||wt.t("Waiting for changing wallet network");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(Dd,"getSwapMessages");function $d(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i($d,"getLastConvertedTokenInFailedSwap");function Fd(t){return t.status==="failed"}i(Fd,"shouldRetrySwap");function Od(t,e,o,n,r,a){if(!n||t)return!0;let s=wo({filter:"all",quote:n}),c=wo({filter:"required",quote:n}),l=s.every(d=>r.some(g=>g.chain===d)),p=c.every(d=>r.some(g=>g.chain===d)),u=o&&a?Go(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Od,"isConfirmSwapDisabled");function Ud(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Ud,"isTokensIdentical");var bi=i((t,e)=>t?.usdPrice?new nt(e||ce).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Ro(Ek()(Ik(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new nt(0),outputUsdValue:new nt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=ce,a=o.inputUsdValue;return Bn(o.inputAmount)?(e&&(n=e?.outputAmount?new nt(e?.outputAmount):null,a=Gn(e)??ce,r=St(e)??ce),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new nt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new nt(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new nt(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:bi(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new nt(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),sanitizeInputAmount:e=>{let o=eu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;Vr(e)||(o=Vp(o),o=Kp(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new nt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:bi(n.fromToken,o)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:bi(n??null,s),outputUsdValue:new nt(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?bi(e.toToken,e.outputAmount?.toString()||""):new nt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new nt(0),inputUsdValue:new nt(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new nt(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),zd=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&we.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&&we.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function qd(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=O(),u=S().config,d=S().fetchStatus,g=S().blockchains(),{findToken:h}=S(),{setAffiliateRef:f,setAffiliatePercent:m,setAffiliateWallets:T}=S(),y=u?.from?.tokens,C=u?.from?.blockchains,k=u?.to?.tokens,v=u?.to?.blockchains,x=xi(void 0),A=xi(void 0),I=xi(void 0),E=xi(void 0);ln(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),ln(()=>{if(d==="success"){r();let b=g.find(M=>M.name===u?.from?.blockchain),w=u?.from?.token,B=w&&h(w);(b||!b&&I.current)&&n(b??null),B?a({token:B,meta:{blockchains:g}}):!B&&x.current&&a({token:null}),I.current=u?.from?.blockchain,x.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),ln(()=>{ts(s,y)&&a({token:null}),os(l,C)&&n(null)},[y,C]),ln(()=>{ts(c,k)&&a({token:null}),os(p,v)&&o(null)},[k,v]),ln(()=>{if(d==="success"){r();let b=g.find(M=>M.name===u?.to?.blockchain),w=u?.to?.token,B=w&&h(w);(b||!b&&E.current)&&o(b??null),B?e({token:B,meta:{blockchains:g}}):!B&&A.current&&e({token:null}),E.current=u?.to?.blockchain,A.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,d]),ln(()=>{f(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),T(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(qd,"useSyncStoresWithConfig");import{useEffect as $s,useRef as Ak}from"react";import{useInRouterContext as Nk,useLocation as Bk,useSearchParams as Wk}from"react-router-dom";function _s(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(_s,"convertTokenSearchParamToAsset");function Ds(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ds,"tokenToSearchParam");function Os(){let t=Bk(),[e,o]=Wk(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:g}=O(),h=S().fetchStatus,f=S().blockchains(),m=Nk(),{updateIframe:T,updateCampaignMode:y}=S(),C=S().isInCampaignMode(),k=Ak(),{findToken:v}=S(),x=i(()=>{let I={};for(let[L,te]of e.entries())L.startsWith("utm_")&&(I[L]=te);let E=e.get("fromAmount"),b=e.get("fromBlockchain"),w=e.get("fromToken"),B=e.get("toBlockchain"),M=e.get("toToken"),$=e.get("autoConnect"),q=e.get("clientUrl"),ee=e.get("liquiditySources"),V=e.get("blockchain");return{fromAmount:E,fromBlockchain:b,fromToken:w,toBlockchain:B,toToken:M,autoConnect:$,clientUrl:q,liquiditySources:ee,utmQueryParams:I,blockchain:V}},"getUrlSearchParams"),A=i(I=>{for(let E in I)I[E]||delete I[E];o(I,{replace:!0})},"updateUrlSearchParams");$s(()=>{let{autoConnect:I,clientUrl:E,utmQueryParams:b,blockchain:w}=x();m&&h==="success"&&A({fromBlockchain:n?.name,fromToken:Ds(a),toBlockchain:r?.name,toToken:Ds(s),fromAmount:c,autoConnect:I??void 0,clientUrl:E??void 0,blockchain:w??void 0,liquiditySources:C?k.current:void 0,...b})},[t.pathname,c,n,a,r,s,C,h]),$s(()=>{if(!m)return;let I=x();if(!k.current&&I.liquiditySources&&(k.current=I.liquiditySources),I.fromAmount&&g(I.fromAmount),h==="success"){let E=f.find(M=>M.name===I.fromBlockchain),b=I.fromToken&&E?v(_s(I.fromToken,E)):void 0,w=f.find(M=>M.name===I.toBlockchain),B=I.toToken&&w?v(_s(I.toToken,w)):void 0;E&&(l(E),b&&u({token:b,meta:{blockchains:f}})),w&&(p(w),B&&d({token:B,meta:{blockchains:f}}))}},[h]),$s(()=>{let{clientUrl:I,liquiditySources:E}=x();T("clientUrl",I||void 0),y("liquiditySources",E?.split(",")??void 0)},[])}i(Os,"useSyncUrlAndStore");import{i18n as mn}from"@lingui/core";import{Alert as Jv,Button as Rv,darkTheme as ew,Divider as hl,DoneIcon as tw,styled as ow,TextField as nw,Typography as rw}from"@rango-dev/ui";import Ke,{useState as iw}from"react";import{useNavigate as aw,useSearchParams as sw}from"react-router-dom";import{ChevronRightIcon as Lk,Divider as Kd,Image as Pk,Typography as jd}from"@rango-dev/ui";import bt from"react";import{darkTheme as Qd,styled as Us}from"@rango-dev/ui";var Hd=Us("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Qd} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Qd} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),Gd=Us("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),Vd=Us("div",{display:"flex"});function zs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return bt.createElement(Gd,null,bt.createElement(jd,{size:"large",variant:"label"},n),bt.createElement(Kd,{size:10}),bt.createElement(Hd,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},bt.createElement(Vd,null,r&&bt.createElement(bt.Fragment,null,bt.createElement(Pk,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),bt.createElement(Kd,{size:4,direction:"horizontal"})),bt.createElement(jd,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),bt.createElement(Lk,{size:12,color:"black"})))}i(zs,"BlockchainSelectorButton");import{i18n as Vs}from"@lingui/core";import{Button as $k,Divider as Jd,MessageBox as Fk}from"@rango-dev/ui";import ro,{useEffect as Rd,useState as Ks}from"react";import{i18n as Ei}from"@lingui/core";import{Divider as No,ExternalLinkIcon as _k,Image as Dk,Typography as pn}from"@rango-dev/ui";import be from"react";var Xd="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function Yd(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Yd,"generateExplorerLink");import{Button as Mk,darkTheme as cn,styled as qs}from"@rango-dev/ui";var Qs=qs("a",{textDecoration:"none",color:"$colors$neutral700",[`.${cn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${cn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${cn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${cn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),Zd=qs("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${cn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${cn} &`]:{color:"$colors$neutral900"}}}),Hs=qs(Mk,{minHeight:"$40"});function Gs(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=Yd(n.address,s),l=i(()=>window.open(Xd,"_blank"),"onClickLearnMore");return be.createElement(R,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},be.createElement(Zd,null,be.createElement(Dk,{src:n.image===""?zr:n.image,size:45,type:"circular"}),be.createElement(No,{size:4}),be.createElement(pn,{variant:"title",size:"medium"},n.symbol),be.createElement(pn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),be.createElement(No,{size:4}),be.createElement(pn,{variant:"body",size:"medium"},c?be.createElement(Qs,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,be.createElement(_k,{size:12,color:"gray"})):be.createElement(Qs,null,n.address)),be.createElement(No,{size:4}),n.coinSource&&be.createElement(pn,{className:"_coin-source",variant:"body",size:"xsmall"},Ei.t("via")," ",be.createElement(pn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),be.createElement(No,{size:"32"}),be.createElement(pn,{size:"medium",variant:"body",className:"_custom-token-description"},Ei.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),be.createElement(No,{size:40}),be.createElement(No,{size:10}),be.createElement(Hs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Ei.t("Import Anyway")),be.createElement(No,{size:10}),be.createElement(Hs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Ei.t("Learn More")))}i(Gs,"CustomTokenModal");function Kn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=S(),[d,g]=Ks(!1),[h,f]=Ks(!1),[m,T]=Ks(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),g(!1)},"closeErrorModal"),k=i(()=>{T(!0),C()},"handleErrorModalButtonClick"),v=i(()=>{m&&n?.type==="network-error"&&(T(!1),y()),l()},"handleExit"),x=i(()=>{e&&(u(e),c())},"handleSubmit");return Rd(()=>{n&&g(!0)},[n]),Rd(()=>{o&&e&&f(!0)},[o,e]),ro.createElement(ro.Fragment,null,ro.createElement(R,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:C,onExit:v,container:N()},ro.createElement(Fk,{title:n?.title??"",type:"error",description:n?.message||Vs.t("Failed Network, Please retry.")},ro.createElement(Jd,{size:40}),ro.createElement(Jd,{size:10}),ro.createElement($k,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:k},n?.type==="network-error"?Vs.t("Retry"):Vs.t("Add another custom token")))),o&&e&&ro.createElement(Gs,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>f(!1),open:h,onExit:p}))}i(Kn,"ImportCustomToken");import{useManager as Vv}from"@rango-dev/queue-manager-react";import{BottomLogo as Kv,Divider as Wm,Header as jv}from"@rango-dev/ui";import We,{useEffect as _i,useLayoutEffect as Xv,useRef as Lm,useState as Pm}from"react";import{useRef as Ok}from"react";function jn(){return window.self!==window.top}i(jn,"isAppLoadedIntoIframe");function js(){let t=Ok(null),{iframe:e}=S(),o=jn()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(js,"useIframe");import{useNavigate as Uk}from"react-router-dom";function Ve(){let t=Uk();return()=>t(-1)}i(Ve,"useNavigateBack");import{useLayoutEffect as zk,useState as Xn}from"react";var em=480,tm=768,om=1024,nm=1200,qk=i(()=>{let[t,e]=Xn(!1),[o,n]=Xn(!1),[r,a]=Xn(!1),[s,c]=Xn(!1),[l,p]=Xn(!1),u=i(()=>{e(window.innerWidth<=em),n(window.innerWidth>em&&window.innerWidth<=tm),a(window.innerWidth>tm&&window.innerWidth<=om),c(window.innerWidth>om&&window.innerWidth<=nm),p(window.innerWidth>nm)},"handleResize");return zk(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),un=qk;import{createTheme as tl,darkTheme as tv,lightTheme as ov}from"@rango-dev/ui";import{useEffect as nv,useState as rv}from"react";import{theme as Rk,darkColors as ev}from"@rango-dev/ui";import Rs from"react";var Ii=16,Ai=255,rm=.11;function Qk(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Qk,"expandShortHexColor");function Hk(t,e){return t.padStart(e,"0")}i(Hk,"pad");function Xs(t){let e=Math.min(Math.max(Math.round(t),0),Ai);return Hk(e.toString(Ii),2)}i(Xs,"intToHex");function Gk(t){return`#${Xs(t.red)}${Xs(t.green)}${Xs(t.blue)}`}i(Gk,"rgbToHex");function Vk(t){let e=parseInt(t.slice(1,3),Ii),o=parseInt(t.slice(3,5),Ii),n=parseInt(t.slice(5,7),Ii);return{red:e,green:o,blue:n}}i(Vk,"hexToRGB");function Kk(t,e){let o=1-rm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Kk,"generateShade");function jk(t,e){let o=rm*e;return{red:t.red+(Ai-t.red)*o,green:t.green+(Ai-t.green)*o,blue:t.blue+(Ai-t.blue)*o}}i(jk,"generateTint");function Xk(t){return im(t,Kk)}i(Xk,"calculateShades");function Yk(t){return im(t,jk)}i(Yk,"calculateTints");function im(t,e){let o=Vk(t),n=[];for(let r=1;r<9;r++)n.push(Gk(e(o,r)));return n}i(im,"calculateColors");function Ys(t,e,o){let a=Yk(t).reverse().concat(t),s=Xk(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let d=100+(o?p-1-u:u)*50;l[`${e}${d}`]=c[u]}return l}i(Ys,"createTintsAndShades");function Zs(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!Jp(r)){let l=Qk(a);Object.assign(n,Ys(l,r,s))}}return{...n,...e}}i(Zs,"expandToGenerateThemeColors");var am=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Zk=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=am(o%52)+e;return am(o%52)+e},"toAlphabeticName"),Jk=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Js=i(t=>Zk(Jk(5381,JSON.stringify(t))>>>0),"toHash");function el(t){let e=Rk.colors,o={...e,...ev},n,r;if(t?.light){let s={colors:Zs(e,t.light)};n={id:`${es}-light-${Js(s)}`,tokens:s}}if(t?.dark){let s={colors:Zs(o,t.dark,{reverseNeutralRange:!0})};r={id:`${es}-dark-${Js(s)}`,tokens:s}}return{light:n,dark:r}}i(el,"customizedThemeTokens");function sm(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Rs.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Rs.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(Rs.cloneElement(e,{key:c}))}}),o}i(sm,"joinList");function lm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(lm,"doesWindowPreferDarkColorScheme");function io(t){let{colors:e,fontFamily:o=Dp,borderRadius:n=du,secondaryBorderRadius:r=mu}=t,[a,s]=rv(lm()?"dark":"light"),{theme:c}=S(),{dark:l,light:p}=el(e),u=tl({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,ov.className],g=[u.className,tv.className];if(p){let f=tl(p.id,p.tokens);d.push(f.className)}if(l){let f=tl(l.id,l.tokens);g.push(f.className)}return nv(()=>{let f=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return lm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=d.join(" "),m=g.join(" ");return c==="auto"?a==="dark"?m:f:c==="dark"?m:f},"getActiveTheme"),mode:c==="auto"?a:c}}i(io,"useTheme");var Ct=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as cm}from"@lingui/core";import{Alert as iv,Button as av}from"@rango-dev/ui";import pm from"react";function ol(t){return pm.createElement(iv,{action:pm.createElement(av,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},cm.t("Activate this tab")),type:"warning",variant:"alarm",title:cm.t("Another tab is open and handles transactions.")})}i(ol,"ActivateTabAlert");import{i18n as nl}from"@lingui/core";import{Button as sv,Divider as lv,MessageBox as cv}from"@rango-dev/ui";import Ni from"react";function rl(t){let{open:e,onClose:o,onConfirm:n}=t;return Ni.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},Ni.createElement(cv,{title:nl.t("Activate current tab"),type:"warning",description:nl.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},Ni.createElement(lv,{size:20}),Ni.createElement(sv,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},nl.t("Confirm"))))}i(rl,"ActivateTabModal");import{ChevronLeftIcon as dv}from"@rango-dev/ui";import Sm from"react";import{css as pv,darkTheme as um,IconButton as uv,styled as Bo}from"@rango-dev/ui";var Pt=Bo(uv,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${um} &`]:{backgroundColor:"$neutral"}}}),dm=Bo("div",{position:"absolute",background:"$secondary500",[`.${um} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),ao=Bo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),mm=Bo("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),fm=Bo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),gm=Bo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),hm=pv({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),ym=Bo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function il(t){return Sm.createElement(Pt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Sm.createElement(dv,{color:"black",size:16}))}i(il,"BackButton");import{i18n as mv}from"@lingui/core";import{Button as fv,Typography as gv}from"@rango-dev/ui";import al from"react";function sl(t){return al.createElement(ao,null,al.createElement(fv,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},al.createElement(gv,{variant:"label",size:"medium",color:"error500"},mv.t("Cancel"))))}i(sl,"CancelButton");import{i18n as hv}from"@lingui/core";import{Image as yv,Tooltip as Sv,WalletIcon as Cv}from"@rango-dev/ui";import Wo from"react";function ll(t){let{list:e}=vt(),o=e.filter(r=>r.state==="connected"),n=o.length?Wo.createElement("div",{className:hm()},o.map(r=>Wo.createElement(ym,{key:r.title},Wo.createElement(yv,{src:r.image,size:14})))):hv.t("Connect Wallet");return Wo.createElement(Sv,{container:t.container,side:"bottom",content:n},Wo.createElement(Pt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Wo.createElement(dm,null),Wo.createElement(Cv,{size:18,color:"black"})))}i(ll,"WalletButton");import{i18n as Wi}from"@lingui/core";import{NotificationsIcon as _v,Popover as Dv,SettingsIcon as $v,Tooltip as Li,TransactionIcon as Fv}from"@rango-dev/ui";import De from"react";import{Notifications as wv}from"@rango-dev/ui";import bv from"react";import{useNavigate as xv}from"react-router-dom";import{create as Tv}from"zustand";import{persist as kv,subscribeWithSelector as vv}from"zustand/middleware";var Be=Ro(Tv()(kv(vv((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function cl(){let t=xv(),{getNotifications:e,clearNotifications:o}=Be(),n=e(),r=S().blockchains(),{findToken:a}=S();return bv.createElement(wv,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Ip(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${F.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(cl,"NotificationContent");import{useManager as Ev}from"@rango-dev/queue-manager-react";import{InProgressIcon as Iv}from"@rango-dev/ui";import Cm from"react";var Av=i(()=>{let{manager:t}=Ev();return Ct(t).map(({swap:o})=>o).find(o=>o.status==="running")?Cm.createElement(gm,{id:"widget-header-history-badge-container"},Cm.createElement(Iv,{color:"info",size:6})):null},"InProgressTransactionBadge"),Tm=Av;import{EventSeverity as Nv}from"@rango-dev/queue-manager-rango-preset";import{Typography as Bv}from"@rango-dev/ui";import km from"react";function vm(){let{getNotifications:t}=Be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Nv.WARNING);return o?km.createElement(mm,{isSever:n},km.createElement(Bv,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(vm,"NotificationsBadge");import{RefreshProgressButton as Wv}from"@rango-dev/ui";import pl,{useEffect as Lv,useState as wm}from"react";var Pv=1e3,bm=60,Mv=100;function Bi({onClick:t}){let[e,o]=wm(0),[n,r]=wm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Lv(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===bm&&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 pl.createElement(Pt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},pl.createElement(fm,{onTransitionEnd:()=>r(!1),isRefetched:n},pl.createElement(Wv,{size:22,color:t?"black":"gray",progress:e/bm*Mv})))}i(Bi,"RefreshButton");function Lo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=S(),c=ot("notification",s)||r.includes("notifications");return De.createElement(De.Fragment,null,!r.includes("refresh")&&De.createElement(Li,{container:a||N(),side:"top",content:Wi.t("Refresh")},De.createElement(Bi,{onClick:e})),!c&&De.createElement(Dv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:De.createElement(cl,null)},De.createElement("div",null,De.createElement(Li,{container:N(),side:"top",content:Wi.t("Notifications")},De.createElement(Pt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},De.createElement(_v,{size:18,color:"black"}),De.createElement(vm,null))))),!r.includes("settings")&&De.createElement(Li,{container:N(),side:"top",content:Wi.t("Settings")},De.createElement(Pt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},De.createElement($v,{size:18,color:"black"}))),!r.includes("history")&&De.createElement(Li,{container:N(),side:"top",content:Wi.t("History")},De.createElement(Pt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},De.createElement(Fv,{size:18,color:"black"}),De.createElement(Tm,null))))}i(Lo,"HeaderButtons");import{i18n as ul}from"@lingui/core";import{Divider as Em,MessageBox as zv,RefreshIcon as qv}from"@rango-dev/ui";import dn from"react";import{Button as Ov,styled as Uv}from"@rango-dev/ui";var xm=Uv(Ov,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function dl(t){let{open:e,onClose:o}=t;return dn.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},dn.createElement(zv,{title:ul.t("Something went wrong"),type:"error",description:ul.t("Something went wrong. Please refresh the app.")},dn.createElement(Em,{size:30}),dn.createElement(xm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},dn.createElement(qv,{size:20,color:"primary"}),dn.createElement(Em,{size:4,direction:"horizontal"}),ul.t("Refresh"))))}i(dl,"RefreshModal");function ml(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(ml,"onScrollContentAttachStatusToContainer");import{css as Hv,styled as Pi}from"@rango-dev/ui";var Mi=Hv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Im=Pi("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:700},fixed:{minHeight:425,maxHeight:700,height:700}},showBanner:{true:{overflow:"visible"}}}}),Am=Pi("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Nm=Pi("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}}),Bm=Pi("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=js(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=S(),[u,d]=Pm(!1),{config:{features:g,theme:h}}=S(),{watermark:f,setShowCompactTokenSelector:m}=oe(),T=f==="FULL",{activeTheme:y}=io(h||{}),[C,k]=Pm(!1),v=ot("connectWalletButton",g),{isActiveTab:x,tabManagerInitiated:A,showActivateTabModal:I,setShowActivateTabModal:E,activateCurrentTab:b}=oe(),w=Ve(),{manager:B}=Vv(),{isTablet:M,isMobile:$}=un(),ee=Ct(B).map(({swap:X})=>X).some(X=>X.status==="running"),V=i(()=>b(xo.forceClaim,ee),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),te=typeof r.hasBackButton>"u"||r.hasBackButton,le=Lm(null),J=Lm(null);return _i(()=>{let X=(p?.swapBoxBanner?.routes?.length??0)===0,j=!!p?.swapBoxBanner?.routes?.some(ue=>location.pathname.endsWith(ue));k(!!p?.swapBoxBanner&&(X||j))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),_i(()=>(jn()&&J.current&&e(J.current),()=>{o()}),[]),_i(()=>(le.current?.addEventListener("scroll",ml),()=>{le.current?.removeEventListener("scroll",ml)}),[]),_i(()=>{d(c==="failed")},[c]),Xv(()=>{let X=s==="auto"||!J.current||jn(),j=$||M,ue=i(()=>{X||(j?J.current.style.height=`${window.innerHeight-J.current.offsetTop}px`:J.current.style.height=`${700}px`,m(parseFloat(J.current.style.height)<640))},"handler");return ue(),window.addEventListener("resize",ue),()=>window.removeEventListener("resize",ue)},[s,$,M]),We.createElement(Im,{height:s,id:tt.SWAP_BOX_ID,className:`${y()} ${Mi()}`,ref:J,showBanner:C},We.createElement(jv,{prefix:te?We.createElement(il,{onClick:()=>{w(),r.onBack?.()}}):null,title:r.title,suffix:We.createElement(We.Fragment,null,r.suffix,r.onWallet&&!v&&We.createElement(ll,{container:N(),onClick:L,isConnected:!!l?.length}),r.onCancel&&We.createElement(sl,{onClick:r.onCancel}))}),We.createElement(Am,{ref:le},n),We.createElement(rl,{open:I,onClose:()=>E(!1),onConfirm:V}),We.createElement(Nm,null,We.createElement("div",{className:"footer__content"},A&&!x&&We.createElement("div",{className:"footer__alert"},We.createElement(ol,{onActivateTab:V}),We.createElement(Wm,{size:10})),a),We.createElement(Wm,{size:12}),We.createElement("div",{className:`footer__logo ${T?"logo__show":"logo__hidden"}`},We.createElement(Kv,null))),C&&We.createElement(Bm,null,p?.swapBoxBanner?.element),We.createElement(dl,{open:u,onClose:()=>d(!1)}))}i(ie,"Layout");import{styled as Yv}from"@rango-dev/ui";var Mm="$20 $20 $10 $20",fl=Yv("div",{padding:Mm,overflowY:"auto",flexGrow:1});import{styled as Zv}from"@rango-dev/ui";var ae=Zv("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as so}from"@lingui/core";import{useState as gl}from"react";function _m(){let[t,e]=gl(!1),[o,n]=gl(null),[r,a]=gl(null),{findToken:s}=S(),c=S().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(d,g){switch(d){case"duplicated":return{type:d,title:so.t("Duplicate Token"),message:so.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:so.t("Token Already Exists"),message:so.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:d,title:so.t("Token Not Found"),message:so.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:g}})};case"network-error":return{type:d,title:so.t("Network error"),message:so.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:g})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===g.toLowerCase())){let y=p("duplicated");n(y);return}let f=await ct().getCustomToken({blockchain:d,address:g});if(!f||!f.token||f.error){let y=p("not-found",d);n(y);return}let m=f.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let y=p("token-exist");n(y);return}return a({...m,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let f=p("not-found",d);n(f);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(_m,"useFetchCustomToken");var lw=ow("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${ew} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Dm(){let t=aw(),[e]=sw(),o=Ve(),n=S().blockchains(),r=e.get("blockchain")||"",a=To(r,n),[s,c]=iw(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:g}=_m(),h=!!a&&Go(a,s),f=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ke.createElement(ie,{header:{title:mn.t("Add Custom Token")}},Ke.createElement(ae,null,Ke.createElement(lw,null,Ke.createElement("div",null,Ke.createElement(zs,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:mn.t("Select chain"),placeholder:mn.t("Select chain")}),Ke.createElement(hl,{size:"24"}),Ke.createElement(rw,{size:"large",variant:"label"},mn.t("Enter Address")),Ke.createElement(hl,{size:10}),Ke.createElement(nw,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:mn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Ke.createElement(tw,{color:"success",size:12}),onChange:T=>c(T.target.value)}),!h&&!!s&&Ke.createElement(Ke.Fragment,null,Ke.createElement(hl,{size:4}),Ke.createElement(Jv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ke.createElement(Rv,{id:"widget-add-custom-token-import-btn",disabled:f,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},mn.t("Import"))),Ke.createElement(Kn,{token:p,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:g,onExitImportModal:g})))}i(Dm,"AddCustomTokenPage");import{i18n as Kl}from"@lingui/core";import{useManager as Kb}from"@rango-dev/queue-manager-react";import{Alert as jb,Button as Xb,css as Xl,Divider as jl,IconButton as Eg,styled as Yb,Typography as Zb,WalletIcon as Jb}from"@rango-dev/ui";import Fe,{useEffect as sa,useLayoutEffect as Rb,useRef as ex,useState as cr}from"react";import{useNavigate as tx}from"react-router-dom";import{i18n as Po}from"@lingui/core";import{Alert as Mw,BalanceErrors as _w,Button as cf,ChevronLeftIcon as Dw,Divider as bl,MessageBox as $w,Typography as xl}from"@rango-dev/ui";import re,{useCallback as Fw,useEffect as pf,useMemo as Ow,useState as hn}from"react";import{useNavigate as Uw}from"react-router-dom";import{i18n as Tl}from"@lingui/core";import{Alert as mw,ChevronDownIcon as fw,CloseIcon as gw,Divider as Qm,IconButton as Hm,PasteIcon as hw,Typography as yw,WalletIcon as Sw}from"@rango-dev/ui";import $e,{useEffect as Cw,useRef as Tw}from"react";import Oi,{useRef as uw}from"react";import*as fn from"@radix-ui/react-collapsible";import{keyframes as $m,styled as Di}from"@rango-dev/ui";var yl=300,cw=$m({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),pw=$m({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Fm=Di(fn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Sl=Di(fn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),$i=Di(fn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${cw} ${yl}ms ease-out`},false:{animation:`${pw} ${yl}ms ease-out`}}}}),Fi=Di("div",{transition:`all ${yl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Ui(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=uw(null);return Oi.createElement(Fm,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&Oi.createElement(Sl,{className:"collapsible_trigger",onClick:a},s),Oi.createElement($i,{className:"collapsible_content",open:e},r),c==="bottom"&&Oi.createElement(Sl,{className:"collapsible_trigger",onClick:a},s))}i(Ui,"CustomCollapsible");import{darkTheme as Om,styled as Cl,TextField as dw}from"@rango-dev/ui";var Um=Cl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),zm=Cl(dw,{backgroundColor:"$neutral100",padding:"$15"}),qm=Cl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Om} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Om} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function Gm(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=S(),c=S().blockchains(),l=Fr(e.name,c),p=Tw(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!Go(e,r),f=i(()=>{a("")},"handleClear"),m=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),p?.current?.focus()}},"handlePaste"),T=i(()=>r?$e.createElement(Hm,{id:"widget-custom-destination-close-icon-btn",onClick:f,variant:"ghost"},$e.createElement(gw,{size:12,color:"gray"})):d?null:$e.createElement(Hm,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},$e.createElement(hw,{size:16})),"renderSuffix");return Cw(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),$e.createElement(Um,null,$e.createElement(Ui,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:$e.createElement(qm,{id:"widget-custom-destination-collapsible-btn"},$e.createElement("div",{className:"button__content"},$e.createElement(Sw,{size:18,color:"info"}),$e.createElement(Qm,{size:4,direction:"horizontal"}),$e.createElement(yw,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Tl.t("Send to a different address"))),$e.createElement(Fi,{orientation:n?"up":"down"},$e.createElement(fw,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},$e.createElement(zm,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Tl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:T(),onChange:y=>{let C=y.target.value;a(C)}})),h&&$e.createElement($e.Fragment,null,$e.createElement(Qm,{size:4}),$e.createElement(mw,{variant:"alarm",type:"error",title:Tl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(Gm,"CustomDestination");import{css as kw,IconButton as vw,SelectableWalletButton as ww,styled as lo}from"@rango-dev/ui";var Vm=lo("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Km=lo("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),jm=lo(ww,{justifyContent:"center"}),Xm=lo("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Ym=lo(vw,{position:"absolute",left:"$20"}),Zm=lo("div",{paddingTop:"$20"}),Jm=kw({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Rm=lo("div",{display:"flex"}),ef=lo("div",{overflow:"visible",width:"100%"});import{i18n as vl}from"@lingui/core";import{warn as Aw}from"@rango-dev/logging-core";import{Divider as Nw,makeInfo as Bw,SelectableWallet as Ww,Typography as sf,WalletState as zi}from"@rango-dev/ui";import rt,{useEffect as lf,useState as Jn}from"react";import{Image as Ew,MessageBox as Iw}from"@rango-dev/ui";import Zn from"react";import{keyframes as bw,styled as kl}from"@rango-dev/ui";var tf=kl("div",{position:"relative"}),xw=bw({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),of=kl("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${xw} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),nf=kl("div",{"& img":{borderRadius:"50%"}});import{i18n as gn}from"@lingui/core";function rf(t,e){switch(t){case"in-progress":return{type:"loading",title:gn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:gn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:gn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:gn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:gn.t("Request Rejected"),description:gn.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(rf,"generateMessageByStatus");function af(t){let{status:e,displayName:o,image:n}=t,r=rf(e,o),a=e=="in-progress";return Zn.createElement(Iw,{type:r.type,title:r.title,description:r.description,icon:a?Zn.createElement(tf,null,Zn.createElement(nf,null,Zn.createElement(Ew,{src:n,size:45})),Zn.createElement(of,null)):void 0})}i(af,"ExperimentalChainStatus");var Lw=7,Pw=3e3;function wl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{blockchains:l,connectedWallets:p}=S(),[u,d]=Jn(),[g,h]=Jn(null),[f,m]=Jn(!1),[T,y]=Jn(null),{suggestAndConnect:C}=qi(),{list:k}=vt({chain:e}),[v,x]=Jn(k),A=k.length,I=a&&A-a>0,E=i(async w=>{m(!1),y("in-progress");try{await C(w.walletType,w.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");lf(()=>{x(w=>{let B=k.findIndex(M=>n(M.type,e));return I&&B>1?[k[B]].concat(k.filter((M,$)=>$!==B)):w.map(M=>k.find($=>$.type===M.type)??M)})},[JSON.stringify(k)]);let b=document.getElementById(tt.SWAP_BOX_ID);return lf(()=>{let w=null;return(T==="completed"||T==="rejected")&&(w=setTimeout(()=>y(null),Pw)),()=>{w&&clearTimeout(w)}},[T]),rt.createElement(rt.Fragment,null,v.slice(0,a).map(w=>{let B=au({connectedWallets:p,walletType:w.type,chain:e}),M=w.state===zi.CONNECTED,$=B?oo(B,Lw):"",q=M&&!!w.needsNamespace&&!$,ee=Yr(l(),e),V=!p.find(ue=>ue.walletType===w.type&&ue.chain===e),L=ee&&V&&w.state===zi.CONNECTED,te=i(async()=>{w.state===zi.DISCONNECTED||q?d(w):L?(h({walletType:w.type,chain:e,address:B??""}),m(!0)):r({walletType:w.type,chain:e,address:B??""})},"onSelectableWalletClick"),le=Bw(w.state),J=i(()=>L?vl.t({id:"Add {chain} chain",values:{chain:e}}):q?vl.t("Chain not connected"):$||le.description,"getWalletDescription"),X=i(()=>w.state===zi.CONNECTED?q?"neutral600":"neutral700":le.color,"getWalletDescriptionColor"),j=g?.chain?Fr(g.chain,l()):void 0;return rt.createElement(rt.Fragment,{key:`${w.title}_${j}`},!!g&&rt.createElement(R,{id:"widget-wallets-list-watermarked-modal",open:!!g&&f,container:b,onClose:()=>{h(null)}},rt.createElement(Is,{id:"widget-wallets-list-experimental-chain-container",displayName:j,onConfirm:()=>{E(g)}})),T&&rt.createElement(R,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!T,onClose:y.bind(null,null),container:b},rt.createElement(af,{status:T,displayName:j,image:w.image}),rt.createElement(Nw,{direction:"vertical",size:32})),rt.createElement(Ww,{key:w.type,id:"widget-wallets-list-selectable-wallet-btn",description:J(),descriptionColor:X(),onClick:te,selected:n(w.type,e),disabled:!c,...w}))}),rt.createElement(Hn,{id:"widget-wallets-list-stateful-connect-modal",wallet:u,options:{defaultSelectedChains:o||[e]},onClose:()=>{d(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):Aw(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),I&&rt.createElement(jm,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},rt.createElement(sf,{variant:"label",size:"medium"},vl.t("Show more wallets"),rt.createElement(sf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",A-(a??0)))))}i(wl,"WalletList");var zw=2;function uf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Uw(),c=S().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:h}=O(),{config:f,connectedWallets:m,setWalletsAsSelected:T}=S(),[y,C]=hn(""),[k,v]=hn([]),[x,A]=hn(""),[I,E]=hn(!!g),b=Ow(()=>wo({filter:"all",quote:l}),[l]),w=wo({filter:"required",quote:l}),B=c.find(W=>W.name===l?.swaps[l?.swaps.length-1].to.blockchain),M=i(W=>w.includes(W),"isWalletRequiredFor"),$=Fw(()=>m.filter(W=>W.selected&&b.includes(W.chain)),[m,b]),[q,ee]=hn($()),[V,L]=hn([]),te=i((W,Q)=>L(K=>K.concat({blockchain:W,walletType:Q})),"addNextSelectedWallets"),le=k.length>0,J=i((W,Q)=>!!q.find(K=>K.walletType===W&&K.chain===Q&&K.selected&&(M(Q)||!M(Q)&&!g)),"isSelected"),X=i((W,Q,K)=>{let Y=!1;return W.map(ye=>{if(ye.chain===Q){let Qe=ye.selected;return!Y&&K?(Y=!0,Qe=!0):K||(Qe=!1),{...ye,selected:Qe}}return ye})},"updateSelectableWallets"),j=i(W=>{E(W),W?M(B?.name??"")||ee(Q=>X(Q,B?.name||"",!1)):(h(""),ee(Q=>X(Q,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),ue=i(W=>{if(y&&C(""),J(W.walletType,W.chain))return;let K=m.find(Y=>Y.walletType===W.walletType&&Y.chain===W.chain);K&&(n(),W.chain===B?.name&&I&&!M(B.name)&&(E(!1),h(null)),ee(Y=>Y.filter(ye=>ye.chain!==W.chain).concat({...K,selected:!0})))},"onChange"),de=i(()=>{let W=q.filter(Q=>Q.selected);T(W),p(W),d(!0),o()},"onConfirmBalance"),ke=i(async()=>{v([]),A("");let W=await r?.({selectedWallets:q.filter(K=>K.selected),customDestination:g}),Q=W.warnings;Q?.balance?.messages&&v(Q.balance.messages),W.error&&A(pd(W.error)),!W.error&&!Q?.balance?.messages.length?de():v(Q?.balance?.messages??[])},"onConfirmWallets");pf(()=>{ee(W=>{let Q=[];return W.forEach(K=>{!m.some(ye=>ye.chain===K.chain&&ye.walletType===K.walletType&&ye.address===K.address)||Q.push(K)}),Q=Q.concat(m.filter(K=>!!!Q.find(ye=>ye.chain===K.chain)&&K.selected&&b.includes(K.chain))),Q})},[m,b]),pf(()=>{let W=[];V.length>0&&(V.forEach(Q=>{let K=m.find(Y=>Y.chain===Q.blockchain&&Y.walletType===Q.walletType);K?ue(K):W.push(Q)}),L(W))},[m,V]);let H=document.getElementById(tt.SWAP_BOX_ID);return re.createElement(R,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:H,...!y&&{styles:{container:{height:"100%"}},footer:re.createElement(Rm,null,re.createElement(cf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Od(a,I,g,l,q,B),onClick:ke,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Po.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:re.createElement(Xm,null,re.createElement(Ym,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},re.createElement(Dw,{size:16})),re.createElement(xl,{variant:"headline",size:"small"},Po.t({id:"Your {blockchainName} wallets",values:{blockchainName:gt(y,c)}})))},anchor:"center"},re.createElement(R,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:le,onClose:v.bind(null,[]),container:H},re.createElement($w,{title:Po.t("Insufficient account balance"),type:"error",description:re.createElement(_w,{messages:k??[]})},re.createElement(cf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:de},Po.t("Proceed anyway")))),y&&re.createElement(Zm,null,re.createElement("div",{className:Jm()},re.createElement(wl,{chain:y,quoteChains:b,isSelected:J,selectWallet:ue,onShowMore:()=>C(y),onConnect:W=>{te(y,W)}}))),!y&&re.createElement(re.Fragment,null,x&&re.createElement(re.Fragment,null,re.createElement(Mw,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Po.t(x)}),re.createElement(bl,{size:12})),re.createElement(ef,null,b.map((W,Q)=>{let K=c.find(Oe=>Oe.name===W),Y=`wallet-${Q}`,ye=Q===b.length-1,Qe=ye&&B&&f?.customDestination!==!1;return re.createElement("div",{key:Y},re.createElement(Vm,null,re.createElement(xl,{variant:"title",size:"xmedium"},Po.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),re.createElement(xl,{variant:"label",color:"$neutral700",size:"medium"},Po.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),re.createElement(bl,{size:24}),re.createElement(Km,null,re.createElement(wl,{chain:W,quoteChains:b,isSelected:J,selectWallet:ue,limit:zw,onShowMore:()=>C(K?.name??""),onConnect:Oe=>{te(W,Oe)}})),!ye&&re.createElement(bl,{size:32}),Qe&&re.createElement(Gm,{blockchain:B,open:I,handleOpenChange:j}))}))))}i(uf,"ConfirmWalletsModal");import{i18n as lb}from"@lingui/core";import{Alert as cb,Button as pb,Divider as Bf,InfoIcon as ub}from"@rango-dev/ui";import Ue from"react";import{Alert as Hw,Button as Gw,Divider as Al,NoRouteIcon as Vw,RefreshIcon as Kw,Typography as Sf}from"@rango-dev/ui";import pt from"react";import{i18n as df}from"@lingui/core";var qw=24,Qw=60;function mf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ne().genericServerError,action:{onClick:n,title:df.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ne().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:df.t("Reset")}},description:ne().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ne().noResultError.description}}i(mf,"makeInfo");var El=(o=>(o[o.small=qw]="small",o[o.large=Qw]="large",o))(El||{}),Il=(o=>(o.small="small",o.large="medium",o))(Il||{});import{styled as Qi}from"@rango-dev/ui";var ff=Qi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),gf=Qi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),hf=Qi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),yf=Qi("div",{padding:"$6 $0"});function Rn(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=S().getDisabledLiquiditySources(),s=S().toggleAllLiquiditySources,c=S().swappers(),l=mf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),pt.createElement(ff,{id:"widget-no-result-container"},pt.createElement(Vw,{size:El[n],color:"gray"}),pt.createElement(Al,{size:4}),pt.createElement(Sf,{variant:"title",size:Il[n]},ne().noResultError.title),n==="large"&&pt.createElement(Al,{size:4}),!!l.description&&pt.createElement(gf,{size:n},pt.createElement(Sf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),pt.createElement(Al,{size:n==="large"?"24":"4"}),!!l.alert&&pt.createElement(hf,{size:n},pt.createElement(Hw,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&pt.createElement(Gw,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:pt.createElement(yf,null,pt.createElement(Kw,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Rn,"NoResult");import{i18n as tr}from"@lingui/core";import{Button as Yw,Divider as Zw,MessageBox as Jw,Typography as Rw,WarningIcon as eb}from"@rango-dev/ui";import Gt from"react";import{Typography as wf}from"@rango-dev/ui";import Bl from"react";import{Button as jw,darkTheme as Xw,styled as er}from"@rango-dev/ui";var Cf=er("div",{width:"100%"}),Nl=er("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Tf=er("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Xw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),kf=er("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),vf=er(jw,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function bf(t){let{title:e,value:o,valueColor:n}=t;return Bl.createElement(Tf,null,Bl.createElement(wf,{size:"medium",variant:"label",className:"_title"},e),Bl.createElement(wf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(bf,"QuoteErrorsModalItem");function xf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:tr.t("Swapping"),value:_(r.inputUsdValue,4,4)},{title:tr.t("Gas cost"),value:_(r.totalFee,2,2)},{title:tr.t("Receiving"),value:_(r.outputUsdValue,4,4)},{title:tr.t("Price impact"),value:_(r.priceImpact,2,2),valueColor:`${s}500`}];return Gt.createElement(R,{id:"widget-high-value-loss-warning-modal",footer:Gt.createElement(Yw,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Gt.createElement(eb,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},Gt.createElement(Jw,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Gt.createElement(Nl,null,Gt.createElement(Zw,{size:"4"}),Gt.createElement(Rw,{size:"small",variant:"title"},tr.t("Details")),Gt.createElement(Nl,null,c.map((l,p)=>Gt.createElement(bf,{key:p,...l})))))}i(xf,"HighValueLossWarningModal");import{i18n as yn}from"@lingui/core";function Ef(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=yn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=yn.t("Increase")),o;if(t){switch(t.type){case 0:{Ht(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().highValueLossError.title;break}case 4:{o.title=yn.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=ne().unknownPriceError.title;break}case 2:{o.title=yn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=yn.t("Increase");break}case 3:{o.title=yn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Ef,"makeAlerts");function If(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(If,"getRequiredSlippage");import{i18n as Sn}from"@lingui/core";import{Button as tb,Divider as Wl,MessageBox as ob,WarningIcon as nb}from"@rango-dev/ui";import uo from"react";import{useNavigate as rb}from"react-router-dom";function Af(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=rb();return uo.createElement(R,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},uo.createElement(ob,{type:"warning",title:r.type===3?Sn.t("High slippage"):Sn.t("Low slippage"),description:r.type===3?Sn.t("Caution, your slippage is high. Your trade may be front run."):Sn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},uo.createElement(Wl,{size:18}),uo.createElement(Wl,{size:32}),uo.createElement(vf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},uo.createElement(nb,{color:"white",size:16}),Sn.t("Swap anyway")),uo.createElement(Wl,{size:10}),uo.createElement(tb,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+F.settings)},Sn.t("Change Slippage"))))}i(Af,"SlippageWarningModal");import{Button as ib,MessageBox as ab,WarningIcon as sb}from"@rango-dev/ui";import Hi from"react";function Nf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Hi.createElement(R,{id:"widget-unknown-price-warning-modal",footer:Hi.createElement(ib,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Hi.createElement(sb,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Hi.createElement(ab,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(Nf,"UnknownPriceWarningModal");function or(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:d,onChangeSlippage:g}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,m=Ef(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let T=!!m&&!s,y=i(C=>{if(C==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,v=If(e,k);g?.(v)}else C==="change-settings"&&d()},"onclickActionButton");return Ue.createElement(Ue.Fragment,null,f&&Ue.createElement(Ue.Fragment,null,Ue.createElement(Bf,{size:10}),Ue.createElement(Rn,{skipAlerts:s,error:o,fetch:c})),T&&Ue.createElement(Cf,null,Ue.createElement(Bf,{size:10}),Ue.createElement(cb,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Ue.createElement(kf,{onClick:l},Ue.createElement(ub,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Ue.createElement(pb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>y(m.action)},m.actionButtonTitle||lb.t("Change"))}})),e&&Ue.createElement(Ue.Fragment,null,e.type===0&&Ue.createElement(xf,{...h,warning:e}),(e.type===3||e.type===2)&&Ue.createElement(Af,{...h,warning:e}),e.type===1&&Ue.createElement(Nf,{...h,warning:e})))}i(or,"QuoteWarningsAndErrors");import Ub from"bignumber.js";import na from"react";import{i18n as Mo}from"@lingui/core";import{Alert as Ib,Divider as Tn,FullExpandedQuote as Ab,InfoIcon as Nb,NumericTooltip as rg,QuoteTag as Bb,StepDetails as Wb,TokenAmount as Lb,Typography as kn}from"@rango-dev/ui";import Ul from"bignumber.js";import U,{useRef as Pb,useState as Mb}from"react";import{styled as Ll}from"@rango-dev/ui";var Pl=Ll("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Wf=Ll("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Lf=Ll("div",{width:"100%",display:"flex"});import*as Gi from"@radix-ui/react-collapsible";import{Button as db,css as nr,darkTheme as Le,Image as Pf,styled as Ze,Typography as mb}from"@rango-dev/ui";var fb=300,Mf=Ze(Gi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Le} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),_f=nr({padding:"$10 $15"}),Df=Ze(db,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Le} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Le} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Le} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),$f=Ze("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${Le} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Le} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Le} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Le} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Le} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Le} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Le} &`]:{backgroundColor:"$neutral400"}}}}]}),Ff=nr({width:"100%",padding:"$15 $15 $10 $15"}),Of=nr({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Cn=nr({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Uf=nr({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Le} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),zf=Ze(Gi.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Pf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Pf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Le} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),qf=Ze("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Qf=Ze($i,{width:"100%",background:"inherit"}),Ml=Ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${fb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),aQ=Ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Hf=Ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Le} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Gf=Ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),_l=Ze(mb,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Vf=Ze("div",{display:"flex",flexWrap:"wrap"}),Dl=Ze("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Kf=Ze("div",{display:"flex"}),Vi=Ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Le} &`]:{borderTopColor:"$neutral800"}});import{i18n as Mt}from"@lingui/core";import{ChevronDownIcon as hb,CloseIcon as yb,Divider as Xi,IconButton as Sb,NumericTooltip as Cb,QuoteCost as Tb,Typography as xt}from"@rango-dev/ui";import Z,{useState as Zf}from"react";import{css as gb,styled as Ki}from"@rango-dev/ui";var ji=Ki("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),$l=Ki("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),jf=Ki("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Xf=Ki("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Yf=gb({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var kb=i(t=>t.fee.isZero()?null:Z.createElement(ji,null,Z.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(xt,{variant:"label",size:"medium"},"$",_(t.fee,4,4))),"NonPayableFee");function Fl(t){let[e,o]=Zf(!1),[n,r]=Zf(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:g=!1}=t,h=s?.swaps??[],f=g?vo():N(),m=Wd(h),T=_(c,2,2);return Z.createElement(Z.Fragment,null,Z.createElement(Tb,{onClickFee:d?y=>{y.stopPropagation(),o(!e)}:void 0,fee:T,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?Mt.t("View more info"):void 0,tooltipContainer:f}),Z.createElement(R,{id:"widget-quote-cost-explanation-modal",container:f,open:e,anchor:g?"center":"bottom",styles:{container:{maxWidth:g?"484px":"unset"}},header:Z.createElement(Xf,{style:{textAlign:g?"left":"center"}},Z.createElement(xt,{variant:"title",size:"medium"},Mt.t("Gas & Fee Explanation")),Z.createElement(Sb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Z.createElement(yb,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(jf,null,Z.createElement(xt,{variant:"title",size:"small"},Mt.t("Details")),Z.createElement(Xi,{size:10}),Object.entries(m.payable).flatMap(([y,C])=>C.map((k,v)=>{let x=`payable-fee-${v}`,A=Ms(k);return Z.createElement(ji,{key:x},Z.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},Ns(y,Mt.t)),Z.createElement(Cb,{content:k.amount,container:f},Z.createElement(xt,{variant:"label",size:"medium"},_(k.amount,2,2),k.asset.symbol," ($",_(A,4,4),")")))})),Z.createElement(ji,{className:"total_payable_fee"},Z.createElement(xt,{variant:"label",size:"medium"},Mt.t("Total Payable Fee")),Z.createElement(xt,{variant:"label",size:"medium"},"$",_(c,4,4))),Z.createElement($l,null),!!Object.keys(m.nonePayable).length&&Z.createElement(Ui,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:Z.createElement("div",{className:Yf()},Z.createElement(xt,{size:"small",variant:"body",color:"neutral700"},n?Mt.t("Hide non-payable fees"):Mt.t("Show non-payable fees")),Z.createElement(Xi,{size:4,direction:"horizontal"}),Z.createElement(Fi,{orientation:n?"up":"down"},Z.createElement(hb,{size:12,color:"gray"}))),open:n},Z.createElement(xt,{size:"small",variant:"title"},Mt.t("Description")),Z.createElement(Xi,{size:4}),Z.createElement(xt,{size:"small",variant:"body",color:"neutral700"},Mt.t(`The following fees are considered in the transaction output and
|
|
2
|
+
you won\u2019t need to pay extra gas for them.`)),Z.createElement(Xi,{size:10}),Object.entries(m.nonePayable).map(([y,C],k)=>{let v=Bd(C),x=Ns(y,Mt.t),A=`non-payable-fee-${k}`;return Z.createElement(kb,{key:A,fee:v,label:x})}),Z.createElement($l,null)))))}i(Fl,"QuoteCostDetails");import{i18n as eg}from"@lingui/core";import{TokenAmount as tg}from"@rango-dev/ui";import Yi from"react";import{css as vb,styled as wb}from"@rango-dev/ui";var Jf=wb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Rf=vb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function rr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Yi.createElement(Jf,null,Yi.createElement(tg,{direction:"horizontal",label:eg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Yi.createElement("div",{className:Rf()}),Yi.createElement(tg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:eg.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(rr,"QuoteSummary");import{i18n as og}from"@lingui/core";import{ChevronDownIcon as bb,ChevronRightIcon as xb,Divider as Ol,Image as Eb,Tooltip as ea,Typography as Zi}from"@rango-dev/ui";import z from"react";var Ji=4,Ri=6,ir=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return z.createElement(ea,{container:c,side:"bottom",sideOffset:4,open:r,content:e},z.createElement(qf,{className:n,state:a},z.createElement(Eb,{src:o,size:16})))},"ImageComponent");function ng(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),p=r.length,u=Td(r),{isTablet:d,isMobile:g}=un();return z.createElement(zf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(f=>!f)}},z.createElement("div",{className:Cn()},z.createElement(Zi,{variant:"body",size:"xsmall"},og.t("Via:")),z.createElement(Ol,{direction:"horizontal",size:4}),r.map((h,f)=>{let m=`item-${f}`,T=z.createElement(Ml,null,z.createElement(xb,{size:12,color:"black"}));return g||d?z.createElement(z.Fragment,{key:m},z.createElement(ir,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),f!==p-1&&z.createElement(z.Fragment,null,T)):z.createElement(z.Fragment,{key:m},p<=Ji||p>Ji&&f<Ji-1?z.createElement(z.Fragment,null,z.createElement(ir,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),f!==p-1&&z.createElement(z.Fragment,null,T)):f===Ji-1&&z.createElement(ea,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:Cn()},T,r.map((y,C)=>{let k=`image-${C}`;return C>=f&&z.createElement(z.Fragment,{key:k},z.createElement(ir,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),C!==p-1&&z.createElement(z.Fragment,null,T))}))},z.createElement(Dl,{state:r.find((y,C)=>C>=f&&(y.state==="error"||y.state==="warning"))?.state},z.createElement(Zi,{size:"xsmall",variant:"body"},"+",p-f))))})),z.createElement("div",{className:Cn()},z.createElement("div",{className:"blockchains_section"},z.createElement("div",{className:Cn()},z.createElement(Zi,{variant:"body",size:"xsmall"},og.t("Chains:")),z.createElement(Ol,{direction:"horizontal",size:4}),u.map((h,f)=>z.createElement(z.Fragment,{key:h.displayName},u.length<=Ri||u.length>Ri&&f<Ri-1?z.createElement(ea,{container:l,side:"bottom",content:h.displayName,sideOffset:4},z.createElement(ir,{content:"",src:h.image??"",open:!1,className:f!==0?"blockchainImage":""})):f===Ri-1&&z.createElement(ea,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:Cn()},u.map((m,T)=>T>=f&&z.createElement(ir,{key:m.displayName,content:"",src:m.image??"",open:!1,className:T>f?"blockchainImage":"",container:c})))},z.createElement(Dl,{className:"blockchainImage"},z.createElement(Zi,{size:"xsmall",variant:"body"},"+",u.length-f))))),z.createElement(Ol,{direction:"horizontal",size:32}))),z.createElement(Ml,{orientation:a?"up":"down"},z.createElement(bb,{size:12,color:"black"}))))}i(ng,"QuoteTrigger");function zl(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:d=!1,container:g}=t,h=S().blockchains(),{findToken:f}=S(),m=S().swappers(),{customSlippage:T,slippage:y}=S(),C=T||y,[k,v]=Mb(t.expanded),x=Pb(null),A=_(o.value,6,6),I=_(n.value,6,6),E=n.usdValue?_(n.usdValue,4,4):"",b=Qt(o.usdValue,n.usdValue??null),w=_(b,2,2),B=Ht(b??0),M=i((de,ke)=>de.map((H,W)=>{let Q,K=r?.type===3&&r.swap.swapperId===H.swapperId,Y=r?.type===4&&!!r.recommendedSlippages?.[W],ye=a?.type===2&&!!a.recommendedSlippages?.[W],Qe=K||Y,Oe=ye;Qe?Q="error":Oe&&(Q="warning");let kt=Qe?Mo.t("Slippage Error"):Mo.t("Slippage Warning");return K&&(kt=Mo.t("Bridge Limit Error")),{swapper:{displayName:In(H.swapperId,m)??"",image:H.swapperLogo},from:{token:{displayName:H.from.symbol,image:H.from.logo},chain:{displayName:gt(H.from.blockchain,h)??"",image:H.from.blockchainLogo},price:{value:W===0&&!ke?_(o.value,6,6):_(H.fromAmount,6,6),usdValue:_((H.from.usdPrice??0)*parseFloat(H.fromAmount),4,4),realValue:W===0?o.value:H.fromAmount,realUsdValue:new Ul(H.from.usdPrice??0).multipliedBy(H.fromAmount).toString()}},to:{token:{displayName:H.to.symbol,image:H.to.logo},chain:{displayName:gt(H.to.blockchain,h)||"",image:H.to.blockchainLogo},price:{value:_(H.toAmount,6,6),usdValue:_((H.to.usdPrice??0)*parseFloat(H.toAmount),4,4),realValue:H.toAmount,realUsdValue:new Ul(H.to.usdPrice??0).multipliedBy(H.toAmount).toString()}},state:Q,alerts:Qe||Oe?U.createElement(Wf,{dense:d},U.createElement(Ib,{variant:"alarm",type:Qe?"error":"warning",title:kt,id:"widget-quote-footer-step-alarm-alert",footer:U.createElement(Lf,null,K&&U.createElement("div",null,U.createElement(kn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(Tn,{direction:"vertical",size:2}),U.createElement(kn,{size:"xsmall",variant:"body",color:"neutral900"},Mo.t({id:"Yours: {amount} {symbol}",values:{amount:_(H.fromAmount,6,6),symbol:H?.from.symbol}}))),(Y||ye)&&!K&&U.createElement("div",null,U.createElement(kn,{size:"xsmall",variant:"body",color:"neutral900"},Mo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[W]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[W]}}})),U.createElement(Tn,{direction:"vertical",size:2}),U.createElement(kn,{size:"xsmall",variant:"body",color:"neutral900"},Mo.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Nn(H.estimatedTimeInSeconds),fee:_(Ps(H,f),2,2),internalSwaps:H.internalSwaps?M(H.internalSwaps):void 0}}),"getQuoteSteps"),$=M(e?.swaps??[]),q=$.length,ee=g||N(),V=vd(t.quote.tags||[]),L=!!u,te=Kr(e?.swaps),le=Nn(te),J=ki(e?.swaps??[],f),X=_(J,2,2),j=J.gte(new Ul(dd)),ue=te/fd>=md;return d?U.createElement(Ab,{selected:c,fee:X,time:le,tooltipContainer:vo(),steps:$,tags:V,id:"widget-quote-full-expanded-quote-container",quoteCost:U.createElement(Fl,{quote:e,fullExpandedMode:!0,time:le,fee:J,feeWarning:j,timeWarning:ue,showModalFee:p,steps:q}),percentageChange:w,warningLevel:B,outputPrice:{value:I,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):U.createElement($f,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},U.createElement("div",{className:Ff()},!l&&V.length?U.createElement(U.Fragment,null,U.createElement(Kf,null,V.map((de,ke)=>{let H=`${de.value}_${ke}`;return U.createElement(U.Fragment,{key:H},U.createElement(Bb,{label:de.label,value:de.value}),U.createElement(Tn,{size:4,direction:"horizontal"}))})),U.createElement(Vi,null),!L&&U.createElement(Tn,{size:4})):null,U.createElement("div",{id:"portal-root",className:Of()},U.createElement(Fl,{quote:e,time:le,fee:J,feeWarning:j,timeWarning:ue,showModalFee:p,steps:q}),L&&U.createElement(Df,{onClick:de=>{de.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(kn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Mo.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:Uf()},U.createElement(Gf,null,U.createElement(Nb,{size:12,color:"gray"})),U.createElement(Vf,null,U.createElement(_l,{size:"small",variant:"body"},`${A} ${$[0].from.token.displayName} = `),U.createElement(rg,{content:n.value,container:ee,open:n.value?void 0:!1},U.createElement(_l,{size:"small",variant:"body"},"\xA0",`${I} ${$[$.length-1].to.token.displayName}`))),U.createElement(rg,{content:n.usdValue,container:ee},U.createElement(Tn,{size:2,direction:"horizontal"}),U.createElement(kn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&U.createElement(Lb,{id:"widget-quote-token-amount-container",tooltipContainer:ee,type:"output",direction:"vertical",price:{value:I,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:$[q-1].to.token.displayName,image:$[q-1].to.token.image},chain:{image:$[q-1].to.chain.image},percentageChange:w,warningLevel:B}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(rr,{from:$[0].from,to:$[q-1].to,percentageChange:w,warningLevel:B}),U.createElement(Tn,{size:4}))),U.createElement(Mf,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},U.createElement(ng,{type:s,quoteRef:x,selected:c,setExpanded:v,container:ee,expanded:k,steps:$}),U.createElement(Qf,{open:k},U.createElement(Hf,null),U.createElement("div",{className:_f()},$.map((de,ke)=>{let H=`item-${ke}`;return U.createElement(Wb,{type:"quote-details",className:"widget-quote-step-details-container",key:H,tooltipContainer:ee,step:de,hasSeparator:ke!==$.length-1,state:de.state})})))))}i(zl,"Quote");import{Divider as Fb,Skeleton as Ob}from"@rango-dev/ui";import Xt from"react";import{darkTheme as _b,styled as ta}from"@rango-dev/ui";var ig=ta("div",{$$color:"$colors$neutral100",[`.${_b} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),ag=ta("div",{paddingTop:"$2"}),sg=ta("div",{paddingLeft:"$8"}),lg=ta("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Sg,Divider as Et,Skeleton as ut}from"@rango-dev/ui";import G from"react";import{css as Db,styled as jt}from"@rango-dev/ui";var ql=jt("div",{display:"flex"}),cg=jt("div",{padding:"$10 $0 $20"}),pg=jt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),ug=jt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),dg=jt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),mg=jt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),fg=jt("div",{width:"65%",display:"flex",justifyContent:"start"}),gg=jt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),hg=jt("div",{padding:"$15 $0 $15 $0"}),yg=Db({display:"flex",justifyContent:"space-between",alignItems:"center"});function ar(t){let{type:e,tagHidden:o=!0}=t,n=G.createElement(dg,null,G.createElement(fg,null,G.createElement(Sg,{loading:!0,size:"medium"}),G.createElement(Et,{size:8,direction:"horizontal"}),G.createElement(gg,null,G.createElement(ut,{height:10,width:60,variant:"rounded"}),G.createElement(Et,{size:4}),G.createElement(ut,{height:15,variant:"rounded"}))),G.createElement(ut,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return G.createElement("div",null,!o&&G.createElement(G.Fragment,null,G.createElement(ql,null,G.createElement(ut,{width:65,height:20,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:65,height:20,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:65,height:20,variant:"rounded"})),G.createElement(Vi,null),!r&&G.createElement(Et,{size:4})),G.createElement("div",{className:yg()},G.createElement(ql,null,G.createElement(ut,{width:60,height:10,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:60,height:10,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:60,height:10,variant:"rounded"})),r&&G.createElement(ut,{width:85,height:24,variant:"rounded"})),e==="basic"&&G.createElement(cg,null,G.createElement(ut,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(pg,null,G.createElement(ug,null,G.createElement(Sg,{loading:!0,size:"medium"}),G.createElement(Et,{direction:"horizontal",size:4}),G.createElement(ut,{height:15,width:150,variant:"rounded"})),G.createElement(Et,{size:10}),G.createElement(ut,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(Et,{size:4}),G.createElement(hg,null,n,G.createElement(mg,null),n),G.createElement(Et,{size:12})))}i(ar,"QuoteSummarySkeleton");import{ChainToken as wg,Divider as Hl,NextIcon as $b,Skeleton as oa}from"@rango-dev/ui";import Pe from"react";import{styled as sr}from"@rango-dev/ui";var Cg=sr("div",{display:"flex",alignItems:"start"}),Tg=sr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ql=sr("div",{display:"flex",alignItems:"center",flexGrow:1}),kg=sr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),vg=sr("div",{display:"flex",alignItems:"center"});function _t(t){let{separator:e=!0}=t;return Pe.createElement(Pe.Fragment,null,Pe.createElement(vg,null,Pe.createElement(oa,{height:22,width:22,variant:"circular"}),Pe.createElement(Hl,{direction:"horizontal",size:8}),Pe.createElement(oa,{height:15,width:148,variant:"rounded"})),Pe.createElement(Cg,null,Pe.createElement(lg,{hideSeparator:!e}),Pe.createElement(Tg,{extraSpace:e},Pe.createElement(Ql,null,Pe.createElement(wg,{size:"small",loading:!0}),Pe.createElement(Hl,{direction:"horizontal",size:8}),Pe.createElement(oa,{height:12,variant:"rounded"})),Pe.createElement(kg,null,Pe.createElement($b,{color:"gray",size:16})),Pe.createElement(Ql,null,Pe.createElement(wg,{size:"small",loading:!0}),Pe.createElement(Hl,{direction:"horizontal",size:8}),Pe.createElement(oa,{height:12,variant:"rounded"})))))}i(_t,"StepSkeleton");function lr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Xt.createElement(ig,{expanded:o,rounded:e!=="basic"},Xt.createElement(ar,{type:e,tagHidden:n}),Xt.createElement(ag,null,Xt.createElement(Ob,{height:15,variant:"rounded"})),o&&Xt.createElement(sg,null,Xt.createElement(Fb,{size:24}),Xt.createElement(_t,null),Xt.createElement(_t,null),Xt.createElement(_t,{separator:!1})))}i(lr,"QuoteSkeleton");function _o(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:d,onClickAllRoutes:g,fullExpandedMode:h=!1,container:f}=t,{inputAmount:m,inputUsdValue:T}=O(),y=e?.outputAmount?new Ub(e?.outputAmount):null,C=e?St(e):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?na.createElement(Pl,null,na.createElement(lr,{tagHidden:c,type:o,expanded:s})):v?na.createElement(Pl,{onClick:()=>l?.(e),id:d},na.createElement(zl,{quote:e,error:r,container:f,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:g,fullExpandedMode:h,input:{value:m,usdValue:T?.toString()??""},output:{value:y?.toString()??"",usdValue:C?.toString()??""}})):null}i(_o,"QuoteInfo");import{warn as Hb}from"@rango-dev/logging-core";import{calculatePendingSwap as Gb}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Vb}from"react";import{useRef as zb,useState as qb}from"react";var Qb=2e3;function ra({request:t}){let[e,o]=qb(!1),n=zb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,Qb)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(c,{signal:n.current.signal});return n.current=null,p}catch(p){if(l)return await a(c);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(ra,"useFetch");function bg(){let{fetch:t,loading:e,cancelFetch:o}=ra({request:async(n,r)=>await ct().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(bg,"useFetchConfirmQuote");function ia(t){if(!t.swaps)throw new Error(ne().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Gl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ia,"throwErrorIfResponseIsNotValid");function Gl(t){if(Id(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Ad(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=Ld(t);if(o){let n=vi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Gl,"getQuoteError");function xg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=sn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=_d(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(xg,"generateWarnings");function aa(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(aa,"handleQuoteErrors");function Vl(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=O(),{slippage:l,customSlippage:p}=S(),u=S().getDisabledLiquiditySources(),d=S().blockchains(),g=S().tokens(),{findToken:h}=S(),f=p||l,{fetch:m,cancelFetch:T,loading:y}=bg();return Vb(()=>T,[]),{loading:y,fetch:i(async k=>{let v=k.selectedWallets,x=k?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=v.reduce((E,b)=>(E[b.chain]=b.address,E),{}),I={requestId:a?.requestId||"",selectedWallets:A,destination:x||void 0};try{return await m(I,!0).then(E=>{let{result:b}=E;if(!b)throw new Error(E.error??"Error fetching updated quote");ia({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let w={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};r(w);let B={slippage:f.toString(),disabledSwappersGroups:u},M=xg({previousQuote:a??void 0,currentQuote:w,meta:{blockchains:d},selectedWallets:v,userSlippage:f,inputUsdValue:n,findToken:h});c();let $=!!M.balance,q=Gb(o.toString(),b,Md(v),B,!$,{blockchains:d,tokens:g});return{quote:w,swap:q,error:null,warnings:M}})}catch(E){let b=aa(E);return b.type!==2&&Hb(new Error("confirm swap error"),{tags:{...b,type:Xe[b.type],initialQuote:a,requestBody:I}}),{swap:null,error:b,warnings:null}}},"fetch"),cancelFetch:T}}i(Vl,"useConfirmSwap");var ox=Yb("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Eg}`]:{width:"$48",height:"$48"}}),nx=Xl({flexGrow:1,paddingRight:"$10"}),rx=Xl({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),ix=Xl({display:"flex",justifyContent:"space-between",alignItems:"center"});function Ig(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=tx(),[c,l]=cr(""),p=!n,[u,d]=cr(!1),[g,h]=cr(!1),{isActiveTab:f}=oe(),m=S().getDisabledLiquiditySources(),T=ex(m),{manager:y}=Kb(),{fetch:C,loading:k,cancelFetch:v}=Vl(),[x,A]=cr({swap:null,error:null,warnings:null}),[I,E]=cr(!1),b=i(async({selectedWallets:L,customDestination:te})=>{let le=await C?.({selectedWallets:L,customDestination:te});return A(le),le},"onConfirmSwap"),w=i(async()=>{if(x.swap&&n)try{await y?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let L=`../${F.swaps}/${x.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{h(!0),await w(),h(!1)},"onConfirm"),M=i(async()=>{x.warnings?.quote&&Cd(x.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),$=i(async()=>{A({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(L=>{A(L)}).catch(L=>console.error(L))},"onRefresh");sa(()=>{!!T.current.length&&!m.length&&$(),T.current=m},[m.length]),sa(()=>{p&&v()},[p]),sa(()=>{p&&d(p)},[p]),sa(()=>{p||C({selectedWallets:o,customDestination:r}).then(L=>A(L)).catch(L=>console.error(L))},[]),Rb(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=x.warnings?.quote??null,ee=x.error,V=[];if(c&&V.push(Fe.createElement(jb,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||ee){let L=`../${F.settings}`;V.push(Fe.createElement(or,{warning:q,error:ee,couldChangeSettings:!1,refetchQuote:$,skipAlerts:ee?.type===4||q?.type===2,showWarningModal:I,confirmationDisabled:!f,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await w()},onChangeSettings:()=>s(L)}))}return Fe.createElement(ie,{header:{title:Kl.t("Confirm Swap"),onWallet:()=>{let L=`../${F.wallets}`;s(L)}},footer:Fe.createElement(ox,null,Fe.createElement("div",{className:nx()},Fe.createElement(Xb,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||g,disabled:!!x.error||!f,onClick:M},Kl.t("Start Swap"))),Fe.createElement(Eg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||g,disabled:!f,onClick:d.bind(null,!0)},Fe.createElement(Jb,{size:24})))},u&&Fe.createElement(uf,{open:u,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:b}),Fe.createElement(ae,null,Fe.createElement("div",{className:ix()},Fe.createElement(Zb,{variant:"title",size:"small"},Kl.t("You get")),Fe.createElement("div",{className:rx()},Fe.createElement(Bi,{onClick:!k&&!u&&!I?$:void 0}))),Fe.createElement(jl,{size:"12"}),sm(V.map((L,te)=>({element:L,key:`alert-${te}`})),Fe.createElement(jl,{size:10})),V.length>0?Fe.createElement(jl,{size:10}):null,Fe.createElement(_o,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:x.error,loading:k,warning:x.warnings?.quote??null})))}i(Ig,"ConfirmSwapPage");import{i18n as Zt}from"@lingui/core";import{Button as sc,CustomTokensZeroStateDarkIcon as Ex,CustomTokensZeroStateIcon as Ix,DeleteIcon as Ax,Divider as gr,IconButton as Nx,MessageBox as Bx,NotFound as Wx,styled as cc}from"@rango-dev/ui";import ge,{useState as lc}from"react";import{useNavigate as Lx}from"react-router-dom";import{CloseIcon as sx,IconButton as lx,SearchIcon as cx,TextField as px}from"@rango-dev/ui";import pr from"react";import{styled as ax}from"@rango-dev/ui";var Ag=ax("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function It(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...d}=t,g=s.length?pr.createElement(lx,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},pr.createElement(sx,{color:"gray",size:10})):null;return p&&(g=p),pr.createElement(px,{prefix:pr.createElement(Ag,null,pr.createElement(cx,{color:"black"})),id:u,suffix:g,fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d})}i(It,"SearchInput");import{i18n as ac}from"@lingui/core";import{Button as fx,CustomTokenWarning as gx,darkTheme as Ug,Divider as Yt,ExternalLinkIcon as hx,Image as yx,ListItem as Sx,NotFound as Cx,PinIcon as Tx,Skeleton as Do,Typography as mr,VirtualizedList as kx}from"@rango-dev/ui";import P,{useState as vx}from"react";import{useTranslation as wx}from"react-i18next";import{Divider as Fg,ListItem as mx,Skeleton as dr}from"@rango-dev/ui";import At from"react";import{css as vn,darkTheme as Yl,ImageContainer as ux,ListItemButton as dx,styled as it,Typography as Ng}from"@rango-dev/ui";var Zl=vn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Jl=vn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Rl=vn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),ec=vn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Yl} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),tc=vn({}),oc=vn(),Bg=it("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),nc=it("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),la=it("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Jl}`]:{[`& .${ec}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${tc}`]:{bottom:"-15px"},[`& .${Zl}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Rl}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Wg=it(dx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),rc=it("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),ic=it(Ng,{}),Lg=it("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${oc}`]:{$$color:"$colors$neutral600",[`.${Yl} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ur=it("div",{display:"flex",alignItems:"end",flexDirection:"column"}),eV=it("div",{display:"flex",alignItems:"center"}),Pg=it("div",{position:"relative",[`& ${ux}`]:{borderRadius:"$xm",overflow:"hidden"}}),Mg=it("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),_g=it(Ng,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Dg=it("a",{"& svg:hover":{color:"$colors$info"}}),$g=it("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${Yl} &`]:{color:"$foreground"}}}});function Og(t){return At.createElement(la,null,Array.from(Array(t.size),e=>At.createElement(mx,{key:e,hasDivider:!0,start:At.createElement(dr,{variant:"circular",width:35,height:35}),end:At.createElement(ur,null,At.createElement(dr,{variant:"text",size:"large",width:70}),At.createElement(Fg,{size:4}),At.createElement(dr,{variant:"text",size:"medium",width:50})),title:At.createElement("div",null,At.createElement(dr,{variant:"text",size:"large",width:90}),At.createElement(Fg,{size:4}),At.createElement(dr,{variant:"text",size:"medium",width:90}))})))}i(Og,"LoadingTokenList");var bx=20,xx=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return P.createElement("div",{className:Jl()},o?P.createElement("div",{className:Zl()},o):P.createElement(nc,{className:Rl()},P.createElement(mr,{variant:"title",size:"xmedium"},r.symbol),P.createElement(Yt,{direction:"horizontal",size:4}),P.createElement(rc,{css:a},P.createElement(ic,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&P.createElement("div",{className:`${ec()} ${!o&&tc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",P.createElement(Yt,{size:4,direction:"horizontal"}),P.createElement(Dg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},P.createElement(hx,{size:12}))))},"renderDesc");function fr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=S().fetchStatus,u=S().blockchains(),{getBalanceFor:d,fetchingWallets:g}=S(),{isTokenPinned:h}=S(),{setFromToken:f,setToToken:m}=O(),{t:T}=wx(),y=Ve(),[C,k]=vx(null),v=i(()=>{c==="source"?f({token:C,meta:{blockchains:u}}):m({token:C,meta:{blockchains:u}})},"updateToken"),x=i(()=>{v(),y()},"handleImportToken"),A=i(b=>{if(b.customToken){let{customToken:B,...M}=b;return P.createElement(fx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),k({...M,warning:!0})},"handleClick")},P.createElement(mr,{variant:"body",size:"xsmall",color:"background"},T("import")))}let w=Zr(d(b));return s?s(b):g?P.createElement(ur,null,P.createElement(Do,{variant:"text",size:"large",width:70}),P.createElement(Yt,{size:4}),P.createElement(Do,{variant:"text",size:"medium",width:50})):w&&P.createElement(Lg,null,P.createElement(_g,{variant:"title",size:"small"},w.amount),P.createElement("div",null),w.usdValue&&P.createElement(mr,{variant:"body",className:oc(),size:"xsmall"},`$${w.usdValue}`))},"endRenderer"),I=i(()=>P.createElement(kx,{itemContent:b=>{let w=e[b];if(w==="skeleton")return P.createElement(Sx,{hasDivider:!0,start:P.createElement(Do,{variant:"circular",width:35,height:35}),end:P.createElement(ur,null,P.createElement(Do,{variant:"text",size:"large",width:70}),P.createElement(Yt,{size:4}),P.createElement(Do,{variant:"text",size:"medium",width:50})),title:P.createElement("div",null,P.createElement(Do,{variant:"text",size:"large",width:90}),P.createElement(Yt,{size:4}),P.createElement(Do,{variant:"text",size:"medium",width:90}))});let B=w.address||"",M=u.find(L=>L.name===w.blockchain);if(!M)return null;let $=Ys(M.color,"main"),q={$$color:$.main150,[`.${Ug} &`]:{$$color:$.main750},backgroundColor:"$$color"},ee={$$color:$.main750,[`.${Ug} &`]:{$$color:$.main150},color:"$$color"},V=i(()=>{typeof w!="string"&&!w.customToken&&n?.(w)},"handleClick");return P.createElement($g,null,P.createElement(Wg,{"tab-index":b,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:w.customToken,onClick:V,start:P.createElement(Pg,null,P.createElement(yx,{src:w.image===""?zr:w.image,size:30}),t.type!=="custom-token"&&h(w,t.type)&&P.createElement(Mg,null,P.createElement(Tx,{size:12,color:"gray"}))),title:M?.type==="COSMOS"||w.name||!w.name&&!B?P.createElement(nc,null,P.createElement(mr,{variant:"title",size:"xmedium"},w.symbol),P.createElement(Yt,{direction:"horizontal",size:4}),P.createElement(rc,{css:q},P.createElement(ic,{variant:"body",size:"xsmall",css:ee},w.blockchain)),l&&w.warning&&P.createElement(P.Fragment,null,P.createElement(Yt,{direction:"horizontal",size:4}),P.createElement(gx,{container:N()}))):void 0,description:typeof w!="string"&&M?.info&&B&&M.type!=="COSMOS"?xx({address:B,token:w,customCssForTag:q,customCssForTagTitle:ee,name:w.name,url:M.info.addressUrl.split("{wallet}").join(B)}):w.name||void 0,end:A(w)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=C?To(C?.blockchain,u):null;return P.createElement(P.Fragment,null,a&&P.createElement(P.Fragment,null,P.createElement(mr,{variant:"label",size:"large"},ac.t("Select Token")),P.createElement(Yt,{size:4})),P.createElement(Bg,null,P.createElement(Yt,{size:4}),p==="loading"&&P.createElement(Og,{size:bx}),p==="success"&&(e.length?P.createElement(P.Fragment,null,P.createElement(Kn,{token:C,address:C?.address??"",blockchain:E??void 0,onImport:x,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),P.createElement(la,{as:"ul"},I())):!!o&&P.createElement(Cx,{title:ac.t("No results found"),description:ac.t("Try using different keywords")}))))}i(fr,"TokenList");var Px=cc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Mx=cc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),_x=cc(Nx,{"&:hover":{"& svg":{color:"$secondary550"}}});function zg(){let[t,e]=lc(""),{deleteCustomToken:o}=S(),n=S().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=O(),{mode:l}=io({}),p=Lx(),[u,d]=lc(!1),[g,h]=lc(),f=i(C=>{let k=C.target.value;e(k)},"handleSearch"),m=l==="dark",T=n.filter(C=>st(C.symbol,t)||st(C.address||"",t)||st(C.name||"",t)),y=i(()=>{if(g){let C=a?ht(a):null,k=r?ht(r):null,v=ht(g);C===v?c({token:null}):k===v&&s({token:null}),o(g)}d(!1)},"handleDeleteCustomToken");return ge.createElement(ie,{header:{title:Zt.t("Custom Tokens")}},ge.createElement(ae,null,ge.createElement(Px,null,n.length?ge.createElement(ge.Fragment,null,ge.createElement(It,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Zt.t("Search Token"),onChange:f}),ge.createElement(gr,{size:16}),ge.createElement(fr,{list:T,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>ge.createElement(_x,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(C)}},ge.createElement(Ax,{size:12,color:"gray"}))})):ge.createElement(Mx,null,ge.createElement(Wx,{icon:m?ge.createElement(Ex,{size:200}):ge.createElement(Ix,{size:200}),title:Zt.t("No custom tokens"),description:Zt.t("press the button to add your custom token")})),ge.createElement(gr,{size:20}),ge.createElement(sc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(F.addCustomTokens)},Zt.t("Add Custom Token"))),ge.createElement(R,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:N()},ge.createElement(Bx,{title:Zt.t("Delete Custom Token"),type:"error",description:Zt.t("Are you sure you want to Delete this Token?")},ge.createElement(gr,{size:40}),ge.createElement(gr,{size:10}),ge.createElement(sc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},Zt.t("Yes, Delete it")),ge.createElement(gr,{size:12}),ge.createElement(sc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},Zt.t("No, Continue"))))))}i(zg,"CustomTokensPage");import{i18n as Re}from"@lingui/core";import{useManager as tE}from"@rango-dev/queue-manager-react";import{Button as hc,darkTheme as oE,Divider as Fo,MessageBox as nE,NotFound as rE,styled as yc,Typography as ua}from"@rango-dev/ui";import{TransactionStatus as Sr}from"rango-types";import se,{useMemo as ah,useState as da}from"react";import{useNavigate as iE}from"react-router-dom";import{FilterIcon as qx,Popover as Qx}from"@rango-dev/ui";import $o from"react";import{css as Dx,darkTheme as ca,IconButton as $x,styled as hr}from"@rango-dev/ui";var pc=hr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ca} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),qg=hr($x,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ca} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ca} &`]:{backgroundColor:"$neutral"},[`& ${pc}::before`]:{backgroundColor:"$secondary100",[`.${ca} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Qg=hr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Hg=hr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),Gg=Dx({display:"flex",justifyContent:"space-between",alignItems:"center"}),Vg=hr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as Kg}from"@lingui/core";import{Button as Fx,Divider as jg,ListItemButton as Ox,Radio as Ux,RadioRoot as zx,Typography as Xg}from"@rango-dev/ui";import dt from"react";function Yg(t){let{filterBy:e,onClickItem:o}=t;return dt.createElement(Hg,null,dt.createElement("div",{className:Gg()},dt.createElement(Xg,{size:"small",variant:"body"},Kg.t("Status")),dt.createElement(Fx,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},Kg.t("Reset"))),dt.createElement(jg,{size:10}),dt.createElement(zx,{value:e},dt.createElement(Vg,null,t.list.map((n,r)=>dt.createElement(Ox,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:dt.createElement(dt.Fragment,null,dt.createElement(jg,{direction:"horizontal",size:4}),dt.createElement(Xg,{size:"medium",variant:"body"},n.title)),start:dt.createElement(Ux,{value:n.id}),onClick:o})))))}i(Yg,"FilterSelectorContent");function uc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return $o.createElement("div",null,$o.createElement(Qx,{open:a,align:"end",onOpenChange:o,container:N(),content:$o.createElement(Yg,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},$o.createElement(qg,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},$o.createElement(pc,{isSelect:!!n},$o.createElement(qx,{size:16,color:"black"}),!!n&&$o.createElement(Qg,null)))))}i(uc,"FilterSelector");import{i18n as Vx}from"@lingui/core";import{getCurrentStep as Kx}from"@rango-dev/queue-manager-rango-preset";import{Divider as th,GroupedVirtualizedList as jx,Skeleton as Xx,SwapListItem as oh,Typography as Yx}from"@rango-dev/ui";import Je,{useCallback as nh,useEffect as Zx,useRef as Jx,useState as Rx}from"react";function Zg(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(Zg,"calculateGroupsSoFar");import{css as Hx,darkTheme as Gx,styled as yr}from"@rango-dev/ui";var dc=Hx(),Jg=yr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),mc=yr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${dc}`]:{$$color:"$colors$neutral600",[`.${Gx} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),fc=yr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Rg=yr("div",{gap:"$10",display:"flex",flexDirection:"column"}),eh=yr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var eE=10;function gc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=Rx([]),c=Jx(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=nh(Zg,[]),g=nh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,eE),s(d(p,c.current)))},[e.length]);if(Zx(()=>{r||g()},[r,g]),r){let h=[1,2];return Je.createElement(Je.Fragment,null,[h,h].map((m,T)=>Je.createElement(mc,{key:T},Je.createElement(fc,null,Je.createElement(Xx,{variant:"text",width:60,size:"small"}),Je.createElement(th,{size:16})),Je.createElement(th,{size:4}),Je.createElement(Rg,null,m.map((C,k)=>Je.createElement(oh,{isLoading:!0,key:k}))))))}return Je.createElement(jx,{endReached:()=>{c.current<e.length&&g()},groupCounts:a,groupContent:h=>Je.createElement(mc,null,Je.createElement(fc,null,Je.createElement(Yx,{variant:"label",size:"medium",className:dc()},u[h]))),itemContent:(h,f)=>{let m=l[h];if(!m)return null;let T=Kx(m),y=m.steps[0],C=m.steps[m.steps.length-1];return Je.createElement(Jg,{key:m.requestId},Je.createElement(oh,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:T,tooltipContainer:N(),onlyShowTime:u[f]===Vx.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:_(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:_(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(gc,"HistoryGroupedList");import{i18n as pa}from"@lingui/core";import rh from"dayjs";var ih=i(t=>{let e=new Map([["today",{title:pa.t("Today"),swaps:[]}],["week",{title:pa.t("This week"),swaps:[]}],["month",{title:pa.t("This month"),swaps:[]}],["year",{title:pa.t("This year"),swaps:[]}]]);function o(l,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}i(o,"addYearsToOutput");let n=rh();t.forEach(l=>{let p=Number(l.creationTime),u=rh(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(l);else{let d=new Date(p).getFullYear().toString();o(d,l)}});let r=Array.from(e.values()).filter(l=>l.swaps.length>0),a=r.flatMap(l=>l.swaps),s=r.map(l=>l.swaps.length),c=r.map(l=>l.title);return{swaps:a,groupCounts:s,groups:c}},"groupSwapsByDate");var aE=yc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),sE=yc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),lE=yc("div",{"._typography":{color:"$neutral700",[`.${oE}&`]:{color:"$neutral900"}}}),cE=[{id:Sr.SUCCESS,title:Re.t("Complete")},{id:Sr.RUNNING,title:Re.t("Running")},{id:Sr.FAILED,title:Re.t("Failed")}],pE=i((t,e)=>t?.length?t.filter(o=>Wt(o.fromBlockchain,e)||Wt(o.toBlockchain,e)||Wt(o.toSymbol,e)||Wt(o.fromSymbol,e)).length:!1,"isStepContainsText");function sh(){let t=iE(),{manager:e,state:o}=tE(),n=Ct(e).map(({swap:k})=>k),[r,a]=da(""),[s,c]=da(!1),l=!o.loadedFromPersistor,[p,u]=da(""),[d,g]=da(!1),h=i(k=>{let v=k.target.value;a(v)},"handleSearch"),f=ah(()=>!r&&!p?n:n.filter(k=>{let{inputAmount:v,status:x,steps:A,requestId:I}=k;return(!r||Wt(v,r)||Wt(x,r)||pE(A,r)||Wt(I,r))&&(!p||p===x)}),[n,r,p]),m=!f?.length&&!l,T=i(()=>g(!1),"onCloseModal"),y=i(async()=>{try{await e?.clearQueue(),g(!1)}catch(k){console.log(k)}},"onClear"),C=ah(()=>!n.some(k=>k.status===Sr.SUCCESS||k.status===Sr.FAILED),[n]);return se.createElement(ie,{header:{title:Re.t("History"),suffix:se.createElement(ao,null,se.createElement(hc,{id:"widget-history-clear-btn",disabled:C,variant:"ghost",size:"xsmall",onClick:()=>g(!0)},se.createElement(ua,{size:"medium",variant:"label",color:"error"},Re.t("Clear"))))}},se.createElement(ae,null,se.createElement(sE,null,se.createElement(It,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Re.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:h,style:{height:36},value:r}),se.createElement(Fo,{size:10,direction:"horizontal"}),se.createElement(uc,{filterBy:p,open:s,onOpenChange:k=>c(k),onClickItem:k=>u(k),list:cE})),se.createElement(Fo,{size:"16"}),se.createElement(aE,null,m&&se.createElement(eh,null,se.createElement(Fo,{size:32}),se.createElement(rE,{title:r?Re.t("No results found"):Re.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Re.t("Try using different keywords"):Re.t("Your transaction history is stored locally and will appear here after you start a swap")})),!m&&se.createElement(gc,{list:f,onSwapClick:t,groupBy:ih,isLoading:l}))),se.createElement(R,{open:d,onClose:T,id:"widget-history-clear-modal",container:N()},se.createElement(Fo,{size:20}),se.createElement(nE,{type:"warning",title:Re.t("Clear Transaction History"),description:se.createElement(lE,null,se.createElement(ua,{variant:"body",size:"medium"},Re.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),se.createElement(Fo,{size:"24"}),se.createElement(ua,{variant:"body",size:"small"},Re.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),se.createElement(Fo,{size:30}),se.createElement(hc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},Re.t("Yes, Clear the history")),se.createElement(Fo,{size:10}),se.createElement(hc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:T},se.createElement(ua,{variant:"title",size:"medium",color:"primary"},Re.t("No, Cancel")))))}i(sh,"HistoryPage");import{i18n as VE}from"@lingui/core";import{Button as KE,Divider as Wc,styled as jE,WarningIcon as XE}from"@rango-dev/ui";import YE from"bignumber.js";import Se,{useEffect as $h,useState as Fh}from"react";import{useNavigate as ZE}from"react-router-dom";import{i18n as ch}from"@lingui/core";import{Alert as dE,Divider as Sc,NoRouteIcon as mE,Typography as fE}from"@rango-dev/ui";import Oo from"react";import{styled as uE}from"@rango-dev/ui";var lh=uE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Cc(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Ot(t,e)?Oo.createElement(lh,null,Oo.createElement(Sc,{size:10}),Oo.createElement(mE,{size:24,color:"gray"}),Oo.createElement(Sc,{size:4}),Oo.createElement(fE,{variant:"title",size:"small"},ch.t("No Routes Found")),Oo.createElement(Sc,{size:4}),Oo.createElement(dE,{title:ch.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Cc,"SameTokensWarning");import{Alert as gE,Button as hE}from"@rango-dev/ui";import uh from"react";import{i18n as ma}from"@lingui/core";function ph(t){let e=null;return t===ti?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ma.t("Reset"),title:ma.t("Slippage cannot be set lower than 0.01%.")},e):t>jo?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ma.t("Change"),title:ma.t("Caution, your slippage is high!")},e):null}i(ph,"makeAlerts");function dh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=S(),{onChangeSettings:a}=t,c=ph(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(ei),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?uh.createElement(gE,{title:c.title,type:c.alertType,variant:"alarm",action:uh.createElement(hE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(dh,"SlippageWarningsAndErrors");import{i18n as kE}from"@lingui/core";import{IconButton as vE,ReverseIcon as wE,Skeleton as bE,Tooltip as xE,Typography as Cr}from"@rango-dev/ui";import mt from"react";import fa from"bignumber.js";function fh(t){let{error:e,isDarkTheme:o,warning:n}=t,{quoteError:r,slippageError:a}=e,{quoteWarning:s,slippageWarning:c}=n,l=!!a||r?.type===4,p=!!c||s?.type===2;return l?"$error500":p?"$warning500":o?"$neutral600":"$neutral700"}i(fh,"getSlippageColor");function gh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new fa(e),r=new fa(o),a=n.dividedBy(r),s;return a.isLessThan(1)?s=a.toFixed(14).replace(/\.?0+$/,""):a.toFixed(0).length>10?s=a.toFixed(0).slice(0,10):s=a.toFixed(2),{displayValue:s,rawValue:a.toFixed()}}i(gh,"getUsdExchangeRate");function hh(t,e){let o=new fa(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,fa.ROUND_DOWN).toFormat(2)}`}i(hh,"formatTokenValueInUsd");import{darkTheme as CE,styled as kc,Typography as TE}from"@rango-dev/ui";var yh=kc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),Sh=kc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${CE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),vc=kc(TE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function wc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=S(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:g}=io({}),h=Zo(d),f=g==="dark",m=n==="default",T={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},C=p?.swaps[0].from||c,k=p?.swaps[p?.swaps.length-1].to||l,v=m?C:k,x=m?k:C,A=Number(m?p?.outputAmount:p?.requestAmount),I=Number(m?p?.requestAmount:p?.outputAmount),E=A||v.usdPrice,b=I||x.usdPrice,{rawValue:w,displayValue:B}=gh({toTokenUsdPrice:b,fromTokenUsdPrice:E});return mt.createElement(yh,null,mt.createElement(Cr,{variant:T||y?"label":"body",size:T||y?"medium":"small",color:fh({error:T,warning:y,isDarkTheme:f})},kE.t("Slippage:")," ",d,"%"),u?mt.createElement(bE,{height:16,width:104,variant:"rounded"}):E&&b&&mt.createElement(Sh,null,mt.createElement(Cr,{className:"rate-text",variant:"body",size:"small"},"1"),mt.createElement(vc,{className:"rate-text",variant:"body",size:"small"},x.symbol),mt.createElement(vE,{id:"widget-home-page-change-rate-button",onClick:r},mt.createElement(wE,{size:14,color:"secondary"})),mt.createElement(xE,{container:N(),side:"top",sideOffset:4,content:mt.createElement(Cr,{className:"rate-text",variant:"body",size:"small"},w)},mt.createElement(Cr,{className:"rate-text",variant:"body",size:"small"},B)),mt.createElement(vc,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&mt.createElement(Cr,{color:"neutral600",variant:"body",size:"small"},"~",hh(Number(w),v.usdPrice))))}i(wc,"SwapMetrics");import{i18n as WE}from"@lingui/core";import{Header as LE}from"@rango-dev/ui";import mo,{useEffect as PE,useState as ME}from"react";import{i18n as IE}from"@lingui/core";import{Divider as xc,FullExpandedQuote as AE,Typography as NE}from"@rango-dev/ui";import xe from"react";import{styled as bc}from"@rango-dev/ui";var Ch=bc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Th=bc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),kh=bc("div",{width:"146px"});import{i18n as Tr}from"@lingui/core";import{Select as EE}from"@rango-dev/ui";import vh from"react";function ga(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:Tr.t("Smart Routing")},{value:"FEE",label:Tr.t("Lowest Fee")},{value:"SPEED",label:Tr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Tr.t("Maximum Return")},{value:"PRICE",label:Tr.t("Maximum Output")}];return vh.createElement(kh,null,vh.createElement(EE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ga,"SelectStrategy");var wh=3;function kr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:d,toToken:g,sortStrategy:h,error:f}=O(),{slippage:m,customSlippage:T}=S(),{findToken:y}=S(),C=c||N(),k=!!p&&p.results.length,v=T??m,x=i(E=>{if(!d||!g||!p)return null;let b={requestAmount:p.requestAmount,validationStatus:null,...E};return sn({currentQuote:b,userSlippage:v,findToken:y})},"getQuoteWarning"),A=f?.type===0||f?.type===1,I=p?.results?Ti(h,p?.results):[];return xe.createElement(xe.Fragment,null,a&&xe.createElement(xe.Fragment,null,xe.createElement(Th,null,xe.createElement(NE,{size:"xmedium",variant:"title"},IE.t("Sort by")),xe.createElement(ga,{container:C})),xe.createElement(xc,{size:"10"})),e&&Array.from({length:wh},(E,b)=>xe.createElement(xe.Fragment,{key:b},s?xe.createElement(AE,{loading:!0}):xe.createElement(lr,{tagHidden:!1,type:"list-item",expanded:!1}),b!==wh-1&&xe.createElement(xc,{size:16}))),!e&&xe.createElement(xe.Fragment,null,k?I.map((E,b)=>{let w=x(E),B=Gl(E.swaps),M=I.length-1===b;return xe.createElement(xe.Fragment,{key:E.requestId},xe.createElement(_o,{id:"widget-quotes-quote-info-container",showModalFee:r,container:C,selected:l?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:w,fullExpandedMode:s,onClick:$=>{B||u("warning",w),u("error",B?.options||null),o($)},type:"list-item"}),!M&&xe.createElement(xc,{size:16}))}):A&&xe.createElement(Ch,null,xe.createElement(Rn,{size:s?"large":"small",error:f,fetch:n}))))}i(kr,"Quotes");import{darkTheme as BE,styled as bh}from"@rango-dev/ui";var xh=bh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${BE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Eh=bh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var _E=100;function Ec(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=ME(!1),l=s?"":"is-hidden",{config:p}=S(),u=p?.variant==="full-expanded",d=vo();return PE(()=>{let g=null;return a?g=setTimeout(()=>{c(!0)},_E):(c(!1),g&&clearTimeout(g)),()=>{g&&clearTimeout(g)}},[a]),mo.createElement(xh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Mi()} widget-expanded-quotes-container`,id:tt.EXPANDED_BOX_ID},mo.createElement(LE,{title:WE.t("Routes"),suffix:mo.createElement(mo.Fragment,null,mo.createElement(ga,{container:d}),mo.createElement(Lo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),mo.createElement(Eh,null,mo.createElement(kr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:vo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Ec,"ExpandedQuotes");import{i18n as Ph}from"@lingui/core";import{SwapInput as Mh}from"@rango-dev/ui";import OE from"bignumber.js";import vr from"react";import{ReverseIcon as FE}from"@rango-dev/ui";import Ac from"react";import{keyframes as DE,styled as Ih}from"@rango-dev/ui";var Ic=450,$E=DE({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Ah=Ih("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Nh=Ih("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${$E} ${Ic}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function Nc(){let t=O.use.switchFromAndTo();return Ac.createElement(Ah,null,Ac.createElement(Nh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Ic),t()}},Ac.createElement(FE,{size:12})))}i(Nc,"SwitchFromAndToButton");import{styled as Bh}from"@rango-dev/ui";var Wh=Bh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Lh=Bh("div",{position:"relative"});function Bc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:d,inputUsdValue:g,outputAmount:h,outputUsdValue:f,selectedQuote:m}=O(),{connectedWallets:T,getBalanceFor:y}=S(),C=a?y(a):null,k=Zr(C)?.amount??"0",v=C?new OE(C.amount).shiftedBy(-C.decimals):ce,x=!!s&&su(T,s.name),A=!Ls(m,d,g),I=!Ls(m,d,f),E=!g||!f||!f.gt(0)?null:Qt(g.toString(),f.toString());return vr.createElement(Wh,null,vr.createElement(Lh,null,vr.createElement(Mh,{label:Ph.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:k,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:A?void 0:_(g,4,4),realUsdValue:A?void 0:g?.toString(),error:A?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:N(),onSelectMaxBalance:()=>{let b=_(v,C?.decimals),w=C?.amount?b.split(",").join(""):"";p(w)},anyWalletConnected:T.length>0}),vr.createElement(Nc,null)),vr.createElement(Mh,{sharpBottomStyle:!r&&(!!m||e),label:Ph.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:_(Qt(g,f),2,2),warningLevel:Ht(E??0),price:{value:_(h,6,6),usdValue:I?void 0:_(f,4,4),realValue:h?.toString(),realUsdValue:I?void 0:f?.toString(),error:I?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(Bc,"Inputs");import{warn as UE}from"@rango-dev/logging-core";import{useCallback as zE,useEffect as qE,useRef as QE,useState as HE}from"react";function _h(){let{fetch:t,loading:e,cancelFetch:o}=ra({request:async(n,r)=>await ct().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(_h,"useFetchAllQuotes");var GE=600;function ha({refetchQuote:t}){let{fetch:e,cancelFetch:o}=_h(),{excludeLiquiditySources:n,routing:r}=S().config,{connectedWallets:a}=S(),c=a.some(j=>j.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:g,sortStrategy:h,resetQuote:f,error:m,warning:T,setSelectedQuote:y,updateQuotePartialState:C}=O(),{slippage:k,customSlippage:v,affiliatePercent:x,affiliateRef:A,affiliateWallets:I,fetchStatus:E}=S(),b=S().getLiquiditySources(),w=S().getDisabledLiquiditySources(),B=S().excludeLiquiditySources(),{findToken:M}=S(),[$,q]=HE(!0),ee=QE(u),V=v??k,te=!l||!p||Ot(l,p)||!Bn(u),le=i(j=>{q(j)},"resetState"),J=i(j=>{let{fromToken:ue,toToken:de,inputAmount:ke,liquiditySources:H,excludeLiquiditySources:W,disabledLiquiditySources:Q,slippage:K,affiliateRef:Y,affiliatePercent:ye,affiliateWallets:Qe}=j;if($||le(!0),!te&&ue&&de){f();let Oe=Pd({fromToken:ue,toToken:de,inputAmount:ke,liquiditySources:H,excludeLiquiditySources:W,disabledLiquiditySources:Q,wallets:a,slippage:K,affiliateRef:Y,affiliatePercent:ye,affiliateWallets:Qe,contractCall:c});Yo("experimental",r)&&(Oe.experimental=!0),Yo("avoidNativeFee",r)&&(Oe.avoidNativeFee=!0),Yo("enableCentralizedSwappers",r)&&(Oe.enableCentralizedSwappers=!0),r?.maxLength&&(Oe.maxLength=r.maxLength),e(Oe).then(kt=>{let ve=Ti(h,kt.results),je=kd(g,ve,kt.requestAmount);q(!1),C("quotes",kt),y(je),ia({diagnosisMessages:kt.diagnosisMessages,requestId:je?.requestId||"",swaps:je?.swaps});let Dr=je&&sn({currentQuote:je,userSlippage:V,findToken:M});C("warning",Dr)}).catch(kt=>{let ve=aa(kt);(ve.type===0||ve.type===1)&&f(),ve.type!==2&&(C("error",ve),q(!1),UE(new Error("quote error"),{tags:{...ve,type:Xe[ve.type],requestBody:Oe}}))})}},"fetch"),X=zE(Hr(j=>{J(j)},GE),[te]);return qE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(te){q(!1),(g||m||T)&&f();return}if(!Bn(u)&&d?.eq(0)){le(!1),o();return}f(),le(!0);let j=J;return ee.current&&ee.current!=u&&(j=X),ee.current=u,j({inputAmount:u,fromToken:l,toToken:p,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:V,affiliateRef:A,affiliatePercent:x,affiliateWallets:I,contractCall:c}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,te,b?.length,n,w.length,V,A,x,c,JSON.stringify(I)]),{fetch:()=>J({inputAmount:u,fromToken:l,toToken:p,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:V,affiliateRef:A,affiliatePercent:x,affiliateWallets:I,contractCall:c}),loading:$}}i(ha,"useSwapInput");function Dh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};we.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Dh,"emitPreventableEvent");var JE=jE("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),RE=300;function Oh(){let t=ZE(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:g}=O(),[h,f]=Fh(!1),{isLargeScreen:m,isExtraLargeScreen:T}=un(),{fetch:y,loading:C}=ha({refetchQuote:a}),{config:k,fetchStatus:v,connectedWallets:x,customSlippage:A,slippage:I,setSlippage:E,setCustomSlippage:b}=S(),{isActiveTab:w}=oe(),[B,M]=Fh(!1),q=Zo(A!==null?A:I),V=Nd({fetchMetaStatus:v,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),L=fu(m,T,k?.variant),te=!!n&&!!e&&!!o&&new YE(n).gt(0)&&!Ud(e,o),le=te&&v==="success"&&C,J=q?.quoteValidation||c,ue=(!L||L&&l?.results.length)&&(J||s),de=!!e&&!!o,ke=de&&!!q,H=(r||s)&&!B?y:void 0,W=i(Y=>{L&&h?(f(!1),setTimeout(()=>{t(Y)},RE)):t(Y)},"onHandleNavigation"),Q=i(Y=>{r?.requestId!==Y.requestId&&(M(!1),p(Y))},"onClickOnQuote"),K=i(Y=>{if(Y){if(Rr.includes(Y)){E(Y),b(null);return}b(Y)}},"onChangeSlippage");return $h(()=>{u(),g("refetchQuote",!0)},[]),$h(()=>{f(te)},[te]),Se.createElement(JE,null,Se.createElement(ie,{height:"auto",footer:Se.createElement(KE,{id:`widget-swap-${V.action}-btn`,type:"primary",size:"large",disabled:V.disabled||!w,prefix:V.action==="confirm-warning"&&Se.createElement(XE,null),fullWidth:!0,onClick:()=>{V.action==="connect-wallet"?Dh({type:"clickConnectWallet"},()=>W(F.wallets)):V.action==="confirm-warning"?M(!0):W(F.confirmSwap)}},V.title),header:{onWallet:()=>{W(F.wallets)},hasBackButton:!1,title:k.title||VE.t("Swap"),suffix:Se.createElement(Lo,{hidden:L?["refresh"]:void 0,onClickRefresh:H,onClickHistory:()=>W(F.swaps),onClickSettings:()=>{W(F.settings)}})}},Se.createElement(ae,null,Se.createElement(Bc,{fetchingQuote:le,fetchMetaStatus:v,isExpandable:L,onClickToken:Y=>{W(Y==="from"?F.fromSwap:F.toSwap)}}),Se.createElement(Wc,{size:"2"}),L?null:Se.createElement(_o,{quote:r,loading:le,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:J,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{g("refetchQuote",!1),W(F.routes)}:void 0}),de&&Se.createElement(Se.Fragment,null,Se.createElement(Wc,{size:8}),Se.createElement(wc,{quoteError:s,quoteWarning:J,fromToken:e,toToken:o,quote:r,loading:le})),ue?Se.createElement(Se.Fragment,null,Se.createElement(or,{warning:J,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:y,showWarningModal:B,confirmationDisabled:!w,onOpenWarningModal:()=>M(!0),onCloseWarningModal:()=>M(!1),onChangeSlippage:K,onConfirmWarningModal:()=>{M(!1),d(!0),W(F.confirmSwap)},onChangeSettings:()=>W(F.settings)})):null,ke&&Se.createElement(Se.Fragment,null,Se.createElement(Wc,{size:"10"}),Se.createElement(dh,{onChangeSettings:()=>W(F.settings)})),Se.createElement(Cc,null))),L?Se.createElement(Ec,{loading:le,onClickOnQuote:Q,fetch:y,onClickRefresh:H,isVisible:h}):null)}i(Oh,"Home");import{i18n as Uh}from"@lingui/core";import{Alert as eI,Divider as tI,List as oI,ListItemButton as nI,Radio as rI,RadioRoot as iI,Typography as aI}from"@rango-dev/ui";import Dt from"react";function fo(){let{setLanguage:t,language:e,config:o}=S(),n=ku,r=o?.language||Jo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Jo),resetLanguage:()=>t(null)}}i(fo,"useLanguage");function zh(){let{activeLanguage:t,changeLanguage:e,languages:o}=fo(),n=Ve(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Dt.createElement(aI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Dt.createElement(rI,{value:s}),start:Dt.createElement(l,null)}});return Dt.createElement(ie,{header:{title:Uh.t("Language")}},Dt.createElement(ae,null,Dt.createElement(eI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Dt.createElement(tI,{size:"8"}),Dt.createElement(iI,{value:t},Dt.createElement(oI,{type:Dt.createElement(nI,{title:Uh.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(zh,"LanguagePage");import{i18n as Jt}from"@lingui/core";import{Button as uI,Checkbox as dI,Image as mI,ListItemButton as fI,NotFound as gI,Typography as hI}from"@rango-dev/ui";import et,{useState as yI}from"react";import{Checkbox as cI,Skeleton as Qh}from"@rango-dev/ui";import br from"react";import{styled as Lc}from"@rango-dev/ui";var wr=Lc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Pc=Lc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Mc=Lc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as sI,styled as lI}from"@rango-dev/ui";var qh=lI(sI,{height:61});var pI=30;function _c(){return br.createElement(wr,null,Array.from(Array(pI),(t,e)=>br.createElement(qh,{hasDivider:!0,key:e,start:br.createElement(Qh,{variant:"circular",width:35,height:35}),title:br.createElement(Qh,{variant:"text",size:"large",width:90}),end:br.createElement(cI,{checked:!1})})))}i(_c,"LoadingLiquiditySourceList");function Dc({sourceType:t}){let e=S().fetchStatus,o=S().swappers(),n=S().getDisabledLiquiditySources(),[r,a]=yI(""),s=S().toggleLiquiditySource,c=S().isInCampaignMode(),l=oi(o,n),p={Exchanges:Jt.t("Exchanges"),Bridges:Jt.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(y=>u.includes(y.type)),g=d.length===d.filter(y=>y.selected).length,h=i(()=>{d.forEach(y=>{g?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),f=d.map(y=>{let{selected:C,groupTitle:k,logo:v,id:x,...A}=y;return{id:`widget-setting-liquidity-source-${Xp(x.toLowerCase())}-item-btn`,start:et.createElement(mI,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:et.createElement(dI,{checked:C,disabled:c}),title:et.createElement(hI,{variant:"title",size:"xmedium"},Jt.t(k)),selected:C,groupTitle:k,logo:v,...A}}),m=i(y=>{let C=y.target.value;a(C)},"handleSearch"),T=f;return r&&(T=f.filter(y=>Wt(y.groupTitle,r))),et.createElement(ie,{header:{title:Jt.t(t),suffix:et.createElement(Pc,null,et.createElement(uI,{id:`widget-liquidity-source-${g?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},g?Jt.t("Deselect all"):Jt.t("Select all")))}},et.createElement(ae,{view:!0},et.createElement(It,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:Jt.t("Search {sourceType}",{sourceType:p[t]}),onChange:m}),e==="loading"&&et.createElement(_c,null),!T.length&&r?et.createElement(Mc,null,et.createElement(gI,{title:Jt.t("No results found"),description:Jt.t("Try using different keywords")})):e==="success"&&et.createElement(wr,{disabled:c,className:"widget-liquidity-source-list"},T.map(y=>{let{groupTitle:C,...k}=y;return et.createElement(et.Fragment,{key:y.id},et.createElement(fI,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Dc,"LiquiditySourcePage");import{i18n as SI}from"@lingui/core";import ya from"react";import{useNavigate as CI}from"react-router-dom";function Hh(){let t=CI(),e=Ve(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:c,loading:l}=ha({refetchQuote:n}),p=i(g=>{r(g),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${F.settings}`,d=`../${F.wallets}`;return ya.createElement(ie,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:SI.t("Routes"),suffix:ya.createElement(Lo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},ya.createElement(ae,null,ya.createElement(kr,{fetch:c,loading:l,onClickOnQuote:p})))}i(Hh,"RoutesPage");import{i18n as Zh}from"@lingui/core";import{Divider as Jh,getCategoriesCount as NI,SelectableCategoryList as BI}from"@rango-dev/ui";import Rt,{useState as Rh}from"react";import{useNavigate as WI}from"react-router-dom";import{i18n as $c}from"@lingui/core";import{Divider as wI,Image as bI,ListItemButton as xI,NotFound as EI,Typography as Yh}from"@rango-dev/ui";import ft,{useEffect as II,useState as AI}from"react";var Gh=i((t,e,o)=>t.filter(n=>Gr(n.type,o)).filter(n=>st(n.name,e)||st(n.displayName,e)),"filterBlockchains");import{ImageContainer as TI,styled as Vh}from"@rango-dev/ui";var Kh=Vh("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Sa=Vh(fl,{padding:0,margin:0,listStyle:"none",[`& ${TI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as kI,Skeleton as jh}from"@rango-dev/ui";import Ca from"react";var vI=20;function Xh(){return Ca.createElement(Sa,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(vI),t=>Ca.createElement(kI,{key:t,hasDivider:!0,start:Ca.createElement(jh,{variant:"circular",width:35,height:35}),title:Ca.createElement(jh,{variant:"text",size:"large",width:90})})))}i(Xh,"LoadingBlockchainList");function Fc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=AI(e),{fetchStatus:l}=S();II(()=>{c([...Gh(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ft.createElement(EI,{title:$c.t("No results found"),description:$c.t("Try using different keywords")}):ft.createElement(Sa,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ft.createElement(xI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ft.createElement(bI,{src:u.logo,size:30}),title:ft.createElement(Yh,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ft.createElement(ft.Fragment,null,a&&ft.createElement(ft.Fragment,null,ft.createElement(Yh,{variant:"label",size:"large"},$c.t("Select Chain")),ft.createElement(wI,{size:4})),ft.createElement(Kh,null,l==="loading"&&ft.createElement(Xh,null),l==="success"&&p()))}i(Fc,"BlockchainList");function Ta(t){let{type:e}=t,o=Ve(),[n,r]=Rh(""),[a,s]=Rh("ALL"),c=O.use.setToBlockchain(),l=O.use.setFromBlockchain(),{fetchStatus:p}=S(),u=WI(),d=S().blockchains({type:e}),g=NI(d),h=!t.hideCategory&&g!==1;return Rt.createElement(ie,{header:{title:Zh.t("Select Chain")}},Rt.createElement(ae,{view:!0},h&&Rt.createElement(Rt.Fragment,null,Rt.createElement(BI,{setCategory:s,category:a,blockchains:d,isLoading:p==="loading"}),Rt.createElement(Jh,{size:24})),Rt.createElement(It,{value:n,autoFocus:!0,placeholder:Zh.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Rt.createElement(Jh,{size:16}),Rt.createElement(Fc,{list:d,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:f=>{e==="custom-token"?u(`..?blockchain=${f.name}`,{replace:!0}):(e==="source"?l(f):c(f),o())}})))}i(Ta,"SelectBlockchainPage");import{i18n as wa}from"@lingui/core";import{Divider as ay,Spinner as VI}from"@rango-dev/ui";import go,{useEffect as KI,useState as jI}from"react";import{useNavigate as XI}from"react-router-dom";import{i18n as zc}from"@lingui/core";import{BlockchainsChip as ka,Divider as ny,Image as ry,Skeleton as $I,Tooltip as FI,Typography as qc}from"@rango-dev/ui";import Ee from"react";import{useEffect as MI}from"react";var ey=["ETH","COSMOS","OSMOSIS"];function Oc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(LI),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(PI(s)),r=n.splice(a)}return{list:n,more:r}}i(Oc,"prepare");function LI(t,e){let o=ey,n=o.findIndex(c=>c===t.name),r=o.findIndex(c=>c===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(LI,"sortByMostUsedBlockchains");function PI(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(PI,"generateSortByPreferredBlockchainsFor");function ty(t,e){return!!e.list.find(o=>o.name===t)}i(ty,"isInVisibleList");function Uc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=S();MI(()=>{if(e?.selected){let a=Oc(t,o,e);ty(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Oc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Uc,"usePrepareBlockchainList");import{styled as _I}from"@rango-dev/ui";var oy=_I("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var OI=6,UI=12;function Qc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=Uc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=S(),p=O.use.resetToBlockchain(),u=O.use.resetFromBlockchain(),d=c.more.length>0,g=c.more.length===1,h=!g&&d;return Ee.createElement(Ee.Fragment,null,!s&&Ee.createElement(Ee.Fragment,null,Ee.createElement(ny,{size:12}),Ee.createElement(qc,{variant:"label",size:"large"},zc.t("Select Chain"))),Ee.createElement(ny,{size:12}),Ee.createElement(oy,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?OI:UI),(f,m)=>Ee.createElement($I,{key:m,variant:"rounded",height:50})),l==="success"&&Ee.createElement(Ee.Fragment,null,Ee.createElement(ka,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},Ee.createElement(qc,{variant:"body",size:"xsmall",color:"secondary500"},zc.t("All"))),c.list.map(f=>Ee.createElement(FI,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:N()},Ee.createElement(ka,{className:"widget-blockchains-section-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Ee.createElement(ry,{src:f.logo,size:30})))),g?Ee.createElement(ka,{className:"widget-blockchains-section-only-item-btn",key:c.more[0].name,selected:!!n&&n.name===c.more[0].name,onClick:()=>r(c.more[0])},Ee.createElement(ry,{src:c.more[0].logo,size:30})):null,h?Ee.createElement(ka,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},Ee.createElement(qc,{variant:"body",size:"xsmall",color:"secondary500"},zc._("More +{count}",{count:c.more.length}))):null)))}i(Qc,"BlockchainsSection");import{useCallback as qI,useRef as QI,useState as Hc}from"react";function Gc(){let t=S().blockchains(),e=QI(null),{customTokens:o}=S(),[n,r]=Hc(!1),[a,s]=Hc([]),[c,l]=Hc(null),p=i(async(g,h)=>{l(null),r(!0),s([]);try{let f=await ct().searchCustomTokens({query:g,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(C=>zt(C))),T=new Set(t.map(C=>C.name)),y=f.tokens.filter(C=>T.has(C.blockchain)&&!m.has(zt(C)));s(y),r(!1)}catch(f){l(f instanceof Error?f.message:"something went wrong"),s([]),f?.name!=="CanceledError"&&r(!1)}},"fetch"),u=qI(Hr((g,h)=>{e.current?.signal.aborted||p(g,h)},600),[t.length]);return{fetch:(g,h)=>{e.current=new AbortController,s([]),r(!0),u(g,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Gc,"useSearchCustomTokens");function va(t,e,o){return o&&t.length===1&&t[0].address===e?!1:t.length<20&&e.trim().length>=3}i(va,"shouldSearchForCustomTokens");function iy(t,e,o,n,r){let a=[...t];return va(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(iy,"prepareTokensList");function ba(t){let{type:e}=t,o=XI(),n=Ve(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=O(),{getBalanceFor:u}=S(),{fetch:d,loading:g,tokens:h,cancel:f}=Gc(),[m,T]=jI(""),y=e==="source"?r:a,C=y?.name??"",k=S().blockchains({type:e}),v=S().tokens({type:e,blockchain:C,searchFor:m,getBalanceFor:u}),x=iy(v,h,m,g,y?.name),A=i(b=>{e==="source"?l(b):p(b)},"updateBlockchain"),I=i(b=>{e==="source"?s({token:b,meta:{blockchains:k}}):c({token:b,meta:{blockchains:k}})},"updateToken"),E={source:wa.t("Source"),destination:wa.t("Destination")};return KI(()=>(va(v,m,y?.name)&&d(m,y?.name??void 0),()=>{f()}),[v.length,m,y?.name]),go.createElement(ie,{header:{title:wa.t("Swap {type}",{type:E[e]})}},go.createElement(ae,null,go.createElement(Qc,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:b=>{A(b)}}),go.createElement(ay,{size:24}),go.createElement(It,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:wa.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>T(""),onChange:b=>T(b.target.value),suffix:va(v,m,y?.name)&&g?go.createElement(VI,{size:12,color:"secondary"}):void 0}),go.createElement(ay,{size:16}),go.createElement(fr,{list:x,selectedBlockchain:C,searchedFor:m,type:e,onChange:b=>{I(b);let w=k.find(B=>b.blockchain===B.name);w&&A(w),n()}})))}i(ba,"SelectSwapItemsPage");import{i18n as Xc}from"@lingui/core";import{Alert as vA,Button as wA,styled as bA}from"@rango-dev/ui";import Uo from"react";import{useInRouterContext as xA,useSearchParams as EA}from"react-router-dom";import{i18n as dy}from"@lingui/core";import{Alert as RI,Divider as Kc,InfoIcon as eA,SlippageIcon as tA,TextField as oA,Tooltip as nA,Typography as my}from"@rango-dev/ui";import ze from"react";import{Chip as YI,styled as xr,TextField as ZI}from"@rango-dev/ui";var sy=xr("div",{paddingTop:"$5",padding:"$10 $5"}),ly=xr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${ZI}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),cy=xr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),xa=xr("div",{maxWidth:"280px",padding:"$10"}),py=xr(YI,{width:"61px",flexShrink:0});import{i18n as Vc}from"@lingui/core";import{Typography as JI}from"@rango-dev/ui";import Er from"react";function uy(){return Er.createElement(xa,null,Er.createElement(JI,{variant:"label",size:"medium",color:"neutral700"},Vc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Er.createElement("br",null),Er.createElement("br",null),Er.createElement("b",null,Vc.t("Warning")),":\xA0",Vc.t("This setting is applied to each step (e.g. 1Inch, Thorchain, etc.), meaning only that specific step will be reverted, not the entire route.")))}i(uy,"SlippageTooltipContent");function jc(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=S(),r=o!==null?Zo(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let d=u;u>Mn&&(d=Mn),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;Zp(u)||(p.value=u.slice(0,-1))},"onInput");return ze.createElement(sy,null,ze.createElement(cy,null,ze.createElement(tA,{size:16,color:"gray"}),ze.createElement(Kc,{direction:"horizontal",size:4}),ze.createElement(my,{variant:"title",size:"xmedium"},dy.t("Slippage tolerance per swap")),ze.createElement(Kc,{direction:"horizontal",size:4}),ze.createElement(nA,{container:N(),side:"top",sideOffset:4,content:ze.createElement(uy,null)},ze.createElement(eA,{color:"gray"}))),ze.createElement(ly,null,Rr.map((l,p)=>{let u=`slippage-${p}`;return ze.createElement(py,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),ze.createElement(oA,{type:"number",min:"0.01",max:"30",step:"0.01",status:r?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&ze.createElement(my,{variant:"body",size:"small"},"%"),placeholder:dy.t("Custom")})),r&&ze.createElement(ze.Fragment,null,ze.createElement(Kc,{size:10}),ze.createElement(RI,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(jc,"Slippage");import{i18n as Tt}from"@lingui/core";import{AutoThemeIcon as fy,BridgesIcon as rA,ChevronRightIcon as Ea,DarkModeIcon as gy,Divider as Ir,ExchangeIcon as iA,InfinityIcon as aA,InfoIcon as sA,LanguageIcon as lA,LightModeIcon as hy,List as cA,ListItem as pA,ListItemButton as uA,Skeleton as dA,styled as mA,Switch as fA,Tabs as gA,TargetIcon as hA,Tooltip as yA,Typography as at}from"@rango-dev/ui";import D from"react";import{useNavigate as SA}from"react-router-dom";var CA=mA("div",{width:"202px",height:"$40"}),TA=[{id:"light",icon:D.createElement(hy,{color:"black",size:24}),tooltip:D.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Light"))},{id:"dark",icon:D.createElement(gy,{color:"black",size:24}),tooltip:D.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Dark"))},{id:"auto",icon:D.createElement(fy,{color:"black",size:24}),tooltip:D.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Auto"))}],kA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(fy,{...e});case"dark":return D.createElement(gy,{...e});default:return D.createElement(hy,{...e})}},"getThemeIcon");function yy(){let t=SA(),{theme:e}=S().config,{setTheme:o,theme:n}=S(),{activeLanguage:r,languages:a}=fo(),s=a.find(L=>L.local===r)?.label,c=S().fetchStatus,l=S().swappers(),p=S().getDisabledLiquiditySources(),{config:{features:u}}=S(),d=S().customTokens(),g=ot("theme",u),h=ot("liquiditySource",u),f=ot("language",u),m=ot("customTokens",u),T=S().infiniteApprove,y=S().toggleInfiniteApprove,C=oi(l,p),k=C.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),v=k.length,x=k.filter(L=>L.selected).length,A=C.filter(L=>L.type==="DEX"),I=A.length,E=A.filter(L=>L.selected).length,b=i((L,te)=>{switch(c){case"loading":return D.createElement(dA,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(at,{variant:"body",size:"medium",color:"$error500"},Tt.t("Loading failed"));default:return D.createElement(at,{variant:"body",size:"medium"},`${L} / ${te}`)}},"handleSwapperEndItem"),w={id:"widget-setting-bridge-item-btn",title:D.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Bridges")),end:D.createElement(D.Fragment,null,b(x,v),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(Ea,{color:"black"})),onClick:()=>t(F.bridges),start:D.createElement(rA,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:D.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Exchanges")),end:D.createElement(D.Fragment,null,b(E,I),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(Ea,{color:"black"})),start:D.createElement(iA,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},M={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(at,{variant:"body",size:"medium"},`${d.length}`),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(Ea,{color:"black"})),start:D.createElement(hA,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},$={id:"widget-setting-language-item-btn",title:D.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Language")),start:D.createElement(lA,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(at,{variant:"body",size:"medium"},s),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(Ea,{color:"black"})),onClick:()=>t(F.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Infinite approval")),D.createElement(Ir,{direction:"horizontal",size:4}),D.createElement(yA,{side:"top",sideOffset:4,container:N(),content:D.createElement(xa,null,D.createElement(at,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,Tt.t("Warning")),":\xA0",Tt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(sA,{color:"gray"}))),start:D.createElement(aA,{color:"gray",size:16}),end:D.createElement(fA,{checked:T}),onClick:y},ee={id:"widget-setting-theme-item-btn",type:D.createElement(pA,null),title:D.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Theme")),end:D.createElement(CA,null,D.createElement(gA,{container:N(),items:TA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:kA(n)},V=h?[]:[w,B];return m||V.push(M),f||V.push($),V.push(q),!e?.singleTheme&&!g&&V.push(ee),D.createElement(cA,{type:D.createElement(uA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:V})}i(yy,"SettingsLists");var IA=bA("div",{paddingLeft:"$8"});function Sy(){let{isInCampaignMode:t,updateCampaignMode:e}=S(),o=t(),[,n]=EA(),r=xA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Uo.createElement(ie,{header:{title:Xc.t("Settings")}},Uo.createElement(ae,null,o&&Uo.createElement(vA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:Xc.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:Uo.createElement(IA,null,Uo.createElement(wA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Xc.t("Reset")))}),Uo.createElement(jc,null),Uo.createElement(yy,null)))}i(Sy,"SettingsPage");import{i18n as L0}from"@lingui/core";import{cancelSwap as P0}from"@rango-dev/queue-manager-rango-preset";import{useManager as M0}from"@rango-dev/queue-manager-react";import{Alert as _0}from"@rango-dev/ui";import up from"react";import{useParams as D0}from"react-router-dom";import{i18n as qo}from"@lingui/core";import{getCurrentNamespaceOfOrNull as C0,getCurrentStep as T0,getRelatedWalletOrNull as k0}from"@rango-dev/queue-manager-rango-preset";import{Button as dS,Divider as v0,QuoteCost as w0,StepDetails as b0,Typography as ap}from"@rango-dev/ui";import{useWallets as x0}from"@rango-dev/wallets-react";import mS from"bignumber.js";import{PendingSwapNetworkStatus as xn}from"rango-types";import Te,{useEffect as fS,useRef as gS,useState as sp}from"react";import{useNavigate as E0}from"react-router-dom";import{i18n as ho}from"@lingui/core";var AA=[ho.t("Sunday"),ho.t("Monday"),ho.t("Tuesday"),ho.t("Wednesday"),ho.t("Thursday"),ho.t("Friday"),ho.t("Saturday")];function Cy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?ho.t("Today"):`${AA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Cy,"timeSince");function Ty(t){return t.finishTime?Cy(parseInt(t.finishTime)):Cy(parseInt(t.creationTime))}i(Ty,"getSwapDate");import Nr from"react";import{i18n as Ia}from"@lingui/core";import{Button as ky,Divider as Yc,MessageBox as NA}from"@rango-dev/ui";import yo from"react";var vy=i(({onCancel:t,onClose:e})=>yo.createElement(yo.Fragment,null,yo.createElement(Yc,{size:20}),yo.createElement(NA,{type:"error",title:Ia.t("Cancel Swap"),description:Ia.t("Are you sure you want to cancel this swap?")}),yo.createElement(Yc,{size:32}),yo.createElement(ky,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Ia.t("Yes, Cancel it")),yo.createElement(Yc,{size:12}),yo.createElement(ky,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Ia.t("No, Continue"))),"CancelContent");import{i18n as Aa}from"@lingui/core";import{Button as wy,Divider as Zc,MessageBox as BA,Typography as WA}from"@rango-dev/ui";import eo from"react";var by=i(({onDelete:t,onClose:e})=>eo.createElement(eo.Fragment,null,eo.createElement(Zc,{size:20}),eo.createElement(BA,{type:"error",title:Aa.t("Delete Transaction"),description:Aa.t("Are you sure you want to delete this swap?")}),eo.createElement(Zc,{size:32}),eo.createElement(wy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Aa.t("Yes, Delete it")),eo.createElement(Zc,{size:12}),eo.createElement(wy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},eo.createElement(WA,{variant:"title",size:"medium",color:"primary"},Aa.t("No, Cancel")))),"DeleteContent");import{i18n as xy}from"@lingui/core";import{MessageBox as LA}from"@rango-dev/ui";import PA from"react";var Ey=i(t=>{let{status:e,message:o}=t,n=e==="waitingForNetworkChange"?"loading":"success",r=e==="waitingForNetworkChange"?xy.t("Change Network"):xy.t("Network Changed");return PA.createElement(LA,{type:n,title:r,description:o})},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as YA,getCurrentStep as ZA,getRelatedWalletOrNull as JA}from"@rango-dev/queue-manager-rango-preset";import{WalletState as RA}from"@rango-dev/ui";import{useWallets as e0}from"@rango-dev/wallets-react";import Ly from"react";import{i18n as wn}from"@lingui/core";import{Alert as Ay,Button as _A,Checkbox as DA,Divider as Wa,Image as $A,MessageBox as FA,Spinner as OA,WarningIcon as UA}from"@rango-dev/ui";import{useWallets as zA}from"@rango-dev/wallets-react";import he,{useState as qA}from"react";import{darkTheme as MA,styled as Ar}from"@rango-dev/ui";var Y3=Ar("div",{display:"flex",justifyContent:"center"}),Z3=Ar("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Iy=Ar("img",{width:"100%"}),Na=Ar("div",{position:"relative"}),Ba=Ar("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${MA} &`]:{$$color:"$warning600"}});var Ny=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=qA(null),{list:s}=vt(),c=oe.use.isActiveTab(),{state:l,connect:p}=zA(),u=s.find(x=>x.type===e.walletType),d=u?.needsNamespace?.data.find(x=>x.value===o?.namespace);if(!u)return null;let g=l(e.walletType),h=u.isHub&&o?.namespace?g.namespaces?.get(o.namespace):null,f=g.connecting||h?.connecting,m=u.isHub?h?.connected:g.connected,T=i(()=>m?wn.t("Done"):r?wn.t("Try again"):wn.t("Connect"),"getButtonTitle"),y=i(()=>f?he.createElement(OA,{color:"info"}):r||m?null:he.createElement(DA,{checked:!0,disabled:!0}),"getNamespaceSuffix"),C=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(x){a(x)}},"handleConnect"),k=i(async()=>{if(m){n();return}C()},"handleClickButton"),v=i(()=>{if(!m)return null;let x=u?.isHub?h?.accounts?.[0]?.split(":"):g?.accounts?.[0]?.split(":"),A=x?.[x?.length-1];return A?oo(A):null},"getAddress");return he.createElement(he.Fragment,null,he.createElement(FA,{type:"warning",title:wn.t("Connect {wallet}",{wallet:u.title}),description:wn.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:he.createElement(Na,null,he.createElement($A,{src:u.image,size:45}),he.createElement(Ba,null,he.createElement(UA,{color:"warning",size:10})))}),m&&!d&&he.createElement(he.Fragment,null,he.createElement(Wa,{size:10}),he.createElement(Ay,{type:"success",variant:"alarm",title:wn.t("Wallet connected successfully.")})),r&&!d&&he.createElement(he.Fragment,null,he.createElement(Wa,{size:10}),he.createElement(Ay,{type:"error",title:r?.message,variant:"alarm"})),d&&he.createElement(he.Fragment,null,he.createElement(Wa,{size:30}),he.createElement(Eo,{namespace:d,suffix:y(),error:r?.message,connected:m,address:v()})),he.createElement(Wa,{size:"40"}),he.createElement(_A,{loading:f,type:"primary",id:"widget-connect-wallet-btn",onClick:k,disabled:!c},T()))},"ConnectWalletContent");import{i18n as By}from"@lingui/core";import{Button as QA,Divider as HA,Image as GA,MessageBox as VA,WarningIcon as KA}from"@rango-dev/ui";import{useWallets as jA}from"@rango-dev/wallets-react";import{detectInstallLink as XA}from"@rango-dev/wallets-shared";import to from"react";var Wy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=jA(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(XA(n.installLink),"_blank"),"handleButtonClick");return to.createElement(to.Fragment,null,to.createElement(VA,{type:"warning",title:By.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:to.createElement(Na,null,to.createElement(GA,{src:n.img,size:45}),to.createElement(Ba,null,to.createElement(KA,{color:"warning",size:10})))}),to.createElement(HA,{size:"40"}),to.createElement(QA,{type:"primary",id:"widget-install-wallet-btn",onClick:r},By.t("Install")))},"InstallWalletContent");var Py=i(t=>{let{swap:e,onClose:o}=t,{state:n}=e0(),r=ZA(e),a=r?JA(e,r):null,s=a?.walletType,c=s?Wn(n(s)):null,l=r?YA(e,r):null;return s?c===RA.NOT_INSTALLED?Ly.createElement(Wy,{walletType:s}):Ly.createElement(Ny,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function Jc(t){let{isOpen:e,state:o,onClose:n,onDelete:r,onCancel:a,swap:s,message:c}=t;return Nr.createElement(R,{open:e,onClose:n,container:N()},o==="waitingForConnectingWallet"&&Nr.createElement(Py,{swap:s,message:c,onClose:n}),(o==="waitingForNetworkChange"||o==="networkChanged")&&Nr.createElement(Ey,{message:c,status:o}),o==="delete"&&Nr.createElement(by,{onClose:n,onDelete:()=>{n(),r()}}),o==="cancel"&&Nr.createElement(vy,{onClose:n,onCancel:()=>{n(),a()}}))}i(Jc,"SwapDetailsModal");import{i18n as Br}from"@lingui/core";import{Button as Rc,Divider as Wr,MessageBox as Dy,TokenAmount as t0,Typography as $y}from"@rango-dev/ui";import Ce from"react";import{Link as o0,useNavigate as n0}from"react-router-dom";var My="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",_y="/profile";function ep(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:d,diagnosisUrl:g}=t,h=n0(),{showProfileBanner:f}=oe();return Ce.createElement(R,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(tt.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement(Dy,{type:"success",title:Br.t("Swap Successful")},Ce.createElement(t0,{direction:"vertical",tooltipContainer:N(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),Ce.createElement(Wr,{size:12}),Ce.createElement($y,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Ce.createElement(Dy,{type:"error",title:Br.t("Transaction Failed"),description:d}),Ce.createElement(Wr,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,f&&Ce.createElement(Ce.Fragment,null,Ce.createElement(o0,{to:_y},Ce.createElement(Iy,{src:My,alt:"Profile Banner"})),Ce.createElement(Wr,{size:30})),Ce.createElement(Rc,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Br.t("Done"))),Ce.createElement(Wr,{size:12}),g&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Rc,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(g,"_blank")},Br.t("Diagnosis")),Ce.createElement(Wr,{size:12})),Ce.createElement(Rc,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement($y,{variant:"title",size:"medium",color:"primary"},Br.t("See Details"))))}i(ep,"SwapDetailsCompleteModal");import{i18n as Ma}from"@lingui/core";import{CopyIcon as f0,DoneIcon as g0,IconButton as h0,RangoExplorerIcon as y0,Tooltip as aS,Typography as sS,useCopyToClipboard as S0}from"@rango-dev/ui";import Nt from"react";import m0 from"react";import{i18n as c0}from"@lingui/core";import{Alert as oS,IconButton as p0,LinkIcon as u0}from"@rango-dev/ui";import So,{Fragment as d0}from"react";import{Alert as i0,ChevronDownIcon as a0,IconButton as s0}from"@rango-dev/ui";import bn,{useState as l0}from"react";import{css as Lr,darkTheme as Fy,styled as $t,Typography as r0}from"@rango-dev/ui";var Oy=$t(ae,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Fy} &`]:{color:"$secondary500"}}}}}),Uy=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),zy=$t("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),qy=$t("div",{padding:"$0 $20 $20 $20"}),eY=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),Qy=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),tY=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),zo=Lr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Fy} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Hy=Lr({padding:"$5 0"}),La=Lr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Gy=Lr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Vy=Lr({width:"100%",padding:"0 $20 $10"}),Ky=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),jy=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),Pa=$t(r0,{wordBreak:"break-word"});import{styled as tp}from"@rango-dev/ui";var Xy=tp("div",{display:"flex",flexDirection:"column",gap:"$10"}),Yy=tp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Zy=tp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Jy(t){let{message:e}=t,[o,n]=l0(!1);return bn.createElement(i0,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&bn.createElement(s0,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},bn.createElement(Yy,{rotated:o},bn.createElement(a0,{size:12,color:"gray"}))),footer:bn.createElement(Zy,{open:o},bn.createElement(Pa,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Jy,"FailedAlert");import{i18n as Ry}from"@lingui/core";import{Alert as op,Button as eS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as np}from"rango-types";import Pr from"react";function tS(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Pr.createElement(op,{type:"warning",id:"widget-swap-details-change-network-alert",title:n.shortMessage,action:Pr.createElement(eS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(np.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Ry.t("Change"))}):r===np.WaitingForConnectingWallet?Pr.createElement(op,{type:"warning",title:n.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Pr.createElement(eS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(np.WaitingForConnectingWallet)}},Ry.t("Connect"))}):Pr.createElement(op,{id:"widget-swap-details-short-alert",type:"warning",title:n.shortMessage})}i(tS,"WarningAlert");function rp(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,c=Vn(a),l=a.status==="waitingForApproval"&&!c,p=a.status==="running"&&!c,u=p&&!s||l&&!a.explorerUrl?.length;return So.createElement(Xy,null,a.explorerUrl?.map((d,g,h)=>{let f=g+d.url,m=g===h.length-1,T=(m&&p||l)&&!u,y=m&&a.status==="failed";return So.createElement(d0,{key:f},So.createElement(oS,{id:"widget-swap-details-tx-alert",type:m&&(T&&"loading"||y&&"error")||"success",title:d.description?`${d.description} Tx`:c0.t("View transaction"),action:d.url&&So.createElement(p0,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},So.createElement(u0,{size:12}))}))}),u&&So.createElement(oS,{id:"widget-swap-details-loading-alert",type:"loading",title:r.shortMessage}),a.status!=="failed"&&c&&So.createElement(tS,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&So.createElement(Jy,{message:r}))}i(rp,"SwapDetailsAlerts");var nS=2e3;var rS=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:gt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:_(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:gt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:_(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:In(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:gt(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:gt(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:In(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:m0.createElement(rp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function iS(t){if(Vn(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(iS,"getStepState");function lS(t){let{requestId:e}=t,[o,n]=S0(nS);return Nt.createElement(zy,{className:zo()},Nt.createElement(sS,{variant:"label",size:"large",color:"neutral700"},Ma.t("Request ID")),Nt.createElement("div",{className:La()},Nt.createElement(sS,{variant:"label",size:"small",color:"neutral700"},e),Nt.createElement(aS,{container:N(),content:o?Ma.t("Copied To Clipboard"):Ma.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Nt.createElement(h0,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Nt.createElement(g0,{size:16,color:"secondary"}):Nt.createElement(f0,{size:16,color:"gray"}))),Nt.createElement(Ky,{target:"_blank",href:`${Mp}/swap/${e}`},Nt.createElement(aS,{container:N(),content:Ma.t("View on Rango Explorer"),side:"bottom"},Nt.createElement(y0,{size:20})))))}i(lS,"RequestIdRow");import{i18n as cS}from"@lingui/core";import{Typography as pS}from"@rango-dev/ui";import ip from"react";function uS(t){let{date:e,isFinished:o}=t;return ip.createElement("div",{className:zo()},ip.createElement(pS,{variant:"label",size:"large",color:"neutral700"},o?cS.t("Finished at"):cS.t("Created at")),ip.createElement(pS,{variant:"label",size:"small",color:"neutral700"},e))}i(uS,"SwapDateRow");function lp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=x0(),l=S().blockchains(),p=S().swappers(),{findToken:u}=S(),d=O.use.retry(),g=E0(),h=gS(null),[f,m]=sp(!1),[T,y]=sp(null),[C,k]=sp(null),v=gS(!1),x=Be.use.getNotifications(),A=Be.use.removeNotification(),I=x(),E=T0(e),b=E?.networkStatus,w=i(ve=>{m(!0),y(ve)},"handleChangeModalState"),B=i(()=>{m(!1)},"handleCloseModal");fS(()=>{I.find(je=>je.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(k(e.status),A(e.requestId),B()):C&&k(null))},[e.status,e.requestId]),fS(()=>{te?w(xn.WaitingForNetworkChange):b===xn.WaitingForConnectingWallet?w(xn.WaitingForConnectingWallet):b===xn.NetworkChanged&&w(xn.NetworkChanged),!te&&v.current&&B(),v.current=te},[b]);let M=$d(e),$=E?C0(e,E):null,q=E?k0(e,E):null,ee=Ty(e),V=Fd(e),L=i(ve=>!!c(ve)?.mobileWallet,"isMobileWallet"),te=b===xn.WaitingForNetworkChange&&!!$&&!!q?.walletType&&(L(q.walletType)||a(q.walletType,$.network)),le=te?s.bind(null,q.walletType,[{namespace:$.namespace,network:$.network}]):void 0,J=Dd(e,E,c),X=rS({swap:e,switchNetwork:le,showNetworkModal:b,setNetworkModal:w,message:J,blockchains:l,swappers:p}),j=X.length,[ue,de]=[e.steps[0],e.steps[j-1]],ke=de.outputAmount||de.expectedOutputAmountHumanReadable,H=e.steps.reduce((ve,je)=>ve+parseFloat(je.feeInUsd||""),0),W=e.steps.find(ve=>ve.diagnosisUrl)?.diagnosisUrl,Q=_(parseFloat(ke||"0")*(de.toUsdPrice||0),4,4),K=_(parseFloat(e.inputAmount)*(ue.fromUsdPrice||0),4,4),Y=ke?new mS(ke).multipliedBy(de.toUsdPrice||0).toString():"",ye=new mS(e.inputAmount).multipliedBy(ue.fromUsdPrice||0).toString(),Qe=Qt(K,Q),Oe=J.detailedMessage.content||J.shortMessage,kt=e.status==="success"?qo.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:_(ke,6,6),token:X[j-1].to.token.displayName,conciseAddress:oo(e.wallets[X[j-1].to.chain.displayName]?.address||""),chain:X[j-1].to.chain.displayName}}):Te.createElement(jy,null,Te.createElement(ap,{variant:"body",size:"medium",color:"neutral700",align:"center"},Oe?"":qo.t("Transaction was not sent."),M?`${qo.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:M.outputAmount,symbol:M.symbol,blockchain:M.blockchain}})}`:""),Oe&&Te.createElement(Pa,{align:"center",variant:"body",size:"medium",color:"neutral700"},Te.createElement("b",null,"Reason:")," ",Oe));return Te.createElement(ie,{header:{title:qo.t("Swap Details"),onCancel:e.status==="running"?()=>w("cancel"):void 0,suffix:e.status!=="running"&&Te.createElement(ao,null,Te.createElement(dS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>w("delete")},Te.createElement(ap,{size:"medium",variant:"label",color:"error"},qo.t("Delete"))))},footer:V&&!C&&Te.createElement(dS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let ve=Ci(e,l,u);d(ve),setTimeout(()=>{g("../../")},0)}},qo.t("Try again"))},Te.createElement(Oy,{compact:!0,ref:h},Te.createElement(lS,{requestId:o}),Te.createElement(uS,{date:ee,isFinished:!!e.finishTime}),Te.createElement("div",{className:Gy()},Te.createElement(w0,{fee:_(String(H),2,2),time:Nn(Kr(e.steps)),steps:j}),Te.createElement(rr,{from:{price:{value:_(e.inputAmount,6,6),usdValue:K,realUsdValue:ye,realValue:e.inputAmount},token:{displayName:X[0].from.token.displayName,image:X[0].from.token.image},chain:{image:X[0].from.chain.image,displayName:X[0].from.chain.displayName}},to:{price:{value:_(ke,6,6),usdValue:Q,realUsdValue:Y,realValue:ke||""},token:{displayName:X[j-1].to.token.displayName,image:X[j-1].to.token.image},chain:{image:X[j-1].to.chain.image,displayName:X[j-1].to.chain.displayName}},percentageChange:_(Qe,2,2),warningLevel:Ht(Qe??0)})),Te.createElement("div",{className:Vy()},Te.createElement(ap,{variant:"title",size:"small"},qo.t("Swaps steps"))),Te.createElement(v0,{size:8}),Te.createElement(qy,null,X.map((ve,je)=>{let Dr=je,En=iS(e.steps[je]),QS=En==="error"||En==="in-progress"||En==="warning"||En==="completed"&&je===X.length-1;return Te.createElement(b0,{className:"widget-swap-details-step-item-container",key:Dr,step:ve,type:"swap-progress",ref:h,state:En,hasSeparator:je!==0,tabIndex:Dr,isFocused:QS,tooltipContainer:N()})}))),Te.createElement(Jc,{isOpen:f,state:T,onClose:B,onCancel:r,onDelete:n,message:J.detailedMessage.content,swap:e}),Te.createElement(ep,{open:!!C,diagnosisUrl:W,onClose:()=>k(null),status:e.status==="success"?"success":"failed",priceValue:_(ke,6,6),usdValue:Q,realUsdValue:Y,realValue:ke||"",percentageChange:_(Qe,2,2),token:{displayName:X[j-1].to.token.displayName,image:X[j-1].to.token.image},chain:{image:X[j-1].to.chain.image},description:kt}))}i(lp,"SwapDetails");import{i18n as Da}from"@lingui/core";import{Divider as SS,NotFound as W0,Skeleton as _r,Typography as $a}from"@rango-dev/ui";import Ae from"react";import{i18n as I0}from"@lingui/core";import{Divider as A0,Skeleton as N0,Typography as B0}from"@rango-dev/ui";import Ie from"react";import{css as Bt,styled as cp}from"@rango-dev/ui";var hS=cp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Mr=cp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),_a=cp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),A7=Bt({display:"flex",justifyContent:"space-between",alignItems:"center"}),N7=Bt({display:"flex",justifyContent:"space-between",alignItems:"center"}),B7=Bt({paddingTop:"$15",display:"flex"}),W7=Bt({padding:"$15 $0"}),L7=Bt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),P7=Bt({paddingBottom:"$10"}),M7=Bt({display:"flex",justifyContent:"start",alignItems:"center"}),_7=Bt({paddingTop:"$5",display:"flex",alignItems:"center"}),D7=Bt({display:"flex",alignItems:"center"}),$7=Bt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),yS=Bt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function pp(){return Ie.createElement(hS,null,Ie.createElement(ar,{type:"swap-preview"}),Ie.createElement("div",{className:"swaps-steps"},Ie.createElement(B0,{variant:"title",size:"small"},I0.t("Swaps steps"))),Ie.createElement(Ie.Fragment,null,Ie.createElement(Mr,null,Ie.createElement(_t,{separator:!1}),Ie.createElement("div",{className:yS()},Ie.createElement(A0,{direction:"horizontal",size:20}),Ie.createElement(N0,{height:22,variant:"rectangular"}))),Ie.createElement(_a,null),Ie.createElement(Mr,null,Ie.createElement(_t,{separator:!1})),Ie.createElement(_a,null),Ie.createElement(Mr,null,Ie.createElement(_t,{separator:!1})),Ie.createElement(_a,null),Ie.createElement(Mr,null,Ie.createElement(_t,{separator:!1}))))}i(pp,"LoadingSwapDetails");function CS(t){let{requestId:e,showSkeleton:o}=t;return Ae.createElement(ie,{header:{title:Da.t("Swap Details"),suffix:Ae.createElement(ao,null)}},o&&Ae.createElement(Uy,null,Ae.createElement("div",{className:zo()},Ae.createElement($a,{variant:"label",size:"large",color:"neutral700"},`${Da.t("Request ID")}`),Ae.createElement("div",{className:La()},Ae.createElement($a,{variant:"label",size:"small",color:"neutral700"},Ae.createElement(_r,{width:60,height:10,variant:"rounded"})),Ae.createElement(SS,{direction:"horizontal",size:4}),Ae.createElement(_r,{width:16,height:16,variant:"rectangular"}),Ae.createElement(SS,{direction:"horizontal",size:4}),Ae.createElement(_r,{width:16,height:16,variant:"rectangular"}))),Ae.createElement("div",{className:zo()},Ae.createElement($a,{className:Hy(),variant:"label",size:"large",color:"neutral700"},Ae.createElement(_r,{width:60,height:10,variant:"rounded"})),Ae.createElement($a,{variant:"label",size:"small",color:"neutral700"},Ae.createElement(_r,{width:60,height:10,variant:"rounded"}))),Ae.createElement(pp,null)),!o&&Ae.createElement(Qy,null,Ae.createElement(W0,{title:Da.t("Not found"),description:Da.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(CS,"SwapDetailsPlaceholder");function TS(){let{manager:t,state:e}=M0(),o=!e.loadedFromPersistor,n=Ct(t),{requestId:r}=D0(),a=Ve(),{fetchStatus:s}=S();if(!r)return up.createElement(_0,{containerStyles:{margin:"20px"},type:"error",title:L0.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:g})=>g.requestId===r):void 0,p=i(()=>{if(l?.id){let g=t?.get(l.id);g&&P0(g)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(g){console.log(g)}},"onDelete"),d=l?.swap;return!d||c?up.createElement(CS,{requestId:r,showSkeleton:c}):up.createElement(lp,{swap:d,requestId:r,onCancel:p,onDelete:u})}i(TS,"SwapDetailsPage");import{i18n as kS}from"@lingui/core";import{Divider as $0,getCategoriesCount as F0,SelectableCategoryList as O0,styled as wS,Typography as U0,Wallet as z0,WalletState as q0}from"@rango-dev/ui";import{useWallets as Q0}from"@rango-dev/wallets-react";import Ft,{useState as vS}from"react";var H0=wS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),G0=wS(ae,{textAlign:"center"});function bS(){let{fetchStatus:t}=S(),[e,o]=vS("ALL"),n=S().blockchains(),{config:r}=S(),{state:a}=Q0(),[s,c]=vS(),l=oe.use.isActiveTab(),{list:p}=vt(),u=cu(p,n),g=F0(u)!==1,h=pu(p,e),f=i(m=>{Hp(p,r.multiWallets)||c(m)},"handleWalletItemClick");return Ft.createElement(ie,{header:{title:kS.t("Connect Wallets")}},Ft.createElement(G0,null,g&&Ft.createElement(Ft.Fragment,null,Ft.createElement(O0,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),Ft.createElement($0,{size:24})),Ft.createElement(U0,{variant:"title",size:"xmedium",align:"center"},kS.t("Choose a wallet to connect.")),Ft.createElement(H0,null,h.map((m,T)=>{let C=a(m.type).namespaces,k=`wallet-${T}-${m.type}`,v=Ja(m,C);return Ft.createElement(z0,{key:k,...m,state:v?q0.PARTIALLY_CONNECTED:m.state,container:N(),onClick:()=>f(m),isLoading:t==="loading",disabled:!l})}),Ft.createElement(Hn,{id:"widget-state-full-connect-modal",wallet:s,onClose:()=>{c(void 0)}}))))}i(bS,"WalletsPage");function xS(){return qd(),Os(),V0([{path:F.home,element:qe.createElement(Oh,null)},{path:F.routes,element:qe.createElement(Hh,null)},{path:F.fromSwap,children:[{index:!0,element:qe.createElement(ba,{type:"source"})},{path:F.blockchains,element:qe.createElement(Ta,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:qe.createElement(ba,{type:"destination"})},{path:F.blockchains,element:qe.createElement(Ta,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:qe.createElement(Sy,null)},{path:F.languages,element:qe.createElement(zh,null)},{path:F.exchanges,element:qe.createElement(Dc,{sourceType:"Exchanges"})},{path:F.bridges,element:qe.createElement(Dc,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:qe.createElement(zg,null)},{path:F.addCustomTokens,children:[{index:!0,element:qe.createElement(Dm,null)},{path:F.blockchains,element:qe.createElement(Ta,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:qe.createElement(sh,null)},{path:F.swapDetails,element:qe.createElement(TS,null)}]},{path:F.wallets,element:qe.createElement(bS,null)},{path:F.confirmSwap,element:qe.createElement(Ig,null)}])}i(xS,"AppRoutes");import{useQueueManager as tN}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as oN}from"rango-sdk";import{useContext as nN,useEffect as LS,useState as PS}from"react";import{globalCss as K0}from"@rango-dev/ui";var ES=i(()=>K0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function IS(){let{setWatermark:t,setShowProfileBanner:e}=oe();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Ut("BASE_URL")}/meta/dapp/config?apiKey=${Ut("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(IS,"useFetchApiConfig");import{useWallets as j0}from"@rango-dev/wallets-react";import{useEffect as X0,useRef as Y0}from"react";function AS(){let{connect:t,state:e}=j0(),o=Y0({}),{fetchStatus:n}=S(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);X0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(AS,"useForceAutoConnect");import{isApprovalTX as Z0,RouteEventType as NS,StepEventType as BS,StepExecutionEventStatus as J0,WidgetEvents as Fa}from"@rango-dev/queue-manager-rango-preset";import{useEffect as WS}from"react";function dp(){let t=Be.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=S();WS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===BS.TX_EXECUTION&&s.status===J0.TX_SENT&&!Z0(c)||s.type===BS.SUCCEEDED){let u=[],d=l.wallets[c?.fromBlockchain];if(d){let g=e.find(h=>h.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&h.walletType===d.walletType&&h.chain===c?.fromBlockchain);g&&u.push(g)}if(c?.fromBlockchain!==c?.toBlockchain){let g=l.wallets[c?.toBlockchain];if(g){let h=e.find(f=>f.address?.toLocaleLowerCase()===g.address?.toLocaleLowerCase()&&f.walletType===g.walletType&&f.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let g=n(),f=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(m=>g.some(T=>T.blockchain===m.blockchain&&T.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&T.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:f,shouldFetchCustomTokens:f.length>0})}}t(s,l)},"handleStepEvent");return we.on(Fa.StepEvent,r),()=>we.off(Fa.StepEvent,r)},[we,e]),WS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===NS.FAILED||s.type===NS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return we.on(Fa.RouteEvent,r),()=>we.off(Fa.RouteEvent,r)},[we])}i(dp,"useSubscribeToWidgetEvents");import{useManager as R0}from"@rango-dev/queue-manager-react";import{useEffect as eN}from"react";function mp(){let{isSynced:t,syncNotifications:e}=Be(),{manager:o,state:n}=R0();eN(()=>{Be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Ct(o))},[Be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(mp,"useSyncNotifications");function fp(){AS(),ES(),dp(),mp();let t=S().blockchains(),{canSwitchNetworkTo:e}=qi(),[o,n]=PS(null),[r,a]=PS(),s=nN(hi),c=t.filter(oN),{fetchApiConfig:l}=IS();LS(()=>()=>zd(),[]),tN({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),LS(()=>(xo.init(),Be.persist.hasHydrated()||Be.persist.rehydrate(),s.onConnectWallet(p=>{n(u=>{if(!u||u.walletType!==p.walletType)return p;let d={...u};return p.network&&(d.network=p.network),p.accounts&&(d.accounts=p.accounts),d})}),s.onDisconnectWallet(p=>{a(p),n(u=>p===u?.walletType?null:u)}),l().catch(console.log),xo.destroy),[])}i(fp,"useBootstrap");import{styled as rN}from"@rango-dev/ui";var MS=rN("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Oa(){fp();let{config:t}=S(),{activeTheme:e}=io(t?.theme||{}),{activeLanguage:o}=fo();return gp.createElement(iN,{language:o},gp.createElement(MS,{id:"swap-container",className:e()},gp.createElement(xS,null)))}i(Oa,"Main");import{setSolanaSignerConfig as xN}from"@rango-dev/signer-solana";import yp,{useEffect as US,useMemo as EN}from"react";import{useState as aN}from"react";var sN=i(()=>{let[t,e]=aN(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Qp(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),_S=sN;import{checkWaitingForNetworkChange as lN,makeQueueDefinition as cN}from"@rango-dev/queue-manager-rango-preset";import{Provider as pN}from"@rango-dev/queue-manager-react";import{useWallets as uN}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as dN}from"@rango-dev/wallets-shared";import{isEvmBlockchain as mN}from"rango-types";import fN,{useMemo as gN}from"react";function hN(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=uN(),c=gN(()=>cN({API_KEY:t.apiKey||Ut("API_KEY"),BASE_URL:Ut("BASE_URL"),emitter:{emit:we.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=S(),u=l(),d={blockchains:p.map(v=>({accounts:[v],name:v.chain}))},g=i(async(v,x)=>a(v,x.network)?await r(v,[x]):void 0,"switchNetwork"),h=i(v=>!!s(v).mobileWallet,"isMobileWallet"),f=u.filter(v=>v.enabled).reduce((v,x)=>(v[x.name]=x,v),{}),m=u.filter(mN),T=i(v=>{let{supportedChains:x}=s(v);return Ln(x)},"getSupportedChainNames"),y=e(),C={meta:{blockchains:f,evmBasedChains:m,evmNetworkChainInfo:dN(m),getSupportedChainNames:T},getSigners:o,wallets:d,providers:y,switchNetwork:g,canSwitchNetworkTo:a,state:n,isMobileWallet:h},k=oe.use.isActiveTab();return fN.createElement(pN,{queuesDefs:[c],context:C,onPersistedDataLoaded:v=>{lN(v)},isPaused:!k},t.children)}i(hN,"QueueManager");var DS=hN;import{useManager as kN}from"@rango-dev/queue-manager-react";import vN,{createContext as wN,useContext as bN}from"react";function $S(){let{findToken:t}=S(),e=S().blockchains(),o=S().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=O();return i(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:g,toToken:h,requestAmount:f}=p,m={blockchains:e,tokens:o};if(u!==void 0){let T=e.find(y=>y.name===u)??null;n(T)}if(d!==void 0){let T=d?t(d)??null:null;r({meta:m,token:T})}if(g!==void 0){let T=e.find(y=>y.name===g)??null;a(T)}if(h!==void 0){let T=h?t(h)??null:null;s({meta:m,token:T})}f!==void 0&&c(f)},"updateQuoteInputs")}i($S,"useUpdateQuoteInputs");import{cancelSwap as yN,getCurrentNamespaceOfOrNull as SN,getCurrentStep as CN,getRelatedWalletOrNull as TN}from"@rango-dev/queue-manager-rango-preset";var Ua=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Ct(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Ci(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&yN(o)}getCurrentStepInfo(e){let o=CN(e);return{step:o,wallet:o?TN(e,o):null,network:o?SN(e,o)?.network:null}}};var FS=wN(void 0);function hp(t){let{manager:e}=kN(),o=oe.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=S(),l=new Ua(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=S(),u=nu(a()),d=S().blockchains(),g=S().tokens(),h=S().swappers(),f=S().fetchStatus,m=fo().resetLanguage,T=Be().getNotifications(),y=Be().clearNotifications,C=$S(),{fromBlockchain:k,toBlockchain:v,fromToken:x,toToken:A,inputAmount:I}=O(),E={isActiveTab:o,setCurrentTabAsActive:xo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async b=>c(b)},meta:{blockchains:d,tokens:g,swappers:h,loadingStatus:f,findToken:r},resetLanguage:m,notifications:{list:T,clearAll:y},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:v?.name??null,toToken:A?{symbol:A.symbol,blockchain:A.blockchain,address:A.address}:null,requestAmount:I},updateQuoteInputs:C}};return vN.createElement(FS.Provider,{value:E},t.children)}i(hp,"WidgetInfo");function OS(){let t=bN(FS);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(OS,"useWidget");function za(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=_S();return US(()=>{n&&r(n)},[n]),EN(()=>{uu({API_KEY:o?.apiKey||qr,BASE_URL:o?.apiUrl||Pp})},[o.apiKey,o.apiUrl]),US(()=>{t.config?.signers?.customSolanaRPC&&xN("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),yp.createElement(yi,{config:o,onUpdateState:e},yp.createElement(DS,{apiKey:o.apiKey},yp.createElement(hp,null,t.children)))}i(za,"WidgetProvider");function zS(t){let e=t.config?.externalWallets;return qa.createElement(cd,null,e?qa.createElement(Oa,null):qa.createElement(za,{config:t.config??Ur},qa.createElement(Oa,null)))}i(zS,"Widget");function qS(){let{on:t,off:e}=we;return{on:t,off:e}}i(qS,"useWidgetEvents");var HR={DerivationPath:zn,Namespaces:On,Detached:Un,isOnDerivationPath:Qn,isOnNamespace:qn,isOnDetached:Co};export{hR as EventSeverity,Xo as MainEvents,ER as Networks,NR as PendingSwapNetworkStatus,ns as QuoteEventTypes,yR as RouteEventType,Va as SUPPORTED_FONTS,HR as StatefulConnect,SR as StepEventType,CR as StepExecutionBlockedEventStatus,TR as StepExecutionEventStatus,tt as UI_ID,is as UiEventTypes,rs as WalletEventTypes,bR as WalletEvents,IR as WalletTypes,zS as Widget,Xo as WidgetEvents,za as WidgetProvider,yi as WidgetWallets,el as customizedThemeTokens,vR as readAccountAddress,Qo as useStatefulConnect,vt as useWalletList,qi as useWallets,OS as useWidget,qS as useWidgetEvents,VC as widgetEventEmitter};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|