@rango-dev/widget-embedded 0.51.1-next.1 → 0.51.1-next.11
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/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
- package/dist/components/HeaderButtons/WalletButton.d.ts.map +1 -1
- package/dist/components/HistoryGroupedList/HistoryGroupedList.d.ts.map +1 -1
- package/dist/components/Layout/Layout.constants.d.ts +5 -3
- package/dist/components/Layout/Layout.constants.d.ts.map +1 -1
- package/dist/components/Layout/Layout.d.ts.map +1 -1
- package/dist/components/Layout/Layout.styles.d.ts.map +1 -1
- package/dist/components/TokenList/TokenList.d.ts.map +1 -1
- package/dist/components/TokenList/TokenList.styles.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/ConnectStatus.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/Detached.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/Namespaces.d.ts.map +1 -1
- package/dist/containers/App/App.styles.d.ts.map +1 -1
- package/dist/hooks/useScreenDetect.d.ts.map +1 -1
- package/dist/hooks/useWalletList.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +4 -4
- package/dist/pages/HistoryPage.d.ts.map +1 -1
- package/dist/pages/SelectBlockchainPage.d.ts.map +1 -1
- package/dist/pages/WalletsPage.d.ts.map +1 -1
- package/dist/store/slices/data.d.ts.map +1 -1
- package/dist/types/config.d.ts +0 -15
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/common.d.ts +2 -1
- package/dist/utils/common.d.ts.map +1 -1
- package/dist/utils/wallets.d.ts +6 -13
- package/dist/utils/wallets.d.ts.map +1 -1
- package/dist/widget-embedded.build.json +1 -1
- package/package.json +10 -10
- package/src/components/ConfirmWalletsModal/WalletList.tsx +10 -9
- package/src/components/HeaderButtons/WalletButton.tsx +4 -2
- package/src/components/HistoryGroupedList/HistoryGroupedList.tsx +5 -0
- package/src/components/Layout/Layout.constants.ts +5 -3
- package/src/components/Layout/Layout.styles.ts +12 -5
- package/src/components/Layout/Layout.tsx +18 -32
- package/src/components/SwapDetailsModal/SwapDetailsModal.WalletState.tsx +3 -3
- package/src/components/TokenList/TokenList.styles.ts +4 -0
- package/src/components/TokenList/TokenList.tsx +5 -0
- package/src/components/WalletStatefulConnect/ConnectStatus.tsx +6 -3
- package/src/components/WalletStatefulConnect/Detached.tsx +16 -4
- package/src/components/WalletStatefulConnect/Namespaces.tsx +16 -4
- package/src/containers/App/App.styles.ts +1 -0
- package/src/hooks/useScreenDetect.ts +7 -1
- package/src/hooks/useWalletList.ts +2 -5
- package/src/pages/HistoryPage.tsx +3 -0
- package/src/pages/SelectBlockchainPage.tsx +14 -5
- package/src/pages/WalletsPage.tsx +1 -20
- package/src/store/slices/data.ts +2 -13
- package/src/types/config.ts +1 -15
- package/src/utils/common.ts +16 -1
- package/src/utils/wallets.ts +42 -52
- package/dist/hooks/useDeepLink.d.ts +0 -7
- package/dist/hooks/useDeepLink.d.ts.map +0 -1
- package/src/hooks/useDeepLink.ts +0 -48
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var kC=Object.defineProperty;var i=(t,e)=>kC(t,"name",{value:e,configurable:!0});import{EventSeverity as _ee,RouteEventType as Dee,StepEventType as $ee,StepExecutionBlockedEventStatus as Fee,StepExecutionEventStatus as Oee}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as zee}from"@rango-dev/wallets-core/legacy";import{useWallets as Ji,Events as Qee}from"@rango-dev/wallets-react";import{Networks as Gee,WalletTypes as Vee}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as jee}from"rango-types";import{Divider as HT}from"@rango-dev/ui";import po,{useEffect as QT,useRef as qT,useState as vd}from"react";import{WalletState as TC}from"@rango-dev/ui";import{useWallets as wC}from"@rango-dev/wallets-react";import{useReducer as vC}from"react";function Hp(t){return!!t.derivationPath}i(Hp,"isStateOnDerivationPathStep");function Qp(t){return!!t.namespace}i(Qp,"isStateOnNamespace");var ei={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function qp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return ei;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:ei;default:throw new Error("Action hasn't been defined.")}}i(qp,"reducer");function Ro(){let{state:t,disconnect:e,connect:o}=wC(),[n,r]=vC(qp,ei),a=i(async(d,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(d,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(d,f)=>{if(d.state===TC.DISCONNECTED){let g=!!d.isHub,m=g?d.properties?.find(y=>y.name==="namespaces")?.value:d.needsNamespace,C=g?d.properties?.find(y=>y.name==="derivationPath")?.value:d.needsDerivationPath;if(!m?.data?.length)return await a(d.type,void 0,f);if(m?.data.length&&m.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(m?.data.length===1&&m.data[0]){if(C){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})),f)}}if(d.isHub){let g=d.properties?.find(m=>m.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(d,f)=>{let h=!!d.isHub,g=h?d.properties?.find(T=>T.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(T=>T.name==="derivationPath")?.value:d.needsDerivationPath,C=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(C&&m)return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y}}),{status:"derivation-path"};if(!Qp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let S=f.map(T=>({namespace:T}));return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:S??null}}),{status:"Detached"}},"handleNamespace"),l=i(async(d,f)=>{if(!f)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Hp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let h=n.derivationPath.providerType,m=[{namespace:n.derivationPath.namespace,derivationPath:f}],y=!!d.isHub?d.properties?.find(S=>S.name==="namespaces")?.value:d.needsNamespace;return y?.data&&y.data.length>1?(r({type:"detached",payload:{targetWallet:d,selectedNamespaces:m??null,derivationPath:f}}),{status:"Detached"}):await a(h,m)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let f=t(d.type);return f.connected||f.connecting?(await e(d.type),Ao(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(Ro,"useStatefulConnect");import{WalletState as Ns}from"@rango-dev/ui";import{useWallets as _k}from"@rango-dev/wallets-react";import{detectMobileScreens as Dk,KEPLR_COMPATIBLE_WALLETS as $k,WalletTypes as Jn}from"@rango-dev/wallets-shared";import{useCallback as Fk,useEffect as Ok}from"react";import Ak,{createContext as Nk,useContext as Wk,useEffect as Bk,useRef as Lk}from"react";import{create as Ek}from"zustand";import{persist as Ik}from"zustand/middleware";import{allProviders as bC}from"@rango-dev/provider-all";var is=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()}},en=new is;import{defineVersions as Vp,pickVersion as Kp,Provider as as}from"@rango-dev/wallets-core";function jp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=ss(a);return s instanceof as?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 as?o.push(Vp().version("1.0.0",n).build()):o.push(Vp().version("0.0.0",n).build())}),o}return t}i(jp,"matchAndGenerateProviders");function ss(t){try{return Kp(t,"1.0.0")[1]}catch{return Kp(t,"0.0.0")[1]}}i(ss,"pickProviderVersionWithFallbackToLegacy");function Xp(t){return t.map(o=>ss(o)).map(o=>o instanceof as?o.id:o.config.type)}i(Xp,"configWalletsToWalletName");function ti(t,e){return e.find(o=>o.name===t)?.displayName}i(ti,"getBlockchainDisplayNameFor");function yt(t,e){return e.find(o=>o.name===t)?.shortName}i(yt,"getBlockchainShortNameFor");function Yp(t,e){return e.find(o=>o.name===t)?.logo}i(Yp,"getBlockchainImage");function Qn(t,e){return e.find(o=>o.id===t)?.title}i(Qn,"getSwapperDisplayName");function No(t,e){return e.find(o=>o.name===t)??null}i(No,"findBlockchain");function ls(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(ls,"isTokenNative");function St(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(St,"createTokenHash");function tn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(tn,"isValidTokenAddress");function qn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=St(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{let p=o.tokensMapByBlockchainName[l];!c.has(l)&&p&&a(p)})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded&&o.tokensMapByBlockchainName[c]?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=St(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(qn,"matchTokensFromConfigWithMeta");function oi(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(oi,"getSupportedBlockchainsFromConfig");function Jp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Jp,"makeProvidersOptionsFromConfig");var on={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"}},xC={clientUrl:void 0},EC={liquiditySources:void 0};function Zp(t){let e=Jp(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 bC(o).map(a=>a())}i(Zp,"generateProviders");var Rp=i((t,e,o)=>{let n=Zp({...on,...t});return{config:{...on,...t},iframe:xC,campaignMode:EC,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=qn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=qn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});en.set("supportedSourceTokens",l),en.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=Zp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Jp(a);return jp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as eu}from"rango-types";var tu=[eu.EVM,eu.SOLANA],ni="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as zC}from"rango-sdk";import{UI_ID as IC}from"@rango-dev/ui";var ri="c6381a79-2817-4602-83bf-6a641a409e32",ou="https://api.rango.exchange",nu="https://explorer.rango.exchange",ot={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...IC};import{BlockchainCategories as PC,WalletState as pt}from"@rango-dev/ui";import{legacyReadAccountAddress as _C}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as DC,getCosmosExperimentalChainInfo as $C,isEvmAddress as FC,KEPLR_COMPATIBLE_WALLETS as MB,Networks as bu}from"@rango-dev/wallets-shared";import rn from"bignumber.js";import{isCosmosBlockchain as OC}from"rango-types";import AC from"bignumber.js";var de=new AC(0);import{WalletTypes as NC}from"@rango-dev/wallets-shared";var Wo="~",ru=[NC.LEAP];import{BlockchainCategories as ps,WalletState as MC}from"@rango-dev/ui";import{TransactionType as ii}from"rango-sdk";var iu="Roboto",cs=[{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 nn(t){return Array.from(new Set(t))}i(nn,"removeDuplicateFrom");function ai(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(ai,"debounce");function ct(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(ct,"containsText");function lu(t,e){return t.toLowerCase()===e.toLowerCase()}i(lu,"exactText");function cu(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(cu,"startWithText");var W=i(()=>document.getElementById(ot.SWAP_BOX_ID),"getContainer"),Bo=i(()=>document.getElementById(ot.EXPANDED_BOX_ID),"getExpanded");function pu(t,e,o){let n=!!e&&lu(e,t),r=!!o&&lu(o,t);return n!==r?n?-1:1:0}i(pu,"compareExactMatchText");function us(t,e,o){let n=!!e&&ct(e,t),r=!!o&&ct(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(us,"compareContainsText");function ds(t,e,o){let n=!!e&&cu(e,t),r=!!o&&cu(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ds,"compareStartWithText");function uu(t,e,o){if(!o)return 0;let n=pu(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=pu(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ds(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=us(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ds(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=us(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ds(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=us(o,t.address,e.address);if(r!==0)return r}return 0}i(uu,"compareWithSearchFor");var si=i((t,e)=>{switch(e){case ps.ALL:return!0;case ps.UTXO:return t===ii.TRANSFER;case ps.OTHER:return t!==ii.TRANSFER&&t!==ii.COSMOS&&t!==ii.EVM;default:return t===e}},"isBlockchainTypeInCategory"),du=i(t=>cs.find(o=>o.value===t)?.url,"getFontUrlByName");function mu(t,e){let o=!!t.find(n=>n.state===MC.CONNECTED);return e===!1&&o}i(mu,"isSingleWalletActive");function fu(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(fu,"memoizedResult");import{BigNumber as wu}from"bignumber.js";function gu(t){return t.replace(/^0+(?=\d)/g,"")}i(gu,"removeLeadingZeros");function hu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(hu,"ensureLeadingZeroForDecimal");function yu(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(yu,"formatThousandsWithCommas");function Su(t){return t.replace(/\s+/g,"-")}i(Su,"replaceSpacesWithDash");function Cu(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(Cu,"stripTrailingZeros");function li(t){return/^0+(?:\.0+)?$/.test(t)}i(li,"isZeroValue");function ku(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(ku,"isValidCurrencyFormat");function Tu(t){return/\d+$/.test(t)}i(Tu,"isColorKeyOverridden");var Gn=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"),P=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new wu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new wu(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 ci=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Pt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Vn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function vu(t){return li(t)?"0":Cu(t)}i(vu,"sanitizeInputAmount");function Kn(t){return t.connected?pt.CONNECTED:t.connecting?pt.CONNECTING:t.installed?pt.DISCONNECTED:pt.NOT_INSTALLED}i(Kn,"mapStatusToWalletState");function xu(t,e,o,n){return o.filter(r=>!ru.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:d,properties:f,isHub:h}=e(r),g=nn(u.map(C=>C.type)),m=Kn(t(r));return{title:a,image:s,link:DC(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:d,properties:f,isHub:h}})}i(xu,"mapWalletTypesToWalletInfo");function jn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(jn,"walletAndSupportedChainsNames");function fs(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(f=>f.chain===l)){let f={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(f)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=_C(l),d=c.length>0,f=c.includes(u),h=u===bu.Unknown;if(d&&!f&&!h)return;let m=u===bu.Unknown&&FC(p);if(h&&!m)return;o.includes(u)||m?r?s(u,p.toLowerCase(),r):c.filter(S=>o.includes(S)).forEach(S=>{s(S,p.toLowerCase())}):s(u,p)}),a}i(fs,"prepareAccountsForWalletStore");function Lo(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((p,u)=>{let d=p.from.blockchain,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(Lo,"getQuoteChains");function Xn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Xn,"isAccountAndWalletMatched");var Eu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ms(n.usdValue,n.decimals):de.toFixed();return o.plus(r)},new rn(de));return UC(e.toString())},"calculateWalletUsdValue");function UC(t){let e=t.toString().split(".");return e[0]&&(e[0]=yu(e[0])),e.join(".")}i(UC,"numberWithThousandSeparator");var di=i((t,e)=>{let o=$C(Object.entries(t).map(([,n])=>n).filter(OC));return o&&!!o[e]?.experimental},"isExperimentalChain");function ms(t,e){return new rn(t).shiftedBy(-e).toFixed()}i(ms,"representAmountInNumber");function mi(t){if(!t)return null;let e=ms(t.amount,t.decimals),o=t.usdValue?ms(t.usdValue,t.decimals):null,n=P(e,8,8),r=o?P(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(mi,"formatBalance");function Iu(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new rn(t.usdValue).shiftedBy(-t.decimals):de,n=e&&e.usdValue?new rn(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 rn(t.amount).shiftedBy(-t.decimals):de,n=e&&e.amount?new rn(e.amount).shiftedBy(-e.decimals):de;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Iu,"compareTokenBalance");function qt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(qt,"areTokensEqual");function Au(t,e){return t.map(o=>({isPartiallyConnected:gs(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===pt.CONNECTED&&!n.isPartiallyConnected)-+(o.state===pt.CONNECTED&&!o.isPartiallyConnected)||+(n.state===pt.CONNECTED)-+(o.state===pt.CONNECTED)||+(n.state===pt.DISCONNECTED||n.state===pt.CONNECTING)-+(o.state===pt.DISCONNECTED||o.state===pt.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(Au,"sortWalletsBasedOnConnectionState");function lo(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(lo,"getConciseAddress");function Nu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Nu,"getAddress");var Wu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Bu(t){return t.map(e=>e.state).join("-")}i(Bu,"hashWalletsState");function Lu(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(Lu,"filterBlockchainsByWalletTypes");function Mu(t,e){return e===PC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(si(n,e))return!0;return!1})}i(Mu,"filterWalletsByCategory");function gs(t,e){if(!t.isHub||!t.needsNamespace||t.state!==pt.CONNECTED)return!1;let n=t.needsNamespace.data.filter(r=>!r.unsupported);return t.needsNamespace.selection==="multiple"&&n.some(r=>!e?.get(r.value)?.connected)}i(gs,"checkIsWalletPartiallyConnected");var hs={API_KEY:ri};function Gt(t){return hs[t]||""}i(Gt,"getConfig");function Pu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),hs=e,hs}i(Pu,"initConfig");var _u=20,Du=25,ys="theme-widget",Ss=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>qt(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>qt(a,t));let r=n.isExcluded;return!r&&!o||r&&o}}}return o},"isTokenExcludedInConfig"),Cs=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),$u=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var fi,ut=i(()=>fi||(fi=new zC(Gt("API_KEY"),Gt("BASE_URL")),fi),"httpService");import{i18n as Ou}from"@lingui/core";var gi=[.5,1,3],hi=1,an=5,Yn=30,yi=0;var Re=(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))(Re||{});import{WidgetEvents as Fu}from"@rango-dev/queue-manager-rango-preset";var ks=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ks||{}),Ts=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Ts||{}),ws=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(ws||{}),sn=(a=>(a[a.RouteEvent=Fu.RouteEvent]="RouteEvent",a[a.StepEvent=Fu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(sn||{});function Si(t,e){let o=t.map(a=>a.swapperGroup),n=[];return nn(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(Si,"getUniqueSwappersGroups");function Uu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Uu,"sortLiquiditySourcesByGroupTitle");function nt(t,e){return e?.[t]==="hidden"}i(nt,"isFeatureHidden");function ln(t,e){return e?.[t]==="enabled"}i(ln,"isRoutingEnabled");var zu=i((t,e,o)=>nt("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function cn(t){return t==yi?{type:"error",message:Ou.t("Slippage must be greater than or equal to 0.01")}:t>an&&t<=Yn?{type:"warning",message:Ou.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(cn,"getSlippageValidation");var Hu=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let l=oi({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>tu.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=en.get(u);d?.length||(d=qn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),en.set(u,d)),d=zu(d,s,a.features);let f=e().blockchains({type:o.type});return d.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(m=>m.name===g.blockchain)?!1:o.searchFor?!!(ct(g.symbol,o.searchFor)||ct(g.address||"",o.searchFor)||ct(g.name||"",o.searchFor)):!0).sort((g,m)=>{let C=e().isTokenPinned(g,o.type),y=e().isTokenPinned(m,o.type);if(C!==y)return C?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(g),N=o.getBalanceFor(m),b=Iu(A,N);if(b!==0)return b}let S=l.get(g.blockchain),T=l.get(m.blockchain),w=ls(g,S),v=ls(m,T);if(w!==v)return w?-1:1;if(g.isPopular!==m.isPopular)return g.isPopular?-1:1;if(o.searchFor){let A=uu(g,m,o.searchFor);if(A)return A}return g.isSecondaryCoin!==m.isSecondaryCoin?g.isSecondaryCoin?1:-1:S&&T?S.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=St(o),s=n.get(a);return s||(s=r.find(c=>St(c)===a)),s},findNativeToken:o=>{let n=o.feeAssets[0];return e().findToken({blockchain:o.name,address:n.address,symbol:n.symbol})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>qt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(Uu)},fetch:async()=>{try{let{routing:o}=e().config,n=ln("enableCentralizedSwappers",o),r=await ut().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,g)=>h.sort-g.sort).forEach(h=>{h.enabled&&d.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let g=St(h);c[h.blockchain]||(c[h.blockchain]=[]),s.set(g,h),c[h.blockchain]?.push(g)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as HC,Catalonia as QC,Chinese as Qu,Denmark as qC,English as GC,Finland as VC,French as KC,German as jC,Greece as XC,Hungary as YC,India as ZC,Indonesian as JC,Italian as RC,Japanese as ek,Korea as tk,Lithuania as ok,Malay as nk,Netherlands as rk,Pakistan as ik,Philippines as ak,Poland as sk,Portuguese as lk,Russian as ck,SaudiArabia as pk,Serbia as uk,Slovakia as dk,SouthAfrica as mk,Spanish as fk,Swahili as gk,Swedish as hk,Thai as yk,Turkish as Sk,Ukrainian as Ck,Vietnamese as kk}from"@rango-dev/ui";var qu=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:mk},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:pk},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:HC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:QC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Qu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Qu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:qC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:rk},{title:"English",label:"English",local:"en",SVGFlag:GC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:ak},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:VC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:KC},{title:"German",label:"Deutsch",local:"de",SVGFlag:jC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:XC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:ZC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:YC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:JC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:RC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:ek},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:tk},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:ok},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:nk},{title:"Polish",label:"Polski",local:"pl",SVGFlag:sk},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:lk},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:ck},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:uk},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:dk},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:fk},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:gk},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:hk},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:yk},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:Sk},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Ck},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:ik},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:kk}],pn="en";var Gu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:hi,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=nn(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=nt("theme",n),s=nt("language",n),c=nt("liquiditySource",n),l=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||pn},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||pn}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=oi({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import As from"bignumber.js";import Tk from"mitt";var we=Tk(),wk={on:we.on,off:we.off};var Vu=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 Ku from"bignumber.js";function Vt(t){return`${t.blockchain}${Wo}${t.address}${Wo}${t.symbol}`}i(Vt,"createAssetKey");function ju(t,e){return`${Vt(e)}${Wo}${t}`}i(ju,"createBalanceKey");function Zn(t){let[e,o,n]=t.split(Wo);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Zn,"extractAssetFromBalanceKey");function bs(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Vt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Ku(r??de).multipliedBy(o[s].amount).toString():""})})}),o}i(bs,"computeNextBalancesWithNewPrices");function xs(t,e){let o={};return t.balances?.forEach(n=>{let r=ju(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Ku(c??de).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(xs,"createBalanceStateForNewAccount");function Es(t,e){for(let o in e){let n=Zn(o);if(n){let r=Vt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(Es,"updateAggregatedBalanceStateForNewAccount");function vk(t,e){let o=Zn(e);if(!o)return t;let n=Vt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(vk,"removeBalanceFromAggregatedBalance");function Is(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=Zn(l);if(!p)return;!!n.find(d=>ju(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=vk(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(Is,"computeNextStateAfterWalletBalanceRemoval");function bk(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(bk,"matchWalletDetailsWithConnectedWallet");var xk=fu(),Xu=Vu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Xn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Xn(s,a))?{...a,loading:!1,error:!1,explorerUrl:bk(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Xn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Xn(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 ut().getMultipleTokenBalance({assets:p.map(({symbol:d,address:f,blockchain:h})=>({symbol:d,address:f,blockchain:h})),walletAddress:l});if(u){let d=e()._balances,f=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};bs(m,g,d);let C=xs(g,e);f=Es(f,C),d={...d,...C}}),t(h=>({_balances:{...h._balances,...d},_aggregatedBalances:f}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{let a=o[0];a&&(we.emit("walletEvent",{type:"connect",payload:{walletType:a.walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o))},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=Is(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||!o[0])return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await ut().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(d=>{if(d.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};bs(f,d,l);let{_balances:h,_aggregatedBalances:g}=Is(f,r,{chains:[d.blockChain]});if(p=g,l=h,!e().connectedWallets.find(C=>C.walletType===r&&C.address===d.address&&C.chain===d.blockChain))return;let m=xs(d,e);p=Es(p,m),l={...l,...m}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let d=c.filter(f=>f.failed).map(f=>({chain:f.blockChain,walletType:r,address:f.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=Vt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0||!a[0])return null;let s=a[0];if(a.length===1&&n[s])return n[s];let c=n[a[0]];if(!c)return null;let l=c;return a.forEach(p=>{let u=n[p];if(!u)return;let d=new As(u.amount),f=new As(l.amount);d.isGreaterThan(f)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(Wo);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>xk(()=>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=Zn(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),d=l?.amount?new As(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:d.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Yu(t){return Ek()(Ik((...e)=>({...Xu(...e),...Hu(...e),...Gu(...e),...Rp(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(Yu,"createAppStore");var Zu=Nk(null);function k(){let t=Wk(Zu);if(Bk(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(k,"useAppStore");function Ju(t){let e=Lk();return e.current||(e.current=Yu(t.config)),Ak.createElement(Zu.Provider,{value:e.current},t.children)}i(Ju,"AppStoreProvider");import{useWallets as Mk}from"@rango-dev/wallets-react";import{detectMobileScreens as Pk}from"@rango-dev/wallets-shared";function un(){let{getWalletInfo:t}=Mk(),{config:e}=k(),o=Pk();function n(s){let c=t(s),l=e.deepLinking?.appHost,p=e.deepLinking?.targetUrl;if(!(!l||!p))return c.generateDeepLink?.({appHost:l,targetUrl:p})}i(n,"getWalletDeepLink");function r(s){let c=n(s);return c&&o?c:t(s).installLink}i(r,"getWalletLink");function a(s){return!!n(s)&&o}return i(a,"checkHasDeepLink"),{getWalletDeepLink:n,getWalletLink:r,checkHasDeepLink:a}}i(un,"useDeepLink");function vt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=k(),{state:r,getWalletInfo:a}=_k(),s=k().blockchains(),{handleDisconnect:c}=Ro(),{checkHasDeepLink:l}=un(),p=Xp(n()),u=xu(r,a,p,e);u=Dk()?u.filter(C=>C.showOnMobile!==!1&&(r(C.type).installed||l(C.type))):u;let d=Au(u,r),f=i(C=>!o.find(y=>y.walletType===C&&y.chain===e),"isExperimentalChainNotAdded"),h=Fk(()=>{let C=u?.filter(y=>y.state===Ns.CONNECTING)||[];for(let y of C)c(y)},[Bu(u)]);Ok(()=>()=>{h()},[]);let g=i(C=>{let y=C.find(T=>T.type===Jn.DEFAULT);return!y||y.state===Ns.NOT_INSTALLED?!1:C.filter(T=>T.state!=Ns.NOT_INSTALLED&&![Jn.DEFAULT,Jn.WALLET_CONNECT_2,Jn.LEDGER].includes(T.type)&&a(T.type).supportedChains.filter(w=>w.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),m=i((C,y,S)=>di(S,y)&&f(C)&&!$k.includes(C)||C==Jn.DEFAULT&&!g(u),"shouldExcludeWallet");return{list:d.filter(C=>!m(C.type,e??"",s)),terminateConnectingWallets:h}}i(vt,"useWalletList");import{Modal as Qk}from"@rango-dev/ui";import qk from"react";import{create as Hk}from"zustand";var Ru="rango-widget";var Rn=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(Ru),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 zk=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"),co=zk;var ne=co(Hk()((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})}}))),Po=new Rn({onInit:()=>ne.setState({tabManagerInitiated:!0}),onClaim:()=>ne.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ne.setState({isActiveTab:!1})});function R(t){let{watermark:e}=ne();return qk.createElement(Qk,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as fn}from"@lingui/core";import{Alert as rT,Button as iT,Divider as gn,Image as aT,MessageBox as sT,RadioRoot as lT,WalletImageContainer as cT}from"@rango-dev/ui";import ce,{useEffect as pT,useMemo as uT,useState as dT}from"react";import{i18n as jk}from"@lingui/core";import{Typography as sd}from"@rango-dev/ui";import dn from"react";function Ci(t,e){return t.find(o=>o.name===e)?.logo}i(Ci,"getBlockchainLogo");import{darkTheme as Gk,Image as Vk,styled as Kt,Typography as Kk}from"@rango-dev/ui";var ki=Kt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${Gk} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),Ti=Kt("div",{display:"flex",gap:"$8",alignItems:"center"}),td=Kt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),od=Kt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),nd=Kt("div",{display:"flex",gap:"$6",alignItems:"center"}),rd=Kt("div",{paddingLeft:"48px"}),id=Kt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),ad=Kt(Kk,{maxWidth:"100px"}),wi=Kt(Vk,{variants:{disabled:{true:{opacity:"0.5"}}}});function vi(t){let{namespace:e}=t,o=k().blockchains();return dn.createElement(ki,{unsupported:!0},dn.createElement(Ti,null,dn.createElement(wi,{src:Ci(o,e.id),size:40,disabled:!0}),dn.createElement(od,null,dn.createElement(sd,{variant:"label",size:"large"},e.label),dn.createElement(sd,{variant:"body",size:"xsmall"},jk.t("(Currently not supported)")))))}i(vi,"NamespaceUnsupportedItem");import{Checkbox as tT,Radio as oT}from"@rango-dev/ui";import Ms from"react";import{i18n as Ls}from"@lingui/core";import{ChevronDownIcon as Yk,ChevronUpIcon as Zk,Divider as Jk,Typography as er}from"@rango-dev/ui";import Ne,{useEffect as Rk,useState as eT}from"react";import{Image as cd,Tooltip as pd,Typography as Xk}from"@rango-dev/ui";import _t from"react";import{styled as ld}from"@rango-dev/ui";var Ws=ld("div",{display:"flex",alignItems:"center",padding:0,margin:0}),bi=ld("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var Bs=3;function ud(t){let{chains:e}=t;return _t.createElement(Ws,{id:"widget-supported-chains-container"},e.slice(0,Bs).map((o,n)=>_t.createElement(pd,{key:o.name,container:W(),side:"bottom",align:"start",content:o.name,sideOffset:4},_t.createElement(bi,{firstItem:n===0},_t.createElement(cd,{src:o.logo,size:15})))),e.length>Bs&&_t.createElement(pd,{container:W(),side:"bottom",align:"start",sideOffset:4,content:_t.createElement(Ws,null,e.map((o,n)=>_t.createElement(bi,{key:o.name,firstItem:n===0},_t.createElement(cd,{src:o.logo,size:15}))))},_t.createElement(bi,null,_t.createElement(Xk,{variant:"body",size:"xsmall"},"+",e.length-Bs))))}i(ud,"SupportedChainsList");function _o(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=eT(!1),p=k().blockchains();Rk(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!o&&!r&&u.length>1;return Ne.createElement(ki,{hasError:!!o,clickable:!!s,onClick:s},Ne.createElement(Ti,null,Ne.createElement(wi,{src:Ci(p,e.id),size:40}),Ne.createElement(td,{showSupportedChains:d||r||!!o},Ne.createElement(nd,null,Ne.createElement(er,{variant:"label",size:"large"},e.label),r&&Ne.createElement(er,{variant:"body",size:"small",color:"success500"},Ls.t("Connected")),!!o&&Ne.createElement(er,{variant:"body",size:"small",color:"error500"},Ls.t("Connection failed"))),d&&Ne.createElement(ud,{chains:u}),r&&Ne.createElement(ad,{variant:"body",size:"small",color:"neutral700"},a),o&&Ne.createElement(id,{onClick:()=>l(f=>!f)},Ne.createElement(er,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},Ls.t("See why")),c?Ne.createElement(Zk,{size:12,color:"gray"}):Ne.createElement(Yk,{size:12,color:"gray"}))),n),!!o&&c&&Ne.createElement(Ne.Fragment,null,Ne.createElement(Jk,{size:4}),Ne.createElement(rd,null,Ne.createElement(er,{variant:"body",size:"small",color:"neutral700"},o))))}i(_o,"NamespaceItem");function dd(t){let{onClick:e,type:o,namespace:n}=t;return Ms.createElement(_o,{namespace:n,onClick:e,suffix:o==="radio"?Ms.createElement(oT,{value:n.value}):Ms.createElement(tT,{checked:t.value})})}i(dd,"NamespaceListItem");import{Button as nT,styled as md}from"@rango-dev/ui";var xi=md("ul",{padding:0,paddingBottom:"$20",margin:0}),mn=md(nT,{minHeight:"$40"});function tr(t){let{targetWallet:e}=t.value,o=e.properties?.find(m=>m.name==="namespaces"),n=e.isHub,r=e.isHub?o?.value.selection==="single":e.needsNamespace?.selection==="single",a=n?o?.value:e.needsNamespace,s=e.image,c=k().blockchains(),[l,p]=dT([]),u=uT(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:C=>C.includes(m)?C.filter(y=>y!==m):C.concat(m))},"onSelect"),f=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");f?p([]):u&&p(u.map(m=>m.value))},"onSelectAll"),g=i(m=>r?ce.createElement(lT,{value:l?.[0]},m):ce.createElement(ce.Fragment,null,m),"wrapRadioRoot");return pT(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(C=>C.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(m.map(C=>C.value))}else p(u.map(m=>m.value))},[]),ce.createElement(ce.Fragment,null,ce.createElement(sT,{type:"info",title:fn.t("Connect {wallet}",{wallet:e.title}),description:fn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:ce.createElement(cT,null,ce.createElement(aT,{src:s,size:45}))}),r?ce.createElement(ce.Fragment,null,ce.createElement(gn,{size:20}),ce.createElement(rT,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:fn.t("This wallet can only connect to one chain at a time. ")}),ce.createElement(gn,{size:30})):ce.createElement(ce.Fragment,null,ce.createElement(gn,{size:30}),ce.createElement(iT,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?fn.t("Deselect all"):fn.t("Select all")),ce.createElement(gn,{size:10})),ce.createElement(xi,null,g(ce.createElement(ce.Fragment,null,a?.data.map((m,C,y)=>ce.createElement(ce.Fragment,{key:m.id},m.unsupported?ce.createElement(vi,{namespace:m}):ce.createElement(dd,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),C!==y.length-1&&ce.createElement(gn,{size:10})))))),ce.createElement(gn,{size:20}),ce.createElement(mn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},fn.t("Connect")))}i(tr,"Namespaces");import{i18n as or}from"@lingui/core";import{Alert as CT,Button as kT,Divider as hn,Image as TT,MessageBox as wT,WalletImageContainer as vT}from"@rango-dev/ui";import{useWallets as bT}from"@rango-dev/wallets-react";import me from"react";import{styled as mT}from"@rango-dev/ui";var fd=mT("div",{display:"flex",justifyContent:"end"});import{i18n as Ps}from"@lingui/core";import{Button as fT,Spinner as gT}from"@rango-dev/ui";import _s,{useLayoutEffect as hT,useRef as yT,useState as ST}from"react";function gd(t){let{namespace:e,initialConnect:o,disabled:n,state:r,handleConnect:a,handleDisconnect:s}=t,[c,l]=ST(null),p=yT(!1);hT(()=>{o&&!p.current&&u()},[]);let u=i(async g=>{try{p.current=!0,await a(g)}catch(m){l(m)}finally{p.current=!1}},"handleConnectNamespace"),d=i(async()=>{l(null),r.connected?await s():u({shouldAskForDerivationPath:!0})},"handleButtonClick"),f=i(()=>{let g=r.accounts?.[0]?.split(":"),m=g?.[g.length-1];return!r.connected||!m?null:lo(m)},"getConnectedAddress"),h=i(()=>r.connected?Ps.t("Disconnect"):c?Ps.t("Try again"):Ps.t("Connect"),"getButtonText");return _s.createElement(_o,{namespace:e,connected:r.connected,error:c?.message,address:f(),suffix:r.connecting?_s.createElement(gT,{color:"info"}):_s.createElement(fT,{id:"widget-name-space-connect-btn",variant:"ghost",type:r.connected?"error":"primary",size:"xsmall",onClick:async()=>d(),disabled:n},h())})}i(gd,"NamespaceDetachedItem");function nr(t){let{value:e,selectedNamespaces:o,onConfirm:n,confirmText:r=or.t("Done"),onDisconnectWallet:a,navigateToDerivationPath:s}=t,{targetWallet:c}=e,{connect:l,disconnect:p,state:u}=bT(),d=c.type,f=u(d),h=c.properties?.find(w=>w.name==="namespaces"),g=c.properties?.find(w=>w.name==="derivationPath"),m=h?.value.selection==="single",C=i(async(w,v)=>{m&&await p(d),g&&v?.shouldAskForDerivationPath?s(w):await l(d,[{namespace:w,network:"",derivationPath:v?.derivationPath??void 0}])},"handleConnectNamespace"),y=i(async w=>{await p(d,[w])},"handleDisconnectNamespace"),S=i(()=>m?me.createElement(me.Fragment,null,me.createElement(hn,{size:20}),me.createElement(CT,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:or.t("This wallet can only connect to one chain at a time.")}),me.createElement(hn,{size:30})):me.createElement(me.Fragment,null,me.createElement(hn,{size:30}),me.createElement(fd,null,me.createElement(kT,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:f.connecting||!f.connected,onClick:a},or.t("Disconnect wallet"))),me.createElement(hn,{size:16})),"renderNamespaceListHeader"),T=i(w=>{if(w.unsupported)return me.createElement(vi,{namespace:w});let v=o?.find(b=>b.namespace===w.value),A=f.namespaces?.get(w.value);if(!A)throw new Error(`State for ${w.value} was not found!`);let N=m&&f.connecting;return me.createElement(gd,{namespace:w,initialConnect:!!v,disabled:N,state:A,handleConnect:async b=>C(w.value,{derivationPath:v?.derivationPath,shouldAskForDerivationPath:b?.shouldAskForDerivationPath}),handleDisconnect:async()=>y(w.value)})},"renderNamespaceItem");return me.createElement(me.Fragment,null,me.createElement(wT,{type:"info",title:or.t("Connect {wallet}",{wallet:c.type}),description:or.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:me.createElement(vT,null,me.createElement(TT,{src:c.image,size:45}))}),S(),me.createElement(xi,{id:"widget-detached-namespace-list"},c.needsNamespace?.data.map((w,v,A)=>me.createElement(me.Fragment,{key:w.id},T(w),v!==A.length-1&&me.createElement(hn,{size:10})))),me.createElement(hn,{size:20}),me.createElement(mn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:n},r))}i(nr,"Detached");import{i18n as yn}from"@lingui/core";import{Divider as AT,Image as NT,MessageBox as WT,Select as BT,TextField as LT}from"@rango-dev/ui";import bt,{useEffect as MT,useState as yd}from"react";import{namespaces as xT}from"@rango-dev/wallets-shared";var Ei={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ds(t){let e=t?xT[t]?.derivationPaths:null;return e?[...e,Ei]:[]}i(Ds,"getDerivationPaths");import{Button as ET,styled as $s,Typography as IT}from"@rango-dev/ui";var hd=$s("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Fs=$s(IT,{paddingLeft:"$10"}),Os={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},u_=$s(ET,{minHeight:"$40"});var Sd="0";function rr(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=yd(null),[c,l]=yd(Sd),p=a===Ei.id,u=Ds(o),d=i(({value:h})=>{let g=u?.find(m=>m.id===h);g&&(a===Ei.id&&Number.isNaN(Number(c))&&l(Sd),s(g.id))},"handleDerivationPathItemClick"),f=i(()=>{let h=u.find(g=>g.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return MT(()=>{s(Ds(o)[0]?.id||null)},[o]),bt.createElement(bt.Fragment,null,bt.createElement(WT,{type:"info",title:yn.t("Select Derivation Path"),description:yn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:bt.createElement(NT,{src:n,size:45})}),bt.createElement(hd,{className:"_derivation_path_inputs_container"},bt.createElement(Fs,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},yn.t("Choose Derivation Path Template")),bt.createElement(BT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:Os}}),bt.createElement(AT,{size:20}),bt.createElement(Fs,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},p?yn.t("Enter Path"):yn.t("Enter Index")),bt.createElement(LT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Os})),bt.createElement(mn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},yn.t("Confirm")))}i(rr,"DerivationPath");import{i18n as Sn}from"@lingui/core";import{Image as DT,MessageBox as zs,WalletImageContainer as $T,WalletState as FT}from"@rango-dev/ui";import{useWallets as OT}from"@rango-dev/wallets-react";import Do from"react";import{keyframes as PT,styled as Us}from"@rango-dev/ui";var w_=Us("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Cd=Us("div",{position:"relative"}),_T=PT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),kd=Us("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${_T} 1s linear infinite`,top:0,bottom:0,right:0,left:0});function Hs(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=OT();return Kn(a(n))===FT.CONNECTED?Do.createElement(zs,{type:"success",title:Sn.t("Wallet Connected"),description:Sn.t("Your wallet is connected, you can use it to swap.")}):o?Do.createElement(zs,{type:"error",title:Sn.t("Failed to Connect"),description:o||Sn.t("Your wallet is not connected. Please try again.")}):Do.createElement(zs,{type:"loading",title:Sn.t("Connecting to your wallet"),description:Sn.t("Click connect in your wallet popup."),icon:Do.createElement(Cd,null,Do.createElement($T,null,Do.createElement(DT,{src:r,size:45})),Do.createElement(kd,null))})}i(Hs,"ConnectStatus");import{i18n as Qs}from"@lingui/core";import{Button as UT,Divider as Td,MessageBox as zT}from"@rango-dev/ui";import Ii from"react";function qs(t){let{displayName:e,onConfirm:o,id:n}=t;return Ii.createElement(zT,{id:n,title:Qs.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Qs.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},Ii.createElement(Td,{size:18}),Ii.createElement(Td,{size:32}),Ii.createElement(UT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Qs.t("Confirm")))}i(qs,"ExperimentalChain");function wd(t,e){return t().status==="init"&&!!e}i(wd,"isOnStatus");function ir(t){return t().status==="namespace"}i(ir,"isOnNamespace");function ar(t){return t().status==="derivationPath"}i(ar,"isOnDerivationPath");function Ao(t){return t().status==="detached"}i(Ao,"isOnDetached");var GT=3e3,VT=300;function sr(t){let e=qT(),[o,n]=vd(!1),[r,a]=vd(),s=i(v=>{a(v.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=vt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:f,handleDisconnect:h}=Ro(),g=i(v=>{u(t.wallet,v).then(T).catch(s)},"handleConfirmNamespaces"),m=i(()=>{y()},"handleDetachedConfirm"),C=i(v=>{if(!v)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(t.wallet,v).then(T).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),S=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),T=i((v,A)=>{let N=v.status==="connected",b=["disconnected","disconnected-unhandled"].includes(v.status);N?(t.onConnect?.(),A||(e.current=setTimeout(y,GT))):b&&y()},"afterConnected"),w=i(v=>{t.wallet?.needsDerivationPath&&u(t.wallet,[v])},"handleNavigateToDerivationPath");return QT(()=>{if(t.wallet){S();let v=!1,A=!0;i(()=>{setTimeout(()=>{A=!1,v||n(!0)},VT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(b=>{["namespace","Detached","derivation-path"].includes(b.status)||(v=!0),T(b,A)}).catch(s)}},[t.wallet]),po.createElement(R,{id:t.id,open:o,onClose:y,onExit:()=>{S(),c(),t.onClose&&t.onClose()},container:W()},wd(d,t.wallet)&&po.createElement(po.Fragment,null,po.createElement(Hs,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),po.createElement(HT,{direction:"vertical",size:32})),ir(d)&&po.createElement(tr,{onConfirm:g,value:d().namespace}),ar(d)&&po.createElement(rr,{onConfirm:C,value:d().derivationPath}),Ao(d)&&po.createElement(nr,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces,navigateToDerivationPath:w}))}i(sr,"StatefulConnectModal");import ts from"react";import KT,{Fragment as jT}from"react";import{MemoryRouter as XT,useInRouterContext as YT}from"react-router";function Ai({children:t}){let o=YT()?jT:XT;return KT.createElement(o,null,t)}i(Ai,"AppRouter");import{I18nManager as R0}from"@rango-dev/ui";import $p from"react";import ze from"react";import{useRoutes as B0}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 kn,useRef as _i}from"react";import it from"bignumber.js";import{create as om}from"zustand";import{subscribeWithSelector as nm}from"zustand/middleware";import{createContext as ZT,useContext as JT}from"react";var bd=ZT({swapMode:"swap",isMultiMode:!1});function rt(){let{swapMode:t,isMultiMode:e}=JT(bd);return{swapMode:t,isMultiMode:e}}i(rt,"useSwapMode");import{i18n as kt}from"@lingui/core";import{getRelatedWalletOrNull as tw,RouteEventType as OD}from"@rango-dev/queue-manager-rango-preset";import qe from"bignumber.js";import{PendingSwapNetworkStatus as cr}from"rango-types";import{i18n as Qe}from"@lingui/core";var re=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 xd(t){return t.type===0?t.diagnosisMessage??re().noResultError.title:t.type===1?t.diagnosisMessage??re().genericServerError:""}i(xd,"getQuoteErrorMessage");import{i18n as Ni}from"@lingui/core";var $o=i(()=>({connectWallet:Ni.t("Connect Wallet"),swap:Ni.t("Swap"),swapAnyway:Ni.t("Swap anyway"),ethWarning:Ni.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Gs(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(Gs,"getFeeLabel");var Vs=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Ed=100,Id=30,Ad=15,Nd=60;var Wd=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Bd=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as ew}from"@rango-dev/queue-manager-rango-preset";import xD from"bignumber.js";function Md(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(Md,"getRequiredBalanceOfWallet");function Xt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Xt,"getPriceImpactLevel");function Wi(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=ew(t.steps);if(!r||!n)return{fromBlockchain:null,fromToken:void 0,toBlockchain:null,toToken:void 0,inputAmount:""};let s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=No(a?a.toBlockchain:n.fromBlockchain,e),l=No(r.toBlockchain,e),p=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:d}}i(Wi,"createRetryQuote");function Cn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=lr(o),s=Ct(o);if(o&&a&&s){let p=jt(a.toString(),s.toString());if(!!p&&Fd(a,p)){let d=Li(o?.swaps,n),f=Xt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:f}}}if(e&&zd(e,o))return{type:4,usdValueChange:P(Ct(o)?.minus(Ct(e)??0).toString()??"0",null,2),percentageChange:P(jt(Ct(e)??"1",Ct(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=Mi(o.swaps),l=r>an;if(Ud(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Od(o,r),minRequiredSlippage:c};return null}i(Cn,"generateQuoteWarnings");function Pd(t){return![4].includes(t.type)}i(Pd,"isQuoteWarningConfirmationRequired");function jt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ks(t.toString(),e.toString());return n&&n<0?n:null}i(jt,"getPriceImpact");var _d=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"),Bi=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"),Dd=i((t,e,o)=>{let n=e[0];if(!e.length||!n)return null;if(!t)return{requestAmount:o,validationStatus:null,...n};let r=new Set(t.swaps.map(s=>s.swapperId)),a=e.find(s=>{let c=new Set(s.swaps.map(l=>l.swapperId));return Array.from(r).every(l=>c.has(l))});return{requestAmount:o,validationStatus:null,...a||n}},"getDefaultQuote"),$d=i(t=>{let e=i((o,n)=>{let r=Vs.indexOf(o.value),a=Vs.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Fd(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return Wd.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new qe(r)))}i(Fd,"hasHighValueLoss");function Hd(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new qe(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(Hd,"hasLimitError");function Qd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new qe(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new qe(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0];if(!e)return{swap:void 0,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new qe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=kt.t({id:"Required: >= {min} {symbol}",values:{min:P(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=kt.t({id:"Required: > {min} {symbol}",values:{min:P(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=kt.t({id:"Required: <= {max} {symbol}",values:{max:P(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=kt.t({id:"Required: < {max} {symbol}",values:{max:P(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Qd,"getLimitErrorMessage");function qd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:$o().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:$o().swap,action:"confirm-swap",disabled:!0}:s?{title:$o().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:$o().ethWarning,action:"confirm-warning",disabled:!1}:{title:$o().swap,action:"confirm-swap",disabled:!1}:{title:$o().connectWallet,action:"connect-wallet",disabled:!1}}i(qd,"getSwapButtonState");function js(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(de))&&e&&e!=="0"&&n!==0)}i(js,"canComputePriceImpact");function Xs(t,e){let o=de;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(!r||r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new qe(r.amount).multipliedBy(a||0))}return o}i(Xs,"getUsdFeeOfStep");function Li(t,e){return t.reduce((o,n)=>o.plus(Xs(n,e)),de)}i(Li,"getTotalFeeInUsd");function Ys(t){let e=de,o=new qe(t.price||0);return e=e.plus(new qe(t.amount).multipliedBy(o)),e}i(Ys,"getUsdFee");function Gd(t){return t.reduce((e,o)=>e.plus(Ys(o)),de)}i(Gd,"getTotalFeesInUsd");function Vd(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(Vd,"getFeesGroup");function Kd(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?Object.fromEntries(e):null}i(Kd,"checkSlippageErrors");function Od(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(Od,"checkSlippageWarnings");function Mi(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(Mi,"getMinRequiredSlippage");function Ud(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Ud,"hasProperSlippage");function jd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:d,affiliateWallets:f,destination:h,contractCall:g}=t,m=a?.reduce((S,T)=>(S[T.chain]=T.address,S),{}),C=[];return r?.forEach(S=>{C.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:m??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(jd,"createQuoteRequestBody");function Xd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Xd,"getWalletsForNewSwap");function lr(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new qe(e).multipliedBy(o)}i(lr,"getUsdInputFrom");function Ct(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new qe(e).multipliedBy(o)}i(Ct,"getUsdOutputFrom");function Ks(t,e){return new qe(e).div(new qe(t)).minus(1).multipliedBy(Ed).toNumber()}i(Ks,"getPercentageChange");function zd(t,e){let o=lr(t),n=Ct(t),r=Ct(e);if(!o||!n||!r)return!1;let a=Ks(n.toString(),r.toString());return Bd.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(zd,"isOutputAmountChangedExcessively");function Yd(t,e,o){let n=t.validationStatus,r=Lo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>Md(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=P(new qe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=P(new qe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=kt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=kt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=kt.t(" for input and network fee")),kt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:yt(s.asset.blockchain,o)}})})}i(Yd,"generateBalanceWarnings");function pr(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==cr.NetworkChanged}i(pr,"isNetworkStatusInWarningState");function Zd(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),pr(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?tw(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case cr.WaitingForConnectingWallet:r=u?kt.t("Connect {wallet}",{wallet:u}):r;break;case cr.WaitingForQueue:r=r||kt.t("Waiting for other running tasks to be finished");break;case cr.WaitingForNetworkChange:r=r||kt.t("Waiting for changing wallet network");break;case cr.NetworkChangeFailed:r=r||kt.t("The network switch could not be completed. Please try again, or switch the network manually in your wallet.");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(Zd,"getSwapMessages");function Jd(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(Jd,"getLastConvertedTokenInFailedSwap");function Rd(t){return t.status==="failed"}i(Rd,"shouldRetrySwap");function em(t,e,o,n,r,a){if(!n||t)return!0;let s=Lo({filter:"all",quote:n}),c=Lo({filter:"required",quote:n}),l=s.every(d=>r.some(f=>f.chain===d)),p=c.every(d=>r.some(f=>f.chain===d)),u=o&&a?tn(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(em,"isConfirmSwapDisabled");function tm(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(tm,"isTokensIdentical");var Pi=i((t,e)=>t?.usdPrice?new it(e||de).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),rm=i(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new it(0),outputUsdValue:new it(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 Vn(o.inputAmount)?(e&&(n=e?.outputAmount?new it(e?.outputAmount):null,a=lr(e)??de,r=Ct(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 it(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new it(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new it(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:Pi(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 it(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=vu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;li(e)||(o=gu(o),o=hu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new it(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Pi(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:Pi(n??null,s),outputUsdValue:new it(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?Pi(e.toToken,e.outputAmount?.toString()||""):new it(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new it(0),inputUsdValue:new it(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new it(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}),"initializer"),im=om()(nm(rm)),am=om()(nm(rm)),ow=co(im),nw=co(am);function H(){let{swapMode:t}=rt();return co(t==="refuel"?am:im)}i(H,"useQuoteStore");var sm=i((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})},"subscribeCallback"),lm=ow.subscribe(sm),cm=nw.subscribe(sm);function pm(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=H()(),u=k().config,d=k().fetchStatus,f=k().blockchains(),{findToken:h}=k(),{setAffiliateRef:g,setAffiliatePercent:m,setAffiliateWallets:C}=k(),y=u?.from?.tokens,S=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,v=_i(void 0),A=_i(void 0),N=_i(void 0),b=_i(void 0);kn(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),kn(()=>{if(d==="success"){r();let x=f.find(I=>I.name===u?.from?.blockchain),E=u?.from?.token,B=E&&h(E);(x||!x&&N.current)&&n(x??null),B?a({token:B,meta:{blockchains:f}}):!B&&v.current&&a({token:null}),N.current=u?.from?.blockchain,v.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),kn(()=>{Ss(s,y)&&a({token:null}),Cs(l,S)&&n(null)},[y,S]),kn(()=>{Ss(c,T)&&a({token:null}),Cs(p,w)&&o(null)},[T,w]),kn(()=>{if(d==="success"){r();let x=f.find(I=>I.name===u?.to?.blockchain),E=u?.to?.token,B=E&&h(E);(x||!x&&b.current)&&o(x??null),B?e({token:B,meta:{blockchains:f}}):!B&&A.current&&e({token:null}),b.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]),kn(()=>{g(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),C(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(pm,"useSyncStoresWithConfig");import{useEffect as Rs,useRef as rw}from"react";import{useInRouterContext as iw,useLocation as aw,useSearchParams as sw}from"react-router-dom";function Zs(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(Zs,"convertTokenSearchParamToAsset");function Js(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Js,"tokenToSearchParam");function tl(){let t=aw(),[e,o]=sw(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:f}=H()(),h=k().fetchStatus,g=k().blockchains(),m=iw(),{updateIframe:C,updateCampaignMode:y}=k(),S=k().isInCampaignMode(),T=rw(),{findToken:w}=k(),v=i(()=>{let N={};for(let[L,ee]of e.entries())L.startsWith("utm_")&&(N[L]=ee);let b=e.get("fromAmount"),x=e.get("fromBlockchain"),E=e.get("fromToken"),B=e.get("toBlockchain"),I=e.get("toToken"),_=e.get("autoConnect"),U=e.get("clientUrl"),G=e.get("liquiditySources"),Y=e.get("blockchain");return{fromAmount:b,fromBlockchain:x,fromToken:E,toBlockchain:B,toToken:I,autoConnect:_,clientUrl:U,liquiditySources:G,utmQueryParams:N,blockchain:Y}},"getUrlSearchParams"),A=i(N=>{for(let b in N)N[b]||delete N[b];o(N,{replace:!0})},"updateUrlSearchParams");Rs(()=>{let{autoConnect:N,clientUrl:b,utmQueryParams:x,blockchain:E}=v();m&&h==="success"&&A({fromBlockchain:n?.name,fromToken:Js(a),toBlockchain:r?.name,toToken:Js(s),fromAmount:c,autoConnect:N??void 0,clientUrl:b??void 0,blockchain:E??void 0,liquiditySources:S?T.current:void 0,...x})},[t.pathname,c,n,a,r,s,S,h]),Rs(()=>{if(!m)return;let N=v();if(!T.current&&N.liquiditySources&&(T.current=N.liquiditySources),N.fromAmount&&f(N.fromAmount),h==="success"){let b=g.find(U=>U.name===N.fromBlockchain),x=N.fromToken&&b&&Zs(N.fromToken,b),E=x?w(x):void 0,B=g.find(U=>U.name===N.toBlockchain),I=N.toToken&&B&&Zs(N.toToken,B),_=I?w(I):void 0;b&&(l(b),E&&u({token:E,meta:{blockchains:g}})),B&&(p(B),_&&d({token:_,meta:{blockchains:g}}))}},[h]),Rs(()=>{let{clientUrl:N,liquiditySources:b}=v();C("clientUrl",N||void 0),y("liquiditySources",b?.split(",")??void 0)},[])}i(tl,"useSyncUrlAndStore");import{i18n as bn}from"@lingui/core";import{Alert as Lv,Button as Mv,darkTheme as Pv,Divider as Bl,DoneIcon as _v,styled as Dv,TextField as $v,Typography as Fv}from"@rango-dev/ui";import Ve,{useState as Ov}from"react";import{useNavigate as Uv,useSearchParams as zv}from"react-router-dom";import{ChevronRightIcon as lw,Divider as gm,Image as cw,Typography as hm}from"@rango-dev/ui";import xt from"react";import{darkTheme as um,styled as ol}from"@rango-dev/ui";var dm=ol("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${um} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${um} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),mm=ol("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),fm=ol("div",{display:"flex"});function nl(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return xt.createElement(mm,null,xt.createElement(hm,{size:"large",variant:"label"},n),xt.createElement(gm,{size:10}),xt.createElement(dm,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},xt.createElement(fm,null,r&&xt.createElement(xt.Fragment,null,xt.createElement(cw,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),xt.createElement(gm,{size:4,direction:"horizontal"})),xt.createElement(hm,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),xt.createElement(lw,{size:12,color:"black"})))}i(nl,"BlockchainSelectorButton");import{i18n as sl}from"@lingui/core";import{Button as yw,Divider as wm,MessageBox as Sw}from"@rango-dev/ui";import uo,{useEffect as vm,useState as ll}from"react";import{i18n as Di}from"@lingui/core";import{Divider as Fo,ExternalLinkIcon as dw,Image as mw,InfoIcon as fw,Tooltip as gw,Typography as dr}from"@rango-dev/ui";import fe from"react";var ym="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function Sm(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Sm,"generateExplorerLink");import{Button as pw,darkTheme as Tn,styled as ur,Typography as uw}from"@rango-dev/ui";var rl=ur("a",{textDecoration:"none",color:"$colors$neutral700",[`.${Tn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${Tn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${Tn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${Tn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),Cm=ur("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${Tn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${Tn} &`]:{color:"$colors$neutral900"}}}),il=ur(pw,{minHeight:"$40"}),km=ur(uw,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"96px"}),Tm=ur("div",{display:"flex",justifyContent:"center",alignItems:"center"});var hw=9;function al(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=Sm(n.address,s),l=i(()=>window.open(ym,"_blank"),"onClickLearnMore");return fe.createElement(R,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:W()},fe.createElement(Cm,null,fe.createElement(mw,{src:n.image===""?ni:n.image,size:45,type:"circular"}),fe.createElement(Fo,{size:4}),fe.createElement(Tm,null,fe.createElement(km,{variant:"title",size:"medium"},n.symbol),n.symbol.length>hw&&fe.createElement(gw,{content:n.symbol,container:W()},fe.createElement(fw,{size:12,color:"gray"}))),fe.createElement(dr,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),fe.createElement(Fo,{size:4}),fe.createElement(dr,{variant:"body",size:"medium"},c?fe.createElement(rl,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,fe.createElement(dw,{size:12,color:"gray"})):fe.createElement(rl,null,n.address)),fe.createElement(Fo,{size:4}),n.coinSource&&fe.createElement(dr,{className:"_coin-source",variant:"body",size:"xsmall"},Di.t("via")," ",fe.createElement(dr,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),fe.createElement(Fo,{size:"32"}),fe.createElement(dr,{size:"medium",variant:"body",className:"_custom-token-description"},Di.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),fe.createElement(Fo,{size:40}),fe.createElement(Fo,{size:10}),fe.createElement(il,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Di.t("Import Anyway")),fe.createElement(Fo,{size:10}),fe.createElement(il,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Di.t("Learn More")))}i(al,"CustomTokenModal");function mr(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=k(),[d,f]=ll(!1),[h,g]=ll(!1),[m,C]=ll(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),S=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),T=i(()=>{C(!0),S()},"handleErrorModalButtonClick"),w=i(()=>{m&&n?.type==="network-error"&&(C(!1),y()),l()},"handleExit"),v=i(()=>{e&&(u(e),c())},"handleSubmit");return vm(()=>{n&&f(!0)},[n]),vm(()=>{o&&e&&g(!0)},[o,e]),uo.createElement(uo.Fragment,null,uo.createElement(R,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:S,onExit:w,container:W()},uo.createElement(Sw,{title:n?.title??"",type:"error",description:n?.message||sl.t("Failed Network, Please retry.")},uo.createElement(wm,{size:40}),uo.createElement(wm,{size:10}),uo.createElement(yw,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:T},n?.type==="network-error"?sl.t("Retry"):sl.t("Add another custom token")))),o&&e&&uo.createElement(al,{blockchain:o,token:e,onSubmitClick:v,onClose:()=>g(!1),open:h,onExit:p}))}i(mr,"ImportCustomToken");import{useManager as Ev}from"@rango-dev/queue-manager-react";import{BottomLogo as Iv,Divider as tf,Header as Av}from"@rango-dev/ui";import Be,{useEffect as Gi,useLayoutEffect as Nv,useRef as of,useState as nf}from"react";import{useRef as Cw}from"react";function fr(){return window.self!==window.top}i(fr,"isAppLoadedIntoIframe");function cl(){let t=Cw(null),{iframe:e}=k(),o=fr()&&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(cl,"useIframe");import{useNavigate as kw}from"react-router-dom";function Ge(){let t=kw();return()=>t(-1)}i(Ge,"useNavigateBack");import{useLayoutEffect as Tw,useState as gr}from"react";var bm=480,xm=768,Em=1024,Im=1200,ww=i(()=>{let[t,e]=gr(!1),[o,n]=gr(!1),[r,a]=gr(!1),[s,c]=gr(!1),[l,p]=gr(!1),u=i(()=>{e(window.innerWidth<=bm),n(window.innerWidth>bm&&window.innerWidth<=xm),a(window.innerWidth>xm&&window.innerWidth<=Em),c(window.innerWidth>Em&&window.innerWidth<=Im),p(window.innerWidth>Im)},"handleResize");return Tw(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),wn=ww;import{createTheme as hl,darkTheme as _w,lightTheme as Dw}from"@rango-dev/ui";import{useEffect as $w,useState as Fw}from"react";import{theme as Mw,darkColors as Pw}from"@rango-dev/ui";import fl from"react";var $i=16,Fi=255,Am=.11;function vw(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(vw,"expandShortHexColor");function bw(t,e){return t.padStart(e,"0")}i(bw,"pad");function pl(t){let e=Math.min(Math.max(Math.round(t),0),Fi);return bw(e.toString($i),2)}i(pl,"intToHex");function xw(t){return`#${pl(t.red)}${pl(t.green)}${pl(t.blue)}`}i(xw,"rgbToHex");function Ew(t){let e=parseInt(t.slice(1,3),$i),o=parseInt(t.slice(3,5),$i),n=parseInt(t.slice(5,7),$i);return{red:e,green:o,blue:n}}i(Ew,"hexToRGB");function Iw(t,e){let o=1-Am*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Iw,"generateShade");function Aw(t,e){let o=Am*e;return{red:t.red+(Fi-t.red)*o,green:t.green+(Fi-t.green)*o,blue:t.blue+(Fi-t.blue)*o}}i(Aw,"generateTint");function Nw(t){return Nm(t,Iw)}i(Nw,"calculateShades");function Ww(t){return Nm(t,Aw)}i(Ww,"calculateTints");function Nm(t,e){let o=Ew(t),n=[];for(let r=1;r<9;r++)n.push(xw(e(o,r)));return n}i(Nm,"calculateColors");function ul(t,e,o){let a=Ww(t).reverse().concat(t),s=Nw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let d=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${d}`]=f)}return l}i(ul,"createTintsAndShades");function dl(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!Tu(r)){let l=vw(a);Object.assign(n,ul(l,r,s))}}return{...n,...e}}i(dl,"expandToGenerateThemeColors");var Wm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Bw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Wm(o%52)+e;return Wm(o%52)+e},"toAlphabeticName"),Lw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ml=i(t=>Bw(Lw(5381,JSON.stringify(t))>>>0),"toHash");function gl(t){let e=Mw.colors,o={...e,...Pw},n,r;if(t?.light){let s={colors:dl(e,t.light)};n={id:`${ys}-light-${ml(s)}`,tokens:s}}if(t?.dark){let s={colors:dl(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ys}-dark-${ml(s)}`,tokens:s}}return{light:n,dark:r}}i(gl,"customizedThemeTokens");function Bm(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>fl.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(fl.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(fl.cloneElement(e,{key:c}))}}),o}i(Bm,"joinList");function Lm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Lm,"doesWindowPreferDarkColorScheme");function mo(t){let{colors:e,fontFamily:o=iu,borderRadius:n=_u,secondaryBorderRadius:r=Du}=t,[a,s]=Fw(Lm()?"dark":"light"),{theme:c}=k(),{dark:l,light:p}=gl(e),u=hl({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,Dw.className],f=[u.className,_w.className];if(p){let g=hl(p.id,p.tokens);d.push(g.className)}if(l){let g=hl(l.id,l.tokens);f.push(g.className)}return $w(()=>{let g=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return Lm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=d.join(" "),m=f.join(" ");return c==="auto"?a==="dark"?m:g:c==="dark"?m:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(mo,"useTheme");var Tt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Mm}from"@lingui/core";import{Alert as Ow,Button as Uw}from"@rango-dev/ui";import Pm from"react";function yl(t){return Pm.createElement(Ow,{action:Pm.createElement(Uw,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Mm.t("Activate this tab")),type:"warning",variant:"alarm",title:Mm.t("Another tab is open and handles transactions.")})}i(yl,"ActivateTabAlert");import{i18n as Sl}from"@lingui/core";import{Button as zw,Divider as Hw,MessageBox as Qw}from"@rango-dev/ui";import Oi from"react";function Cl(t){let{open:e,onClose:o,onConfirm:n}=t;return Oi.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:W()},Oi.createElement(Qw,{title:Sl.t("Activate current tab"),type:"warning",description:Sl.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.")},Oi.createElement(Hw,{size:20}),Oi.createElement(zw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Sl.t("Confirm"))))}i(Cl,"ActivateTabModal");import{ChevronLeftIcon as Vw}from"@rango-dev/ui";import Hm from"react";import{css as qw,darkTheme as _m,IconButton as Gw,styled as Oo}from"@rango-dev/ui";var Dt=Oo(Gw,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${_m} &`]:{backgroundColor:"$neutral"}}}),Dm=Oo("div",{position:"absolute",background:"$secondary500",[`.${_m} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),fo=Oo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),$m=Oo("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=Oo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Om=Oo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Um=qw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),zm=Oo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function kl(t){return Hm.createElement(Dt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Hm.createElement(Vw,{color:"black",size:16}))}i(kl,"BackButton");import{i18n as Kw}from"@lingui/core";import{Button as jw,Typography as Xw}from"@rango-dev/ui";import Tl from"react";function wl(t){return Tl.createElement(fo,null,Tl.createElement(jw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},Tl.createElement(Xw,{variant:"label",size:"medium",color:"error500"},Kw.t("Cancel"))))}i(wl,"CancelButton");import{i18n as Yw}from"@lingui/core";import{Image as Zw,Tooltip as Jw,WalletIcon as Rw}from"@rango-dev/ui";import Uo from"react";function vl(t){let{list:e}=vt(),o=e.filter(r=>r.state==="connected"),n=o.length?Uo.createElement("div",{className:Um()},o.map(r=>Uo.createElement(zm,{key:r.title},Uo.createElement(Zw,{src:r.image,size:14})))):Yw.t("Connect Wallet");return Uo.createElement(Jw,{container:t.container,side:"bottom",content:n},Uo.createElement(Dt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Uo.createElement(Dm,null),Uo.createElement(Rw,{size:18,color:"black"})))}i(vl,"WalletButton");import{i18n as zi}from"@lingui/core";import{NotificationsIcon as gv,Popover as hv,SettingsIcon as yv,Tooltip as Hi,TransactionIcon as Sv}from"@rango-dev/ui";import Pe from"react";import{Notifications as nv}from"@rango-dev/ui";import rv from"react";import{useNavigate as iv}from"react-router-dom";import{create as ev}from"zustand";import{persist as tv,subscribeWithSelector as ov}from"zustand/middleware";var We=co(ev()(tv(ov((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1];if(!r||!a)return;let s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function bl(){let t=iv(),{getNotifications:e,clearNotifications:o}=We(),n=e(),r=k().blockchains(),{findToken:a}=k();return rv.createElement(nv,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Yp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${F.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(bl,"NotificationContent");import{useManager as av}from"@rango-dev/queue-manager-react";import{InProgressIcon as sv}from"@rango-dev/ui";import Qm from"react";var lv=i(()=>{let{manager:t}=av();return Tt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Qm.createElement(Om,{id:"widget-header-history-badge-container"},Qm.createElement(sv,{color:"info",size:6})):null},"InProgressTransactionBadge"),qm=lv;import{EventSeverity as cv}from"@rango-dev/queue-manager-rango-preset";import{Typography as pv}from"@rango-dev/ui";import Gm from"react";function Vm(){let{getNotifications:t}=We(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===cv.WARNING);return o?Gm.createElement($m,{isSever:n},Gm.createElement(pv,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Vm,"NotificationsBadge");import{RefreshProgressButton as uv}from"@rango-dev/ui";import xl,{useEffect as dv,useState as Km}from"react";var mv=1e3,jm=60,fv=100;function Ui({onClick:t}){let[e,o]=Km(0),[n,r]=Km(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");dv(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===jm&&c()},mv):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 xl.createElement(Dt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},xl.createElement(Fm,{onTransitionEnd:()=>r(!1),isRefetched:n},xl.createElement(uv,{size:22,color:t?"black":"gray",progress:e/jm*fv})))}i(Ui,"RefreshButton");function zo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=k(),c=nt("notification",s)||r.includes("notifications");return Pe.createElement(Pe.Fragment,null,!r.includes("refresh")&&Pe.createElement(Hi,{container:a||W(),side:"top",content:zi.t("Refresh")},Pe.createElement(Ui,{onClick:e})),!c&&Pe.createElement(hv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:W(),content:Pe.createElement(bl,null)},Pe.createElement("div",null,Pe.createElement(Hi,{container:W(),side:"top",content:zi.t("Notifications")},Pe.createElement(Dt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Pe.createElement(gv,{size:18,color:"black"}),Pe.createElement(Vm,null))))),!r.includes("settings")&&Pe.createElement(Hi,{container:W(),side:"top",content:zi.t("Settings")},Pe.createElement(Dt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Pe.createElement(yv,{size:18,color:"black"}))),!r.includes("history")&&Pe.createElement(Hi,{container:W(),side:"top",content:zi.t("History")},Pe.createElement(Dt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Pe.createElement(Sv,{size:18,color:"black"}),Pe.createElement(qm,null))))}i(zo,"HeaderButtons");import{i18n as El}from"@lingui/core";import{Divider as Ym,MessageBox as Tv,RefreshIcon as wv}from"@rango-dev/ui";import vn from"react";import{Button as Cv,styled as kv}from"@rango-dev/ui";var Xm=kv(Cv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Il(t){let{open:e,onClose:o}=t;return vn.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:W()},vn.createElement(Tv,{title:El.t("Something went wrong"),type:"error",description:El.t("Something went wrong. Please refresh the app.")},vn.createElement(Ym,{size:30}),vn.createElement(Xm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},vn.createElement(wv,{size:20,color:"primary"}),vn.createElement(Ym,{size:4,direction:"horizontal"}),El.t("Refresh"))))}i(Il,"RefreshModal");function Al(t){let e=t.target;if(e){let o=e.scrollTop,n=W();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(Al,"onScrollContentAttachStatusToContainer");import{css as bv,styled as Qi}from"@rango-dev/ui";var qi=bv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Zm=Qi("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"}}}}),Jm=Qi("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Rm=Qi("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"}}}),ef=Qi("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ae(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=cl(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=k(),[u,d]=nf(!1),{config:{features:f,theme:h}}=k(),{watermark:g,setShowCompactTokenSelector:m}=ne(),C=g==="FULL",{activeTheme:y}=mo(h||{}),[S,T]=nf(!1),w=nt("connectWalletButton",f),{isActiveTab:v,tabManagerInitiated:A,showActivateTabModal:N,setShowActivateTabModal:b,activateCurrentTab:x}=ne(),E=Ge(),{manager:B}=Ev(),{isTablet:I,isMobile:_}=wn(),G=Tt(B).map(({swap:se})=>se).some(se=>se.status==="running"),Y=i(()=>x(Po.forceClaim,G),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),ee=typeof r.hasBackButton>"u"||r.hasBackButton,J=of(null),te=of(null);return Gi(()=>{let se=(p?.swapBoxBanner?.routes?.length??0)===0,je=!!p?.swapBoxBanner?.routes?.some(le=>location.pathname.endsWith(le));T(!!p?.swapBoxBanner&&(se||je))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),Gi(()=>(fr()&&te.current&&e(te.current),()=>{o()}),[]),Gi(()=>(J.current?.addEventListener("scroll",Al),()=>{J.current?.removeEventListener("scroll",Al)}),[]),Gi(()=>{d(c==="failed")},[c]),Nv(()=>{let se=s==="auto"||!te.current||fr(),je=_||I,le=i(()=>{se||(je?te.current.style.height=`${window.innerHeight-te.current.offsetTop}px`:te.current.style.height=`${700}px`,m(parseFloat(te.current.style.height)<640))},"handler");return le(),window.addEventListener("resize",le),()=>window.removeEventListener("resize",le)},[s,_,I]),Be.createElement(Zm,{height:s,id:ot.SWAP_BOX_ID,className:`${y()} ${qi()}`,ref:te,showBanner:S},Be.createElement(Av,{prefix:ee?Be.createElement(kl,{onClick:()=>{E(),r.onBack?.()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!w&&Be.createElement(vl,{container:W(),onClick:L,isConnected:!!l?.length}),r.onCancel&&Be.createElement(wl,{onClick:r.onCancel}))}),Be.createElement(Jm,{ref:J},n),Be.createElement(Cl,{open:N,onClose:()=>b(!1),onConfirm:Y}),Be.createElement(Rm,null,Be.createElement("div",{className:"footer__content"},A&&!v&&Be.createElement("div",{className:"footer__alert"},Be.createElement(yl,{onActivateTab:Y}),Be.createElement(tf,{size:10})),a),Be.createElement(tf,{size:12}),Be.createElement("div",{className:`footer__logo ${C?"logo__show":"logo__hidden"}`},Be.createElement(Iv,null))),S&&Be.createElement(ef,null,p?.swapBoxBanner?.element),Be.createElement(Il,{open:u,onClose:()=>d(!1)}))}i(ae,"Layout");import{styled as Wv}from"@rango-dev/ui";var rf="$20 $20 $10 $20",Nl=Wv("div",{padding:rf,overflowY:"auto",flexGrow:1});import{styled as Bv}from"@rango-dev/ui";var ue=Bv("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 go}from"@lingui/core";import{useState as Wl}from"react";function af(){let[t,e]=Wl(!1),[o,n]=Wl(null),[r,a]=Wl(null),{findToken:s}=k(),c=k().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(d,f){switch(d){case"duplicated":return{type:d,title:go.t("Duplicate Token"),message:go.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:go.t("Token Already Exists"),message:go.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:go.t("Token Not Found"),message:go.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:f}})};case"network-error":return{type:d,title:go.t("Network error"),message:go.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:f})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===f.toLowerCase())){let y=p("duplicated");n(y);return}let g=await ut().getCustomToken({blockchain:d,address:f});if(!g||!g.token||g.error){let y=p("not-found",d);n(y);return}let m=g.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 g=p("not-found",d);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(af,"useFetchCustomToken");var Hv=Dv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${Pv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function sf(){let t=Uv(),[e]=zv(),o=Ge(),n=k().blockchains(),r=e.get("blockchain")||"",a=No(r,n),[s,c]=Ov(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:f}=af(),h=!!a&&tn(a,s),g=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ve.createElement(ae,{header:{title:bn.t("Add Custom Token")}},Ve.createElement(ue,null,Ve.createElement(Hv,null,Ve.createElement("div",null,Ve.createElement(nl,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:bn.t("Select chain"),placeholder:bn.t("Select chain")}),Ve.createElement(Bl,{size:"24"}),Ve.createElement(Fv,{size:"large",variant:"label"},bn.t("Enter Address")),Ve.createElement(Bl,{size:10}),Ve.createElement($v,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:bn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Ve.createElement(_v,{color:"success",size:12}),onChange:C=>c(C.target.value)}),!h&&!!s&&Ve.createElement(Ve.Fragment,null,Ve.createElement(Bl,{size:4}),Ve.createElement(Lv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ve.createElement(Mv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},bn.t("Import"))),Ve.createElement(mr,{token:p,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(sf,"AddCustomTokenPage");import{i18n as dc}from"@lingui/core";import{useManager as Nx}from"@rango-dev/queue-manager-react";import{Alert as Wx,Button as Bx,css as fc,Divider as mc,IconButton as Xg,styled as Lx,Typography as Mx,WalletIcon as Px}from"@rango-dev/ui";import $e,{useEffect as Ca,useLayoutEffect as _x,useRef as Dx,useState as Ir}from"react";import{useNavigate as $x}from"react-router-dom";import{i18n as Ho}from"@lingui/core";import{Alert as fb,BalanceErrors as gb,Button as Mf,ChevronLeftIcon as hb,Divider as Ol,MessageBox as yb,Typography as Ul}from"@rango-dev/ui";import ie,{useCallback as Sb,useEffect as Pf,useMemo as Cb,useState as In}from"react";import{useNavigate as kb}from"react-router-dom";import{i18n as _l}from"@lingui/core";import{Alert as Kv,ChevronDownIcon as jv,CloseIcon as Xv,Divider as ff,IconButton as gf,PasteIcon as Yv,Typography as Zv,WalletIcon as Jv}from"@rango-dev/ui";import _e,{useEffect as Rv,useRef as eb}from"react";import Xi,{useRef as Gv}from"react";import*as xn from"@radix-ui/react-collapsible";import{keyframes as lf,styled as Vi}from"@rango-dev/ui";var Ll=300,Qv=lf({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),qv=lf({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),cf=Vi(xn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Ml=Vi(xn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Ki=Vi(xn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Qv} ${Ll}ms ease-out`},false:{animation:`${qv} ${Ll}ms ease-out`}}}}),ji=Vi("div",{transition:`all ${Ll}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Yi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Gv(null);return Xi.createElement(cf,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&Xi.createElement(Ml,{className:"collapsible_trigger",onClick:a},s),Xi.createElement(Ki,{className:"collapsible_content",open:e},r),c==="bottom"&&Xi.createElement(Ml,{className:"collapsible_trigger",onClick:a},s))}i(Yi,"CustomCollapsible");import{darkTheme as pf,styled as Pl,TextField as Vv}from"@rango-dev/ui";var uf=Pl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),df=Pl(Vv,{backgroundColor:"$neutral100"}),mf=Pl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${pf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${pf} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function hf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=H()(),{config:s}=k(),c=k().blockchains(),l=ti(e.name,c),p=eb(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!tn(e,r),g=i(()=>{a("")},"handleClear"),m=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let S=await navigator.clipboard.readText();a(S),p?.current?.focus()}},"handlePaste"),C=i(()=>r?_e.createElement(gf,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},_e.createElement(Xv,{size:12,color:"gray"})):d?null:_e.createElement(gf,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},_e.createElement(Yv,{size:16})),"renderSuffix");return Rv(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),_e.createElement(uf,null,_e.createElement(Yi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:_e.createElement(mf,{id:"widget-custom-destination-collapsible-btn"},_e.createElement("div",{className:"button__content"},_e.createElement(Jv,{size:18,color:"info"}),_e.createElement(ff,{size:4,direction:"horizontal"}),_e.createElement(Zv,{variant:"label",size:"medium",color:n?"$neutral600":void 0},_l.t("Send to a different address"))),_e.createElement(ji,{orientation:n?"up":"down"},_e.createElement(jv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},_e.createElement(df,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:_l.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:C(),onChange:y=>{let S=y.target.value;a(S)}})),h&&_e.createElement(_e.Fragment,null,_e.createElement(ff,{size:4}),_e.createElement(Kv,{variant:"alarm",type:"error",title:_l.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(hf,"CustomDestination");import{css as tb,IconButton as ob,SelectableWalletButton as nb,styled as ho}from"@rango-dev/ui";var yf=ho("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Sf=ho("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Cf=ho(nb,{justifyContent:"center"}),kf=ho("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Tf=ho(ob,{position:"absolute",left:"$20"}),wf=ho("div",{paddingTop:"$20"}),vf=tb({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),bf=ho("div",{display:"flex"}),xf=ho("div",{overflow:"visible",width:"100%"});import{i18n as $l}from"@lingui/core";import{warn as lb}from"@rango-dev/logging-core";import{Divider as cb,makeInfo as pb,SelectableWallet as ub,Typography as Bf,WalletState as Zi}from"@rango-dev/ui";import at,{useEffect as Lf,useState as Sr}from"react";import{Image as ab,MessageBox as sb}from"@rango-dev/ui";import yr from"react";import{keyframes as rb,styled as Dl}from"@rango-dev/ui";var Ef=Dl("div",{position:"relative"}),ib=rb({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),If=Dl("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ib} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Af=Dl("div",{"& img":{borderRadius:"50%"}});import{i18n as En}from"@lingui/core";function Nf(t,e){switch(t){case"in-progress":return{type:"loading",title:En.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:En.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:En.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:En.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:En.t("Request Rejected"),description:En.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(Nf,"generateMessageByStatus");function Wf(t){let{status:e,displayName:o,image:n}=t,r=Nf(e,o),a=e=="in-progress";return yr.createElement(sb,{type:r.type,title:r.title,description:r.description,icon:a?yr.createElement(Ef,null,yr.createElement(Af,null,yr.createElement(ab,{src:n,size:45})),yr.createElement(If,null)):void 0})}i(Wf,"ExperimentalChainStatus");var db=7,mb=3e3;function Fl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=ne.use.isActiveTab(),{checkHasDeepLink:l,getWalletLink:p}=un(),{blockchains:u,connectedWallets:d}=k(),[f,h]=Sr(),[g,m]=Sr(null),[C,y]=Sr(!1),[S,T]=Sr(null),{suggestAndConnect:w}=Ji(),{list:v}=vt({chain:e}),[A,N]=Sr(v),b=v.length,x=a&&b-a>0,E=i(async I=>{y(!1),T("in-progress");try{await w(I.walletType,I.chain),T("completed")}catch{T("rejected")}},"addExperimentalChain");Lf(()=>{N(I=>{let _=v.findIndex(U=>n(U.type,e));return x&&_>1?[v[_]].concat(v.filter((U,G)=>G!==_)):I.map(U=>v.find(G=>G.type===U.type)??U)})},[JSON.stringify(v)]);let B=document.getElementById(ot.SWAP_BOX_ID);return Lf(()=>{let I=null;return(S==="completed"||S==="rejected")&&(I=setTimeout(()=>T(null),mb)),()=>{I&&clearTimeout(I)}},[S]),at.createElement(at.Fragment,null,A.slice(0,a).map(I=>{let _=Nu({connectedWallets:d,walletType:I.type,chain:e}),U=I.state===Zi.CONNECTED,G=_?lo(_,db):"",Y=U&&!!I.needsNamespace&&!G,L=di(u(),e),ee=!d.find(He=>He.walletType===I.type&&He.chain===e),J=L&&ee&&I.state===Zi.CONNECTED,te=i(async()=>{I.state===Zi.DISCONNECTED||Y?h(I):J?(m({walletType:I.type,chain:e,address:_??""}),y(!0)):r({walletType:I.type,chain:e,address:_??""})},"onSelectableWalletClick"),se=pb(I.state,{hasDeepLink:l(I.type)}),je=i(()=>J?$l.t({id:"Add {chain} chain",values:{chain:e}}):Y?$l.t("Chain not connected"):G||se.description,"getWalletDescription"),le=i(()=>I.state===Zi.CONNECTED?Y?"neutral600":"neutral700":se.color,"getWalletDescriptionColor"),Xe=g?.chain?ti(g.chain,u()):void 0;return at.createElement(at.Fragment,{key:`${I.title}_${Xe}`},!!g&&at.createElement(R,{id:"widget-wallets-list-watermarked-modal",open:!!g&&C,container:B,onClose:()=>{m(null)}},at.createElement(qs,{id:"widget-wallets-list-experimental-chain-container",displayName:Xe,onConfirm:()=>{E(g)}})),S&&at.createElement(R,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!S,onClose:T.bind(null,null),container:B},at.createElement(Wf,{status:S,displayName:Xe,image:I.image}),at.createElement(cb,{direction:"vertical",size:32})),at.createElement(ub,{hasDeepLink:l(I.type),key:I.type,id:"widget-wallets-list-selectable-wallet-btn",description:je(),descriptionColor:le(),onClick:te,selected:n(I.type,e),disabled:!c,...I,link:p(I.type)}))}),at.createElement(sr,{id:"widget-wallets-list-stateful-connect-modal",wallet:f,options:{defaultSelectedChains:o||[e]},onClose:()=>{h(void 0)},onConnect:()=>{t.onConnect&&(f?.type?t.onConnect(f.type):lb(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),x&&at.createElement(Cf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},at.createElement(Bf,{variant:"label",size:"medium"},$l.t("Show more wallets"),at.createElement(Bf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",b-(a??0)))))}i(Fl,"WalletList");var Tb=2;function _f(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=kb(),c=k().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:f,setCustomDestination:h}=H()(),{config:g,connectedWallets:m,setWalletsAsSelected:C}=k(),[y,S]=In(""),[T,w]=In([]),[v,A]=In(""),[N,b]=In(!!f),x=Cb(()=>Lo({filter:"all",quote:l}),[l]),E=Lo({filter:"required",quote:l}),B=c.find($=>$.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),I=i($=>E.includes($),"isWalletRequiredFor"),_=Sb(()=>m.filter($=>$.selected&&x.includes($.chain)),[m,x]),[U,G]=In(_()),[Y,L]=In([]),ee=i(($,z)=>L(V=>V.concat({blockchain:$,walletType:z})),"addNextSelectedWallets"),J=T.length>0,te=i(($,z)=>!!U.find(V=>V.walletType===$&&V.chain===z&&V.selected&&(I(z)||!I(z)&&!f)),"isSelected"),se=i(($,z,V)=>{let pe=!1;return $.map(Q=>{if(Q.chain===z){let X=Q.selected;return!pe&&V?(pe=!0,X=!0):V||(X=!1),{...Q,selected:X}}return Q})},"updateSelectableWallets"),je=i($=>{b($),$?I(B?.name??"")||G(z=>se(z,B?.name||"",!1)):(h(""),G(z=>se(z,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),le=i($=>{if(y&&S(""),te($.walletType,$.chain))return;let V=m.find(pe=>pe.walletType===$.walletType&&pe.chain===$.chain);V&&(n(),$.chain===B?.name&&N&&!I(B.name)&&(b(!1),h(null)),G(pe=>pe.filter(Q=>Q.chain!==$.chain).concat({...V,selected:!0})))},"onChange"),Xe=i(()=>{let $=U.filter(z=>z.selected);C($),p($),d(!0),o()},"onConfirmBalance"),He=i(async()=>{w([]),A("");let $=await r?.({selectedWallets:U.filter(V=>V.selected),customDestination:f}),z=$.warnings;z?.balance?.messages&&w(z.balance.messages),$.error&&A(xd($.error)),!$.error&&!z?.balance?.messages.length?Xe():w(z?.balance?.messages??[])},"onConfirmWallets");Pf(()=>{G($=>{let z=[];return $.forEach(V=>{!m.some(Q=>Q.chain===V.chain&&Q.walletType===V.walletType&&Q.address===V.address)||z.push(V)}),z=z.concat(m.filter(V=>!!!z.find(Q=>Q.chain===V.chain)&&V.selected&&x.includes(V.chain))),z})},[m,x]),Pf(()=>{let $=[];Y.length>0&&(Y.forEach(z=>{let V=m.find(pe=>pe.chain===z.blockchain&&pe.walletType===z.walletType);V?le(V):$.push(z)}),L($))},[m,Y]);let Bt=document.getElementById(ot.SWAP_BOX_ID);return ie.createElement(R,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:Bt,...!y&&{styles:{container:{height:"100%"}},footer:ie.createElement(bf,null,ie.createElement(Mf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:em(a,N,f,l,U,B),onClick:He,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Ho.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:ie.createElement(kf,null,ie.createElement(Tf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:S.bind(null,"")},ie.createElement(hb,{size:16})),ie.createElement(Ul,{variant:"headline",size:"small"},Ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:yt(y,c)}})))},anchor:"center"},ie.createElement(R,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:J,onClose:w.bind(null,[]),container:Bt},ie.createElement(yb,{title:Ho.t("Insufficient account balance"),type:"error",description:ie.createElement(gb,{messages:T??[]})},ie.createElement(Mf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Xe},Ho.t("Proceed anyway")))),y&&ie.createElement(wf,null,ie.createElement("div",{className:vf()},ie.createElement(Fl,{chain:y,quoteChains:x,isSelected:te,selectWallet:le,onShowMore:()=>S(y),onConnect:$=>{ee(y,$)}}))),!y&&ie.createElement(ie.Fragment,null,v&&ie.createElement(ie.Fragment,null,ie.createElement(fb,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Ho.t(v)}),ie.createElement(Ol,{size:12})),ie.createElement(xf,null,x.map(($,z)=>{let V=c.find(j=>j.name===$),pe=`wallet-${z}`,Q=z===x.length-1,X=Q&&B&&g?.customDestination!==!1;return ie.createElement("div",{key:pe},ie.createElement(yf,null,ie.createElement(Ul,{variant:"title",size:"xmedium"},Ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:V?.shortName}})),ie.createElement(Ul,{variant:"label",color:"$neutral700",size:"medium"},Ho.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:V?.shortName}}))),ie.createElement(Ol,{size:24}),ie.createElement(Sf,null,ie.createElement(Fl,{chain:$,quoteChains:x,isSelected:te,selectWallet:le,limit:Tb,onShowMore:()=>S(V?.name??""),onConnect:j=>{ee($,j)}})),!Q&&ie.createElement(Ol,{size:32}),X&&ie.createElement(hf,{blockchain:B,open:N,handleOpenChange:je}))}))))}i(_f,"ConfirmWalletsModal");import{i18n as Kb}from"@lingui/core";import{Alert as jb,Button as Xb,Divider as tg,InfoIcon as Yb}from"@rango-dev/ui";import Oe from"react";import{Alert as bb,Button as xb,Divider as Ql,NoRouteIcon as Eb,RefreshIcon as Ib,Typography as Hf}from"@rango-dev/ui";import dt from"react";import{i18n as Df}from"@lingui/core";var wb=24,vb=60;function $f(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:re().genericServerError,action:{onClick:n,title:Df.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:re().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Df.t("Reset")}},description:re().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:re().noResultError.description}}i($f,"makeInfo");var zl=(o=>(o[o.small=wb]="small",o[o.large=vb]="large",o))(zl||{}),Hl=(o=>(o.small="small",o.large="medium",o))(Hl||{});import{styled as Ri}from"@rango-dev/ui";var Ff=Ri("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Of=Ri("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Uf=Ri("div",{variants:{size:{small:{width:"100%"},large:{}}}}),zf=Ri("div",{padding:"$6 $0"});function Cr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=k().getDisabledLiquiditySources(),s=k().toggleAllLiquiditySources,c=k().swappers(),l=$f(o,a,()=>s(c,!0),e);return r&&(l.alert=null),dt.createElement(Ff,{id:"widget-no-result-container"},dt.createElement(Eb,{size:zl[n],color:"gray"}),dt.createElement(Ql,{size:4}),dt.createElement(Hf,{variant:"title",size:Hl[n]},re().noResultError.title),n==="large"&&dt.createElement(Ql,{size:4}),!!l.description&&dt.createElement(Of,{size:n},dt.createElement(Hf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),dt.createElement(Ql,{size:n==="large"?"24":"4"}),!!l.alert&&dt.createElement(Uf,{size:n},dt.createElement(bb,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&dt.createElement(xb,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:dt.createElement(zf,null,dt.createElement(Ib,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Cr,"NoResult");import{i18n as kr}from"@lingui/core";import{Button as _b,Divider as Db,MessageBox as $b,Typography as Fb,WarningIcon as Ob}from"@rango-dev/ui";import Yt from"react";import{InfoIcon as Bb,Tooltip as Lb,Typography as Mb}from"@rango-dev/ui";import An from"react";import{Button as Ab,darkTheme as Nb,styled as Qo,Typography as Wb}from"@rango-dev/ui";var Qf=Qo("div",{width:"100%"}),ql=Qo("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),qf=Qo("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Nb} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Gf=Qo("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$2"}),Vf=Qo(Wb,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"250px"}),Kf=Qo("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),jf=Qo(Ab,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});var Pb=35;function Xf(t){let{title:e,value:o,valueColor:n}=t,r=W();return An.createElement(qf,null,An.createElement(Mb,{size:"medium",variant:"label",className:"_title"},e),An.createElement(Gf,null,An.createElement(Vf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`),o.length>Pb&&An.createElement(Lb,{content:o,container:r},An.createElement(Bb,{size:12,color:"gray"}))))}i(Xf,"QuoteErrorsModalItem");function Yf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:kr.t("Swapping"),value:P(r.inputUsdValue)},{title:kr.t("Gas cost"),value:P(r.totalFee,2,2)},{title:kr.t("Receiving"),value:P(r.outputUsdValue)},{title:kr.t("Price impact"),value:P(r.priceImpact,2,2),valueColor:`${s}500`}];return Yt.createElement(R,{id:"widget-high-value-loss-warning-modal",footer:Yt.createElement(_b,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Yt.createElement(Ob,null),fullWidth:!0,disabled:a,onClick:n},re().highValueLossError.confirmMessage),open:e,onClose:o,container:W()},Yt.createElement($b,{type:s,title:re().highValueLossError.impactTitle,description:re().highValueLossError.description}),Yt.createElement(ql,null,Yt.createElement(Db,{size:"4"}),Yt.createElement(Fb,{size:"small",variant:"title"},kr.t("Details")),Yt.createElement(ql,null,c.map((l,p)=>Yt.createElement(Xf,{key:p,...l})))))}i(Yf,"HighValueLossWarningModal");import{i18n as Nn}from"@lingui/core";function Zf(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=Nn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Nn.t("Increase")),o;if(t){switch(t.type){case 0:{Xt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=re().highValueLossError.title;break}case 4:{o.title=Nn.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=re().unknownPriceError.title;break}case 2:{o.title=Nn.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=Nn.t("Increase");break}case 3:{o.title=Nn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Zf,"makeAlerts");function Jf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(Jf,"getRequiredSlippage");import{i18n as Wn}from"@lingui/core";import{Button as Ub,Divider as Gl,MessageBox as zb,WarningIcon as Hb}from"@rango-dev/ui";import Co from"react";import{useNavigate as Qb}from"react-router-dom";function Rf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=Qb();return Co.createElement(R,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:W(),onClose:o},Co.createElement(zb,{type:"warning",title:r.type===3?Wn.t("High slippage"):Wn.t("Low slippage"),description:r.type===3?Wn.t("Caution, your slippage is high. Your trade may be front run."):Wn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},Co.createElement(Gl,{size:18}),Co.createElement(Gl,{size:32}),Co.createElement(jf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},Co.createElement(Hb,{color:"white",size:16}),Wn.t("Swap anyway")),Co.createElement(Gl,{size:10}),Co.createElement(Ub,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+F.settings)},Wn.t("Change Slippage"))))}i(Rf,"SlippageWarningModal");import{Button as qb,MessageBox as Gb,WarningIcon as Vb}from"@rango-dev/ui";import ea from"react";function eg(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return ea.createElement(R,{id:"widget-unknown-price-warning-modal",footer:ea.createElement(qb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:ea.createElement(Vb,null),fullWidth:!0,disabled:r,onClick:n},re().unknownPriceError.confirmMessage),open:e,onClose:o,container:W()},ea.createElement(Gb,{type:"warning",title:re().unknownPriceError.impactTitle,description:re().unknownPriceError.description}))}i(eg,"UnknownPriceWarningModal");function Tr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:d,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,m=Zf(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let C=!!m&&!s,y=i(S=>{if(S==="change-slippage"){let T=o?.type===3||o?.type===4?o:null,w=Jf(e,T);f?.(w)}else S==="change-settings"&&d()},"onclickActionButton");return Oe.createElement(Oe.Fragment,null,g&&Oe.createElement(Oe.Fragment,null,Oe.createElement(tg,{size:10}),Oe.createElement(Cr,{skipAlerts:s,error:o,fetch:c})),C&&Oe.createElement(Qf,null,Oe.createElement(tg,{size:10}),Oe.createElement(jb,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Oe.createElement(Kf,{onClick:l},Oe.createElement(Yb,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Oe.createElement(Xb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>y(m.action)},m.actionButtonTitle||Kb.t("Change"))}})),e&&Oe.createElement(Oe.Fragment,null,e.type===0&&Oe.createElement(Yf,{...h,warning:e}),(e.type===3||e.type===2)&&Oe.createElement(Rf,{...h,warning:e}),e.type===1&&Oe.createElement(eg,{...h,warning:e})))}i(Tr,"QuoteWarningsAndErrors");import wx from"bignumber.js";import ga from"react";import{i18n as qo}from"@lingui/core";import{Alert as ux,Divider as Ln,FullExpandedQuote as dx,InfoIcon as oc,NumericTooltip as nc,QuoteTag as mx,StepDetails as fx,TokenAmount as gx,Typography as Mn,useIsTruncated as rc}from"@rango-dev/ui";import ic from"bignumber.js";import O,{useRef as da,useState as hx}from"react";import{styled as Vl}from"@rango-dev/ui";var Kl=Vl("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),og=Vl("div",{paddingBottom:"$15","& .from-amount-text":{wordBreak:"break-word"},variants:{dense:{true:{paddingBottom:0}}}}),ng=Vl("div",{width:"100%",display:"flex"});import*as ta from"@radix-ui/react-collapsible";import{Button as Zb,css as oa,darkTheme as De,Image as rg,styled as Ke,Typography as jl}from"@rango-dev/ui";var Jb=300,ig=Ke(ta.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${De} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),ag=oa({padding:"$10 $15"}),sg=Ke(Zb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${De} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${De} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${De} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),lg=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",[`.${De} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${De} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${De} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${De} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${De} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${De} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${De} &`]:{backgroundColor:"$neutral400"}}}}]}),cg=oa({width:"100%",padding:"$15 $15 $10 $15"}),pg=oa({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Bn=oa({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),ug=Ke(ta.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:{[`& ${rg}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${rg}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${De} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),dg=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"}}}}),mg=Ke(Ki,{width:"100%",background:"inherit"}),Xl=Ke("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Jb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),_Q=Ke("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),fg=Ke("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${De} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),gg=Ke("div",{display:"flex",flexDirection:"row",alignItems:"center",gap:"$2",flex:"1 1 auto",minWidth:0}),Yl=Ke(jl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"$30"}),Zl=Ke(jl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:"0 1 auto"}),Jl=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"}}}}),hg=Ke("div",{display:"flex"}),na=Ke("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${De} &`]:{borderTopColor:"$neutral800"}}),yg=Ke(jl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,flexShrink:3});import{i18n as $t}from"@lingui/core";import{ChevronDownIcon as ex,CloseIcon as tx,Divider as aa,IconButton as ox,NumericTooltip as nx,QuoteCost as rx,Typography as Et}from"@rango-dev/ui";import Z,{useState as Tg}from"react";import{css as Rb,styled as ra}from"@rango-dev/ui";var ia=ra("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Rl=ra("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Sg=ra("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Cg=ra("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),kg=Rb({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var ix=i(t=>t.fee.isZero()?null:Z.createElement(ia,null,Z.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(Et,{variant:"label",size:"medium"},"$",P(t.fee,4,4))),"NonPayableFee");function ec(t){let[e,o]=Tg(!1),[n,r]=Tg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?Bo():W(),m=Vd(h),C=P(c,2,2);return Z.createElement(Z.Fragment,null,Z.createElement(rx,{onClickFee:d?y=>{y.stopPropagation(),o(!e)}:void 0,fee:C,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?$t.t("View more info"):void 0,tooltipContainer:g}),Z.createElement(R,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:Z.createElement(Cg,{style:{textAlign:f?"left":"center"}},Z.createElement(Et,{variant:"title",size:"medium"},$t.t("Gas & Fee Explanation")),Z.createElement(ox,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Z.createElement(tx,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(Sg,null,Z.createElement(Et,{variant:"title",size:"small"},$t.t("Details")),Z.createElement(aa,{size:10}),Object.entries(m.payable).flatMap(([y,S])=>S.map((T,w)=>{let v=`payable-fee-${w}`,A=Ys(T);return Z.createElement(ia,{key:v},Z.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},Gs(y,$t.t)),Z.createElement(nx,{content:T.amount,container:g},Z.createElement(Et,{variant:"label",size:"medium"},P(T.amount,2,2),T.asset.symbol," ($",P(A,4,4),")")))})),Z.createElement(ia,{className:"total_payable_fee"},Z.createElement(Et,{variant:"label",size:"medium"},$t.t("Total Payable Fee")),Z.createElement(Et,{variant:"label",size:"medium"},"$",P(c,4,4))),Z.createElement(Rl,null),!!Object.keys(m.nonePayable).length&&Z.createElement(Yi,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:Z.createElement("div",{className:kg()},Z.createElement(Et,{size:"small",variant:"body",color:"neutral700"},n?$t.t("Hide non-payable fees"):$t.t("Show non-payable fees")),Z.createElement(aa,{size:4,direction:"horizontal"}),Z.createElement(ji,{orientation:n?"up":"down"},Z.createElement(ex,{size:12,color:"gray"}))),open:n},Z.createElement(Et,{size:"small",variant:"title"},$t.t("Description")),Z.createElement(aa,{size:4}),Z.createElement(Et,{size:"small",variant:"body",color:"neutral700"},$t.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),Z.createElement(aa,{size:10}),Object.entries(m.nonePayable).map(([y,S],T)=>{let w=Gd(S),v=Gs(y,$t.t),A=`non-payable-fee-${T}`;return Z.createElement(ix,{key:A,fee:w,label:v})}),Z.createElement(Rl,null)))))}i(ec,"QuoteCostDetails");import{i18n as bg}from"@lingui/core";import{TokenAmount as xg}from"@rango-dev/ui";import sa from"react";import{css as ax,styled as sx}from"@rango-dev/ui";var wg=sx("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),vg=ax({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function wr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return sa.createElement(wg,null,sa.createElement(xg,{direction:"horizontal",label:bg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:W(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),sa.createElement("div",{className:vg()}),sa.createElement(xg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:W(),label:bg.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(wr,"QuoteSummary");import{i18n as Eg}from"@lingui/core";import{ChevronDownIcon as lx,ChevronRightIcon as cx,Divider as tc,Image as px,Tooltip as ua,Typography as la}from"@rango-dev/ui";import q from"react";var ca=4,pa=6,vr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||W();return q.createElement(ua,{container:c,side:"bottom",sideOffset:4,open:r,content:e},q.createElement(dg,{className:n,state:a},q.createElement(px,{src:o,size:16})))},"ImageComponent");function Ig(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||W(),p=r.length,u=_d(r),{isTablet:d,isMobile:f}=wn();return q.createElement(ug,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},q.createElement("div",{className:Bn()},q.createElement(la,{variant:"body",size:"xsmall"},Eg.t("Via:")),q.createElement(tc,{direction:"horizontal",size:4}),r.map((h,g)=>{let m=`item-${g}`,C=q.createElement(Xl,null,q.createElement(cx,{size:12,color:"black"}));return f||d?q.createElement(q.Fragment,{key:m},q.createElement(vr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&q.createElement(q.Fragment,null,C)):q.createElement(q.Fragment,{key:m},p<=ca||p>ca&&g<ca-1?q.createElement(q.Fragment,null,q.createElement(vr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&q.createElement(q.Fragment,null,C)):g===ca-1&&q.createElement(ua,{container:l,side:"bottom",align:"end",sideOffset:4,content:q.createElement("div",{className:Bn()},C,r.map((y,S)=>{let T=`image-${S}`;return S>=g&&q.createElement(q.Fragment,{key:T},q.createElement(vr,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),S!==p-1&&q.createElement(q.Fragment,null,C))}))},q.createElement(Jl,{state:r.find((y,S)=>S>=g&&(y.state==="error"||y.state==="warning"))?.state},q.createElement(la,{size:"xsmall",variant:"body"},"+",p-g))))})),q.createElement("div",{className:Bn()},q.createElement("div",{className:"blockchains_section"},q.createElement("div",{className:Bn()},q.createElement(la,{variant:"body",size:"xsmall"},Eg.t("Chains:")),q.createElement(tc,{direction:"horizontal",size:4}),u.map((h,g)=>q.createElement(q.Fragment,{key:h.displayName},u.length<=pa||u.length>pa&&g<pa-1?q.createElement(ua,{container:l,side:"bottom",content:h.displayName,sideOffset:4},q.createElement(vr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===pa-1&&q.createElement(ua,{container:l,side:"bottom",align:"end",sideOffset:4,content:q.createElement("div",{className:Bn()},u.map((m,C)=>C>=g&&q.createElement(vr,{key:m.displayName,content:"",src:m.image??"",open:!1,className:C>g?"blockchainImage":"",container:c})))},q.createElement(Jl,{className:"blockchainImage"},q.createElement(la,{size:"xsmall",variant:"body"},"+",u.length-g))))),q.createElement(tc,{direction:"horizontal",size:32}))),q.createElement(Xl,{orientation:a?"up":"down"},q.createElement(lx,{size:12,color:"black"}))))}i(Ig,"QuoteTrigger");function ac(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:d=!1,container:f}=t,h=k().blockchains(),{findToken:g}=k(),m=k().swappers(),{customSlippage:C,slippage:y}=k(),S=C||y,[T,w]=hx(t.expanded),v=da(null),A=P(n.value,6,6),N=n.usdValue?P(n.usdValue,4,4):"",b=jt(o.usdValue,n.usdValue??null),x=P(b,2,2),E=Xt(b??0),B=i((Q,X)=>Q.map((j,Ie)=>{let Ae,Ye=r?.type===3&&r.swap.swapperId===j.swapperId,Lt=r?.type===4&&!!r.recommendedSlippages?.[Ie],so=a?.type===2&&!!a.recommendedSlippages?.[Ie],Io=Ye||Lt,zn=so;Io?Ae="error":zn&&(Ae="warning");let Rr=Io?qo.t("Slippage Error"):qo.t("Slippage Warning");return Ye&&(Rr=qo.t("Bridge Limit Error")),{swapper:{displayName:Qn(j.swapperId,m)??"",image:j.swapperLogo},from:{token:{displayName:j.from.symbol,image:j.from.logo},chain:{displayName:yt(j.from.blockchain,h)??"",image:j.from.blockchainLogo},price:{value:Ie===0&&!X?P(o.value,6,6):P(j.fromAmount,6,6),usdValue:P((j.from.usdPrice??0)*parseFloat(j.fromAmount),4,4),realValue:Ie===0?o.value:j.fromAmount,realUsdValue:new ic(j.from.usdPrice??0).multipliedBy(j.fromAmount).toString()}},to:{token:{displayName:j.to.symbol,image:j.to.logo},chain:{displayName:yt(j.to.blockchain,h)||"",image:j.to.blockchainLogo},price:{value:P(j.toAmount,6,6),usdValue:P((j.to.usdPrice??0)*parseFloat(j.toAmount),4,4),realValue:j.toAmount,realUsdValue:new ic(j.to.usdPrice??0).multipliedBy(j.toAmount).toString()}},state:Ae,alerts:Io||zn?O.createElement(og,{dense:d},O.createElement(ux,{variant:"alarm",type:Io?"error":"warning",title:Rr,id:"widget-quote-footer-step-alarm-alert",footer:O.createElement(ng,null,Ye&&O.createElement("div",null,O.createElement(Mn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),O.createElement(Ln,{direction:"vertical",size:2}),O.createElement(Mn,{size:"xsmall",variant:"body",className:"from-amount-text",color:"neutral900"},qo.t({id:"Yours: {amount} {symbol}",values:{amount:P(j.fromAmount,6,6),symbol:j?.from.symbol}}))),(Lt||so)&&!Ye&&O.createElement("div",null,O.createElement(Mn,{size:"xsmall",variant:"body",color:"neutral900"},qo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[Ie]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[Ie]}}})),O.createElement(Ln,{direction:"vertical",size:2}),O.createElement(Mn,{size:"xsmall",variant:"body",color:"neutral900"},qo.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Gn(j.estimatedTimeInSeconds),fee:P(Xs(j,g),2,2),internalSwaps:j.internalSwaps?B(j.internalSwaps):void 0}}),"getQuoteSteps"),I=B(e?.swaps??[]),_=I.length,U=f||W(),G=$d(t.quote.tags||[]),Y=!!u,L=ci(e?.swaps),ee=Gn(L),J=Li(e?.swaps??[],g),te=P(J,2,2),se=J.gte(new ic(Id)),je=L/Nd>=Ad,le=da(null),Xe=rc(o.value,le),He=da(null),Bt=rc(n.value,He),$=da(null),z=rc(N,$),V=I[_-1],pe=I[0];return!pe||!V?null:d?O.createElement(dx,{selected:c,fee:te,time:ee,tooltipContainer:Bo(),steps:I,tags:G,id:"widget-quote-full-expanded-quote-container",quoteCost:O.createElement(ec,{quote:e,fullExpandedMode:!0,time:ee,fee:J,feeWarning:se,timeWarning:je,showModalFee:p,steps:_}),percentageChange:x,warningLevel:E,outputPrice:{value:A,usdValue:N,realValue:n.value,realUsdValue:n.usdValue}}):O.createElement(lg,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},O.createElement("div",{className:cg()},!l&&G.length?O.createElement(O.Fragment,null,O.createElement(hg,null,G.map((Q,X)=>{let j=`${Q.value}_${X}`;return O.createElement(O.Fragment,{key:j},O.createElement(mx,{label:Q.label,value:Q.value}),O.createElement(Ln,{size:4,direction:"horizontal"}))})),O.createElement(na,null),!Y&&O.createElement(Ln,{size:4})):null,O.createElement("div",{id:"portal-root",className:pg()},O.createElement(ec,{quote:e,time:ee,fee:J,feeWarning:se,timeWarning:je,showModalFee:p,steps:_}),Y&&O.createElement(sg,{onClick:Q=>{Q.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},O.createElement(Mn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},qo.t("See All Routes")))),s==="basic"&&O.createElement(gg,null,O.createElement(Zl,{ref:le,size:"small",variant:"body"},o.value),Xe&&O.createElement(nc,{content:o.value,container:U,open:o.value?void 0:!1},O.createElement(oc,{size:12,color:"gray"})),O.createElement(Yl,{size:"small",variant:"body"},I[0]?.from.token.displayName),O.createElement(Mn,{size:"small",variant:"body"},"="),O.createElement(Zl,{ref:He,size:"small",variant:"body"},n.value),Bt&&O.createElement(nc,{content:n.value,container:U,open:n.value?void 0:!1},O.createElement(oc,{size:12,color:"gray"})),O.createElement(Yl,{size:"small",variant:"body"},V?.to.token.displayName),O.createElement(Ln,{size:2,direction:"horizontal"}),O.createElement(yg,{ref:$,color:"$neutral600",size:"xsmall",variant:"body"},`($${N})`),z&&O.createElement(nc,{content:n.usdValue,container:U},O.createElement(oc,{size:12,color:"gray"}))),s==="list-item"&&O.createElement(gx,{id:"widget-quote-token-amount-container",tooltipContainer:U,type:"output",direction:"vertical",price:{value:A,usdValue:N,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:V.to.token.displayName,image:V.to.token.image},chain:{image:V.to.chain.image},percentageChange:x,warningLevel:E}),s==="swap-preview"&&O.createElement(O.Fragment,null,O.createElement(wr,{from:pe.from,to:V.to,percentageChange:x,warningLevel:E}),O.createElement(Ln,{size:4}))),O.createElement(ig,{selected:c,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:w},O.createElement(Ig,{type:s,quoteRef:v,selected:c,setExpanded:w,container:U,expanded:T,steps:I}),O.createElement(mg,{open:T},O.createElement(fg,null),O.createElement("div",{className:ag()},I.map((Q,X)=>{let j=`item-${X}`;return O.createElement(fx,{type:"quote-details",className:"widget-quote-step-details-container",key:j,tooltipContainer:U,step:Q,hasSeparator:X!==I.length-1,state:Q.state})})))))}i(ac,"Quote");import{Divider as kx,Skeleton as Tx}from"@rango-dev/ui";import eo from"react";import{darkTheme as yx,styled as ma}from"@rango-dev/ui";var Ag=ma("div",{$$color:"$colors$neutral100",[`.${yx} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Ng=ma("div",{paddingTop:"$2"}),Wg=ma("div",{paddingLeft:"$8"}),Bg=ma("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as zg,Divider as It,Skeleton as mt}from"@rango-dev/ui";import K from"react";import{css as Sx,styled as Rt}from"@rango-dev/ui";var sc=Rt("div",{display:"flex"}),Lg=Rt("div",{padding:"$10 $0 $20"}),Mg=Rt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Pg=Rt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),_g=Rt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Dg=Rt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),$g=Rt("div",{width:"65%",display:"flex",justifyContent:"start"}),Fg=Rt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Og=Rt("div",{padding:"$15 $0 $15 $0"}),Ug=Sx({display:"flex",justifyContent:"space-between",alignItems:"center"});function br(t){let{type:e,tagHidden:o=!0}=t,n=K.createElement(_g,null,K.createElement($g,null,K.createElement(zg,{loading:!0,size:"medium"}),K.createElement(It,{size:8,direction:"horizontal"}),K.createElement(Fg,null,K.createElement(mt,{height:10,width:60,variant:"rounded"}),K.createElement(It,{size:4}),K.createElement(mt,{height:15,variant:"rounded"}))),K.createElement(mt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return K.createElement("div",null,!o&&K.createElement(K.Fragment,null,K.createElement(sc,null,K.createElement(mt,{width:65,height:20,variant:"rounded"}),K.createElement(It,{size:4,direction:"horizontal"}),K.createElement(mt,{width:65,height:20,variant:"rounded"}),K.createElement(It,{size:4,direction:"horizontal"}),K.createElement(mt,{width:65,height:20,variant:"rounded"})),K.createElement(na,null),!r&&K.createElement(It,{size:4})),K.createElement("div",{className:Ug()},K.createElement(sc,null,K.createElement(mt,{width:60,height:10,variant:"rounded"}),K.createElement(It,{size:4,direction:"horizontal"}),K.createElement(mt,{width:60,height:10,variant:"rounded"}),K.createElement(It,{size:4,direction:"horizontal"}),K.createElement(mt,{width:60,height:10,variant:"rounded"})),r&&K.createElement(mt,{width:85,height:24,variant:"rounded"})),e==="basic"&&K.createElement(Lg,null,K.createElement(mt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&K.createElement(Mg,null,K.createElement(Pg,null,K.createElement(zg,{loading:!0,size:"medium"}),K.createElement(It,{direction:"horizontal",size:4}),K.createElement(mt,{height:15,width:150,variant:"rounded"})),K.createElement(It,{size:10}),K.createElement(mt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&K.createElement(K.Fragment,null,K.createElement(It,{size:4}),K.createElement(Og,null,n,K.createElement(Dg,null),n),K.createElement(It,{size:12})))}i(br,"QuoteSummarySkeleton");import{ChainToken as Vg,Divider as cc,NextIcon as Cx,Skeleton as fa}from"@rango-dev/ui";import Le from"react";import{styled as xr}from"@rango-dev/ui";var Hg=xr("div",{display:"flex",alignItems:"start"}),Qg=xr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),lc=xr("div",{display:"flex",alignItems:"center",flexGrow:1}),qg=xr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Gg=xr("div",{display:"flex",alignItems:"center"});function Ft(t){let{separator:e=!0}=t;return Le.createElement(Le.Fragment,null,Le.createElement(Gg,null,Le.createElement(fa,{height:22,width:22,variant:"circular"}),Le.createElement(cc,{direction:"horizontal",size:8}),Le.createElement(fa,{height:15,width:148,variant:"rounded"})),Le.createElement(Hg,null,Le.createElement(Bg,{hideSeparator:!e}),Le.createElement(Qg,{extraSpace:e},Le.createElement(lc,null,Le.createElement(Vg,{size:"small",loading:!0}),Le.createElement(cc,{direction:"horizontal",size:8}),Le.createElement(fa,{height:12,variant:"rounded"})),Le.createElement(qg,null,Le.createElement(Cx,{color:"gray",size:16})),Le.createElement(lc,null,Le.createElement(Vg,{size:"small",loading:!0}),Le.createElement(cc,{direction:"horizontal",size:8}),Le.createElement(fa,{height:12,variant:"rounded"})))))}i(Ft,"StepSkeleton");function Er(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return eo.createElement(Ag,{expanded:o,rounded:e!=="basic"},eo.createElement(br,{type:e,tagHidden:n}),eo.createElement(Ng,null,eo.createElement(Tx,{height:15,variant:"rounded"})),o&&eo.createElement(Wg,null,eo.createElement(kx,{size:24}),eo.createElement(Ft,null),eo.createElement(Ft,null),eo.createElement(Ft,{separator:!1})))}i(Er,"QuoteSkeleton");function Go(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:d,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:m,inputUsdValue:C}=H()(),y=e?.outputAmount?new wx(e?.outputAmount):null,S=e?Ct(e):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?ga.createElement(Kl,null,ga.createElement(Er,{tagHidden:c,type:o,expanded:s})):w?ga.createElement(Kl,{onClick:()=>l?.(e),id:d},ga.createElement(ac,{quote:e,error:r,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:h,input:{value:m,usdValue:C?.toString()??""},output:{value:y?.toString()??"",usdValue:S?.toString()??""}})):null}i(Go,"QuoteInfo");import{warn as Ex}from"@rango-dev/logging-core";import{calculatePendingSwap as Ix}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Ax}from"react";import{useRef as vx,useState as bx}from"react";var xx=2e3;function ha({request:t}){let[e,o]=bx(!1),n=vx(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,xx)),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(ha,"useFetch");function Kg(){let{fetch:t,loading:e,cancelFetch:o}=ha({request:async(n,r)=>await ut().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Kg,"useFetchConfirmQuote");function ya(t){if(!t.swaps)throw new Error(re().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=pc(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ya,"throwErrorIfResponseIsNotValid");function pc(t){if(Hd(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=Qd(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=Kd(t);if(o){let n=Mi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(pc,"getQuoteError");function jg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=Cn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=Yd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(jg,"generateWarnings");function Sa(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(Sa,"handleQuoteErrors");function uc(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=H()(),{slippage:l,customSlippage:p}=k(),u=k().getDisabledLiquiditySources(),d=k().blockchains(),f=k().tokens(),{findToken:h}=k(),{swapMode:g}=rt(),m=p||l,{fetch:C,cancelFetch:y,loading:S}=Kg();return Ax(()=>y,[]),{loading:S,fetch:i(async w=>{let v=w.selectedWallets,A=w?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let N=v.reduce((x,E)=>(x[E.chain]=E.address,x),{}),b={requestId:a?.requestId||"",selectedWallets:N,destination:A||void 0};try{return await C(b,!0).then(x=>{let{result:E}=x;if(!E)throw new Error(x.error??"Error fetching updated quote");ya({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let B={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};r(B);let I={slippage:m.toString(),disabledSwappersGroups:u},_=jg({previousQuote:a??void 0,currentQuote:B,meta:{blockchains:d},selectedWallets:v,userSlippage:m,inputUsdValue:n,findToken:h});c();let U=!!_.balance,G=Ix({inputAmount:o.toString(),bestRoute:E,wallets:Xd(v),settings:I,validateBalanceOrFee:!U,meta:{blockchains:d,tokens:f},swapMode:g});return{quote:B,swap:G,error:null,warnings:_}})}catch(x){let E=Sa(x);return E.type!==2&&Ex(new Error("confirm swap error"),{tags:{...E,type:Re[E.type],initialQuote:a,requestBody:b}}),{swap:null,error:E,warnings:null}}},"fetch"),cancelFetch:y}}i(uc,"useConfirmSwap");var Fx=Lx("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Xg}`]:{width:"$48",height:"$48"}}),Ox=fc({flexGrow:1,paddingRight:"$10"}),Ux=fc({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),zx=fc({display:"flex",justifyContent:"space-between",alignItems:"center"});function Yg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=H()(),s=$x(),[c,l]=Ir(""),p=!n,[u,d]=Ir(!1),[f,h]=Ir(!1),{isActiveTab:g}=ne(),m=k().getDisabledLiquiditySources(),C=Dx(m),{manager:y}=Nx(),{fetch:S,loading:T,cancelFetch:w}=uc(),[v,A]=Ir({swap:null,error:null,warnings:null}),[N,b]=Ir(!1),x=i(async({selectedWallets:L,customDestination:ee})=>{let J=await S?.({selectedWallets:L,customDestination:ee});return A(J),J},"onConfirmSwap"),E=i(async()=>{if(v.swap&&n)try{await y?.create("swap",{swapDetails:v.swap},{id:v.swap.requestId});let L=`../${F.swaps}/${v.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{h(!0),await E(),h(!1)},"onConfirm"),I=i(async()=>{v.warnings?.quote&&Pd(v.warnings.quote)&&!a?b(!0):await B()},"onStartConfirmSwap"),_=i(async()=>{A({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(L=>{A(L)}).catch(L=>console.error(L))},"onRefresh");Ca(()=>{!!C.current.length&&!m.length&&_(),C.current=m},[m.length]),Ca(()=>{p&&w()},[p]),Ca(()=>{p&&d(p)},[p]),Ca(()=>{p||S({selectedWallets:o,customDestination:r}).then(L=>A(L)).catch(L=>console.error(L))},[]),_x(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let U=v.warnings?.quote??null,G=v.error,Y=[];if(c&&Y.push($e.createElement(Wx,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),U||G){let L=`../${F.settings}`;Y.push($e.createElement(Tr,{warning:U,error:G,couldChangeSettings:!1,refetchQuote:_,skipAlerts:G?.type===4||U?.type===2,showWarningModal:N,confirmationDisabled:!g,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await E()},onChangeSettings:()=>s(L)}))}return $e.createElement(ae,{header:{title:dc.t("Confirm Swap"),onWallet:()=>{let L=`../${F.wallets}`;s(L)}},footer:$e.createElement(Fx,null,$e.createElement("div",{className:Ox()},$e.createElement(Bx,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||f,disabled:!!v.error||!g,onClick:I},dc.t("Start Swap"))),$e.createElement(Xg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||f,disabled:!g,onClick:d.bind(null,!0)},$e.createElement(Px,{size:24})))},u&&$e.createElement(_f,{open:u,onClose:()=>d(!1),onCancel:w,loading:T,onCheckBalance:x}),$e.createElement(ue,null,$e.createElement("div",{className:zx()},$e.createElement(Mx,{variant:"title",size:"small"},dc.t("You get")),$e.createElement("div",{className:Ux()},$e.createElement(Ui,{onClick:!T&&!u&&!N?_:void 0}))),$e.createElement(mc,{size:"12"}),Bm(Y.map((L,ee)=>({element:L,key:`alert-${ee}`})),$e.createElement(mc,{size:10})),Y.length>0?$e.createElement(mc,{size:10}):null,$e.createElement(Go,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:v.error,loading:T,warning:v.warnings?.quote??null})))}i(Yg,"ConfirmSwapPage");import{i18n as oo}from"@lingui/core";import{Button as Ec,CustomTokensZeroStateDarkIcon as sE,CustomTokensZeroStateIcon as lE,DeleteIcon as cE,Divider as Lr,IconButton as pE,MessageBox as uE,NotFound as dE,styled as Ac}from"@rango-dev/ui";import ye,{useState as Ic}from"react";import{useNavigate as mE}from"react-router-dom";import{CloseIcon as Hx,IconButton as Qx,SearchIcon as qx,TextField as Gx}from"@rango-dev/ui";import Pn from"react";import{styled as Zg}from"@rango-dev/ui";var Jg=Zg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),Rg=Zg("div",{width:"100%","& ._text-field":{paddingLeft:"$10","& input":{paddingLeft:"$2",paddingTop:"$12",paddingBottom:"$12"}}});function At(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...d}=t,f=s.length?Pn.createElement(Qx,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},Pn.createElement(Hx,{color:"gray",size:10})):null;return p&&(f=p),Pn.createElement(Rg,null,Pn.createElement(Gx,{prefix:Pn.createElement(Jg,null,Pn.createElement(qx,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d}))}i(At,"SearchInput");import{i18n as xc}from"@lingui/core";import{Button as Xx,CustomTokenWarning as Yx,darkTheme as uh,Divider as to,ExternalLinkIcon as Zx,Image as Jx,ListItem as Rx,NotFound as eE,PinIcon as tE,Skeleton as Vo,Typography as Wr,VirtualizedList as oE}from"@rango-dev/ui";import M,{useState as nE}from"react";import{useTranslation as rE}from"react-i18next";import{Divider as ch,ListItem as jx,Skeleton as Nr}from"@rango-dev/ui";import Nt from"react";import{css as _n,darkTheme as gc,ImageContainer as Vx,ListItemButton as Kx,styled as st,Typography as eh}from"@rango-dev/ui";var hc=_n({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),yc=_n({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Sc=_n({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Cc=_n({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${gc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),kc=_n({}),Tc=_n(),th=st("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),wc=st("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ka=st("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${yc}`]:{[`& .${Cc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${kc}`]:{bottom:"-15px"},[`& .${hc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Sc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),oh=st(Kx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),vc=st("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),bc=st(eh,{}),nh=st("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Tc}`]:{$$color:"$colors$neutral600",[`.${gc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ar=st("div",{display:"flex",alignItems:"end",flexDirection:"column"}),WV=st("div",{display:"flex",alignItems:"center"}),rh=st("div",{position:"relative",[`& ${Vx}`]:{borderRadius:"$xm",overflow:"hidden"}}),ih=st("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),ah=st(eh,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),sh=st("a",{"& svg:hover":{color:"$colors$info"}}),lh=st("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${gc} &`]:{color:"$foreground"}}}});function ph(t){return Nt.createElement(ka,null,Array.from(Array(t.size),e=>Nt.createElement(jx,{key:e,hasDivider:!0,start:Nt.createElement(Nr,{variant:"circular",width:35,height:35}),end:Nt.createElement(Ar,null,Nt.createElement(Nr,{variant:"text",size:"large",width:70}),Nt.createElement(ch,{size:4}),Nt.createElement(Nr,{variant:"text",size:"medium",width:50})),title:Nt.createElement("div",null,Nt.createElement(Nr,{variant:"text",size:"large",width:90}),Nt.createElement(ch,{size:4}),Nt.createElement(Nr,{variant:"text",size:"medium",width:90}))})))}i(ph,"LoadingTokenList");var iE=20,aE=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return M.createElement("div",{className:yc()},o?M.createElement("div",{className:hc()},o):M.createElement(wc,{className:Sc()},M.createElement(Wr,{variant:"title",size:"xmedium"},r.symbol),M.createElement(to,{direction:"horizontal",size:4}),M.createElement(vc,{css:a},M.createElement(bc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&M.createElement("div",{className:`${Cc()} ${!o&&kc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",M.createElement(to,{size:4,direction:"horizontal"}),M.createElement(sh,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},M.createElement(Zx,{size:12}))))},"renderDesc");function Br(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=k().fetchStatus,u=k().blockchains(),{getBalanceFor:d,fetchingWallets:f}=k(),{isTokenPinned:h}=k(),{setFromToken:g,setToToken:m}=H()(),{t:C}=rE(),y=Ge(),[S,T]=nE(null),w=i(()=>{c==="source"?g({token:S,meta:{blockchains:u}}):m({token:S,meta:{blockchains:u}})},"updateToken"),v=i(()=>{w(),y()},"handleImportToken"),A=i(x=>{if(x.customToken){let{customToken:B,...I}=x;return M.createElement(Xx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(U=>{U.stopPropagation(),T({...I,warning:!0})},"handleClick")},M.createElement(Wr,{variant:"body",size:"xsmall",color:"background"},C("import")))}let E=mi(d(x));return s?s(x):f?M.createElement(Ar,null,M.createElement(Vo,{variant:"text",size:"large",width:70}),M.createElement(to,{size:4}),M.createElement(Vo,{variant:"text",size:"medium",width:50})):E&&M.createElement(nh,null,M.createElement(ah,{variant:"title",size:"small"},E.amount),M.createElement("div",null),E.usdValue&&M.createElement(Wr,{variant:"body",className:Tc(),size:"xsmall"},`$${E.usdValue}`))},"endRenderer"),N=i(()=>M.createElement(oE,{itemContent:x=>{let E=e[x];if(E==="skeleton")return M.createElement(Rx,{hasDivider:!0,start:M.createElement(Vo,{variant:"circular",width:35,height:35}),end:M.createElement(Ar,null,M.createElement(Vo,{variant:"text",size:"large",width:70}),M.createElement(to,{size:4}),M.createElement(Vo,{variant:"text",size:"medium",width:50})),title:M.createElement("div",null,M.createElement(Vo,{variant:"text",size:"large",width:90}),M.createElement(to,{size:4}),M.createElement(Vo,{variant:"text",size:"medium",width:90}))});let B=u.find(L=>L.name===E?.blockchain);if(!B||!E)return null;let I=E.address,_=ul(B.color,"main"),U={$$color:_.main150,[`.${uh} &`]:{$$color:_.main750},backgroundColor:"$$color"},G={$$color:_.main750,[`.${uh} &`]:{$$color:_.main150},color:"$$color"},Y=i(()=>{typeof E!="string"&&!E.customToken&&n?.(E)},"handleClick");return M.createElement(lh,null,M.createElement(oh,{"tab-index":x,key:`${E.symbol}${I}`,id:`${E.symbol}${I}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:E?.customToken,onClick:Y,start:M.createElement(rh,null,M.createElement(Jx,{src:E.image===""?ni:E.image,size:30}),t.type!=="custom-token"&&E&&h(E,t.type)&&M.createElement(ih,null,M.createElement(tE,{size:12,color:"gray"}))),title:B.type==="COSMOS"||E.name||!E.name&&!I?M.createElement(wc,null,M.createElement(Wr,{variant:"title",size:"xmedium"},E.symbol),M.createElement(to,{direction:"horizontal",size:4}),M.createElement(vc,{css:U},M.createElement(bc,{variant:"body",size:"xsmall",css:G},E.blockchain)),l&&E.warning&&M.createElement(M.Fragment,null,M.createElement(to,{direction:"horizontal",size:4}),M.createElement(Yx,{container:W()}))):void 0,description:typeof E!="string"&&B.info&&I&&B.type!=="COSMOS"?aE({address:I,token:E,customCssForTag:U,customCssForTagTitle:G,name:E.name,url:B.info.addressUrl.split("{wallet}").join(I)}):E.name||void 0,end:A(E)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),b=S?No(S?.blockchain,u):null;return M.createElement(M.Fragment,null,a&&M.createElement(M.Fragment,null,M.createElement(Wr,{variant:"label",size:"large"},xc.t("Select Token")),M.createElement(to,{size:4})),M.createElement(th,null,M.createElement(to,{size:4}),p==="loading"&&M.createElement(ph,{size:iE}),p==="success"&&(e.length?M.createElement(M.Fragment,null,M.createElement(mr,{token:S,address:S?.address??"",blockchain:b??void 0,onImport:v,onExitErrorModal:()=>T(null),onExitImportModal:()=>T(null)}),M.createElement(ka,{as:"ul"},N())):!!o&&M.createElement(eE,{title:xc.t("No results found"),description:xc.t("Try using different keywords")}))))}i(Br,"TokenList");var fE=Ac("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),gE=Ac("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),hE=Ac(pE,{"&:hover":{"& svg":{color:"$secondary550"}}});function dh(){let[t,e]=Ic(""),{deleteCustomToken:o}=k(),n=k().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=H()(),{mode:l}=mo({}),p=mE(),[u,d]=Ic(!1),[f,h]=Ic(),g=i(S=>{let T=S.target.value;e(T)},"handleSearch"),m=l==="dark",C=n.filter(S=>ct(S.symbol,t)||ct(S.address||"",t)||ct(S.name||"",t)),y=i(()=>{if(f){let S=a?St(a):null,T=r?St(r):null,w=St(f);S===w?c({token:null}):T===w&&s({token:null}),o(f)}d(!1)},"handleDeleteCustomToken");return ye.createElement(ae,{header:{title:oo.t("Custom Tokens")}},ye.createElement(ue,null,ye.createElement(fE,null,n.length?ye.createElement(ye.Fragment,null,ye.createElement(At,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:oo.t("Search Token"),onChange:g}),ye.createElement(Lr,{size:16}),ye.createElement(Br,{list:C,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:S=>ye.createElement(hE,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(S)}},ye.createElement(cE,{size:12,color:"gray"}))})):ye.createElement(gE,null,ye.createElement(dE,{icon:m?ye.createElement(sE,{size:200}):ye.createElement(lE,{size:200}),title:oo.t("No custom tokens"),description:oo.t("press the button to add your custom token")})),ye.createElement(Lr,{size:20}),ye.createElement(Ec,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(F.addCustomTokens)},oo.t("Add Custom Token"))),ye.createElement(R,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:W()},ye.createElement(uE,{title:oo.t("Delete Custom Token"),type:"error",description:oo.t("Are you sure you want to Delete this Token?")},ye.createElement(Lr,{size:40}),ye.createElement(Lr,{size:10}),ye.createElement(Ec,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},oo.t("Yes, Delete it")),ye.createElement(Lr,{size:12}),ye.createElement(Ec,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},oo.t("No, Continue"))))))}i(dh,"CustomTokensPage");import{i18n as Fe}from"@lingui/core";import{useManager as DE}from"@rango-dev/queue-manager-react";import{Button as _c,darkTheme as $E,Divider as ko,MessageBox as FE,NotFound as OE,styled as Dc,Tabs as UE,Typography as va}from"@rango-dev/ui";import{TransactionStatus as _r}from"rango-types";import oe,{useMemo as Bh,useState as Dr}from"react";import{useNavigate as zE}from"react-router-dom";import{FilterIcon as vE,Popover as bE}from"@rango-dev/ui";import Ko from"react";import{css as yE,darkTheme as Ta,IconButton as SE,styled as Mr}from"@rango-dev/ui";var Nc=Mr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Ta} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),mh=Mr(SE,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Ta} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Ta} &`]:{backgroundColor:"$neutral"},[`& ${Nc}::before`]:{backgroundColor:"$secondary100",[`.${Ta} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),fh=Mr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),gh=Mr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),hh=yE({display:"flex",justifyContent:"space-between",alignItems:"center"}),yh=Mr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as Sh}from"@lingui/core";import{Button as CE,Divider as Ch,ListItemButton as kE,Radio as TE,RadioRoot as wE,Typography as kh}from"@rango-dev/ui";import ft from"react";function Th(t){let{filterBy:e,onClickItem:o}=t;return ft.createElement(gh,null,ft.createElement("div",{className:hh()},ft.createElement(kh,{size:"small",variant:"body"},Sh.t("Status")),ft.createElement(CE,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},Sh.t("Reset"))),ft.createElement(Ch,{size:10}),ft.createElement(wE,{value:e},ft.createElement(yh,null,t.list.map((n,r)=>ft.createElement(kE,{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:ft.createElement(ft.Fragment,null,ft.createElement(Ch,{direction:"horizontal",size:4}),ft.createElement(kh,{size:"medium",variant:"body"},n.title)),start:ft.createElement(TE,{value:n.id}),onClick:o})))))}i(Th,"FilterSelectorContent");function Wc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Ko.createElement("div",null,Ko.createElement(bE,{open:a,align:"end",onOpenChange:o,container:W(),content:Ko.createElement(Th,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Ko.createElement(mh,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Ko.createElement(Nc,{isSelect:!!n},Ko.createElement(vE,{size:16,color:"black"}),!!n&&Ko.createElement(fh,null)))))}i(Wc,"FilterSelector");import{i18n as IE}from"@lingui/core";import{getCurrentStep as AE}from"@rango-dev/queue-manager-rango-preset";import{Divider as Eh,GroupedVirtualizedList as NE,Skeleton as WE,SwapListItem as Ih,Typography as BE}from"@rango-dev/ui";import et,{useCallback as Ah,useEffect as LE,useRef as ME,useState as PE}from"react";function wh(t,e){let o=[],n=0;do{let r=t[n];r&&(o.push(Math.min(r,e)),e-=r),n++}while(e>0&&n<=t.length);return o}i(wh,"calculateGroupsSoFar");import{css as xE,darkTheme as EE,styled as Pr}from"@rango-dev/ui";var Bc=xE(),vh=Pr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Lc=Pr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Bc}`]:{$$color:"$colors$neutral600",[`.${EE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Mc=Pr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),bh=Pr("div",{gap:"$10",display:"flex",flexDirection:"column"}),xh=Pr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var _E=10;function Pc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=PE([]),c=ME(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=Ah(wh,[]),f=Ah(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,_E),s(d(p,c.current)))},[e.length]);if(LE(()=>{r||f()},[r,f]),r){let h=[1,2];return et.createElement(et.Fragment,null,[h,h].map((m,C)=>et.createElement(Lc,{key:C},et.createElement(Mc,null,et.createElement(WE,{variant:"text",width:60,size:"small"}),et.createElement(Eh,{size:16})),et.createElement(Eh,{size:4}),et.createElement(bh,null,m.map((S,T)=>et.createElement(Ih,{isLoading:!0,key:T}))))))}return et.createElement(NE,{endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>et.createElement(Lc,null,et.createElement(Mc,null,et.createElement(BE,{variant:"label",size:"medium",className:Bc()},u[h]))),itemContent:(h,g)=>{let m=l[h];if(!m)return null;let C=AE(m),y=m.steps[0],S=m.steps[m.steps.length-1];return!y||!S?null:et.createElement(vh,{key:m.requestId},et.createElement(Ih,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:C,tooltipContainer:W(),onlyShowTime:u[g]===IE.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:P(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:P(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(Pc,"HistoryGroupedList");import{i18n as wa}from"@lingui/core";import Nh from"dayjs";var Wh=i(t=>{let e=new Map([["today",{title:wa.t("Today"),swaps:[]}],["week",{title:wa.t("This week"),swaps:[]}],["month",{title:wa.t("This month"),swaps:[]}],["year",{title:wa.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=Nh();t.forEach(l=>{let p=Number(l.creationTime),u=Nh(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 HE=Dc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),QE=Dc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),qE=Dc("div",{"._typography":{color:"$neutral700",[`.${$E}&`]:{color:"$neutral900"}}}),GE=i((t,e)=>t?.length?t.filter(o=>Pt(o.fromBlockchain,e)||Pt(o.toBlockchain,e)||Pt(o.toSymbol,e)||Pt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Lh(){let t=zE(),{manager:e,state:o}=DE(),n=Tt(e).map(({swap:b})=>b),[r,a]=Dr(""),[s,c]=Dr(!1),l=!o.loadedFromPersistor,[p,u]=Dr(""),[d,f]=Dr(!1),[h,g]=Dr("all"),m=i(b=>{let x=b.target.value;a(x)},"handleSearch"),{isMultiMode:C}=rt(),y=[{id:_r.SUCCESS,title:Fe.t("Complete")},{id:_r.RUNNING,title:Fe.t("Running")},{id:_r.FAILED,title:Fe.t("Failed")}],S=[{id:"all",title:Fe.t("All")},{id:"swap",title:Fe.t("Swap")},{id:"refuel",title:Fe.t("Refuel")}],T=Bh(()=>!r&&!p&&h==="all"?n:n.filter(b=>{let{inputAmount:x,status:E,steps:B,requestId:I,mode:_}=b;return(!r||Pt(x,r)||Pt(E,r)||GE(B,r)||Pt(I,r))&&(!p||p===E)&&(h==="all"?!0:h==="swap"?!_||_==="swap":h==="refuel"?_==="refuel":!1)}),[n,r,p,h]),w=!T?.length&&!l,v=i(()=>f(!1),"onCloseModal"),A=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(b){console.log(b)}},"onClear"),N=Bh(()=>!n.some(b=>b.status===_r.SUCCESS||b.status===_r.FAILED),[n]);return oe.createElement(ae,{header:{title:Fe.t("History"),suffix:oe.createElement(fo,null,oe.createElement(_c,{id:"widget-history-clear-btn",disabled:N,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},oe.createElement(va,{size:"medium",variant:"label",color:"error"},Fe.t("Clear"))))}},oe.createElement(ue,null,oe.createElement(QE,null,oe.createElement(At,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Fe.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:m,style:{height:36},value:r}),oe.createElement(ko,{size:10,direction:"horizontal"}),oe.createElement(Wc,{filterBy:p,open:s,onOpenChange:b=>c(b),onClickItem:b=>u(b),list:y})),oe.createElement(ko,{size:"16"}),C&&!l&&oe.createElement(oe.Fragment,null,oe.createElement(UE,{items:S,onChange:b=>g(b.id),value:h,type:"secondary"}),oe.createElement(ko,{size:"12"})),oe.createElement(HE,null,w&&oe.createElement(xh,null,oe.createElement(ko,{size:32}),oe.createElement(OE,{title:r?Fe.t("No results found"):Fe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Fe.t("Try using different keywords"):Fe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!w&&oe.createElement(Pc,{list:T,onSwapClick:t,groupBy:Wh,isLoading:l}))),oe.createElement(R,{open:d,onClose:v,id:"widget-history-clear-modal",container:W()},oe.createElement(ko,{size:20}),oe.createElement(FE,{type:"warning",title:Fe.t("Clear Transaction History"),description:oe.createElement(qE,null,oe.createElement(va,{variant:"body",size:"medium"},Fe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),oe.createElement(ko,{size:"24"}),oe.createElement(va,{variant:"body",size:"small"},Fe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),oe.createElement(ko,{size:30}),oe.createElement(_c,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:A},Fe.t("Yes, Clear the history")),oe.createElement(ko,{size:10}),oe.createElement(_c,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:v},oe.createElement(va,{variant:"title",size:"medium",color:"primary"},Fe.t("No, Cancel")))))}i(Lh,"HistoryPage");import{i18n as ly}from"@lingui/core";import{Button as II,Divider as Yc,styled as AI,WarningIcon as NI}from"@rango-dev/ui";import WI from"bignumber.js";import Ce,{useEffect as cy,useState as py}from"react";import{useNavigate as BI}from"react-router-dom";import{i18n as Ph}from"@lingui/core";import{Alert as KE,Divider as $c,NoRouteIcon as jE,Typography as XE}from"@rango-dev/ui";import jo from"react";import{styled as VE}from"@rango-dev/ui";var Mh=VE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Fc(){let{fromToken:t,toToken:e}=H()();return!!t&&!!e&&qt(t,e)?jo.createElement(Mh,null,jo.createElement($c,{size:10}),jo.createElement(jE,{size:24,color:"gray"}),jo.createElement($c,{size:4}),jo.createElement(XE,{variant:"title",size:"small"},Ph.t("No Routes Found")),jo.createElement($c,{size:4}),jo.createElement(KE,{title:Ph.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Fc,"SameTokensWarning");import{Alert as YE,Button as ZE}from"@rango-dev/ui";import Dh from"react";import{i18n as ba}from"@lingui/core";function _h(t){let e=null;return t===yi?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ba.t("Reset"),title:ba.t("Slippage cannot be set lower than 0.01%.")},e):t>an?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ba.t("Change"),title:ba.t("Caution, your slippage is high!")},e):null}i(_h,"makeAlerts");function $h(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=k(),{onChangeSettings:a}=t,c=_h(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(hi),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Dh.createElement(YE,{title:c.title,type:c.alertType,variant:"alarm",action:Dh.createElement(ZE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i($h,"SlippageWarningsAndErrors");import{i18n as oI}from"@lingui/core";import{IconButton as nI,ReverseIcon as rI,Skeleton as iI,Tooltip as aI,Typography as $r}from"@rango-dev/ui";import gt from"react";import xa from"bignumber.js";function Oh(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(Oh,"getSlippageColor");function Uh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new xa(e),r=new xa(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(Uh,"getUsdExchangeRate");function zh(t,e){let o=new xa(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,xa.ROUND_DOWN).toFormat(2)}`}i(zh,"formatTokenValueInUsd");import{darkTheme as eI,styled as Uc,Typography as tI}from"@rango-dev/ui";var Hh=Uc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),Qh=Uc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${eI} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),zc=Uc(tI,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Hc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=k(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:f}=mo({}),h=cn(d),g=f==="dark",m=n==="default",C={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},S=p?.swaps[0]?.from||c,T=p?.swaps[p?.swaps.length-1]?.to||l,w=m?S:T,v=m?T:S,A=Number(m?p?.outputAmount:p?.requestAmount),N=Number(m?p?.requestAmount:p?.outputAmount),b=A||w.usdPrice,x=N||v.usdPrice,{rawValue:E,displayValue:B}=Uh({toTokenUsdPrice:x,fromTokenUsdPrice:b});return gt.createElement(Hh,null,gt.createElement($r,{variant:C||y?"label":"body",size:C||y?"medium":"small",color:Oh({error:C,warning:y,isDarkTheme:g})},oI.t("Slippage:")," ",d,"%"),u?gt.createElement(iI,{height:16,width:104,variant:"rounded"}):b&&x&>.createElement(Qh,null,gt.createElement($r,{className:"rate-text",variant:"body",size:"small"},"1"),gt.createElement(zc,{className:"rate-text",variant:"body",size:"small"},v.symbol),gt.createElement(nI,{id:"widget-home-page-change-rate-button",onClick:r},gt.createElement(rI,{size:14,color:"secondary"})),gt.createElement(aI,{container:W(),side:"top",sideOffset:4,content:gt.createElement($r,{className:"rate-text",variant:"body",size:"small"},E)},gt.createElement($r,{className:"rate-text",variant:"body",size:"small"},B)),gt.createElement(zc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&>.createElement($r,{color:"neutral600",variant:"body",size:"small"},"~",zh(Number(E),w.usdPrice))))}i(Hc,"SwapMetrics");import{i18n as dI}from"@lingui/core";import{Header as mI}from"@rango-dev/ui";import To,{useEffect as fI,useState as gI}from"react";import{i18n as lI}from"@lingui/core";import{Divider as qc,FullExpandedQuote as cI,Typography as pI}from"@rango-dev/ui";import ve from"react";import{styled as Qc}from"@rango-dev/ui";var qh=Qc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Gh=Qc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Vh=Qc("div",{width:"146px"});import{i18n as Fr}from"@lingui/core";import{Select as sI}from"@rango-dev/ui";import Kh from"react";function Ea(t){let{updateQuotePartialState:e,sortStrategy:o}=H()(),n=[{value:"SMART",label:Fr.t("Smart Routing")},{value:"FEE",label:Fr.t("Lowest Fee")},{value:"SPEED",label:Fr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Fr.t("Maximum Return")},{value:"PRICE",label:Fr.t("Maximum Output")}];return Kh.createElement(Vh,null,Kh.createElement(sI,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Ea,"SelectStrategy");var jh=3;function Or(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:d,toToken:f,sortStrategy:h,error:g}=H()(),{slippage:m,customSlippage:C}=k(),{findToken:y}=k(),S=c||W(),T=!!p&&p.results.length,w=C??m,v=i(b=>{if(!d||!f||!p)return null;let x={requestAmount:p.requestAmount,validationStatus:null,...b};return Cn({currentQuote:x,userSlippage:w,findToken:y})},"getQuoteWarning"),A=g?.type===0||g?.type===1,N=p?.results?Bi(h,p?.results):[];return ve.createElement(ve.Fragment,null,a&&ve.createElement(ve.Fragment,null,ve.createElement(Gh,null,ve.createElement(pI,{size:"xmedium",variant:"title"},lI.t("Sort by")),ve.createElement(Ea,{container:S})),ve.createElement(qc,{size:"10"})),e&&Array.from({length:jh},(b,x)=>ve.createElement(ve.Fragment,{key:x},s?ve.createElement(cI,{loading:!0}):ve.createElement(Er,{tagHidden:!1,type:"list-item",expanded:!1}),x!==jh-1&&ve.createElement(qc,{size:16}))),!e&&ve.createElement(ve.Fragment,null,T?N.map((b,x)=>{let E=v(b),B=pc(b.swaps),I=N.length-1===x;return ve.createElement(ve.Fragment,{key:b.requestId},ve.createElement(Go,{id:"widget-quotes-quote-info-container",showModalFee:r,container:S,selected:l?.requestId===b.requestId,tagHidden:!1,quote:{...b,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:E,fullExpandedMode:s,onClick:_=>{B||u("warning",E),u("error",B?.options||null),o(_)},type:"list-item"}),!I&&ve.createElement(qc,{size:16}))}):A&&ve.createElement(qh,null,ve.createElement(Cr,{size:s?"large":"small",error:g,fetch:n}))))}i(Or,"Quotes");import{darkTheme as uI,styled as Xh}from"@rango-dev/ui";var Yh=Xh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${uI} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Zh=Xh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var hI=100;function Gc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=gI(!1),l=s?"":"is-hidden",{config:p}=k(),u=p?.variant==="full-expanded",d=Bo();return fI(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},hI):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),To.createElement(Yh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${qi()} widget-expanded-quotes-container`,id:ot.EXPANDED_BOX_ID},To.createElement(mI,{title:dI.t("Routes"),suffix:To.createElement(To.Fragment,null,To.createElement(Ea,{container:d}),To.createElement(zo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),To.createElement(Zh,null,To.createElement(Or,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:Bo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Gc,"ExpandedQuotes");import{i18n as ry}from"@lingui/core";import{SwapInput as iy}from"@rango-dev/ui";import kI from"bignumber.js";import Ur from"react";import{ReverseIcon as CI}from"@rango-dev/ui";import Kc from"react";import{keyframes as yI,styled as Jh}from"@rango-dev/ui";var Vc=450,SI=yI({"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)"}}),Rh=Jh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),ey=Jh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${SI} ${Vc}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 jc(){let t=H().use.switchFromAndTo();return Kc.createElement(Rh,null,Kc.createElement(ey,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Vc),t()}},Kc.createElement(CI,{size:12})))}i(jc,"SwitchFromAndToButton");import{styled as ty}from"@rango-dev/ui";var oy=ty("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),ny=ty("div",{position:"relative"});function Xc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:d,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:m}=H()(),{swapMode:C}=rt(),{connectedWallets:y,getBalanceFor:S}=k(),T=a?S(a):null,w=mi(T)?.amount??"0",v=T?new kI(T.amount).shiftedBy(-T.decimals):de,A=!!s&&Wu(y,s.name),N=!js(m,d,f),b=!js(m,d,g),x=!f||!g||!g.gt(0)?null:jt(f.toString(),g.toString());return Ur.createElement(oy,null,Ur.createElement(ny,null,Ur.createElement(iy,{label:ry.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:w,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:N?void 0:P(f,4,4),realUsdValue:N?void 0:f?.toString(),error:N?re().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:A,tooltipContainer:W(),onSelectMaxBalance:()=>{let E=P(v,T?.decimals),B=T?.amount?E.split(",").join(""):"";p(B)},anyWalletConnected:y.length>0}),C==="swap"&&Ur.createElement(jc,null)),Ur.createElement(iy,{selectionType:C==="swap"?"token":"chain",sharpBottomStyle:!r&&(!!m||e),label:ry.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:P(jt(f,g),2,2),warningLevel:Xt(x??0),price:{value:P(h,6,6),usdValue:b?void 0:P(g,4,4),realValue:h?.toString(),realUsdValue:b?void 0:g?.toString(),error:b?re().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:W()}))}i(Xc,"Inputs");import{warn as TI}from"@rango-dev/logging-core";import{useCallback as wI,useEffect as vI,useRef as bI,useState as xI}from"react";function ay(){let{fetch:t,loading:e,cancelFetch:o}=ha({request:async(n,r)=>await ut().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(ay,"useFetchAllQuotes");var EI=600;function Ia({refetchQuote:t}){let{fetch:e,cancelFetch:o}=ay(),{excludeLiquiditySources:n,routing:r}=k().config,{connectedWallets:a}=k(),c=a.some(le=>le.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:f,sortStrategy:h,resetQuote:g,error:m,warning:C,setSelectedQuote:y,updateQuotePartialState:S}=H()(),{slippage:T,customSlippage:w,affiliatePercent:v,affiliateRef:A,affiliateWallets:N,fetchStatus:b}=k(),x=k().getLiquiditySources(),E=k().getDisabledLiquiditySources(),B=k().excludeLiquiditySources(),{findToken:I}=k(),{swapMode:_}=rt(),[U,G]=xI(!0),Y=bI(u),L=w??T,J=!l||!p||qt(l,p)||!Vn(u),te=i(le=>{G(le)},"resetState"),se=i(le=>{let{fromToken:Xe,toToken:He,inputAmount:Bt,liquiditySources:$,excludeLiquiditySources:z,disabledLiquiditySources:V,slippage:pe,affiliateRef:Q,affiliatePercent:X,affiliateWallets:j}=le;if(U||te(!0),!J&&Xe&&He){g();let Ie=jd({fromToken:Xe,toToken:He,inputAmount:Bt,liquiditySources:$,excludeLiquiditySources:z,disabledLiquiditySources:V,wallets:a,slippage:pe,affiliateRef:Q,affiliatePercent:X,affiliateWallets:j,contractCall:c});ln("experimental",r)&&(Ie.experimental=!0),ln("avoidNativeFee",r)&&(Ie.avoidNativeFee=!0),ln("enableCentralizedSwappers",r)&&(Ie.enableCentralizedSwappers=!0),r?.maxLength&&(Ie.maxLength=r.maxLength),_==="refuel"&&(Ie.maxLength=1),e(Ie).then(Ae=>{let Ye=Bi(h,Ae.results),Lt=Dd(f,Ye,Ae.requestAmount);G(!1),S("quotes",Ae),y(Lt),ya({diagnosisMessages:Ae.diagnosisMessages,requestId:Lt?.requestId||"",swaps:Lt?.swaps});let so=Lt&&Cn({currentQuote:Lt,userSlippage:L,findToken:I});S("warning",so)}).catch(Ae=>{let Ye=Sa(Ae);(Ye.type===0||Ye.type===1)&&g(),Ye.type!==2&&(S("error",Ye),G(!1),TI(new Error("quote error"),{tags:{...Ye,type:Re[Ye.type],requestBody:Ie}}))})}},"fetch"),je=wI(ai(le=>{se(le)},EI),[J]);return vI(()=>{if(!t){G(!1);return}if(b!=="success")return;if(J){G(!1),(f||m||C)&&g();return}if(!Vn(u)&&d?.eq(0)){te(!1),o();return}g(),te(!0);let le=se;return Y.current&&Y.current!=u&&(le=je),Y.current=u,le({inputAmount:u,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:B,disabledLiquiditySources:E,slippage:L,affiliateRef:A,affiliatePercent:v,affiliateWallets:N,contractCall:c}),o},[b,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,J,x?.length,n,E.length,L,A,v,c,JSON.stringify(N)]),{fetch:()=>se({inputAmount:u,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:B,disabledLiquiditySources:E,slippage:L,affiliateRef:A,affiliatePercent:v,affiliateWallets:N,contractCall:c}),loading:U}}i(Ia,"useSwapInput");function sy(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(sy,"emitPreventableEvent");var LI=AI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),MI=300;function uy(){let t=BI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:f}=H()(),[h,g]=py(!1),{isLargeScreen:m,isExtraLargeScreen:C}=wn(),{fetch:y,loading:S}=Ia({refetchQuote:a}),{config:T,fetchStatus:w,connectedWallets:v,customSlippage:A,slippage:N,setSlippage:b,setCustomSlippage:x}=k(),{isActiveTab:E}=ne(),[B,I]=py(!1),_=A!==null?A:N,{swapMode:U}=rt(),G=cn(_),L=qd({fetchMetaStatus:w,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:v.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),ee=$u(m,C,T?.variant),J=!!n&&!!e&&!!o&&new WI(n).gt(0)&&!tm(e,o),te=J&&w==="success"&&S,se=G?.quoteValidation||c,Xe=(!ee||ee&&l?.results.length)&&(se||s),He=!!e&&!!o,Bt=He&&!!G,$=(r||s)&&!B?y:void 0,z=i(X=>{ee&&h?(g(!1),setTimeout(()=>{t(X)},MI)):t(X)},"onHandleNavigation"),V=i(X=>{r?.requestId!==X.requestId&&(I(!1),p(X))},"onClickOnQuote"),pe=i(X=>{if(X){if(gi.includes(X)){b(X),x(null);return}x(X)}},"onChangeSlippage"),Q=i(X=>{z(X==="from"?F.fromSwap:U==="swap"?F.toSwap:F.toSwap+"/"+F.blockchains)},"handleInputTokenClick");return cy(()=>{u(),f("refetchQuote",!0)},[]),cy(()=>{g(J)},[J]),Ce.createElement(LI,null,Ce.createElement(ae,{height:"auto",footer:Ce.createElement(II,{id:`widget-swap-${L.action}-btn`,type:"primary",size:"large",disabled:L.disabled||!E,prefix:L.action==="confirm-warning"&&Ce.createElement(NI,null),fullWidth:!0,onClick:()=>{L.action==="connect-wallet"?sy({type:"clickConnectWallet"},()=>z(F.wallets)):L.action==="confirm-warning"?I(!0):z(F.confirmSwap)}},L.title),header:{onWallet:()=>{z(F.wallets)},hasBackButton:!1,title:T.title||(U==="swap"?ly.t("Swap"):ly.t("Refuel")),suffix:Ce.createElement(zo,{hidden:ee?["refresh"]:void 0,onClickRefresh:$,onClickHistory:()=>z(F.swaps),onClickSettings:()=>{z(F.settings)}})}},Ce.createElement(ue,null,Ce.createElement(Xc,{fetchingQuote:te,fetchMetaStatus:w,isExpandable:ee,onClickToken:Q}),Ce.createElement(Yc,{size:"2"}),ee?null:Ce.createElement(Go,{quote:r,loading:te,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:se,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),z(F.routes)}:void 0}),He&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Yc,{size:8}),Ce.createElement(Hc,{quoteError:s,quoteWarning:se,fromToken:e,toToken:o,quote:r,loading:te})),Xe?Ce.createElement(Ce.Fragment,null,Ce.createElement(Tr,{warning:se,error:s,skipAlerts:!!G,couldChangeSettings:!0,refetchQuote:y,showWarningModal:B,confirmationDisabled:!E,onOpenWarningModal:()=>I(!0),onCloseWarningModal:()=>I(!1),onChangeSlippage:pe,onConfirmWarningModal:()=>{I(!1),d(!0),z(F.confirmSwap)},onChangeSettings:()=>z(F.settings)})):null,Bt&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Yc,{size:"10"}),Ce.createElement($h,{onChangeSettings:()=>z(F.settings)})),Ce.createElement(Fc,null))),ee?Ce.createElement(Gc,{loading:te,onClickOnQuote:V,fetch:y,onClickRefresh:$,isVisible:h}):null)}i(uy,"Home");import{i18n as dy}from"@lingui/core";import{Alert as PI,Divider as _I,List as DI,ListItemButton as $I,Radio as FI,RadioRoot as OI,Typography as UI}from"@rango-dev/ui";import Ot from"react";function wo(){let{setLanguage:t,language:e,config:o}=k(),n=qu,r=o?.language||pn;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||pn),resetLanguage:()=>t(null)}}i(wo,"useLanguage");function my(){let{activeLanguage:t,changeLanguage:e,languages:o}=wo(),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:Ot.createElement(UI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Ot.createElement(FI,{value:s}),start:Ot.createElement(l,null)}});return Ot.createElement(ae,{header:{title:dy.t("Language")}},Ot.createElement(ue,null,Ot.createElement(PI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Ot.createElement(_I,{size:"8"}),Ot.createElement(OI,{value:t},Ot.createElement(DI,{type:Ot.createElement($I,{title:dy.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(my,"LanguagePage");import{i18n as no}from"@lingui/core";import{Button as GI,Checkbox as VI,Image as KI,ListItemButton as jI,NotFound as XI,Typography as YI}from"@rango-dev/ui";import tt,{useState as ZI}from"react";import{Checkbox as QI,Skeleton as gy}from"@rango-dev/ui";import Hr from"react";import{styled as Zc}from"@rango-dev/ui";var zr=Zc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Jc=Zc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Rc=Zc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as zI,styled as HI}from"@rango-dev/ui";var fy=HI(zI,{height:61});var qI=30;function ep(){return Hr.createElement(zr,null,Array.from(Array(qI),(t,e)=>Hr.createElement(fy,{hasDivider:!0,key:e,start:Hr.createElement(gy,{variant:"circular",width:35,height:35}),title:Hr.createElement(gy,{variant:"text",size:"large",width:90}),end:Hr.createElement(QI,{checked:!1})})))}i(ep,"LoadingLiquiditySourceList");function tp({sourceType:t}){let e=k().fetchStatus,o=k().swappers(),n=k().getDisabledLiquiditySources(),[r,a]=ZI(""),s=k().toggleLiquiditySource,c=k().isInCampaignMode(),l=Si(o,n),p={Exchanges:no.t("Exchanges"),Bridges:no.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(y=>u.includes(y.type)),f=d.length===d.filter(y=>y.selected).length,h=i(()=>{d.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=d.map(y=>{let{selected:S,groupTitle:T,logo:w,id:v,...A}=y;return{id:`widget-setting-liquidity-source-${Su(v.toLowerCase())}-item-btn`,start:tt.createElement(KI,{src:w,size:22,type:"circular"}),onClick:()=>{c||s(T)},end:tt.createElement(VI,{checked:S,disabled:c}),title:tt.createElement(YI,{variant:"title",size:"xmedium"},no.t(T)),selected:S,groupTitle:T,logo:w,...A}}),m=i(y=>{let S=y.target.value;a(S)},"handleSearch"),C=g;return r&&(C=g.filter(y=>Pt(y.groupTitle,r))),tt.createElement(ae,{header:{title:no.t(t),suffix:tt.createElement(Jc,null,tt.createElement(GI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},f?no.t("Deselect all"):no.t("Select all")))}},tt.createElement(ue,{view:!0},tt.createElement(At,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:no.t("Search {sourceType}",{sourceType:p[t]}),onChange:m}),e==="loading"&&tt.createElement(ep,null),!C.length&&r?tt.createElement(Rc,null,tt.createElement(XI,{title:no.t("No results found"),description:no.t("Try using different keywords")})):e==="success"&&tt.createElement(zr,{disabled:c,className:"widget-liquidity-source-list"},C.map(y=>{let{groupTitle:S,...T}=y;return tt.createElement(tt.Fragment,{key:y.id},tt.createElement(jI,{style:{height:"61px"},...T,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(tp,"LiquiditySourcePage");import{i18n as JI}from"@lingui/core";import Aa from"react";import{useNavigate as RI}from"react-router-dom";function hy(){let t=RI(),e=Ge(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=H()(),{fetch:c,loading:l}=Ia({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${F.settings}`,d=`../${F.wallets}`;return Aa.createElement(ae,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:JI.t("Routes"),suffix:Aa.createElement(zo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Aa.createElement(ue,null,Aa.createElement(Or,{fetch:c,loading:l,onClickOnQuote:p})))}i(hy,"RoutesPage");import{i18n as vy}from"@lingui/core";import{Divider as by,getCategoriesCount as cA,SelectableCategoryList as pA}from"@rango-dev/ui";import ro,{useState as xy}from"react";import{useNavigate as uA}from"react-router-dom";import{i18n as op}from"@lingui/core";import{Divider as nA,Image as rA,ListItemButton as iA,NotFound as aA,Typography as wy}from"@rango-dev/ui";import ht,{useEffect as sA,useState as lA}from"react";var yy=i((t,e,o)=>t.filter(n=>si(n.type,o)).filter(n=>ct(n.name,e)||ct(n.displayName,e)),"filterBlockchains");import{ImageContainer as eA,styled as Sy}from"@rango-dev/ui";var Cy=Sy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Na=Sy(Nl,{padding:0,margin:0,listStyle:"none",[`& ${eA}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as tA,Skeleton as ky}from"@rango-dev/ui";import Wa from"react";var oA=20;function Ty(){return Wa.createElement(Na,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(oA),t=>Wa.createElement(tA,{key:t,hasDivider:!0,start:Wa.createElement(ky,{variant:"circular",width:35,height:35}),title:Wa.createElement(ky,{variant:"text",size:"large",width:90})})))}i(Ty,"LoadingBlockchainList");function np(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=lA(e),{fetchStatus:l}=k();sA(()=>{c([...yy(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ht.createElement(aA,{title:op.t("No results found"),description:op.t("Try using different keywords")}):ht.createElement(Na,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ht.createElement(iA,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ht.createElement(rA,{src:u.logo,size:30}),title:ht.createElement(wy,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ht.createElement(ht.Fragment,null,a&&ht.createElement(ht.Fragment,null,ht.createElement(wy,{variant:"label",size:"large"},op.t("Select Chain")),ht.createElement(nA,{size:4})),ht.createElement(Cy,null,l==="loading"&&ht.createElement(Ty,null),l==="success"&&p()))}i(np,"BlockchainList");function Ba(t){let{type:e}=t,o=Ge(),[n,r]=xy(""),[a,s]=xy("ALL"),c=H().use.setToBlockchain(),l=H().use.setFromBlockchain(),p=H().use.setToToken(),{fetchStatus:u,findNativeToken:d}=k(),f=uA(),{swapMode:h}=rt(),g=k().blockchains({type:e}),m=cA(g),C=!t.hideCategory&&m!==1,y=i(S=>{if(e==="custom-token")f(`..?blockchain=${S.name}`,{replace:!0});else{if(e==="source")l(S);else if(h==="swap")c(S);else{let T=d(S);T&&p({token:T,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return ro.createElement(ae,{header:{title:vy.t("Select Chain")}},ro.createElement(ue,{view:!0},C&&ro.createElement(ro.Fragment,null,ro.createElement(pA,{setCategory:s,category:a,blockchains:g,isLoading:u==="loading"}),ro.createElement(by,{size:24})),ro.createElement(At,{value:n,autoFocus:!0,placeholder:vy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:S=>r(S.target.value)}),ro.createElement(by,{size:16}),ro.createElement(np,{list:g,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:y})))}i(Ba,"SelectBlockchainPage");import{i18n as Pa}from"@lingui/core";import{Divider as Ly,Spinner as EA}from"@rango-dev/ui";import vo,{useEffect as IA,useState as AA}from"react";import{useNavigate as NA}from"react-router-dom";import{i18n as ap}from"@lingui/core";import{BlockchainsChip as La,Divider as Ny,Image as Wy,Skeleton as yA,Tooltip as SA,Typography as sp}from"@rango-dev/ui";import be from"react";import{useEffect as fA}from"react";var Ey=["ETH","COSMOS","OSMOSIS"];function rp(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(dA),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(mA(s)),r=n.splice(a)}return{list:n,more:r}}i(rp,"prepare");function dA(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(dA,"sortByMostUsedBlockchains");function mA(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(mA,"generateSortByPreferredBlockchainsFor");function Iy(t,e){return!!e.list.find(o=>o.name===t)}i(Iy,"isInVisibleList");function ip(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=k();fA(()=>{if(e?.selected){let a=rp(t,o,e);Iy(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=rp(t,o,e);return{list:r.list,more:r.more,history:[]}}i(ip,"usePrepareBlockchainList");import{styled as gA}from"@rango-dev/ui";var Ay=gA("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var CA=6,kA=12;function lp(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=ne(),c=ip(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=k(),p=H().use.resetToBlockchain(),u=H().use.resetFromBlockchain(),d=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&d;return be.createElement(be.Fragment,null,!s&&be.createElement(be.Fragment,null,be.createElement(Ny,{size:12}),be.createElement(sp,{variant:"label",size:"large"},ap.t("Select Chain"))),be.createElement(Ny,{size:12}),be.createElement(Ay,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?CA:kA),(m,C)=>be.createElement(yA,{key:C,variant:"rounded",height:50})),l==="success"&&be.createElement(be.Fragment,null,be.createElement(La,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},be.createElement(sp,{variant:"body",size:"xsmall",color:"secondary500"},ap.t("All"))),c.list.map(m=>be.createElement(SA,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:W()},be.createElement(La,{className:"widget-blockchains-section-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},be.createElement(Wy,{src:m.logo,size:30})))),h?be.createElement(La,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},be.createElement(Wy,{src:f.logo,size:30})):null,g?be.createElement(La,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},be.createElement(sp,{variant:"body",size:"xsmall",color:"secondary500"},ap._("More +{count}",{count:c.more.length}))):null)))}i(lp,"BlockchainsSection");import{useCallback as wA,useRef as vA,useState as cp}from"react";function pp(){let t=k().blockchains(),e=vA(null),{customTokens:o}=k(),[n,r]=cp(!1),[a,s]=cp([]),[c,l]=cp(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await ut().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(S=>Vt(S))),C=new Set(t.map(S=>S.name)),y=g.tokens.filter(S=>C.has(S.blockchain)&&!m.has(Vt(S)));s(y),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=wA(ai((f,h)=>{e.current?.signal.aborted||p(f,h)},600),[t.length]);return{fetch:(f,h)=>{e.current=new AbortController,s([]),r(!0),u(f,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(pp,"useSearchCustomTokens");function Ma(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(Ma,"shouldSearchForCustomTokens");function By(t,e,o,n,r){let a=[...t];return Ma(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(By,"prepareTokensList");function _a(t){let{type:e}=t,o=NA(),n=Ge(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=H()(),{getBalanceFor:u}=k(),{fetch:d,loading:f,tokens:h,cancel:g}=pp(),[m,C]=AA(""),y=e==="source"?r:a,S=y?.name??"",T=k().blockchains({type:e}),w=k().tokens({type:e,blockchain:S,searchFor:m,getBalanceFor:u}),v=By(w,h,m,f,y?.name),A=i(x=>{e==="source"?l(x):p(x)},"updateBlockchain"),N=i(x=>{e==="source"?s({token:x,meta:{blockchains:T}}):c({token:x,meta:{blockchains:T}})},"updateToken"),b={source:Pa.t("Source"),destination:Pa.t("Destination")};return IA(()=>(Ma(w,m,y?.name)&&d(m,y?.name??void 0),()=>{g()}),[w.length,m,y?.name]),vo.createElement(ae,{header:{title:Pa.t("Swap {type}",{type:b[e]})}},vo.createElement(ue,null,vo.createElement(lp,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:x=>{A(x)}}),vo.createElement(Ly,{size:24}),vo.createElement(At,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:Pa.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>C(""),onChange:x=>C(x.target.value),suffix:Ma(w,m,y?.name)&&f?vo.createElement(EA,{size:12,color:"secondary"}):void 0}),vo.createElement(Ly,{size:16}),vo.createElement(Br,{list:v,selectedBlockchain:S,searchedFor:m,type:e,onChange:x=>{N(x);let E=T.find(B=>x.blockchain===B.name);E&&A(E),n()}})))}i(_a,"SelectSwapItemsPage");import{i18n as fp}from"@lingui/core";import{Alert as oN,Button as nN,styled as rN}from"@rango-dev/ui";import Xo from"react";import{useInRouterContext as iN,useSearchParams as aN}from"react-router-dom";import{i18n as Fy}from"@lingui/core";import{Alert as MA,Divider as dp,InfoIcon as PA,SlippageIcon as _A,TextField as DA,Tooltip as $A,Typography as Oy}from"@rango-dev/ui";import Ue from"react";import{Chip as WA,styled as Qr,TextField as BA}from"@rango-dev/ui";var My=Qr("div",{paddingTop:"$5",padding:"$10 $5"}),Py=Qr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${BA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),_y=Qr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Da=Qr("div",{maxWidth:"280px",padding:"$10"}),Dy=Qr(WA,{width:"61px",flexShrink:0});import{i18n as up}from"@lingui/core";import{Typography as LA}from"@rango-dev/ui";import qr from"react";function $y(){return qr.createElement(Da,null,qr.createElement(LA,{variant:"label",size:"medium",color:"neutral700"},up.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),qr.createElement("br",null),qr.createElement("br",null),qr.createElement("b",null,up.t("Warning")),":\xA0",up.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($y,"SlippageTooltipContent");function mp(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=k(),r=o!==null?cn(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let d=u;u>Yn&&(d=Yn),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;ku(u)||(p.value=u.slice(0,-1))},"onInput");return Ue.createElement(My,null,Ue.createElement(_y,null,Ue.createElement(_A,{size:16,color:"gray"}),Ue.createElement(dp,{direction:"horizontal",size:4}),Ue.createElement(Oy,{variant:"title",size:"xmedium"},Fy.t("Slippage tolerance per swap")),Ue.createElement(dp,{direction:"horizontal",size:4}),Ue.createElement($A,{container:W(),side:"top",sideOffset:4,content:Ue.createElement($y,null)},Ue.createElement(PA,{color:"gray"}))),Ue.createElement(Py,null,gi.map((l,p)=>{let u=`slippage-${p}`;return Ue.createElement(Dy,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),Ue.createElement(DA,{type:"number",min:"0.01",max:"30",step:"0.01",status:r?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&Ue.createElement(Oy,{variant:"body",size:"small"},"%"),placeholder:Fy.t("Custom")})),r&&Ue.createElement(Ue.Fragment,null,Ue.createElement(dp,{size:10}),Ue.createElement(MA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(mp,"Slippage");import{i18n as wt}from"@lingui/core";import{AutoThemeIcon as Uy,BridgesIcon as FA,ChevronRightIcon as $a,DarkModeIcon as zy,Divider as Gr,ExchangeIcon as OA,InfinityIcon as UA,InfoIcon as zA,LanguageIcon as HA,LightModeIcon as Hy,List as QA,ListItem as qA,ListItemButton as GA,Skeleton as VA,styled as KA,Switch as jA,Tabs as XA,TargetIcon as YA,Tooltip as ZA,Typography as lt}from"@rango-dev/ui";import D from"react";import{useNavigate as JA}from"react-router-dom";var RA=KA("div",{width:"202px",height:"$40"}),eN=[{id:"light",icon:D.createElement(Hy,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},wt.t("Light"))},{id:"dark",icon:D.createElement(zy,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},wt.t("Dark"))},{id:"auto",icon:D.createElement(Uy,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},wt.t("Auto"))}],tN=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(Uy,{...e});case"dark":return D.createElement(zy,{...e});default:return D.createElement(Hy,{...e})}},"getThemeIcon");function Qy(){let t=JA(),{theme:e}=k().config,{setTheme:o,theme:n}=k(),{activeLanguage:r,languages:a}=wo(),s=a.find(L=>L.local===r)?.label,c=k().fetchStatus,l=k().swappers(),p=k().getDisabledLiquiditySources(),{config:{features:u}}=k(),d=k().customTokens(),f=nt("theme",u),h=nt("liquiditySource",u),g=nt("language",u),m=nt("customTokens",u),C=k().infiniteApprove,y=k().toggleInfiniteApprove,S=Si(l,p),T=S.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),w=T.length,v=T.filter(L=>L.selected).length,A=S.filter(L=>L.type==="DEX"),N=A.length,b=A.filter(L=>L.selected).length,x=i((L,ee)=>{switch(c){case"loading":return D.createElement(VA,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(lt,{variant:"body",size:"medium",color:"$error500"},wt.t("Loading failed"));default:return D.createElement(lt,{variant:"body",size:"medium"},`${L} / ${ee}`)}},"handleSwapperEndItem"),E={id:"widget-setting-bridge-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},wt.t("Bridges")),end:D.createElement(D.Fragment,null,x(v,w),D.createElement(Gr,{direction:"horizontal",size:8}),D.createElement($a,{color:"black"})),onClick:()=>t(F.bridges),start:D.createElement(FA,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},wt.t("Exchanges")),end:D.createElement(D.Fragment,null,x(b,N),D.createElement(Gr,{direction:"horizontal",size:8}),D.createElement($a,{color:"black"})),start:D.createElement(OA,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},I={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},wt.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"body",size:"medium"},`${d.length}`),D.createElement(Gr,{direction:"horizontal",size:8}),D.createElement($a,{color:"black"})),start:D.createElement(YA,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},_={id:"widget-setting-language-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},wt.t("Language")),start:D.createElement(HA,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"body",size:"medium"},s),D.createElement(Gr,{direction:"horizontal",size:8}),D.createElement($a,{color:"black"})),onClick:()=>t(F.languages)},U={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"title",size:"xmedium"},wt.t("Infinite approval")),D.createElement(Gr,{direction:"horizontal",size:4}),D.createElement(ZA,{side:"top",sideOffset:4,container:W(),content:D.createElement(Da,null,D.createElement(lt,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,wt.t("Warning")),":\xA0",wt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(zA,{color:"gray"}))),start:D.createElement(UA,{color:"gray",size:16}),end:D.createElement(jA,{checked:C}),onClick:y},G={id:"widget-setting-theme-item-btn",type:D.createElement(qA,null),title:D.createElement(lt,{variant:"title",size:"xmedium"},wt.t("Theme")),end:D.createElement(RA,null,D.createElement(XA,{container:W(),items:eN,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:tN(n)},Y=h?[]:[E,B];return m||Y.push(I),g||Y.push(_),Y.push(U),!e?.singleTheme&&!f&&Y.push(G),D.createElement(QA,{type:D.createElement(GA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:Y})}i(Qy,"SettingsLists");var sN=rN("div",{paddingLeft:"$8"});function qy(){let{isInCampaignMode:t,updateCampaignMode:e}=k(),o=t(),[,n]=aN(),r=iN(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Xo.createElement(ae,{header:{title:fp.t("Settings")}},Xo.createElement(ue,null,o&&Xo.createElement(oN,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:fp.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:Xo.createElement(sN,null,Xo.createElement(nN,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},fp.t("Reset")))}),Xo.createElement(mp,null),Xo.createElement(Qy,null)))}i(qy,"SettingsPage");import{i18n as y0}from"@lingui/core";import{cancelSwap as S0}from"@rango-dev/queue-manager-rango-preset";import{useManager as C0}from"@rango-dev/queue-manager-react";import{Alert as k0}from"@rango-dev/ui";import Bp from"react";import{useParams as T0}from"react-router-dom";import{i18n as zt}from"@lingui/core";import{getCurrentNamespaceOfOrNull as n0,getCurrentStep as r0,getRelatedWalletOrNull as i0}from"@rango-dev/queue-manager-rango-preset";import{Button as FS,Divider as a0,QuoteCost as s0,StepDetails as l0,Typography as xp}from"@rango-dev/ui";import{useWallets as c0}from"@rango-dev/wallets-react";import OS from"bignumber.js";import{PendingSwapNetworkStatus as Fn}from"rango-types";import Te,{useEffect as Ep,useRef as Ip,useState as Va}from"react";import{useNavigate as p0}from"react-router-dom";import{i18n as bo}from"@lingui/core";var lN=[bo.t("Sunday"),bo.t("Monday"),bo.t("Tuesday"),bo.t("Wednesday"),bo.t("Thursday"),bo.t("Friday"),bo.t("Saturday")];function Gy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?bo.t("Today"):`${lN[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Gy,"timeSince");function Vy(t){return t.finishTime?Gy(parseInt(t.finishTime)):Gy(parseInt(t.creationTime))}i(Vy,"getSwapDate");import Vr from"react";import{i18n as Fa}from"@lingui/core";import{Button as Ky,Divider as gp,MessageBox as cN}from"@rango-dev/ui";import xo from"react";var jy=i(({onCancel:t,onClose:e})=>xo.createElement(xo.Fragment,null,xo.createElement(gp,{size:20}),xo.createElement(cN,{type:"error",title:Fa.t("Cancel Swap"),description:Fa.t("Are you sure you want to cancel this swap?")}),xo.createElement(gp,{size:32}),xo.createElement(Ky,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Fa.t("Yes, Cancel it")),xo.createElement(gp,{size:12}),xo.createElement(Ky,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Fa.t("No, Continue"))),"CancelContent");import{i18n as Oa}from"@lingui/core";import{Button as Xy,Divider as hp,MessageBox as pN,Typography as uN}from"@rango-dev/ui";import io from"react";var Yy=i(({onDelete:t,onClose:e})=>io.createElement(io.Fragment,null,io.createElement(hp,{size:20}),io.createElement(pN,{type:"error",title:Oa.t("Delete Transaction"),description:Oa.t("Are you sure you want to delete this swap?")}),io.createElement(hp,{size:32}),io.createElement(Xy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Oa.t("Yes, Delete it")),io.createElement(hp,{size:12}),io.createElement(Xy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},io.createElement(uN,{variant:"title",size:"medium",color:"primary"},Oa.t("No, Cancel")))),"DeleteContent");import{i18n as dN}from"@lingui/core";import{Button as mN,Divider as fN,MessageBox as gN}from"@rango-dev/ui";import Yo from"react";var Zy=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Yo.createElement(Yo.Fragment,null,Yo.createElement(gN,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Yo.createElement(Yo.Fragment,null,Yo.createElement(fN,{size:"30"}),Yo.createElement(mN,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},dN.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as MN,getCurrentStep as PN,getRelatedWalletOrNull as _N}from"@rango-dev/queue-manager-rango-preset";import{WalletState as DN}from"@rango-dev/ui";import{useWallets as $N}from"@rango-dev/wallets-react";import rS from"react";import{i18n as Dn}from"@lingui/core";import{Alert as eS,Button as SN,Checkbox as CN,Divider as Ha,Image as kN,MessageBox as TN,Spinner as wN,WarningIcon as vN}from"@rango-dev/ui";import{useWallets as bN}from"@rango-dev/wallets-react";import Se,{useState as xN}from"react";import{css as hN,darkTheme as yN,styled as yp}from"@rango-dev/ui";var Jy=hN({wordWrap:"break-word",display:"block"}),Ry=yp("img",{width:"100%"}),Ua=yp("div",{position:"relative"}),za=yp("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${yN} &`]:{$$color:"$warning600"}});var tS=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=xN(null),{list:s}=vt(),c=ne.use.isActiveTab(),{state:l,connect:p}=bN(),u=s.find(v=>v.type===e.walletType),d=u?.needsNamespace?.data.find(v=>v.value===o?.namespace);if(!u)return null;let f=l(e.walletType),h=u.isHub&&o?.namespace?f.namespaces?.get(o.namespace):null,g=f.connecting||h?.connecting,m=u.isHub?h?.connected:f.connected,C=i(()=>m?Dn.t("Done"):r?Dn.t("Try again"):Dn.t("Connect"),"getButtonTitle"),y=i(()=>g?Se.createElement(wN,{color:"info"}):r||m?null:Se.createElement(CN,{checked:!0,disabled:!0}),"getNamespaceSuffix"),S=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(v){a(v)}},"handleConnect"),T=i(async()=>{if(m){n();return}S()},"handleClickButton"),w=i(()=>{if(!m)return null;let v=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),A=v?.[v?.length-1];return A?lo(A):null},"getAddress");return Se.createElement(Se.Fragment,null,Se.createElement(TN,{type:"warning",title:Dn.t("Connect {wallet}",{wallet:u.title}),description:Dn.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:Se.createElement(Ua,null,Se.createElement(kN,{src:u.image,size:45}),Se.createElement(za,null,Se.createElement(vN,{color:"warning",size:10})))}),m&&!d&&Se.createElement(Se.Fragment,null,Se.createElement(Ha,{size:10}),Se.createElement(eS,{type:"success",variant:"alarm",title:Dn.t("Wallet connected successfully.")})),r&&!d&&Se.createElement(Se.Fragment,null,Se.createElement(Ha,{size:10}),Se.createElement(eS,{type:"error",title:r?.message,variant:"alarm"})),d&&Se.createElement(Se.Fragment,null,Se.createElement(Ha,{size:30}),Se.createElement(_o,{namespace:d,suffix:y(),error:r?.message,connected:m,address:w()})),Se.createElement(Ha,{size:"40"}),Se.createElement(SN,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:T,disabled:!c},C()))},"ConnectWalletContent");import{i18n as oS}from"@lingui/core";import{Button as EN,Divider as IN,Image as AN,MessageBox as NN,WarningIcon as WN}from"@rango-dev/ui";import{useWallets as BN}from"@rango-dev/wallets-react";import{detectInstallLink as LN}from"@rango-dev/wallets-shared";import ao from"react";var nS=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=BN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(LN(n.installLink),"_blank"),"handleButtonClick");return ao.createElement(ao.Fragment,null,ao.createElement(NN,{type:"warning",title:oS.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:ao.createElement(Ua,null,ao.createElement(AN,{src:n.img,size:45}),ao.createElement(za,null,ao.createElement(WN,{color:"warning",size:10})))}),ao.createElement(IN,{size:"40"}),ao.createElement(EN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},oS.t("Install")))},"InstallWalletContent");var iS=i(t=>{let{swap:e,onClose:o}=t,{state:n}=$N(),r=PN(e),a=r?_N(e,r):null,s=a?.walletType,c=s?Kn(n(s)):null,l=r?MN(e,r):null;return s?c===DN.NOT_INSTALLED?rS.createElement(nS,{walletType:s}):rS.createElement(tS,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function Sp(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return Vr.createElement(R,{open:e,onClose:r,container:W()},o==="connectWallet"&&Vr.createElement(iS,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&Vr.createElement(Zy,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&Vr.createElement(Yy,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&Vr.createElement(jy,{onClose:r,onCancel:()=>{r(),s()}}))}i(Sp,"SwapDetailsModal");import{i18n as Kr}from"@lingui/core";import{Button as Cp,Divider as jr,MessageBox as lS,TokenAmount as FN,Typography as cS}from"@rango-dev/ui";import ke from"react";import{Link as ON,useNavigate as UN}from"react-router-dom";var aS="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",sS="/profile";function kp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:d,diagnosisUrl:f}=t,h=UN(),{showProfileBanner:g}=ne();return ke.createElement(R,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(ot.SWAP_BOX_ID)||document.body},n==="success"?ke.createElement(lS,{type:"success",title:Kr.t("Swap Successful")},ke.createElement(FN,{direction:"vertical",tooltipContainer:W(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),ke.createElement(jr,{size:12}),ke.createElement(cS,{className:Jy(),variant:"body",size:"medium",color:"neutral700",align:"center"},d)):ke.createElement(lS,{type:"error",title:Kr.t("Transaction Failed"),description:d}),ke.createElement(jr,{size:30}),n==="success"&&ke.createElement(ke.Fragment,null,g&&ke.createElement(ke.Fragment,null,ke.createElement(ON,{to:sS},ke.createElement(Ry,{src:aS,alt:"Profile Banner"})),ke.createElement(jr,{size:30})),ke.createElement(Cp,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Kr.t("Done"))),ke.createElement(jr,{size:12}),f&&ke.createElement(ke.Fragment,null,ke.createElement(Cp,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Kr.t("Diagnosis")),ke.createElement(jr,{size:12})),ke.createElement(Cp,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},ke.createElement(cS,{variant:"title",size:"medium",color:"primary"},Kr.t("See Details"))))}i(kp,"SwapDetailsCompleteModal");import{i18n as Ga}from"@lingui/core";import{CopyIcon as JN,DoneIcon as RN,IconButton as e0,RangoExplorerIcon as t0,Tooltip as LS,Typography as MS,useCopyToClipboard as o0}from"@rango-dev/ui";import Wt from"react";import ZN from"react";import{i18n as KN}from"@lingui/core";import{Alert as AS,IconButton as jN,LinkIcon as XN}from"@rango-dev/ui";import Eo,{Fragment as YN}from"react";import{Alert as HN,ChevronDownIcon as QN,IconButton as qN}from"@rango-dev/ui";import $n,{useState as GN}from"react";import{css as Xr,darkTheme as pS,styled as Ut,Typography as zN}from"@rango-dev/ui";var uS=Ut(ue,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${pS} &`]:{color:"$secondary500"}}}}}),dS=Ut("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),mS=Ut("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),fS=Ut("div",{padding:"$0 $20 $20 $20"}),MY=Ut("div",{display:"flex",flexDirection:"column",gap:"$10"}),gS=Ut("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),PY=Ut("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Zo=Xr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${pS} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),hS=Xr({padding:"$5 0"}),Qa=Xr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),yS=Xr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),SS=Xr({width:"100%",padding:"0 $20 $10"}),CS=Ut("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),kS=Ut("div",{display:"flex",flexDirection:"column",gap:"$5"}),qa=Ut(zN,{wordBreak:"break-word"});import{styled as Tp}from"@rango-dev/ui";var TS=Tp("div",{display:"flex",flexDirection:"column",gap:"$10"}),wS=Tp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),vS=Tp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function bS(t){let{message:e}=t,[o,n]=GN(!1);return $n.createElement(HN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&$n.createElement(qN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},$n.createElement(wS,{rotated:o},$n.createElement(QN,{size:12,color:"gray"}))),footer:$n.createElement(vS,{open:o},$n.createElement(qa,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(bS,"FailedAlert");import{i18n as xS}from"@lingui/core";import{Alert as wp,Button as ES}from"@rango-dev/ui";import{PendingSwapNetworkStatus as VN}from"rango-types";import Yr from"react";function IS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?Yr.createElement(wp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:Yr.createElement(ES,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},xS.t("Change"))}):a===VN.WaitingForConnectingWallet?Yr.createElement(wp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Yr.createElement(ES,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},xS.t("Connect"))}):Yr.createElement(wp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(IS,"WarningAlert");function vp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=pr(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,d=u&&!c||p&&!s.explorerUrl?.length;return Eo.createElement(TS,null,s.explorerUrl?.map((f,h,g)=>{let m=h+f.url,C=h===g.length-1,y=(C&&u||p)&&!d,S=C&&s.status==="failed";return Eo.createElement(YN,{key:m},Eo.createElement(AS,{id:"widget-swap-details-tx-alert",type:C&&(y&&"loading"||S&&"error")||"success",title:f.description?`${f.description} Tx`:KN.t("View transaction"),action:f.url&&Eo.createElement(jN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},Eo.createElement(XN,{size:12}))}))}),d&&Eo.createElement(AS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&Eo.createElement(IS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&Eo.createElement(bS,{message:a}))}i(vp,"SwapDetailsAlerts");var NS=2e3;var WS=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1]?.outputAmount||t.steps[s-1]?.expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:yt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:P(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:yt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:P(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Qn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:yt(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:yt(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Qn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:ZN.createElement(vp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function BS(t){if(pr(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(BS,"getStepState");function PS(t){let{requestId:e}=t,[o,n]=o0(NS);return Wt.createElement(mS,{className:Zo()},Wt.createElement(MS,{variant:"label",size:"large",color:"neutral700"},Ga.t("Request ID")),Wt.createElement("div",{className:Qa()},Wt.createElement(MS,{variant:"label",size:"small",color:"neutral700"},e),Wt.createElement(LS,{container:W(),content:o?Ga.t("Copied To Clipboard"):Ga.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Wt.createElement(e0,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Wt.createElement(RN,{size:16,color:"secondary"}):Wt.createElement(JN,{size:16,color:"gray"}))),Wt.createElement(CS,{target:"_blank",href:`${nu}/swap/${e}`},Wt.createElement(LS,{container:W(),content:Ga.t("View on Rango Explorer"),side:"bottom"},Wt.createElement(t0,{size:20})))))}i(PS,"RequestIdRow");import{i18n as _S}from"@lingui/core";import{Typography as DS}from"@rango-dev/ui";import bp from"react";function $S(t){let{date:e,isFinished:o}=t;return bp.createElement("div",{className:Zo()},bp.createElement(DS,{variant:"label",size:"large",color:"neutral700"},o?_S.t("Finished at"):_S.t("Created at")),bp.createElement(DS,{variant:"label",size:"small",color:"neutral700"},e))}i($S,"SwapDateRow");var u0=3e3;function Ap(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=c0(),l=k().blockchains(),p=k().swappers(),{findToken:u}=k(),d=H().use.retry(),f=p0(),h=Ip(null),[g,m]=Va(!1),[C,y]=Va(null),[S,T]=Va(null),[w,v]=Va(null),A=Ip(C),N=Ip(S),b=We.use.getNotifications(),x=We.use.removeNotification(),E=b(),B=r0(e),I=B?.networkStatus,_=i(Me=>{m(!0),y(Me)},"handleChangeModalState"),U=i(()=>{m(!1)},"handleCloseModal"),G=i(()=>{T({type:"loading",title:zt.t("Change Network"),description:`We\u2019re switching the connected network to ${J?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),Y=i(()=>{T({type:"success",title:zt.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),L=i(Me=>{T({type:"error",title:zt.t("Network Switch Failed"),description:Me?.message||pe.detailedMessage.content})},"handleShowSwitchNetworkFailed"),ee=Jd(e),J=B?n0(e,B):null,te=B?i0(e,B):null,se=Vy(e),je=Rd(e),le=i(Me=>!!c(Me)?.mobileWallet,"checkIsMobileWallet"),Xe=!!I&&[Fn.WaitingForNetworkChange,Fn.NetworkChangeFailed].includes(I),He=!!te?.walletType&&le(te.walletType),Bt=!!te&&!!J&&a(te.walletType,J.network,J),$=!!J&&Xe&&(He||Bt),z=i(()=>{$&&(G(),s(te.walletType,[{namespace:J.namespace,network:J.network}]).then(()=>{Y()}).catch(Me=>{L(Me)}))},"handleSwitchNetwork"),V=i(()=>{_("switchNetwork"),z()},"handleSwitchNetworkClick"),pe=Zd(e,B,c),Q=WS({swap:e,switchNetworkIsAvailable:$,handleSwitchNetworkClick:V,showNetworkModal:I,setNetworkModal:_,message:pe,blockchains:l,swappers:p}),X=Q.length,[j,Ie]=[e.steps[0],e.steps[X-1]],Ae=Ie?.outputAmount||Ie?.expectedOutputAmountHumanReadable,Ye=e.steps.reduce((Me,Mt)=>Me+parseFloat(Mt.feeInUsd||""),0),Lt=e.steps.find(Me=>Me.diagnosisUrl)?.diagnosisUrl,so=P(parseFloat(Ae||"0")*(Ie?.toUsdPrice||0),4,4),Io=P(parseFloat(e.inputAmount)*(j?.fromUsdPrice||0),4,4),zn=Ae?new OS(Ae).multipliedBy(Ie.toUsdPrice||0).toString():"",Rr=new OS(e.inputAmount).multipliedBy(j?.fromUsdPrice||0).toString(),ns=jt(Io,so),rs=pe.detailedMessage.content||pe.shortMessage,SC=e.status==="success"?zt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:P(Ae,6,6),token:Q[X-1]?.to.token.displayName,conciseAddress:lo(e.wallets[Q[X-1]?.to.chain.displayName||""]?.address||""),chain:Q[X-1]?.to.chain.displayName}}):Te.createElement(kS,null,Te.createElement(xp,{variant:"body",size:"medium",color:"neutral700",align:"center"},rs?"":zt.t("Transaction was not sent."),ee?`${zt.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:ee.outputAmount,symbol:ee.symbol,blockchain:ee.blockchain}})}`:""),rs&&Te.createElement(qa,{align:"center",variant:"body",size:"medium",color:"neutral700"},Te.createElement("b",null,"Reason:")," ",rs));return Ep(()=>{E.find(Mt=>Mt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId),U()):w&&v(null))},[e.status,e.requestId]),Ep(()=>{if($){if(_("switchNetwork"),I===Fn.WaitingForNetworkChange){G();return}if(I===Fn.NetworkChangeFailed){L();return}return}if(I===Fn.WaitingForConnectingWallet){_("connectWallet");return}if(I===Fn.NetworkChanged){_("switchNetwork"),Y();return}C&&["connectWallet","switchNetwork"].includes(C)&&U()},[I]),Ep(()=>{if(A.current=C,N.current=S,C==="switchNetwork"&&S?.type==="success"){let Me=setTimeout(()=>{A.current==="switchNetwork"&&N.current?.type==="success"&&U()},u0);return()=>clearTimeout(Me)}},[C,S]),Te.createElement(ae,{header:{title:zt.t("Swap Details"),onCancel:e.status==="running"?()=>_("cancel"):void 0,suffix:e.status!=="running"&&Te.createElement(fo,null,Te.createElement(FS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>_("delete")},Te.createElement(xp,{size:"medium",variant:"label",color:"error"},zt.t("Delete"))))},footer:je&&!w&&Te.createElement(FS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Me=Wi(e,l,u);d(Me),setTimeout(()=>{f("../../")},0)}},zt.t("Try again"))},Te.createElement(uS,{compact:!0,ref:h},Te.createElement(PS,{requestId:o}),Te.createElement($S,{date:se,isFinished:!!e.finishTime}),Te.createElement("div",{className:yS()},Te.createElement(s0,{fee:P(String(Ye),2,2),time:Gn(ci(e.steps)),steps:X}),Te.createElement(wr,{from:{price:{value:P(e.inputAmount,6,6),usdValue:Io,realUsdValue:Rr,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:P(Ae,6,6),usdValue:so,realUsdValue:zn,realValue:Ae||""},token:{displayName:Q[X-1]?.to.token.displayName||"",image:Q[X-1]?.to.token.image},chain:{image:Q[X-1]?.to.chain.image,displayName:Q[X-1]?.to.chain.displayName||""}},percentageChange:P(ns,2,2),warningLevel:Xt(ns??0)})),Te.createElement("div",{className:SS()},Te.createElement(xp,{variant:"title",size:"small"},zt.t("Swaps steps"))),Te.createElement(a0,{size:8}),Te.createElement(fS,null,Q.map((Me,Mt)=>{let zp=Mt,Hn=e.steps[Mt]&&BS(e.steps[Mt]),CC=Hn==="error"||Hn==="in-progress"||Hn==="warning"||Hn==="completed"&&Mt===Q.length-1;return Te.createElement(l0,{className:"widget-swap-details-step-item-container",key:zp,step:Me,type:"swap-progress",ref:h,state:Hn,hasSeparator:Mt!==0,tabIndex:zp,isFocused:CC,tooltipContainer:W()})}))),Te.createElement(Sp,{isOpen:g,state:C,switchNetworkModalState:S,onClose:U,onCancel:r,onDelete:n,message:pe.detailedMessage.content,swap:e,handleSwitchNetwork:V}),Te.createElement(kp,{open:!!w,diagnosisUrl:Lt,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:P(Ae,6,6),usdValue:so,realUsdValue:zn,realValue:Ae||"",percentageChange:P(ns,2,2),token:{displayName:Q[X-1]?.to.token.displayName||"",image:Q[X-1]?.to.token.image},chain:{image:Q[X-1]?.to.chain.image},description:SC}))}i(Ap,"SwapDetails");import{i18n as ja}from"@lingui/core";import{Divider as HS,NotFound as h0,Skeleton as Jr,Typography as Xa}from"@rango-dev/ui";import Ee from"react";import{i18n as d0}from"@lingui/core";import{Divider as m0,Skeleton as f0,Typography as g0}from"@rango-dev/ui";import xe from"react";import{css as Ht,styled as Np}from"@rango-dev/ui";var US=Np("div",{width:"100%",height:"100%",padding:"$10 $20"}),Zr=Np("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Ka=Np("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),s9=Ht({display:"flex",justifyContent:"space-between",alignItems:"center"}),l9=Ht({paddingTop:"$15",display:"flex"}),c9=Ht({padding:"$15 $0"}),p9=Ht({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),u9=Ht({paddingBottom:"$10"}),d9=Ht({display:"flex",justifyContent:"start",alignItems:"center"}),m9=Ht({paddingTop:"$5",display:"flex",alignItems:"center"}),f9=Ht({display:"flex",alignItems:"center"}),g9=Ht({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),zS=Ht({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Wp(){return xe.createElement(US,null,xe.createElement(br,{type:"swap-preview"}),xe.createElement("div",{className:"swaps-steps"},xe.createElement(g0,{variant:"title",size:"small"},d0.t("Swaps steps"))),xe.createElement(xe.Fragment,null,xe.createElement(Zr,null,xe.createElement(Ft,{separator:!1}),xe.createElement("div",{className:zS()},xe.createElement(m0,{direction:"horizontal",size:20}),xe.createElement(f0,{height:22,variant:"rectangular"}))),xe.createElement(Ka,null),xe.createElement(Zr,null,xe.createElement(Ft,{separator:!1})),xe.createElement(Ka,null),xe.createElement(Zr,null,xe.createElement(Ft,{separator:!1})),xe.createElement(Ka,null),xe.createElement(Zr,null,xe.createElement(Ft,{separator:!1}))))}i(Wp,"LoadingSwapDetails");function QS(t){let{requestId:e,showSkeleton:o}=t;return Ee.createElement(ae,{header:{title:ja.t("Swap Details"),suffix:Ee.createElement(fo,null)}},o&&Ee.createElement(dS,null,Ee.createElement("div",{className:Zo()},Ee.createElement(Xa,{variant:"label",size:"large",color:"neutral700"},`${ja.t("Request ID")}`),Ee.createElement("div",{className:Qa()},Ee.createElement(Xa,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Jr,{width:60,height:10,variant:"rounded"})),Ee.createElement(HS,{direction:"horizontal",size:4}),Ee.createElement(Jr,{width:16,height:16,variant:"rectangular"}),Ee.createElement(HS,{direction:"horizontal",size:4}),Ee.createElement(Jr,{width:16,height:16,variant:"rectangular"}))),Ee.createElement("div",{className:Zo()},Ee.createElement(Xa,{className:hS(),variant:"label",size:"large",color:"neutral700"},Ee.createElement(Jr,{width:60,height:10,variant:"rounded"})),Ee.createElement(Xa,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Jr,{width:60,height:10,variant:"rounded"}))),Ee.createElement(Wp,null)),!o&&Ee.createElement(gS,null,Ee.createElement(h0,{title:ja.t("Not found"),description:ja.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(QS,"SwapDetailsPlaceholder");function qS(){let{manager:t,state:e}=C0(),o=!e.loadedFromPersistor,n=Tt(t),{requestId:r}=T0(),a=Ge(),{fetchStatus:s}=k();if(!r)return Bp.createElement(k0,{containerStyles:{margin:"20px"},type:"error",title:y0.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:f})=>f.requestId===r):void 0,p=i(()=>{if(l?.id){let f=t?.get(l.id);f&&S0(f)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),d=l?.swap;return!d||c?Bp.createElement(QS,{requestId:r,showSkeleton:c}):Bp.createElement(Ap,{swap:d,requestId:r,onCancel:p,onDelete:u})}i(qS,"SwapDetailsPage");import{i18n as GS}from"@lingui/core";import{Divider as w0,getCategoriesCount as v0,SelectableCategoryList as b0,styled as KS,Typography as x0,Wallet as E0,WalletState as I0}from"@rango-dev/ui";import{useWallets as A0}from"@rango-dev/wallets-react";import Qt,{useState as VS}from"react";var N0=KS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),W0=KS(ue,{textAlign:"center"});function jS(){let{fetchStatus:t}=k(),[e,o]=VS("ALL"),n=k().blockchains(),{config:r}=k(),{state:a}=A0(),{checkHasDeepLink:s,getWalletLink:c}=un(),[l,p]=VS(),u=ne.use.isActiveTab(),{list:d}=vt(),f=Lu(d,n),g=v0(f)!==1,m=Mu(d,e),C=i(y=>{mu(d,r.multiWallets)||p(y)},"handleWalletItemClick");return Qt.createElement(ae,{header:{title:GS.t("Connect Wallets")}},Qt.createElement(W0,null,g&&Qt.createElement(Qt.Fragment,null,Qt.createElement(b0,{setCategory:o,category:e,blockchains:f,isLoading:t==="loading"}),Qt.createElement(w0,{size:24})),Qt.createElement(x0,{variant:"title",size:"xmedium",align:"center"},GS.t("Choose a wallet to connect.")),Qt.createElement(N0,null,m.map((y,S)=>{let T=a(y.type).namespaces,w=`wallet-${S}-${y.type}`,v=gs(y,T),A=y.state;return v&&(A=I0.PARTIALLY_CONNECTED),Qt.createElement(E0,{key:w,...y,state:A,hasDeepLink:s(y.type),link:c(y.type),container:W(),onClick:()=>C(y),isLoading:t==="loading",disabled:!u})}),Qt.createElement(sr,{id:"widget-state-full-connect-modal",wallet:l,onClose:()=>{p(void 0)}}))))}i(jS,"WalletsPage");function XS(){return pm(),tl(),B0([{path:F.home,element:ze.createElement(uy,null)},{path:F.routes,element:ze.createElement(hy,null)},{path:F.fromSwap,children:[{index:!0,element:ze.createElement(_a,{type:"source"})},{path:F.blockchains,element:ze.createElement(Ba,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:ze.createElement(_a,{type:"destination"})},{path:F.blockchains,element:ze.createElement(Ba,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:ze.createElement(qy,null)},{path:F.languages,element:ze.createElement(my,null)},{path:F.exchanges,element:ze.createElement(tp,{sourceType:"Exchanges"})},{path:F.bridges,element:ze.createElement(tp,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:ze.createElement(dh,null)},{path:F.addCustomTokens,children:[{index:!0,element:ze.createElement(sf,null)},{path:F.blockchains,element:ze.createElement(Ba,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:ze.createElement(Lh,null)},{path:F.swapDetails,element:ze.createElement(qS,null)}]},{path:F.wallets,element:ze.createElement(jS,null)},{path:F.confirmSwap,element:ze.createElement(Yg,null)}])}i(XS,"AppRoutes");import{useQueueManager as X0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as Y0}from"rango-sdk";import{useContext as Z0,useEffect as _p,useState as sC}from"react";import{Provider as $0}from"@rango-dev/wallets-react";import Ya,{createContext as F0,useEffect as eC,useMemo as O0,useRef as tC}from"react";import{useEffect as M0}from"react";import{Provider as L0}from"@rango-dev/wallets-core";function YS(t){return t.map(e=>typeof e=="string"?e:e instanceof L0?e.id:e.config.type).join("-")}i(YS,"hashProviders");function Lp(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=k(),a=n();return M0(()=>{o(),r()},[YS(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(Lp,"useWalletProviders");import{legacyFormatAddressWithNetwork as P0,legacyReadAccountAddress as ZS}from"@rango-dev/wallets-core/legacy";import{Events as On}from"@rango-dev/wallets-react";import{isEvmBlockchain as _0}from"rango-sdk";function JS(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=k(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(_0).map(m=>m.name),u=i((m,C)=>{let[y,,S,T,w]=m,v={walletType:y,network:T.network??void 0,accounts:S};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let A=fs(y,S,p,C.supportedChainNames,w.isContractWallet);A.length&&e(A,w.namespace,T.derivationPath)},"onAccountsEvent"),d=i((m,C,y,S,T)=>{if(C===On.ACCOUNTS){let w=jn(T.supportedBlockchains);y&&u([m,C,y,S,T],{supportedChainNames:w})}C===On.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),C===On.NAMESPACE_DISCONNECTED&&n(m,y)},"handleUpdatesForHub"),f=i((m,C,y,S,T)=>{if(C===On.ACCOUNTS){let w=jn(T.supportedBlockchains),v=[],A=[];if(y?.forEach(b=>{let{network:x}=ZS(b);p.includes(x)?v.push(b):A.push(b)}),r.filter(b=>b.walletType===m).map(b=>P0(b.address,b.chain)).length>0){if(v.length>0){let b=fs(m,v,p,w,T.isContractWallet);a(m,{chains:b.map(x=>x.chain)})}A.length>0&&a(m,{chains:A.map(b=>{let{network:x}=ZS(b);return x})})}y?u([m,C,y,S,T],{supportedChainNames:w}):(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((m,C,y,S,T)=>{if(C===On.CONNECTED&&y){let w={walletType:m,network:S.network??void 0,accounts:S.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(C===On.NETWORK&&y){let w={walletType:m,network:y,accounts:S.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((m,C,y,S,T)=>{T.isHub?d(m,C,y,S,T):f(m,C,y,S,T),h(m,C,y,S,T)},"handler")}}i(JS,"useUpdates");import{LegacyEvents as D0}from"@rango-dev/wallets-core/legacy";function RS(t,e){let[o,n,r,a,s]=e;n!==D0.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(RS,"propagateEvents");var Za=F0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function U0(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=k(),a=k().blockchains(),s=k().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=Lp(s.wallets,c),p=tC(),u=tC(),{handler:d}=JS({onConnectWalletHandler:p,onDisconnectWalletHandler:u});eC(()=>{n().catch(console.log)},[]),eC(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=ne.use.isActiveTab(),h=O0(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Ya.createElement(Za.Provider,{value:h},Ya.createElement($0,{allBlockChains:a,providers:l,onUpdateState:(g,m,C,y,S)=>{let T=[g,m,C,y,S];d(...T),t.onUpdateState&&RS(t.onUpdateState,T)},autoConnect:!!f,configs:{wallets:s.wallets}},t.children))}i(U0,"Main");function Ja(t){let{config:e,...o}=t;return Ya.createElement(Ju,{config:e},Ya.createElement(U0,{...o,config:e}))}i(Ja,"WidgetWallets");import{globalCss as z0}from"@rango-dev/ui";var oC=i(()=>z0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");import{useWallets as H0}from"@rango-dev/wallets-react";import{useEffect as Q0,useRef as q0}from"react";function nC(){let{connect:t,state:e}=H0(),o=q0({}),{fetchStatus:n}=k(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Q0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(nC,"useForceAutoConnect");import{isApprovalTX as G0,RouteEventType as rC,StepEventType as iC,StepExecutionEventStatus as V0,WidgetEvents as Ra}from"@rango-dev/queue-manager-rango-preset";import{useEffect as aC}from"react";function Mp(){let t=We.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=k();aC(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===iC.TX_EXECUTION&&s.status===V0.TX_SENT&&!G0(c)||s.type===iC.SUCCEEDED){let u=[],d=l.wallets[c?.fromBlockchain];if(d){let f=e.find(h=>h.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&h.walletType===d.walletType&&h.chain===c?.fromBlockchain);f&&u.push(f)}if(c?.fromBlockchain!==c?.toBlockchain){let f=l.wallets[c?.toBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let f=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(m=>f.some(C=>C.blockchain===m.blockchain&&C.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&C.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return we.on(Ra.StepEvent,r),()=>we.off(Ra.StepEvent,r)},[we,e]),aC(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===rC.FAILED||s.type===rC.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return we.on(Ra.RouteEvent,r),()=>we.off(Ra.RouteEvent,r)},[we])}i(Mp,"useSubscribeToWidgetEvents");import{useManager as K0}from"@rango-dev/queue-manager-react";import{useEffect as j0}from"react";function Pp(){let{isSynced:t,syncNotifications:e}=We(),{manager:o,state:n}=K0();j0(()=>{We.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Tt(o))},[We.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Pp,"useSyncNotifications");function Dp(){nC(),oC(),Mp(),Pp();let t=k().blockchains(),{canSwitchNetworkTo:e}=Ji(),[o,n]=sC(null),[r,a]=sC(),s=Z0(Za),c=t.filter(Y0);_p(()=>()=>lm(),[]),_p(()=>()=>cm(),[]),X0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),_p(()=>(Po.init(),We.persist.hasHydrated()||We.persist.rehydrate(),s.onConnectWallet(l=>{n(p=>{if(!p||p.walletType!==l.walletType)return l;let u={...p};return l.network&&(u.network=l.network),l.accounts&&(u.accounts=l.accounts),u})}),s.onDisconnectWallet(l=>{a(l),n(p=>l===p?.walletType?null:p)}),Po.destroy),[])}i(Dp,"useBootstrap");import{styled as J0}from"@rango-dev/ui";var lC=J0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Jo(){Dp();let{config:t}=k(),{activeTheme:e}=mo(t?.theme||{}),{activeLanguage:o}=wo();return $p.createElement(R0,{language:o},$p.createElement(lC,{id:"swap-container",className:e()},$p.createElement(XS,null)))}i(Jo,"Main");import{setSolanaSignerConfig as CW}from"@rango-dev/signer-solana";import Op,{useEffect as Up,useMemo as kW}from"react";function cC(){let{setWatermark:t,setShowProfileBanner:e}=ne();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Gt("BASE_URL")}/meta/dapp/config?apiKey=${Gt("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(cC,"useFetchApiConfig");import{useState as eW}from"react";var tW=i(()=>{let[t,e]=eW(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=du(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),pC=tW;import{checkWaitingForNetworkChange as oW,makeQueueDefinition as nW}from"@rango-dev/queue-manager-rango-preset";import{Provider as rW}from"@rango-dev/queue-manager-react";import{useWallets as iW}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as aW}from"@rango-dev/wallets-shared";import{isEvmBlockchain as sW}from"rango-types";import lW,{useMemo as cW}from"react";function pW(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=iW(),c=cW(()=>nW({API_KEY:t.apiKey||Gt("API_KEY"),BASE_URL:Gt("BASE_URL"),emitter:{emit:we.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=k(),u=l(),d={blockchains:p.map(w=>({accounts:[w],name:w.chain}))},f=i(async(w,v)=>a(w,v.network,v)?await r(w,[v]):void 0,"switchNetwork"),h=i(w=>!!s(w).mobileWallet,"isMobileWallet"),g=u.filter(w=>w.enabled).reduce((w,v)=>(w[v.name]=v,w),{}),m=u.filter(sW),C=i(w=>{let{supportedChains:v}=s(w);return jn(v)},"getSupportedChainNames"),y=e(),S={meta:{blockchains:g,evmBasedChains:m,evmNetworkChainInfo:aW(m),getSupportedChainNames:C},getSigners:o,wallets:d,providers:y,switchNetwork:f,canSwitchNetworkTo:a,state:n,isMobileWallet:h},T=ne.use.isActiveTab();return lW.createElement(rW,{queuesDefs:[c],context:S,onPersistedDataLoaded:w=>{oW(w)},isPaused:!T},t.children)}i(pW,"QueueManager");var uC=pW;import{useManager as gW}from"@rango-dev/queue-manager-react";import hW,{createContext as yW,useContext as SW}from"react";function dC(){let{findToken:t}=k(),e=k().blockchains(),o=k().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=H()();return i(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:f,toToken:h,requestAmount:g}=p,m={blockchains:e,tokens:o};if(u!==void 0){let C=e.find(y=>y.name===u)??null;n(C)}if(d!==void 0){let C=d?t(d)??null:null;r({meta:m,token:C})}if(f!==void 0){let C=e.find(y=>y.name===f)??null;a(C)}if(h!==void 0){let C=h?t(h)??null:null;s({meta:m,token:C})}g!==void 0&&c(g)},"updateQuoteInputs")}i(dC,"useUpdateQuoteInputs");import{cancelSwap as uW,getCurrentNamespaceOfOrNull as dW,getCurrentStep as mW,getRelatedWalletOrNull as fW}from"@rango-dev/queue-manager-rango-preset";var es=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Tt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Wi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&uW(o)}getCurrentStepInfo(e){let o=mW(e);return{step:o,wallet:o?fW(e,o):null,network:o?dW(e,o)?.network:null}}};var mC=yW(void 0);function Fp(t){let{manager:e}=gW(),o=ne.use.isActiveTab(),n=H().use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=k(),l=new es(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=k(),u=Eu(a()),d=k().blockchains(),f=k().tokens(),h=k().swappers(),g=k().fetchStatus,m=wo().resetLanguage,C=We().getNotifications(),y=We().clearNotifications,S=dC(),{fromBlockchain:T,toBlockchain:w,fromToken:v,toToken:A,inputAmount:N}=H()(),b={isActiveTab:o,setCurrentTabAsActive:Po.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async x=>c(x)},meta:{blockchains:d,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:m,notifications:{list:C,clearAll:y},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:v?{symbol:v.symbol,blockchain:v.blockchain,address:v.address}:null,toBlockchain:w?.name??null,toToken:A?{symbol:A.symbol,blockchain:A.blockchain,address:A.address}:null,requestAmount:N},updateQuoteInputs:S}};return hW.createElement(mC.Provider,{value:b},t.children)}i(Fp,"WidgetInfo");function fC(){let t=SW(mC);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(fC,"useWidget");function Un(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=cC(),{handleLoadCustomFont:a}=pC();return Up(()=>{r().catch(console.log)},[]),Up(()=>{n&&a(n)},[n]),kW(()=>{Pu({API_KEY:o?.apiKey||ri,BASE_URL:o?.apiUrl||ou})},[o.apiKey,o.apiUrl]),Up(()=>{t.config?.signers?.customSolanaRPC&&CW("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Op.createElement(Ja,{config:o,onUpdateState:e},Op.createElement(uC,{apiKey:o.apiKey},Op.createElement(Fp,null,t.children)))}i(Un,"WidgetProvider");function gC(t){let e=t.config?.externalWallets;return ts.createElement(Ai,null,e?ts.createElement(Jo,null):ts.createElement(Un,{config:t.config??on},ts.createElement(Jo,null)))}i(gC,"Refuel");import os from"react";function hC(t){let e=t.config?.externalWallets;return os.createElement(Ai,null,e?os.createElement(Jo,null):os.createElement(Un,{config:t.config??on},os.createElement(Jo,null)))}i(hC,"Widget");function yC(){let{on:t,off:e}=we;return{on:t,off:e}}i(yC,"useWidgetEvents");var dte={DerivationPath:rr,Namespaces:tr,Detached:nr,isOnDerivationPath:ar,isOnNamespace:ir,isOnDetached:Ao};export{_ee as EventSeverity,sn as MainEvents,Gee as Networks,jee as PendingSwapNetworkStatus,ks as QuoteEventTypes,gC as Refuel,Dee as RouteEventType,cs as SUPPORTED_FONTS,dte as StatefulConnect,$ee as StepEventType,Fee as StepExecutionBlockedEventStatus,Oee as StepExecutionEventStatus,bd as SwapModeContext,ot as UI_ID,ws as UiEventTypes,Ts as WalletEventTypes,Qee as WalletEvents,Vee as WalletTypes,hC as Widget,sn as WidgetEvents,Un as WidgetProvider,Ja as WidgetWallets,gl as customizedThemeTokens,ss as pickProviderVersionWithFallbackToLegacy,zee as readAccountAddress,Ro as useStatefulConnect,vt as useWalletList,Ji as useWallets,fC as useWidget,yC as useWidgetEvents,wk as widgetEventEmitter};
|
|
1
|
+
var xC=Object.defineProperty;var i=(t,e)=>xC(t,"name",{value:e,configurable:!0});import{EventSeverity as Eee,RouteEventType as Iee,StepEventType as Aee,StepExecutionBlockedEventStatus as Nee,StepExecutionEventStatus as Bee}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as Mee}from"@rango-dev/wallets-core/legacy";import{useWallets as Xi,Events as Pee}from"@rango-dev/wallets-react";import{Networks as Dee,WalletTypes as $ee}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as Oee}from"rango-types";import{Divider as Gk}from"@rango-dev/ui";import po,{useEffect as Vk,useRef as Kk,useState as kd}from"react";import{WalletState as bC}from"@rango-dev/ui";import{useWallets as EC}from"@rango-dev/wallets-react";import{useReducer as IC}from"react";function Op(t){return!!t.derivationPath}i(Op,"isStateOnDerivationPathStep");function Up(t){return!!t.namespace}i(Up,"isStateOnNamespace");var Zr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function zp(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 Zr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Zr;default:throw new Error("Action hasn't been defined.")}}i(zp,"reducer");function Ro(){let{state:t,disconnect:e,connect:o}=EC(),[n,r]=IC(zp,Zr),a=i(async(m,f,h)=>{r({type:"reset"});try{let g=f?.map(d=>({...d,network:void 0}));return await o(m,g),{status:"connected"}}catch(g){let d=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(d,{cause:g})}},"runConnect"),s=i(async(m,f)=>{if(m.state===bC.DISCONNECTED){let g=!!m.isHub,d=g?m.properties?.find(y=>y.name==="namespaces")?.value:m.needsNamespace,S=g?m.properties?.find(y=>y.name==="derivationPath")?.value:m.needsDerivationPath;if(!d?.data?.length)return await a(m.type,void 0,f);if(d?.data.length&&d.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:m,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(d?.data.length===1&&d.data[0]){if(S){let y=d.data[0];return r({type:"needsDerivationPath",payload:{providerType:m.type,providerImage:m.image,namespace:y.value}}),{status:"derivation-path"}}return await a(m.type,d?.data?.map(y=>({namespace:y.value})),f)}}if(m.isHub){let g=m.properties?.find(d=>d.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:m,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(m),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(m,f)=>{let h=!!m.isHub,g=h?m.properties?.find(k=>k.name==="namespaces")?.value:m.needsNamespace,d=h?m.properties?.find(k=>k.name==="derivationPath")?.value:m.needsDerivationPath,S=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(S&&d)return r({type:"needsDerivationPath",payload:{providerType:m.type,providerImage:m.image,namespace:y}}),{status:"derivation-path"};if(!Up(n))throw new Error("Something went wrong on handling namespace. Please retry.");let T=f.map(k=>({namespace:k}));return r({type:"detached",payload:{targetWallet:m,selectedNamespaces:T??null}}),{status:"Detached"}},"handleNamespace"),l=i(async(m,f)=>{if(!f)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Op(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let h=n.derivationPath.providerType,d=[{namespace:n.derivationPath.namespace,derivationPath:f}],y=!!m.isHub?m.properties?.find(T=>T.name==="namespaces")?.value:m.needsNamespace;return y?.data&&y.data.length>1?(r({type:"detached",payload:{targetWallet:m,selectedNamespaces:d??null,derivationPath:f}}),{status:"Detached"}):await a(h,d)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async m=>{let f=t(m.type);return f.connected||f.connecting?(await e(m.type),Ao(p)?(r({type:"needsNamespace",payload:{targetWallet:m}}),{status:"namespace"}):{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:p,resetState:m=>{r(m==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Ro,"useStatefulConnect");import{WalletState as Es}from"@rango-dev/ui";import{useWallets as FT}from"@rango-dev/wallets-react";import{detectMobileScreens as OT,KEPLR_COMPATIBLE_WALLETS as UT,WalletTypes as Zn}from"@rango-dev/wallets-shared";import{useCallback as zT,useEffect as HT}from"react";import LT,{createContext as PT,useContext as _T,useEffect as DT,useRef as $T}from"react";import{create as WT}from"zustand";import{persist as MT}from"zustand/middleware";import{allProviders as AC}from"@rango-dev/provider-all";var ns=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},en=new ns;import{defineVersions as Qp,pickVersion as qp,Provider as rs}from"@rango-dev/wallets-core";function Gp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=is(a);return s instanceof rs?s.id===n:s.config.type===n});r?o.push(r):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else n instanceof rs?o.push(Qp().version("1.0.0",n).build()):o.push(Qp().version("0.0.0",n).build())}),o}return t}i(Gp,"matchAndGenerateProviders");function is(t){try{return qp(t,"1.0.0")[1]}catch{return qp(t,"0.0.0")[1]}}i(is,"pickProviderVersionWithFallbackToLegacy");function Vp(t){return t.map(o=>is(o)).map(o=>o instanceof rs?o.id:o.config.type)}i(Vp,"configWalletsToWalletName");function Jr(t,e){return e.find(o=>o.name===t)?.displayName}i(Jr,"getBlockchainDisplayNameFor");function ht(t,e){return e.find(o=>o.name===t)?.shortName}i(ht,"getBlockchainShortNameFor");function Kp(t,e){return e.find(o=>o.name===t)?.logo}i(Kp,"getBlockchainImage");function Hn(t,e){return e.find(o=>o.id===t)?.title}i(Hn,"getSwapperDisplayName");function No(t,e){return e.find(o=>o.name===t)??null}i(No,"findBlockchain");function as(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(as,"isTokenNative");function yt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(yt,"createTokenHash");function tn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(tn,"isValidTokenAddress");function Qn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=yt(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{let p=o.tokensMapByBlockchainName[l];!c.has(l)&&p&&a(p)})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded&&o.tokensMapByBlockchainName[c]?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=yt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Qn,"matchTokensFromConfigWithMeta");function Rr(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(Rr,"getSupportedBlockchainsFromConfig");function Xp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Xp,"makeProvidersOptionsFromConfig");var on={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"}},NC={clientUrl:void 0},BC={liquiditySources:void 0};function jp(t){let e=Xp(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 AC(o).map(a=>a())}i(jp,"generateProviders");var Yp=i((t,e,o)=>{let n=jp({...on,...t});return{config:{...on,...t},iframe:NC,campaignMode:BC,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=Qn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=Qn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});en.set("supportedSourceTokens",l),en.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=jp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Xp(a);return Gp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Zp}from"rango-types";var Jp=[Zp.EVM,Zp.SOLANA],ei="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as VC}from"rango-sdk";import{UI_ID as WC}from"@rango-dev/ui";var ti="c6381a79-2817-4602-83bf-6a641a409e32",Rp="https://api.rango.exchange",eu="https://explorer.rango.exchange",Re={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...WC};import{BlockchainCategories as FC,WalletState as lt}from"@rango-dev/ui";import{legacyReadAccountAddress as OC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as UC,getCosmosExperimentalChainInfo as zC,isEvmAddress as HC,KEPLR_COMPATIBLE_WALLETS as LW,Networks as wu}from"@rango-dev/wallets-shared";import rn from"bignumber.js";import{isCosmosBlockchain as QC}from"rango-types";import MC from"bignumber.js";var pe=new MC(0);import{WalletTypes as LC}from"@rango-dev/wallets-shared";var Bo="~",tu=[LC.LEAP];import{BlockchainCategories as ls,WalletState as $C}from"@rango-dev/ui";import{TransactionType as oi}from"rango-sdk";var ou="Roboto",ss=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];function nn(t){return Array.from(new Set(t))}i(nn,"removeDuplicateFrom");function ni(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(ni,"debounce");function st(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(st,"containsText");function iu(t,e){return t.toLowerCase()===e.toLowerCase()}i(iu,"exactText");function au(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(au,"startWithText");var B=i(()=>document.getElementById(Re.SWAP_BOX_ID),"getContainer"),Wo=i(()=>document.getElementById(Re.EXPANDED_BOX_ID),"getExpanded");function su(t,e,o){let n=!!e&&iu(e,t),r=!!o&&iu(o,t);return n!==r?n?-1:1:0}i(su,"compareExactMatchText");function cs(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(cs,"compareContainsText");function ps(t,e,o){let n=!!e&&au(e,t),r=!!o&&au(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ps,"compareStartWithText");function lu(t,e,o){if(!o)return 0;let n=su(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=su(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ps(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=cs(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ps(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=cs(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ps(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=cs(o,t.address,e.address);if(r!==0)return r}return 0}i(lu,"compareWithSearchFor");var ri=i((t,e)=>{switch(e){case ls.ALL:return!0;case ls.UTXO:return t===oi.TRANSFER;case ls.OTHER:return t!==oi.TRANSFER&&t!==oi.COSMOS&&t!==oi.EVM;default:return t===e}},"isBlockchainTypeInCategory"),cu=i(t=>ss.find(o=>o.value===t)?.url,"getFontUrlByName");function pu(t,e){let o=!!t.find(n=>n.state===$C.CONNECTED);return e===!1&&o}i(pu,"isSingleWalletActive");function uu(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(uu,"memoizedResult");function du(t,e){let o=new Set;return e.forEach(n=>{o.add(n.blockchain)}),t.filter(n=>o.has(n.name))}i(du,"filterBlockchainsWithAtLeastOneToken");import{BigNumber as Tu}from"bignumber.js";function mu(t){return t.replace(/^0+(?=\d)/g,"")}i(mu,"removeLeadingZeros");function fu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(fu,"ensureLeadingZeroForDecimal");function gu(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(gu,"formatThousandsWithCommas");function hu(t){return t.replace(/\s+/g,"-")}i(hu,"replaceSpacesWithDash");function yu(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(yu,"stripTrailingZeros");function ii(t){return/^0+(?:\.0+)?$/.test(t)}i(ii,"isZeroValue");function Su(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(Su,"isValidCurrencyFormat");function Cu(t){return/\d+$/.test(t)}i(Cu,"isColorKeyOverridden");var qn=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),P=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Tu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Tu(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 ai=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Pt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Gn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ku(t){return ii(t)?"0":yu(t)}i(ku,"sanitizeInputAmount");function Vn(t,e){return GC(t,e)?lt.PARTIALLY_CONNECTED:e.connected?lt.CONNECTED:e.connecting?lt.CONNECTING:e.installed?lt.DISCONNECTED:lt.NOT_INSTALLED}i(Vn,"getWalletConnectionStatus");function vu(t,e,o,n){return o.filter(r=>!tu.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:m,properties:f,isHub:h}=e(r),g=nn(u.map(S=>S.type)),d=Vn(e(r),t(r));return{title:a,image:s,link:UC(c),state:d,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:m,properties:f,isHub:h}})}i(vu,"mapWalletTypesToWalletInfo");function Kn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Kn,"walletAndSupportedChainsNames");function ds(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(f=>f.chain===l)){let f={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(f)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=OC(l),m=c.length>0,f=c.includes(u),h=u===wu.Unknown;if(m&&!f&&!h)return;let d=u===wu.Unknown&&HC(p);if(h&&!d)return;o.includes(u)||d?r?s(u,p.toLowerCase(),r):c.filter(T=>o.includes(T)).forEach(T=>{s(T,p.toLowerCase())}):s(u,p)}),a}i(ds,"prepareAccountsForWalletStore");function Mo(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((p,u)=>{let m=p.from.blockchain,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(Mo,"getQuoteChains");function jn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(jn,"isAccountAndWalletMatched");var xu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?us(n.usdValue,n.decimals):pe.toFixed();return o.plus(r)},new rn(pe));return qC(e.toString())},"calculateWalletUsdValue");function qC(t){let e=t.toString().split(".");return e[0]&&(e[0]=gu(e[0])),e.join(".")}i(qC,"numberWithThousandSeparator");var ci=i((t,e)=>{let o=zC(Object.entries(t).map(([,n])=>n).filter(QC));return o&&!!o[e]?.experimental},"isExperimentalChain");function us(t,e){return new rn(t).shiftedBy(-e).toFixed()}i(us,"representAmountInNumber");function pi(t){if(!t)return null;let e=us(t.amount,t.decimals),o=t.usdValue?us(t.usdValue,t.decimals):null,n=P(e,8,8),r=o?P(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(pi,"formatBalance");function bu(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new rn(t.usdValue).shiftedBy(-t.decimals):pe,n=e&&e.usdValue?new rn(e.usdValue).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new rn(t.amount).shiftedBy(-t.decimals):pe,n=e&&e.amount?new rn(e.amount).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(bu,"compareTokenBalance");function qt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(qt,"areTokensEqual");function Eu(t){return t.sort((e,o)=>+(o.state===lt.CONNECTED)-+(e.state===lt.CONNECTED)||+(o.state===lt.PARTIALLY_CONNECTED)-+(e.state===lt.PARTIALLY_CONNECTED)||+(o.state===lt.DISCONNECTED||o.state===lt.CONNECTING)-+(e.state===lt.DISCONNECTED||e.state===lt.CONNECTING))}i(Eu,"sortWalletsBasedOnConnectionState");function lo(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(lo,"getConciseAddress");function Iu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Iu,"getAddress");var Au=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Nu(t){return t.map(e=>e.state).join("-")}i(Nu,"hashWalletsState");function Bu(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(Bu,"filterBlockchainsByWalletTypes");function Wu(t,e){return e===FC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(ri(n,e))return!0;return!1})}i(Wu,"filterWalletsByCategory");function GC(t,e){if(!t.isHub||!t.needsNamespace||!e.connected)return!1;let n=t.needsNamespace.data.filter(r=>!r.unsupported);return t.needsNamespace.selection==="multiple"&&n.some(r=>!e.namespaces?.get(r.value)?.connected)}i(GC,"checkIsWalletPartiallyConnected");var ms={API_KEY:ti};function Gt(t){return ms[t]||""}i(Gt,"getConfig");function Mu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),ms=e,ms}i(Mu,"initConfig");var Lu=20,Pu=25,fs="theme-widget",gs=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>qt(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>qt(a,t));let r=n.isExcluded;return!r&&!o||r&&o}}}return o},"isTokenExcludedInConfig"),hs=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),_u=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var ui,ct=i(()=>ui||(ui=new VC(Gt("API_KEY"),Gt("BASE_URL")),ui),"httpService");import{i18n as $u}from"@lingui/core";var di=[.5,1,3],mi=1,an=5,Xn=30,fi=0;var Ye=(a=>(a[a.NO_RESULT=0]="NO_RESULT",a[a.REQUEST_FAILED=1]="REQUEST_FAILED",a[a.REQUEST_CANCELED=2]="REQUEST_CANCELED",a[a.BRIDGE_LIMIT=3]="BRIDGE_LIMIT",a[a.INSUFFICIENT_SLIPPAGE=4]="INSUFFICIENT_SLIPPAGE",a))(Ye||{});import{WidgetEvents as Du}from"@rango-dev/queue-manager-rango-preset";var ys=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ys||{}),Ss=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Ss||{}),Cs=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(Cs||{}),sn=(a=>(a[a.RouteEvent=Du.RouteEvent]="RouteEvent",a[a.StepEvent=Du.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(sn||{});function gi(t,e){let o=t.map(a=>a.swapperGroup),n=[];return nn(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(gi,"getUniqueSwappersGroups");function Fu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Fu,"sortLiquiditySourcesByGroupTitle");function et(t,e){return e?.[t]==="hidden"}i(et,"isFeatureHidden");function ln(t,e){return e?.[t]==="enabled"}i(ln,"isRoutingEnabled");var Ou=i((t,e,o)=>et("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function cn(t){return t==fi?{type:"error",message:$u.t("Slippage must be greater than or equal to 0.01")}:t>an&&t<=Xn?{type:"warning",message:$u.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(cn,"getSlippageValidation");var Uu=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=Rr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>Jp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",m=en.get(u);m?.length||(m=Qn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),en.set(u,m)),m=Ou(m,s,a.features);let f=e().blockchains({type:o.type});return m.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(d=>d.name===g.blockchain)?!1:o.searchFor?!!(st(g.symbol,o.searchFor)||st(g.address||"",o.searchFor)||st(g.name||"",o.searchFor)):!0).sort((g,d)=>{let S=e().isTokenPinned(g,o.type),y=e().isTokenPinned(d,o.type);if(S!==y)return S?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(g),A=o.getBalanceFor(d),b=bu(I,A);if(b!==0)return b}let T=l.get(g.blockchain),k=l.get(d.blockchain),w=as(g,T),x=as(d,k);if(w!==x)return w?-1:1;if(g.isPopular!==d.isPopular)return g.isPopular?-1:1;if(o.searchFor){let I=lu(g,d,o.searchFor);if(I)return I}return g.isSecondaryCoin!==d.isSecondaryCoin?g.isSecondaryCoin?1:-1:T&&k?T.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=yt(o),s=n.get(a);return s||(s=r.find(c=>yt(c)===a)),s},findNativeToken:o=>{let n=o.feeAssets[0];return e().findToken({blockchain:o.name,address:n.address,symbol:n.symbol})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>qt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(Fu)},fetch:async()=>{try{let{routing:o}=e().config,n=ln("enableCentralizedSwappers",o),r=await ct().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=r.popularTokens,p=r.swappers.filter(m=>m.enabled);r.blockchains.sort((m,f)=>m.sort-f.sort).forEach(m=>{m.enabled&&a.set(m.name,m)}),r.tokens.forEach(m=>{let f=yt(m);c[m.blockchain]||(c[m.blockchain]=[]),s.set(f,m),c[m.blockchain]?.push(f)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as KC,Catalonia as jC,Chinese as zu,Denmark as XC,English as YC,Finland as ZC,French as JC,German as RC,Greece as eT,Hungary as tT,India as oT,Indonesian as nT,Italian as rT,Japanese as iT,Korea as aT,Lithuania as sT,Malay as lT,Netherlands as cT,Pakistan as pT,Philippines as uT,Poland as dT,Portuguese as mT,Russian as fT,SaudiArabia as gT,Serbia as hT,Slovakia as yT,SouthAfrica as ST,Spanish as CT,Swahili as TT,Swedish as kT,Thai as wT,Turkish as vT,Ukrainian as xT,Vietnamese as bT}from"@rango-dev/ui";var Hu=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:ST},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:gT},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:KC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:jC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:zu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:zu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:XC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:cT},{title:"English",label:"English",local:"en",SVGFlag:YC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:uT},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:ZC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:JC},{title:"German",label:"Deutsch",local:"de",SVGFlag:RC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:eT},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:oT},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:tT},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:nT},{title:"Italian",label:"Italiana",local:"it",SVGFlag:rT},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:iT},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:aT},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:sT},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:lT},{title:"Polish",label:"Polski",local:"pl",SVGFlag:dT},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:mT},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:fT},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:hT},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:yT},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:CT},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:TT},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:kT},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:wT},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:vT},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:xT},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:pT},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:bT}],pn="en";var Qu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:mi,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],quoteTokensRate:"default",changeQuoteTokensRate:()=>t(o=>({quoteTokensRate:o.quoteTokensRate==="default"?"reversed":"default"})),addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,c)=>{let l=s===o,p=c<=9;return l&&p}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=nn(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=et("theme",n),s=et("language",n),c=et("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||pn},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||pn}})},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=Rr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import bs from"bignumber.js";import ET from"mitt";var we=ET(),IT={on:we.on,off:we.off};var qu=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 Gu from"bignumber.js";function Vt(t){return`${t.blockchain}${Bo}${t.address}${Bo}${t.symbol}`}i(Vt,"createAssetKey");function Vu(t,e){return`${Vt(e)}${Bo}${t}`}i(Vu,"createBalanceKey");function Yn(t){let[e,o,n]=t.split(Bo);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Yn,"extractAssetFromBalanceKey");function ks(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Vt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Gu(r??pe).multipliedBy(o[s].amount).toString():""})})}),o}i(ks,"computeNextBalancesWithNewPrices");function ws(t,e){let o={};return t.balances?.forEach(n=>{let r=Vu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Gu(c??pe).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(ws,"createBalanceStateForNewAccount");function vs(t,e){for(let o in e){let n=Yn(o);if(n){let r=Vt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(vs,"updateAggregatedBalanceStateForNewAccount");function AT(t,e){let o=Yn(e);if(!o)return t;let n=Vt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(AT,"removeBalanceFromAggregatedBalance");function xs(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=Yn(l);if(!p)return;!!n.find(m=>Vu(m.address,{address:p.address,blockchain:m.chain,symbol:p.symbol})===l)?a=AT(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(xs,"computeNextStateAfterWalletBalanceRemoval");function NT(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(NT,"matchWalletDetailsWithConnectedWallet");var BT=uu(),Ku=qu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>jn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>jn(s,a))?{...a,loading:!1,error:!1,explorerUrl:NT(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>jn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>jn(c,l)));if(s.length>0){let c=s.map(l=>{let p=!a.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:p,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!c.some(m=>m.walletType===u.walletType&&m.chain===u.chain)),...c]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=r.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address]?.push(...a[p.chain]||[]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await ct().getMultipleTokenBalance({assets:p.map(({symbol:m,address:f,blockchain:h})=>({symbol:m,address:f,blockchain:h})),walletAddress:l});if(u){let m=e()._balances,f=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},d={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};ks(d,g,m);let S=ws(g,e);f=vs(f,S),m={...m,...S}}),t(h=>({_balances:{...h._balances,...m},_aggregatedBalances:f}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{let a=o[0];a&&(we.emit("walletEvent",{type:"connect",payload:{walletType:a.walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o))},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=xs(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||!o[0])return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await ct().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(m=>{if(m.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};ks(f,m,l);let{_balances:h,_aggregatedBalances:g}=xs(f,r,{chains:[m.blockChain]});if(p=g,l=h,!e().connectedWallets.find(S=>S.walletType===r&&S.address===m.address&&S.chain===m.blockChain))return;let d=ws(m,e);p=vs(p,d),l={...l,...d}}),t(m=>({_balances:{...m._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let m=c.filter(f=>f.failed).map(f=>({chain:f.blockChain,walletType:r,address:f.address}));m.length>0&&await e().fetchMainTokensBalances(m,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=Vt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0||!a[0])return null;let s=a[0];if(a.length===1&&n[s])return n[s];let c=n[a[0]];if(!c)return null;let l=c;return a.forEach(p=>{let u=n[p];if(!u)return;let m=new bs(u.amount),f=new bs(l.amount);m.isGreaterThan(f)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(Bo);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>BT(()=>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=Yn(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),m=l?.amount?new bs(l.amount).shiftedBy(-l.decimals):pe;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:m.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function ju(t){return WT()(MT((...e)=>({...Ku(...e),...Uu(...e),...Qu(...e),...Yp(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(ju,"createAppStore");var Xu=PT(null);function C(){let t=_T(Xu);if(DT(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(C,"useAppStore");function Yu(t){let e=$T();return e.current||(e.current=ju(t.config)),LT.createElement(Xu.Provider,{value:e.current},t.children)}i(Yu,"AppStoreProvider");function vt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=C(),{state:r,getWalletInfo:a}=FT(),s=C().blockchains(),{handleDisconnect:c}=Ro(),l=Vp(n()),p=vu(r,a,l,e);p=OT()?p.filter(d=>d.showOnMobile!==!1&&r(d.type).installed):p;let u=Eu(p),m=i(d=>!o.find(S=>S.walletType===d&&S.chain===e),"isExperimentalChainNotAdded"),f=zT(()=>{let d=p?.filter(S=>S.state===Es.CONNECTING)||[];for(let S of d)c(S)},[Nu(p)]);HT(()=>()=>{f()},[]);let h=i(d=>{let S=d.find(T=>T.type===Zn.DEFAULT);return!S||S.state===Es.NOT_INSTALLED?!1:d.filter(T=>T.state!=Es.NOT_INSTALLED&&![Zn.DEFAULT,Zn.WALLET_CONNECT_2,Zn.LEDGER].includes(T.type)&&a(T.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),g=i((d,S,y)=>ci(y,S)&&m(d)&&!UT.includes(d)||d==Zn.DEFAULT&&!h(p),"shouldExcludeWallet");return{list:u.filter(d=>!g(d.type,e??"",s)),terminateConnectingWallets:f}}i(vt,"useWalletList");import{Modal as VT}from"@rango-dev/ui";import KT from"react";import{create as GT}from"zustand";var Zu="rango-widget";var Jn=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(Zu),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 qT=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"),co=qT;var oe=co(GT()((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})}}))),Po=new Jn({onInit:()=>oe.setState({tabManagerInitiated:!0}),onClaim:()=>oe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>oe.setState({isActiveTab:!1})});function ee(t){let{watermark:e}=oe();return KT.createElement(VT,{hasWatermark:e==="FULL",...t},t.children)}i(ee,"WatermarkedModal");import{i18n as mn}from"@lingui/core";import{Alert as sk,Button as lk,Divider as fn,Image as ck,MessageBox as pk,RadioRoot as uk,WalletImageContainer as dk}from"@rango-dev/ui";import ae,{useEffect as mk,useMemo as fk,useState as gk}from"react";import{i18n as ZT}from"@lingui/core";import{Typography as id}from"@rango-dev/ui";import un from"react";function hi(t,e){return t.find(o=>o.name===e)?.logo}i(hi,"getBlockchainLogo");import{darkTheme as jT,Image as XT,styled as Kt,Typography as YT}from"@rango-dev/ui";var yi=Kt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${jT} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),Si=Kt("div",{display:"flex",gap:"$8",alignItems:"center"}),Ru=Kt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),ed=Kt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),td=Kt("div",{display:"flex",gap:"$6",alignItems:"center"}),od=Kt("div",{paddingLeft:"48px"}),nd=Kt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),rd=Kt(YT,{maxWidth:"100px"}),Ci=Kt(XT,{variants:{disabled:{true:{opacity:"0.5"}}}});function Ti(t){let{namespace:e}=t,o=C().blockchains();return un.createElement(yi,{unsupported:!0},un.createElement(Si,null,un.createElement(Ci,{src:hi(o,e.id),size:40,disabled:!0}),un.createElement(ed,null,un.createElement(id,{variant:"label",size:"large"},e.label),un.createElement(id,{variant:"body",size:"xsmall"},ZT.t("(Currently not supported)")))))}i(Ti,"NamespaceUnsupportedItem");import{Checkbox as rk,Radio as ik}from"@rango-dev/ui";import Bs from"react";import{i18n as Ns}from"@lingui/core";import{ChevronDownIcon as RT,ChevronUpIcon as ek,Divider as tk,Typography as Rn}from"@rango-dev/ui";import Ne,{useEffect as ok,useState as nk}from"react";import{Image as sd,Tooltip as ld,Typography as JT}from"@rango-dev/ui";import _t from"react";import{styled as ad}from"@rango-dev/ui";var Is=ad("div",{display:"flex",alignItems:"center",padding:0,margin:0}),ki=ad("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 As=3;function cd(t){let{chains:e}=t;return _t.createElement(Is,{id:"widget-supported-chains-container"},e.slice(0,As).map((o,n)=>_t.createElement(ld,{key:o.name,container:B(),side:"bottom",align:"start",content:o.name,sideOffset:4},_t.createElement(ki,{firstItem:n===0},_t.createElement(sd,{src:o.logo,size:15})))),e.length>As&&_t.createElement(ld,{container:B(),side:"bottom",align:"start",sideOffset:4,content:_t.createElement(Is,null,e.map((o,n)=>_t.createElement(ki,{key:o.name,firstItem:n===0},_t.createElement(sd,{src:o.logo,size:15}))))},_t.createElement(ki,null,_t.createElement(JT,{variant:"body",size:"xsmall"},"+",e.length-As))))}i(cd,"SupportedChainsList");function _o(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=nk(!1),p=C().blockchains();ok(()=>l(!1),[o]);let u=e.getSupportedChains(p),m=!o&&!r&&u.length>1;return Ne.createElement(yi,{hasError:!!o,clickable:!!s,onClick:s},Ne.createElement(Si,null,Ne.createElement(Ci,{src:hi(p,e.id),size:40}),Ne.createElement(Ru,{showSupportedChains:m||r||!!o},Ne.createElement(td,null,Ne.createElement(Rn,{variant:"label",size:"large"},e.label),r&&Ne.createElement(Rn,{variant:"body",size:"small",color:"success500"},Ns.t("Connected")),!!o&&Ne.createElement(Rn,{variant:"body",size:"small",color:"error500"},Ns.t("Connection failed"))),m&&Ne.createElement(cd,{chains:u}),r&&Ne.createElement(rd,{variant:"body",size:"small",color:"neutral700"},a),o&&Ne.createElement(nd,{onClick:()=>l(f=>!f)},Ne.createElement(Rn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},Ns.t("See why")),c?Ne.createElement(ek,{size:12,color:"gray"}):Ne.createElement(RT,{size:12,color:"gray"}))),n),!!o&&c&&Ne.createElement(Ne.Fragment,null,Ne.createElement(tk,{size:4}),Ne.createElement(od,null,Ne.createElement(Rn,{variant:"body",size:"small",color:"neutral700"},o))))}i(_o,"NamespaceItem");function pd(t){let{onClick:e,type:o,namespace:n}=t;return Bs.createElement(_o,{namespace:n,onClick:e,suffix:o==="radio"?Bs.createElement(ik,{value:n.value}):Bs.createElement(rk,{checked:t.value})})}i(pd,"NamespaceListItem");import{Button as ak,styled as ud}from"@rango-dev/ui";var wi=ud("ul",{padding:0,paddingBottom:"$20",margin:0}),dn=ud(ak,{minHeight:"$40"});function er(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=C().blockchains(),[l,p]=gk([]),u=fk(()=>a?.data.filter(d=>!d.unsupported),[e?.type]),m=i(d=>{p(r?[d]:S=>S.includes(d)?S.filter(y=>y!==d):S.concat(d))},"onSelect"),f=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");f?p([]):u&&p(u.map(d=>d.value))},"onSelectAll"),g=i(d=>r?ae.createElement(uk,{value:l?.[0]},d):ae.createElement(ae.Fragment,null,d),"wrapRadioRoot");return mk(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let d=u.filter(S=>S.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(d.map(S=>S.value))}else p(u.map(d=>d.value))},[]),ae.createElement(ae.Fragment,null,ae.createElement(pk,{type:"info",title:mn.t("Connect {wallet}",{wallet:e.title}),description:mn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:ae.createElement(dk,null,ae.createElement(ck,{src:s,size:45}))}),r?ae.createElement(ae.Fragment,null,ae.createElement(fn,{size:20,className:"_initial_namespace_list_header_alert_top_divider"}),ae.createElement(sk,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:mn.t("This wallet can only connect to one chain at a time. ")}),ae.createElement(fn,{size:30,className:"_initial_namespace_list_header_alert_bottom_divider"})):ae.createElement(ae.Fragment,null,ae.createElement(fn,{size:30,className:"_initial_namespace_list_header_button_top_divider"}),ae.createElement(lk,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?mn.t("Deselect all"):mn.t("Select all")),ae.createElement(fn,{size:10,className:"_initial_namespace_list_header_button_bottom_divider"})),ae.createElement(wi,null,g(ae.createElement(ae.Fragment,null,a?.data.map((d,S,y)=>ae.createElement(ae.Fragment,{key:d.id},d.unsupported?ae.createElement(Ti,{namespace:d}):ae.createElement(pd,{value:l.includes(d.value),namespace:d,type:r?"radio":"checkbox",onClick:()=>m(d.value)}),S!==y.length-1&&ae.createElement(fn,{size:10})))))),ae.createElement(fn,{size:20}),ae.createElement(dn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},mn.t("Connect")))}i(er,"Namespaces");import{i18n as tr}from"@lingui/core";import{Alert as wk,Button as vk,Divider as gn,Image as xk,MessageBox as bk,WalletImageContainer as Ek}from"@rango-dev/ui";import{useWallets as Ik}from"@rango-dev/wallets-react";import de from"react";import{styled as hk}from"@rango-dev/ui";var dd=hk("div",{display:"flex",justifyContent:"end"});import{i18n as Ws}from"@lingui/core";import{Button as yk,Spinner as Sk}from"@rango-dev/ui";import Ms,{useLayoutEffect as Ck,useRef as Tk,useState as kk}from"react";function md(t){let{namespace:e,initialConnect:o,disabled:n,state:r,handleConnect:a,handleDisconnect:s}=t,[c,l]=kk(null),p=Tk(!1);Ck(()=>{o&&!p.current&&u()},[]);let u=i(async g=>{try{p.current=!0,await a(g)}catch(d){l(d)}finally{p.current=!1}},"handleConnectNamespace"),m=i(async()=>{l(null),r.connected?await s():u({shouldAskForDerivationPath:!0})},"handleButtonClick"),f=i(()=>{let g=r.accounts?.[0]?.split(":"),d=g?.[g.length-1];return!r.connected||!d?null:lo(d)},"getConnectedAddress"),h=i(()=>r.connected?Ws.t("Disconnect"):c?Ws.t("Try again"):Ws.t("Connect"),"getButtonText");return Ms.createElement(_o,{namespace:e,connected:r.connected,error:c?.message,address:f(),suffix:r.connecting?Ms.createElement(Sk,{color:"info"}):Ms.createElement(yk,{id:"widget-name-space-connect-btn",variant:"ghost",type:r.connected?"error":"primary",size:"xsmall",onClick:async()=>m(),disabled:n},h())})}i(md,"NamespaceDetachedItem");function or(t){let{value:e,selectedNamespaces:o,onConfirm:n,confirmText:r=tr.t("Done"),onDisconnectWallet:a,navigateToDerivationPath:s}=t,{targetWallet:c}=e,{connect:l,disconnect:p,state:u}=Ik(),m=c.type,f=u(m),h=c.properties?.find(w=>w.name==="namespaces"),g=c.properties?.find(w=>w.name==="derivationPath"),d=h?.value.selection==="single",S=i(async(w,x)=>{d&&await p(m),g&&x?.shouldAskForDerivationPath?s(w):await l(m,[{namespace:w,network:"",derivationPath:x?.derivationPath??void 0}])},"handleConnectNamespace"),y=i(async w=>{await p(m,[w])},"handleDisconnectNamespace"),T=i(()=>d?de.createElement(de.Fragment,null,de.createElement(gn,{size:20,className:"_detached_namespace_list_header_alert_top_divider"}),de.createElement(wk,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:tr.t("This wallet can only connect to one chain at a time.")}),de.createElement(gn,{size:30,className:"_detached_namespace_list_header_alert_bottom_divider"})):de.createElement(de.Fragment,null,de.createElement(gn,{size:30,className:"_detached_namespace_list_header_button_top_divider"}),de.createElement(dd,null,de.createElement(vk,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:f.connecting||!f.connected,onClick:a},tr.t("Disconnect wallet"))),de.createElement(gn,{size:16,className:"_detached_namespace_list_header_button_bottom_divider"})),"renderNamespaceListHeader"),k=i(w=>{if(w.unsupported)return de.createElement(Ti,{namespace:w});let x=o?.find(b=>b.namespace===w.value),I=f.namespaces?.get(w.value);if(!I)throw new Error(`State for ${w.value} was not found!`);let A=d&&f.connecting;return de.createElement(md,{namespace:w,initialConnect:!!x,disabled:A,state:I,handleConnect:async b=>S(w.value,{derivationPath:x?.derivationPath,shouldAskForDerivationPath:b?.shouldAskForDerivationPath}),handleDisconnect:async()=>y(w.value)})},"renderNamespaceItem");return de.createElement(de.Fragment,null,de.createElement(bk,{type:"info",title:tr.t("Connect {wallet}",{wallet:c.type}),description:tr.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:de.createElement(Ek,null,de.createElement(xk,{src:c.image,size:45}))}),T(),de.createElement(wi,{id:"widget-detached-namespace-list"},c.needsNamespace?.data.map((w,x,I)=>de.createElement(de.Fragment,{key:w.id},k(w),x!==I.length-1&&de.createElement(gn,{size:10})))),de.createElement(gn,{size:20}),de.createElement(dn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:n},r))}i(or,"Detached");import{i18n as hn}from"@lingui/core";import{Divider as Wk,Image as Mk,MessageBox as Lk,Select as Pk,TextField as _k}from"@rango-dev/ui";import xt,{useEffect as Dk,useState as gd}from"react";import{namespaces as Ak}from"@rango-dev/wallets-shared";var vi={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ls(t){let e=t?Ak[t]?.derivationPaths:null;return e?[...e,vi]:[]}i(Ls,"getDerivationPaths");import{Button as Nk,styled as Ps,Typography as Bk}from"@rango-dev/ui";var fd=Ps("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),_s=Ps(Bk,{paddingLeft:"$10"}),Ds={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},i_=Ps(Nk,{minHeight:"$40"});var hd="0";function nr(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=gd(null),[c,l]=gd(hd),p=a===vi.id,u=Ls(o),m=i(({value:h})=>{let g=u?.find(d=>d.id===h);g&&(a===vi.id&&Number.isNaN(Number(c))&&l(hd),s(g.id))},"handleDerivationPathItemClick"),f=i(()=>{let h=u.find(g=>g.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return Dk(()=>{s(Ls(o)[0]?.id||null)},[o]),xt.createElement(xt.Fragment,null,xt.createElement(Lk,{type:"info",title:hn.t("Select Derivation Path"),description:hn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:xt.createElement(Mk,{src:n,size:45})}),xt.createElement(fd,{className:"_derivation_path_inputs_container"},xt.createElement(_s,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},hn.t("Choose Derivation Path Template")),xt.createElement(Pk,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:m,styles:{trigger:Ds}}),xt.createElement(Wk,{size:20}),xt.createElement(_s,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},p?hn.t("Enter Path"):hn.t("Enter Index")),xt.createElement(_k,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Ds})),xt.createElement(dn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},hn.t("Confirm")))}i(nr,"DerivationPath");import{i18n as yn}from"@lingui/core";import{Image as Ok,MessageBox as Fs,WalletImageContainer as Uk,WalletState as zk}from"@rango-dev/ui";import{useWallets as Hk}from"@rango-dev/wallets-react";import Do from"react";import{keyframes as $k,styled as $s}from"@rango-dev/ui";var h_=$s("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),yd=$s("div",{position:"relative"}),Fk=$k({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Sd=$s("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Fk} 1s linear infinite`,top:0,bottom:0,right:0,left:0});function Os(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a,getWalletInfo:s}=Hk();return Vn(s(n),a(n))===zk.CONNECTED?Do.createElement(Fs,{type:"success",title:yn.t("Wallet Connected"),description:yn.t("Your wallet is connected, you can use it to swap.")}):o?Do.createElement(Fs,{type:"error",title:yn.t("Failed to Connect"),description:o||yn.t("Your wallet is not connected. Please try again.")}):Do.createElement(Fs,{type:"loading",title:yn.t("Connecting to your wallet"),description:yn.t("Click connect in your wallet popup."),icon:Do.createElement(yd,null,Do.createElement(Uk,null,Do.createElement(Ok,{src:r,size:45})),Do.createElement(Sd,null))})}i(Os,"ConnectStatus");import{i18n as Us}from"@lingui/core";import{Button as Qk,Divider as Cd,MessageBox as qk}from"@rango-dev/ui";import xi from"react";function zs(t){let{displayName:e,onConfirm:o,id:n}=t;return xi.createElement(qk,{id:n,title:Us.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Us.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},xi.createElement(Cd,{size:18}),xi.createElement(Cd,{size:32}),xi.createElement(Qk,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Us.t("Confirm")))}i(zs,"ExperimentalChain");function Td(t,e){return t().status==="init"&&!!e}i(Td,"isOnStatus");function rr(t){return t().status==="namespace"}i(rr,"isOnNamespace");function ir(t){return t().status==="derivationPath"}i(ir,"isOnDerivationPath");function Ao(t){return t().status==="detached"}i(Ao,"isOnDetached");var jk=3e3,Xk=300;function ar(t){let e=Kk(),[o,n]=kd(!1),[r,a]=kd(),s=i(x=>{a(x.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=vt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:m,resetState:f,handleDisconnect:h}=Ro(),g=i(x=>{u(t.wallet,x).then(k).catch(s)},"handleConfirmNamespaces"),d=i(()=>{y()},"handleDetachedConfirm"),S=i(x=>{if(!x)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(t.wallet,x).then(k).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),T=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),k=i((x,I)=>{let A=x.status==="connected",b=["disconnected","disconnected-unhandled"].includes(x.status);A?(t.onConnect?.(),I||(e.current=setTimeout(y,jk))):b&&y()},"afterConnected"),w=i(x=>{t.wallet?.needsDerivationPath&&u(t.wallet,[x])},"handleNavigateToDerivationPath");return Vk(()=>{if(t.wallet){T();let x=!1,I=!0;i(()=>{setTimeout(()=>{I=!1,x||n(!0)},Xk)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(b=>{["namespace","Detached","derivation-path"].includes(b.status)||(x=!0),k(b,I)}).catch(s)}},[t.wallet]),po.createElement(ee,{id:t.id,open:o,onClose:y,onExit:()=>{T(),c(),t.onClose&&t.onClose()},container:B()},Td(m,t.wallet)&&po.createElement(po.Fragment,null,po.createElement(Os,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),po.createElement(Gk,{direction:"vertical",size:32})),rr(m)&&po.createElement(er,{onConfirm:g,value:m().namespace}),ir(m)&&po.createElement(nr,{onConfirm:S,value:m().derivationPath}),Ao(m)&&po.createElement(or,{onConfirm:d,onDisconnectWallet:()=>void h(m().namespace.targetWallet),value:m().namespace,selectedNamespaces:m().selectedNamespaces,navigateToDerivationPath:w}))}i(ar,"StatefulConnectModal");import Ra from"react";import Yk,{Fragment as Zk}from"react";import{MemoryRouter as Jk,useInRouterContext as Rk}from"react-router";function bi({children:t}){let o=Rk()?Zk:Jk;return Yk.createElement(o,null,t)}i(bi,"AppRouter");import{I18nManager as R0}from"@rango-dev/ui";import Pp from"react";import ze from"react";import{useRoutes as W0}from"react-router-dom";var $={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as Cn,useRef as Mi}from"react";import ot from"bignumber.js";import{create as em}from"zustand";import{subscribeWithSelector as tm}from"zustand/middleware";import{createContext as ew,useContext as tw}from"react";var wd=ew({swapMode:"swap",isMultiMode:!1});function tt(){let{swapMode:t,isMultiMode:e}=tw(wd);return{swapMode:t,isMultiMode:e}}i(tt,"useSwapMode");import{i18n as Ct}from"@lingui/core";import{getRelatedWalletOrNull as rw,RouteEventType as LD}from"@rango-dev/queue-manager-rango-preset";import Qe from"bignumber.js";import{PendingSwapNetworkStatus as lr}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 vd(t){return t.type===0?t.diagnosisMessage??ne().noResultError.title:t.type===1?t.diagnosisMessage??ne().genericServerError:""}i(vd,"getQuoteErrorMessage");import{i18n as Ei}from"@lingui/core";var $o=i(()=>({connectWallet:Ei.t("Connect Wallet"),swap:Ei.t("Swap"),swapAnyway:Ei.t("Swap anyway"),ethWarning:Ei.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Hs(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(Hs,"getFeeLabel");var Qs=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],xd=100,bd=30,Ed=15,Id=60;var Ad=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Nd=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as nw}from"@rango-dev/queue-manager-rango-preset";import CD from"bignumber.js";function Wd(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(Wd,"getRequiredBalanceOfWallet");function Xt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Xt,"getPriceImpactLevel");function Ii(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=nw(t.steps);if(!r||!n)return{fromBlockchain:null,fromToken:void 0,toBlockchain:null,toToken:void 0,inputAmount:""};let s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=No(a?a.toBlockchain:n.fromBlockchain,e),l=No(r.toBlockchain,e),p=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:m}}i(Ii,"createRetryQuote");function Sn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=sr(o),s=St(o);if(o&&a&&s){let p=jt(a.toString(),s.toString());if(!!p&&Dd(a,p)){let m=Ni(o?.swaps,n),f=Xt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:m,warningLevel:f}}}if(e&&Od(e,o))return{type:4,usdValueChange:P(St(o)?.minus(St(e)??0).toString()??"0",null,2),percentageChange:P(jt(St(e)??"1",St(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=Bi(o.swaps),l=r>an;if(Fd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:$d(o,r),minRequiredSlippage:c};return null}i(Sn,"generateQuoteWarnings");function Md(t){return![4].includes(t.type)}i(Md,"isQuoteWarningConfirmationRequired");function jt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:qs(t.toString(),e.toString());return n&&n<0?n:null}i(jt,"getPriceImpact");var Ld=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"),Ai=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"),Pd=i((t,e,o)=>{let n=e[0];if(!e.length||!n)return null;if(!t)return{requestAmount:o,validationStatus:null,...n};let r=new Set(t.swaps.map(s=>s.swapperId)),a=e.find(s=>{let c=new Set(s.swaps.map(l=>l.swapperId));return Array.from(r).every(l=>c.has(l))});return{requestAmount:o,validationStatus:null,...a||n}},"getDefaultQuote"),_d=i(t=>{let e=i((o,n)=>{let r=Qs.indexOf(o.value),a=Qs.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Dd(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return Ad.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Qe(r)))}i(Dd,"hasHighValueLoss");function Ud(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Qe(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(Ud,"hasLimitError");function zd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new Qe(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new Qe(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0];if(!e)return{swap:void 0,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new Qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Qe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=Ct.t({id:"Required: >= {min} {symbol}",values:{min:P(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=Ct.t({id:"Required: > {min} {symbol}",values:{min:P(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=Ct.t({id:"Required: <= {max} {symbol}",values:{max:P(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=Ct.t({id:"Required: < {max} {symbol}",values:{max:P(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(zd,"getLimitErrorMessage");function Hd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:$o().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:$o().swap,action:"confirm-swap",disabled:!0}:s?{title:$o().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:$o().ethWarning,action:"confirm-warning",disabled:!1}:{title:$o().swap,action:"confirm-swap",disabled:!1}:{title:$o().connectWallet,action:"connect-wallet",disabled:!1}}i(Hd,"getSwapButtonState");function Gs(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(pe))&&e&&e!=="0"&&n!==0)}i(Gs,"canComputePriceImpact");function Vs(t,e){let o=pe;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(!r||r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Qe(r.amount).multipliedBy(a||0))}return o}i(Vs,"getUsdFeeOfStep");function Ni(t,e){return t.reduce((o,n)=>o.plus(Vs(n,e)),pe)}i(Ni,"getTotalFeeInUsd");function Ks(t){let e=pe,o=new Qe(t.price||0);return e=e.plus(new Qe(t.amount).multipliedBy(o)),e}i(Ks,"getUsdFee");function Qd(t){return t.reduce((e,o)=>e.plus(Ks(o)),pe)}i(Qd,"getTotalFeesInUsd");function qd(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(qd,"getFeesGroup");function Gd(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?Object.fromEntries(e):null}i(Gd,"checkSlippageErrors");function $d(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?Object.fromEntries(o):null}i($d,"checkSlippageWarnings");function Bi(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(Bi,"getMinRequiredSlippage");function Fd(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Fd,"hasProperSlippage");function Vd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:m,affiliateWallets:f,destination:h,contractCall:g}=t,d=a?.reduce((T,k)=>(T[k.chain]=k.address,T),{}),S=[];return r?.forEach(T=>{S.push({blockchain:T.chain,addresses:[T.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:m??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:d??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(T=>!s.includes(T)),swappersGroupsExclude:!1}}}i(Vd,"createQuoteRequestBody");function Kd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Kd,"getWalletsForNewSwap");function sr(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new Qe(e).multipliedBy(o)}i(sr,"getUsdInputFrom");function St(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new Qe(e).multipliedBy(o)}i(St,"getUsdOutputFrom");function qs(t,e){return new Qe(e).div(new Qe(t)).minus(1).multipliedBy(xd).toNumber()}i(qs,"getPercentageChange");function Od(t,e){let o=sr(t),n=St(t),r=St(e);if(!o||!n||!r)return!1;let a=qs(n.toString(),r.toString());return Nd.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Od,"isOutputAmountChangedExcessively");function jd(t,e,o){let n=t.validationStatus,r=Mo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>Wd(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=P(new Qe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=P(new Qe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=Ct.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=Ct.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=Ct.t(" for input and network fee")),Ct.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:ht(s.asset.blockchain,o)}})})}i(jd,"generateBalanceWarnings");function cr(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==lr.NetworkChanged}i(cr,"isNetworkStatusInWarningState");function Xd(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),cr(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?rw(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case lr.WaitingForConnectingWallet:r=u?Ct.t("Connect {wallet}",{wallet:u}):r;break;case lr.WaitingForQueue:r=r||Ct.t("Waiting for other running tasks to be finished");break;case lr.WaitingForNetworkChange:r=r||Ct.t("Waiting for changing wallet network");break;case lr.NetworkChangeFailed:r=r||Ct.t("The network switch could not be completed. Please try again, or switch the network manually in your wallet.");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(Xd,"getSwapMessages");function Yd(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(Yd,"getLastConvertedTokenInFailedSwap");function Zd(t){return t.status==="failed"}i(Zd,"shouldRetrySwap");function Jd(t,e,o,n,r,a){if(!n||t)return!0;let s=Mo({filter:"all",quote:n}),c=Mo({filter:"required",quote:n}),l=s.every(m=>r.some(f=>f.chain===m)),p=c.every(m=>r.some(f=>f.chain===m)),u=o&&a?tn(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Jd,"isConfirmSwapDisabled");function Rd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Rd,"isTokensIdentical");var Wi=i((t,e)=>t?.usdPrice?new ot(e||pe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),om=i(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new ot(0),outputUsdValue:new ot(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=pe,a=o.inputUsdValue;return Gn(o.inputAmount)?(e&&(n=e?.outputAmount?new ot(e?.outputAmount):null,a=sr(e)??pe,r=St(e)??pe),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new ot(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new ot(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new ot(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:Wi(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 ot(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),sanitizeInputAmount:e=>{let o=ku(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;ii(e)||(o=mu(o),o=fu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new ot(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Wi(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:Wi(n??null,s),outputUsdValue:new ot(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?Wi(e.toToken,e.outputAmount?.toString()||""):new ot(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new ot(0),inputUsdValue:new ot(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new ot(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}),"initializer"),nm=em()(tm(om)),rm=em()(tm(om)),iw=co(nm),aw=co(rm);function z(){let{swapMode:t}=tt();return co(t==="refuel"?rm:nm)}i(z,"useQuoteStore");var im=i((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&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})},"subscribeCallback"),am=iw.subscribe(im),sm=aw.subscribe(im);function lm(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=z()(),u=C().config,m=C().fetchStatus,f=C().blockchains(),{findToken:h}=C(),{setAffiliateRef:g,setAffiliatePercent:d,setAffiliateWallets:S}=C(),y=u?.from?.tokens,T=u?.from?.blockchains,k=u?.to?.tokens,w=u?.to?.blockchains,x=Mi(void 0),I=Mi(void 0),A=Mi(void 0),b=Mi(void 0);Cn(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),Cn(()=>{if(m==="success"){r();let E=f.find(M=>M.name===u?.from?.blockchain),v=u?.from?.token,N=v&&h(v);(E||!E&&A.current)&&n(E??null),N?a({token:N,meta:{blockchains:f}}):!N&&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,m]),Cn(()=>{gs(s,y)&&a({token:null}),hs(l,T)&&n(null)},[y,T]),Cn(()=>{gs(c,k)&&a({token:null}),hs(p,w)&&o(null)},[k,w]),Cn(()=>{if(m==="success"){r();let E=f.find(M=>M.name===u?.to?.blockchain),v=u?.to?.token,N=v&&h(v);(E||!E&&b.current)&&o(E??null),N?e({token:N,meta:{blockchains:f}}):!N&&I.current&&e({token:null}),b.current=u?.to?.blockchain,I.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),Cn(()=>{g(u?.affiliate?.ref??null),d(u?.affiliate?.percent??null),S(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(lm,"useSyncStoresWithConfig");import{useEffect as Ys,useRef as sw}from"react";import{useInRouterContext as lw,useLocation as cw,useSearchParams as pw}from"react-router-dom";function js(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(js,"convertTokenSearchParamToAsset");function Xs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Xs,"tokenToSearchParam");function Js(){let t=cw(),[e,o]=pw(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:m,setInputAmount:f}=z()(),h=C().fetchStatus,g=C().blockchains(),d=lw(),{updateIframe:S,updateCampaignMode:y}=C(),T=C().isInCampaignMode(),k=sw(),{findToken:w}=C(),x=i(()=>{let A={};for(let[W,Z]of e.entries())W.startsWith("utm_")&&(A[W]=Z);let b=e.get("fromAmount"),E=e.get("fromBlockchain"),v=e.get("fromToken"),N=e.get("toBlockchain"),M=e.get("toToken"),F=e.get("autoConnect"),H=e.get("clientUrl"),X=e.get("liquiditySources"),J=e.get("blockchain");return{fromAmount:b,fromBlockchain:E,fromToken:v,toBlockchain:N,toToken:M,autoConnect:F,clientUrl:H,liquiditySources:X,utmQueryParams:A,blockchain:J}},"getUrlSearchParams"),I=i(A=>{for(let b in A)A[b]||delete A[b];o(A,{replace:!0})},"updateUrlSearchParams");Ys(()=>{let{autoConnect:A,clientUrl:b,utmQueryParams:E,blockchain:v}=x();d&&h==="success"&&I({fromBlockchain:n?.name,fromToken:Xs(a),toBlockchain:r?.name,toToken:Xs(s),fromAmount:c,autoConnect:A??void 0,clientUrl:b??void 0,blockchain:v??void 0,liquiditySources:T?k.current:void 0,...E})},[t.pathname,c,n,a,r,s,T,h]),Ys(()=>{if(!d)return;let A=x();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&f(A.fromAmount),h==="success"){let b=g.find(H=>H.name===A.fromBlockchain),E=A.fromToken&&b&&js(A.fromToken,b),v=E?w(E):void 0,N=g.find(H=>H.name===A.toBlockchain),M=A.toToken&&N&&js(A.toToken,N),F=M?w(M):void 0;b&&(l(b),v&&u({token:v,meta:{blockchains:g}})),N&&(p(N),F&&m({token:F,meta:{blockchains:g}}))}},[h]),Ys(()=>{let{clientUrl:A,liquiditySources:b}=x();S("clientUrl",A||void 0),y("liquiditySources",b?.split(",")??void 0)},[])}i(Js,"useSyncUrlAndStore");import{i18n as wn}from"@lingui/core";import{Alert as Wv,Button as Mv,darkTheme as Lv,Divider as Al,DoneIcon as Pv,styled as _v,TextField as Dv,Typography as $v}from"@rango-dev/ui";import Ge,{useState as Fv}from"react";import{useNavigate as Ov,useSearchParams as Uv}from"react-router-dom";import{ChevronRightIcon as uw,Divider as mm,Image as dw,Typography as fm}from"@rango-dev/ui";import bt from"react";import{darkTheme as cm,styled as Rs}from"@rango-dev/ui";var pm=Rs("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${cm} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${cm} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),um=Rs("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),dm=Rs("div",{display:"flex"});function el(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return bt.createElement(um,null,bt.createElement(fm,{size:"large",variant:"label"},n),bt.createElement(mm,{size:10}),bt.createElement(pm,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},bt.createElement(dm,null,r&&bt.createElement(bt.Fragment,null,bt.createElement(dw,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),bt.createElement(mm,{size:4,direction:"horizontal"})),bt.createElement(fm,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),bt.createElement(uw,{size:12,color:"black"})))}i(el,"BlockchainSelectorButton");import{i18n as rl}from"@lingui/core";import{Button as Tw,Divider as Tm,MessageBox as kw}from"@rango-dev/ui";import uo,{useEffect as km,useState as il}from"react";import{i18n as Li}from"@lingui/core";import{Divider as Fo,ExternalLinkIcon as gw,Image as hw,InfoIcon as yw,Tooltip as Sw,Typography as ur}from"@rango-dev/ui";import me from"react";var gm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function hm(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(hm,"generateExplorerLink");import{Button as mw,darkTheme as Tn,styled as pr,Typography as fw}from"@rango-dev/ui";var tl=pr("a",{textDecoration:"none",color:"$colors$neutral700",[`.${Tn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${Tn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${Tn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${Tn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),ym=pr("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${Tn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${Tn} &`]:{color:"$colors$neutral900"}}}),ol=pr(mw,{minHeight:"$40"}),Sm=pr(fw,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"96px"}),Cm=pr("div",{display:"flex",justifyContent:"center",alignItems:"center"});var Cw=9;function nl(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=hm(n.address,s),l=i(()=>window.open(gm,"_blank"),"onClickLearnMore");return me.createElement(ee,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:B()},me.createElement(ym,null,me.createElement(hw,{src:n.image===""?ei:n.image,size:45,type:"circular"}),me.createElement(Fo,{size:4}),me.createElement(Cm,null,me.createElement(Sm,{variant:"title",size:"medium"},n.symbol),n.symbol.length>Cw&&me.createElement(Sw,{content:n.symbol,container:B()},me.createElement(yw,{size:12,color:"gray"}))),me.createElement(ur,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),me.createElement(Fo,{size:4}),me.createElement(ur,{variant:"body",size:"medium"},c?me.createElement(tl,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,me.createElement(gw,{size:12,color:"gray"})):me.createElement(tl,null,n.address)),me.createElement(Fo,{size:4}),n.coinSource&&me.createElement(ur,{className:"_coin-source",variant:"body",size:"xsmall"},Li.t("via")," ",me.createElement(ur,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),me.createElement(Fo,{size:"32"}),me.createElement(ur,{size:"medium",variant:"body",className:"_custom-token-description"},Li.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."))),me.createElement(Fo,{size:40}),me.createElement(Fo,{size:10}),me.createElement(ol,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Li.t("Import Anyway")),me.createElement(Fo,{size:10}),me.createElement(ol,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Li.t("Learn More")))}i(nl,"CustomTokenModal");function dr(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=C(),[m,f]=il(!1),[h,g]=il(!1),[d,S]=il(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),T=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),k=i(()=>{S(!0),T()},"handleErrorModalButtonClick"),w=i(()=>{d&&n?.type==="network-error"&&(S(!1),y()),l()},"handleExit"),x=i(()=>{e&&(u(e),c())},"handleSubmit");return km(()=>{n&&f(!0)},[n]),km(()=>{o&&e&&g(!0)},[o,e]),uo.createElement(uo.Fragment,null,uo.createElement(ee,{open:m,dismissible:!0,id:"widget-add-custom-token-modal",onClose:T,onExit:w,container:B()},uo.createElement(kw,{title:n?.title??"",type:"error",description:n?.message||rl.t("Failed Network, Please retry.")},uo.createElement(Tm,{size:40}),uo.createElement(Tm,{size:10}),uo.createElement(Tw,{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"?rl.t("Retry"):rl.t("Add another custom token")))),o&&e&&uo.createElement(nl,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>g(!1),open:h,onExit:p}))}i(dr,"ImportCustomToken");import{useManager as bv}from"@rango-dev/queue-manager-react";import{BottomLogo as Ev,Divider as tf,Header as Iv}from"@rango-dev/ui";import We,{useEffect as Qi,useLayoutEffect as Av,useRef as of,useState as nf}from"react";import{useRef as ww}from"react";function Pi(){return window.self!==window.top}i(Pi,"isAppLoadedIntoIframe");function al(){let t=ww(null),{iframe:e}=C(),o=Pi()&&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(al,"useIframe");import{useNavigate as vw}from"react-router-dom";function qe(){let t=vw();return()=>t(-1)}i(qe,"useNavigateBack");import{createTheme as ml,darkTheme as Dw,lightTheme as $w}from"@rango-dev/ui";import{useEffect as Fw,useState as Ow}from"react";import{theme as Pw,darkColors as _w}from"@rango-dev/ui";import ul from"react";var _i=16,Di=255,wm=.11;function xw(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(xw,"expandShortHexColor");function bw(t,e){return t.padStart(e,"0")}i(bw,"pad");function sl(t){let e=Math.min(Math.max(Math.round(t),0),Di);return bw(e.toString(_i),2)}i(sl,"intToHex");function Ew(t){return`#${sl(t.red)}${sl(t.green)}${sl(t.blue)}`}i(Ew,"rgbToHex");function Iw(t){let e=parseInt(t.slice(1,3),_i),o=parseInt(t.slice(3,5),_i),n=parseInt(t.slice(5,7),_i);return{red:e,green:o,blue:n}}i(Iw,"hexToRGB");function Aw(t,e){let o=1-wm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Aw,"generateShade");function Nw(t,e){let o=wm*e;return{red:t.red+(Di-t.red)*o,green:t.green+(Di-t.green)*o,blue:t.blue+(Di-t.blue)*o}}i(Nw,"generateTint");function Bw(t){return vm(t,Aw)}i(Bw,"calculateShades");function Ww(t){return vm(t,Nw)}i(Ww,"calculateTints");function vm(t,e){let o=Iw(t),n=[];for(let r=1;r<9;r++)n.push(Ew(e(o,r)));return n}i(vm,"calculateColors");function ll(t,e,o){let a=Ww(t).reverse().concat(t),s=Bw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let m=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${m}`]=f)}return l}i(ll,"createTintsAndShades");function cl(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)&&!Cu(r)){let l=xw(a);Object.assign(n,ll(l,r,s))}}return{...n,...e}}i(cl,"expandToGenerateThemeColors");var xm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Mw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=xm(o%52)+e;return xm(o%52)+e},"toAlphabeticName"),Lw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),pl=i(t=>Mw(Lw(5381,JSON.stringify(t))>>>0),"toHash");function dl(t){let e=Pw.colors,o={...e,..._w},n,r;if(t?.light){let s={colors:cl(e,t.light)};n={id:`${fs}-light-${pl(s)}`,tokens:s}}if(t?.dark){let s={colors:cl(o,t.dark,{reverseNeutralRange:!0})};r={id:`${fs}-dark-${pl(s)}`,tokens:s}}return{light:n,dark:r}}i(dl,"customizedThemeTokens");function bm(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ul.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ul.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(ul.cloneElement(e,{key:c}))}}),o}i(bm,"joinList");function Em(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Em,"doesWindowPreferDarkColorScheme");function mo(t){let{colors:e,fontFamily:o=ou,borderRadius:n=Lu,secondaryBorderRadius:r=Pu}=t,[a,s]=Ow(Em()?"dark":"light"),{theme:c}=C(),{dark:l,light:p}=dl(e),u=ml({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[u.className,$w.className],f=[u.className,Dw.className];if(p){let g=ml(p.id,p.tokens);m.push(g.className)}if(l){let g=ml(l.id,l.tokens);f.push(g.className)}return Fw(()=>{let g=i(d=>{d.matches?s("dark"):s("light")},"switchThemeListener");return Em()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),d=f.join(" ");return c==="auto"?a==="dark"?d:g:c==="dark"?d:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(mo,"useTheme");var Tt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Im}from"@lingui/core";import{Alert as Uw,Button as zw}from"@rango-dev/ui";import Am from"react";function fl(t){return Am.createElement(Uw,{action:Am.createElement(zw,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Im.t("Activate this tab")),type:"warning",variant:"alarm",title:Im.t("Another tab is open and handles transactions.")})}i(fl,"ActivateTabAlert");import{i18n as gl}from"@lingui/core";import{Button as Hw,Divider as Qw,MessageBox as qw}from"@rango-dev/ui";import $i from"react";function hl(t){let{open:e,onClose:o,onConfirm:n}=t;return $i.createElement(ee,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:B()},$i.createElement(qw,{title:gl.t("Activate current tab"),type:"warning",description:gl.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.")},$i.createElement(Qw,{size:20}),$i.createElement(Hw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},gl.t("Confirm"))))}i(hl,"ActivateTabModal");import{ChevronLeftIcon as Kw}from"@rango-dev/ui";import Dm from"react";import{css as Gw,darkTheme as Nm,IconButton as Vw,styled as Oo}from"@rango-dev/ui";var Dt=Oo(Vw,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Nm} &`]:{backgroundColor:"$neutral"}}}),Bm=Oo("div",{position:"absolute",background:"$secondary500",[`.${Nm} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),fo=Oo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Wm=Oo("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"}}}}),Mm=Oo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Lm=Oo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Pm=Gw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),_m=Oo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function yl(t){return Dm.createElement(Dt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Dm.createElement(Kw,{color:"black",size:16}))}i(yl,"BackButton");import{i18n as jw}from"@lingui/core";import{Button as Xw,Typography as Yw}from"@rango-dev/ui";import Sl from"react";function Cl(t){return Sl.createElement(fo,null,Sl.createElement(Xw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},Sl.createElement(Yw,{variant:"label",size:"medium",color:"error500"},jw.t("Cancel"))))}i(Cl,"CancelButton");import{i18n as Zw}from"@lingui/core";import{Image as Jw,Tooltip as Rw,WalletIcon as ev,WalletState as $m}from"@rango-dev/ui";import Uo from"react";function Tl(t){let{list:e}=vt(),o=e.filter(r=>r.state===$m.CONNECTED||r.state===$m.PARTIALLY_CONNECTED),n=o.length?Uo.createElement("div",{className:Pm()},o.map(r=>Uo.createElement(_m,{key:r.title},Uo.createElement(Jw,{src:r.image,size:14})))):Zw.t("Connect Wallet");return Uo.createElement(Rw,{container:t.container,side:"bottom",content:n},Uo.createElement(Dt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Uo.createElement(Bm,null),Uo.createElement(ev,{size:18,color:"black"})))}i(Tl,"WalletButton");import{i18n as Oi}from"@lingui/core";import{NotificationsIcon as hv,Popover as yv,SettingsIcon as Sv,Tooltip as Ui,TransactionIcon as Cv}from"@rango-dev/ui";import Pe from"react";import{Notifications as rv}from"@rango-dev/ui";import iv from"react";import{useNavigate as av}from"react-router-dom";import{create as tv}from"zustand";import{persist as ov,subscribeWithSelector as nv}from"zustand/middleware";var Be=co(tv()(ov(nv((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1];if(!r||!a)return;let s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function kl(){let t=av(),{getNotifications:e,clearNotifications:o}=Be(),n=e(),r=C().blockchains(),{findToken:a}=C();return iv.createElement(rv,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Kp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${$.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(kl,"NotificationContent");import{useManager as sv}from"@rango-dev/queue-manager-react";import{InProgressIcon as lv}from"@rango-dev/ui";import Fm from"react";var cv=i(()=>{let{manager:t}=sv();return Tt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Fm.createElement(Lm,{id:"widget-header-history-badge-container"},Fm.createElement(lv,{color:"info",size:6})):null},"InProgressTransactionBadge"),Om=cv;import{EventSeverity as pv}from"@rango-dev/queue-manager-rango-preset";import{Typography as uv}from"@rango-dev/ui";import Um from"react";function zm(){let{getNotifications:t}=Be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===pv.WARNING);return o?Um.createElement(Wm,{isSever:n},Um.createElement(uv,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(zm,"NotificationsBadge");import{RefreshProgressButton as dv}from"@rango-dev/ui";import wl,{useEffect as mv,useState as Hm}from"react";var fv=1e3,Qm=60,gv=100;function Fi({onClick:t}){let[e,o]=Hm(0),[n,r]=Hm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");mv(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===Qm&&c()},fv):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 wl.createElement(Dt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},wl.createElement(Mm,{onTransitionEnd:()=>r(!1),isRefetched:n},wl.createElement(dv,{size:22,color:t?"black":"gray",progress:e/Qm*gv})))}i(Fi,"RefreshButton");function zo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=C(),c=et("notification",s)||r.includes("notifications");return Pe.createElement(Pe.Fragment,null,!r.includes("refresh")&&Pe.createElement(Ui,{container:a||B(),side:"top",content:Oi.t("Refresh")},Pe.createElement(Fi,{onClick:e})),!c&&Pe.createElement(yv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Pe.createElement(kl,null)},Pe.createElement("div",null,Pe.createElement(Ui,{container:B(),side:"top",content:Oi.t("Notifications")},Pe.createElement(Dt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Pe.createElement(hv,{size:18,color:"black"}),Pe.createElement(zm,null))))),!r.includes("settings")&&Pe.createElement(Ui,{container:B(),side:"top",content:Oi.t("Settings")},Pe.createElement(Dt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Pe.createElement(Sv,{size:18,color:"black"}))),!r.includes("history")&&Pe.createElement(Ui,{container:B(),side:"top",content:Oi.t("History")},Pe.createElement(Dt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Pe.createElement(Cv,{size:18,color:"black"}),Pe.createElement(Om,null))))}i(zo,"HeaderButtons");import{i18n as vl}from"@lingui/core";import{Divider as Gm,MessageBox as wv,RefreshIcon as vv}from"@rango-dev/ui";import kn from"react";import{Button as Tv,styled as kv}from"@rango-dev/ui";var qm=kv(Tv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function xl(t){let{open:e,onClose:o}=t;return kn.createElement(ee,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:B()},kn.createElement(wv,{title:vl.t("Something went wrong"),type:"error",description:vl.t("Something went wrong. Please refresh the app.")},kn.createElement(Gm,{size:30}),kn.createElement(qm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},kn.createElement(vv,{size:20,color:"primary"}),kn.createElement(Gm,{size:4,direction:"horizontal"}),vl.t("Refresh"))))}i(xl,"RefreshModal");var Vm="700px",Km="425px",jm="550px",Xm="640px",Ym="800px";function bl(t){let e=t.target;if(e){let o=e.scrollTop,n=B();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(bl,"onScrollContentAttachStatusToContainer");import{css as xv,styled as zi}from"@rango-dev/ui";var Hi=xv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Zm=zi("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",maxHeight:Vm,variants:{height:{auto:{height:"auto"},fixed:{height:"100%",minHeight:Km,[`@media screen and (min-height: ${Ym})`]:{minHeight:jm}}},showBanner:{true:{overflow:"visible"}}}}),Jm=zi("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Rm=zi("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"}}}),ef=zi("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=al(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=C(),[u,m]=nf(!1),{config:{features:f,theme:h}}=C(),{watermark:g}=oe(),d=g==="FULL",{activeTheme:S}=mo(h||{}),[y,T]=nf(!1),k=et("connectWalletButton",f),{isActiveTab:w,tabManagerInitiated:x,showActivateTabModal:I,setShowActivateTabModal:A,activateCurrentTab:b,setShowCompactTokenSelector:E}=oe(),v=qe(),{manager:N}=bv(),F=Tt(N).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),H=i(()=>b(Po.forceClaim,F),"onActivateTab"),X=i(()=>{r.onWallet?.()},"onConnectWallet"),J=typeof r.hasBackButton>"u"||r.hasBackButton,W=of(null),Z=of(null);return Qi(()=>{let Y=(p?.swapBoxBanner?.routes?.length??0)===0,ce=!!p?.swapBoxBanner?.routes?.some(fe=>location.pathname.endsWith(fe));T(!!p?.swapBoxBanner&&(Y||ce))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),Qi(()=>(Pi()&&Z.current&&e(Z.current),()=>{o()}),[]),Qi(()=>(W.current?.addEventListener("scroll",bl),()=>{W.current?.removeEventListener("scroll",bl)}),[]),Qi(()=>{m(c==="failed")},[c]),Av(()=>{if(!Z.current)return;let Y=new ResizeObserver(ce=>{for(let fe of ce)fe.contentRect&&E(fe.contentRect.height<parseInt(Xm))});return Y.observe(Z.current),()=>Y.disconnect()},[]),We.createElement(Zm,{height:s,id:Re.SWAP_BOX_ID,className:`${S()} ${Hi()}`,ref:Z,showBanner:y},We.createElement(Iv,{prefix:J?We.createElement(yl,{onClick:()=>{v(),r.onBack?.()}}):null,title:r.title,suffix:We.createElement(We.Fragment,null,r.suffix,r.onWallet&&!k&&We.createElement(Tl,{container:B(),onClick:X,isConnected:!!l?.length}),r.onCancel&&We.createElement(Cl,{onClick:r.onCancel}))}),We.createElement(Jm,{ref:W},n),We.createElement(hl,{open:I,onClose:()=>A(!1),onConfirm:H}),We.createElement(Rm,null,We.createElement("div",{className:"footer__content"},x&&!w&&We.createElement("div",{className:"footer__alert"},We.createElement(fl,{onActivateTab:H}),We.createElement(tf,{size:10})),a),We.createElement(tf,{size:12}),We.createElement("div",{className:`footer__logo ${d?"logo__show":"logo__hidden"}`},We.createElement(Ev,null))),y&&We.createElement(ef,null,p?.swapBoxBanner?.element),We.createElement(xl,{open:u,onClose:()=>m(!1)}))}i(ie,"Layout");import{styled as Nv}from"@rango-dev/ui";var rf="$20 $20 $10 $20",El=Nv("div",{padding:rf,overflowY:"auto",flexGrow:1});import{styled as Bv}from"@rango-dev/ui";var le=Bv("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 go}from"@lingui/core";import{useState as Il}from"react";function af(){let[t,e]=Il(!1),[o,n]=Il(null),[r,a]=Il(null),{findToken:s}=C(),c=C().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(m,f){switch(m){case"duplicated":return{type:m,title:go.t("Duplicate Token"),message:go.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:m,title:go.t("Token Already Exists"),message:go.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:m,title:go.t("Token Not Found"),message:go.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:f}})};case"network-error":return{type:m,title:go.t("Network error"),message:go.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:m,tokenAddress:f})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===f.toLowerCase())){let y=p("duplicated");n(y);return}let g=await ct().getCustomToken({blockchain:m,address:f});if(!g||!g.token||g.error){let y=p("not-found",m);n(y);return}let d=g.token;if(s({blockchain:d.blockchain,address:d.address,symbol:d.symbol})){let y=p("token-exist");n(y);return}return a({...d,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",m);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(af,"useFetchCustomToken");var zv=_v("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${Lv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function sf(){let t=Ov(),[e]=Uv(),o=qe(),n=C().blockchains(),r=e.get("blockchain")||"",a=No(r,n),[s,c]=Fv(""),{fetchCustomToken:l,token:p,loading:u,error:m,resetState:f}=af(),h=!!a&&tn(a,s),g=!a||!s||!h,d=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ge.createElement(ie,{header:{title:wn.t("Add Custom Token")}},Ge.createElement(le,null,Ge.createElement(zv,null,Ge.createElement("div",null,Ge.createElement(el,{onClick:()=>t($.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:wn.t("Select chain"),placeholder:wn.t("Select chain")}),Ge.createElement(Al,{size:"24"}),Ge.createElement($v,{size:"large",variant:"label"},wn.t("Enter Address")),Ge.createElement(Al,{size:10}),Ge.createElement(Dv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:wn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Ge.createElement(Pv,{color:"success",size:12}),onChange:S=>c(S.target.value)}),!h&&!!s&&Ge.createElement(Ge.Fragment,null,Ge.createElement(Al,{size:4}),Ge.createElement(Wv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ge.createElement(Mv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:d},wn.t("Import"))),Ge.createElement(dr,{token:p,blockchain:a??void 0,address:s,error:m??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{m?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(sf,"AddCustomTokenPage");import{i18n as cc}from"@lingui/core";import{useManager as Bb}from"@rango-dev/queue-manager-react";import{Alert as Wb,Button as Mb,css as uc,Divider as pc,IconButton as Rg,styled as Lb,Typography as Pb,WalletIcon as _b}from"@rango-dev/ui";import $e,{useEffect as ya,useLayoutEffect as Db,useRef as $b,useState as xr}from"react";import{useNavigate as Fb}from"react-router-dom";import{i18n as Ho}from"@lingui/core";import{Alert as mx,BalanceErrors as fx,Button as Lf,ChevronLeftIcon as gx,Divider as Dl,MessageBox as hx,Typography as $l}from"@rango-dev/ui";import re,{useCallback as yx,useEffect as Pf,useMemo as Sx,useState as En}from"react";import{useNavigate as Cx}from"react-router-dom";import{i18n as Ml}from"@lingui/core";import{Alert as Vv,ChevronDownIcon as Kv,CloseIcon as jv,Divider as ff,IconButton as gf,PasteIcon as Xv,Typography as Yv,WalletIcon as Zv}from"@rango-dev/ui";import _e,{useEffect as Jv,useRef as Rv}from"react";import Ki,{useRef as qv}from"react";import*as vn from"@radix-ui/react-collapsible";import{keyframes as lf,styled as qi}from"@rango-dev/ui";var Nl=300,Hv=lf({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Qv=lf({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),cf=qi(vn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Bl=qi(vn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Gi=qi(vn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Hv} ${Nl}ms ease-out`},false:{animation:`${Qv} ${Nl}ms ease-out`}}}}),Vi=qi("div",{transition:`all ${Nl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function ji(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=qv(null);return Ki.createElement(cf,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&Ki.createElement(Bl,{className:"collapsible_trigger",onClick:a},s),Ki.createElement(Gi,{className:"collapsible_content",open:e},r),c==="bottom"&&Ki.createElement(Bl,{className:"collapsible_trigger",onClick:a},s))}i(ji,"CustomCollapsible");import{darkTheme as pf,styled as Wl,TextField as Gv}from"@rango-dev/ui";var uf=Wl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),df=Wl(Gv,{backgroundColor:"$neutral100"}),mf=Wl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${pf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${pf} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function hf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=z()(),{config:s}=C(),c=C().blockchains(),l=Jr(e.name,c),p=Rv(null),u=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!tn(e,r),g=i(()=>{a("")},"handleClear"),d=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let T=await navigator.clipboard.readText();a(T),p?.current?.focus()}},"handlePaste"),S=i(()=>r?_e.createElement(gf,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},_e.createElement(jv,{size:12,color:"gray"})):m?null:_e.createElement(gf,{id:"widget-custom-destination-paste-icon-btn",onClick:d,variant:"ghost"},_e.createElement(Xv,{size:16})),"renderSuffix");return Jv(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),_e.createElement(uf,null,_e.createElement(ji,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:_e.createElement(mf,{id:"widget-custom-destination-collapsible-btn"},_e.createElement("div",{className:"button__content"},_e.createElement(Zv,{size:18,color:"info"}),_e.createElement(ff,{size:4,direction:"horizontal"}),_e.createElement(Yv,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Ml.t("Send to a different address"))),_e.createElement(Vi,{orientation:n?"up":"down"},_e.createElement(Kv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},_e.createElement(df,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Ml.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:S(),onChange:y=>{let T=y.target.value;a(T)}})),h&&_e.createElement(_e.Fragment,null,_e.createElement(ff,{size:4}),_e.createElement(Vv,{variant:"alarm",type:"error",title:Ml.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(hf,"CustomDestination");import{css as ex,IconButton as tx,SelectableWalletButton as ox,styled as ho}from"@rango-dev/ui";var yf=ho("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Sf=ho("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Cf=ho(ox,{justifyContent:"center"}),Tf=ho("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),kf=ho(tx,{position:"absolute",left:"$20"}),wf=ho("div",{paddingTop:"$20"}),vf=ex({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),xf=ho("div",{display:"flex"}),bf=ho("div",{overflow:"visible",width:"100%"});import{i18n as Pl}from"@lingui/core";import{warn as sx}from"@rango-dev/logging-core";import{Divider as lx,makeInfo as cx,SelectableWallet as px,Typography as Wf,WalletState as bn}from"@rango-dev/ui";import nt,{useEffect as Mf,useState as fr}from"react";import{Image as ix,MessageBox as ax}from"@rango-dev/ui";import mr from"react";import{keyframes as nx,styled as Ll}from"@rango-dev/ui";var Ef=Ll("div",{position:"relative"}),rx=nx({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),If=Ll("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${rx} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Af=Ll("div",{"& img":{borderRadius:"50%"}});import{i18n as xn}from"@lingui/core";function Nf(t,e){switch(t){case"in-progress":return{type:"loading",title:xn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:xn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:xn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:xn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:xn.t("Request Rejected"),description:xn.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(Nf,"generateMessageByStatus");function Bf(t){let{status:e,displayName:o,image:n}=t,r=Nf(e,o),a=e=="in-progress";return mr.createElement(ax,{type:r.type,title:r.title,description:r.description,icon:a?mr.createElement(Ef,null,mr.createElement(Af,null,mr.createElement(ix,{src:n,size:45})),mr.createElement(If,null)):void 0})}i(Bf,"ExperimentalChainStatus");var ux=7,dx=3e3;function _l(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{blockchains:l,connectedWallets:p}=C(),[u,m]=fr(),[f,h]=fr(null),[g,d]=fr(!1),[S,y]=fr(null),{suggestAndConnect:T}=Xi(),{list:k}=vt({chain:e}),[w,x]=fr(k),I=k.length,A=a&&I-a>0,b=i(async v=>{d(!1),y("in-progress");try{await T(v.walletType,v.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");Mf(()=>{x(v=>{let N=k.findIndex(M=>n(M.type,e));return A&&N>1?[k[N]].concat(k.filter((M,F)=>F!==N)):v.map(M=>k.find(F=>F.type===M.type)??M)})},[JSON.stringify(k)]);let E=document.getElementById(Re.SWAP_BOX_ID);return Mf(()=>{let v=null;return(S==="completed"||S==="rejected")&&(v=setTimeout(()=>y(null),dx)),()=>{v&&clearTimeout(v)}},[S]),nt.createElement(nt.Fragment,null,w.slice(0,a).map(v=>{let N=Iu({connectedWallets:p,walletType:v.type,chain:e}),M=v.state===bn.CONNECTED||v.state===bn.PARTIALLY_CONNECTED,F=N?lo(N,ux):"",H=M&&!!v.needsNamespace&&!F,X=ci(l(),e),J=!p.find(ue=>ue.walletType===v.type&&ue.chain===e),W=X&&J&&v.state===bn.CONNECTED,Z=i(async()=>{v.state===bn.DISCONNECTED||H?m(v):W?(h({walletType:v.type,chain:e,address:N??""}),d(!0)):r({walletType:v.type,chain:e,address:N??""})},"onSelectableWalletClick"),Y=cx(v.state),ce=i(()=>W?Pl.t({id:"Add {chain} chain",values:{chain:e}}):H?Pl.t("Chain not connected"):F||Y.description,"getWalletDescription"),fe=i(()=>v.state===bn.CONNECTED||v.state===bn.PARTIALLY_CONNECTED?H?"neutral600":"neutral700":Y.color,"getWalletDescriptionColor"),at=f?.chain?Jr(f.chain,l()):void 0;return nt.createElement(nt.Fragment,{key:`${v.title}_${at}`},!!f&&nt.createElement(ee,{id:"widget-wallets-list-watermarked-modal",open:!!f&&g,container:E,onClose:()=>{h(null)}},nt.createElement(zs,{id:"widget-wallets-list-experimental-chain-container",displayName:at,onConfirm:()=>{b(f)}})),S&&nt.createElement(ee,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!S,onClose:y.bind(null,null),container:E},nt.createElement(Bf,{status:S,displayName:at,image:v.image}),nt.createElement(lx,{direction:"vertical",size:32})),nt.createElement(px,{key:v.type,id:"widget-wallets-list-selectable-wallet-btn",description:ce(),descriptionColor:fe(),onClick:Z,selected:n(v.type,e),disabled:!c,...v}))}),nt.createElement(ar,{id:"widget-wallets-list-stateful-connect-modal",wallet:u,options:{defaultSelectedChains:o||[e]},onClose:()=>{m(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):sx(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),A&&nt.createElement(Cf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},nt.createElement(Wf,{variant:"label",size:"medium"},Pl.t("Show more wallets"),nt.createElement(Wf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(a??0)))))}i(_l,"WalletList");var Tx=2;function _f(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Cx(),c=C().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:m,customDestination:f,setCustomDestination:h}=z()(),{config:g,connectedWallets:d,setWalletsAsSelected:S}=C(),[y,T]=En(""),[k,w]=En([]),[x,I]=En(""),[A,b]=En(!!f),E=Sx(()=>Mo({filter:"all",quote:l}),[l]),v=Mo({filter:"required",quote:l}),N=c.find(D=>D.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),M=i(D=>v.includes(D),"isWalletRequiredFor"),F=yx(()=>d.filter(D=>D.selected&&E.includes(D.chain)),[d,E]),[H,X]=En(F()),[J,W]=En([]),Z=i((D,U)=>W(G=>G.concat({blockchain:D,walletType:U})),"addNextSelectedWallets"),Y=k.length>0,ce=i((D,U)=>!!H.find(G=>G.walletType===D&&G.chain===U&&G.selected&&(M(U)||!M(U)&&!f)),"isSelected"),fe=i((D,U,G)=>{let se=!1;return D.map(Q=>{if(Q.chain===U){let j=Q.selected;return!se&&G?(se=!0,j=!0):G||(j=!1),{...Q,selected:j}}return Q})},"updateSelectableWallets"),at=i(D=>{b(D),D?M(N?.name??"")||X(U=>fe(U,N?.name||"",!1)):(h(""),X(U=>fe(U,N?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),ue=i(D=>{if(y&&T(""),ce(D.walletType,D.chain))return;let G=d.find(se=>se.walletType===D.walletType&&se.chain===D.chain);G&&(n(),D.chain===N?.name&&A&&!M(N.name)&&(b(!1),h(null)),X(se=>se.filter(Q=>Q.chain!==D.chain).concat({...G,selected:!0})))},"onChange"),wt=i(()=>{let D=H.filter(U=>U.selected);S(D),p(D),m(!0),o()},"onConfirmBalance"),gt=i(async()=>{w([]),I("");let D=await r?.({selectedWallets:H.filter(G=>G.selected),customDestination:f}),U=D.warnings;U?.balance?.messages&&w(U.balance.messages),D.error&&I(vd(D.error)),!D.error&&!U?.balance?.messages.length?wt():w(U?.balance?.messages??[])},"onConfirmWallets");Pf(()=>{X(D=>{let U=[];return D.forEach(G=>{!d.some(Q=>Q.chain===G.chain&&Q.walletType===G.walletType&&Q.address===G.address)||U.push(G)}),U=U.concat(d.filter(G=>!!!U.find(Q=>Q.chain===G.chain)&&G.selected&&E.includes(G.chain))),U})},[d,E]),Pf(()=>{let D=[];J.length>0&&(J.forEach(U=>{let G=d.find(se=>se.chain===U.blockchain&&se.walletType===U.walletType);G?ue(G):D.push(U)}),W(D))},[d,J]);let Wt=document.getElementById(Re.SWAP_BOX_ID);return re.createElement(ee,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:Wt,...!y&&{styles:{container:{height:"100%"}},footer:re.createElement(xf,null,re.createElement(Lf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Jd(a,A,f,l,H,N),onClick:gt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Ho.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:re.createElement(Tf,null,re.createElement(kf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:T.bind(null,"")},re.createElement(gx,{size:16})),re.createElement($l,{variant:"headline",size:"small"},Ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:ht(y,c)}})))},anchor:"center"},re.createElement(ee,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:Y,onClose:w.bind(null,[]),container:Wt},re.createElement(hx,{title:Ho.t("Insufficient account balance"),type:"error",description:re.createElement(fx,{messages:k??[]})},re.createElement(Lf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:wt},Ho.t("Proceed anyway")))),y&&re.createElement(wf,null,re.createElement("div",{className:vf()},re.createElement(_l,{chain:y,quoteChains:E,isSelected:ce,selectWallet:ue,onShowMore:()=>T(y),onConnect:D=>{Z(y,D)}}))),!y&&re.createElement(re.Fragment,null,x&&re.createElement(re.Fragment,null,re.createElement(mx,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Ho.t(x)}),re.createElement(Dl,{size:12})),re.createElement(bf,null,E.map((D,U)=>{let G=c.find(K=>K.name===D),se=`wallet-${U}`,Q=U===E.length-1,j=Q&&N&&g?.customDestination!==!1;return re.createElement("div",{key:se},re.createElement(yf,null,re.createElement($l,{variant:"title",size:"xmedium"},Ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:G?.shortName}})),re.createElement($l,{variant:"label",color:"$neutral700",size:"medium"},Ho.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:G?.shortName}}))),re.createElement(Dl,{size:24}),re.createElement(Sf,null,re.createElement(_l,{chain:D,quoteChains:E,isSelected:ce,selectWallet:ue,limit:Tx,onShowMore:()=>T(G?.name??""),onConnect:K=>{Z(D,K)}})),!Q&&re.createElement(Dl,{size:32}),j&&re.createElement(hf,{blockchain:N,open:A,handleOpenChange:at}))}))))}i(_f,"ConfirmWalletsModal");import{i18n as Vx}from"@lingui/core";import{Alert as Kx,Button as jx,Divider as tg,InfoIcon as Xx}from"@rango-dev/ui";import Oe from"react";import{Alert as vx,Button as xx,Divider as Ul,NoRouteIcon as bx,RefreshIcon as Ex,Typography as Hf}from"@rango-dev/ui";import pt from"react";import{i18n as Df}from"@lingui/core";var kx=24,wx=60;function $f(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($f,"makeInfo");var Fl=(o=>(o[o.small=kx]="small",o[o.large=wx]="large",o))(Fl||{}),Ol=(o=>(o.small="small",o.large="medium",o))(Ol||{});import{styled as Yi}from"@rango-dev/ui";var Ff=Yi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Of=Yi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Uf=Yi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),zf=Yi("div",{padding:"$6 $0"});function gr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=C().getDisabledLiquiditySources(),s=C().toggleAllLiquiditySources,c=C().swappers(),l=$f(o,a,()=>s(c,!0),e);return r&&(l.alert=null),pt.createElement(Ff,{id:"widget-no-result-container"},pt.createElement(bx,{size:Fl[n],color:"gray"}),pt.createElement(Ul,{size:4}),pt.createElement(Hf,{variant:"title",size:Ol[n]},ne().noResultError.title),n==="large"&&pt.createElement(Ul,{size:4}),!!l.description&&pt.createElement(Of,{size:n},pt.createElement(Hf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),pt.createElement(Ul,{size:n==="large"?"24":"4"}),!!l.alert&&pt.createElement(Uf,{size:n},pt.createElement(vx,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&pt.createElement(xx,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:pt.createElement(zf,null,pt.createElement(Ex,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(gr,"NoResult");import{i18n as hr}from"@lingui/core";import{Button as Px,Divider as _x,MessageBox as Dx,Typography as $x,WarningIcon as Fx}from"@rango-dev/ui";import Yt from"react";import{InfoIcon as Bx,Tooltip as Wx,Typography as Mx}from"@rango-dev/ui";import In from"react";import{Button as Ix,darkTheme as Ax,styled as Qo,Typography as Nx}from"@rango-dev/ui";var Qf=Qo("div",{width:"100%"}),zl=Qo("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),qf=Qo("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Ax} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Gf=Qo("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$2"}),Vf=Qo(Nx,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"250px"}),Kf=Qo("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),jf=Qo(Ix,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});var Lx=35;function Xf(t){let{title:e,value:o,valueColor:n}=t,r=B();return In.createElement(qf,null,In.createElement(Mx,{size:"medium",variant:"label",className:"_title"},e),In.createElement(Gf,null,In.createElement(Vf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`),o.length>Lx&&In.createElement(Wx,{content:o,container:r},In.createElement(Bx,{size:12,color:"gray"}))))}i(Xf,"QuoteErrorsModalItem");function Yf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:hr.t("Swapping"),value:P(r.inputUsdValue)},{title:hr.t("Gas cost"),value:P(r.totalFee,2,2)},{title:hr.t("Receiving"),value:P(r.outputUsdValue)},{title:hr.t("Price impact"),value:P(r.priceImpact,2,2),valueColor:`${s}500`}];return Yt.createElement(ee,{id:"widget-high-value-loss-warning-modal",footer:Yt.createElement(Px,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Yt.createElement(Fx,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},Yt.createElement(Dx,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Yt.createElement(zl,null,Yt.createElement(_x,{size:"4"}),Yt.createElement($x,{size:"small",variant:"title"},hr.t("Details")),Yt.createElement(zl,null,c.map((l,p)=>Yt.createElement(Xf,{key:p,...l})))))}i(Yf,"HighValueLossWarningModal");import{i18n as An}from"@lingui/core";function Zf(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=An.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=An.t("Increase")),o;if(t){switch(t.type){case 0:{Xt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().highValueLossError.title;break}case 4:{o.title=An.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=An.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=An.t("Increase");break}case 3:{o.title=An.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Zf,"makeAlerts");function Jf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(Jf,"getRequiredSlippage");import{i18n as Nn}from"@lingui/core";import{Button as Ox,Divider as Hl,MessageBox as Ux,WarningIcon as zx}from"@rango-dev/ui";import Co from"react";import{useNavigate as Hx}from"react-router-dom";function Rf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=Hx();return Co.createElement(ee,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:B(),onClose:o},Co.createElement(Ux,{type:"warning",title:r.type===3?Nn.t("High slippage"):Nn.t("Low slippage"),description:r.type===3?Nn.t("Caution, your slippage is high. Your trade may be front run."):Nn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},Co.createElement(Hl,{size:18}),Co.createElement(Hl,{size:32}),Co.createElement(jf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},Co.createElement(zx,{color:"white",size:16}),Nn.t("Swap anyway")),Co.createElement(Hl,{size:10}),Co.createElement(Ox,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+$.settings)},Nn.t("Change Slippage"))))}i(Rf,"SlippageWarningModal");import{Button as Qx,MessageBox as qx,WarningIcon as Gx}from"@rango-dev/ui";import Zi from"react";function eg(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Zi.createElement(ee,{id:"widget-unknown-price-warning-modal",footer:Zi.createElement(Qx,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Zi.createElement(Gx,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},Zi.createElement(qx,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(eg,"UnknownPriceWarningModal");function yr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:m,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,d=Zf(e,o?.type===3||o?.type===4?o:null);d&&!n&&(d.action=null);let S=!!d&&!s,y=i(T=>{if(T==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,w=Jf(e,k);f?.(w)}else T==="change-settings"&&m()},"onclickActionButton");return Oe.createElement(Oe.Fragment,null,g&&Oe.createElement(Oe.Fragment,null,Oe.createElement(tg,{size:10}),Oe.createElement(gr,{skipAlerts:s,error:o,fetch:c})),S&&Oe.createElement(Qf,null,Oe.createElement(tg,{size:10}),Oe.createElement(Kx,{id:"widget-quote-warning-and-errors-alert",title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:Oe.createElement(Kf,{onClick:l},Oe.createElement(Xx,{size:12,color:"gray"}))},...(d.action==="change-settings"||d.action==="change-slippage")&&{action:Oe.createElement(jx,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:d.alertType,onClick:()=>y(d.action)},d.actionButtonTitle||Vx.t("Change"))}})),e&&Oe.createElement(Oe.Fragment,null,e.type===0&&Oe.createElement(Yf,{...h,warning:e}),(e.type===3||e.type===2)&&Oe.createElement(Rf,{...h,warning:e}),e.type===1&&Oe.createElement(eg,{...h,warning:e})))}i(yr,"QuoteWarningsAndErrors");import vb from"bignumber.js";import ma from"react";import{i18n as qo}from"@lingui/core";import{Alert as db,Divider as Wn,FullExpandedQuote as mb,InfoIcon as Rl,NumericTooltip as ec,QuoteTag as fb,StepDetails as gb,TokenAmount as hb,Typography as Mn,useIsTruncated as tc}from"@rango-dev/ui";import oc from"bignumber.js";import O,{useRef as pa,useState as yb}from"react";import{styled as Ql}from"@rango-dev/ui";var ql=Ql("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),og=Ql("div",{paddingBottom:"$15","& .from-amount-text":{wordBreak:"break-word"},variants:{dense:{true:{paddingBottom:0}}}}),ng=Ql("div",{width:"100%",display:"flex"});import*as Ji from"@radix-ui/react-collapsible";import{Button as Yx,css as Ri,darkTheme as De,Image as rg,styled as Ve,Typography as Gl}from"@rango-dev/ui";var Zx=300,ig=Ve(Ji.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${De} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),ag=Ri({padding:"$10 $15"}),sg=Ve(Yx,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${De} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${De} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${De} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),lg=Ve("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${De} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${De} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${De} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${De} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${De} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${De} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${De} &`]:{backgroundColor:"$neutral400"}}}}]}),cg=Ri({width:"100%",padding:"$15 $15 $10 $15"}),pg=Ri({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Bn=Ri({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),ug=Ve(Ji.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:{[`& ${rg}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${rg}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${De} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),dg=Ve("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"}}}}),mg=Ve(Gi,{width:"100%",background:"inherit"}),Vl=Ve("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Zx}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),xQ=Ve("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),fg=Ve("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${De} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),gg=Ve("div",{display:"flex",flexDirection:"row",alignItems:"center",gap:"$2",flex:"1 1 auto",minWidth:0}),Kl=Ve(Gl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"$30"}),jl=Ve(Gl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:"0 1 auto"}),Xl=Ve("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"}}}}),hg=Ve("div",{display:"flex"}),ea=Ve("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${De} &`]:{borderTopColor:"$neutral800"}}),yg=Ve(Gl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,flexShrink:3});import{i18n as $t}from"@lingui/core";import{ChevronDownIcon as Rx,CloseIcon as eb,Divider as na,IconButton as tb,NumericTooltip as ob,QuoteCost as nb,Typography as Et}from"@rango-dev/ui";import R,{useState as kg}from"react";import{css as Jx,styled as ta}from"@rango-dev/ui";var oa=ta("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Yl=ta("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Sg=ta("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Cg=ta("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Tg=Jx({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var rb=i(t=>t.fee.isZero()?null:R.createElement(oa,null,R.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},t.label),R.createElement(Et,{variant:"label",size:"medium"},"$",P(t.fee,4,4))),"NonPayableFee");function Zl(t){let[e,o]=kg(!1),[n,r]=kg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:m,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?Wo():B(),d=qd(h),S=P(c,2,2);return R.createElement(R.Fragment,null,R.createElement(nb,{onClickFee:m?y=>{y.stopPropagation(),o(!e)}:void 0,fee:S,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:m?$t.t("View more info"):void 0,tooltipContainer:g}),R.createElement(ee,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:R.createElement(Cg,{style:{textAlign:f?"left":"center"}},R.createElement(Et,{variant:"title",size:"medium"},$t.t("Gas & Fee Explanation")),R.createElement(tb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},R.createElement(eb,{color:"gray",size:14}))),onClose:()=>{o(!1)}},R.createElement(Sg,null,R.createElement(Et,{variant:"title",size:"small"},$t.t("Details")),R.createElement(na,{size:10}),Object.entries(d.payable).flatMap(([y,T])=>T.map((k,w)=>{let x=`payable-fee-${w}`,I=Ks(k);return R.createElement(oa,{key:x},R.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},Hs(y,$t.t)),R.createElement(ob,{content:k.amount,container:g},R.createElement(Et,{variant:"label",size:"medium"},P(k.amount,2,2),k.asset.symbol," ($",P(I,4,4),")")))})),R.createElement(oa,{className:"total_payable_fee"},R.createElement(Et,{variant:"label",size:"medium"},$t.t("Total Payable Fee")),R.createElement(Et,{variant:"label",size:"medium"},"$",P(c,4,4))),R.createElement(Yl,null),!!Object.keys(d.nonePayable).length&&R.createElement(ji,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:R.createElement("div",{className:Tg()},R.createElement(Et,{size:"small",variant:"body",color:"neutral700"},n?$t.t("Hide non-payable fees"):$t.t("Show non-payable fees")),R.createElement(na,{size:4,direction:"horizontal"}),R.createElement(Vi,{orientation:n?"up":"down"},R.createElement(Rx,{size:12,color:"gray"}))),open:n},R.createElement(Et,{size:"small",variant:"title"},$t.t("Description")),R.createElement(na,{size:4}),R.createElement(Et,{size:"small",variant:"body",color:"neutral700"},$t.t(`The following fees are considered in the transaction output and
|
|
2
|
+
you won\u2019t need to pay extra gas for them.`)),R.createElement(na,{size:10}),Object.entries(d.nonePayable).map(([y,T],k)=>{let w=Qd(T),x=Hs(y,$t.t),I=`non-payable-fee-${k}`;return R.createElement(rb,{key:I,fee:w,label:x})}),R.createElement(Yl,null)))))}i(Zl,"QuoteCostDetails");import{i18n as xg}from"@lingui/core";import{TokenAmount as bg}from"@rango-dev/ui";import ra from"react";import{css as ib,styled as ab}from"@rango-dev/ui";var wg=ab("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),vg=ib({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 ra.createElement(wg,null,ra.createElement(bg,{direction:"horizontal",label:xg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:B(),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}}),ra.createElement("div",{className:vg()}),ra.createElement(bg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:B(),label:xg.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 Bg}from"@lingui/core";import{ChevronDownIcon as cb,ChevronRightIcon as pb,Divider as Jl,Image as ub,Tooltip as ca,Typography as aa}from"@rango-dev/ui";import q from"react";import{useLayoutEffect as sb,useState as Cr}from"react";var Eg=480,Ig=768,Ag=1024,Ng=1200,lb=i(()=>{let[t,e]=Cr(!1),[o,n]=Cr(!1),[r,a]=Cr(!1),[s,c]=Cr(!1),[l,p]=Cr(!1),u=i(()=>{e(window.innerWidth<=Eg),n(window.innerWidth>Eg&&window.innerWidth<=Ig),a(window.innerWidth>Ig&&window.innerWidth<=Ag),c(window.innerWidth>Ag&&window.innerWidth<=Ng),p(window.innerWidth>Ng)},"handleResize");return sb(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),ia=lb;var sa=4,la=6,Tr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||B();return q.createElement(ca,{container:c,side:"bottom",sideOffset:4,open:r,content:e},q.createElement(dg,{className:n,state:a},q.createElement(ub,{src:o,size:16})))},"ImageComponent");function Wg(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||B(),p=r.length,u=Ld(r),{isTablet:m,isMobile:f}=ia();return q.createElement(ug,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},q.createElement("div",{className:Bn()},q.createElement(aa,{variant:"body",size:"xsmall"},Bg.t("Via:")),q.createElement(Jl,{direction:"horizontal",size:4}),r.map((h,g)=>{let d=`item-${g}`,S=q.createElement(Vl,null,q.createElement(pb,{size:12,color:"black"}));return f||m?q.createElement(q.Fragment,{key:d},q.createElement(Tr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&q.createElement(q.Fragment,null,S)):q.createElement(q.Fragment,{key:d},p<=sa||p>sa&&g<sa-1?q.createElement(q.Fragment,null,q.createElement(Tr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&q.createElement(q.Fragment,null,S)):g===sa-1&&q.createElement(ca,{container:l,side:"bottom",align:"end",sideOffset:4,content:q.createElement("div",{className:Bn()},S,r.map((y,T)=>{let k=`image-${T}`;return T>=g&&q.createElement(q.Fragment,{key:k},q.createElement(Tr,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),T!==p-1&&q.createElement(q.Fragment,null,S))}))},q.createElement(Xl,{state:r.find((y,T)=>T>=g&&(y.state==="error"||y.state==="warning"))?.state},q.createElement(aa,{size:"xsmall",variant:"body"},"+",p-g))))})),q.createElement("div",{className:Bn()},q.createElement("div",{className:"blockchains_section"},q.createElement("div",{className:Bn()},q.createElement(aa,{variant:"body",size:"xsmall"},Bg.t("Chains:")),q.createElement(Jl,{direction:"horizontal",size:4}),u.map((h,g)=>q.createElement(q.Fragment,{key:h.displayName},u.length<=la||u.length>la&&g<la-1?q.createElement(ca,{container:l,side:"bottom",content:h.displayName,sideOffset:4},q.createElement(Tr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===la-1&&q.createElement(ca,{container:l,side:"bottom",align:"end",sideOffset:4,content:q.createElement("div",{className:Bn()},u.map((d,S)=>S>=g&&q.createElement(Tr,{key:d.displayName,content:"",src:d.image??"",open:!1,className:S>g?"blockchainImage":"",container:c})))},q.createElement(Xl,{className:"blockchainImage"},q.createElement(aa,{size:"xsmall",variant:"body"},"+",u.length-g))))),q.createElement(Jl,{direction:"horizontal",size:32}))),q.createElement(Vl,{orientation:a?"up":"down"},q.createElement(cb,{size:12,color:"black"}))))}i(Wg,"QuoteTrigger");function nc(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:m=!1,container:f}=t,h=C().blockchains(),{findToken:g}=C(),d=C().swappers(),{customSlippage:S,slippage:y}=C(),T=S||y,[k,w]=yb(t.expanded),x=pa(null),I=P(n.value,6,6),A=n.usdValue?P(n.usdValue,4,4):"",b=jt(o.usdValue,n.usdValue??null),E=P(b,2,2),v=Xt(b??0),N=i((Q,j)=>Q.map((K,Ie)=>{let Ae,Ke=r?.type===3&&r.swap.swapperId===K.swapperId,Mt=r?.type===4&&!!r.recommendedSlippages?.[Ie],so=a?.type===2&&!!a.recommendedSlippages?.[Ie],Io=Ke||Mt,Un=so;Io?Ae="error":Un&&(Ae="warning");let Yr=Io?qo.t("Slippage Error"):qo.t("Slippage Warning");return Ke&&(Yr=qo.t("Bridge Limit Error")),{swapper:{displayName:Hn(K.swapperId,d)??"",image:K.swapperLogo},from:{token:{displayName:K.from.symbol,image:K.from.logo},chain:{displayName:ht(K.from.blockchain,h)??"",image:K.from.blockchainLogo},price:{value:Ie===0&&!j?P(o.value,6,6):P(K.fromAmount,6,6),usdValue:P((K.from.usdPrice??0)*parseFloat(K.fromAmount),4,4),realValue:Ie===0?o.value:K.fromAmount,realUsdValue:new oc(K.from.usdPrice??0).multipliedBy(K.fromAmount).toString()}},to:{token:{displayName:K.to.symbol,image:K.to.logo},chain:{displayName:ht(K.to.blockchain,h)||"",image:K.to.blockchainLogo},price:{value:P(K.toAmount,6,6),usdValue:P((K.to.usdPrice??0)*parseFloat(K.toAmount),4,4),realValue:K.toAmount,realUsdValue:new oc(K.to.usdPrice??0).multipliedBy(K.toAmount).toString()}},state:Ae,alerts:Io||Un?O.createElement(og,{dense:m},O.createElement(db,{variant:"alarm",type:Io?"error":"warning",title:Yr,id:"widget-quote-footer-step-alarm-alert",footer:O.createElement(ng,null,Ke&&O.createElement("div",null,O.createElement(Mn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),O.createElement(Wn,{direction:"vertical",size:2}),O.createElement(Mn,{size:"xsmall",variant:"body",className:"from-amount-text",color:"neutral900"},qo.t({id:"Yours: {amount} {symbol}",values:{amount:P(K.fromAmount,6,6),symbol:K?.from.symbol}}))),(Mt||so)&&!Ke&&O.createElement("div",null,O.createElement(Mn,{size:"xsmall",variant:"body",color:"neutral900"},qo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[Ie]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[Ie]}}})),O.createElement(Wn,{direction:"vertical",size:2}),O.createElement(Mn,{size:"xsmall",variant:"body",color:"neutral900"},qo.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:qn(K.estimatedTimeInSeconds),fee:P(Vs(K,g),2,2),internalSwaps:K.internalSwaps?N(K.internalSwaps):void 0}}),"getQuoteSteps"),M=N(e?.swaps??[]),F=M.length,H=f||B(),X=_d(t.quote.tags||[]),J=!!u,W=ai(e?.swaps),Z=qn(W),Y=Ni(e?.swaps??[],g),ce=P(Y,2,2),fe=Y.gte(new oc(bd)),at=W/Id>=Ed,ue=pa(null),wt=tc(o.value,ue),gt=pa(null),Wt=tc(n.value,gt),D=pa(null),U=tc(A,D),G=M[F-1],se=M[0];return!se||!G?null:m?O.createElement(mb,{selected:c,fee:ce,time:Z,tooltipContainer:Wo(),steps:M,tags:X,id:"widget-quote-full-expanded-quote-container",quoteCost:O.createElement(Zl,{quote:e,fullExpandedMode:!0,time:Z,fee:Y,feeWarning:fe,timeWarning:at,showModalFee:p,steps:F}),percentageChange:E,warningLevel:v,outputPrice:{value:I,usdValue:A,realValue:n.value,realUsdValue:n.usdValue}}):O.createElement(lg,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},O.createElement("div",{className:cg()},!l&&X.length?O.createElement(O.Fragment,null,O.createElement(hg,null,X.map((Q,j)=>{let K=`${Q.value}_${j}`;return O.createElement(O.Fragment,{key:K},O.createElement(fb,{label:Q.label,value:Q.value}),O.createElement(Wn,{size:4,direction:"horizontal"}))})),O.createElement(ea,null),!J&&O.createElement(Wn,{size:4})):null,O.createElement("div",{id:"portal-root",className:pg()},O.createElement(Zl,{quote:e,time:Z,fee:Y,feeWarning:fe,timeWarning:at,showModalFee:p,steps:F}),J&&O.createElement(sg,{onClick:Q=>{Q.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},O.createElement(Mn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},qo.t("See All Routes")))),s==="basic"&&O.createElement(gg,null,O.createElement(jl,{ref:ue,size:"small",variant:"body"},o.value),wt&&O.createElement(ec,{content:o.value,container:H,open:o.value?void 0:!1},O.createElement(Rl,{size:12,color:"gray"})),O.createElement(Kl,{size:"small",variant:"body"},M[0]?.from.token.displayName),O.createElement(Mn,{size:"small",variant:"body"},"="),O.createElement(jl,{ref:gt,size:"small",variant:"body"},n.value),Wt&&O.createElement(ec,{content:n.value,container:H,open:n.value?void 0:!1},O.createElement(Rl,{size:12,color:"gray"})),O.createElement(Kl,{size:"small",variant:"body"},G?.to.token.displayName),O.createElement(Wn,{size:2,direction:"horizontal"}),O.createElement(yg,{ref:D,color:"$neutral600",size:"xsmall",variant:"body"},`($${A})`),U&&O.createElement(ec,{content:n.usdValue,container:H},O.createElement(Rl,{size:12,color:"gray"}))),s==="list-item"&&O.createElement(hb,{id:"widget-quote-token-amount-container",tooltipContainer:H,type:"output",direction:"vertical",price:{value:I,usdValue:A,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:G.to.token.displayName,image:G.to.token.image},chain:{image:G.to.chain.image},percentageChange:E,warningLevel:v}),s==="swap-preview"&&O.createElement(O.Fragment,null,O.createElement(Sr,{from:se.from,to:G.to,percentageChange:E,warningLevel:v}),O.createElement(Wn,{size:4}))),O.createElement(ig,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},O.createElement(Wg,{type:s,quoteRef:x,selected:c,setExpanded:w,container:H,expanded:k,steps:M}),O.createElement(mg,{open:k},O.createElement(fg,null),O.createElement("div",{className:ag()},M.map((Q,j)=>{let K=`item-${j}`;return O.createElement(gb,{type:"quote-details",className:"widget-quote-step-details-container",key:K,tooltipContainer:H,step:Q,hasSeparator:j!==M.length-1,state:Q.state})})))))}i(nc,"Quote");import{Divider as kb,Skeleton as wb}from"@rango-dev/ui";import eo from"react";import{darkTheme as Sb,styled as ua}from"@rango-dev/ui";var Mg=ua("div",{$$color:"$colors$neutral100",[`.${Sb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Lg=ua("div",{paddingTop:"$2"}),Pg=ua("div",{paddingLeft:"$8"}),_g=ua("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Gg,Divider as It,Skeleton as ut}from"@rango-dev/ui";import V from"react";import{css as Cb,styled as Rt}from"@rango-dev/ui";var rc=Rt("div",{display:"flex"}),Dg=Rt("div",{padding:"$10 $0 $20"}),$g=Rt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Fg=Rt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Og=Rt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Ug=Rt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),zg=Rt("div",{width:"65%",display:"flex",justifyContent:"start"}),Hg=Rt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Qg=Rt("div",{padding:"$15 $0 $15 $0"}),qg=Cb({display:"flex",justifyContent:"space-between",alignItems:"center"});function kr(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(Og,null,V.createElement(zg,null,V.createElement(Gg,{loading:!0,size:"medium"}),V.createElement(It,{size:8,direction:"horizontal"}),V.createElement(Hg,null,V.createElement(ut,{height:10,width:60,variant:"rounded"}),V.createElement(It,{size:4}),V.createElement(ut,{height:15,variant:"rounded"}))),V.createElement(ut,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(rc,null,V.createElement(ut,{width:65,height:20,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(ut,{width:65,height:20,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(ut,{width:65,height:20,variant:"rounded"})),V.createElement(ea,null),!r&&V.createElement(It,{size:4})),V.createElement("div",{className:qg()},V.createElement(rc,null,V.createElement(ut,{width:60,height:10,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(ut,{width:60,height:10,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(ut,{width:60,height:10,variant:"rounded"})),r&&V.createElement(ut,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(Dg,null,V.createElement(ut,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement($g,null,V.createElement(Fg,null,V.createElement(Gg,{loading:!0,size:"medium"}),V.createElement(It,{direction:"horizontal",size:4}),V.createElement(ut,{height:15,width:150,variant:"rounded"})),V.createElement(It,{size:10}),V.createElement(ut,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(It,{size:4}),V.createElement(Qg,null,n,V.createElement(Ug,null),n),V.createElement(It,{size:12})))}i(kr,"QuoteSummarySkeleton");import{ChainToken as Yg,Divider as ac,NextIcon as Tb,Skeleton as da}from"@rango-dev/ui";import Me from"react";import{styled as wr}from"@rango-dev/ui";var Vg=wr("div",{display:"flex",alignItems:"start"}),Kg=wr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),ic=wr("div",{display:"flex",alignItems:"center",flexGrow:1}),jg=wr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Xg=wr("div",{display:"flex",alignItems:"center"});function Ft(t){let{separator:e=!0}=t;return Me.createElement(Me.Fragment,null,Me.createElement(Xg,null,Me.createElement(da,{height:22,width:22,variant:"circular"}),Me.createElement(ac,{direction:"horizontal",size:8}),Me.createElement(da,{height:15,width:148,variant:"rounded"})),Me.createElement(Vg,null,Me.createElement(_g,{hideSeparator:!e}),Me.createElement(Kg,{extraSpace:e},Me.createElement(ic,null,Me.createElement(Yg,{size:"small",loading:!0}),Me.createElement(ac,{direction:"horizontal",size:8}),Me.createElement(da,{height:12,variant:"rounded"})),Me.createElement(jg,null,Me.createElement(Tb,{color:"gray",size:16})),Me.createElement(ic,null,Me.createElement(Yg,{size:"small",loading:!0}),Me.createElement(ac,{direction:"horizontal",size:8}),Me.createElement(da,{height:12,variant:"rounded"})))))}i(Ft,"StepSkeleton");function vr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return eo.createElement(Mg,{expanded:o,rounded:e!=="basic"},eo.createElement(kr,{type:e,tagHidden:n}),eo.createElement(Lg,null,eo.createElement(wb,{height:15,variant:"rounded"})),o&&eo.createElement(Pg,null,eo.createElement(kb,{size:24}),eo.createElement(Ft,null),eo.createElement(Ft,null),eo.createElement(Ft,{separator:!1})))}i(vr,"QuoteSkeleton");function Go(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:m,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:d,inputUsdValue:S}=z()(),y=e?.outputAmount?new vb(e?.outputAmount):null,T=e?St(e):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?ma.createElement(ql,null,ma.createElement(vr,{tagHidden:c,type:o,expanded:s})):w?ma.createElement(ql,{onClick:()=>l?.(e),id:m},ma.createElement(nc,{quote:e,error:r,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:h,input:{value:d,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(Go,"QuoteInfo");import{warn as Ib}from"@rango-dev/logging-core";import{calculatePendingSwap as Ab}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Nb}from"react";import{useRef as xb,useState as bb}from"react";var Eb=2e3;function fa({request:t}){let[e,o]=bb(!1),n=xb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,Eb)),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(fa,"useFetch");function Zg(){let{fetch:t,loading:e,cancelFetch:o}=fa({request:async(n,r)=>await ct().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Zg,"useFetchConfirmQuote");function ga(t){if(!t.swaps)throw new Error(ne().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=sc(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ga,"throwErrorIfResponseIsNotValid");function sc(t){if(Ud(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=zd(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=Gd(t);if(o){let n=Bi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(sc,"getQuoteError");function Jg(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=jd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(Jg,"generateWarnings");function ha(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(ha,"handleQuoteErrors");function lc(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=z()(),{slippage:l,customSlippage:p}=C(),u=C().getDisabledLiquiditySources(),m=C().blockchains(),f=C().tokens(),{findToken:h}=C(),{swapMode:g}=tt(),d=p||l,{fetch:S,cancelFetch:y,loading:T}=Zg();return Nb(()=>y,[]),{loading:T,fetch:i(async w=>{let x=w.selectedWallets,I=w?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=x.reduce((E,v)=>(E[v.chain]=v.address,E),{}),b={requestId:a?.requestId||"",selectedWallets:A,destination:I||void 0};try{return await S(b,!0).then(E=>{let{result:v}=E;if(!v)throw new Error(E.error??"Error fetching updated quote");ga({diagnosisMessages:v.diagnosisMessages,requestId:v.requestId,swaps:v.result?.swaps});let N={outputAmount:v.result?.outputAmount,requestId:v.requestId,resultType:v.result?.resultType,swaps:v.result?.swaps||[],validationStatus:v.validationStatus,requestAmount:v.requestAmount};r(N);let M={slippage:d.toString(),disabledSwappersGroups:u},F=Jg({previousQuote:a??void 0,currentQuote:N,meta:{blockchains:m},selectedWallets:x,userSlippage:d,inputUsdValue:n,findToken:h});c();let H=!!F.balance,X=Ab({inputAmount:o.toString(),bestRoute:v,wallets:Kd(x),settings:M,validateBalanceOrFee:!H,meta:{blockchains:m,tokens:f},swapMode:g});return{quote:N,swap:X,error:null,warnings:F}})}catch(E){let v=ha(E);return v.type!==2&&Ib(new Error("confirm swap error"),{tags:{...v,type:Ye[v.type],initialQuote:a,requestBody:b}}),{swap:null,error:v,warnings:null}}},"fetch"),cancelFetch:y}}i(lc,"useConfirmSwap");var Ob=Lb("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Rg}`]:{width:"$48",height:"$48"}}),Ub=uc({flexGrow:1,paddingRight:"$10"}),zb=uc({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Hb=uc({display:"flex",justifyContent:"space-between",alignItems:"center"});function eh(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=z()(),s=Fb(),[c,l]=xr(""),p=!n,[u,m]=xr(!1),[f,h]=xr(!1),{isActiveTab:g}=oe(),d=C().getDisabledLiquiditySources(),S=$b(d),{manager:y}=Bb(),{fetch:T,loading:k,cancelFetch:w}=lc(),[x,I]=xr({swap:null,error:null,warnings:null}),[A,b]=xr(!1),E=i(async({selectedWallets:W,customDestination:Z})=>{let Y=await T?.({selectedWallets:W,customDestination:Z});return I(Y),Y},"onConfirmSwap"),v=i(async()=>{if(x.swap&&n)try{await y?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let W=`../${$.swaps}/${x.swap.requestId}`;s(W,{replace:!0}),setTimeout(()=>{e("")},0)}catch(W){l("Error: "+W?.message)}},"addNewSwap"),N=i(async()=>{h(!0),await v(),h(!1)},"onConfirm"),M=i(async()=>{x.warnings?.quote&&Md(x.warnings.quote)&&!a?b(!0):await N()},"onStartConfirmSwap"),F=i(async()=>{I({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(W=>{I(W)}).catch(W=>console.error(W))},"onRefresh");ya(()=>{!!S.current.length&&!d.length&&F(),S.current=d},[d.length]),ya(()=>{p&&w()},[p]),ya(()=>{p&&m(p)},[p]),ya(()=>{p||T({selectedWallets:o,customDestination:r}).then(W=>I(W)).catch(W=>console.error(W))},[]),Db(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=x.warnings?.quote??null,X=x.error,J=[];if(c&&J.push($e.createElement(Wb,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),H||X){let W=`../${$.settings}`;J.push($e.createElement(yr,{warning:H,error:X,couldChangeSettings:!1,refetchQuote:F,skipAlerts:X?.type===4||H?.type===2,showWarningModal:A,confirmationDisabled:!g,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await v()},onChangeSettings:()=>s(W)}))}return $e.createElement(ie,{header:{title:cc.t("Confirm Swap"),onWallet:()=>{let W=`../${$.wallets}`;s(W)}},footer:$e.createElement(Ob,null,$e.createElement("div",{className:Ub()},$e.createElement(Mb,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!x.error||!g,onClick:M},cc.t("Start Swap"))),$e.createElement(Rg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:m.bind(null,!0)},$e.createElement(_b,{size:24})))},u&&$e.createElement(_f,{open:u,onClose:()=>m(!1),onCancel:w,loading:k,onCheckBalance:E}),$e.createElement(le,null,$e.createElement("div",{className:Hb()},$e.createElement(Pb,{variant:"title",size:"small"},cc.t("You get")),$e.createElement("div",{className:zb()},$e.createElement(Fi,{onClick:!k&&!u&&!A?F:void 0}))),$e.createElement(pc,{size:"12"}),bm(J.map((W,Z)=>({element:W,key:`alert-${Z}`})),$e.createElement(pc,{size:10})),J.length>0?$e.createElement(pc,{size:10}):null,$e.createElement(Go,{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(eh,"ConfirmSwapPage");import{i18n as oo}from"@lingui/core";import{Button as vc,CustomTokensZeroStateDarkIcon as lE,CustomTokensZeroStateIcon as cE,DeleteIcon as pE,Divider as Nr,IconButton as uE,MessageBox as dE,NotFound as mE,styled as bc}from"@rango-dev/ui";import ye,{useState as xc}from"react";import{useNavigate as fE}from"react-router-dom";import{CloseIcon as Qb,IconButton as qb,SearchIcon as Gb,TextField as Vb}from"@rango-dev/ui";import Ln from"react";import{styled as th}from"@rango-dev/ui";var oh=th("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),nh=th("div",{width:"100%","& ._text-field":{paddingLeft:"$10","& input":{paddingLeft:"$2",paddingTop:"$12",paddingBottom:"$12"}}});function At(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...m}=t,f=s.length?Ln.createElement(qb,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},Ln.createElement(Qb,{color:"gray",size:10})):null;return p&&(f=p),Ln.createElement(nh,null,Ln.createElement(Vb,{prefix:Ln.createElement(oh,null,Ln.createElement(Gb,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...m}))}i(At,"SearchInput");import{i18n as wc}from"@lingui/core";import{Button as Yb,CustomTokenWarning as Zb,darkTheme as gh,Divider as to,ExternalLinkIcon as Jb,Image as Rb,ListItem as eE,NotFound as tE,PinIcon as oE,Skeleton as Vo,Typography as Ir,VirtualizedList as nE}from"@rango-dev/ui";import L,{useState as rE}from"react";import{useTranslation as iE}from"react-i18next";import{Divider as mh,ListItem as Xb,Skeleton as Er}from"@rango-dev/ui";import Nt from"react";import{css as Pn,darkTheme as dc,ImageContainer as Kb,ListItemButton as jb,styled as rt,Typography as rh}from"@rango-dev/ui";var mc=Pn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),fc=Pn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),gc=Pn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),hc=Pn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${dc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),yc=Pn({}),Sc=Pn(),ih=rt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),Cc=rt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Sa=rt("ul",{flexGrow:1,height:"100%",padding:0,margin:0,display:"flex",flexDirection:"column",listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${fc}`]:{[`& .${hc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${yc}`]:{bottom:"-15px"},[`& .${mc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${gc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),ah=rt(jb,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),Tc=rt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),kc=rt(rh,{}),sh=rt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Sc}`]:{$$color:"$colors$neutral600",[`.${dc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),br=rt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),wV=rt("div",{display:"flex",alignItems:"center"}),lh=rt("div",{position:"relative",[`& ${Kb}`]:{borderRadius:"$xm",overflow:"hidden"}}),ch=rt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),ph=rt(rh,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),uh=rt("a",{"& svg:hover":{color:"$colors$info"}}),dh=rt("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":{[`.${dc} &`]:{color:"$foreground"}}}});function fh(t){return Nt.createElement(Sa,null,Array.from(Array(t.size),e=>Nt.createElement(Xb,{key:e,hasDivider:!0,start:Nt.createElement(Er,{variant:"circular",width:35,height:35}),end:Nt.createElement(br,null,Nt.createElement(Er,{variant:"text",size:"large",width:70}),Nt.createElement(mh,{size:4}),Nt.createElement(Er,{variant:"text",size:"medium",width:50})),title:Nt.createElement("div",null,Nt.createElement(Er,{variant:"text",size:"large",width:90}),Nt.createElement(mh,{size:4}),Nt.createElement(Er,{variant:"text",size:"medium",width:90}))})))}i(fh,"LoadingTokenList");var aE=20,sE=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return L.createElement("div",{className:fc()},o?L.createElement("div",{className:mc()},o):L.createElement(Cc,{className:gc()},L.createElement(Ir,{variant:"title",size:"xmedium"},r.symbol),L.createElement(to,{direction:"horizontal",size:4}),L.createElement(Tc,{css:a},L.createElement(kc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&L.createElement("div",{className:`${hc()} ${!o&&yc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",L.createElement(to,{size:4,direction:"horizontal"}),L.createElement(uh,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},L.createElement(Jb,{size:12}))))},"renderDesc");function Ar(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=C().fetchStatus,u=C().blockchains(),{getBalanceFor:m,fetchingWallets:f}=C(),{isTokenPinned:h}=C(),{setFromToken:g,setToToken:d}=z()(),{t:S}=iE(),y=qe(),[T,k]=rE(null),w=i(()=>{c==="source"?g({token:T,meta:{blockchains:u}}):d({token:T,meta:{blockchains:u}})},"updateToken"),x=i(()=>{w(),y()},"handleImportToken"),I=i(E=>{if(E.customToken){let{customToken:N,...M}=E;return L.createElement(Yb,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(H=>{H.stopPropagation(),k({...M,warning:!0})},"handleClick")},L.createElement(Ir,{variant:"body",size:"xsmall",color:"background"},S("import")))}let v=pi(m(E));return s?s(E):f?L.createElement(br,null,L.createElement(Vo,{variant:"text",size:"large",width:70}),L.createElement(to,{size:4}),L.createElement(Vo,{variant:"text",size:"medium",width:50})):v&&L.createElement(sh,null,L.createElement(ph,{variant:"title",size:"small"},v.amount),L.createElement("div",null),v.usdValue&&L.createElement(Ir,{variant:"body",className:Sc(),size:"xsmall"},`$${v.usdValue}`))},"endRenderer"),A=i(()=>L.createElement(nE,{style:{flexGrow:1,minHeight:0},itemContent:E=>{let v=e[E];if(v==="skeleton")return L.createElement(eE,{hasDivider:!0,start:L.createElement(Vo,{variant:"circular",width:35,height:35}),end:L.createElement(br,null,L.createElement(Vo,{variant:"text",size:"large",width:70}),L.createElement(to,{size:4}),L.createElement(Vo,{variant:"text",size:"medium",width:50})),title:L.createElement("div",null,L.createElement(Vo,{variant:"text",size:"large",width:90}),L.createElement(to,{size:4}),L.createElement(Vo,{variant:"text",size:"medium",width:90}))});let N=u.find(W=>W.name===v?.blockchain);if(!N||!v)return null;let M=v.address,F=ll(N.color,"main"),H={$$color:F.main150,[`.${gh} &`]:{$$color:F.main750},backgroundColor:"$$color"},X={$$color:F.main750,[`.${gh} &`]:{$$color:F.main150},color:"$$color"},J=i(()=>{typeof v!="string"&&!v.customToken&&n?.(v)},"handleClick");return L.createElement(dh,null,L.createElement(ah,{"tab-index":E,key:`${v.symbol}${M}`,id:`${v.symbol}${M}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:v?.customToken,onClick:J,start:L.createElement(lh,null,L.createElement(Rb,{src:v.image===""?ei:v.image,size:30}),t.type!=="custom-token"&&v&&h(v,t.type)&&L.createElement(ch,null,L.createElement(oE,{size:12,color:"gray"}))),title:N.type==="COSMOS"||v.name||!v.name&&!M?L.createElement(Cc,null,L.createElement(Ir,{variant:"title",size:"xmedium"},v.symbol),L.createElement(to,{direction:"horizontal",size:4}),L.createElement(Tc,{css:H},L.createElement(kc,{variant:"body",size:"xsmall",css:X},v.blockchain)),l&&v.warning&&L.createElement(L.Fragment,null,L.createElement(to,{direction:"horizontal",size:4}),L.createElement(Zb,{container:B()}))):void 0,description:typeof v!="string"&&N.info&&M&&N.type!=="COSMOS"?sE({address:M,token:v,customCssForTag:H,customCssForTagTitle:X,name:v.name,url:N.info.addressUrl.split("{wallet}").join(M)}):v.name||void 0,end:I(v)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),b=T?No(T?.blockchain,u):null;return L.createElement(L.Fragment,null,a&&L.createElement(L.Fragment,null,L.createElement(Ir,{variant:"label",size:"large"},wc.t("Select Token")),L.createElement(to,{size:4})),L.createElement(ih,null,L.createElement(to,{size:4}),p==="loading"&&L.createElement(fh,{size:aE}),p==="success"&&(e.length?L.createElement(L.Fragment,null,L.createElement(dr,{token:T,address:T?.address??"",blockchain:b??void 0,onImport:x,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),L.createElement(Sa,{as:"ul"},A())):!!o&&L.createElement(tE,{title:wc.t("No results found"),description:wc.t("Try using different keywords")}))))}i(Ar,"TokenList");var gE=bc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),hE=bc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),yE=bc(uE,{"&:hover":{"& svg":{color:"$secondary550"}}});function hh(){let[t,e]=xc(""),{deleteCustomToken:o}=C(),n=C().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=z()(),{mode:l}=mo({}),p=fE(),[u,m]=xc(!1),[f,h]=xc(),g=i(T=>{let k=T.target.value;e(k)},"handleSearch"),d=l==="dark",S=n.filter(T=>st(T.symbol,t)||st(T.address||"",t)||st(T.name||"",t)),y=i(()=>{if(f){let T=a?yt(a):null,k=r?yt(r):null,w=yt(f);T===w?c({token:null}):k===w&&s({token:null}),o(f)}m(!1)},"handleDeleteCustomToken");return ye.createElement(ie,{header:{title:oo.t("Custom Tokens")}},ye.createElement(le,null,ye.createElement(gE,null,n.length?ye.createElement(ye.Fragment,null,ye.createElement(At,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:oo.t("Search Token"),onChange:g}),ye.createElement(Nr,{size:16}),ye.createElement(Ar,{list:S,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:T=>ye.createElement(yE,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{m(!0),h(T)}},ye.createElement(pE,{size:12,color:"gray"}))})):ye.createElement(hE,null,ye.createElement(mE,{icon:d?ye.createElement(lE,{size:200}):ye.createElement(cE,{size:200}),title:oo.t("No custom tokens"),description:oo.t("press the button to add your custom token")})),ye.createElement(Nr,{size:20}),ye.createElement(vc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p($.addCustomTokens)},oo.t("Add Custom Token"))),ye.createElement(ee,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>m(!1),container:B()},ye.createElement(dE,{title:oo.t("Delete Custom Token"),type:"error",description:oo.t("Are you sure you want to Delete this Token?")},ye.createElement(Nr,{size:40}),ye.createElement(Nr,{size:10}),ye.createElement(vc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},oo.t("Yes, Delete it")),ye.createElement(Nr,{size:12}),ye.createElement(vc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},oo.t("No, Continue"))))))}i(hh,"CustomTokensPage");import{i18n as Fe}from"@lingui/core";import{useManager as $E}from"@rango-dev/queue-manager-react";import{Button as Mc,darkTheme as FE,Divider as To,MessageBox as OE,NotFound as UE,styled as Lc,Tabs as zE,Typography as ka}from"@rango-dev/ui";import{TransactionStatus as Mr}from"rango-types";import te,{useMemo as _h,useState as Lr}from"react";import{useNavigate as HE}from"react-router-dom";import{FilterIcon as xE,Popover as bE}from"@rango-dev/ui";import Ko from"react";import{css as SE,darkTheme as Ca,IconButton as CE,styled as Br}from"@rango-dev/ui";var Ec=Br("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Ca} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),yh=Br(CE,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Ca} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Ca} &`]:{backgroundColor:"$neutral"},[`& ${Ec}::before`]:{backgroundColor:"$secondary100",[`.${Ca} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Sh=Br("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Ch=Br("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),Th=SE({display:"flex",justifyContent:"space-between",alignItems:"center"}),kh=Br("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as wh}from"@lingui/core";import{Button as TE,Divider as vh,ListItemButton as kE,Radio as wE,RadioRoot as vE,Typography as xh}from"@rango-dev/ui";import dt from"react";function bh(t){let{filterBy:e,onClickItem:o}=t;return dt.createElement(Ch,null,dt.createElement("div",{className:Th()},dt.createElement(xh,{size:"small",variant:"body"},wh.t("Status")),dt.createElement(TE,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},wh.t("Reset"))),dt.createElement(vh,{size:10}),dt.createElement(vE,{value:e},dt.createElement(kh,null,t.list.map((n,r)=>dt.createElement(kE,{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(vh,{direction:"horizontal",size:4}),dt.createElement(xh,{size:"medium",variant:"body"},n.title)),start:dt.createElement(wE,{value:n.id}),onClick:o})))))}i(bh,"FilterSelectorContent");function Ic(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Ko.createElement("div",null,Ko.createElement(bE,{open:a,align:"end",onOpenChange:o,container:B(),content:Ko.createElement(bh,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Ko.createElement(yh,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Ko.createElement(Ec,{isSelect:!!n},Ko.createElement(xE,{size:16,color:"black"}),!!n&&Ko.createElement(Sh,null)))))}i(Ic,"FilterSelector");import{i18n as AE}from"@lingui/core";import{getCurrentStep as NE}from"@rango-dev/queue-manager-rango-preset";import{Divider as Bh,GroupedVirtualizedList as BE,Skeleton as WE,SwapListItem as Wh,Typography as ME}from"@rango-dev/ui";import Ze,{useCallback as Mh,useEffect as LE,useRef as PE,useState as _E}from"react";function Eh(t,e){let o=[],n=0;do{let r=t[n];r&&(o.push(Math.min(r,e)),e-=r),n++}while(e>0&&n<=t.length);return o}i(Eh,"calculateGroupsSoFar");import{css as EE,darkTheme as IE,styled as Wr}from"@rango-dev/ui";var Ac=EE(),Ih=Wr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Nc=Wr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ac}`]:{$$color:"$colors$neutral600",[`.${IE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Bc=Wr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Ah=Wr("div",{gap:"$10",display:"flex",flexDirection:"column"}),Nh=Wr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var DE=10;function Wc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=_E([]),c=PE(0),{swaps:l,groupCounts:p,groups:u}=n(e),m=Mh(Eh,[]),f=Mh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,DE),s(m(p,c.current)))},[e.length]);if(LE(()=>{r||f()},[r,f]),r){let h=[1,2];return Ze.createElement(Ze.Fragment,null,[h,h].map((d,S)=>Ze.createElement(Nc,{key:S},Ze.createElement(Bc,null,Ze.createElement(WE,{variant:"text",width:60,size:"small"}),Ze.createElement(Bh,{size:16})),Ze.createElement(Bh,{size:4}),Ze.createElement(Ah,null,d.map((T,k)=>Ze.createElement(Wh,{isLoading:!0,key:k}))))))}return Ze.createElement(BE,{style:{flexGrow:1,minHeight:0},endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>Ze.createElement(Nc,null,Ze.createElement(Bc,null,Ze.createElement(ME,{variant:"label",size:"medium",className:Ac()},u[h]))),itemContent:(h,g)=>{let d=l[h];if(!d)return null;let S=NE(d),y=d.steps[0],T=d.steps[d.steps.length-1];return!y||!T?null:Ze.createElement(Ih,{key:d.requestId},Ze.createElement(Wh,{className:"widget-history-group-list-swap-item-btn",requestId:d.requestId,creationTime:d.creationTime,status:d.status,onClick:o,currentStep:S,tooltipContainer:B(),onlyShowTime:u[g]===AE.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:P(d.inputAmount,6,6),realAmount:d.inputAmount},to:{token:{image:T.toLogo,displayName:T.toSymbol},blockchain:{image:T.toBlockchainLogo||""},amount:P(T.outputAmount||T.expectedOutputAmountHumanReadable||"",6,6),realAmount:T.outputAmount||T.expectedOutputAmountHumanReadable||""}}}))}})}i(Wc,"HistoryGroupedList");import{i18n as Ta}from"@lingui/core";import Lh from"dayjs";var Ph=i(t=>{let e=new Map([["today",{title:Ta.t("Today"),swaps:[]}],["week",{title:Ta.t("This week"),swaps:[]}],["month",{title:Ta.t("This month"),swaps:[]}],["year",{title:Ta.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=Lh();t.forEach(l=>{let p=Number(l.creationTime),u=Lh(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(l);else{let m=new Date(p).getFullYear().toString();o(m,l)}});let r=Array.from(e.values()).filter(l=>l.swaps.length>0),a=r.flatMap(l=>l.swaps),s=r.map(l=>l.swaps.length),c=r.map(l=>l.title);return{swaps:a,groupCounts:s,groups:c}},"groupSwapsByDate");var QE=Lc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%",minHeight:0,flexGrow:1}),qE=Lc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),GE=Lc("div",{"._typography":{color:"$neutral700",[`.${FE}&`]:{color:"$neutral900"}}}),VE=i((t,e)=>t?.length?t.filter(o=>Pt(o.fromBlockchain,e)||Pt(o.toBlockchain,e)||Pt(o.toSymbol,e)||Pt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Dh(){let t=HE(),{manager:e,state:o}=$E(),n=Tt(e).map(({swap:b})=>b),[r,a]=Lr(""),[s,c]=Lr(!1),l=!o.loadedFromPersistor,[p,u]=Lr(""),[m,f]=Lr(!1),[h,g]=Lr("all"),d=i(b=>{let E=b.target.value;a(E)},"handleSearch"),{isMultiMode:S}=tt(),y=[{id:Mr.SUCCESS,title:Fe.t("Complete")},{id:Mr.RUNNING,title:Fe.t("Running")},{id:Mr.FAILED,title:Fe.t("Failed")}],T=[{id:"all",title:Fe.t("All")},{id:"swap",title:Fe.t("Swap")},{id:"refuel",title:Fe.t("Refuel")}],k=_h(()=>!r&&!p&&h==="all"?n:n.filter(b=>{let{inputAmount:E,status:v,steps:N,requestId:M,mode:F}=b;return(!r||Pt(E,r)||Pt(v,r)||VE(N,r)||Pt(M,r))&&(!p||p===v)&&(h==="all"?!0:h==="swap"?!F||F==="swap":h==="refuel"?F==="refuel":!1)}),[n,r,p,h]),w=!k?.length&&!l,x=i(()=>f(!1),"onCloseModal"),I=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(b){console.log(b)}},"onClear"),A=_h(()=>!n.some(b=>b.status===Mr.SUCCESS||b.status===Mr.FAILED),[n]);return te.createElement(ie,{header:{title:Fe.t("History"),suffix:te.createElement(fo,null,te.createElement(Mc,{id:"widget-history-clear-btn",disabled:A,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},te.createElement(ka,{size:"medium",variant:"label",color:"error"},Fe.t("Clear"))))}},te.createElement(le,null,te.createElement(qE,null,te.createElement(At,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Fe.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:d,style:{height:36},value:r}),te.createElement(To,{size:10,direction:"horizontal"}),te.createElement(Ic,{filterBy:p,open:s,onOpenChange:b=>c(b),onClickItem:b=>u(b),list:y})),te.createElement(To,{size:"16"}),S&&!l&&te.createElement(te.Fragment,null,te.createElement(zE,{items:T,onChange:b=>g(b.id),value:h,type:"secondary"}),te.createElement(To,{size:"12"})),te.createElement(QE,null,w&&te.createElement(Nh,null,te.createElement(To,{size:32}),te.createElement(UE,{title:r?Fe.t("No results found"):Fe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Fe.t("Try using different keywords"):Fe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!w&&te.createElement(Wc,{list:k,onSwapClick:t,groupBy:Ph,isLoading:l}))),te.createElement(ee,{open:m,onClose:x,id:"widget-history-clear-modal",container:B()},te.createElement(To,{size:20}),te.createElement(OE,{type:"warning",title:Fe.t("Clear Transaction History"),description:te.createElement(GE,null,te.createElement(ka,{variant:"body",size:"medium"},Fe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),te.createElement(To,{size:"24"}),te.createElement(ka,{variant:"body",size:"small"},Fe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),te.createElement(To,{size:30}),te.createElement(Mc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:I},Fe.t("Yes, Clear the history")),te.createElement(To,{size:10}),te.createElement(Mc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:x},te.createElement(ka,{variant:"title",size:"medium",color:"primary"},Fe.t("No, Cancel")))))}i(Dh,"HistoryPage");import{i18n as dy}from"@lingui/core";import{Button as AI,Divider as Kc,styled as NI,WarningIcon as BI}from"@rango-dev/ui";import WI from"bignumber.js";import Ce,{useEffect as my,useState as fy}from"react";import{useNavigate as MI}from"react-router-dom";import{i18n as Fh}from"@lingui/core";import{Alert as jE,Divider as Pc,NoRouteIcon as XE,Typography as YE}from"@rango-dev/ui";import jo from"react";import{styled as KE}from"@rango-dev/ui";var $h=KE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function _c(){let{fromToken:t,toToken:e}=z()();return!!t&&!!e&&qt(t,e)?jo.createElement($h,null,jo.createElement(Pc,{size:10}),jo.createElement(XE,{size:24,color:"gray"}),jo.createElement(Pc,{size:4}),jo.createElement(YE,{variant:"title",size:"small"},Fh.t("No Routes Found")),jo.createElement(Pc,{size:4}),jo.createElement(jE,{title:Fh.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(_c,"SameTokensWarning");import{Alert as ZE,Button as JE}from"@rango-dev/ui";import Uh from"react";import{i18n as wa}from"@lingui/core";function Oh(t){let e=null;return t===fi?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:wa.t("Reset"),title:wa.t("Slippage cannot be set lower than 0.01%.")},e):t>an?(e={alertType:"warning",action:"change-settings",actionButtonTitle:wa.t("Change"),title:wa.t("Caution, your slippage is high!")},e):null}i(Oh,"makeAlerts");function zh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=C(),{onChangeSettings:a}=t,c=Oh(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(mi),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Uh.createElement(ZE,{title:c.title,type:c.alertType,variant:"alarm",action:Uh.createElement(JE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(zh,"SlippageWarningsAndErrors");import{i18n as nI}from"@lingui/core";import{IconButton as rI,ReverseIcon as iI,Skeleton as aI,Tooltip as sI,Typography as Pr}from"@rango-dev/ui";import mt from"react";import va from"bignumber.js";function Qh(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(Qh,"getSlippageColor");function qh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new va(e),r=new va(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(qh,"getUsdExchangeRate");function Gh(t,e){let o=new va(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,va.ROUND_DOWN).toFormat(2)}`}i(Gh,"formatTokenValueInUsd");import{darkTheme as tI,styled as $c,Typography as oI}from"@rango-dev/ui";var Vh=$c("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),Kh=$c("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${tI} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Fc=$c(oI,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Oc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=C(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,m=o!==null?o:e,{mode:f}=mo({}),h=cn(m),g=f==="dark",d=n==="default",S={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},T=p?.swaps[0]?.from||c,k=p?.swaps[p?.swaps.length-1]?.to||l,w=d?T:k,x=d?k:T,I=Number(d?p?.outputAmount:p?.requestAmount),A=Number(d?p?.requestAmount:p?.outputAmount),b=I||w.usdPrice,E=A||x.usdPrice,{rawValue:v,displayValue:N}=qh({toTokenUsdPrice:E,fromTokenUsdPrice:b});return mt.createElement(Vh,null,mt.createElement(Pr,{variant:S||y?"label":"body",size:S||y?"medium":"small",color:Qh({error:S,warning:y,isDarkTheme:g})},nI.t("Slippage:")," ",m,"%"),u?mt.createElement(aI,{height:16,width:104,variant:"rounded"}):b&&E&&mt.createElement(Kh,null,mt.createElement(Pr,{className:"rate-text",variant:"body",size:"small"},"1"),mt.createElement(Fc,{className:"rate-text",variant:"body",size:"small"},x.symbol),mt.createElement(rI,{id:"widget-home-page-change-rate-button",onClick:r},mt.createElement(iI,{size:14,color:"secondary"})),mt.createElement(sI,{container:B(),side:"top",sideOffset:4,content:mt.createElement(Pr,{className:"rate-text",variant:"body",size:"small"},v)},mt.createElement(Pr,{className:"rate-text",variant:"body",size:"small"},N)),mt.createElement(Fc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&&mt.createElement(Pr,{color:"neutral600",variant:"body",size:"small"},"~",Gh(Number(v),w.usdPrice))))}i(Oc,"SwapMetrics");import{i18n as mI}from"@lingui/core";import{Header as fI}from"@rango-dev/ui";import ko,{useEffect as gI,useState as hI}from"react";import{i18n as cI}from"@lingui/core";import{Divider as zc,FullExpandedQuote as pI,Typography as uI}from"@rango-dev/ui";import ve from"react";import{styled as Uc}from"@rango-dev/ui";var jh=Uc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Xh=Uc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Yh=Uc("div",{width:"146px"});import{i18n as _r}from"@lingui/core";import{Select as lI}from"@rango-dev/ui";import Zh from"react";function xa(t){let{updateQuotePartialState:e,sortStrategy:o}=z()(),n=[{value:"SMART",label:_r.t("Smart Routing")},{value:"FEE",label:_r.t("Lowest Fee")},{value:"SPEED",label:_r.t("Fastest Transfer")},{value:"NET_OUTPUT",label:_r.t("Maximum Return")},{value:"PRICE",label:_r.t("Maximum Output")}];return Zh.createElement(Yh,null,Zh.createElement(lI,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(xa,"SelectStrategy");var Jh=3;function Dr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:m,toToken:f,sortStrategy:h,error:g}=z()(),{slippage:d,customSlippage:S}=C(),{findToken:y}=C(),T=c||B(),k=!!p&&p.results.length,w=S??d,x=i(b=>{if(!m||!f||!p)return null;let E={requestAmount:p.requestAmount,validationStatus:null,...b};return Sn({currentQuote:E,userSlippage:w,findToken:y})},"getQuoteWarning"),I=g?.type===0||g?.type===1,A=p?.results?Ai(h,p?.results):[];return ve.createElement(ve.Fragment,null,a&&ve.createElement(ve.Fragment,null,ve.createElement(Xh,null,ve.createElement(uI,{size:"xmedium",variant:"title"},cI.t("Sort by")),ve.createElement(xa,{container:T})),ve.createElement(zc,{size:"10"})),e&&Array.from({length:Jh},(b,E)=>ve.createElement(ve.Fragment,{key:E},s?ve.createElement(pI,{loading:!0}):ve.createElement(vr,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Jh-1&&ve.createElement(zc,{size:16}))),!e&&ve.createElement(ve.Fragment,null,k?A.map((b,E)=>{let v=x(b),N=sc(b.swaps),M=A.length-1===E;return ve.createElement(ve.Fragment,{key:b.requestId},ve.createElement(Go,{id:"widget-quotes-quote-info-container",showModalFee:r,container:T,selected:l?.requestId===b.requestId,tagHidden:!1,quote:{...b,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:N?.options||null,warning:v,fullExpandedMode:s,onClick:F=>{N||u("warning",v),u("error",N?.options||null),o(F)},type:"list-item"}),!M&&ve.createElement(zc,{size:16}))}):I&&ve.createElement(jh,null,ve.createElement(gr,{size:s?"large":"small",error:g,fetch:n}))))}i(Dr,"Quotes");import{darkTheme as dI,styled as Rh}from"@rango-dev/ui";var ey=Rh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${dI} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),ty=Rh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var yI=100;function Hc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=hI(!1),l=s?"":"is-hidden",{config:p}=C(),u=p?.variant==="full-expanded",m=Wo();return gI(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},yI):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),ko.createElement(ey,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Hi()} widget-expanded-quotes-container`,id:Re.EXPANDED_BOX_ID},ko.createElement(fI,{title:mI.t("Routes"),suffix:ko.createElement(ko.Fragment,null,ko.createElement(xa,{container:m}),ko.createElement(zo,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),ko.createElement(ty,null,ko.createElement(Dr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:Wo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Hc,"ExpandedQuotes");import{i18n as ly}from"@lingui/core";import{SwapInput as cy}from"@rango-dev/ui";import kI from"bignumber.js";import $r from"react";import{ReverseIcon as TI}from"@rango-dev/ui";import qc from"react";import{keyframes as SI,styled as oy}from"@rango-dev/ui";var Qc=450,CI=SI({"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)"}}),ny=oy("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),ry=oy("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${CI} ${Qc}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 Gc(){let t=z().use.switchFromAndTo();return qc.createElement(ny,null,qc.createElement(ry,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Qc),t()}},qc.createElement(TI,{size:12})))}i(Gc,"SwitchFromAndToButton");import{styled as iy}from"@rango-dev/ui";var ay=iy("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),sy=iy("div",{position:"relative"});function Vc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:m,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:d}=z()(),{swapMode:S}=tt(),{connectedWallets:y,getBalanceFor:T}=C(),k=a?T(a):null,w=pi(k)?.amount??"0",x=k?new kI(k.amount).shiftedBy(-k.decimals):pe,I=!!s&&Au(y,s.name),A=!Gs(d,m,f),b=!Gs(d,m,g),E=!f||!g||!g.gt(0)?null:jt(f.toString(),g.toString());return $r.createElement(ay,null,$r.createElement(sy,null,$r.createElement(cy,{label:ly.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:w,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:m,usdValue:A?void 0:P(f,4,4),realUsdValue:A?void 0:f?.toString(),error:A?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:I,tooltipContainer:B(),onSelectMaxBalance:()=>{let v=P(x,k?.decimals),N=k?.amount?v.split(",").join(""):"";p(N)},anyWalletConnected:y.length>0}),S==="swap"&&$r.createElement(Gc,null)),$r.createElement(cy,{selectionType:S==="swap"?"token":"chain",sharpBottomStyle:!r&&(!!d||e),label:ly.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:P(jt(f,g),2,2),warningLevel:Xt(E??0),price:{value:P(h,6,6),usdValue:b?void 0:P(g,4,4),realValue:h?.toString(),realUsdValue:b?void 0:g?.toString(),error:b?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(Vc,"Inputs");import{warn as wI}from"@rango-dev/logging-core";import{useCallback as vI,useEffect as xI,useRef as bI,useState as EI}from"react";function py(){let{fetch:t,loading:e,cancelFetch:o}=fa({request:async(n,r)=>await ct().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(py,"useFetchAllQuotes");var II=600;function ba({refetchQuote:t}){let{fetch:e,cancelFetch:o}=py(),{excludeLiquiditySources:n,routing:r}=C().config,{connectedWallets:a}=C(),c=a.some(ue=>ue.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:m,selectedQuote:f,sortStrategy:h,resetQuote:g,error:d,warning:S,setSelectedQuote:y,updateQuotePartialState:T}=z()(),{slippage:k,customSlippage:w,affiliatePercent:x,affiliateRef:I,affiliateWallets:A,fetchStatus:b}=C(),E=C().getLiquiditySources(),v=C().getDisabledLiquiditySources(),N=C().excludeLiquiditySources(),{findToken:M}=C(),{swapMode:F}=tt(),[H,X]=EI(!0),J=bI(u),W=w??k,Y=!l||!p||qt(l,p)||!Gn(u),ce=i(ue=>{X(ue)},"resetState"),fe=i(ue=>{let{fromToken:wt,toToken:gt,inputAmount:Wt,liquiditySources:D,excludeLiquiditySources:U,disabledLiquiditySources:G,slippage:se,affiliateRef:Q,affiliatePercent:j,affiliateWallets:K}=ue;if(H||ce(!0),!Y&&wt&>){g();let Ie=Vd({fromToken:wt,toToken:gt,inputAmount:Wt,liquiditySources:D,excludeLiquiditySources:U,disabledLiquiditySources:G,wallets:a,slippage:se,affiliateRef:Q,affiliatePercent:j,affiliateWallets:K,contractCall:c});ln("experimental",r)&&(Ie.experimental=!0),ln("avoidNativeFee",r)&&(Ie.avoidNativeFee=!0),ln("enableCentralizedSwappers",r)&&(Ie.enableCentralizedSwappers=!0),r?.maxLength&&(Ie.maxLength=r.maxLength),F==="refuel"&&(Ie.maxLength=1),e(Ie).then(Ae=>{let Ke=Ai(h,Ae.results),Mt=Pd(f,Ke,Ae.requestAmount);X(!1),T("quotes",Ae),y(Mt),ga({diagnosisMessages:Ae.diagnosisMessages,requestId:Mt?.requestId||"",swaps:Mt?.swaps});let so=Mt&&Sn({currentQuote:Mt,userSlippage:W,findToken:M});T("warning",so)}).catch(Ae=>{let Ke=ha(Ae);(Ke.type===0||Ke.type===1)&&g(),Ke.type!==2&&(T("error",Ke),X(!1),wI(new Error("quote error"),{tags:{...Ke,type:Ye[Ke.type],requestBody:Ie}}))})}},"fetch"),at=vI(ni(ue=>{fe(ue)},II),[Y]);return xI(()=>{if(!t){X(!1);return}if(b!=="success")return;if(Y){X(!1),(f||d||S)&&g();return}if(!Gn(u)&&m?.eq(0)){ce(!1),o();return}g(),ce(!0);let ue=fe;return J.current&&J.current!=u&&(ue=at),J.current=u,ue({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:N,disabledLiquiditySources:v,slippage:W,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),o},[b,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,Y,E?.length,n,v.length,W,I,x,c,JSON.stringify(A)]),{fetch:()=>fe({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:N,disabledLiquiditySources:v,slippage:W,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),loading:H}}i(ba,"useSwapInput");function uy(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(uy,"emitPreventableEvent");var LI=NI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),PI=300;function gy(){let t=MI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=z()(),[h,g]=fy(!1),{isLargeScreen:d,isExtraLargeScreen:S}=ia(),{fetch:y,loading:T}=ba({refetchQuote:a}),{config:k,fetchStatus:w,connectedWallets:x,customSlippage:I,slippage:A,setSlippage:b,setCustomSlippage:E}=C(),{isActiveTab:v}=oe(),[N,M]=fy(!1),F=I!==null?I:A,{swapMode:H}=tt(),X=cn(F),W=Hd({fetchMetaStatus:w,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),Z=_u(d,S,k?.variant),Y=!!n&&!!e&&!!o&&new WI(n).gt(0)&&!Rd(e,o),ce=Y&&w==="success"&&T,fe=X?.quoteValidation||c,wt=(!Z||Z&&l?.results.length)&&(fe||s),gt=!!e&&!!o,Wt=gt&&!!X,D=(r||s)&&!N?y:void 0,U=i(j=>{Z&&h?(g(!1),setTimeout(()=>{t(j)},PI)):t(j)},"onHandleNavigation"),G=i(j=>{r?.requestId!==j.requestId&&(M(!1),p(j))},"onClickOnQuote"),se=i(j=>{if(j){if(di.includes(j)){b(j),E(null);return}E(j)}},"onChangeSlippage"),Q=i(j=>{U(j==="from"?$.fromSwap:H==="swap"?$.toSwap:$.toSwap+"/"+$.blockchains)},"handleInputTokenClick");return my(()=>{u(),f("refetchQuote",!0)},[]),my(()=>{g(Y)},[Y]),Ce.createElement(LI,null,Ce.createElement(ie,{height:"auto",footer:Ce.createElement(AI,{id:`widget-swap-${W.action}-btn`,type:"primary",size:"large",disabled:W.disabled||!v,prefix:W.action==="confirm-warning"&&Ce.createElement(BI,null),fullWidth:!0,onClick:()=>{W.action==="connect-wallet"?uy({type:"clickConnectWallet"},()=>U($.wallets)):W.action==="confirm-warning"?M(!0):U($.confirmSwap)}},W.title),header:{onWallet:()=>{U($.wallets)},hasBackButton:!1,title:k.title||(H==="swap"?dy.t("Swap"):dy.t("Refuel")),suffix:Ce.createElement(zo,{hidden:Z?["refresh"]:void 0,onClickRefresh:D,onClickHistory:()=>U($.swaps),onClickSettings:()=>{U($.settings)}})}},Ce.createElement(le,null,Ce.createElement(Vc,{fetchingQuote:ce,fetchMetaStatus:w,isExpandable:Z,onClickToken:Q}),Ce.createElement(Kc,{size:"2"}),Z?null:Ce.createElement(Go,{quote:r,loading:ce,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:fe,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),U($.routes)}:void 0}),gt&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Kc,{size:8}),Ce.createElement(Oc,{quoteError:s,quoteWarning:fe,fromToken:e,toToken:o,quote:r,loading:ce})),wt?Ce.createElement(Ce.Fragment,null,Ce.createElement(yr,{warning:fe,error:s,skipAlerts:!!X,couldChangeSettings:!0,refetchQuote:y,showWarningModal:N,confirmationDisabled:!v,onOpenWarningModal:()=>M(!0),onCloseWarningModal:()=>M(!1),onChangeSlippage:se,onConfirmWarningModal:()=>{M(!1),m(!0),U($.confirmSwap)},onChangeSettings:()=>U($.settings)})):null,Wt&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Kc,{size:"10"}),Ce.createElement(zh,{onChangeSettings:()=>U($.settings)})),Ce.createElement(_c,null))),Z?Ce.createElement(Hc,{loading:ce,onClickOnQuote:G,fetch:y,onClickRefresh:D,isVisible:h}):null)}i(gy,"Home");import{i18n as hy}from"@lingui/core";import{Alert as _I,Divider as DI,List as $I,ListItemButton as FI,Radio as OI,RadioRoot as UI,Typography as zI}from"@rango-dev/ui";import Ot from"react";function wo(){let{setLanguage:t,language:e,config:o}=C(),n=Hu,r=o?.language||pn;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||pn),resetLanguage:()=>t(null)}}i(wo,"useLanguage");function yy(){let{activeLanguage:t,changeLanguage:e,languages:o}=wo(),n=qe(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Ot.createElement(zI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Ot.createElement(OI,{value:s}),start:Ot.createElement(l,null)}});return Ot.createElement(ie,{header:{title:hy.t("Language")}},Ot.createElement(le,null,Ot.createElement(_I,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Ot.createElement(DI,{size:"8"}),Ot.createElement(UI,{value:t},Ot.createElement($I,{type:Ot.createElement(FI,{title:hy.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(yy,"LanguagePage");import{i18n as no}from"@lingui/core";import{Button as VI,Checkbox as KI,Image as jI,ListItemButton as XI,NotFound as YI,Typography as ZI}from"@rango-dev/ui";import Je,{useState as JI}from"react";import{Checkbox as qI,Skeleton as Cy}from"@rango-dev/ui";import Or from"react";import{styled as jc}from"@rango-dev/ui";var Fr=jc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Xc=jc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Yc=jc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as HI,styled as QI}from"@rango-dev/ui";var Sy=QI(HI,{height:61});var GI=30;function Zc(){return Or.createElement(Fr,null,Array.from(Array(GI),(t,e)=>Or.createElement(Sy,{hasDivider:!0,key:e,start:Or.createElement(Cy,{variant:"circular",width:35,height:35}),title:Or.createElement(Cy,{variant:"text",size:"large",width:90}),end:Or.createElement(qI,{checked:!1})})))}i(Zc,"LoadingLiquiditySourceList");function Jc({sourceType:t}){let e=C().fetchStatus,o=C().swappers(),n=C().getDisabledLiquiditySources(),[r,a]=JI(""),s=C().toggleLiquiditySource,c=C().isInCampaignMode(),l=gi(o,n),p={Exchanges:no.t("Exchanges"),Bridges:no.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=l.filter(y=>u.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,h=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:T,groupTitle:k,logo:w,id:x,...I}=y;return{id:`widget-setting-liquidity-source-${hu(x.toLowerCase())}-item-btn`,start:Je.createElement(jI,{src:w,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:Je.createElement(KI,{checked:T,disabled:c}),title:Je.createElement(ZI,{variant:"title",size:"xmedium"},no.t(k)),selected:T,groupTitle:k,logo:w,...I}}),d=i(y=>{let T=y.target.value;a(T)},"handleSearch"),S=g;return r&&(S=g.filter(y=>Pt(y.groupTitle,r))),Je.createElement(ie,{header:{title:no.t(t),suffix:Je.createElement(Xc,null,Je.createElement(VI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},f?no.t("Deselect all"):no.t("Select all")))}},Je.createElement(le,{view:!0},Je.createElement(At,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:no.t("Search {sourceType}",{sourceType:p[t]}),onChange:d}),e==="loading"&&Je.createElement(Zc,null),!S.length&&r?Je.createElement(Yc,null,Je.createElement(YI,{title:no.t("No results found"),description:no.t("Try using different keywords")})):e==="success"&&Je.createElement(Fr,{disabled:c,className:"widget-liquidity-source-list"},S.map(y=>{let{groupTitle:T,...k}=y;return Je.createElement(Je.Fragment,{key:y.id},Je.createElement(XI,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Jc,"LiquiditySourcePage");import{i18n as RI}from"@lingui/core";import Ea from"react";import{useNavigate as eA}from"react-router-dom";function Ty(){let t=eA(),e=qe(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=z()(),{fetch:c,loading:l}=ba({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${$.settings}`,m=`../${$.wallets}`;return Ea.createElement(ie,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:RI.t("Routes"),suffix:Ea.createElement(zo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Ea.createElement(le,null,Ea.createElement(Dr,{fetch:c,loading:l,onClickOnQuote:p})))}i(Ty,"RoutesPage");import{i18n as Iy}from"@lingui/core";import{Divider as Ay,getCategoriesCount as pA,SelectableCategoryList as uA}from"@rango-dev/ui";import ro,{useMemo as dA,useState as Ny}from"react";import{useNavigate as mA}from"react-router-dom";import{i18n as Rc}from"@lingui/core";import{Divider as rA,Image as iA,ListItemButton as aA,NotFound as sA,Typography as Ey}from"@rango-dev/ui";import ft,{useEffect as lA,useState as cA}from"react";var ky=i((t,e,o)=>t.filter(n=>ri(n.type,o)).filter(n=>st(n.name,e)||st(n.displayName,e)),"filterBlockchains");import{ImageContainer as tA,styled as wy}from"@rango-dev/ui";var vy=wy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Ia=wy(El,{padding:0,margin:0,listStyle:"none",[`& ${tA}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as oA,Skeleton as xy}from"@rango-dev/ui";import Aa from"react";var nA=20;function by(){return Aa.createElement(Ia,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(nA),t=>Aa.createElement(oA,{key:t,hasDivider:!0,start:Aa.createElement(xy,{variant:"circular",width:35,height:35}),title:Aa.createElement(xy,{variant:"text",size:"large",width:90})})))}i(by,"LoadingBlockchainList");function ep(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=cA(e),{fetchStatus:l}=C();lA(()=>{c([...ky(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ft.createElement(sA,{title:Rc.t("No results found"),description:Rc.t("Try using different keywords")}):ft.createElement(Ia,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ft.createElement(aA,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ft.createElement(iA,{src:u.logo,size:30}),title:ft.createElement(Ey,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ft.createElement(ft.Fragment,null,a&&ft.createElement(ft.Fragment,null,ft.createElement(Ey,{variant:"label",size:"large"},Rc.t("Select Chain")),ft.createElement(rA,{size:4})),ft.createElement(vy,null,l==="loading"&&ft.createElement(by,null),l==="success"&&p()))}i(ep,"BlockchainList");function Na(t){let{type:e}=t,o=qe(),[n,r]=Ny(""),[a,s]=Ny("ALL"),c=z().use.setToBlockchain(),l=z().use.setFromBlockchain(),p=z().use.setToToken(),{fetchStatus:u,findNativeToken:m}=C(),f=mA(),{swapMode:h}=tt(),g=C().blockchains({type:e}),d=C().tokens(),S=dA(()=>du(g,d),[g.length,d.length]),y=pA(S),T=!t.hideCategory&&y!==1,k=i(w=>{if(e==="custom-token")f(`..?blockchain=${w.name}`,{replace:!0});else{if(e==="source")l(w);else if(h==="swap")c(w);else{let x=m(w);x&&p({token:x,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return ro.createElement(ie,{header:{title:Iy.t("Select Chain")}},ro.createElement(le,{view:!0},T&&ro.createElement(ro.Fragment,null,ro.createElement(uA,{setCategory:s,category:a,blockchains:S,isLoading:u==="loading"}),ro.createElement(Ay,{size:24})),ro.createElement(At,{value:n,autoFocus:!0,placeholder:Iy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:w=>r(w.target.value)}),ro.createElement(Ay,{size:16}),ro.createElement(ep,{list:S,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:k})))}i(Na,"SelectBlockchainPage");import{i18n as Ma}from"@lingui/core";import{Divider as Dy,Spinner as AA}from"@rango-dev/ui";import vo,{useEffect as NA,useState as BA}from"react";import{useNavigate as WA}from"react-router-dom";import{i18n as np}from"@lingui/core";import{BlockchainsChip as Ba,Divider as Ly,Image as Py,Skeleton as CA,Tooltip as TA,Typography as rp}from"@rango-dev/ui";import xe from"react";import{useEffect as hA}from"react";var By=["ETH","COSMOS","OSMOSIS"];function tp(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(fA),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(gA(s)),r=n.splice(a)}return{list:n,more:r}}i(tp,"prepare");function fA(t,e){let o=By,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(fA,"sortByMostUsedBlockchains");function gA(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(gA,"generateSortByPreferredBlockchainsFor");function Wy(t,e){return!!e.list.find(o=>o.name===t)}i(Wy,"isInVisibleList");function op(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=C();hA(()=>{if(e?.selected){let a=tp(t,o,e);Wy(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=tp(t,o,e);return{list:r.list,more:r.more,history:[]}}i(op,"usePrepareBlockchainList");import{styled as yA}from"@rango-dev/ui";var My=yA("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var kA=6,wA=12;function ip(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=op(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=C(),p=z().use.resetToBlockchain(),u=z().use.resetFromBlockchain(),m=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&m;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(Ly,{size:12}),xe.createElement(rp,{variant:"label",size:"large"},np.t("Select Chain"))),xe.createElement(Ly,{size:12}),xe.createElement(My,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?kA:wA),(d,S)=>xe.createElement(CA,{key:S,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(Ba,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(rp,{variant:"body",size:"xsmall",color:"secondary500"},np.t("All"))),c.list.map(d=>xe.createElement(TA,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:B()},xe.createElement(Ba,{className:"widget-blockchains-section-item-btn",key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},xe.createElement(Py,{src:d.logo,size:30})))),h?xe.createElement(Ba,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(Py,{src:f.logo,size:30})):null,g?xe.createElement(Ba,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(rp,{variant:"body",size:"xsmall",color:"secondary500"},np._("More +{count}",{count:c.more.length}))):null)))}i(ip,"BlockchainsSection");import{useCallback as xA,useRef as bA,useState as ap}from"react";function sp(){let t=C().blockchains(),e=bA(null),{customTokens:o}=C(),[n,r]=ap(!1),[a,s]=ap([]),[c,l]=ap(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await ct().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),d=new Set(o().map(T=>Vt(T))),S=new Set(t.map(T=>T.name)),y=g.tokens.filter(T=>S.has(T.blockchain)&&!d.has(Vt(T)));s(y),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=xA(ni((f,h)=>{e.current?.signal.aborted||p(f,h)},600),[t.length]);return{fetch:(f,h)=>{e.current=new AbortController,s([]),r(!0),u(f,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(sp,"useSearchCustomTokens");function Wa(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(Wa,"shouldSearchForCustomTokens");function _y(t,e,o,n,r){let a=[...t];return Wa(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(_y,"prepareTokensList");function La(t){let{type:e}=t,o=WA(),n=qe(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=z()(),{getBalanceFor:u}=C(),{fetch:m,loading:f,tokens:h,cancel:g}=sp(),[d,S]=BA(""),y=e==="source"?r:a,T=y?.name??"",k=C().blockchains({type:e}),w=C().tokens({type:e,blockchain:T,searchFor:d,getBalanceFor:u}),x=_y(w,h,d,f,y?.name),I=i(E=>{e==="source"?l(E):p(E)},"updateBlockchain"),A=i(E=>{e==="source"?s({token:E,meta:{blockchains:k}}):c({token:E,meta:{blockchains:k}})},"updateToken"),b={source:Ma.t("Source"),destination:Ma.t("Destination")};return NA(()=>(Wa(w,d,y?.name)&&m(d,y?.name??void 0),()=>{g()}),[w.length,d,y?.name]),vo.createElement(ie,{header:{title:Ma.t("Swap {type}",{type:b[e]})}},vo.createElement(le,null,vo.createElement(ip,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o($.blockchains),onChange:E=>{I(E)}}),vo.createElement(Dy,{size:24}),vo.createElement(At,{value:d,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:Ma.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>S(""),onChange:E=>S(E.target.value),suffix:Wa(w,d,y?.name)&&f?vo.createElement(AA,{size:12,color:"secondary"}):void 0}),vo.createElement(Dy,{size:16}),vo.createElement(Ar,{list:x,selectedBlockchain:T,searchedFor:d,type:e,onChange:E=>{A(E);let v=k.find(N=>E.blockchain===N.name);v&&I(v),n()}})))}i(La,"SelectSwapItemsPage");import{i18n as up}from"@lingui/core";import{Alert as rN,Button as iN,styled as aN}from"@rango-dev/ui";import Xo from"react";import{useInRouterContext as sN,useSearchParams as lN}from"react-router-dom";import{i18n as Hy}from"@lingui/core";import{Alert as _A,Divider as cp,InfoIcon as DA,SlippageIcon as $A,TextField as FA,Tooltip as OA,Typography as Qy}from"@rango-dev/ui";import Ue from"react";import{Chip as MA,styled as Ur,TextField as LA}from"@rango-dev/ui";var $y=Ur("div",{paddingTop:"$5",padding:"$10 $5"}),Fy=Ur("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${LA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),Oy=Ur("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Pa=Ur("div",{maxWidth:"280px",padding:"$10"}),Uy=Ur(MA,{width:"61px",flexShrink:0});import{i18n as lp}from"@lingui/core";import{Typography as PA}from"@rango-dev/ui";import zr from"react";function zy(){return zr.createElement(Pa,null,zr.createElement(PA,{variant:"label",size:"medium",color:"neutral700"},lp.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),zr.createElement("br",null),zr.createElement("br",null),zr.createElement("b",null,lp.t("Warning")),":\xA0",lp.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(zy,"SlippageTooltipContent");function pp(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=C(),r=o!==null?cn(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let m=u;u>Xn&&(m=Xn),n(m)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;Su(u)||(p.value=u.slice(0,-1))},"onInput");return Ue.createElement($y,null,Ue.createElement(Oy,null,Ue.createElement($A,{size:16,color:"gray"}),Ue.createElement(cp,{direction:"horizontal",size:4}),Ue.createElement(Qy,{variant:"title",size:"xmedium"},Hy.t("Slippage tolerance per swap")),Ue.createElement(cp,{direction:"horizontal",size:4}),Ue.createElement(OA,{container:B(),side:"top",sideOffset:4,content:Ue.createElement(zy,null)},Ue.createElement(DA,{color:"gray"}))),Ue.createElement(Fy,null,di.map((l,p)=>{let u=`slippage-${p}`;return Ue.createElement(Uy,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),Ue.createElement(FA,{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&&Ue.createElement(Qy,{variant:"body",size:"small"},"%"),placeholder:Hy.t("Custom")})),r&&Ue.createElement(Ue.Fragment,null,Ue.createElement(cp,{size:10}),Ue.createElement(_A,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(pp,"Slippage");import{i18n as kt}from"@lingui/core";import{AutoThemeIcon as qy,BridgesIcon as UA,ChevronRightIcon as _a,DarkModeIcon as Gy,Divider as Hr,ExchangeIcon as zA,InfinityIcon as HA,InfoIcon as QA,LanguageIcon as qA,LightModeIcon as Vy,List as GA,ListItem as VA,ListItemButton as KA,Skeleton as jA,styled as XA,Switch as YA,Tabs as ZA,TargetIcon as JA,Tooltip as RA,Typography as it}from"@rango-dev/ui";import _ from"react";import{useNavigate as eN}from"react-router-dom";var tN=XA("div",{width:"202px",height:"$40"}),oN=[{id:"light",icon:_.createElement(Vy,{color:"black",size:24}),tooltip:_.createElement(it,{size:"xsmall",variant:"body"},kt.t("Light"))},{id:"dark",icon:_.createElement(Gy,{color:"black",size:24}),tooltip:_.createElement(it,{size:"xsmall",variant:"body"},kt.t("Dark"))},{id:"auto",icon:_.createElement(qy,{color:"black",size:24}),tooltip:_.createElement(it,{size:"xsmall",variant:"body"},kt.t("Auto"))}],nN=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return _.createElement(qy,{...e});case"dark":return _.createElement(Gy,{...e});default:return _.createElement(Vy,{...e})}},"getThemeIcon");function Ky(){let t=eN(),{theme:e}=C().config,{setTheme:o,theme:n}=C(),{activeLanguage:r,languages:a}=wo(),s=a.find(W=>W.local===r)?.label,c=C().fetchStatus,l=C().swappers(),p=C().getDisabledLiquiditySources(),{config:{features:u}}=C(),m=C().customTokens(),f=et("theme",u),h=et("liquiditySource",u),g=et("language",u),d=et("customTokens",u),S=C().infiniteApprove,y=C().toggleInfiniteApprove,T=gi(l,p),k=T.filter(W=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(W.type)),w=k.length,x=k.filter(W=>W.selected).length,I=T.filter(W=>W.type==="DEX"),A=I.length,b=I.filter(W=>W.selected).length,E=i((W,Z)=>{switch(c){case"loading":return _.createElement(jA,{variant:"text",size:"medium",width:50});case"failed":return _.createElement(it,{variant:"body",size:"medium",color:"$error500"},kt.t("Loading failed"));default:return _.createElement(it,{variant:"body",size:"medium"},`${W} / ${Z}`)}},"handleSwapperEndItem"),v={id:"widget-setting-bridge-item-btn",title:_.createElement(it,{variant:"title",size:"xmedium"},kt.t("Bridges")),end:_.createElement(_.Fragment,null,E(x,w),_.createElement(Hr,{direction:"horizontal",size:8}),_.createElement(_a,{color:"black"})),onClick:()=>t($.bridges),start:_.createElement(UA,{color:"gray",size:16})},N={id:"widget-setting-exchange-item-btn",title:_.createElement(it,{variant:"title",size:"xmedium"},kt.t("Exchanges")),end:_.createElement(_.Fragment,null,E(b,A),_.createElement(Hr,{direction:"horizontal",size:8}),_.createElement(_a,{color:"black"})),start:_.createElement(zA,{color:"gray",size:16}),onClick:()=>t($.exchanges)},M={id:"widget-setting-custom-tokens-item-btn",title:_.createElement(it,{variant:"title",size:"xmedium"},kt.t("Custom Tokens")),end:_.createElement(_.Fragment,null,_.createElement(it,{variant:"body",size:"medium"},`${m.length}`),_.createElement(Hr,{direction:"horizontal",size:8}),_.createElement(_a,{color:"black"})),start:_.createElement(JA,{color:"gray",size:16}),onClick:()=>t($.customTokens)},F={id:"widget-setting-language-item-btn",title:_.createElement(it,{variant:"title",size:"xmedium"},kt.t("Language")),start:_.createElement(qA,{color:"gray",size:16}),end:_.createElement(_.Fragment,null,_.createElement(it,{variant:"body",size:"medium"},s),_.createElement(Hr,{direction:"horizontal",size:8}),_.createElement(_a,{color:"black"})),onClick:()=>t($.languages)},H={id:"widget-setting-infinite-approval-item-btn",title:_.createElement(_.Fragment,null,_.createElement(it,{variant:"title",size:"xmedium"},kt.t("Infinite approval")),_.createElement(Hr,{direction:"horizontal",size:4}),_.createElement(RA,{side:"top",sideOffset:4,container:B(),content:_.createElement(Pa,null,_.createElement(it,{variant:"label",size:"medium",color:"neutral700"},_.createElement("b",null,kt.t("Warning")),":\xA0",kt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},_.createElement(QA,{color:"gray"}))),start:_.createElement(HA,{color:"gray",size:16}),end:_.createElement(YA,{checked:S}),onClick:y},X={id:"widget-setting-theme-item-btn",type:_.createElement(VA,null),title:_.createElement(it,{variant:"title",size:"xmedium"},kt.t("Theme")),end:_.createElement(tN,null,_.createElement(ZA,{container:B(),items:oN,value:n,className:"widget-setting-theme-item-tabs-container",onChange:W=>o(W.id),type:"primary",borderRadius:"small"})),start:nN(n)},J=h?[]:[v,N];return d||J.push(M),g||J.push(F),J.push(H),!e?.singleTheme&&!f&&J.push(X),_.createElement(GA,{type:_.createElement(KA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:J})}i(Ky,"SettingsLists");var cN=aN("div",{paddingLeft:"$8"});function jy(){let{isInCampaignMode:t,updateCampaignMode:e}=C(),o=t(),[,n]=lN(),r=sN(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Xo.createElement(ie,{header:{title:up.t("Settings")}},Xo.createElement(le,null,o&&Xo.createElement(rN,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:up.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:Xo.createElement(cN,null,Xo.createElement(iN,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},up.t("Reset")))}),Xo.createElement(pp,null),Xo.createElement(Ky,null)))}i(jy,"SettingsPage");import{i18n as C0}from"@lingui/core";import{cancelSwap as T0}from"@rango-dev/queue-manager-rango-preset";import{useManager as k0}from"@rango-dev/queue-manager-react";import{Alert as w0}from"@rango-dev/ui";import Ap from"react";import{useParams as v0}from"react-router-dom";import{i18n as zt}from"@lingui/core";import{getCurrentNamespaceOfOrNull as i0,getCurrentStep as a0,getRelatedWalletOrNull as s0}from"@rango-dev/queue-manager-rango-preset";import{Button as HS,Divider as l0,QuoteCost as c0,StepDetails as p0,Typography as wp}from"@rango-dev/ui";import{useWallets as u0}from"@rango-dev/wallets-react";import QS from"bignumber.js";import{PendingSwapNetworkStatus as $n}from"rango-types";import ke,{useEffect as vp,useRef as xp,useState as qa}from"react";import{useNavigate as d0}from"react-router-dom";import{i18n as xo}from"@lingui/core";var pN=[xo.t("Sunday"),xo.t("Monday"),xo.t("Tuesday"),xo.t("Wednesday"),xo.t("Thursday"),xo.t("Friday"),xo.t("Saturday")];function Xy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?xo.t("Today"):`${pN[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Xy,"timeSince");function Yy(t){return t.finishTime?Xy(parseInt(t.finishTime)):Xy(parseInt(t.creationTime))}i(Yy,"getSwapDate");import Qr from"react";import{i18n as Da}from"@lingui/core";import{Button as Zy,Divider as dp,MessageBox as uN}from"@rango-dev/ui";import bo from"react";var Jy=i(({onCancel:t,onClose:e})=>bo.createElement(bo.Fragment,null,bo.createElement(dp,{size:20}),bo.createElement(uN,{type:"error",title:Da.t("Cancel Swap"),description:Da.t("Are you sure you want to cancel this swap?")}),bo.createElement(dp,{size:32}),bo.createElement(Zy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Da.t("Yes, Cancel it")),bo.createElement(dp,{size:12}),bo.createElement(Zy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Da.t("No, Continue"))),"CancelContent");import{i18n as $a}from"@lingui/core";import{Button as Ry,Divider as mp,MessageBox as dN,Typography as mN}from"@rango-dev/ui";import io from"react";var eS=i(({onDelete:t,onClose:e})=>io.createElement(io.Fragment,null,io.createElement(mp,{size:20}),io.createElement(dN,{type:"error",title:$a.t("Delete Transaction"),description:$a.t("Are you sure you want to delete this swap?")}),io.createElement(mp,{size:32}),io.createElement(Ry,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},$a.t("Yes, Delete it")),io.createElement(mp,{size:12}),io.createElement(Ry,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},io.createElement(mN,{variant:"title",size:"medium",color:"primary"},$a.t("No, Cancel")))),"DeleteContent");import{i18n as fN}from"@lingui/core";import{Button as gN,Divider as hN,MessageBox as yN}from"@rango-dev/ui";import Yo from"react";var tS=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Yo.createElement(Yo.Fragment,null,Yo.createElement(yN,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Yo.createElement(Yo.Fragment,null,Yo.createElement(hN,{size:"30"}),Yo.createElement(gN,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},fN.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as _N,getCurrentStep as DN,getRelatedWalletOrNull as $N}from"@rango-dev/queue-manager-rango-preset";import{WalletState as FN}from"@rango-dev/ui";import{useWallets as ON}from"@rango-dev/wallets-react";import lS from"react";import{i18n as _n}from"@lingui/core";import{Alert as rS,Button as TN,Checkbox as kN,Divider as Ua,Image as wN,MessageBox as vN,Spinner as xN,WarningIcon as bN}from"@rango-dev/ui";import{useWallets as EN}from"@rango-dev/wallets-react";import Se,{useState as IN}from"react";import{css as SN,darkTheme as CN,styled as fp}from"@rango-dev/ui";var oS=SN({wordWrap:"break-word",display:"block"}),nS=fp("img",{width:"100%"}),Fa=fp("div",{position:"relative"}),Oa=fp("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${CN} &`]:{$$color:"$warning600"}});var iS=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=IN(null),{list:s}=vt(),c=oe.use.isActiveTab(),{state:l,connect:p}=EN(),u=s.find(x=>x.type===e.walletType),m=u?.needsNamespace?.data.find(x=>x.value===o?.namespace);if(!u)return null;let f=l(e.walletType),h=u.isHub&&o?.namespace?f.namespaces?.get(o.namespace):null,g=f.connecting||h?.connecting,d=u.isHub?h?.connected:f.connected,S=i(()=>d?_n.t("Done"):r?_n.t("Try again"):_n.t("Connect"),"getButtonTitle"),y=i(()=>g?Se.createElement(xN,{color:"info"}):r||d?null:Se.createElement(kN,{checked:!0,disabled:!0}),"getNamespaceSuffix"),T=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(d){n();return}T()},"handleClickButton"),w=i(()=>{if(!d)return null;let x=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),I=x?.[x?.length-1];return I?lo(I):null},"getAddress");return Se.createElement(Se.Fragment,null,Se.createElement(vN,{type:"warning",title:_n.t("Connect {wallet}",{wallet:u.title}),description:_n.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:Se.createElement(Fa,null,Se.createElement(wN,{src:u.image,size:45}),Se.createElement(Oa,null,Se.createElement(bN,{color:"warning",size:10})))}),d&&!m&&Se.createElement(Se.Fragment,null,Se.createElement(Ua,{size:10}),Se.createElement(rS,{type:"success",variant:"alarm",title:_n.t("Wallet connected successfully.")})),r&&!m&&Se.createElement(Se.Fragment,null,Se.createElement(Ua,{size:10}),Se.createElement(rS,{type:"error",title:r?.message,variant:"alarm"})),m&&Se.createElement(Se.Fragment,null,Se.createElement(Ua,{size:30}),Se.createElement(_o,{namespace:m,suffix:y(),error:r?.message,connected:d,address:w()})),Se.createElement(Ua,{size:"40"}),Se.createElement(TN,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:k,disabled:!c},S()))},"ConnectWalletContent");import{i18n as aS}from"@lingui/core";import{Button as AN,Divider as NN,Image as BN,MessageBox as WN,WarningIcon as MN}from"@rango-dev/ui";import{useWallets as LN}from"@rango-dev/wallets-react";import{detectInstallLink as PN}from"@rango-dev/wallets-shared";import ao from"react";var sS=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=LN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(PN(n.installLink),"_blank"),"handleButtonClick");return ao.createElement(ao.Fragment,null,ao.createElement(WN,{type:"warning",title:aS.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:ao.createElement(Fa,null,ao.createElement(BN,{src:n.img,size:45}),ao.createElement(Oa,null,ao.createElement(MN,{color:"warning",size:10})))}),ao.createElement(NN,{size:"40"}),ao.createElement(AN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},aS.t("Install")))},"InstallWalletContent");var cS=i(t=>{let{swap:e,onClose:o}=t,{state:n,getWalletInfo:r}=ON(),a=DN(e),s=a?$N(e,a):null,c=s?.walletType,l=c?Vn(r(c),n(c)):null,p=a?_N(e,a):null;return c?l===FN.NOT_INSTALLED?lS.createElement(sS,{walletType:c}):lS.createElement(iS,{wallet:s,namespace:p,onClose:o}):null},"WalletStateContent");function gp(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return Qr.createElement(ee,{open:e,onClose:r,container:B()},o==="connectWallet"&&Qr.createElement(cS,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&Qr.createElement(tS,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&Qr.createElement(eS,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&Qr.createElement(Jy,{onClose:r,onCancel:()=>{r(),s()}}))}i(gp,"SwapDetailsModal");import{i18n as qr}from"@lingui/core";import{Button as hp,Divider as Gr,MessageBox as dS,TokenAmount as UN,Typography as mS}from"@rango-dev/ui";import Te from"react";import{Link as zN,useNavigate as HN}from"react-router-dom";var pS="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",uS="/profile";function yp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:m,diagnosisUrl:f}=t,h=HN(),{showProfileBanner:g}=oe();return Te.createElement(ee,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(Re.SWAP_BOX_ID)||document.body},n==="success"?Te.createElement(dS,{type:"success",title:qr.t("Swap Successful")},Te.createElement(UN,{direction:"vertical",tooltipContainer:B(),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}),Te.createElement(Gr,{size:12}),Te.createElement(mS,{className:oS(),variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Te.createElement(dS,{type:"error",title:qr.t("Transaction Failed"),description:m}),Te.createElement(Gr,{size:30}),n==="success"&&Te.createElement(Te.Fragment,null,g&&Te.createElement(Te.Fragment,null,Te.createElement(zN,{to:uS},Te.createElement(nS,{src:pS,alt:"Profile Banner"})),Te.createElement(Gr,{size:30})),Te.createElement(hp,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},qr.t("Done"))),Te.createElement(Gr,{size:12}),f&&Te.createElement(Te.Fragment,null,Te.createElement(hp,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},qr.t("Diagnosis")),Te.createElement(Gr,{size:12})),Te.createElement(hp,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Te.createElement(mS,{variant:"title",size:"medium",color:"primary"},qr.t("See Details"))))}i(yp,"SwapDetailsCompleteModal");import{i18n as Qa}from"@lingui/core";import{CopyIcon as e0,DoneIcon as t0,IconButton as o0,RangoExplorerIcon as n0,Tooltip as DS,Typography as $S,useCopyToClipboard as r0}from"@rango-dev/ui";import Bt from"react";import RN from"react";import{i18n as XN}from"@lingui/core";import{Alert as MS,IconButton as YN,LinkIcon as ZN}from"@rango-dev/ui";import Eo,{Fragment as JN}from"react";import{Alert as qN,ChevronDownIcon as GN,IconButton as VN}from"@rango-dev/ui";import Dn,{useState as KN}from"react";import{css as Vr,darkTheme as fS,styled as Ut,Typography as QN}from"@rango-dev/ui";var gS=Ut(le,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${fS} &`]:{color:"$secondary500"}}}}}),hS=Ut("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),yS=Ut("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),SS=Ut("div",{padding:"$0 $20 $20 $20"}),EY=Ut("div",{display:"flex",flexDirection:"column",gap:"$10"}),CS=Ut("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),IY=Ut("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Zo=Vr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${fS} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),TS=Vr({padding:"$5 0"}),za=Vr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),kS=Vr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),wS=Vr({width:"100%",padding:"0 $20 $10"}),vS=Ut("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),xS=Ut("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ha=Ut(QN,{wordBreak:"break-word"});import{styled as Sp}from"@rango-dev/ui";var bS=Sp("div",{display:"flex",flexDirection:"column",gap:"$10"}),ES=Sp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),IS=Sp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function AS(t){let{message:e}=t,[o,n]=KN(!1);return Dn.createElement(qN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Dn.createElement(VN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Dn.createElement(ES,{rotated:o},Dn.createElement(GN,{size:12,color:"gray"}))),footer:Dn.createElement(IS,{open:o},Dn.createElement(Ha,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(AS,"FailedAlert");import{i18n as NS}from"@lingui/core";import{Alert as Cp,Button as BS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as jN}from"rango-types";import Kr from"react";function WS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?Kr.createElement(Cp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:Kr.createElement(BS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},NS.t("Change"))}):a===jN.WaitingForConnectingWallet?Kr.createElement(Cp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Kr.createElement(BS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},NS.t("Connect"))}):Kr.createElement(Cp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(WS,"WarningAlert");function Tp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=cr(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,m=u&&!c||p&&!s.explorerUrl?.length;return Eo.createElement(bS,null,s.explorerUrl?.map((f,h,g)=>{let d=h+f.url,S=h===g.length-1,y=(S&&u||p)&&!m,T=S&&s.status==="failed";return Eo.createElement(JN,{key:d},Eo.createElement(MS,{id:"widget-swap-details-tx-alert",type:S&&(y&&"loading"||T&&"error")||"success",title:f.description?`${f.description} Tx`:XN.t("View transaction"),action:f.url&&Eo.createElement(YN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},Eo.createElement(ZN,{size:12}))}))}),m&&Eo.createElement(MS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&Eo.createElement(WS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&Eo.createElement(AS,{message:a}))}i(Tp,"SwapDetailsAlerts");var LS=2e3;var PS=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1]?.outputAmount||t.steps[s-1]?.expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:ht(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:P(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ht(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:P(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Hn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:ht(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:ht(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Hn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:RN.createElement(Tp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function _S(t){if(cr(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(_S,"getStepState");function FS(t){let{requestId:e}=t,[o,n]=r0(LS);return Bt.createElement(yS,{className:Zo()},Bt.createElement($S,{variant:"label",size:"large",color:"neutral700"},Qa.t("Request ID")),Bt.createElement("div",{className:za()},Bt.createElement($S,{variant:"label",size:"small",color:"neutral700"},e),Bt.createElement(DS,{container:B(),content:o?Qa.t("Copied To Clipboard"):Qa.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Bt.createElement(o0,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Bt.createElement(t0,{size:16,color:"secondary"}):Bt.createElement(e0,{size:16,color:"gray"}))),Bt.createElement(vS,{target:"_blank",href:`${eu}/swap/${e}`},Bt.createElement(DS,{container:B(),content:Qa.t("View on Rango Explorer"),side:"bottom"},Bt.createElement(n0,{size:20})))))}i(FS,"RequestIdRow");import{i18n as OS}from"@lingui/core";import{Typography as US}from"@rango-dev/ui";import kp from"react";function zS(t){let{date:e,isFinished:o}=t;return kp.createElement("div",{className:Zo()},kp.createElement(US,{variant:"label",size:"large",color:"neutral700"},o?OS.t("Finished at"):OS.t("Created at")),kp.createElement(US,{variant:"label",size:"small",color:"neutral700"},e))}i(zS,"SwapDateRow");var m0=3e3;function bp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=u0(),l=C().blockchains(),p=C().swappers(),{findToken:u}=C(),m=z().use.retry(),f=d0(),h=xp(null),[g,d]=qa(!1),[S,y]=qa(null),[T,k]=qa(null),[w,x]=qa(null),I=xp(S),A=xp(T),b=Be.use.getNotifications(),E=Be.use.removeNotification(),v=b(),N=a0(e),M=N?.networkStatus,F=i(Le=>{d(!0),y(Le)},"handleChangeModalState"),H=i(()=>{d(!1)},"handleCloseModal"),X=i(()=>{k({type:"loading",title:zt.t("Change Network"),description:`We\u2019re switching the connected network to ${Y?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),J=i(()=>{k({type:"success",title:zt.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),W=i(Le=>{k({type:"error",title:zt.t("Network Switch Failed"),description:Le?.message||se.detailedMessage.content})},"handleShowSwitchNetworkFailed"),Z=Yd(e),Y=N?i0(e,N):null,ce=N?s0(e,N):null,fe=Yy(e),at=Zd(e),ue=i(Le=>!!c(Le)?.mobileWallet,"checkIsMobileWallet"),wt=!!M&&[$n.WaitingForNetworkChange,$n.NetworkChangeFailed].includes(M),gt=!!ce?.walletType&&ue(ce.walletType),Wt=!!ce&&!!Y&&a(ce.walletType,Y.network,Y),D=!!Y&&wt&&(gt||Wt),U=i(()=>{D&&(X(),s(ce.walletType,[{namespace:Y.namespace,network:Y.network}]).then(()=>{J()}).catch(Le=>{W(Le)}))},"handleSwitchNetwork"),G=i(()=>{F("switchNetwork"),U()},"handleSwitchNetworkClick"),se=Xd(e,N,c),Q=PS({swap:e,switchNetworkIsAvailable:D,handleSwitchNetworkClick:G,showNetworkModal:M,setNetworkModal:F,message:se,blockchains:l,swappers:p}),j=Q.length,[K,Ie]=[e.steps[0],e.steps[j-1]],Ae=Ie?.outputAmount||Ie?.expectedOutputAmountHumanReadable,Ke=e.steps.reduce((Le,Lt)=>Le+parseFloat(Lt.feeInUsd||""),0),Mt=e.steps.find(Le=>Le.diagnosisUrl)?.diagnosisUrl,so=P(parseFloat(Ae||"0")*(Ie?.toUsdPrice||0),4,4),Io=P(parseFloat(e.inputAmount)*(K?.fromUsdPrice||0),4,4),Un=Ae?new QS(Ae).multipliedBy(Ie.toUsdPrice||0).toString():"",Yr=new QS(e.inputAmount).multipliedBy(K?.fromUsdPrice||0).toString(),ts=jt(Io,so),os=se.detailedMessage.content||se.shortMessage,wC=e.status==="success"?zt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:P(Ae,6,6),token:Q[j-1]?.to.token.displayName,conciseAddress:lo(e.wallets[Q[j-1]?.to.chain.displayName||""]?.address||""),chain:Q[j-1]?.to.chain.displayName}}):ke.createElement(xS,null,ke.createElement(wp,{variant:"body",size:"medium",color:"neutral700",align:"center"},os?"":zt.t("Transaction was not sent."),Z?`${zt.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:Z.outputAmount,symbol:Z.symbol,blockchain:Z.blockchain}})}`:""),os&&ke.createElement(Ha,{align:"center",variant:"body",size:"medium",color:"neutral700"},ke.createElement("b",null,"Reason:")," ",os));return vp(()=>{v.find(Lt=>Lt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(x(e.status),E(e.requestId),H()):w&&x(null))},[e.status,e.requestId]),vp(()=>{if(D){if(F("switchNetwork"),M===$n.WaitingForNetworkChange){X();return}if(M===$n.NetworkChangeFailed){W();return}return}if(M===$n.WaitingForConnectingWallet){F("connectWallet");return}if(M===$n.NetworkChanged){F("switchNetwork"),J();return}S&&["connectWallet","switchNetwork"].includes(S)&&H()},[M]),vp(()=>{if(I.current=S,A.current=T,S==="switchNetwork"&&T?.type==="success"){let Le=setTimeout(()=>{I.current==="switchNetwork"&&A.current?.type==="success"&&H()},m0);return()=>clearTimeout(Le)}},[S,T]),ke.createElement(ie,{header:{title:zt.t("Swap Details"),onCancel:e.status==="running"?()=>F("cancel"):void 0,suffix:e.status!=="running"&&ke.createElement(fo,null,ke.createElement(HS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>F("delete")},ke.createElement(wp,{size:"medium",variant:"label",color:"error"},zt.t("Delete"))))},footer:at&&!w&&ke.createElement(HS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Le=Ii(e,l,u);m(Le),setTimeout(()=>{f("../../")},0)}},zt.t("Try again"))},ke.createElement(gS,{compact:!0,ref:h},ke.createElement(FS,{requestId:o}),ke.createElement(zS,{date:fe,isFinished:!!e.finishTime}),ke.createElement("div",{className:kS()},ke.createElement(c0,{fee:P(String(Ke),2,2),time:qn(ai(e.steps)),steps:j}),ke.createElement(Sr,{from:{price:{value:P(e.inputAmount,6,6),usdValue:Io,realUsdValue:Yr,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:P(Ae,6,6),usdValue:so,realUsdValue:Un,realValue:Ae||""},token:{displayName:Q[j-1]?.to.token.displayName||"",image:Q[j-1]?.to.token.image},chain:{image:Q[j-1]?.to.chain.image,displayName:Q[j-1]?.to.chain.displayName||""}},percentageChange:P(ts,2,2),warningLevel:Xt(ts??0)})),ke.createElement("div",{className:wS()},ke.createElement(wp,{variant:"title",size:"small"},zt.t("Swaps steps"))),ke.createElement(l0,{size:8}),ke.createElement(SS,null,Q.map((Le,Lt)=>{let Fp=Lt,zn=e.steps[Lt]&&_S(e.steps[Lt]),vC=zn==="error"||zn==="in-progress"||zn==="warning"||zn==="completed"&&Lt===Q.length-1;return ke.createElement(p0,{className:"widget-swap-details-step-item-container",key:Fp,step:Le,type:"swap-progress",ref:h,state:zn,hasSeparator:Lt!==0,tabIndex:Fp,isFocused:vC,tooltipContainer:B()})}))),ke.createElement(gp,{isOpen:g,state:S,switchNetworkModalState:T,onClose:H,onCancel:r,onDelete:n,message:se.detailedMessage.content,swap:e,handleSwitchNetwork:G}),ke.createElement(yp,{open:!!w,diagnosisUrl:Mt,onClose:()=>x(null),status:e.status==="success"?"success":"failed",priceValue:P(Ae,6,6),usdValue:so,realUsdValue:Un,realValue:Ae||"",percentageChange:P(ts,2,2),token:{displayName:Q[j-1]?.to.token.displayName||"",image:Q[j-1]?.to.token.image},chain:{image:Q[j-1]?.to.chain.image},description:wC}))}i(bp,"SwapDetails");import{i18n as Va}from"@lingui/core";import{Divider as VS,NotFound as S0,Skeleton as Xr,Typography as Ka}from"@rango-dev/ui";import Ee from"react";import{i18n as f0}from"@lingui/core";import{Divider as g0,Skeleton as h0,Typography as y0}from"@rango-dev/ui";import be from"react";import{css as Ht,styled as Ep}from"@rango-dev/ui";var qS=Ep("div",{width:"100%",height:"100%",padding:"$10 $20"}),jr=Ep("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Ga=Ep("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),e9=Ht({display:"flex",justifyContent:"space-between",alignItems:"center"}),t9=Ht({paddingTop:"$15",display:"flex"}),o9=Ht({padding:"$15 $0"}),n9=Ht({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),r9=Ht({paddingBottom:"$10"}),i9=Ht({display:"flex",justifyContent:"start",alignItems:"center"}),a9=Ht({paddingTop:"$5",display:"flex",alignItems:"center"}),s9=Ht({display:"flex",alignItems:"center"}),l9=Ht({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),GS=Ht({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Ip(){return be.createElement(qS,null,be.createElement(kr,{type:"swap-preview"}),be.createElement("div",{className:"swaps-steps"},be.createElement(y0,{variant:"title",size:"small"},f0.t("Swaps steps"))),be.createElement(be.Fragment,null,be.createElement(jr,null,be.createElement(Ft,{separator:!1}),be.createElement("div",{className:GS()},be.createElement(g0,{direction:"horizontal",size:20}),be.createElement(h0,{height:22,variant:"rectangular"}))),be.createElement(Ga,null),be.createElement(jr,null,be.createElement(Ft,{separator:!1})),be.createElement(Ga,null),be.createElement(jr,null,be.createElement(Ft,{separator:!1})),be.createElement(Ga,null),be.createElement(jr,null,be.createElement(Ft,{separator:!1}))))}i(Ip,"LoadingSwapDetails");function KS(t){let{requestId:e,showSkeleton:o}=t;return Ee.createElement(ie,{header:{title:Va.t("Swap Details"),suffix:Ee.createElement(fo,null)}},o&&Ee.createElement(hS,null,Ee.createElement("div",{className:Zo()},Ee.createElement(Ka,{variant:"label",size:"large",color:"neutral700"},`${Va.t("Request ID")}`),Ee.createElement("div",{className:za()},Ee.createElement(Ka,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Xr,{width:60,height:10,variant:"rounded"})),Ee.createElement(VS,{direction:"horizontal",size:4}),Ee.createElement(Xr,{width:16,height:16,variant:"rectangular"}),Ee.createElement(VS,{direction:"horizontal",size:4}),Ee.createElement(Xr,{width:16,height:16,variant:"rectangular"}))),Ee.createElement("div",{className:Zo()},Ee.createElement(Ka,{className:TS(),variant:"label",size:"large",color:"neutral700"},Ee.createElement(Xr,{width:60,height:10,variant:"rounded"})),Ee.createElement(Ka,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Xr,{width:60,height:10,variant:"rounded"}))),Ee.createElement(Ip,null)),!o&&Ee.createElement(CS,null,Ee.createElement(S0,{title:Va.t("Not found"),description:Va.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(KS,"SwapDetailsPlaceholder");function jS(){let{manager:t,state:e}=k0(),o=!e.loadedFromPersistor,n=Tt(t),{requestId:r}=v0(),a=qe(),{fetchStatus:s}=C();if(!r)return Ap.createElement(w0,{containerStyles:{margin:"20px"},type:"error",title:C0.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:f})=>f.requestId===r):void 0,p=i(()=>{if(l?.id){let f=t?.get(l.id);f&&T0(f)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),m=l?.swap;return!m||c?Ap.createElement(KS,{requestId:r,showSkeleton:c}):Ap.createElement(bp,{swap:m,requestId:r,onCancel:p,onDelete:u})}i(jS,"SwapDetailsPage");import{i18n as XS}from"@lingui/core";import{Divider as x0,getCategoriesCount as b0,SelectableCategoryList as E0,styled as ZS,Typography as I0,Wallet as A0}from"@rango-dev/ui";import Qt,{useState as YS}from"react";var N0=ZS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),B0=ZS(le,{textAlign:"center"});function JS(){let{fetchStatus:t}=C(),[e,o]=YS("ALL"),n=C().blockchains(),{config:r}=C(),[a,s]=YS(),c=oe.use.isActiveTab(),{list:l}=vt(),p=Bu(l,n),m=b0(p)!==1,f=Wu(l,e),h=i(g=>{pu(l,r.multiWallets)||s(g)},"handleWalletItemClick");return Qt.createElement(ie,{header:{title:XS.t("Connect Wallets")}},Qt.createElement(B0,null,m&&Qt.createElement(Qt.Fragment,null,Qt.createElement(E0,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),Qt.createElement(x0,{size:24})),Qt.createElement(I0,{variant:"title",size:"xmedium",align:"center"},XS.t("Choose a wallet to connect.")),Qt.createElement(N0,null,f.map((g,d)=>{let S=`wallet-${d}-${g.type}`;return Qt.createElement(A0,{key:S,...g,state:g.state,container:B(),onClick:()=>h(g),isLoading:t==="loading",disabled:!c})}),Qt.createElement(ar,{id:"widget-state-full-connect-modal",wallet:a,onClose:()=>{s(void 0)}}))))}i(JS,"WalletsPage");function RS(){return lm(),Js(),W0([{path:$.home,element:ze.createElement(gy,null)},{path:$.routes,element:ze.createElement(Ty,null)},{path:$.fromSwap,children:[{index:!0,element:ze.createElement(La,{type:"source"})},{path:$.blockchains,element:ze.createElement(Na,{type:"source"})}]},{path:$.toSwap,children:[{index:!0,element:ze.createElement(La,{type:"destination"})},{path:$.blockchains,element:ze.createElement(Na,{type:"destination"})}]},{path:$.settings,children:[{index:!0,element:ze.createElement(jy,null)},{path:$.languages,element:ze.createElement(yy,null)},{path:$.exchanges,element:ze.createElement(Jc,{sourceType:"Exchanges"})},{path:$.bridges,element:ze.createElement(Jc,{sourceType:"Bridges"})},{path:$.customTokens,children:[{index:!0,element:ze.createElement(hh,null)},{path:$.addCustomTokens,children:[{index:!0,element:ze.createElement(sf,null)},{path:$.blockchains,element:ze.createElement(Na,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:$.swaps,children:[{index:!0,element:ze.createElement(Dh,null)},{path:$.swapDetails,element:ze.createElement(jS,null)}]},{path:$.wallets,element:ze.createElement(JS,null)},{path:$.confirmSwap,element:ze.createElement(eh,null)}])}i(RS,"AppRoutes");import{useQueueManager as X0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as Y0}from"rango-sdk";import{useContext as Z0,useEffect as Mp,useState as uC}from"react";import{Provider as $0}from"@rango-dev/wallets-react";import ja,{createContext as F0,useEffect as rC,useMemo as O0,useRef as iC}from"react";import{useEffect as L0}from"react";import{Provider as M0}from"@rango-dev/wallets-core";function eC(t){return t.map(e=>typeof e=="string"?e:e instanceof M0?e.id:e.config.type).join("-")}i(eC,"hashProviders");function Np(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=C(),a=n();return L0(()=>{o(),r()},[eC(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(Np,"useWalletProviders");import{legacyFormatAddressWithNetwork as P0,legacyReadAccountAddress as tC}from"@rango-dev/wallets-core/legacy";import{Events as Fn}from"@rango-dev/wallets-react";import{isEvmBlockchain as _0}from"rango-sdk";function oC(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=C(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(_0).map(d=>d.name),u=i((d,S)=>{let[y,,T,k,w]=d,x={walletType:y,network:k.network??void 0,accounts:T};c.current?c.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let I=ds(y,T,p,S.supportedChainNames,w.isContractWallet);I.length&&e(I,w.namespace,k.derivationPath)},"onAccountsEvent"),m=i((d,S,y,T,k)=>{if(S===Fn.ACCOUNTS){let w=Kn(k.supportedBlockchains);y&&u([d,S,y,T,k],{supportedChainNames:w})}S===Fn.PROVIDER_DISCONNECTED&&(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),S===Fn.NAMESPACE_DISCONNECTED&&n(d,y)},"handleUpdatesForHub"),f=i((d,S,y,T,k)=>{if(S===Fn.ACCOUNTS){let w=Kn(k.supportedBlockchains),x=[],I=[];if(y?.forEach(b=>{let{network:E}=tC(b);p.includes(E)?x.push(b):I.push(b)}),r.filter(b=>b.walletType===d).map(b=>P0(b.address,b.chain)).length>0){if(x.length>0){let b=ds(d,x,p,w,k.isContractWallet);a(d,{chains:b.map(E=>E.chain)})}I.length>0&&a(d,{chains:I.map(b=>{let{network:E}=tC(b);return E})})}y?u([d,S,y,T,k],{supportedChainNames:w}):(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((d,S,y,T,k)=>{if(S===Fn.CONNECTED&&y){let w={walletType:d,network:T.network??void 0,accounts:T.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(S===Fn.NETWORK&&y){let w={walletType:d,network:y,accounts:T.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((d,S,y,T,k)=>{k.isHub?m(d,S,y,T,k):f(d,S,y,T,k),h(d,S,y,T,k)},"handler")}}i(oC,"useUpdates");import{LegacyEvents as D0}from"@rango-dev/wallets-core/legacy";function nC(t,e){let[o,n,r,a,s]=e;n!==D0.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(nC,"propagateEvents");var Xa=F0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function U0(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=C(),a=C().blockchains(),s=C().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=Np(s.wallets,c),p=iC(),u=iC(),{handler:m}=oC({onConnectWalletHandler:p,onDisconnectWalletHandler:u});rC(()=>{n().catch(console.log)},[]),rC(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=oe.use.isActiveTab(),h=O0(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return ja.createElement(Xa.Provider,{value:h},ja.createElement($0,{allBlockChains:a,providers:l,onUpdateState:(g,d,S,y,T)=>{let k=[g,d,S,y,T];m(...k),t.onUpdateState&&nC(t.onUpdateState,k)},autoConnect:!!f,configs:{wallets:s.wallets}},t.children))}i(U0,"Main");function Ya(t){let{config:e,...o}=t;return ja.createElement(Yu,{config:e},ja.createElement(U0,{...o,config:e}))}i(Ya,"WidgetWallets");import{globalCss as z0}from"@rango-dev/ui";var aC=i(()=>z0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");import{useWallets as H0}from"@rango-dev/wallets-react";import{useEffect as Q0,useRef as q0}from"react";function sC(){let{connect:t,state:e}=H0(),o=q0({}),{fetchStatus:n}=C(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Q0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(sC,"useForceAutoConnect");import{isApprovalTX as G0,RouteEventType as lC,StepEventType as cC,StepExecutionEventStatus as V0,WidgetEvents as Za}from"@rango-dev/queue-manager-rango-preset";import{useEffect as pC}from"react";function Bp(){let t=Be.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=C();pC(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===cC.TX_EXECUTION&&s.status===V0.TX_SENT&&!G0(c)||s.type===cC.SUCCEEDED){let u=[],m=l.wallets[c?.fromBlockchain];if(m){let f=e.find(h=>h.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&h.walletType===m.walletType&&h.chain===c?.fromBlockchain);f&&u.push(f)}if(c?.fromBlockchain!==c?.toBlockchain){let f=l.wallets[c?.toBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let f=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(d=>f.some(S=>S.blockchain===d.blockchain&&S.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&S.symbol?.toLocaleLowerCase()===d.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return we.on(Za.StepEvent,r),()=>we.off(Za.StepEvent,r)},[we,e]),pC(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===lC.FAILED||s.type===lC.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return we.on(Za.RouteEvent,r),()=>we.off(Za.RouteEvent,r)},[we])}i(Bp,"useSubscribeToWidgetEvents");import{useManager as K0}from"@rango-dev/queue-manager-react";import{useEffect as j0}from"react";function Wp(){let{isSynced:t,syncNotifications:e}=Be(),{manager:o,state:n}=K0();j0(()=>{Be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Tt(o))},[Be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Wp,"useSyncNotifications");function Lp(){sC(),aC(),Bp(),Wp();let t=C().blockchains(),{canSwitchNetworkTo:e}=Xi(),[o,n]=uC(null),[r,a]=uC(),s=Z0(Xa),c=t.filter(Y0);Mp(()=>()=>am(),[]),Mp(()=>()=>sm(),[]),X0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),Mp(()=>(Po.init(),Be.persist.hasHydrated()||Be.persist.rehydrate(),s.onConnectWallet(l=>{n(p=>{if(!p||p.walletType!==l.walletType)return l;let u={...p};return l.network&&(u.network=l.network),l.accounts&&(u.accounts=l.accounts),u})}),s.onDisconnectWallet(l=>{a(l),n(p=>l===p?.walletType?null:p)}),Po.destroy),[])}i(Lp,"useBootstrap");import{styled as J0}from"@rango-dev/ui";var dC=J0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left",height:"100%","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Jo(){Lp();let{config:t}=C(),{activeTheme:e}=mo(t?.theme||{}),{activeLanguage:o}=wo();return Pp.createElement(R0,{language:o},Pp.createElement(dC,{id:"swap-container",className:e()},Pp.createElement(RS,null)))}i(Jo,"Main");import{setSolanaSignerConfig as CB}from"@rango-dev/signer-solana";import Dp,{useEffect as $p,useMemo as TB}from"react";function mC(){let{setWatermark:t,setShowProfileBanner:e}=oe();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Gt("BASE_URL")}/meta/dapp/config?apiKey=${Gt("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(mC,"useFetchApiConfig");import{useState as eB}from"react";var tB=i(()=>{let[t,e]=eB(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=cu(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),fC=tB;import{checkWaitingForNetworkChange as oB,makeQueueDefinition as nB}from"@rango-dev/queue-manager-rango-preset";import{Provider as rB}from"@rango-dev/queue-manager-react";import{useWallets as iB}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as aB}from"@rango-dev/wallets-shared";import{isEvmBlockchain as sB}from"rango-types";import lB,{useMemo as cB}from"react";function pB(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=iB(),c=cB(()=>nB({API_KEY:t.apiKey||Gt("API_KEY"),BASE_URL:Gt("BASE_URL"),emitter:{emit:we.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=C(),u=l(),m={blockchains:p.map(w=>({accounts:[w],name:w.chain}))},f=i(async(w,x)=>a(w,x.network,x)?await r(w,[x]):void 0,"switchNetwork"),h=i(w=>!!s(w).mobileWallet,"isMobileWallet"),g=u.filter(w=>w.enabled).reduce((w,x)=>(w[x.name]=x,w),{}),d=u.filter(sB),S=i(w=>{let{supportedChains:x}=s(w);return Kn(x)},"getSupportedChainNames"),y=e(),T={meta:{blockchains:g,evmBasedChains:d,evmNetworkChainInfo:aB(d),getSupportedChainNames:S},getSigners:o,wallets:m,providers:y,switchNetwork:f,canSwitchNetworkTo:a,state:n,isMobileWallet:h},k=oe.use.isActiveTab();return lB.createElement(rB,{queuesDefs:[c],context:T,onPersistedDataLoaded:w=>{oB(w)},isPaused:!k},t.children)}i(pB,"QueueManager");var gC=pB;import{useManager as gB}from"@rango-dev/queue-manager-react";import hB,{createContext as yB,useContext as SB}from"react";function hC(){let{findToken:t}=C(),e=C().blockchains(),o=C().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=z()();return i(p=>{let{fromBlockchain:u,fromToken:m,toBlockchain:f,toToken:h,requestAmount:g}=p,d={blockchains:e,tokens:o};if(u!==void 0){let S=e.find(y=>y.name===u)??null;n(S)}if(m!==void 0){let S=m?t(m)??null:null;r({meta:d,token:S})}if(f!==void 0){let S=e.find(y=>y.name===f)??null;a(S)}if(h!==void 0){let S=h?t(h)??null:null;s({meta:d,token:S})}g!==void 0&&c(g)},"updateQuoteInputs")}i(hC,"useUpdateQuoteInputs");import{cancelSwap as uB,getCurrentNamespaceOfOrNull as dB,getCurrentStep as mB,getRelatedWalletOrNull as fB}from"@rango-dev/queue-manager-rango-preset";var Ja=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Tt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Ii(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&uB(o)}getCurrentStepInfo(e){let o=mB(e);return{step:o,wallet:o?fB(e,o):null,network:o?dB(e,o)?.network:null}}};var yC=yB(void 0);function _p(t){let{manager:e}=gB(),o=oe.use.isActiveTab(),n=z().use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=C(),l=new Ja(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=C(),u=xu(a()),m=C().blockchains(),f=C().tokens(),h=C().swappers(),g=C().fetchStatus,d=wo().resetLanguage,S=Be().getNotifications(),y=Be().clearNotifications,T=hC(),{fromBlockchain:k,toBlockchain:w,fromToken:x,toToken:I,inputAmount:A}=z()(),b={isActiveTab:o,setCurrentTabAsActive:Po.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async E=>c(E)},meta:{blockchains:m,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:d,notifications:{list:S,clearAll:y},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:w?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:A},updateQuoteInputs:T}};return hB.createElement(yC.Provider,{value:b},t.children)}i(_p,"WidgetInfo");function SC(){let t=SB(yC);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(SC,"useWidget");function On(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=mC(),{handleLoadCustomFont:a}=fC();return $p(()=>{r().catch(console.log)},[]),$p(()=>{n&&a(n)},[n]),TB(()=>{Mu({API_KEY:o?.apiKey||ti,BASE_URL:o?.apiUrl||Rp})},[o.apiKey,o.apiUrl]),$p(()=>{t.config?.signers?.customSolanaRPC&&CB("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Dp.createElement(Ya,{config:o,onUpdateState:e},Dp.createElement(gC,{apiKey:o.apiKey},Dp.createElement(_p,null,t.children)))}i(On,"WidgetProvider");function CC(t){let e=t.config?.externalWallets;return Ra.createElement(bi,null,e?Ra.createElement(Jo,null):Ra.createElement(On,{config:t.config??on},Ra.createElement(Jo,null)))}i(CC,"Refuel");import es from"react";function TC(t){let e=t.config?.externalWallets;return es.createElement(bi,null,e?es.createElement(Jo,null):es.createElement(On,{config:t.config??on},es.createElement(Jo,null)))}i(TC,"Widget");function kC(){let{on:t,off:e}=we;return{on:t,off:e}}i(kC,"useWidgetEvents");var nte={DerivationPath:nr,Namespaces:er,Detached:or,isOnDerivationPath:ir,isOnNamespace:rr,isOnDetached:Ao};export{Eee as EventSeverity,sn as MainEvents,Dee as Networks,Oee as PendingSwapNetworkStatus,ys as QuoteEventTypes,CC as Refuel,Iee as RouteEventType,ss as SUPPORTED_FONTS,nte as StatefulConnect,Aee as StepEventType,Nee as StepExecutionBlockedEventStatus,Bee as StepExecutionEventStatus,wd as SwapModeContext,Re as UI_ID,Cs as UiEventTypes,Ss as WalletEventTypes,Pee as WalletEvents,$ee as WalletTypes,TC as Widget,sn as WidgetEvents,On as WidgetProvider,Ya as WidgetWallets,dl as customizedThemeTokens,is as pickProviderVersionWithFallbackToLegacy,Mee as readAccountAddress,Ro as useStatefulConnect,vt as useWalletList,Xi as useWallets,SC as useWidget,kC as useWidgetEvents,IT as widgetEventEmitter};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|