@rango-dev/widget-embedded 0.39.1-next.8 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/components/SwapDetailsModal/SwapDetailsCompleteModal.d.ts.map +1 -1
  2. package/dist/components/SwapDetailsModal/SwapDetailsModal.styles.d.ts +160 -0
  3. package/dist/components/SwapDetailsModal/SwapDetailsModal.styles.d.ts.map +1 -1
  4. package/dist/constants/profileBanner.d.ts +3 -0
  5. package/dist/constants/profileBanner.d.ts.map +1 -0
  6. package/dist/constants/wallets.d.ts +1 -0
  7. package/dist/constants/wallets.d.ts.map +1 -1
  8. package/dist/containers/Wallets/Wallets.d.ts.map +1 -1
  9. package/dist/containers/Wallets/Wallets.helpers.d.ts +4 -0
  10. package/dist/containers/Wallets/Wallets.helpers.d.ts.map +1 -0
  11. package/dist/containers/Wallets/Wallets.types.d.ts +6 -2
  12. package/dist/containers/Wallets/Wallets.types.d.ts.map +1 -1
  13. package/dist/containers/Wallets/useUpdates.d.ts +13 -0
  14. package/dist/containers/Wallets/useUpdates.d.ts.map +1 -0
  15. package/dist/hooks/useSubscribeToWidgetEvents/useSubscribeToWidgetEvents.d.ts.map +1 -1
  16. package/dist/index.js +2 -2
  17. package/dist/index.js.map +4 -4
  18. package/dist/store/middlewares/keepLastUpdated.d.ts +8 -0
  19. package/dist/store/middlewares/keepLastUpdated.d.ts.map +1 -0
  20. package/dist/store/slices/wallets.d.ts +20 -14
  21. package/dist/store/slices/wallets.d.ts.map +1 -1
  22. package/dist/store/utils/wallets.d.ts +3 -3
  23. package/dist/store/utils/wallets.d.ts.map +1 -1
  24. package/dist/utils/common.d.ts +5 -0
  25. package/dist/utils/common.d.ts.map +1 -1
  26. package/dist/widget-embedded.build.json +1 -1
  27. package/package.json +12 -12
  28. package/src/components/ConfirmWalletsModal/WalletList.tsx +1 -1
  29. package/src/components/SwapDetailsModal/SwapDetailsCompleteModal.tsx +14 -7
  30. package/src/components/SwapDetailsModal/SwapDetailsModal.styles.ts +4 -0
  31. package/src/constants/profileBanner.ts +3 -0
  32. package/src/constants/wallets.ts +2 -0
  33. package/src/containers/Wallets/Wallets.helpers.ts +26 -0
  34. package/src/containers/Wallets/Wallets.tsx +23 -127
  35. package/src/containers/Wallets/Wallets.types.ts +16 -2
  36. package/src/containers/Wallets/useUpdates.ts +240 -0
  37. package/src/hooks/useSubscribeToWidgetEvents/useSubscribeToWidgetEvents.ts +19 -9
  38. package/src/store/middlewares/keepLastUpdated.ts +19 -0
  39. package/src/store/slices/wallets.ts +560 -407
  40. package/src/store/utils/wallets.ts +12 -11
  41. package/src/utils/common.ts +24 -2
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var Fh=Object.defineProperty;var i=(t,e)=>Fh(t,"name",{value:e,configurable:!0});import{EventSeverity as Vj,RouteEventType as Kj,StepEventType as jj,StepExecutionBlockedEventStatus as Xj,StepExecutionEventStatus as Yj}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as Jj}from"@rango-dev/wallets-core/legacy";import{useWallets as jr,Events as e3}from"@rango-dev/wallets-react";import{Networks as o3,WalletTypes as n3}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as i3}from"rango-types";import{Divider as BS}from"@rango-dev/ui";import lo,{useEffect as MS,useRef as LS,useState as Np}from"react";import{WalletState as Oh}from"@rango-dev/ui";import{useWallets as Uh}from"@rango-dev/wallets-react";import{useReducer as zh}from"react";function oc(t){return!!t.derivationPath}i(oc,"isStateOnDerivationPathStep");function nc(t){return!!t.namespace}i(nc,"isStateOnNamespace");var or={status:"init",namespace:null,derivationPath:null};function rc(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"reset":return or;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:or;default:throw new Error("Action hasn't been defined.")}}i(rc,"reducer");function Gt(){let{state:t,disconnect:e,connect:o}=Uh(),[n,r]=zh(rc,or),a=i(async(p,d,h)=>{r({type:"reset"});try{let f=d?.map(m=>({...m,network:void 0}));return await o(p,f),{status:"connected"}}catch(f){let m=f?.message?`Error: ${f.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:f})}},"runConnect"),s=i(async(p,d)=>{if(p.state===Oh.DISCONNECTED){if(!!p.isHub&&p.properties?.find(k=>k.name==="detached")&&p.state!=="connected")return r({type:"needsNamespace",payload:{targetWallet:p}}),{status:"namespace"};if(!p.needsNamespace)return await a(p.type,void 0,d);let m=p.needsNamespace.data.length>1,g=p.needsDerivationPath;if(m)return r({type:"needsNamespace",payload:{targetWallet:p}}),{status:"namespace"};if(g){let C=p.needsNamespace.data[0];return r({type:"needsDerivationPath",payload:{providerType:p.type,providerImage:p.image,namespace:C.value}}),{status:"derivation-path"}}return await a(p.type,p.needsNamespace?.data.map(C=>({namespace:C.value})),d)}return d?.disconnectIfConnected?(await u(p.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),l=i(async(p,d)=>{let h=p.needsNamespace?.selection==="single",f=p.needsDerivationPath,m=d[0];if(!m)throw new Error("To confirm a namespace, you should select at least one namespace.");if(h&&f)return r({type:"needsDerivationPath",payload:{providerType:p.type,providerImage:p.image,namespace:m}}),{status:"derivation-path"};if(!nc(n))throw new Error("Something went wrong on handling namespace. Please retry.");let g=n.namespace.targetWallet.type,C=d.map(S=>({namespace:S}));return await a(g,C)},"handleNamespace"),c=i(async p=>{if(!p)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!oc(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let d=n.derivationPath.providerType,f=[{namespace:n.derivationPath.namespace,derivationPath:p}];return await a(d,f)},"handleDerivationPath"),u=i(async p=>{let d=t(p);return d.connected||d.connecting?(await e(p),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:l,handleDerivationPath:c,getState:()=>n,resetState:p=>{r(p==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Gt,"useStatefulConnect");import{WalletState as ga}from"@rango-dev/ui";import{useWallets as Xy}from"@rango-dev/wallets-react";import{detectMobileScreens as Yy,KEPLR_COMPATIBLE_WALLETS as Zy,WalletTypes as un}from"@rango-dev/wallets-shared";import{useCallback as Jy,useEffect as Ry}from"react";import Hy,{createContext as Gy,useContext as Vy,useEffect as Ky,useRef as jy}from"react";import{create as Qy}from"zustand";import{persist as qy}from"zustand/middleware";import{allProviders as Qh}from"@rango-dev/provider-all";var Yi=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()}},bo=new Yi;import{defineVersions as ac,pickVersion as sc,Provider as Zi}from"@rango-dev/wallets-core";function lc({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=cc(a);return s instanceof Zi?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 Zi?o.push(ac().version("1.0.0",n).build()):o.push(ac().version("0.0.0",n).build())}),o}return t}i(lc,"matchAndGenerateProviders");function cc(t){try{return sc(t,"1.0.0")[1]}catch{return sc(t,"0.0.0")[1]}}i(cc,"pickProviderVersionWithFallbackToLegacy");function pc(t){return t.map(o=>cc(o)).map(o=>o instanceof Zi?o.id:o.config.type)}i(pc,"configWalletsToWalletName");function nr(t,e){return e.find(o=>o.name===t)?.displayName}i(nr,"getBlockchainDisplayNameFor");function st(t,e){return e.find(o=>o.name===t)?.shortName}i(st,"getBlockchainShortNameFor");function uc(t,e){return e.find(o=>o.name===t)?.logo}i(uc,"getBlockchainImage");function on(t,e){return e.find(o=>o.id===t)?.title}i(on,"getSwapperDisplayName");function nn(t,e){return e.find(o=>o.name===t)??null}i(nn,"findBlockchain");function Ji(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(Ji,"isTokenNative");function lt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(lt,"createTokenHash");function xo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(xo,"isValidTokenAddress");function rn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(c=>{typeof c!="string"&&(c=lt(c));let u=o.tokensMapByTokenHash.get(c);u&&(n[c]=u)})},"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 l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(c=>{l.has(c)||a(o.tokensMapByBlockchainName[c])})}return s.forEach(l=>{let c=r[l];if(!c&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}c&&(c.isExcluded?(a(o.tokensMapByBlockchainName[l]),c.tokens.forEach(u=>{let p=lt(u);delete n[p]})):a(c.tokens))}),Object.values(n)}i(rn,"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 mc(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(mc,"makeProvidersOptionsFromConfig");var ir={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"}},qh={clientUrl:void 0},Hh={liquiditySources:void 0};function dc(t){let e=mc(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 Qh(o).map(a=>a())}i(dc,"generateProviders");var fc=i((t,e,o)=>{let n=dc({...ir,...t});return{config:{...ir,...t},iframe:qh,campaignMode:Hh,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:l}=o(),c=rn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}}),u=rn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}});bo.set("supportedSourceTokens",c),bo.set("supportedDestinationTokens",u),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=dc(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=mc(a);return lc({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as gc}from"rango-types";var hc=[gc.EVM,gc.SOLANA];import{RangoClient as iy}from"rango-sdk";import{UI_ID as Gh}from"@rango-dev/ui";var ar="c6381a79-2817-4602-83bf-6a641a409e32",yc="https://api.rango.exchange",Sc="https://explorer.rango.exchange",De={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Gh};import{BlockchainCategories as Jh,WalletState as bt}from"@rango-dev/ui";import{legacyReadAccountAddress as Rh}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as ey,getCosmosExperimentalChainInfo as ty,isEvmAddress as oy,KEPLR_COMPATIBLE_WALLETS as eA,Networks as Bc}from"@rango-dev/wallets-shared";import Io from"bignumber.js";import{isCosmosBlockchain as ny}from"rango-types";import Vh from"bignumber.js";var ce=new Vh(0);import{WalletTypes as Kh}from"@rango-dev/wallets-shared";var Cc=[Kh.LEAP];import{BlockchainCategories as ea,WalletState as Zh}from"@rango-dev/ui";import{TransactionType as sr}from"rango-sdk";var kc="Roboto",Ri=[{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 Eo(t){return Array.from(new Set(t))}i(Eo,"removeDuplicateFrom");function Ec(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Ec,"debounce");function Je(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Je,"containsText");function wc(t,e){return t.toLowerCase()===e.toLowerCase()}i(wc,"exactText");function bc(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(bc,"startWithText");var W=i(()=>document.getElementById(De.SWAP_BOX_ID),"getContainer"),no=i(()=>document.getElementById(De.EXPANDED_BOX_ID),"getExpanded");function xc(t,e,o){let n=!!e&&wc(e,t),r=!!o&&wc(o,t);return n!==r?n?-1:1:0}i(xc,"compareExactMatchText");function ta(t,e,o){let n=!!e&&Je(e,t),r=!!o&&Je(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ta,"compareContainsText");function oa(t,e,o){let n=!!e&&bc(e,t),r=!!o&&bc(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(oa,"compareStartWithText");function Ic(t,e,o){if(!o)return 0;let n=xc(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=xc(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=oa(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ta(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=oa(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ta(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=oa(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ta(o,t.address,e.address);if(r!==0)return r}return 0}i(Ic,"compareWithSearchFor");var lr=i((t,e)=>{switch(e){case ea.ALL:return!0;case ea.UTXO:return t===sr.TRANSFER;case ea.OTHER:return t!==sr.TRANSFER&&t!==sr.COSMOS&&t!==sr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Ac=i(t=>Ri.find(o=>o.value===t)?.url,"getFontUrlByName");function Nc(t,e){let o=!!t.find(n=>n.state===Zh.CONNECTED);return e===!1&&o}i(Nc,"isSingleWalletActive");import{BigNumber as Wc}from"bignumber.js";var an=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Wc(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Wc(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 cr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var wt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),sn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ln(t){switch(!0){case t.connected:return bt.CONNECTED;case t.connecting:return bt.CONNECTING;case!t.installed:return bt.NOT_INSTALLED;default:return bt.DISCONNECTED}}i(ln,"mapStatusToWalletState");function Mc(t,e,o,n){return o.filter(r=>!Cc.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:c}=t(r);return s&&(!l||!!n&&c!==n)?!1:n?!!a.find(p=>p.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:c,needsNamespace:u,supportedChains:p,needsDerivationPath:d,properties:h,isHub:f}=e(r),m=Eo(p.map(C=>C.type)),g=ln(t(r));return{title:a,image:s,link:ey(l),state:g,type:r,showOnMobile:c,needsNamespace:u,blockchainTypes:m,needsDerivationPath:d,properties:h,isHub:f}})}i(Mc,"mapWalletTypesToWalletInfo");function dr(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(dr,"walletAndSupportedChainsNames");function ra(t,e,o,n,r){let a=[];function s(c,u){if(!!!a.find(d=>d.chain===c)){let d={address:u,chain:c,walletType:t};a.push(d)}}i(s,"addAccount");let l=n||[];return e.forEach(c=>{let{address:u,network:p}=Rh(c),d=l.length>0,h=l.includes(p),f=p===Bc.Unknown;if(d&&!h&&!f)return;let g=p===Bc.Unknown&&oy(u);if(f&&!g)return;o.includes(p)||g?r?s(p,u.toLowerCase()):l.filter(k=>o.includes(k)).forEach(k=>{s(k,u.toLowerCase())}):s(p,u)}),a}i(ra,"prepareAccountsForWalletStore");function ro(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:c}=r;c.forEach((u,p)=>{let d=u.from.blockchain,h=u.to.blockchain,f=a===o.swaps.length-1,m=p===c.length-1;(!f&&!m||f&&l!==d||e==="all")&&n.add(d),e==="all"&&n.add(h)})}e==="all"&&n.add(l)}),Array.from(n)}i(ro,"getQuoteWallets");function Lc(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Lc,"isAccountAndWalletMatched");var Pc=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?na(n.usdValue,n.decimals):ce.toFixed();return o.plus(r)},new Io(ce));return ry(e.toString())},"calculateWalletUsdValue");function ry(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(ry,"numberWithThousandSeparator");var mr=i((t,e)=>{let o=ty(Object.entries(t).map(([,n])=>n).filter(ny));return o&&o[e]?.experimental},"isExperimentalChain");function na(t,e){return new Io(t).shiftedBy(-e).toFixed()}i(na,"representAmountInNumber");function fr(t){if(!t)return null;let e=na(t.amount,t.decimals),o=t.usdValue?na(t.usdValue,t.decimals):null,n=M(e,8,8),r=o?M(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(fr,"formatBalance");function _c(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Io(t.usdValue).shiftedBy(-t.decimals):ce,n=e&&e.usdValue?new Io(e.usdValue).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Io(t.amount).shiftedBy(-t.decimals):ce,n=e&&e.amount?new Io(e.amount).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(_c,"compareTokenBalance");function Mt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Mt,"areTokensEqual");function Dc(t){return t.sort((e,o)=>+(o.state===bt.CONNECTED)-+(e.state===bt.CONNECTED)||+(o.state===bt.DISCONNECTED||o.state===bt.CONNECTING)-+(e.state===bt.DISCONNECTED||e.state===bt.CONNECTING))}i(Dc,"sortWalletsBasedOnConnectionState");function gr(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(gr,"getConciseAddress");function $c({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i($c,"getAddress");var Fc=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Oc(t){return t.map(e=>e.state).join("-")}i(Oc,"hashWalletsState");function Uc(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(Uc,"filterBlockchainsByWalletTypes");function zc(t,e){return e===Jh.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(lr(n,e))return!0;return!1})}i(zc,"filterWalletsByCategory");var ia={API_KEY:ar};function Lt(t){return ia[t]||""}i(Lt,"getConfig");function Qc(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),ia=e,ia}i(Qc,"initConfig");var qc=20,Hc=25,aa="theme-widget",sa=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Mt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Mt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),la=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Gc=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var hr,xt=i(()=>hr||(hr=new iy(Lt("API_KEY"),Lt("BASE_URL")),hr),"httpService");function yr(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Eo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(c=>c===s.swapperGroup)),l&&s.types.map(c=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:c,selected:!e.includes(s.swapperGroup)})})}}),n}i(yr,"getUniqueSwappersGroups");function Vc(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Vc,"sortLiquiditySourcesByGroupTitle");function Ve(t,e){return e?.[t]==="hidden"}i(Ve,"isFeatureHidden");function Ao(t,e){return e?.[t]==="enabled"}i(Ao,"isRoutingEnabled");var Kc=i((t,e,o)=>Ve("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");var jc=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 c=rr({config:a}),u=r;return c.length>0&&(u=u.filter(p=>c.includes(p.name))),u.filter(p=>hc.includes(p.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(c=>!(s.length>0&&!s.includes(c.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),l=Array.from(n.values()),c=e()._blockchainsMapByName;if(!o||!o.type)return l;let u=o.type==="source"?"from":"to",p=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",d=bo.get(p);d?.length||(d=rn({type:o.type,config:{blockchains:a[u]?.blockchains,tokens:a[u]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),bo.set(p,d)),d=Kc(d,s,a.features);let h=e().blockchains({type:o.type});return d.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!h.some(g=>g.name===m.blockchain)?!1:o.searchFor?!!(Je(m.symbol,o.searchFor)||Je(m.address||"",o.searchFor)||Je(m.name||"",o.searchFor)):!0).sort((m,g)=>{let C=e().isTokenPinned(m,o.type),S=e().isTokenPinned(g,o.type);if(C!==S)return C?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(m),L=o.getBalanceFor(g),b=_c(A,L);if(b!==0)return b}let k=c.get(m.blockchain),T=c.get(g.blockchain),v=Ji(m,k),w=Ji(g,T);if(v!==w)return v?-1:1;if(m.isPopular!==g.isPopular)return m.isPopular?-1:1;if(o.searchFor){let A=Ic(m,g,o.searchFor);if(A)return A}return m.isSecondaryCoin!==g.isSecondaryCoin?m.isSecondaryCoin?1:-1:k&&T?k.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=lt(o),s=n.get(a);return s||(s=r.find(l=>lt(l)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Mt(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(u=>{let p=a?.includes(u.swapperGroup);return s||!a||a.length===0?!p:p}).sort(Vc)},fetch:async()=>{try{let{routing:o}=e().config,n=Ao("enableCentralizedSwappers",o),r=await xt().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,l={},c=[],u=r.popularTokens,p=r.swappers.filter(f=>f.enabled),d=new Set;r.tokens.forEach(f=>{d.add(f.blockchain),c.push(f)}),r.blockchains.sort((f,m)=>f.sort-m.sort).forEach(f=>{f.enabled&&d.has(f.name)&&a.set(f.name,f)}),c.forEach(f=>{let m=lt(f);l[f.blockchain]||(l[f.blockchain]=[]),s.set(m,f),l[f.blockchain].push(m)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l,_popularTokens:u,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as ay,Catalonia as sy,Chinese as Xc,Denmark as ly,English as cy,Finland as py,French as uy,German as dy,Greece as my,Hungary as fy,India as gy,Indonesian as hy,Italian as yy,Japanese as Sy,Korea as Cy,Lithuania as ky,Malay as Ty,Netherlands as vy,Pakistan as wy,Philippines as by,Poland as xy,Portuguese as Ey,Russian as Iy,SaudiArabia as Ay,Serbia as Ny,Slovakia as Wy,SouthAfrica as By,Spanish as My,Swahili as Ly,Swedish as Py,Thai as _y,Turkish as Dy,Ukrainian as $y,Vietnamese as Fy}from"@rango-dev/ui";var Yc=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:By},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:Ay},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:ay},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:sy},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Xc},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Xc},{title:"Danish",label:"Dansk",local:"da",SVGFlag:ly},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:vy},{title:"English",label:"English",local:"en",SVGFlag:cy},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:by},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:py},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:uy},{title:"German",label:"Deutsch",local:"de",SVGFlag:dy},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:my},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:gy},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:fy},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:hy},{title:"Italian",label:"Italiana",local:"it",SVGFlag:yy},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Sy},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:Cy},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:ky},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:Ty},{title:"Polish",label:"Polski",local:"pl",SVGFlag:xy},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Ey},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Iy},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:Ny},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:Wy},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:My},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:Ly},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:Py},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:_y},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:Dy},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:$y},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:wy},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:Fy}],No="en";var Zc=[.5,1,3],Jc=1,Rc=5,ep=100,tp=0;var op=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Jc,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let c=s===o,u=l<=9;return c&&u}))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=Eo(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=Ve("theme",n),s=Ve("language",n),l=Ve("liquiditySource",n),c=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...c&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||No},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||No}})},setCustomToken:o=>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 fa from"bignumber.js";import Oy from"mitt";var he=Oy(),Uy={on:he.on,off:he.off};import{WidgetEvents as np}from"@rango-dev/queue-manager-rango-preset";var pa=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(pa||{}),ua=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(ua||{}),da=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(da||{}),Wo=(a=>(a[a.RouteEvent=np.RouteEvent]="RouteEvent",a[a.StepEvent=np.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Wo||{});import zy from"bignumber.js";function cn(t){return`${t.blockchain}-${t.address}-${t.symbol}`}i(cn,"createAssetKey");function ma(t,e){return`${cn(e)}-${t}`}i(ma,"createBalanceKey");function pn(t){let[e,o,n]=t.split("-");return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(pn,"extractAssetFromBalanceKey");function rp(t,e){let o={};return t.balances?.forEach(n=>{let r=ma(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,l=e().findToken(n.asset)?.usdPrice,c=l?new zy(l??ce).multipliedBy(a).toString():"",u={amount:a,decimals:s,usdValue:c};o[r]=u}),o}i(rp,"createBalanceStateForNewAccount");function ip(t,e){for(let o in e){let n=pn(o),r=cn(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(ip,"updateAggregatedBalanceStateForNewAccount");function ap(t,e){let o=pn(e),n=cn(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(ap,"removeBalanceFromAggregatedBalance");var sp=i((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>r.walletType===o?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>r.walletType===o?{...r,loading:!1,error:!1}:r)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>r.walletType===o?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:o=>{let n=e().connectedWallets,r=o.filter(a=>!n.some(s=>Lc(a,s)));if(r.length>0){let a=r.map(s=>{let l=!n.some(c=>c.chain===s.chain&&c.selected&&c.walletType!==s.walletType);return{address:s.address,chain:s.chain,explorerUrl:null,walletType:s.walletType,selected:l,loading:!1,error:!1}});t(s=>({connectedWallets:[...s.connectedWallets.filter(c=>!a.some(u=>u.walletType===c.walletType&&u.chain===c.chain)),...a]}))}},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async o=>{he.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r=e().connectedWallets.filter(u=>u.walletType===o);e().connectedWallets.forEach(u=>{u.walletType!==o&&(r=r.filter(p=>!(p.chain===u.chain&&p.address===u.address)))}),n?.chains&&n.chains.length>0&&(r=r.filter(u=>n.chains?.includes(u.chain)));let a={},s=e()._aggregatedBalances,l=e()._balances;Object.keys(l).forEach(u=>{let p=pn(u),d=!!r.find(h=>ma(h.address,{address:p.address,blockchain:h.chain,symbol:p.symbol})===u);d||(a[u]=l[u]),d&&(s=ap(s,u))}),t({_balances:a,_aggregatedBalances:s})},disconnectWallet:o=>{if(e().connectedWallets.find(r=>r.walletType===o)){he.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),e().removeBalancesForWallet(o);let r=e().connectedWallets.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain),a=e().connectedWallets.filter(s=>s.walletType!==o);r.length>0&&(a=a.map(s=>r.includes(s.chain)?(r=r.filter(l=>l!==s.chain),{...s,selected:!0}):s)),t({connectedWallets:a})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let r=o[0].walletType;e().setConnectedWalletAsRefetching(r);let a=o.map(c=>({address:c.address,blockchain:c.chain})),l=(await xt().getWalletsDetails(a)).wallets;if(l){let{retryOnFailedBalances:c=!0}=n||{};if(c){let d=l.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.address}));d.length>0&&e().fetchBalances(d,{retryOnFailedBalances:!1})}let u={},p=e()._aggregatedBalances;l.forEach(d=>{if(d.failed)return;let h=rp(d,e);p=ip(p,h),u={...u,...h}}),t(d=>({_balances:{...d._balances,...u},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(r)}else throw e().setConnectedWalletHasError(r),new 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=cn(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let c=a[0];return n[c]}let l=n[a[0]];return a.forEach(c=>{let u=n[c],p=new fa(u.amount),d=new fa(l.amount);p.isGreaterThan(d)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,l)=>{let c=n[l],[,,,u]=l.split("-");return u===o&&(s[l]=c),s},{})},getConnectedWalletsDetails:()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,l)=>{let c=r[l],u=pn(l);if(u.blockchain===n.chain){let p=e().findToken(u),d=c.amount?new fa(c.amount).shiftedBy(-c.decimals):ce;s.push({chain:n.chain,symbol:u.symbol,ticker:u.symbol,address:u.address,rawAmount:c.amount,decimal:c.decimals,amount:d.toString(),logo:p?.image||null,usdPrice:p?.usdPrice||null})}return s},[])}})}),"createWalletsSlice");function lp(t){return Qy()(qy((...e)=>({...sp(...e),...jc(...e),...op(...e),...fc(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})}))}i(lp,"createAppStore");var cp=Gy(null);function y(){let t=Vy(cp);if(Ky(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function pp(t){let e=jy();return e.current||(e.current=lp(t.config)),Hy.createElement(cp.Provider,{value:e.current},t.children)}i(pp,"AppStoreProvider");function ft(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=y(),{state:r,getWalletInfo:a}=Xy(),s=y().blockchains(),{handleDisconnect:l}=Gt(),c=pc(n()),u=Mc(r,a,c,e);u=Yy()?u.filter(g=>g.showOnMobile!==!1&&r(g.type).installed):u;let p=Dc(u),d=i(g=>!o.find(C=>C.walletType===g&&C.chain===e),"isExperimentalChainNotAdded"),h=Jy(()=>{let g=u?.filter(C=>C.state===ga.CONNECTING)||[];for(let C of g)l(C.type)},[Oc(u)]);Ry(()=>()=>{h()},[]);let f=i(g=>{let C=g.find(k=>k.type===un.DEFAULT);return!C||C.state===ga.NOT_INSTALLED?!1:g.filter(k=>k.state!=ga.NOT_INSTALLED&&![un.DEFAULT,un.WALLET_CONNECT_2,un.LEDGER].includes(k.type)&&a(k.type).supportedChains.filter(T=>T.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),m=i((g,C,S)=>mr(S,C)&&d(g)&&!Zy.includes(g)||g==un.DEFAULT&&!f(u),"shouldExcludeWallet");return{list:p.filter(g=>!m(g.type,e??"",s)),terminateConnectingWallets:h}}i(ft,"useWalletList");import{Modal as nS}from"@rango-dev/ui";import rS from"react";import{create as oS}from"zustand";var up="rango-widget";var dn=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(up),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 tS=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"),Bo=tS;var re=Bo(oS()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!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})}}))),io=new dn({onInit:()=>re.setState({tabManagerInitiated:!0}),onClaim:()=>re.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>re.setState({isActiveTab:!1})});function Z(t){let{watermark:e}=re();return rS.createElement(nS,{hasWatermark:e==="FULL",...t},t.children)}i(Z,"WatermarkedModal");import{i18n as ha}from"@lingui/core";import{Button as pS,Checkbox as uS,Divider as dS,Image as Tp,ListItemButton as mS,MessageBox as fS,Radio as gS,RadioRoot as hS}from"@rango-dev/ui";import we,{useState as yS}from"react";import{css as iS,darkTheme as mp,IconButton as aS,styled as ao}from"@rango-dev/ui";var Et=ao(aS,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${mp} &`]:{backgroundColor:"$neutral"}}}),fp=ao("div",{position:"absolute",background:"$secondary500",[`.${mp} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Vt=ao("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),gp=ao("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),hp=ao("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),yp=ao("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Sp=iS({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Sr=ao("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});import{keyframes as sS,styled as Cr}from"@rango-dev/ui";var nN=Cr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Mo=Cr("div",{position:"relative"}),lS=sS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Lo=Cr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${lS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),kr=Cr("div",{"& img":{borderRadius:"50%"}});function Cp(t,e){return t.find(o=>o.name===e)?.logo}i(Cp,"getBlockchainLogo");import{styled as cS}from"@rango-dev/ui";var kp=cS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});function mn(t){let{targetWallet:e}=t.value,o=e.needsNamespace?.selection==="single",n=e.image,[r,a]=yS([]),s=y().blockchains(),l=i(u=>{a(o?[u]:p=>p.includes(u)?p.filter(d=>d!==u):p.concat(u))},"onSelect"),c=i(u=>o?we.createElement(hS,{value:r?.[0]},u):we.createElement(we.Fragment,null,u),"wrapRadioRoot");return we.createElement(we.Fragment,null,we.createElement(dS,{size:20}),we.createElement(fS,{type:"info",title:ha.t("Select chain types"),description:ha.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:we.createElement(Mo,null,we.createElement(Sr,null,we.createElement(Tp,{src:n,size:45})),we.createElement(Lo,null))}),we.createElement(kp,null,c(we.createElement(we.Fragment,null,e.needsNamespace?.data.map(u=>we.createElement(mS,{key:u.id,id:u.id,title:u.label,hasDivider:!0,style:{height:60},onClick:()=>l(u.value),start:we.createElement(Tp,{src:Cp(s,u.id),size:22}),end:o?we.createElement(gS,{value:u.value}):we.createElement(uS,{checked:r.includes(u.value)})}))))),we.createElement(pS,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!r.length,onClick:()=>t.onConfirm(r)},ha.t("Confirm")))}i(mn,"Namespaces");import{i18n as Po}from"@lingui/core";import{Button as kS,Divider as bp,Image as TS,MessageBox as vS,Select as wS,TextField as bS}from"@rango-dev/ui";import Oe,{useEffect as xS,useState as xp}from"react";import{namespaces as SS}from"@rango-dev/wallets-shared";var Tr={id:"custom",label:"Custom",generateDerivationPath:t=>t};function ya(t){let e=t?SS[t].derivationPaths:null;return e?[...e,Tr]:[]}i(ya,"getDerivationPaths");import{styled as vp,Typography as CS}from"@rango-dev/ui";var wp=vp("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Sa=vp(CS,{paddingLeft:"$10"}),Ca={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Ep="0";function fn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=xp(null),[l,c]=xp(Ep),u=a===Tr.id,p=ya(o),d=i(({value:f})=>{let m=p?.find(g=>g.id===f);m&&(a===Tr.id&&Number.isNaN(Number(l))&&c(Ep),s(m.id))},"handleDerivationPathItemClick"),h=i(()=>{let f=p.find(m=>m.id===a);if(f)e(f.generateDerivationPath(l));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return xS(()=>{s(ya(o)[0]?.id||null)},[o]),Oe.createElement(Oe.Fragment,null,Oe.createElement(bp,{size:20}),Oe.createElement(vS,{type:"info",title:Po.t("Select Derivation Path"),description:Po.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:Oe.createElement(Mo,null,Oe.createElement(kr,null,Oe.createElement(TS,{src:n,size:45})),Oe.createElement(Lo,null))}),Oe.createElement(wp,null,Oe.createElement(Sa,{variant:"body",size:"xsmall",color:"$neutral600"},Po.t("Choose Derivation Path Template")),Oe.createElement(wS,{value:a||"",options:p.map(f=>({value:f.id,label:f.label})),variant:"filled",handleItemClick:d,styles:{trigger:Ca}}),Oe.createElement(bp,{size:20}),Oe.createElement(Sa,{variant:"body",size:"xsmall",color:"$neutral600"},u?Po.t("Enter Path"):Po.t("Enter Index")),Oe.createElement(bS,{type:u?"text":"number",variant:"contained",value:l,onChange:f=>c(f.target.value),style:Ca})),Oe.createElement(kS,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!p||!a||!l},Po.t("Confirm")))}i(fn,"DerivationPath");import{i18n as _o}from"@lingui/core";import{Image as ES,MessageBox as ka,WalletState as IS}from"@rango-dev/ui";import{useWallets as AS}from"@rango-dev/wallets-react";import so from"react";function Ta(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=AS();return ln(a(n))===IS.CONNECTED?so.createElement(ka,{type:"success",title:_o.t("Wallet Connected"),description:_o.t("Your wallet is connected, you can use it to swap.")}):o?so.createElement(ka,{type:"error",title:_o.t("Failed to Connect"),description:o||_o.t("Your wallet is not connected. Please try again.")}):so.createElement(ka,{type:"loading",title:_o.t("Connecting to your wallet"),description:_o.t("Click connect in your wallet popup."),icon:so.createElement(Mo,null,so.createElement(kr,null,so.createElement(ES,{src:r,size:45})),so.createElement(Lo,null))})}i(Ta,"ConnectStatus");import{i18n as va}from"@lingui/core";import{Button as NS,Divider as Ip,MessageBox as WS}from"@rango-dev/ui";import vr from"react";function wa(t){let{displayName:e,onConfirm:o}=t;return vr.createElement(WS,{title:va.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:va.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},vr.createElement(Ip,{size:18}),vr.createElement(Ip,{size:32}),vr.createElement(NS,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},va.t("Confirm")))}i(wa,"ExperimentalChain");function Ap(t,e){return t().status==="init"&&!!e}i(Ap,"isOnStatus");function gn(t){return t().status==="namespace"}i(gn,"isOnNamespace");function hn(t){return t().status==="derivationPath"}i(hn,"isOnDerivationPath");var PS=3e3,_S=300;function co(t){let e=LS(),[o,n]=Np(!1),[r,a]=Np(),s=i(k=>{a(k.message)},"catchErrorOnHandle"),{terminateConnectingWallets:l}=ft(),{handleConnect:c,handleDerivationPath:u,handleNamespace:p,getState:d,resetState:h}=Gt(),f=i(k=>{p(t.wallet,k).then(S).catch(s)},"handleConfirmNamespaces"),m=i(k=>{if(!k)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");u(k).then(S).catch(s)},"handleDerivationPathConfirm"),g=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),S=i((k,T)=>{let v=k.status==="connected",w=["disconnected","disconnected-unhandled"].includes(k.status);v?(t.onConnect?.(),T||(e.current=setTimeout(g,PS))):w&&g()},"afterConnected");return MS(()=>{if(t.wallet){C();let k=!1,T=!0;i(()=>{setTimeout(()=>{T=!1,k||n(!0)},_S)},"beforeConnecting")(),c(t.wallet,{disconnectIfConnected:!0}).then(w=>{["namespace","derivation-path"].includes(w.status)||(k=!0),S(w,T)}).catch(s)}},[t.wallet]),lo.createElement(Z,{open:o,onClose:g,onExit:()=>{C(),l(),t.onClose&&t.onClose()},container:W()},Ap(d,t.wallet)&&lo.createElement(lo.Fragment,null,lo.createElement(Ta,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),lo.createElement(BS,{direction:"vertical",size:32})),gn(d)&&lo.createElement(mn,{onConfirm:f,value:d().namespace}),hn(d)&&lo.createElement(fn,{onConfirm:m,value:d().derivationPath}))}i(co,"StatefulConnectModal");import{legacyFormatAddressWithNetwork as $S,legacyReadAccountAddress as Bp}from"@rango-dev/wallets-core/legacy";import{Events as wr,Provider as FS}from"@rango-dev/wallets-react";import{isEvmBlockchain as OS}from"rango-sdk";import br,{createContext as US,useEffect as Mp,useMemo as zS,useRef as Lp}from"react";import{useEffect as DS}from"react";function Wp(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Wp,"hashProviders");function ba(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=y(),a=n();return DS(()=>{o(),r()},[Wp(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(ba,"useWalletProviders");var xr=US({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function QS(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r,removeBalancesForWallet:a}=y(),s=y().blockchains(),{newWalletConnected:l,disconnectWallet:c,connectedWallets:u}=y(),p=y().config,d={walletConnectProjectId:p?.walletConnectProjectId,trezorManifest:p?.trezorManifest,tonConnect:p.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:h}=ba(p.wallets,d),f=Lp(),m=Lp();Mp(()=>{n().catch(console.log)},[]),Mp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:p,dappConfig:t.config})},[t.config,r]);let g=s.filter(OS).map(T=>T.name),C=i((T,v,w,A,L)=>{if(v===wr.ACCOUNTS){let b=dr(L.supportedBlockchains),E=[],x=[];if(w?.forEach(I=>{let{network:B}=Bp(I);g.includes(B)?E.push(I):x.push(I)}),u.filter(I=>I.walletType===T).map(I=>$S(I.address,I.chain)).length>0){if(E.length>0){let I=ra(T,E,g,b,L.isContractWallet);a(T,{chains:I.map(B=>B.chain)})}x.length>0&&a(T,{chains:x.map(I=>{let{network:B}=Bp(I);return B})})}if(w){let I=ra(T,w,g,b,L.isContractWallet);I.length&&l(I)}else c(T),m.current?m.current(T):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")}if(v===wr.ACCOUNTS&&A.connected||v===wr.ACCOUNTS&&L.isHub){let b=`${T}-${A.network}-${w}`;f.current?f.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(v===wr.NETWORK&&A.network){let b=`${T}-${A.network}`;f.current?f.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(T,v,w,A,L)},"onUpdateState"),S=re.use.isActiveTab(),k=zS(()=>({onConnectWallet:T=>{f.current=T},onDisconnectWallet:T=>{m.current=T}}),[]);return br.createElement(xr.Provider,{value:k},br.createElement(FS,{allBlockChains:s,providers:h,onUpdateState:C,autoConnect:!!S,configs:{wallets:p.wallets}},t.children))}i(QS,"Main");function Er(t){let{config:e,...o}=t;return br.createElement(pp,{config:e},br.createElement(QS,{...o,config:e}))}i(Er,"WidgetWallets");import Xi from"react";import qS,{Fragment as HS}from"react";import{MemoryRouter as GS,useInRouterContext as VS}from"react-router";function Pp({children:t}){let o=VS()?HS:GS;return qS.createElement(o,null,t)}i(Pp,"AppRouter");import{I18nManager as IE}from"@rango-dev/ui";import Jl from"react";import _e from"react";import{useRoutes as mE}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 $o,useRef as _r}from"react";import Ke from"bignumber.js";import{create as XS}from"zustand";import{subscribeWithSelector as YS}from"zustand/middleware";import{i18n as gt}from"@lingui/core";import{RouteEventType as cB}from"@rango-dev/queue-manager-rango-preset";import Ue from"bignumber.js";import{PendingSwapNetworkStatus as Lr}from"rango-types";import{i18n as $e}from"@lingui/core";var R=i(()=>({genericServerError:$e.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:$e.t("Please reset your liquidity sources."),description:$e.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:$e.t("No Routes Found."),description:$e.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:$e.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:$e.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:$e.t("High Price Impact"),title:$e.t("Price impact is too high!"),description:$e.t("The price impact is significantly higher than the allowed amount."),confirmMessage:$e.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:$e.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:$e.t("USD Price Unknown"),title:$e.t("USD Price Unknown, Cannot calculate Price Impact."),description:$e.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:$e.t("Confirm USD Price Unknown")}}),"errorMessages");function _p(t){switch(t.type){case 0:return t.diagnosisMessage??R().noResultError.title;case 1:return R().genericServerError;default:return""}}i(_p,"getQuoteErrorMessage");import{i18n as Ir}from"@lingui/core";var po=i(()=>({connectWallet:Ir.t("Connect Wallet"),swap:Ir.t("Swap"),swapAnyway:Ir.t("Swap anyway"),ethWarning:Ir.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function xa(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(xa,"getFeeLabel");var Ea=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Dp=100,$p=30,Fp=15,Op=60;var Up=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],zp=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as jS}from"@rango-dev/queue-manager-rango-preset";import XW from"bignumber.js";function qp(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(qp,"getRequiredBalanceOfWallet");function _t(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(_t,"getPriceImpactLevel");function Nr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=jS(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=nn(a?a.toBlockchain:n.fromBlockchain,e),c=nn(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),p=o(s),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:c,toToken:p,inputAmount:d}}i(Nr,"createRetryQuote");function Do(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=yn(o),s=ct(o);if(o&&a&&s){let u=Pt(a.toString(),s.toString());if(!!u&&jp(a,u)){let d=Br(o?.swaps,n),h=_t(u);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:u,totalFee:d,warningLevel:h}}}if(e&&Zp(e,o))return{type:4,usdValueChange:M(ct(o)?.minus(ct(e)??0).toString()??"0",null,2),percentageChange:M(Pt(ct(e)??"1",ct(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let l=Mr(o.swaps),c=r>Rc;if(Yp(t.userSlippage.toString(),l)){if(c&&parseFloat(l??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Xp(o,r),minRequiredSlippage:l};return null}i(Do,"generateQuoteWarnings");function Hp(t){return![4].includes(t.type)}i(Hp,"isQuoteWarningConfirmationRequired");function Pt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ia(t.toString(),e.toString());return n&&n<0?n:null}i(Pt,"getPriceImpact");var Gp=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"),Wr=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(p=>p.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),c=n.requestId.toLowerCase();return l.localeCompare(c)}),"sortQuotesBy"),Vp=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),Kp=i(t=>{let e=i((o,n)=>{let r=Ea.indexOf(o.value),a=Ea.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function jp(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return Up.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ue(r)))}i(jp,"hasHighValueLoss");function Jp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(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(Jp,"hasLimitError");function Rp(t){let e=(t||[]).filter(l=>{let c=l.fromAmountMinValue?new Ue(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Ue(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?c?.gte(l.fromAmount)||u?.lte(l.fromAmount):c?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=gt.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=gt.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=gt.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=gt.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Rp,"getLimitErrorMessage");function eu(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:c}=t;return e!=="success"?{title:po().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:po().swap,action:"confirm-swap",disabled:!0}:s?{title:po().swapAnyway,action:"confirm-warning",disabled:!1}:c?{title:po().ethWarning,action:"confirm-warning",disabled:!1}:{title:po().swap,action:"confirm-swap",disabled:!1}:{title:po().connectWallet,action:"connect-wallet",disabled:!1}}i(eu,"getSwapButtonState");function Aa(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ce))&&e&&e!=="0"&&n!==0)}i(Aa,"canComputePriceImpact");function Na(t,e){let o=ce;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ue(r.amount).multipliedBy(a||0))}return o}i(Na,"getUsdFeeOfStep");function Br(t,e){return t.reduce((o,n)=>o.plus(Na(n,e)),ce)}i(Br,"getTotalFeeInUsd");function Wa(t){let e=ce;return e=e.plus(new Ue(t.amount).multipliedBy(t.price||0)),e}i(Wa,"getUsdFee");function tu(t){return t.reduce((e,o)=>e.plus(Wa(o)),ce)}i(tu,"getTotalFeesInUsd");function ou(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(ou,"getFeesGroup");function nu(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(nu,"checkSlippageErrors");function Xp(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(Xp,"checkSlippageWarnings");function Mr(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(Mr,"getMinRequiredSlippage");function Yp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Yp,"hasProperSlippage");function ru(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:c,slippage:u,affiliateRef:p,affiliatePercent:d,affiliateWallets:h,destination:f}=t,m=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),g=[];return r?.forEach(S=>{g.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:p??void 0,affiliatePercent:d??void 0,affiliateWallets:h??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:g,selectedWallets:m??{},slippage:u.toString(),...f&&{destination:f},...c&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!c&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(ru,"createQuoteRequestBody");function iu(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(iu,"getWalletsForNewSwap");function yn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new Ue(e).multipliedBy(o)}i(yn,"getUsdInputFrom");function ct(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new Ue(e).multipliedBy(o)}i(ct,"getUsdOutputFrom");function Ia(t,e){return new Ue(e).div(new Ue(t)).minus(1).multipliedBy(Dp).toNumber()}i(Ia,"getPercentageChange");function Zp(t,e){let o=yn(t),n=ct(t),r=ct(e);if(!o||!n||!r)return!1;let a=Ia(n.toString(),r.toString());return zp.some(({threshold:s,minInput:l})=>a<=s&&o.isGreaterThanOrEqualTo(l))}i(Zp,"isOutputAmountChangedExcessively");function au(t,e,o){let n=t.validationStatus,r=ro({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>qp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,c=M(new Ue(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new Ue(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),p="";return s.reason==="FEE"&&(p=gt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(p=gt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(p=gt.t(" for input and network fee")),gt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:p,currentAmount:c,blockchain:st(s.asset.blockchain,o)}})})}i(au,"generateBalanceWarnings");function Sn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Lr.NetworkChanged}i(Sn,"isNetworkStatusInWarningState");function su(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Sn(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Lr.WaitingForConnectingWallet:n=n||gt.t("Waiting for connecting wallet");break;case Lr.WaitingForQueue:n=n||gt.t("Waiting for other running tasks to be finished");break;case Lr.WaitingForNetworkChange:n=n||gt.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(su,"getSwapMessages");function lu(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(lu,"getLastConvertedTokenInFailedSwap");function cu(t){return t.status==="failed"}i(cu,"shouldRetrySwap");function pu(t,e,o,n,r,a){if(!n||t)return!0;let s=ro({filter:"all",quote:n}),l=ro({filter:"required",quote:n}),c=s.every(d=>r.some(h=>h.chain===d)),u=l.every(d=>r.some(h=>h.chain===d)),p=o&&a?xo(a,o):!1;return!e&&!c||e&&!o||e&&!!o&&(!p||!u)}i(pu,"isConfirmSwapDisabled");function uu(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(uu,"isTokensIdentical");var Pr=i((t,e)=>t?.usdPrice?new Ke(e||ce).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Bo(XS()(YS(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Ke(0),outputUsdValue:new Ke(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=ce,a=o.inputUsdValue;return sn(o.inputAmount)?(e&&(n=e?.outputAmount?new Ke(e?.outputAmount):null,a=yn(e)??ce,r=ct(e)??ce),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Ke(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Ke(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Ke(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:Pr(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 Ke(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:null,outputUsdValue:new Ke(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Pr(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:Pr(n??null,s),outputUsdValue:new Ke(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?Pr(e.toToken,e.outputAmount?.toString()||""):new Ke(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Ke(0),inputUsdValue:new Ke(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Ke(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})})))),du=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&he.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&&he.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function mu(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:c,toBlockchain:u}=O(),p=y().config,d=y().fetchStatus,h=y().blockchains(),f=y().tokens(),{findToken:m}=y(),{setAffiliateRef:g,setAffiliatePercent:C,setAffiliateWallets:S}=y(),k=p?.from?.tokens,T=p?.from?.blockchains,v=p?.to?.tokens,w=p?.to?.blockchains,A=_r(void 0),L=_r(void 0),b=_r(void 0),E=_r(void 0);$o(()=>{typeof p.amount<"u"&&t(p.amount.toString())},[p?.amount]),$o(()=>{if(d==="success"){r();let x=h.find(B=>B.name===p?.from?.blockchain),N=p?.from?.token,I=N&&m(N);(x||!x&&b.current)&&n(x??null),I?a({token:I,meta:{blockchains:h,tokens:f}}):!I&&A.current&&a({token:null}),b.current=p?.from?.blockchain,A.current=p?.from?.token}},[p?.from?.token?.symbol,p?.from?.token?.address,p?.from?.token?.blockchain,p?.from?.blockchain,d]),$o(()=>{sa(s,k)&&a({token:null}),la(c,T)&&n(null)},[k,T]),$o(()=>{sa(l,v)&&a({token:null}),la(u,w)&&o(null)},[v,w]),$o(()=>{if(d==="success"){r();let x=h.find(B=>B.name===p?.to?.blockchain),N=p?.to?.token,I=N&&m(N);(x||!x&&E.current)&&o(x??null),I?e({token:I,meta:{blockchains:h,tokens:f}}):!I&&L.current&&e({token:null}),E.current=p?.to?.blockchain,L.current=p?.to?.token}},[p?.to?.token?.symbol,p?.to?.token?.address,p?.to?.token?.blockchain,p?.to?.blockchain,d]),$o(()=>{g(p?.affiliate?.ref??null),C(p?.affiliate?.percent??null),S(p?.affiliate?.wallets??null)},[p?.affiliate?.ref,p?.affiliate?.percent,p?.affiliate?.wallets])}i(mu,"useSyncStoresWithConfig");import{useEffect as La,useRef as ZS}from"react";import{useInRouterContext as JS,useLocation as RS,useSearchParams as eC}from"react-router-dom";function Ba(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Ba,"convertTokenSearchParamToAsset");function Ma(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ma,"tokenToSearchParam");function _a(){let t=RS(),[e,o]=eC(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:c,setToBlockchain:u,setFromToken:p,setToToken:d,setInputAmount:h}=O(),f=y().fetchStatus,m=y().blockchains(),g=y().tokens(),C=JS(),{updateIframe:S,updateCampaignMode:k}=y(),T=y().isInCampaignMode(),v=ZS(),{findToken:w}=y(),A=i(()=>{let b={};for(let[X,se]of e.entries())X.startsWith("utm_")&&(b[X]=se);let E=e.get("fromAmount"),x=e.get("fromBlockchain"),N=e.get("fromToken"),I=e.get("toBlockchain"),B=e.get("toToken"),j=e.get("autoConnect"),te=e.get("clientUrl"),J=e.get("liquiditySources"),P=e.get("blockchain");return{fromAmount:E,fromBlockchain:x,fromToken:N,toBlockchain:I,toToken:B,autoConnect:j,clientUrl:te,liquiditySources:J,utmQueryParams:b,blockchain:P}},"getUrlSearchParams"),L=i(b=>{for(let E in b)b[E]||delete b[E];o(b,{replace:!0})},"updateUrlSearchParams");La(()=>{let{autoConnect:b,clientUrl:E,utmQueryParams:x,blockchain:N}=A();C&&f==="success"&&L({fromBlockchain:n?.name,fromToken:Ma(a),toBlockchain:r?.name,toToken:Ma(s),fromAmount:l,autoConnect:b??void 0,clientUrl:E??void 0,blockchain:N??void 0,liquiditySources:T?v.current:void 0,...x})},[t.pathname,l,n,a,r,s,T]),La(()=>{if(!C)return;let b=A();if(!v.current&&b.liquiditySources&&(v.current=b.liquiditySources),b.fromAmount&&h(b.fromAmount),f==="success"){let E=m.find(B=>B.name===b.fromBlockchain),x=b.fromToken&&E?w(Ba(b.fromToken,E)):void 0,N=m.find(B=>B.name===b.toBlockchain),I=b.toToken&&N?w(Ba(b.toToken,N)):void 0;E&&(c(E),x&&p({token:x,meta:{blockchains:m,tokens:g}})),N&&(u(N),I&&d({token:I,meta:{blockchains:m,tokens:g}}))}},[f]),La(()=>{let{clientUrl:b,liquiditySources:E}=A();S("clientUrl",b||void 0),k("liquiditySources",E?.split(",")??void 0)},[])}i(_a,"useSyncUrlAndStore");import{i18n as It}from"@lingui/core";import{Alert as fk,Button as Ku,darkTheme as gk,Divider as Tn,DoneIcon as hk,MessageBox as yk,styled as Sk,TextField as Ck,Typography as kk}from"@rango-dev/ui";import ye,{useEffect as Tk,useState as Qr}from"react";import{useNavigate as vk,useSearchParams as wk}from"react-router-dom";import{ChevronRightIcon as tC,Divider as Su,Image as oC,Typography as Cu}from"@rango-dev/ui";import ht from"react";import{darkTheme as fu,styled as Da}from"@rango-dev/ui";var gu=Da("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${fu} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${fu} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),hu=Da("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),yu=Da("div",{display:"flex"});function $a(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return ht.createElement(hu,null,ht.createElement(Cu,{size:"large",variant:"label"},n),ht.createElement(Su,{size:10}),ht.createElement(gu,{onClick:s?void 0:e,disabled:s},ht.createElement(yu,null,r&&ht.createElement(ht.Fragment,null,ht.createElement(oC,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),ht.createElement(Su,{size:4,direction:"horizontal"})),ht.createElement(Cu,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),ht.createElement(tC,{size:12,color:"black"})))}i($a,"BlockchainSelectorButton");import{i18n as Oa}from"@lingui/core";import{Button as nC,Divider as Cn,ExternalLinkIcon as rC,Image as iC,Typography as Oo}from"@rango-dev/ui";import Ne from"react";function ku(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(ku,"generateExplorerLink");import{darkTheme as Fo,styled as Tu}from"@rango-dev/ui";var Fa=Tu("a",{textDecoration:"none",color:"$colors$neutral700",[`.${Fo} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${Fo} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${Fo} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${Fo} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),vu=Tu("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${Fo} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${Fo} &`]:{color:"$colors$neutral900"}}});function Ua(t){let{open:e,onClose:o,token:n,onSubmitClick:r,blockchain:a}=t,s=ku(n.address,a);return Ne.createElement(Z,{open:e,dismissible:!0,onClose:o,container:W()},Ne.createElement(vu,null,Ne.createElement(iC,{src:n.image,size:45,type:"circular"}),Ne.createElement(Oo,{variant:"title",size:"medium"},n.name),Ne.createElement(Oo,{variant:"body",size:"small",className:"_blockchain-name"},a.displayName),Ne.createElement(Cn,{size:4}),Ne.createElement(Oo,{variant:"body",size:"medium"},s?Ne.createElement(Fa,{hasHover:!0,href:s,target:"_blank",rel:"nofollow noreferrer"},n.address,Ne.createElement(rC,{size:12,color:"gray"})):Ne.createElement(Fa,null,n.address)),Ne.createElement(Cn,{size:4}),n.coinSource&&Ne.createElement(Oo,{className:"_coin-source",variant:"body",size:"xsmall"},Oa.t("via")," ",Ne.createElement(Oo,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),Ne.createElement(Cn,{size:"32"}),Ne.createElement(Oo,{size:"medium",variant:"body",className:"_custom-token-description"},Oa.t("This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."))),Ne.createElement(Cn,{size:40}),Ne.createElement(Cn,{size:10}),Ne.createElement(nC,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:r},Oa.t("Import")))}i(Ua,"CustomTokenModal");import{useManager as lk}from"@rango-dev/queue-manager-react";import{BottomLogo as ck,Divider as Qu,Header as pk}from"@rango-dev/ui";import Be,{useEffect as ls,useRef as qu,useState as uk}from"react";import{useRef as aC}from"react";function Dr(){return window.self!==window.top}i(Dr,"isAppLoadedIntoIframe");function za(){let t=aC(null),{iframe:e}=y(),o=Dr()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let c of l)n({type:"widget_height",data:{height:c.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(za,"useIframe");import{useNavigate as sC}from"react-router-dom";function je(){let t=sC();return()=>t(-1)}i(je,"useNavigateBack");import{createTheme as ja,darkTheme as TC,lightTheme as vC}from"@rango-dev/ui";import{useEffect as wC,useState as bC}from"react";import{theme as CC,darkColors as kC}from"@rango-dev/ui";import Va from"react";function lC(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(lC,"expandShortHexColor");function cC(t){return/[0-9]+$/.test(t)}i(cC,"isOverridingColor");function pC(t,e){return t.padStart(e,"0")}i(pC,"pad");function Qa(t){let e=Math.min(Math.max(Math.round(t),0),255);return pC(e.toString(16),2)}i(Qa,"intToHex");function uC(t){return`#${Qa(t.red)}${Qa(t.green)}${Qa(t.blue)}`}i(uC,"rgbToHex");function dC(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(dC,"hexToRGB");function mC(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(mC,"generateShade");function fC(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(fC,"generateTint");function gC(t){return wu(t,mC)}i(gC,"calculateShades");function hC(t){return wu(t,fC)}i(hC,"calculateTints");function wu(t,e){let o=dC(t),n=[];for(let r=1;r<9;r++)n.push(uC(e(o,r)));return n}i(wu,"calculateColors");function qa(t,e,o){let a=hC(t).reverse().concat(t),s=gC(t),l=a.concat(s),c={},u=l.length;for(let p=0;p<u;p++){let d=100+(o?u-1-p:p)*50;c[`${e}${d}`]=l[p]}return c}i(qa,"createTintsAndShades");function Ha(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)&&!cC(r)){let c=lC(a);Object.assign(n,qa(c,r,s))}}return{...n,...e}}i(Ha,"expandToGenerateThemeColors");var bu=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),yC=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=bu(o%52)+e;return bu(o%52)+e},"toAlphabeticName"),SC=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ga=i(t=>yC(SC(5381,JSON.stringify(t))>>>0),"toHash");function Ka(t){let e=CC.colors,o={...e,...kC},n,r;if(t?.light){let s={colors:Ha(e,t.light)};n={id:`${aa}-light-${Ga(s)}`,tokens:s}}if(t?.dark){let s={colors:Ha(o,t.dark,{reverseNeutralRange:!0})};r={id:`${aa}-dark-${Ga(s)}`,tokens:s}}return{light:n,dark:r}}i(Ka,"customizedThemeTokens");function xu(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Va.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Va.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Va.cloneElement(e,{key:l}))}}),o}i(xu,"joinList");function Eu(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Eu,"doesWindowPreferDarkColorScheme");function Uo(t){let{colors:e,fontFamily:o=kc,borderRadius:n=qc,secondaryBorderRadius:r=Hc}=t,[a,s]=bC(Eu()?"dark":"light"),{theme:l}=y(),{dark:c,light:u}=Ka(e),p=ja({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[p.className,vC.className],h=[p.className,TC.className];if(u){let m=ja(u.id,u.tokens);d.push(m.className)}if(c){let m=ja(c.id,c.tokens);h.push(m.className)}return wC(()=>{let m=i(g=>{g.matches?s("dark"):s("light")},"switchThemeListener");return Eu()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",m),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",m)}},[]),{activeTheme:i(()=>{let m=d.join(" "),g=h.join(" ");return l==="auto"?a==="dark"?g:m:l==="dark"?g:m},"getActiveTheme"),mode:l==="auto"?a:l}}i(Uo,"useTheme");var pt=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 Iu}from"@lingui/core";import{Alert as xC,Button as EC}from"@rango-dev/ui";import Au from"react";function Xa(t){return Au.createElement(xC,{action:Au.createElement(EC,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Iu.t("Activate this tab")),type:"warning",variant:"alarm",title:Iu.t("Another tab is open and handles transactions.")})}i(Xa,"ActivateTabAlert");import{i18n as Ya}from"@lingui/core";import{Button as IC,Divider as AC,MessageBox as NC}from"@rango-dev/ui";import $r from"react";function Za(t){let{open:e,onClose:o,onConfirm:n}=t;return $r.createElement(Z,{open:e,dismissible:!0,onClose:o,container:W()},$r.createElement(NC,{title:Ya.t("Activate current tab"),type:"warning",description:Ya.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.")},$r.createElement(AC,{size:20}),$r.createElement(IC,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Ya.t("Confirm"))))}i(Za,"ActivateTabModal");import{ChevronLeftIcon as WC}from"@rango-dev/ui";import Nu from"react";function Ja(t){return Nu.createElement(Et,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Nu.createElement(WC,{color:"black",size:16}))}i(Ja,"BackButton");import{i18n as BC}from"@lingui/core";import{Button as MC,Typography as LC}from"@rango-dev/ui";import Ra from"react";function es(t){return Ra.createElement(Vt,null,Ra.createElement(MC,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},Ra.createElement(LC,{variant:"label",size:"medium",color:"error500"},BC.t("Cancel"))))}i(es,"CancelButton");import{i18n as PC}from"@lingui/core";import{Image as _C,Tooltip as DC,WalletIcon as $C}from"@rango-dev/ui";import uo from"react";function ts(t){let{list:e}=ft(),o=e.filter(r=>r.state==="connected"),n=o.length?uo.createElement("div",{className:Sp()},o.map(r=>uo.createElement(Sr,{key:r.title},uo.createElement(_C,{src:r.image,size:14})))):PC.t("Connect Wallet");return uo.createElement(DC,{container:t.container,side:"bottom",content:n},uo.createElement(Et,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&uo.createElement(fp,null),uo.createElement($C,{size:18,color:"black"})))}i(ts,"WalletButton");import{i18n as Or}from"@lingui/core";import{NotificationsIcon as RC,Popover as ek,SettingsIcon as tk,Tooltip as Ur,TransactionIcon as ok}from"@rango-dev/ui";import We from"react";import{Notifications as zC}from"@rango-dev/ui";import QC from"react";import{useNavigate as qC}from"react-router-dom";import{create as FC}from"zustand";import{persist as OC,subscribeWithSelector as UC}from"zustand/middleware";var be=Bo(FC()(OC(UC((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(c=>c.requestId!==n.requestId);t(()=>({notifications:[...l,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(c=>c.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 os(){let t=qC(),{getNotifications:e,clearNotifications:o}=be(),n=e(),r=y().blockchains(),{findToken:a}=y();return QC.createElement(zC,{list:n,getBlockchainImage:l=>uc(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${$.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(os,"NotificationContent");import{useManager as HC}from"@rango-dev/queue-manager-react";import{InProgressIcon as GC}from"@rango-dev/ui";import Wu from"react";var VC=i(()=>{let{manager:t}=HC();return pt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Wu.createElement(yp,null,Wu.createElement(GC,{color:"info",size:6})):null},"InProgressTransactionBadge"),Bu=VC;import{EventSeverity as KC}from"@rango-dev/queue-manager-rango-preset";import{Typography as jC}from"@rango-dev/ui";import Mu from"react";function Lu(){let{getNotifications:t}=be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===KC.WARNING);return o?Mu.createElement(gp,{isSever:n},Mu.createElement(jC,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Lu,"NotificationsBadge");import{RefreshProgressButton as XC}from"@rango-dev/ui";import ns,{useEffect as YC,useState as Pu}from"react";var ZC=1e3,_u=60,JC=100;function Fr({onClick:t}){let[e,o]=Pu(0),[n,r]=Pu(!1),a=i(c=>{document.hidden&&c&&s(c)},"handleVisibilityChange");YC(()=>{let c;return t?c=window.setInterval(()=>{o(u=>u+1),e===_u&&l()},ZC):s(c),document.addEventListener("visibilitychange",()=>a(c)),()=>{document.removeEventListener("visibilitychange",()=>a(c)),c&&clearInterval(c)}},[e,t]);let s=i(c=>{c&&clearInterval(c),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return ns.createElement(Et,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ns.createElement(hp,{onTransitionEnd:()=>r(!1),isRefetched:n},ns.createElement(XC,{size:22,color:t?"black":"gray",progress:e/_u*JC})))}i(Fr,"RefreshButton");function mo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ve("notification",s)||r.includes("notifications");return We.createElement(We.Fragment,null,!r.includes("refresh")&&We.createElement(Ur,{container:a||W(),side:"top",content:Or.t("Refresh")},We.createElement(Fr,{onClick:e})),!l&&We.createElement(ek,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:W(),content:We.createElement(os,null)},We.createElement("div",null,We.createElement(Ur,{container:W(),side:"top",content:Or.t("Notifications")},We.createElement(Et,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},We.createElement(RC,{size:18,color:"black"}),We.createElement(Lu,null))))),!r.includes("settings")&&We.createElement(Ur,{container:W(),side:"top",content:Or.t("Settings")},We.createElement(Et,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},We.createElement(tk,{size:18,color:"black"}))),!r.includes("history")&&We.createElement(Ur,{container:W(),side:"top",content:Or.t("History")},We.createElement(Et,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},We.createElement(ok,{size:18,color:"black"}),We.createElement(Bu,null))))}i(mo,"HeaderButtons");import{i18n as rs}from"@lingui/core";import{Divider as $u,MessageBox as ik,RefreshIcon as ak}from"@rango-dev/ui";import zo from"react";import{Button as nk,styled as rk}from"@rango-dev/ui";var Du=rk(nk,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function is(t){let{open:e,onClose:o}=t;return zo.createElement(Z,{open:e,dismissible:!0,onClose:o,container:W()},zo.createElement(ik,{title:rs.t("Something went wrong"),type:"error",description:rs.t("Something went wrong. Please refresh the app.")},zo.createElement($u,{size:30}),zo.createElement(Du,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},zo.createElement(ak,{size:20,color:"primary"}),zo.createElement($u,{size:4,direction:"horizontal"}),rs.t("Refresh"))))}i(is,"RefreshModal");function as(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(as,"onScrollContentAttachStatusToContainer");import{css as sk,styled as ss}from"@rango-dev/ui";var Fu="700px",zr=sk({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Ou=ss("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Fu},fixed:{height:Fu}}}}),Uu=ss("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),zu=ss("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"}}});function oe(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=za(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l,connectedWallets:c}=y(),[u,p]=uk(!1),{config:{features:d,theme:h}}=y(),{watermark:f}=re(),m=f==="FULL",{activeTheme:g}=Uo(h||{}),C=Ve("connectWalletButton",d),{isActiveTab:S,tabManagerInitiated:k,showActivateTabModal:T,setShowActivateTabModal:v,activateCurrentTab:w}=re(),A=je(),{manager:L}=lk(),E=pt(L).map(({swap:te})=>te).some(te=>te.status==="running"),x=i(()=>w(io.forceClaim,E),"onActivateTab"),N=i(()=>{r.onWallet?.()},"onConnectWallet"),I=typeof r.hasBackButton>"u"||r.hasBackButton,B=qu(null),j=qu(null);return ls(()=>(Dr()&&j.current&&e(j.current),()=>{o()}),[]),ls(()=>(B.current?.addEventListener("scroll",as),()=>{B.current?.removeEventListener("scroll",as)}),[]),ls(()=>{p(l==="failed")},[l]),Be.createElement(Ou,{height:s,id:De.SWAP_BOX_ID,className:`${g()} ${zr()}`,ref:j},Be.createElement(pk,{prefix:I?Be.createElement(Ja,{onClick:()=>{A(),r.onBack&&r.onBack()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!C&&Be.createElement(ts,{container:W(),onClick:N,isConnected:!!c?.length}),r.onCancel&&Be.createElement(es,{onClick:r.onCancel}))}),Be.createElement(Uu,{ref:B},n),Be.createElement(Za,{open:T,onClose:()=>v(!1),onConfirm:x}),Be.createElement(zu,null,Be.createElement("div",{className:"footer__content"},k&&!S&&Be.createElement("div",{className:"footer__alert"},Be.createElement(Xa,{onActivateTab:x}),Be.createElement(Qu,{size:10})),a),Be.createElement(Qu,{size:12}),Be.createElement("div",{className:`footer__logo ${m?"logo__show":"logo__hidden"}`},Be.createElement(ck,null))),Be.createElement(is,{open:u,onClose:()=>p(!1)}))}i(oe,"Layout");import{styled as dk}from"@rango-dev/ui";var Hu="$20 $20 $10 $20",kn=dk("div",{padding:Hu,overflowY:"auto",flexGrow:1});import{styled as mk}from"@rango-dev/ui";var ie=mk("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 Qo}from"@lingui/core";import{useState as Gu}from"react";function Vu(){let[t,e]=Gu(!1),[o,n]=Gu(void 0),{findToken:r}=y(),a=y().customTokens();function s(c,u){switch(c){case"duplicated":return{title:Qo.t("Duplicate Token"),message:Qo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{title:Qo.t("Token Already Exists"),message:Qo.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{title:Qo.t("Token Not Found"),message:Qo.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:u}})}}}return i(s,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:c,tokenAddress:u})=>{e(!0);try{if(a.some(m=>m.address?.toLowerCase()===u.toLowerCase())){let m=s("duplicated");n(m);return}let d=await xt().getCustomToken({blockchain:c,address:u});if(!d||!d.token||d.error){let m=s("not-found",c);n(m);return}let h=d.token;if(r({blockchain:h.blockchain,address:h.address,symbol:h.symbol})){let m=s("token-exist");n(m);return}return h}catch(p){if(p?.code==="ERR_BAD_REQUEST"){let d=s("not-found",c);n(d);return}throw n(void 0),new Error(p.message)}finally{e(!1)}},"fetchCustomToken"),loading:t,error:o}}i(Vu,"useFetchCustomToken");var bk=Sk("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${gk} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}}),xk=1e3;function ju(){let t=vk(),[e]=wk(),o=je(),{setCustomToken:n}=y(),r=y().blockchains(),a=e.get("blockchain")||"",s=nn(a,r),[l,c]=Qr(""),[u,p]=Qr(!1),[d,h]=Qr(),{fetchCustomToken:f,loading:m,error:g}=Vu(),[C,S]=Qr(""),k=!!s&&xo(s,l),T=!s||!l||!k,v=i(async()=>{if(s)try{let L=await f({blockchain:a,tokenAddress:l});S(""),L&&h(L)}catch(L){L.message==="Failed to fetch"&&(S(It.t("Network Error")),p(!0))}},"getCustomToken"),w=i(()=>{g&&c(""),p(!1)},"closeErrorModal"),A=i(async()=>{C&&setTimeout(async()=>{await v()},xk),w()},"handleErrorModalButtonClick");return Tk(()=>{g&&p(!0)},[g]),ye.createElement(oe,{header:{title:It.t("Add Custom Token")}},ye.createElement(ie,null,ye.createElement(bk,null,ye.createElement("div",null,ye.createElement($a,{onClick:()=>t($.blockchains,{replace:!0}),hasLogo:!!s?.logo,value:s?{name:s.displayName,logo:s.logo}:void 0,title:It.t("Select chain"),placeholder:It.t("Select chain")}),ye.createElement(Tn,{size:"24"}),ye.createElement(kk,{size:"large",variant:"label"},It.t("Enter Address")),ye.createElement(Tn,{size:10}),ye.createElement(Ck,{fullWidth:!0,disabled:!s,variant:"contained",placeholder:It.t("Enter token address"),size:"large",value:l,suffix:!!l&&k&&ye.createElement(hk,{color:"success",size:12}),onChange:L=>c(L.target.value)}),!k&&!!l&&ye.createElement(ye.Fragment,null,ye.createElement(Tn,{size:4}),ye.createElement(fk,{type:"error",variant:"alarm",title:"Invalid Address"}))),ye.createElement(Ku,{id:"widget-add-custom-token-import-btn",disabled:T,type:"primary",variant:"contained",loading:m,size:"large",onClick:v},It.t("Import"))),ye.createElement(Z,{open:u,dismissible:!0,onClose:w,container:W()},ye.createElement(yk,{title:g?.title||C,type:"error",description:g?.message||It.t("Failed Network, Please retry.")},ye.createElement(Tn,{size:40}),ye.createElement(Tn,{size:10}),ye.createElement(Ku,{id:`widget-add-custom-token-${C?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:A},C?It.t("Retry"):It.t("Add another custom token")))),s&&d&&ye.createElement(Ua,{blockchain:s,token:d,onSubmitClick:()=>{d&&(n(d),h(void 0),o())},onClose:()=>h(void 0),open:!!s&&!!d})))}i(ju,"AddCustomTokenPage");import{i18n as Fs}from"@lingui/core";import{useManager as lv}from"@rango-dev/queue-manager-react";import{Alert as cv,Button as pv,css as Us,Divider as Os,IconButton as Qm,styled as uv,Typography as dv,WalletIcon as mv}from"@rango-dev/ui";import Le,{useEffect as hi,useLayoutEffect as fv,useRef as gv,useState as Pn}from"react";import{useNavigate as hv}from"react-router-dom";import{i18n as fo}from"@lingui/core";import{Alert as Yk,BalanceErrors as Zk,Button as vd,ChevronLeftIcon as Jk,Divider as hs,MessageBox as Rk,Typography as ys}from"@rango-dev/ui";import ee,{useCallback as eT,useEffect as wd,useMemo as tT,useState as Go}from"react";import{useNavigate as oT}from"react-router-dom";import{i18n as ds}from"@lingui/core";import{Alert as Wk,ChevronDownIcon as Bk,CloseIcon as Mk,Divider as td,IconButton as od,PasteIcon as Lk,Typography as Pk,WalletIcon as _k}from"@rango-dev/ui";import Me,{useEffect as Dk,useRef as $k}from"react";import Vr,{useRef as Ak}from"react";import*as qo from"@radix-ui/react-collapsible";import{keyframes as Xu,styled as qr}from"@rango-dev/ui";var cs=300,Ek=Xu({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Ik=Xu({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Yu=qr(qo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ps=qr(qo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Hr=qr(qo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Ek} ${cs}ms ease-out`},false:{animation:`${Ik} ${cs}ms ease-out`}}}}),Gr=qr("div",{transition:`all ${cs}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Kr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,c=Ak(null);return Vr.createElement(Yu,{ref:c,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&Vr.createElement(ps,{className:"collapsible_trigger",onClick:a},s),Vr.createElement(Hr,{className:"collapsible_content",open:e},r),l==="bottom"&&Vr.createElement(ps,{className:"collapsible_trigger",onClick:a},s))}i(Kr,"CustomCollapsible");import{darkTheme as Zu,styled as us,TextField as Nk}from"@rango-dev/ui";var Ju=us("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Ru=us(Nk,{backgroundColor:"$neutral100",padding:"$15"}),ed=us("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Zu} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Zu} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function nd(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=y(),l=y().blockchains(),c=nr(e.name,l),u=$k(null),p=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),f=n&&!!r&&e&&!xo(e,r),m=i(()=>{a("")},"handleClear"),g=i(async S=>{if(S.preventDefault(),navigator.clipboard!==void 0){let k=await navigator.clipboard.readText();a(k),u?.current?.focus()}},"handlePaste"),C=i(()=>r?Me.createElement(od,{id:"widget-custom-destination-close-icon-btn",onClick:m,variant:"ghost"},Me.createElement(Mk,{size:12,color:"gray"})):d?null:Me.createElement(od,{id:"widget-custom-destination-paste-icon-btn",onClick:g,variant:"ghost"},Me.createElement(Lk,{size:16})),"renderSuffix");return Dk(()=>{!!p&&r===null&&(a(p),o(!0))},[p]),Me.createElement(Ju,null,Me.createElement(Kr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Me.createElement(ed,null,Me.createElement("div",{className:"button__content"},Me.createElement(_k,{size:18,color:"info"}),Me.createElement(td,{size:4,direction:"horizontal"}),Me.createElement(Pk,{variant:"label",size:"medium",color:n?"$neutral600":void 0},ds.t("Send to a different address"))),Me.createElement(Gr,{orientation:n?"up":"down"},Me.createElement(Bk,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Me.createElement(Ru,{ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:ds.t("Enter {blockchainName} address",{blockchainName:c}),value:r||"",suffix:C(),onChange:S=>{let k=S.target.value;a(k)}})),f&&Me.createElement(Me.Fragment,null,Me.createElement(td,{size:4}),Me.createElement(Wk,{variant:"alarm",type:"error",title:ds.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(nd,"CustomDestination");import{css as Fk,darkTheme as ms,IconButton as Ok,styled as Dt}from"@rango-dev/ui";var rd=Dt("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),id=Dt("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Uk=Dt("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${ms} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${ms} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${ms} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),ad=Dt(Uk,{alignSelf:"stretch",minHeight:"93px"}),sd=Dt("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),ld=Dt(Ok,{position:"absolute",left:"$20"}),cd=Dt("div",{paddingTop:"$20"}),pd=Fk({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ud=Dt("div",{display:"flex"}),dd=Dt("div",{overflow:"visible",width:"100%"});import{i18n as Sd}from"@lingui/core";import{warn as Gk}from"@rango-dev/logging-core";import{Divider as Vk,SelectableWallet as Kk,Typography as Cd,WalletState as kd}from"@rango-dev/ui";import Xe,{useEffect as Td,useState as wn}from"react";import{Image as qk,MessageBox as Hk}from"@rango-dev/ui";import vn from"react";import{keyframes as zk,styled as fs}from"@rango-dev/ui";var md=fs("div",{position:"relative"}),Qk=zk({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),fd=fs("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Qk} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),gd=fs("div",{"& img":{borderRadius:"50%"}});import{i18n as Ho}from"@lingui/core";function hd(t,e){switch(t){case"in-progress":return{type:"loading",title:Ho.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Ho.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Ho.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Ho.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Ho.t("Request Rejected"),description:Ho.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(hd,"generateMessageByStatus");function yd(t){let{status:e,displayName:o,image:n}=t,r=hd(e,o),a=e=="in-progress";return vn.createElement(Hk,{type:r.type,title:r.title,description:r.description,icon:a?vn.createElement(md,null,vn.createElement(gd,null,vn.createElement(qk,{src:n,size:45})),vn.createElement(fd,null)):void 0})}i(yd,"ExperimentalChainStatus");var jk=7,Xk=3e3;function gs(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=re.use.isActiveTab(),{blockchains:l,connectedWallets:c}=y(),[u,p]=wn(),[d,h]=wn(null),[f,m]=wn(!1),[g,C]=wn(null),{suggestAndConnect:S}=jr(),{handleDisconnect:k}=Gt(),{list:T}=ft({chain:e}),[v,w]=wn(T),A=T.length,L=r&&A-r>0,b=i(async x=>{m(!1),C("in-progress");try{await S(x.walletType,x.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");Td(()=>{w(x=>{let N=T.findIndex(I=>o(I.type,e));return L&&N>1?[T[N]].concat(T.filter((I,B)=>B!==N)):x.map(I=>T.find(B=>B.type===I.type)??I)})},[JSON.stringify(T)]);let E=document.getElementById(De.SWAP_BOX_ID);return Td(()=>{let x=null;return(g==="completed"||g==="rejected")&&(x=setTimeout(()=>C(null),Xk)),()=>{x&&clearTimeout(x)}},[g]),Xe.createElement(Xe.Fragment,null,v.slice(0,r).map(x=>{let N=$c({connectedWallets:c,walletType:x.type,chain:e}),I=N?gr(N,jk):"",B=mr(l(),e),j=!c.find(se=>se.walletType===x.type&&se.chain===e),te=B&&j&&x.state===kd.CONNECTED,J=te?Sd.t({id:"Add {chain} chain",values:{chain:e}}):I,P=i(async()=>{let se=x.state===kd.DISCONNECTED,z=(x.isHub||!!x.needsNamespace)&&!I;se?p(x):z?(await k(x.type),p(x)):te?(h({walletType:x.type,chain:e,address:N??""}),m(!0)):n({walletType:x.type,chain:e,address:N??""})},"onSelectableWalletClick"),X=d?.chain?nr(d.chain,l()):void 0;return Xe.createElement(Xe.Fragment,{key:`${x.title}_${X}`},!!d&&Xe.createElement(Z,{open:!!d&&f,container:E,onClose:()=>{h(null)}},Xe.createElement(wa,{displayName:X,onConfirm:()=>{b(d)}})),g&&Xe.createElement(Z,{open:!!g,onClose:C.bind(null,null),container:E},Xe.createElement(yd,{status:g,displayName:X,image:x.image}),Xe.createElement(Vk,{direction:"vertical",size:32})),Xe.createElement(Kk,{key:x.type,description:J,onClick:P,selected:o(x.type,e),disabled:!s,...x}))}),Xe.createElement(co,{wallet:u,onClose:()=>{p(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):Gk(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),L&&Xe.createElement(ad,{selected:!1,onClick:a},Xe.createElement(Cd,{variant:"label",size:"medium"},Sd.t("Show more wallets"),Xe.createElement(Cd,{variant:"label",size:"medium",color:"$primary"},"\xA0+",A-(r??0)))))}i(gs,"WalletList");var nT=2;function bd(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=oT(),l=y().blockchains(),{selectedQuote:c,setSelectedWallets:u,quoteWalletsConfirmed:p,setQuoteWalletConfirmed:d,customDestination:h,setCustomDestination:f}=O(),{config:m,connectedWallets:g,setWalletsAsSelected:C}=y(),[S,k]=Go(""),[T,v]=Go([]),[w,A]=Go(""),[L,b]=Go(!!h),E=tT(()=>ro({filter:"all",quote:c}),[c]),x=ro({filter:"required",quote:c}),N=l.find(_=>_.name===c?.swaps[c?.swaps.length-1].to.blockchain),I=i(_=>x.includes(_),"isWalletRequiredFor"),B=eT(()=>g.filter(_=>_.selected&&E.includes(_.chain)),[g,E]),[j,te]=Go(B()),[J,P]=Go([]),X=i((_,H)=>P(V=>V.concat({blockchain:_,walletType:H})),"addNextSelectedWallets"),se=T.length>0,z=i((_,H)=>!!j.find(V=>V.walletType===_&&V.chain===H&&V.selected&&(I(H)||!I(H)&&!h)),"isSelected"),me=i((_,H,V)=>{let fe=!1;return _.map(ne=>{if(ne.chain===H){let ge=ne.selected;return!fe&&V?(fe=!0,ge=!0):V||(ge=!1),{...ne,selected:ge}}return ne})},"updateSelectableWallets"),vt=i(_=>{b(_),_?I(N?.name??"")||te(H=>me(H,N?.name||"",!1)):(f(""),te(H=>me(H,N?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),Ze=i(_=>{if(S&&k(""),z(_.walletType,_.chain))return;let V=g.find(fe=>fe.walletType===_.walletType&&fe.chain===_.chain);V&&(n(),_.chain===N?.name&&L&&!I(N.name)&&(b(!1),f(null)),te(fe=>fe.filter(ne=>ne.chain!==_.chain).concat({...V,selected:!0})))},"onChange"),le=i(()=>{let _=j.filter(H=>H.selected);C(_),u(_),d(!0),o()},"onConfirmBalance"),at=i(async()=>{v([]),A("");let _=await r?.({selectedWallets:j.filter(V=>V.selected),customDestination:h}),H=_.warnings;H?.balance?.messages&&v(H.balance.messages),_.error&&A(_p(_.error)),!_.error&&!H?.balance?.messages.length?le():v(H?.balance?.messages??[])},"onConfirmWallets");wd(()=>{te(_=>{let H=[];return _.forEach(V=>{!g.some(ne=>ne.chain===V.chain&&ne.walletType===V.walletType&&ne.address===V.address)||H.push(V)}),H=H.concat(g.filter(V=>!!!H.find(ne=>ne.chain===V.chain)&&V.selected&&E.includes(V.chain))),H})},[g,E]),wd(()=>{let _=[];J.length>0&&(J.forEach(H=>{let V=g.find(fe=>fe.chain===H.blockchain&&fe.walletType===H.walletType);V?Ze(V):_.push(H)}),P(_))},[g,J]);let G=document.getElementById(De.SWAP_BOX_ID);return ee.createElement(Z,{open:e,onClose:()=>{p||s("../",{replace:!0}),o()},dismissible:!S,container:G,...!S&&{styles:{container:{height:"100%"}},footer:ee.createElement(ud,null,ee.createElement(vd,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:pu(a,L,h,c,j,N),onClick:at,variant:"contained",type:"primary",fullWidth:!0,size:"large"},fo.t("Confirm")))},...S&&{styles:{container:{height:"100%",padding:"$0"}},header:ee.createElement(sd,null,ee.createElement(ld,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:k.bind(null,"")},ee.createElement(Jk,{size:16})),ee.createElement(ys,{variant:"headline",size:"small"},fo.t({id:"Your {blockchainName} wallets",values:{blockchainName:st(S,l)}})))},anchor:"center"},ee.createElement(Z,{open:se,onClose:v.bind(null,[]),container:G},ee.createElement(Rk,{title:fo.t("Insufficient account balance"),type:"error",description:ee.createElement(Zk,{messages:T??[]})},ee.createElement(vd,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:le},fo.t("Proceed anyway")))),S&&ee.createElement(cd,null,ee.createElement("div",{className:pd()},ee.createElement(gs,{chain:S,isSelected:z,selectWallet:Ze,onShowMore:()=>k(S),onConnect:_=>{X(S,_)}}))),!S&&ee.createElement(ee.Fragment,null,w&&ee.createElement(ee.Fragment,null,ee.createElement(Yk,{variant:"alarm",type:"error",title:fo.t(w)}),ee.createElement(hs,{size:12})),ee.createElement(dd,null,E.map((_,H)=>{let V=l.find(Fe=>Fe.name===_),fe=`wallet-${H}`,ne=H===E.length-1,ge=ne&&N&&m?.customDestination!==!1;return ee.createElement("div",{key:fe},ee.createElement(rd,null,ee.createElement(ys,{variant:"title",size:"xmedium"},fo.t({id:"Your {blockchainName} wallets",values:{blockchainName:V?.shortName}})),ee.createElement(ys,{variant:"label",color:"$neutral700",size:"medium"},fo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:V?.shortName}}))),ee.createElement(hs,{size:24}),ee.createElement(id,null,ee.createElement(gs,{chain:_,isSelected:z,selectWallet:Ze,limit:nT,onShowMore:()=>k(V?.name??""),onConnect:Fe=>{X(_,Fe)}})),!ne&&ee.createElement(hs,{size:32}),ge&&ee.createElement(nd,{blockchain:N,open:L,handleOpenChange:vt}))}))))}i(bd,"ConfirmWalletsModal");import{i18n as vT}from"@lingui/core";import{Alert as wT,Button as bT,InfoIcon as xT}from"@rango-dev/ui";import et from"react";import{Alert as aT,Button as sT,Divider as ks,NoRouteIcon as lT,RefreshIcon as cT,Typography as Bd}from"@rango-dev/ui";import Re from"react";import{i18n as xd}from"@lingui/core";var rT=24,iT=60;function Ed(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:R().genericServerError,action:{onClick:n,title:xd.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:R().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:xd.t("Reset")}},description:R().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:R().noResultError.description}}i(Ed,"makeInfo");var Ss=(o=>(o[o.small=rT]="small",o[o.large=iT]="large",o))(Ss||{}),Cs=(o=>(o.small="small",o.large="medium",o))(Cs||{});import{styled as Xr}from"@rango-dev/ui";var Id=Xr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Ad=Xr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Nd=Xr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Wd=Xr("div",{padding:"$6 $0"});function bn(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=Ed(o,r,()=>a(s,!0),e);return Re.createElement(Id,null,Re.createElement(lT,{size:Ss[n],color:"gray"}),Re.createElement(ks,{size:4}),Re.createElement(Bd,{variant:"title",size:Cs[n]},R().noResultError.title),n==="large"&&Re.createElement(ks,{size:4}),!!l.description&&Re.createElement(Ad,{size:n},Re.createElement(Bd,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Re.createElement(ks,{size:n==="large"?"24":"4"}),!!l.alert&&Re.createElement(Nd,{size:n},Re.createElement(aT,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Re.createElement(sT,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:Re.createElement(Wd,null,Re.createElement(cT,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(bn,"NoResult");import{i18n as xn}from"@lingui/core";import{Button as uT,Divider as dT,MessageBox as mT,Typography as fT,WarningIcon as gT}from"@rango-dev/ui";import $t from"react";import{Typography as _d}from"@rango-dev/ui";import vs from"react";import{darkTheme as pT,styled as Yr}from"@rango-dev/ui";var Md=Yr("div",{width:"100%"}),Ts=Yr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Ld=Yr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${pT} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Pd=Yr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Dd(t){let{title:e,value:o,valueColor:n}=t;return vs.createElement(Ld,null,vs.createElement(_d,{size:"medium",variant:"label",className:"_title"},e),vs.createElement(_d,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Dd,"QuoteErrorsModalItem");function $d(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:xn.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:xn.t("Gas cost"),value:M(r.totalFee,2,2)},{title:xn.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:xn.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return $t.createElement(Z,{footer:$t.createElement(uT,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:$t.createElement(gT,null),fullWidth:!0,disabled:a,onClick:n},R().highValueLossError.confirmMessage),open:e,onClose:o,container:W()},$t.createElement(mT,{type:s,title:R().highValueLossError.impactTitle,description:R().highValueLossError.description}),$t.createElement(Ts,null,$t.createElement(dT,{size:"4"}),$t.createElement(fT,{size:"small",variant:"title"},xn.t("Details")),$t.createElement(Ts,null,l.map((c,u)=>$t.createElement(Dd,{key:u,...c})))))}i($d,"HighValueLossWarningModal");import{i18n as Zr}from"@lingui/core";function Fd(t,e){let o={alertType:"warning",title:"",action:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Zr.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o;if(t){switch(t.type){case 0:{_t(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=R().highValueLossError.title;break}case 4:{o.title=Zr.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=R().unknownPriceError.title;break}case 2:{o.title=Zr.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings";break}case 3:{o.title=Zr.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Fd,"makeAlerts");import{i18n as Vo}from"@lingui/core";import{Button as Od,Divider as Ud,MessageBox as hT,Typography as yT}from"@rango-dev/ui";import go from"react";import{useNavigate as ST}from"react-router-dom";function zd(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,c=ST(),u=e??o;return go.createElement(Z,{anchor:"bottom",open:n,prefix:go.createElement(Od,{size:"small",id:"widget-slippage-warning-modal-change-settings-btn",variant:"ghost",onClick:()=>c("../"+$.settings)},go.createElement(yT,{variant:"label",size:"medium",color:"$neutral900"},Vo.t("Change settings"))),container:W(),onClose:r},go.createElement(hT,{type:"warning",title:s.type===3?Vo.t("High slippage"):Vo.t("Low slippage"),description:s.type===3?Vo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Vo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},go.createElement(Ud,{size:18}),go.createElement(Ud,{size:32}),go.createElement(Od,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Vo.t("Confirm anyway"))))}i(zd,"SlippageWarningModal");import{Button as CT,MessageBox as kT,WarningIcon as TT}from"@rango-dev/ui";import Jr from"react";function Qd(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Jr.createElement(Z,{footer:Jr.createElement(CT,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Jr.createElement(TT,null),fullWidth:!0,disabled:r,onClick:n},R().unknownPriceError.confirmMessage),open:e,onClose:o,container:W()},Jr.createElement(kT,{type:"warning",title:R().unknownPriceError.impactTitle,description:R().unknownPriceError.description}))}i(Qd,"UnknownPriceWarningModal");function En(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:c,onConfirmWarningModal:u,onChangeSettings:p}=t,d={confirmationDisabled:a,open:r,onClose:c,onConfirm:u},h=o?.type===0||o?.type===1,f=Fd(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),et.createElement(et.Fragment,null,h&&et.createElement(bn,{error:o,fetch:s}),!!f&&et.createElement(Md,null,et.createElement(wT,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:et.createElement(Pd,{onClick:l},et.createElement(xT,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:et.createElement(bT,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:f.alertType,onClick:p},vT.t("Change"))}})),e&&et.createElement(et.Fragment,null,e.type===0&&et.createElement($d,{...d,warning:e}),(e.type===3||e.type===2)&&et.createElement(zd,{...d,warning:e}),e.type===1&&et.createElement(Qd,{...d,warning:e})))}i(En,"QuoteWarningsAndErrors");import ov from"bignumber.js";import di from"react";import{i18n as ho}from"@lingui/core";import{Alert as qT,Divider as jo,FullExpandedQuote as HT,InfoIcon as GT,NumericTooltip as km,QuoteTag as VT,StepDetails as KT,TokenAmount as jT,Typography as Xo}from"@rango-dev/ui";import Bs from"bignumber.js";import F,{useRef as XT,useState as YT}from"react";import{styled as ws}from"@rango-dev/ui";var bs=ws("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),qd=ws("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Hd=ws("div",{width:"100%",display:"flex"});import*as Rr from"@radix-ui/react-collapsible";import{Button as ET,css as In,darkTheme as xe,Image as Gd,styled as ze,Typography as IT}from"@rango-dev/ui";var AT=300,Vd=ze(Rr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${xe} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Kd=In({padding:"$10 $15"}),jd=ze(ET,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${xe} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${xe} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${xe} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Xd=ze("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${xe} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${xe} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${xe} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${xe} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${xe} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${xe} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${xe} &`]:{backgroundColor:"$neutral400"}}}}]}),Yd=In({width:"100%",padding:"$15 $15 $10 $15"}),Zd=In({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Ko=In({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Jd=In({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${xe} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Rd=ze(Rr.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:{[`& ${Gd}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Gd}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${xe} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),em=ze("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),tm=ze(Hr,{width:"100%",background:"inherit"}),xs=ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${AT}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),LF=ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),om=ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${xe} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),nm=ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Es=ze(IT,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),rm=ze("div",{display:"flex",flexWrap:"wrap"}),Is=ze("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),im=ze("div",{display:"flex"}),ei=ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${xe} &`]:{borderTopColor:"$neutral800"}});import{i18n as At}from"@lingui/core";import{ChevronDownIcon as WT,CloseIcon as BT,Divider as ni,IconButton as MT,NumericTooltip as LT,QuoteCost as PT,Typography as yt}from"@rango-dev/ui";import Y,{useState as cm}from"react";import{css as NT,styled as ti}from"@rango-dev/ui";var oi=ti("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),As=ti("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),am=ti("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),sm=ti("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),lm=NT({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var _T=i(t=>t.fee.isZero()?null:Y.createElement(oi,null,Y.createElement(yt,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(yt,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Ns(t){let[e,o]=cm(!1),[n,r]=cm(!1),{steps:a,quote:s,fee:l,time:c,feeWarning:u,timeWarning:p,showModalFee:d,fullExpandedMode:h=!1}=t,f=s?.swaps??[],m=h?no():W(),g=ou(f);return Y.createElement(Y.Fragment,null,Y.createElement(PT,{onClickFee:d?C=>{C.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,timeWarning:p,time:c,steps:a,tooltipGas:d?At.t("View more info"):void 0,tooltipContainer:m}),Y.createElement(Z,{container:m,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:Y.createElement(sm,{style:{textAlign:h?"left":"center"}},Y.createElement(yt,{variant:"title",size:"medium"},At.t("Gas & Fee Explanation")),Y.createElement(MT,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement(BT,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(am,null,Y.createElement(yt,{variant:"title",size:"small"},At.t("Details")),Y.createElement(ni,{size:10}),Object.entries(g.payable).flatMap(([C,S])=>S.map((k,T)=>{let v=`payable-fee-${T}`,w=Wa(k);return Y.createElement(oi,{key:v},Y.createElement(yt,{variant:"label",size:"medium",color:"neutral600"},xa(C,At.t)),Y.createElement(LT,{content:k.amount,container:m},Y.createElement(yt,{variant:"label",size:"medium"},M(k.amount,2,2)," ",k.asset.symbol," ($",M(w,4,4),")")))})),Y.createElement(oi,{className:"total_payable_fee"},Y.createElement(yt,{variant:"label",size:"medium"},At.t("Total Payable Fee")),Y.createElement(yt,{variant:"label",size:"medium"},"$",M(l,4,4))),Y.createElement(As,null),Object.keys(g.nonePayable).length&&Y.createElement(Kr,{triggerAnchor:"bottom",onClickTrigger:()=>r(C=>!C),trigger:Y.createElement("div",{className:lm()},Y.createElement(yt,{size:"small",variant:"body",color:"neutral700"},n?At.t("Hide non-payable fees"):At.t("Show non-payable fees")),Y.createElement(ni,{size:4,direction:"horizontal"}),Y.createElement(Gr,{orientation:n?"up":"down"},Y.createElement(WT,{size:12,color:"gray"}))),open:n},Y.createElement(yt,{size:"small",variant:"title"},At.t("Description")),Y.createElement(ni,{size:4}),Y.createElement(yt,{size:"small",variant:"body",color:"neutral700"},At.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),Y.createElement(ni,{size:10}),Object.entries(g.nonePayable).map(([C,S],k)=>{let T=tu(S),v=xa(C,At.t),w=`non-payable-fee-${k}`;return Y.createElement(_T,{key:w,fee:T,label:v})}),Y.createElement(As,null)))))}i(Ns,"QuoteCostDetails");import{i18n as dm}from"@lingui/core";import{TokenAmount as mm}from"@rango-dev/ui";import ri from"react";import{css as DT,styled as $T}from"@rango-dev/ui";var pm=$T("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),um=DT({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function An(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return ri.createElement(pm,null,ri.createElement(mm,{direction:"horizontal",label:dm.t("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}}),ri.createElement("div",{className:um()}),ri.createElement(mm,{direction:"horizontal",tooltipContainer:W(),label:dm.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(An,"QuoteSummary");import{i18n as Sm}from"@lingui/core";import{ChevronDownIcon as UT,ChevronRightIcon as zT,Divider as Ws,Image as QT,Tooltip as ci,Typography as ai}from"@rango-dev/ui";import U from"react";import{useLayoutEffect as FT,useState as Nn}from"react";var fm=480,gm=768,hm=1024,ym=1200,OT=i(()=>{let[t,e]=Nn(!1),[o,n]=Nn(!1),[r,a]=Nn(!1),[s,l]=Nn(!1),[c,u]=Nn(!1),p=i(()=>{e(window.innerWidth<=fm),n(window.innerWidth>fm&&window.innerWidth<=gm),a(window.innerWidth>gm&&window.innerWidth<=hm),l(window.innerWidth>hm&&window.innerWidth<=ym),u(window.innerWidth>ym)},"handleResize");return FT(()=>(p(),window.addEventListener("resize",p),()=>window.removeEventListener("resize",p)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:c}},"useScreenDetect"),ii=OT;var si=4,li=6,Wn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||W();return U.createElement(ci,{container:l,side:"bottom",sideOffset:4,open:r,content:e},U.createElement(em,{className:n,state:a},U.createElement(QT,{src:o,size:16})))},"ImageComponent");function Cm(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,c=l||W(),u=r.length,p=Gp(r),{isTablet:d,isMobile:h}=ii();return U.createElement(Rd,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(m=>!m)}},U.createElement("div",{className:Ko()},U.createElement(ai,{variant:"body",size:"xsmall"},Sm.t("Via:")),U.createElement(Ws,{direction:"horizontal",size:4}),r.map((f,m)=>{let g=`item-${m}`,C=U.createElement(xs,null,U.createElement(zT,{size:12,color:"black"}));return h||d?U.createElement(U.Fragment,{key:g},U.createElement(Wn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),m!==u-1&&U.createElement(U.Fragment,null,C)):U.createElement(U.Fragment,{key:g},u<=si||u>si&&m<si-1?U.createElement(U.Fragment,null,U.createElement(Wn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),m!==u-1&&U.createElement(U.Fragment,null,C)):m===si-1&&U.createElement(ci,{container:c,side:"bottom",align:"end",sideOffset:4,content:U.createElement("div",{className:Ko()},C,r.map((S,k)=>{let T=`image-${k}`;return k>=m&&U.createElement(U.Fragment,{key:T},U.createElement(Wn,{content:S.swapper.displayName,src:S.swapper.image,state:S.state,open:!1}),k!==u-1&&U.createElement(U.Fragment,null,C))}))},U.createElement(Is,{state:r.find((S,k)=>k>=m&&(S.state==="error"||S.state==="warning"))?.state},U.createElement(ai,{size:"xsmall",variant:"body"},"+",u-m))))})),U.createElement("div",{className:Ko()},U.createElement("div",{className:"blockchains_section"},U.createElement("div",{className:Ko()},U.createElement(ai,{variant:"body",size:"xsmall"},Sm.t("Chains:")),U.createElement(Ws,{direction:"horizontal",size:4}),p.map((f,m)=>U.createElement(U.Fragment,{key:f.displayName},p.length<=li||p.length>li&&m<li-1?U.createElement(ci,{container:c,side:"bottom",content:f.displayName,sideOffset:4},U.createElement(Wn,{content:"",src:f.image,open:!1,className:m!==0?"blockchainImage":""})):m===li-1&&U.createElement(ci,{container:c,side:"bottom",align:"end",sideOffset:4,content:U.createElement("div",{className:Ko()},p.map((g,C)=>C>=m&&U.createElement(Wn,{key:g.displayName,content:"",src:g.image,open:!1,className:C>m?"blockchainImage":"",container:l})))},U.createElement(Is,{className:"blockchainImage"},U.createElement(ai,{size:"xsmall",variant:"body"},"+",p.length-m))))),U.createElement(Ws,{direction:"horizontal",size:32}))),U.createElement(xs,{orientation:a?"up":"down"},U.createElement(UT,{size:12,color:"black"}))))}i(Cm,"QuoteTrigger");function Ms(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:c=!0,showModalFee:u=!0,onClickAllRoutes:p,fullExpandedMode:d=!1,container:h}=t,f=y().blockchains(),{findToken:m}=y(),g=y().swappers(),{customSlippage:C,slippage:S}=y(),k=C||S,[T,v]=YT(t.expanded),w=XT(null),A=M(o.value,6,6),L=M(n.value,6,6),b=n.usdValue?M(n.usdValue,4,4):"",E=Pt(o.usdValue,n.usdValue??null),x=M(E,2,2),N=_t(E??0),I=i((le,at)=>le.map((G,_)=>{let H,V=r?.type===3&&r.swap.swapperId===G.swapperId,fe=r?.type===4&&r.recommendedSlippages?.has(_),ne=a?.type===2&&a.recommendedSlippages?.has(_),ge=V||fe,Fe=ne;ge?H="error":Fe&&(H="warning");let ve=ge?ho.t("Slippage Error"):ho.t("Slippage Warning");return V&&(ve=ho.t("Bridge Limit Error")),{swapper:{displayName:on(G.swapperId,g)??"",image:G.swapperLogo},from:{token:{displayName:G.from.symbol,image:G.from.logo},chain:{displayName:st(G.from.blockchain,f)??"",image:G.from.blockchainLogo},price:{value:_===0&&!at?M(o.value,6,6):M(G.fromAmount,6,6),usdValue:M((G.from.usdPrice??0)*parseFloat(G.fromAmount),4,4),realValue:_===0?o.value:G.fromAmount,realUsdValue:new Bs(G.from.usdPrice??0).multipliedBy(G.fromAmount).toString()}},to:{token:{displayName:G.to.symbol,image:G.to.logo},chain:{displayName:st(G.to.blockchain,f)||"",image:G.to.blockchainLogo},price:{value:M(G.toAmount,6,6),usdValue:M((G.to.usdPrice??0)*parseFloat(G.toAmount),4,4),realValue:G.toAmount,realUsdValue:new Bs(G.to.usdPrice??0).multipliedBy(G.toAmount).toString()}},state:H,alerts:ge||Fe?F.createElement(qd,{dense:d},F.createElement(qT,{variant:"alarm",type:ge?"error":"warning",title:ve,footer:F.createElement(Hd,null,V&&F.createElement("div",null,F.createElement(Xo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(jo,{direction:"vertical",size:2}),F.createElement(Xo,{size:"xsmall",variant:"body",color:"neutral900"},ho.t({id:"Yours: {amount} {symbol}",values:{amount:M(G.fromAmount,6,6),symbol:G?.from.symbol}}))),(fe||ne)&&!V&&F.createElement("div",null,F.createElement(Xo,{size:"xsmall",variant:"body",color:"neutral900"},ho.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(_)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(_)}}})),F.createElement(jo,{direction:"vertical",size:2}),F.createElement(Xo,{size:"xsmall",variant:"body",color:"neutral900"},ho.t({id:"Yours: {userSlippage}",values:{userSlippage:k}}))))})):void 0,time:an(G.estimatedTimeInSeconds),fee:M(Na(G,m),2,2),internalSwaps:G.internalSwaps?I(G.internalSwaps):void 0}}),"getQuoteSteps"),B=I(e?.swaps??[]),j=B.length,te=h||W(),J=Kp(t.quote.tags||[]),P=!!p,X=cr(e?.swaps),se=an(X),z=Br(e?.swaps??[],m),me=M(z,2,2),vt=z.gte(new Bs($p)),Ze=X/Op>=Fp;return d?F.createElement(HT,{selected:l,fee:me,time:se,tooltipContainer:no(),steps:B,tags:J,quoteCost:F.createElement(Ns,{quote:e,fullExpandedMode:!0,time:se,fee:me,feeWarning:vt,timeWarning:Ze,showModalFee:u,steps:j}),percentageChange:x,warningLevel:N,outputPrice:{value:L,usdValue:b,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Xd,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Yd()},!c&&J.length?F.createElement(F.Fragment,null,F.createElement(im,null,J.map((le,at)=>{let G=`${le.value}_${at}`;return F.createElement(F.Fragment,{key:G},F.createElement(VT,{label:le.label,value:le.value}),F.createElement(jo,{size:4,direction:"horizontal"}))})),F.createElement(ei,null),!P&&F.createElement(jo,{size:4})):null,F.createElement("div",{id:"portal-root",className:Zd()},F.createElement(Ns,{quote:e,time:se,fee:me,feeWarning:vt,timeWarning:Ze,showModalFee:u,steps:j}),P&&F.createElement(jd,{onClick:le=>{le.stopPropagation(),p()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Xo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},ho.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Jd()},F.createElement(nm,null,F.createElement(GT,{size:12,color:"gray"})),F.createElement(rm,null,F.createElement(Es,{size:"small",variant:"body"},`${A} ${B[0].from.token.displayName} = `),F.createElement(km,{content:n.value,container:te,open:n.value?void 0:!1},F.createElement(Es,{size:"small",variant:"body"},"\xA0",`${L} ${B[B.length-1].to.token.displayName}`))),F.createElement(km,{content:n.usdValue,container:te},F.createElement(jo,{size:2,direction:"horizontal"}),F.createElement(Xo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${b})`))),s==="list-item"&&F.createElement(jT,{tooltipContainer:te,type:"output",direction:"vertical",price:{value:L,usdValue:b,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:B[j-1].to.token.displayName,image:B[j-1].to.token.image},chain:{image:B[j-1].to.chain.image},percentageChange:x,warningLevel:N}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(An,{from:B[0].from,to:B[j-1].to,percentageChange:x,warningLevel:N}),F.createElement(jo,{size:4}))),F.createElement(Vd,{selected:l,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:v},F.createElement(Cm,{type:s,quoteRef:w,selected:l,setExpanded:v,container:te,expanded:T,steps:B}),F.createElement(tm,{open:T},F.createElement(om,null),F.createElement("div",{className:Kd()},B.map((le,at)=>{let G=`item-${at}`;return F.createElement(KT,{type:"quote-details",key:G,tooltipContainer:te,step:le,hasSeparator:at!==B.length-1,state:le.state})})))))}i(Ms,"Quote");import{Divider as ev,Skeleton as tv}from"@rango-dev/ui";import Ot from"react";import{darkTheme as ZT,styled as pi}from"@rango-dev/ui";var Tm=pi("div",{$$color:"$colors$neutral100",[`.${ZT} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),vm=pi("div",{paddingTop:"$2"}),wm=pi("div",{paddingLeft:"$8"}),bm=pi("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Pm,Divider as St,Skeleton as tt}from"@rango-dev/ui";import Q from"react";import{css as JT,styled as Ft}from"@rango-dev/ui";var Ls=Ft("div",{display:"flex"}),xm=Ft("div",{padding:"$10 $0 $20"}),Em=Ft("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Im=Ft("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Am=Ft("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Nm=Ft("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Wm=Ft("div",{width:"65%",display:"flex",justifyContent:"start"}),Bm=Ft("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Mm=Ft("div",{padding:"$15 $0 $15 $0"}),Lm=JT({display:"flex",justifyContent:"space-between",alignItems:"center"});function Bn(t){let{type:e,tagHidden:o=!0}=t,n=Q.createElement(Am,null,Q.createElement(Wm,null,Q.createElement(Pm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),Q.createElement(St,{size:8,direction:"horizontal"}),Q.createElement(Bm,null,Q.createElement(tt,{height:10,width:60,variant:"rounded"}),Q.createElement(St,{size:4}),Q.createElement(tt,{height:15,variant:"rounded"}))),Q.createElement(tt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return Q.createElement("div",null,!o&&Q.createElement(Q.Fragment,null,Q.createElement(Ls,null,Q.createElement(tt,{width:65,height:20,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:65,height:20,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:65,height:20,variant:"rounded"})),Q.createElement(ei,null),!r&&Q.createElement(St,{size:4})),Q.createElement("div",{className:Lm()},Q.createElement(Ls,null,Q.createElement(tt,{width:60,height:10,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:60,height:10,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:60,height:10,variant:"rounded"})),r&&Q.createElement(tt,{width:85,height:24,variant:"rounded"})),e==="basic"&&Q.createElement(xm,null,Q.createElement(tt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&Q.createElement(Em,null,Q.createElement(Im,null,Q.createElement(Pm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),Q.createElement(St,{direction:"horizontal",size:4}),Q.createElement(tt,{height:15,width:150,variant:"rounded"})),Q.createElement(St,{size:10}),Q.createElement(tt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&Q.createElement(Q.Fragment,null,Q.createElement(St,{size:4}),Q.createElement(Mm,null,n,Q.createElement(Nm,null),n),Q.createElement(St,{size:12})))}i(Bn,"QuoteSummarySkeleton");import{ChainToken as Om,Divider as _s,NextIcon as RT,Skeleton as ui}from"@rango-dev/ui";import Ee from"react";import{styled as Mn}from"@rango-dev/ui";var _m=Mn("div",{display:"flex",alignItems:"start"}),Dm=Mn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ps=Mn("div",{display:"flex",alignItems:"center",flexGrow:1}),$m=Mn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Fm=Mn("div",{display:"flex",alignItems:"center"});function Nt(t){let{separator:e=!0}=t;return Ee.createElement(Ee.Fragment,null,Ee.createElement(Fm,null,Ee.createElement(ui,{height:22,width:22,variant:"circular"}),Ee.createElement(_s,{direction:"horizontal",size:8}),Ee.createElement(ui,{height:15,width:148,variant:"rounded"})),Ee.createElement(_m,null,Ee.createElement(bm,{hideSeparator:!e}),Ee.createElement(Dm,{extraSpace:e},Ee.createElement(Ps,null,Ee.createElement(Om,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(_s,{direction:"horizontal",size:8}),Ee.createElement(ui,{height:12,variant:"rounded"})),Ee.createElement($m,null,Ee.createElement(RT,{color:"gray",size:16})),Ee.createElement(Ps,null,Ee.createElement(Om,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(_s,{direction:"horizontal",size:8}),Ee.createElement(ui,{height:12,variant:"rounded"})))))}i(Nt,"StepSkeleton");function Ln(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Ot.createElement(Tm,{expanded:o,rounded:e!=="basic"},Ot.createElement(Bn,{type:e,tagHidden:n}),Ot.createElement(vm,null,Ot.createElement(tv,{height:15,variant:"rounded"})),o&&Ot.createElement(wm,null,Ot.createElement(ev,{size:24}),Ot.createElement(Nt,null),Ot.createElement(Nt,null),Ot.createElement(Nt,{separator:!1})))}i(Ln,"QuoteSkeleton");function yo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:c,showModalFee:u,selected:p,onClickAllRoutes:d,fullExpandedMode:h=!1,container:f}=t,{inputAmount:m,inputUsdValue:g}=O(),C=e?.outputAmount?new ov(e?.outputAmount):null,S=e?ct(e):null,T=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?di.createElement(bs,null,di.createElement(Ln,{tagHidden:l,type:o,expanded:s})):T?di.createElement(bs,{onClick:()=>c?.(e)},di.createElement(Ms,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:p,type:o,expanded:s,onClickAllRoutes:d,fullExpandedMode:h,input:{value:m,usdValue:g?.toString()??""},output:{value:C?.toString()??"",usdValue:S?.toString()??""}})):null}i(yo,"QuoteInfo");import{calculatePendingSwap as av}from"@rango-dev/queue-manager-rango-preset";import{useEffect as sv}from"react";import{useRef as nv,useState as rv}from"react";var iv=2e3;function mi({request:t}){let[e,o]=rv(!1),n=nv(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(c=>setTimeout(c,iv)),await s(l,!1)),"retryFetch"),s=i(async(l,c=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(c)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(mi,"useFetch");function Um(){let{fetch:t,loading:e,cancelFetch:o}=mi({request:async(n,r)=>await xt().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Um,"useFetchConfirmQuote");function fi(t){if(!t.swaps)throw new Error(R().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Ds(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(fi,"throwErrorIfResponseIsNotValid");function Ds(t){if(Jp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Rp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=nu(t);if(o){let n=Mr(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Ds,"getQuoteError");function zm(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,l={quote:null,balance:null},c=Do({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});c&&(l.quote=c);let u=au(e,r,n.blockchains);return u.length===0||(l.balance={messages:u}),l}i(zm,"generateWarnings");function gi(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:t?.code==="ERR_BAD_REQUEST"?{swap:null,error:{type:0,diagnosisMessage:t.response.data.error},warnings:null}:{swap:null,error:{type:1},warnings:null}}i(gi,"handleQuoteErrors");function $s(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:l}=O(),{slippage:c,customSlippage:u}=y(),p=y().getDisabledLiquiditySources(),d=y().blockchains(),h=y().tokens(),{findToken:f}=y(),m=u||c,{fetch:g,cancelFetch:C,loading:S}=Um();return sv(()=>C,[]),{loading:S,fetch:i(async T=>{let v=T.selectedWallets,w=T?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=v.reduce((b,E)=>(b[E.chain]=E.address,b),{}),L={requestId:a?.requestId||"",selectedWallets:A,destination:w||void 0};try{return await g(L,!0).then(b=>{let{result:E}=b;if(!E)throw new Error("Error fetching updated route");fi({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let x={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};r(x);let N={slippage:m.toString(),disabledSwappersGroups:p},I=zm({previousQuote:a??void 0,currentQuote:x,meta:{blockchains:d},selectedWallets:v,userSlippage:m,inputUsdValue:n,findToken:f});l();let B=!!I.balance,j=av(o.toString(),E,iu(v),N,!B,{blockchains:d,tokens:h});return{quote:x,swap:j,error:null,warnings:I}})}catch(b){return gi(b)}},"fetch"),cancelFetch:C}}i($s,"useConfirmSwap");var yv=uv("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Qm}`]:{width:"$48",height:"$48"}}),Sv=Us({flexGrow:1,paddingRight:"$10"}),Cv=Us({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),kv=Us({display:"flex",justifyContent:"space-between",alignItems:"center"});function qm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=hv(),[l,c]=Pn(""),u=!n,[p,d]=Pn(!1),[h,f]=Pn(!1),{isActiveTab:m}=re(),g=y().getDisabledLiquiditySources(),C=gv(g),{manager:S}=lv(),{fetch:k,loading:T,cancelFetch:v}=$s(),[w,A]=Pn({swap:null,error:null,warnings:null}),[L,b]=Pn(!1),E=i(async({selectedWallets:P,customDestination:X})=>{let se=await k?.({selectedWallets:P,customDestination:X});return A(se),se},"onConfirmSwap"),x=i(async()=>{if(w.swap&&n)try{await S?.create("swap",{swapDetails:w.swap},{id:w.swap.requestId});let P=`../${$.swaps}/${w.swap.requestId}`;s(P,{replace:!0}),setTimeout(()=>{e("")},0)}catch(P){c("Error: "+P?.message)}},"addNewSwap"),N=i(async()=>{f(!0),await x(),f(!1)},"onConfirm"),I=i(async()=>{w.warnings?.quote&&Hp(w.warnings.quote)&&!a?b(!0):await N()},"onStartConfirmSwap"),B=i(async()=>{A({error:null,swap:null,warnings:null}),k({selectedWallets:o,customDestination:r}).then(P=>{A(P)}).catch(P=>console.error(P))},"onRefresh");hi(()=>{!!C.current.length&&!g.length&&B(),C.current=g},[g.length]),hi(()=>{u&&v()},[u]),hi(()=>{u&&d(u)},[u]),hi(()=>{u||k({selectedWallets:o,customDestination:r}).then(P=>A(P)).catch(P=>console.error(P))},[]),fv(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let j=w.warnings?.quote??null,te=w.error,J=[];if(l&&J.push(Le.createElement(cv,{type:"error",variant:"alarm",title:l})),j||te){let P=`../${$.settings}`;J.push(Le.createElement(En,{warning:j,error:te,couldChangeSettings:!1,refetchQuote:B,showWarningModal:L,confirmationDisabled:!m,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await x()},onChangeSettings:()=>s(P)}))}return Le.createElement(oe,{header:{title:Fs.t("Confirm Swap"),onWallet:()=>{let P=`../${$.wallets}`;s(P)}},footer:Le.createElement(yv,null,Le.createElement("div",{className:Sv()},Le.createElement(pv,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||h,disabled:!!w.error||!m,onClick:I},Fs.t("Start Swap"))),Le.createElement(Qm,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||h,disabled:!m,onClick:d.bind(null,!0)},Le.createElement(mv,{size:24})))},p&&Le.createElement(bd,{open:p,onClose:()=>d(!1),onCancel:v,loading:T,onCheckBalance:E}),Le.createElement(ie,null,Le.createElement("div",{className:kv()},Le.createElement(dv,{variant:"title",size:"small"},Fs.t("You get")),Le.createElement("div",{className:Cv()},Le.createElement(Fr,{onClick:!T&&!p&&!L?B:void 0}))),Le.createElement(Os,{size:"12"}),xu(J.map((P,X)=>({element:P,key:`alert-${X}`})),Le.createElement(Os,{size:10})),J.length>0?Le.createElement(Os,{size:10}):null,Le.createElement(yo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:w.error,loading:T,warning:w.warnings?.quote??null})))}i(qm,"ConfirmSwapPage");import{i18n as Ut}from"@lingui/core";import{Button as Zs,CustomTokensZeroStateDarkIcon as Dv,CustomTokensZeroStateIcon as $v,DeleteIcon as Fv,Divider as Fn,IconButton as Ov,MessageBox as Uv,NotFound as zv,styled as Rs}from"@rango-dev/ui";import de,{useState as Js}from"react";import{useNavigate as Qv}from"react-router-dom";import{CloseIcon as vv,IconButton as wv,SearchIcon as bv,TextField as xv}from"@rango-dev/ui";import _n from"react";import{styled as Tv}from"@rango-dev/ui";var Hm=Tv("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Ct(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:c,...u}=t;return _n.createElement(xv,{prefix:_n.createElement(Hm,null,_n.createElement(bv,{color:"black"})),suffix:!!s.length&&_n.createElement(wv,{variant:"ghost",onClick:()=>c?.(""),size:"small"},_n.createElement(vv,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...l},size:r,value:s,onChange:a,...u})}i(Ct,"SearchInput");import{i18n as Ys}from"@lingui/core";import{darkTheme as tf,Divider as Zo,ExternalLinkIcon as Av,Image as Nv,ListItemButton as Wv,NotFound as Bv,PinIcon as Mv,Skeleton as of,Typography as Ci,VirtualizedList as Lv}from"@rango-dev/ui";import q from"react";import{Divider as Rm,ListItem as Iv,Skeleton as Dn}from"@rango-dev/ui";import kt from"react";import{css as Yo,darkTheme as Gm,ImageContainer as Ev,styled as ut,Typography as Vm}from"@rango-dev/ui";var zs=Yo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Qs=Yo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),qs=Yo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Hs=Yo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Gm} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Gs=Yo({}),Vs=Yo(),Km=ut("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),Ks=ut("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),yi=ut("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Qs}`]:{[`& .${Hs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Gs}`]:{bottom:"-15px"},[`& .${zs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${qs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),js=ut("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Xs=ut(Vm,{}),jm=ut("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Vs}`]:{$$color:"$colors$neutral600",[`.${Gm} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Si=ut("div",{display:"flex",alignItems:"end",flexDirection:"column"}),IU=ut("div",{display:"flex",alignItems:"center"}),Xm=ut("div",{position:"relative",[`& ${Ev}`]:{borderRadius:"$xm",overflow:"hidden"}}),Ym=ut("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Zm=ut(Vm,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Jm=ut("a",{"& svg:hover":{color:"$colors$info"}});function ef(t){return kt.createElement(yi,null,Array.from(Array(t.size),e=>kt.createElement(Iv,{key:e,hasDivider:!0,start:kt.createElement(Dn,{variant:"circular",width:35,height:35}),end:kt.createElement(Si,null,kt.createElement(Dn,{variant:"text",size:"large",width:70}),kt.createElement(Rm,{size:4}),kt.createElement(Dn,{variant:"text",size:"medium",width:50})),title:kt.createElement("div",null,kt.createElement(Dn,{variant:"text",size:"large",width:90}),kt.createElement(Rm,{size:4}),kt.createElement(Dn,{variant:"text",size:"medium",width:90}))})))}i(ef,"LoadingTokenList");var Pv=20,_v=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return q.createElement("div",{className:Qs()},o?q.createElement("div",{className:zs()},o):q.createElement(Ks,{className:qs()},q.createElement(Ci,{variant:"title",size:"xmedium"},r.symbol),q.createElement(Zo,{direction:"horizontal",size:4}),q.createElement(js,{css:a},q.createElement(Xs,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&q.createElement("div",{className:`${Hs()} ${!o&&Gs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",q.createElement(Zo,{size:4,direction:"horizontal"}),q.createElement(Jm,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:c=>c.stopPropagation()},q.createElement(Av,{size:12}))))},"renderDesc");function $n(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s}=t,l=y().fetchStatus,c=y().blockchains(),{getBalanceFor:u,fetchingWallets:p}=y(),{isTokenPinned:d}=y(),h=i(m=>{let g=fr(u(m));return s?s(m):p?q.createElement(Si,null,q.createElement(of,{variant:"text",size:"large",width:70}),q.createElement(Zo,{size:4}),q.createElement(of,{variant:"text",size:"medium",width:50})):g&&q.createElement(jm,null,q.createElement(Zm,{variant:"title",size:"small"},g.amount),q.createElement("div",null),g.usdValue&&q.createElement(Ci,{variant:"body",className:Vs(),size:"xsmall"},`$${g.usdValue}`))},"endRenderer"),f=i(()=>q.createElement(Lv,{itemContent:m=>{let g=e[m],C=g.address||"",S=c.find(w=>w.name===g.blockchain),k=qa(S.color,"main"),T={$$color:k.main150,[`.${tf} &`]:{$$color:k.main750},backgroundColor:"$$color"},v={$$color:k.main750,[`.${tf} &`]:{$$color:k.main150},color:"$$color"};return q.createElement("div",{style:{paddingRight:5}},q.createElement(Wv,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":m,key:`${g.symbol}${g.address}`,id:`${g.symbol}${g.address}`,className:"widget-token-list-item-btn",hasDivider:!0,onClick:()=>n&&n(e[m]),start:q.createElement(Xm,null,q.createElement(Nv,{src:g.image,size:30}),t.type!=="custom-token"&&d(g,t.type)&&q.createElement(Ym,null,q.createElement(Mv,{size:12,color:"gray"}))),title:S?.type==="COSMOS"||g.name||!g.name&&!C?q.createElement(Ks,null,q.createElement(Ci,{variant:"title",size:"xmedium"},g.symbol),q.createElement(Zo,{direction:"horizontal",size:4}),q.createElement(js,{css:T},q.createElement(Xs,{variant:"body",size:"xsmall",css:v},g.blockchain))):void 0,description:S?.info&&C&&S.type!=="COSMOS"?_v({address:C,token:e[m],customCssForTag:T,customCssForTagTitle:v,name:g.name,url:S.info.addressUrl.split("{wallet}").join(C)}):g.name||void 0,end:h(g)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList");return q.createElement(q.Fragment,null,a&&q.createElement(q.Fragment,null,q.createElement(Ci,{variant:"label",size:"large"},Ys.t("Select Token")),q.createElement(Zo,{size:4})),q.createElement(Km,null,q.createElement(Zo,{size:4}),l==="loading"&&q.createElement(ef,{size:Pv}),l==="success"&&(e.length?q.createElement(yi,{as:"ul"},f()):!!o&&q.createElement(Bv,{title:Ys.t("No results found"),description:Ys.t("Try using different keywords")}))))}i($n,"TokenList");var qv=Rs("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Hv=Rs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Gv=Rs(Ov,{"&:hover":{"& svg":{color:"$secondary550"}}});function nf(){let[t,e]=Js(""),{deleteCustomToken:o}=y(),n=y().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:l}=O(),{mode:c}=Uo({}),u=Qv(),[p,d]=Js(!1),[h,f]=Js(),m=i(k=>{let T=k.target.value;e(T)},"handleSearch"),g=c==="dark",C=n.filter(k=>Je(k.symbol,t)||Je(k.address||"",t)||Je(k.name||"",t)),S=i(()=>{if(h){let k=a?lt(a):null,T=r?lt(r):null,v=lt(h);k===v?l({token:null}):T===v&&s({token:null}),o(h)}d(!1)},"handleDeleteCustomToken");return de.createElement(oe,{header:{title:Ut.t("Custom Tokens")}},de.createElement(ie,null,de.createElement(qv,null,n.length?de.createElement(de.Fragment,null,de.createElement(Ct,{value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Ut.t("Search Token"),onChange:m}),de.createElement(Fn,{size:16}),de.createElement($n,{list:C,type:"custom-token",searchedFor:t,showTitle:!1,action:k=>de.createElement(Gv,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),f(k)}},de.createElement(Fv,{size:12,color:"gray"}))})):de.createElement(Hv,null,de.createElement(zv,{icon:g?de.createElement(Dv,{size:200}):de.createElement($v,{size:200}),title:Ut.t("No custom tokens"),description:Ut.t("press the button to add your custom token")})),de.createElement(Fn,{size:20}),de.createElement(Zs,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>u($.addCustomTokens)},Ut.t("Add Custom Token"))),de.createElement(Z,{open:p,dismissible:!0,onClose:()=>d(!1),container:W()},de.createElement(Uv,{title:Ut.t("Delete Custom Token"),type:"error",description:Ut.t("Are you sure you want to Delete this Token?")},de.createElement(Fn,{size:40}),de.createElement(Fn,{size:10}),de.createElement(Zs,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},Ut.t("Yes, Delete it")),de.createElement(Fn,{size:12}),de.createElement(Zs,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},Ut.t("No, Continue"))))))}i(nf,"CustomTokensPage");import{i18n as qe}from"@lingui/core";import{useManager as pw}from"@rango-dev/queue-manager-react";import{Button as al,darkTheme as uw,Divider as Co,MessageBox as dw,NotFound as mw,styled as sl,Typography as vi}from"@rango-dev/ui";import{TransactionStatus as zn}from"rango-types";import ae,{useMemo as wf,useState as wi}from"react";import{useNavigate as fw}from"react-router-dom";import{FilterIcon as Jv,Popover as Rv}from"@rango-dev/ui";import So from"react";import{css as Vv,darkTheme as ki,IconButton as Kv,styled as On}from"@rango-dev/ui";var el=On("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ki} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),rf=On(Kv,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ki} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ki} &`]:{backgroundColor:"$neutral"},[`& ${el}::before`]:{backgroundColor:"$secondary100",[`.${ki} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),af=On("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),sf=On("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),lf=Vv({display:"flex",justifyContent:"space-between",alignItems:"center"}),cf=On("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as pf}from"@lingui/core";import{Button as jv,Divider as uf,ListItemButton as Xv,Radio as Yv,RadioRoot as Zv,Typography as df}from"@rango-dev/ui";import ot from"react";function mf(t){let{filterBy:e,onClickItem:o}=t;return ot.createElement(sf,null,ot.createElement("div",{className:lf()},ot.createElement(df,{size:"small",variant:"body"},pf.t("Status")),ot.createElement(jv,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},pf.t("Reset"))),ot.createElement(uf,{size:10}),ot.createElement(Zv,{value:e},ot.createElement(cf,null,t.list.map((n,r)=>ot.createElement(Xv,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:ot.createElement(ot.Fragment,null,ot.createElement(uf,{direction:"horizontal",size:4}),ot.createElement(df,{size:"medium",variant:"body"},n.title)),start:ot.createElement(Yv,{value:n.id}),onClick:o})))))}i(mf,"FilterSelectorContent");function tl(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return So.createElement("div",null,So.createElement(Rv,{open:a,align:"end",onOpenChange:o,container:W(),content:So.createElement(mf,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},So.createElement(rf,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},So.createElement(el,{isSelect:!!n},So.createElement(Jv,{size:16,color:"black"}),!!n&&So.createElement(af,null)))))}i(tl,"FilterSelector");import{i18n as ow}from"@lingui/core";import{Divider as Sf,GroupedVirtualizedList as nw,Skeleton as rw,SwapListItem as Cf,Typography as iw}from"@rango-dev/ui";import Qe,{useCallback as kf,useEffect as aw,useRef as sw,useState as lw}from"react";function ff(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(ff,"calculateGroupsSoFar");import{css as ew,darkTheme as tw,styled as Un}from"@rango-dev/ui";var ol=ew(),gf=Un("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),nl=Un("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ol}`]:{$$color:"$colors$neutral600",[`.${tw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),rl=Un("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),hf=Un("div",{gap:"$10",display:"flex",flexDirection:"column"}),yf=Un("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var cw=10;function il(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=lw([]),l=sw(0),{swaps:c,groupCounts:u,groups:p}=n(e),d=kf(ff,[]),h=kf(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,cw),s(d(u,l.current)))},[e.length]);if(aw(()=>{r||h()},[r,h]),r){let f=[1,2];return Qe.createElement(Qe.Fragment,null,[f,f].map((g,C)=>Qe.createElement(nl,{key:C},Qe.createElement(rl,null,Qe.createElement(rw,{variant:"text",width:60,size:"small"}),Qe.createElement(Sf,{size:16})),Qe.createElement(Sf,{size:4}),Qe.createElement(hf,null,g.map((k,T)=>Qe.createElement(Cf,{isLoading:!0,key:T}))))))}return Qe.createElement(nw,{endReached:()=>{l.current<e.length&&h()},groupCounts:a,groupContent:f=>Qe.createElement(nl,null,Qe.createElement(rl,null,Qe.createElement(iw,{variant:"label",size:"medium",className:ol()},p[f]))),itemContent:(f,m)=>{let g=c[f];if(!g)return null;let C=g.steps[0],S=g.steps[g.steps.length-1];return Qe.createElement(gf,{key:g.requestId},Qe.createElement(Cf,{requestId:g.requestId,creationTime:g.creationTime,status:g.status,onClick:o,tooltipContainer:W(),onlyShowTime:p[m]===ow.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:M(g.inputAmount,6,6),realAmount:g.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:M(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(il,"HistoryGroupedList");import{i18n as Ti}from"@lingui/core";import Tf from"dayjs";var vf=i(t=>{let e=new Map([["today",{title:Ti.t("Today"),swaps:[]}],["week",{title:Ti.t("This week"),swaps:[]}],["month",{title:Ti.t("This month"),swaps:[]}],["year",{title:Ti.t("This year"),swaps:[]}]]);function o(c,u){e.has(c)||e.set(c,{title:c,swaps:[]}),e.get(c)?.swaps.push(u)}i(o,"addYearsToOutput");let n=Tf();t.forEach(c=>{let u=Number(c.creationTime),p=Tf(u);if(n.isSame(p,"day"))e.get("today")?.swaps.push(c);else if(n.isSame(p,"week"))e.get("week")?.swaps.push(c);else if(n.isSame(p,"month"))e.get("month")?.swaps.push(c);else if(n.isSame(p,"year"))e.get("year")?.swaps.push(c);else{let d=new Date(u).getFullYear().toString();o(d,c)}});let r=Array.from(e.values()).filter(c=>c.swaps.length>0),a=r.flatMap(c=>c.swaps),s=r.map(c=>c.swaps.length),l=r.map(c=>c.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var gw=sl("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),hw=sl("div",{display:"flex",justifyContent:"center",alignItems:"center"}),yw=sl("div",{"._typography":{color:"$neutral700",[`.${uw}&`]:{color:"$neutral900"}}}),Sw=[{id:zn.SUCCESS,title:qe.t("Complete")},{id:zn.RUNNING,title:qe.t("Running")},{id:zn.FAILED,title:qe.t("Failed")}],Cw=i((t,e)=>t?.length?t.filter(o=>wt(o.fromBlockchain,e)||wt(o.toBlockchain,e)||wt(o.toSymbol,e)||wt(o.fromSymbol,e)).length:!1,"isStepContainsText");function bf(){let t=fw(),{manager:e,state:o}=pw(),n=pt(e).map(({swap:T})=>T),[r,a]=wi(""),[s,l]=wi(!1),c=!o.loadedFromPersistor,[u,p]=wi(""),[d,h]=wi(!1),f=i(T=>{let v=T.target.value;a(v)},"handleSearch"),m=wf(()=>!r&&!u?n:n.filter(T=>{let{inputAmount:v,status:w,steps:A,requestId:L}=T;return(!r||wt(v,r)||wt(w,r)||Cw(A,r)||wt(L,r))&&(!u||u===w)}),[n,r,u]),g=!m?.length&&!c,C=i(()=>h(!1),"onCloseModal"),S=i(async()=>{try{await e?.clearQueue(),h(!1)}catch(T){console.log(T)}},"onClear"),k=wf(()=>!n.some(T=>T.status===zn.SUCCESS||T.status===zn.FAILED),[n]);return ae.createElement(oe,{header:{title:qe.t("History"),suffix:ae.createElement(Vt,null,ae.createElement(al,{id:"widget-history-clear-btn",disabled:k,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},ae.createElement(vi,{size:"medium",variant:"label",color:"error"},qe.t("Clear"))))}},ae.createElement(ie,null,ae.createElement(hw,null,ae.createElement(Ct,{setValue:a,fullWidth:!0,variant:"contained",placeholder:qe.t("Search Transaction"),autoFocus:!0,onChange:f,style:{height:36},value:r}),ae.createElement(Co,{size:10,direction:"horizontal"}),ae.createElement(tl,{filterBy:u,open:s,onOpenChange:T=>l(T),onClickItem:T=>p(T),list:Sw})),ae.createElement(Co,{size:"16"}),ae.createElement(gw,null,g&&ae.createElement(yf,null,ae.createElement(Co,{size:32}),ae.createElement(mw,{title:r?qe.t("No results found"):qe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?qe.t("Try using different keywords"):qe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!g&&ae.createElement(il,{list:m,onSwapClick:t,groupBy:vf,isLoading:c}))),ae.createElement(Z,{open:d,onClose:C,container:W()},ae.createElement(Co,{size:20}),ae.createElement(dw,{type:"warning",title:qe.t("Clear Transaction History"),description:ae.createElement(yw,null,ae.createElement(vi,{variant:"body",size:"medium"},qe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ae.createElement(Co,{size:"24"}),ae.createElement(vi,{variant:"body",size:"small"},qe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ae.createElement(Co,{size:30}),ae.createElement(al,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},qe.t("Yes, Clear the history")),ae.createElement(Co,{size:10}),ae.createElement(al,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:C},ae.createElement(vi,{variant:"title",size:"medium",color:"primary"},qe.t("No, Cancel")))))}i(bf,"HistoryPage");import{i18n as qw}from"@lingui/core";import{Button as Hw,Divider as Gf,styled as Gw,WarningIcon as Vw}from"@rango-dev/ui";import Kw from"bignumber.js";import He,{useEffect as Vf,useState as Kf}from"react";import{useNavigate as jw}from"react-router-dom";import{i18n as Ef}from"@lingui/core";import{Alert as Tw,Divider as ll,NoRouteIcon as vw,Typography as ww}from"@rango-dev/ui";import ko from"react";import{styled as kw}from"@rango-dev/ui";var xf=kw("div",{display:"flex",flexDirection:"column",alignItems:"center"});function cl(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Mt(t,e)?ko.createElement(xf,null,ko.createElement(ll,{size:10}),ko.createElement(vw,{size:24,color:"gray"}),ko.createElement(ll,{size:4}),ko.createElement(ww,{variant:"title",size:"small"},Ef.t("No Routes Found")),ko.createElement(ll,{size:4}),ko.createElement(Tw,{title:Ef.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(cl,"SameTokensWarning");import{i18n as Nw}from"@lingui/core";import{Header as Ww}from"@rango-dev/ui";import Jt,{useEffect as Bw,useState as Mw}from"react";import{i18n as xw}from"@lingui/core";import{Divider as ul,FullExpandedQuote as Ew,Typography as Iw}from"@rango-dev/ui";import Se from"react";import{styled as pl}from"@rango-dev/ui";var If=pl("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Af=pl("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Nf=pl("div",{width:"146px"});import{i18n as Qn}from"@lingui/core";import{Select as bw}from"@rango-dev/ui";import Wf from"react";function bi(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:Qn.t("Smart Routing")},{value:"FEE",label:Qn.t("Lowest Fee")},{value:"SPEED",label:Qn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Qn.t("Maximum Return")},{value:"PRICE",label:Qn.t("Maximum Output")}];return Wf.createElement(Nf,null,Wf.createElement(bw,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(bi,"SelectStrategy");var Bf=3;function qn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:c,quotes:u,updateQuotePartialState:p,fromToken:d,toToken:h,sortStrategy:f,error:m}=O(),{slippage:g,customSlippage:C}=y(),{findToken:S}=y(),k=l||W(),T=!!u&&u.results.length,v=C??g,w=i(b=>{if(!d||!h||!u)return null;let E={requestAmount:u.requestAmount,validationStatus:null,...b};return Do({currentQuote:E,userSlippage:v,findToken:S})},"getQuoteWarning"),A=m?.type===0||m?.type===1,L=u?.results?Wr(f,u?.results):[];return Se.createElement(Se.Fragment,null,a&&Se.createElement(Se.Fragment,null,Se.createElement(Af,null,Se.createElement(Iw,{size:"xmedium",variant:"title"},xw.t("Sort by")),Se.createElement(bi,{container:k})),Se.createElement(ul,{size:"10"})),e&&Array.from({length:Bf},(b,E)=>Se.createElement(Se.Fragment,{key:E},s?Se.createElement(Ew,{loading:!0}):Se.createElement(Ln,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Bf-1&&Se.createElement(ul,{size:16}))),!e&&Se.createElement(Se.Fragment,null,T?L.map((b,E)=>{let x=w(b),N=Ds(b.swaps),I=L.length-1===E;return Se.createElement(Se.Fragment,{key:b.requestId},Se.createElement(yo,{showModalFee:r,container:k,selected:c?.requestId===b.requestId,tagHidden:!1,quote:{...b,requestAmount:u.requestAmount,validationStatus:null},loading:e,error:N?.options||null,warning:x,fullExpandedMode:s,onClick:B=>{N||p("warning",x),p("error",N?.options||null),o(B)},type:"list-item"}),!I&&Se.createElement(ul,{size:16}))}):A&&Se.createElement(If,null,Se.createElement(bn,{size:s?"large":"small",error:m,fetch:n}))))}i(qn,"Quotes");import{darkTheme as Aw,styled as Mf}from"@rango-dev/ui";var Lf=Mf("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${Aw} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Pf=Mf("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var Lw=100;function dl(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=Mw(!1),c=s?"":"is-hidden",{config:u}=y(),p=u?.variant==="full-expanded",d=no();return Bw(()=>{let h=null;return a?h=setTimeout(()=>{l(!0)},Lw):(l(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),Jt.createElement(Lf,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${c} ${zr()}`,id:De.EXPANDED_BOX_ID},Jt.createElement(Ww,{title:Nw.t("Routes"),suffix:Jt.createElement(Jt.Fragment,null,Jt.createElement(bi,{container:d}),Jt.createElement(mo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Jt.createElement(Pf,null,Jt.createElement(qn,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:no(),onClickOnQuote:n,fullExpandedMode:p})))}i(dl,"ExpandedQuotes");import{i18n as zf}from"@lingui/core";import{SwapInput as Qf}from"@rango-dev/ui";import $w from"bignumber.js";import Hn from"react";import{ReverseIcon as Dw}from"@rango-dev/ui";import fl from"react";import{keyframes as Pw,styled as _f}from"@rango-dev/ui";var ml=450,_w=Pw({"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)"}}),Df=_f("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),$f=_f("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${_w} ${ml}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 gl(){let t=O.use.switchFromAndTo();return fl.createElement(Df,null,fl.createElement($f,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},ml),t()}},fl.createElement(Dw,{size:12})))}i(gl,"SwitchFromAndToButton");import{styled as Ff}from"@rango-dev/ui";var Of=Ff("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Uf=Ff("div",{position:"relative"});function hl(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:c,setInputAmount:u,inputAmount:p,inputUsdValue:d,outputAmount:h,outputUsdValue:f,selectedQuote:m}=O(),{connectedWallets:g,getBalanceFor:C}=y(),S=a?C(a):null,k=fr(S)?.amount??"0",T=S?new $w(S.amount).shiftedBy(-S.decimals):ce,v=!!s&&Fc(g,s.name),w=!Aa(m,p,d),A=!Aa(m,p,f),L=!d||!f||!f.gt(0)?null:Pt(d.toString(),f.toString());return Hn.createElement(Of,null,Hn.createElement(Uf,null,Hn.createElement(Qf,{label:zf.t("From"),mode:"From",onInputChange:u,balance:k,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:p,usdValue:w?void 0:M(d,4,4),realUsdValue:w?void 0:d?.toString(),error:w?R().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:W(),onSelectMaxBalance:()=>{let b=M(T,S?.decimals),E=S?.amount?b:"";u(E)},anyWalletConnected:g.length>0}),Hn.createElement(gl,null)),Hn.createElement(Qf,{sharpBottomStyle:!r&&(!!m||e),label:zf.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:c?.displayName||"",image:c?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(Pt(d,f),2,2),warningLevel:_t(L??0),price:{value:M(h,6,6),usdValue:A?void 0:M(f,4,4),realValue:h?.toString(),realUsdValue:A?void 0:f?.toString(),error:A?R().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:W()}))}i(hl,"Inputs");import{useCallback as Fw,useEffect as Ow,useRef as Uw,useState as zw}from"react";function qf(){let{fetch:t,loading:e,cancelFetch:o}=mi({request:async(n,r)=>await xt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(qf,"useFetchAllQuotes");var Qw=600;function xi({refetchQuote:t}){let{fetch:e,cancelFetch:o}=qf(),{excludeLiquiditySources:n,routing:r}=y().config,{connectedWallets:a}=y(),{fromToken:s,toToken:l,inputAmount:c,inputUsdValue:u,selectedQuote:p,sortStrategy:d,resetQuote:h,error:f,warning:m,setSelectedQuote:g,updateQuotePartialState:C}=O(),{slippage:S,customSlippage:k,affiliatePercent:T,affiliateRef:v,affiliateWallets:w,fetchStatus:A}=y(),L=y().getLiquiditySources(),b=y().getDisabledLiquiditySources(),E=y().excludeLiquiditySources(),{findToken:x}=y(),[N,I]=zw(!0),B=Uw(c),j=k??S,J=!s||!l||Mt(s,l)||!sn(c),P=i(z=>{I(z)},"resetState"),X=i(z=>{let{fromToken:me,toToken:vt,inputAmount:Ze,liquiditySources:le,excludeLiquiditySources:at,disabledLiquiditySources:G,slippage:_,affiliateRef:H,affiliatePercent:V,affiliateWallets:fe}=z;if(N||P(!0),!J&&me&&vt){h();let ne=ru({fromToken:me,toToken:vt,inputAmount:Ze,liquiditySources:le,excludeLiquiditySources:at,disabledLiquiditySources:G,wallets:a,slippage:_,affiliateRef:H,affiliatePercent:V,affiliateWallets:fe});Ao("experimental",r)&&(ne.experimental=!0),Ao("avoidNativeFee",r)&&(ne.avoidNativeFee=!0),Ao("enableCentralizedSwappers",r)&&(ne.enableCentralizedSwappers=!0),r?.maxLength&&(ne.maxLength=r.maxLength),e(ne).then(ge=>{let Fe=Wr(d,ge.results),ve=Vp(p,Fe,ge.requestAmount);I(!1),C("quotes",ge),g(ve),fi({diagnosisMessages:ge.diagnosisMessages,requestId:ve?.requestId||"",swaps:ve?.swaps});let mt=ve&&Do({currentQuote:ve,userSlippage:j,findToken:x});C("warning",mt)}).catch(ge=>{let{error:Fe}=gi(ge);(Fe?.type===0||Fe?.type===1)&&h(),Fe?.type!==2&&(C("error",Fe),I(!1))})}},"fetch"),se=Fw(Ec(z=>{X(z)},Qw),[J]);return Ow(()=>{if(!t){I(!1);return}if(A!=="success")return;if(J){I(!1),(p||f||m)&&h();return}if(!sn(c)||u?.eq(0)){P(!1),o();return}h(),P(!0);let z=X;return B.current&&B.current!=c&&(z=se),B.current=c,z({inputAmount:c,fromToken:s,toToken:l,liquiditySources:L,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:v,affiliatePercent:T,affiliateWallets:w}),o},[A,c,s?.symbol,s?.address,s?.blockchain,l?.symbol,l?.address,l?.blockchain,J,L?.length,n,b.length,j,v,T,JSON.stringify(w)]),{fetch:()=>X({inputAmount:c,fromToken:s,toToken:l,liquiditySources:L,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:v,affiliatePercent:T,affiliateWallets:w}),loading:N}}i(xi,"useSwapInput");function Hf(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};he.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Hf,"emitPreventableEvent");var Xw=Gw("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),Yw=300;function jf(){let t=jw(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:c,setSelectedQuote:u,resetQuoteWallets:p,setQuoteWarningsConfirmed:d,updateQuotePartialState:h}=O(),[f,m]=Kf(!1),{isLargeScreen:g,isExtraLargeScreen:C}=ii(),{fetch:S,loading:k}=xi({refetchQuote:a}),{config:T,fetchStatus:v,connectedWallets:w}=y(),{isActiveTab:A}=re(),[L,b]=Kf(!1),x=eu({fetchMetaStatus:v,fetchingQuote:k,inputAmount:n,quote:r,anyWalletConnected:w.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),N=Gc(g,C,T?.variant),I=!!n&&!!e&&!!o&&new Kw(n).gt(0)&&!uu(e,o),B=I&&v==="success"&&k,J=(!N||N&&c?.results.length)&&(l||s);Vf(()=>{p(),h("refetchQuote",!0)},[]),Vf(()=>{m(I)},[I]);let P=(r||s)&&!L?S:void 0,X=i(z=>{N&&f?(m(!1),setTimeout(()=>{t(z)},Yw)):t(z)},"onHandleNavigation"),se=i(z=>{r?.requestId!==z.requestId&&(b(!1),u(z))},"onClickOnQuote");return He.createElement(Xw,null,He.createElement(oe,{height:"auto",footer:He.createElement(Hw,{id:`widget-swap-${x.action}-btn`,type:"primary",size:"large",disabled:x.disabled||!A,prefix:x.action==="confirm-warning"&&He.createElement(Vw,null),fullWidth:!0,onClick:()=>{x.action==="connect-wallet"?Hf({type:"clickConnectWallet"},()=>X($.wallets)):x.action==="confirm-warning"?b(!0):X($.confirmSwap)}},x.title),header:{onWallet:()=>{X($.wallets)},hasBackButton:!1,title:T.title||qw.t("Swap"),suffix:He.createElement(mo,{hidden:N?["refresh"]:void 0,onClickRefresh:P,onClickHistory:()=>X($.swaps),onClickSettings:()=>{X($.settings)}})}},He.createElement(ie,null,He.createElement(hl,{fetchingQuote:B,fetchMetaStatus:v,isExpandable:N,onClickToken:z=>{X(z==="from"?$.fromSwap:$.toSwap)}}),He.createElement(Gf,{size:"2"}),N?null:He.createElement(yo,{quote:r,loading:B,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:c&&c.results.length>1?()=>{h("refetchQuote",!1),X($.routes)}:void 0}),J?He.createElement(He.Fragment,null,He.createElement(Gf,{size:"10"}),He.createElement(En,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:S,showWarningModal:L,confirmationDisabled:!A,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:()=>{b(!1),d(!0),X($.confirmSwap)},onChangeSettings:()=>X($.settings)})):null,He.createElement(cl,null))),N?He.createElement(dl,{loading:B,onClickOnQuote:se,fetch:S,onClickRefresh:P,isVisible:f}):null)}i(jf,"Home");import{i18n as Xf}from"@lingui/core";import{Alert as Zw,Divider as Jw,List as Rw,ListItemButton as eb,Radio as tb,RadioRoot as ob,Typography as nb}from"@rango-dev/ui";import Wt from"react";function Rt(){let{setLanguage:t,language:e,config:o}=y(),n=Yc,r=o?.language||No;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||No),resetLanguage:()=>t(null)}}i(Rt,"useLanguage");function Yf(){let{activeLanguage:t,changeLanguage:e,languages:o}=Rt(),n=je(),r=o.map(a=>{let{local:s,label:l,SVGFlag:c}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Wt.createElement(nb,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Wt.createElement(tb,{value:s}),start:Wt.createElement(c,null)}});return Wt.createElement(oe,{header:{title:Xf.t("Language")}},Wt.createElement(ie,null,Wt.createElement(Zw,{type:"warning",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Wt.createElement(Jw,{size:"8"}),Wt.createElement(ob,{value:t},Wt.createElement(Rw,{type:Wt.createElement(eb,{title:Xf.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Yf,"LanguagePage");import{i18n as zt}from"@lingui/core";import{Button as lb,Checkbox as cb,Image as pb,ListItemButton as ub,NotFound as db,Typography as mb}from"@rango-dev/ui";import Ge,{useState as fb}from"react";import{Checkbox as ab,Skeleton as Jf}from"@rango-dev/ui";import Vn from"react";import{styled as yl}from"@rango-dev/ui";var Gn=yl("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Sl=yl("div",{width:80,display:"flex",justifyContent:"flex-end"}),Cl=yl("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as rb,styled as ib}from"@rango-dev/ui";var Zf=ib(rb,{height:61});var sb=30;function kl(){return Vn.createElement(Gn,null,Array.from(Array(sb),(t,e)=>Vn.createElement(Zf,{hasDivider:!0,key:e,start:Vn.createElement(Jf,{variant:"circular",width:35,height:35}),title:Vn.createElement(Jf,{variant:"text",size:"large",width:90}),end:Vn.createElement(ab,{checked:!1})})))}i(kl,"LoadingLiquiditySourceList");function Tl({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=fb(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),c=yr(o,n),u={Exchanges:zt.t("Exchanges"),Bridges:zt.t("Bridges")},p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&p.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=c.filter(S=>p.includes(S.type)),h=d.length===d.filter(S=>S.selected).length,f=i(()=>{d.forEach(S=>{h?s(S.groupTitle):S.selected||s(S.groupTitle)})},"toggleAllSources"),m=d.map(S=>{let{selected:k,groupTitle:T,logo:v,id:w,...A}=S;return{id:`widget-setting-liquidity-source-${w.toLowerCase().replace(/\s+/g,"-")}-item-btn`,start:Ge.createElement(pb,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(T)},end:Ge.createElement(cb,{checked:k,disabled:l}),title:Ge.createElement(mb,{variant:"title",size:"xmedium"},zt.t(T)),selected:k,groupTitle:T,logo:v,...A}}),g=i(S=>{let k=S.target.value;a(k)},"handleSearch"),C=m;return r&&(C=m.filter(S=>wt(S.groupTitle,r))),Ge.createElement(oe,{header:{title:zt.t(t),suffix:Ge.createElement(Sl,null,Ge.createElement(lb,{id:`widget-liquidity-source-${h?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:f},h?zt.t("Deselect all"):zt.t("Select all")))}},Ge.createElement(ie,{view:!0},Ge.createElement(Ct,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:zt.t("Search {sourceType}",{sourceType:u[t]}),onChange:g}),e==="loading"&&Ge.createElement(kl,null),!C.length&&r?Ge.createElement(Cl,null,Ge.createElement(db,{title:zt.t("No results found"),description:zt.t("Try using different keywords")})):e==="success"&&Ge.createElement(Gn,{disabled:l},C.map(S=>{let{groupTitle:k,...T}=S;return Ge.createElement(Ge.Fragment,{key:S.id},Ge.createElement(ub,{style:{height:"61px"},...T,selected:!1,hasDivider:!0}))}))))}i(Tl,"LiquiditySourcePage");import{i18n as gb}from"@lingui/core";import Ei from"react";import{useNavigate as hb}from"react-router-dom";function Rf(){let t=hb(),e=je(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:l,loading:c}=xi({refetchQuote:n}),u=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),p=`../${$.settings}`,d=`../${$.wallets}`;return Ei.createElement(oe,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:gb.t("Routes"),suffix:Ei.createElement(mo,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(p),a("refetchQuote",!0)}})}},Ei.createElement(ie,null,Ei.createElement(qn,{fetch:l,loading:c,onClickOnQuote:u})))}i(Rf,"RoutesPage");import{i18n as ag}from"@lingui/core";import{Divider as sg,getCategoriesCount as Eb,SelectableCategoryList as Ib}from"@rango-dev/ui";import Qt,{useState as lg}from"react";import{useNavigate as Ab}from"react-router-dom";import{i18n as vl}from"@lingui/core";import{Divider as kb,Image as Tb,ListItemButton as vb,NotFound as wb,Typography as ig}from"@rango-dev/ui";import nt,{useEffect as bb,useState as xb}from"react";var eg=i((t,e,o)=>t.filter(n=>lr(n.type,o)).filter(n=>Je(n.name,e)||Je(n.displayName,e)),"filterBlockchains");import{ImageContainer as yb,styled as tg}from"@rango-dev/ui";var og=tg("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Ii=tg(kn,{padding:0,margin:0,listStyle:"none",[`& ${yb}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as Sb,Skeleton as ng}from"@rango-dev/ui";import Ai from"react";var Cb=20;function rg(){return Ai.createElement(Ii,null,Array.from(Array(Cb),t=>Ai.createElement(Sb,{key:t,hasDivider:!0,start:Ai.createElement(ng,{variant:"circular",width:35,height:35}),title:Ai.createElement(ng,{variant:"text",size:"large",width:90})})))}i(rg,"LoadingBlockchainList");function wl(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,l]=xb(e),{fetchStatus:c}=y();bb(()=>{l([...eg(e,o,r)])},[e,o,r]);let u=i(()=>!s.length&&o?nt.createElement(wb,{title:vl.t("No results found"),description:vl.t("Try using different keywords")}):nt.createElement(Ii,{as:"ul",key:`${r}-${o}`},s.map(p=>nt.createElement(vb,{key:`${p.name}-${p.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(p),start:nt.createElement(Tb,{src:p.logo,size:30}),title:nt.createElement(ig,{variant:"title",size:"medium"},p.displayName),id:p.name}))),"renderList");return nt.createElement(nt.Fragment,null,a&&nt.createElement(nt.Fragment,null,nt.createElement(ig,{variant:"label",size:"large"},vl.t("Select Chain")),nt.createElement(kb,{size:4})),nt.createElement(og,null,c==="loading"&&nt.createElement(rg,null),c==="success"&&u()))}i(wl,"BlockchainList");function Ni(t){let{type:e}=t,o=je(),[n,r]=lg(""),[a,s]=lg("ALL"),l=O.use.setToBlockchain(),c=O.use.setFromBlockchain(),{fetchStatus:u}=y(),p=Ab(),d=y().blockchains({type:e}),h=Eb(d),f=!t.hideCategory&&h!==1;return Qt.createElement(oe,{header:{title:ag.t("Select Chain")}},Qt.createElement(ie,{view:!0},f&&Qt.createElement(Qt.Fragment,null,Qt.createElement(Ib,{setCategory:s,category:a,blockchains:d,isLoading:u==="loading"}),Qt.createElement(sg,{size:24})),Qt.createElement(Ct,{value:n,autoFocus:!0,placeholder:ag.t("Search Chain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Qt.createElement(sg,{size:16}),Qt.createElement(wl,{list:d,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:m=>{e==="custom-token"?p(`..?blockchain=${m.name}`,{replace:!0}):(e==="source"?c(m):l(m),o())}})))}i(Ni,"SelectBlockchainPage");import{i18n as Bi}from"@lingui/core";import{Divider as fg}from"@rango-dev/ui";import To,{useState as Db}from"react";import{useNavigate as $b}from"react-router-dom";import{i18n as El}from"@lingui/core";import{BlockchainsChip as Wi,Divider as dg,Image as mg,Skeleton as Lb,Tooltip as Pb,Typography as Il}from"@rango-dev/ui";import Pe from"react";import{useEffect as Bb}from"react";var cg=["ETH","COSMOS","OSMOSIS"];function bl(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Nb),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let c=0;c<=l;c++){let u=n[c];s=s.filter(p=>u.name!==p)}}n.sort(Wb(s)),r=n.splice(a)}return{list:n,more:r}}i(bl,"prepare");function Nb(t,e){let o=cg,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(Nb,"sortByMostUsedBlockchains");function Wb(t){return i(function(o,n){let r=t.findIndex(c=>c===o.name),a=t.findIndex(c=>c===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(Wb,"generateSortByPreferredBlockchainsFor");function pg(t,e){return!!e.list.find(o=>o.name===t)}i(pg,"isInVisibleList");function xl(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();Bb(()=>{if(e?.selected){let a=bl(t,o,e);pg(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=bl(t,o,e);return{list:r.list,more:r.more,history:[]}}i(xl,"usePrepareBlockchainList");import{styled as Mb}from"@rango-dev/ui";var ug=Mb("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var _b=12;function Al(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=xl(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),c=O.use.resetToBlockchain(),u=O.use.resetFromBlockchain(),p=s.more.length>0,d=s.more.length===1,h=!d&&p;return Pe.createElement(Pe.Fragment,null,Pe.createElement(dg,{size:12}),Pe.createElement(Il,{variant:"label",size:"large"},El.t("Select Chain")),Pe.createElement(dg,{size:12}),Pe.createElement(ug,null,l==="loading"&&Array.from(Array(_b),f=>Pe.createElement(Lb,{key:f,variant:"rounded",height:50})),l==="success"&&Pe.createElement(Pe.Fragment,null,Pe.createElement(Wi,{selected:!n,onClick:()=>{o==="from"?u():c()}},Pe.createElement(Il,{variant:"body",size:"xsmall",color:"secondary500"},El.t("All"))),s.list.map(f=>Pe.createElement(Pb,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:W()},Pe.createElement(Wi,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Pe.createElement(mg,{src:f.logo,size:30})))),d?Pe.createElement(Wi,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Pe.createElement(mg,{src:s.more[0].logo,size:30})):null,h?Pe.createElement(Wi,{onClick:a,key:"more-blockchains"},Pe.createElement(Il,{variant:"body",size:"xsmall",color:"secondary500"},El._("More +{count}",{count:s.more.length}))):null)))}i(Al,"BlockchainsSection");function Nl(t){let{type:e}=t,o=$b(),n=je(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:c,setToBlockchain:u}=O(),{getBalanceFor:p}=y(),[d,h]=Db(""),m=(e==="source"?r:a)?.name??"",g=y().blockchains({type:e}),C=y().tokens({type:e,blockchain:m,searchFor:d,getBalanceFor:p}),S=i(v=>{e==="source"?c(v):u(v)},"updateBlockchain"),k=i(v=>{e==="source"?s({token:v,meta:{blockchains:g,tokens:C}}):l({token:v,meta:{blockchains:g,tokens:C}})},"updateToken"),T={source:Bi.t("Source"),destination:Bi.t("Destination")};return To.createElement(oe,{header:{title:Bi.t("Swap {type}",{type:T[e]})}},To.createElement(ie,null,To.createElement(Al,{blockchains:g,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o($.blockchains),onChange:v=>{S(v)}}),To.createElement(fg,{size:24}),To.createElement(Ct,{value:d,autoFocus:!0,placeholder:Bi.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>h(""),onChange:v=>h(v.target.value)}),To.createElement(fg,{size:16}),To.createElement($n,{list:C,selectedBlockchain:m,searchedFor:d,type:e,onChange:v=>{k(v);let w=g.find(A=>v.blockchain===A.name);w&&S(w),n()}})))}i(Nl,"SelectSwapItemsPage");import{i18n as Ml}from"@lingui/core";import{Alert as cx,Button as px,styled as ux}from"@rango-dev/ui";import vo from"react";import{useInRouterContext as dx,useSearchParams as mx}from"react-router-dom";import{i18n as kg}from"@lingui/core";import{Divider as Tg,InfoIcon as zb,SlippageIcon as Qb,TextField as qb,Tooltip as Hb,Typography as vg}from"@rango-dev/ui";import rt from"react";import{Chip as Fb,styled as Kn,TextField as Ob}from"@rango-dev/ui";var gg=Kn("div",{paddingTop:"$5",padding:"$10 $5"}),hg=Kn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Ob}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),yg=Kn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Mi=Kn("div",{maxWidth:"280px",padding:"$10"}),Sg=Kn(Fb,{width:"61px",flexShrink:0});import{i18n as Wl}from"@lingui/core";import{Typography as Ub}from"@rango-dev/ui";import jn from"react";function Cg(){return jn.createElement(Mi,null,jn.createElement(Ub,{variant:"label",size:"medium",color:"neutral700"},Wl.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),jn.createElement("br",null),jn.createElement("br",null),jn.createElement("b",null,Wl.t("Warning")),":\xA0",Wl.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(Cg,"SlippageTooltipContent");function Bl(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return rt.createElement(gg,null,rt.createElement(yg,null,rt.createElement(Qb,{size:16,color:"gray"}),rt.createElement(Tg,{direction:"horizontal",size:4}),rt.createElement(vg,{variant:"title",size:"xmedium"},kg.t("Slippage tolerance per swap")),rt.createElement(Tg,{direction:"horizontal",size:4}),rt.createElement(Hb,{container:W(),side:"top",sideOffset:4,content:rt.createElement(Cg,null)},rt.createElement(zb,{color:"gray"}))),rt.createElement(hg,null,Zc.map((r,a)=>{let s=`slippage-${a}`;return rt.createElement(Sg,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),rt.createElement(qb,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=tp&&s<=ep?n(s):n(null)},suffix:o&&rt.createElement(vg,{variant:"body",size:"small"},"%"),placeholder:kg.t("Custom")})))}i(Bl,"Slippage");import{i18n as dt}from"@lingui/core";import{AutoThemeIcon as wg,BridgesIcon as Gb,ChevronRightIcon as Li,DarkModeIcon as bg,Divider as Xn,ExchangeIcon as Vb,InfinityIcon as Kb,InfoIcon as jb,LanguageIcon as Xb,LightModeIcon as xg,List as Yb,ListItem as Zb,ListItemButton as Jb,Skeleton as Rb,styled as ex,Switch as tx,Tabs as ox,TargetIcon as nx,Tooltip as rx,Typography as Ye}from"@rango-dev/ui";import D from"react";import{useNavigate as ix}from"react-router-dom";var ax=ex("div",{width:"202px",height:"$40"}),sx=[{id:"light",icon:D.createElement(xg,{color:"black",size:24}),tooltip:D.createElement(Ye,{size:"xsmall",variant:"body"},dt.t("Light"))},{id:"dark",icon:D.createElement(bg,{color:"black",size:24}),tooltip:D.createElement(Ye,{size:"xsmall",variant:"body"},dt.t("Dark"))},{id:"auto",icon:D.createElement(wg,{color:"black",size:24}),tooltip:D.createElement(Ye,{size:"xsmall",variant:"body"},dt.t("Auto"))}],lx=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(wg,{...e});case"dark":return D.createElement(bg,{...e});default:return D.createElement(xg,{...e})}},"getThemeIcon");function Eg(){let t=ix(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=Rt(),s=a.find(P=>P.local===r)?.label,l=y().fetchStatus,c=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:p}}=y(),d=y().customTokens(),h=Ve("theme",p),f=Ve("liquiditySource",p),m=Ve("language",p),g=Ve("customTokens",p),C=y().infiniteApprove,S=y().toggleInfiniteApprove,k=yr(c,u),T=k.filter(P=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(P.type)),v=T.length,w=T.filter(P=>P.selected).length,A=k.filter(P=>P.type==="DEX"),L=A.length,b=A.filter(P=>P.selected).length,E=i((P,X)=>{switch(l){case"loading":return D.createElement(Rb,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(Ye,{variant:"body",size:"medium",color:"$error500"},dt.t("Loading failed"));default:return D.createElement(Ye,{variant:"body",size:"medium"},`${P} / ${X}`)}},"handleSwapperEndItem"),x={id:"widget-setting-bridge-item-btn",title:D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Bridges")),end:D.createElement(D.Fragment,null,E(w,v),D.createElement(Xn,{direction:"horizontal",size:8}),D.createElement(Li,{color:"black"})),onClick:()=>t($.bridges),start:D.createElement(Gb,{color:"gray",size:16})},N={id:"widget-setting-exchange-item-btn",title:D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Exchanges")),end:D.createElement(D.Fragment,null,E(b,L),D.createElement(Xn,{direction:"horizontal",size:8}),D.createElement(Li,{color:"black"})),start:D.createElement(Vb,{color:"gray",size:16}),onClick:()=>t($.exchanges)},I={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(Ye,{variant:"body",size:"medium"},`${d.length}`),D.createElement(Xn,{direction:"horizontal",size:8}),D.createElement(Li,{color:"black"})),start:D.createElement(nx,{color:"gray",size:16}),onClick:()=>t($.customTokens)},B={id:"widget-setting-language-item-btn",title:D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Language")),start:D.createElement(Xb,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(Ye,{variant:"body",size:"medium"},s),D.createElement(Xn,{direction:"horizontal",size:8}),D.createElement(Li,{color:"black"})),onClick:()=>t($.languages)},j={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Infinite approval")),D.createElement(Xn,{direction:"horizontal",size:4}),D.createElement(rx,{side:"top",sideOffset:4,container:W(),content:D.createElement(Mi,null,D.createElement(Ye,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,dt.t("Warning")),":\xA0",dt.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(jb,{color:"gray"}))),start:D.createElement(Kb,{color:"gray",size:16}),end:D.createElement(tx,{checked:C}),onClick:S},te={id:"widget-setting-theme-item-btn",type:D.createElement(Zb,null),title:D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Theme")),end:D.createElement(ax,null,D.createElement(ox,{container:W(),items:sx,value:n,onChange:P=>o(P.id),type:"primary",borderRadius:"small"})),start:lx(n)},J=f?[]:[x,N];return g||J.push(I),m||J.push(B),J.push(j),!e?.singleTheme&&!h&&J.push(te),D.createElement(Yb,{type:D.createElement(Jb,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:J})}i(Eg,"SettingsLists");var fx=ux("div",{paddingLeft:"$8"});function Ig(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=mx(),r=dx(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return vo.createElement(oe,{header:{title:Ml.t("Settings")}},vo.createElement(ie,null,o&&vo.createElement(cx,{type:"info",variant:"alarm",title:Ml.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:vo.createElement(fx,null,vo.createElement(px,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Ml.t("Reset")))}),vo.createElement(Bl,null),vo.createElement(Eg,null)))}i(Ig,"SettingsPage");import{i18n as tE}from"@lingui/core";import{cancelSwap as oE}from"@rango-dev/queue-manager-rango-preset";import{useManager as nE}from"@rango-dev/queue-manager-react";import{Alert as rE}from"@rango-dev/ui";import jl from"react";import{useParams as iE}from"react-router-dom";import{i18n as it}from"@lingui/core";import{getCurrentNamespaceOfOrNull as Dx,getCurrentStep as $x,getRelatedWalletOrNull as Fx}from"@rango-dev/queue-manager-rango-preset";import{Button as ih,CopyIcon as Ox,Divider as Ux,DoneIcon as zx,IconButton as Qx,QuoteCost as qx,RangoExplorerIcon as Hx,StepDetails as Gx,Tooltip as ah,Typography as wo,useCopyToClipboard as Vx}from"@rango-dev/ui";import{useWallets as Kx}from"@rango-dev/wallets-react";import sh from"bignumber.js";import{PendingSwapNetworkStatus as zi}from"rango-types";import K,{useEffect as lh,useRef as jx,useState as ch}from"react";import{useNavigate as Xx}from"react-router-dom";import{i18n as eo}from"@lingui/core";var gx=[eo.t("Sunday"),eo.t("Monday"),eo.t("Tuesday"),eo.t("Wednesday"),eo.t("Thursday"),eo.t("Friday"),eo.t("Saturday")];function Ag(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?eo.t("Today"):`${gx[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Ag,"timeSince");function Ng(t){return t.finishTime?Ag(parseInt(t.finishTime)):Ag(parseInt(t.creationTime))}i(Ng,"getSwapDate");import{PendingSwapNetworkStatus as Di}from"rango-types";import $i from"react";import{i18n as Pi}from"@lingui/core";import{Button as Wg,Divider as Ll,MessageBox as hx}from"@rango-dev/ui";import to from"react";var Bg=i(({onCancel:t,onClose:e})=>to.createElement(to.Fragment,null,to.createElement(Ll,{size:20}),to.createElement(hx,{type:"error",title:Pi.t("Cancel Swap"),description:Pi.t("Are you sure you want to cancel this swap?")}),to.createElement(Ll,{size:32}),to.createElement(Wg,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Pi.t("Yes, Cancel it")),to.createElement(Ll,{size:12}),to.createElement(Wg,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Pi.t("No, Continue"))),"CancelContent");import{i18n as _i}from"@lingui/core";import{Button as Mg,Divider as Pl,MessageBox as yx,Typography as Sx}from"@rango-dev/ui";import qt from"react";var Lg=i(({onDelete:t,onClose:e})=>qt.createElement(qt.Fragment,null,qt.createElement(Pl,{size:20}),qt.createElement(yx,{type:"error",title:_i.t("Delete Transaction"),description:_i.t("Are you sure you want to delete this swap?")}),qt.createElement(Pl,{size:32}),qt.createElement(Mg,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},_i.t("Yes, Delete it")),qt.createElement(Pl,{size:12}),qt.createElement(Mg,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},qt.createElement(Sx,{variant:"title",size:"medium",color:"primary"},_i.t("No, Cancel")))),"DeleteContent");import{i18n as _l}from"@lingui/core";import{PendingSwapNetworkStatus as Dl}from"rango-types";var $l={[Dl.WaitingForNetworkChange]:{type:"loading",title:_l.t("Change Network")},[Dl.WaitingForConnectingWallet]:{type:"warning",title:_l.t("Connect Wallet")},[Dl.NetworkChanged]:{type:"success",title:_l.t("Network Changed")}};import{warn as Cx}from"@rango-dev/logging-core";import{MessageBox as kx,Wallet as Tx}from"@rango-dev/ui";import{useWallets as vx}from"@rango-dev/wallets-react";import Jo,{useState as wx}from"react";import{styled as Pg}from"@rango-dev/ui";var _g=Pg("div",{display:"flex",justifyContent:"center"}),s5=Pg("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Dg=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[l,c]=wx(),{getWalletInfo:u,state:p}=vx(),d=n?.walletType,h=d?ln(p(d)):null,f=d?u(d):null,m=a&&!!d&&!!h&&!!f,{list:g}=ft(),C=i(()=>{if(d){let S=g.find(k=>k.type===d);S?c(S):Cx(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${S}`))}},"handleWalletItemClick");return Jo.createElement(Jo.Fragment,null,Jo.createElement(kx,{type:e,title:o,description:r}),m&&Jo.createElement(_g,null,Jo.createElement(Tx,{container:W(),title:f.name,image:f.img,type:d,state:h,link:f.installLink,disabled:s,onClick:C})),Jo.createElement(co,{wallet:l,onClose:()=>{c(void 0)}}))},"WalletStateContent");function Fl(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,c=e===Di.WaitingForNetworkChange||e===Di.WaitingForConnectingWallet||e===Di.NetworkChanged;return $i.createElement(Z,{open:!!e,onClose:o,container:document.getElementById(De.SWAP_BOX_ID)||document.body},c&&$i.createElement(Dg,{type:$l[e].type,title:$l[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==Di.WaitingForNetworkChange}),e==="delete"&&$i.createElement(Lg,{onClose:o,onDelete:n}),e==="cancel"&&$i.createElement(Bg,{onClose:o,onCancel:r}))}i(Fl,"SwapDetailsModal");import{i18n as Yn}from"@lingui/core";import{Button as Ol,Divider as Zn,MessageBox as $g,TokenAmount as bx,Typography as Fg}from"@rango-dev/ui";import Ce from"react";import{useNavigate as xx}from"react-router-dom";function Ul(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:c,chain:u,percentageChange:p,description:d,diagnosisUrl:h}=t,f=xx(),{showProfileBanner:m}=re();return Ce.createElement(Z,{open:e,onClose:o,container:document.getElementById(De.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement($g,{type:"success",title:Yn.t("Swap Successful")},Ce.createElement(bx,{direction:"vertical",tooltipContainer:W(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:c,chain:u,percentageChange:p}),Ce.createElement(Zn,{size:12}),Ce.createElement(Fg,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Ce.createElement($g,{type:"error",title:Yn.t("Transaction Failed"),description:d}),Ce.createElement(Zn,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,m&&Ce.createElement(Ce.Fragment,null,Ce.createElement("img",{src:"https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",alt:"Profile Banner"}),Ce.createElement(Zn,{size:30})),Ce.createElement(Ol,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Yn.t("Done"))),Ce.createElement(Zn,{size:12}),h&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Ol,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},Yn.t("Diagnosis")),Ce.createElement(Zn,{size:12})),Ce.createElement(Ol,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement(Fg,{variant:"title",size:"medium",color:"primary"},Yn.t("See Details"))))}i(Ul,"SwapDetailsCompleteModal");import _x from"react";import{i18n as Bx}from"@lingui/core";import{Alert as th,IconButton as Mx,LinkIcon as Lx}from"@rango-dev/ui";import oo,{Fragment as Px}from"react";import{Alert as Ix,ChevronDownIcon as Ax,IconButton as Nx}from"@rango-dev/ui";import en,{useState as Wx}from"react";import{css as Jn,darkTheme as Og,styled as Ht,Typography as Ex}from"@rango-dev/ui";var Ug=Ht("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Fi=Ht("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Og} &`]:{color:"$secondary500"}}}}}),zg=Ht(kn,{padding:"$0 $20 $20 $20"}),G5=Ht("div",{display:"flex",flexDirection:"column",gap:"$10"}),Qg=Ht("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),V5=Ht("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Ro=Jn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Og} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),qg=Jn({padding:"$5 0"}),Oi=Jn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Hg=Jn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Gg=Jn({width:"100%",padding:"0 $20 $10"}),Vg=Ht("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Kg=Ht("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ui=Ht(Ex,{wordBreak:"break-word"});import{styled as zl}from"@rango-dev/ui";var jg=zl("div",{display:"flex",flexDirection:"column",gap:"$10"}),Xg=zl("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Yg=zl("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Zg(t){let{message:e}=t,[o,n]=Wx(!1);return en.createElement(Ix,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&en.createElement(Nx,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},en.createElement(Xg,{rotated:o},en.createElement(Ax,{size:12,color:"gray"}))),footer:en.createElement(Yg,{open:o},en.createElement(Ui,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Zg,"FailedAlert");import{i18n as Jg}from"@lingui/core";import{Alert as Ql,Button as Rg}from"@rango-dev/ui";import{PendingSwapNetworkStatus as ql}from"rango-types";import Rn from"react";function eh(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Rn.createElement(Ql,{type:"warning",title:n.shortMessage,action:Rn.createElement(Rg,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(ql.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Jg.t("Change"))}):r===ql.WaitingForConnectingWallet?Rn.createElement(Ql,{type:"warning",title:n.shortMessage,action:Rn.createElement(Rg,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(ql.WaitingForConnectingWallet)}},Jg.t("Connect"))}):Rn.createElement(Ql,{type:"warning",title:n.shortMessage})}i(eh,"WarningAlert");function Hl(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Sn(a),c=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,p=u&&!s||c&&!a.explorerUrl?.length;return oo.createElement(jg,null,a.explorerUrl?.map((d,h,f)=>{let m=h+d.url,g=h===f.length-1,C=(g&&u||c)&&!p,S=g&&a.status==="failed";return oo.createElement(Px,{key:m},oo.createElement(th,{type:g&&(C&&"loading"||S&&"error")||"success",title:d.description?`${d.description} Tx`:Bx.t("View transaction"),action:d.url&&oo.createElement(Mx,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},oo.createElement(Lx,{size:12}))}))}),p&&oo.createElement(th,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&oo.createElement(eh,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&oo.createElement(Zg,{message:r}))}i(Hl,"SwapDetailsAlerts");var oh=2e3;var nh=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=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:st(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:st(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:on(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(c=>({from:{chain:{displayName:st(c.fromBlockchain,e)??"",image:c.fromBlockchainLogo??""}},to:{chain:{displayName:st(c.toBlockchain,e)??"",image:c.toBlockchainLogo??""}},swapper:{displayName:on(c.swapperId,o)??"",image:c.swapperLogo??"",type:c.swapperType}})):[],alerts:_x.createElement(Hl,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function rh(t){if(Sn(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(rh,"getStepState");function Gl(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Kx(),c=y().blockchains(),u=y().swappers(),{findToken:p}=y(),d=O.use.retry(),h=re.use.isActiveTab(),f=Xx(),[m,g]=Vx(oh),C=jx(null),[S,k]=ch(null),[T,v]=ch(null),w=i(()=>{r(),k(null)},"onCancel"),A=be.use.getNotifications(),L=be.use.removeNotification(),b=A(),E=$x(e),x=E?.networkStatus;lh(()=>{b.find(mt=>mt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),L(e.requestId)):T&&v(null))},[e.status,e.requestId]),lh(()=>{P?k(zi.WaitingForNetworkChange):x===zi.WaitingForConnectingWallet||x===zi.NetworkChanged?k(x):k(null)},[x]);let N=lu(e),I=E?Dx(e,E):null,B=E?Fx(e,E):null,j=Ng(e),te=cu(e),J=i(ve=>!!l(ve)?.mobileWallet,"isMobileWallet"),P=x===zi.WaitingForNetworkChange&&!!I&&!!B?.walletType&&(J(B.walletType)||a(B.walletType,I.network)),X=P?s.bind(null,B.walletType,[{namespace:I.namespace,network:I.network}]):void 0,se=su(e,E),z=nh({swap:e,switchNetwork:X,showNetworkModal:x,setNetworkModal:k,message:se,blockchains:c,swappers:u}),me=z.length,[vt,Ze]=[e.steps[0],e.steps[me-1]],le=Ze.outputAmount||Ze.expectedOutputAmountHumanReadable,at=e.steps.reduce((ve,mt)=>ve+parseFloat(mt.feeInUsd||""),0),G=e.steps.find(ve=>ve.diagnosisUrl)?.diagnosisUrl,_=M(parseFloat(le||"0")*(Ze.toUsdPrice||0),4,4),H=M(parseFloat(e.inputAmount)*(vt.fromUsdPrice||0),4,4),V=le?new sh(le).multipliedBy(Ze.toUsdPrice||0).toString():"",fe=new sh(e.inputAmount).multipliedBy(vt.fromUsdPrice||0).toString(),ne=Pt(H,_),ge=se.detailedMessage.content||se.shortMessage,Fe=e.status==="success"?it.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(le,6,6),token:z[me-1].to.token.displayName,conciseAddress:gr(e.wallets[z[me-1].to.chain.displayName]?.address||""),chain:z[me-1].to.chain.displayName}}):K.createElement(Kg,null,K.createElement(wo,{variant:"body",size:"medium",color:"neutral700",align:"center"},ge?"":it.t("Transaction was not sent."),N?`${it.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:N.outputAmount,symbol:N.symbol,blockchain:N.blockchain}})}`:""),ge&&K.createElement(Ui,{align:"center",variant:"body",size:"medium",color:"neutral700"},K.createElement("b",null,"Reason:")," ",ge));return K.createElement(oe,{header:{title:it.t("Swap Details"),onCancel:e.status==="running"?()=>k("cancel"):void 0,suffix:e.status!=="running"&&K.createElement(Vt,null,K.createElement(ih,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>k("delete")},K.createElement(wo,{size:"medium",variant:"label",color:"error"},it.t("Delete"))))},footer:te&&!T&&K.createElement(ih,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let ve=Nr(e,c,p);d(ve),setTimeout(()=>{f("../../")},0)}},it.t("Try again"))},K.createElement(ie,{compact:!0,view:!0},K.createElement(Fi,null,K.createElement("div",{className:Ro()},K.createElement(wo,{variant:"label",size:"large",color:"neutral700"},`${it.t("Request ID")}`),K.createElement("div",{className:Oi()},K.createElement(wo,{variant:"label",size:"small",color:"neutral700"},o),K.createElement(ah,{container:W(),content:m?it.t("Copied To Clipboard"):it.t("Copy Request ID"),open:m||void 0,side:"bottom",alignOffset:-16,align:"end"},K.createElement(Qx,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:g.bind(null,o||"")},m?K.createElement(zx,{size:16,color:"secondary"}):K.createElement(Ox,{size:16,color:"gray"}))),K.createElement(Vg,{target:"_blank",href:`${Sc}/swap/${o}`},K.createElement(ah,{container:W(),content:it.t("View on Rango Explorer"),side:"bottom"},K.createElement(Hx,{size:20}))))),K.createElement("div",{className:Ro()},K.createElement(wo,{variant:"label",size:"large",color:"neutral700"},e.finishTime?it.t("Finished at"):it.t("Created at")),K.createElement(wo,{variant:"label",size:"small",color:"neutral700"},j))),K.createElement("div",{className:Hg()},K.createElement(qx,{fee:M(String(at),2,2),time:an(cr(e.steps)),steps:me}),K.createElement(An,{from:{price:{value:M(e.inputAmount,6,6),usdValue:H,realUsdValue:fe,realValue:e.inputAmount},token:{displayName:z[0].from.token.displayName,image:z[0].from.token.image},chain:{image:z[0].from.chain.image,displayName:z[0].from.chain.displayName}},to:{price:{value:M(le,6,6),usdValue:_,realUsdValue:V,realValue:le||""},token:{displayName:z[me-1].to.token.displayName,image:z[me-1].to.token.image},chain:{image:z[me-1].to.chain.image,displayName:z[me-1].to.chain.displayName}},percentageChange:M(ne,2,2),warningLevel:_t(ne??0)})),K.createElement("div",{className:Gg()},K.createElement(wo,{variant:"title",size:"small"},it.t("Swaps steps"))),K.createElement(Ux,{size:8}),K.createElement(zg,{ref:C},z.map((ve,mt)=>{let tc=mt,tn=rh(e.steps[mt]),$h=tn==="error"||tn==="in-progress"||tn==="warning"||tn==="completed"&&mt===z.length-1;return K.createElement(Gx,{key:tc,step:ve,type:"swap-progress",ref:C,state:tn,hasSeparator:mt!==0,tabIndex:tc,isFocused:$h,tooltipContainer:W()})}))),K.createElement(Fl,{state:S,onClose:()=>k(null),onCancel:w,onDelete:n,message:se.detailedMessage.content,currentStepWallet:B,walletButtonDisabled:!h}),K.createElement(Ul,{open:!!T,diagnosisUrl:G,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:M(le,6,6),usdValue:_,realUsdValue:V,realValue:le||"",percentageChange:M(ne,2,2),token:{displayName:z[me-1].to.token.displayName,image:z[me-1].to.token.image},chain:{image:z[me-1].to.chain.image},description:Fe}))}i(Gl,"SwapDetails");import{i18n as qi}from"@lingui/core";import{Divider as dh,NotFound as eE,Skeleton as tr,Typography as Hi}from"@rango-dev/ui";import ke from"react";import{i18n as Yx}from"@lingui/core";import{Divider as Zx,Skeleton as Jx,Typography as Rx}from"@rango-dev/ui";import Te from"react";import{css as Tt,styled as Vl}from"@rango-dev/ui";var ph=Vl("div",{width:"100%",height:"100%",padding:"$10 $20"}),er=Vl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Qi=Vl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),rK=Tt({display:"flex",justifyContent:"space-between",alignItems:"center"}),iK=Tt({display:"flex",justifyContent:"space-between",alignItems:"center"}),aK=Tt({paddingTop:"$15",display:"flex"}),sK=Tt({padding:"$15 $0"}),lK=Tt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),cK=Tt({paddingBottom:"$10"}),pK=Tt({display:"flex",justifyContent:"start",alignItems:"center"}),uK=Tt({paddingTop:"$5",display:"flex",alignItems:"center"}),dK=Tt({display:"flex",alignItems:"center"}),mK=Tt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),uh=Tt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Kl(){return Te.createElement(ph,null,Te.createElement(Bn,{type:"swap-preview"}),Te.createElement("div",{className:"swaps-steps"},Te.createElement(Rx,{variant:"title",size:"small"},Yx.t("Swaps steps"))),Te.createElement(Te.Fragment,null,Te.createElement(er,null,Te.createElement(Nt,{separator:!1}),Te.createElement("div",{className:uh()},Te.createElement(Zx,{direction:"horizontal",size:20}),Te.createElement(Jx,{height:22,variant:"rectangular"}))),Te.createElement(Qi,null),Te.createElement(er,null,Te.createElement(Nt,{separator:!1})),Te.createElement(Qi,null),Te.createElement(er,null,Te.createElement(Nt,{separator:!1})),Te.createElement(Qi,null),Te.createElement(er,null,Te.createElement(Nt,{separator:!1}))))}i(Kl,"LoadingSwapDetails");function mh(t){let{requestId:e,showSkeleton:o}=t;return ke.createElement(oe,{header:{title:qi.t("Swap Details"),suffix:ke.createElement(Vt,null)}},o&&ke.createElement(Ug,null,ke.createElement(Fi,null,ke.createElement("div",{className:Ro()},ke.createElement(Hi,{variant:"label",size:"large",color:"neutral700"},`${qi.t("Request ID")}`),ke.createElement("div",{className:Oi()},ke.createElement(Hi,{variant:"label",size:"small",color:"neutral700"},ke.createElement(tr,{width:60,height:10,variant:"rounded"})),ke.createElement(dh,{direction:"horizontal",size:4}),ke.createElement(tr,{width:16,height:16,variant:"rectangular"}),ke.createElement(dh,{direction:"horizontal",size:4}),ke.createElement(tr,{width:16,height:16,variant:"rectangular"}))),ke.createElement("div",{className:Ro()},ke.createElement(Hi,{className:qg(),variant:"label",size:"large",color:"neutral700"},ke.createElement(tr,{width:60,height:10,variant:"rounded"})),ke.createElement(Hi,{variant:"label",size:"small",color:"neutral700"},ke.createElement(tr,{width:60,height:10,variant:"rounded"})))),ke.createElement(Kl,null)),!o&&ke.createElement(Qg,null,ke.createElement(eE,{title:qi.t("Not found"),description:qi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(mh,"SwapDetailsPlaceholder");function fh(){let{manager:t,state:e}=nE(),o=!e.loadedFromPersistor,n=pt(t),{requestId:r}=iE(),a=je(),{fetchStatus:s}=y();if(!r)return jl.createElement(rE,{containerStyles:{margin:"20px"},type:"error",title:tE.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",c=r?n.find(({swap:h})=>h.requestId===r):void 0,u=i(()=>{if(c?.id){let h=t?.get(c.id);h&&oE(h)}},"onCancel"),p=i(async()=>{if(c?.id)try{t?.deleteQueue(c.id),a()}catch(h){console.log(h)}},"onDelete"),d=c?.swap;return!d||l?jl.createElement(mh,{requestId:r,showSkeleton:l}):jl.createElement(Gl,{swap:d,requestId:r,onCancel:u,onDelete:p})}i(fh,"SwapDetailsPage");import{i18n as gh}from"@lingui/core";import{Divider as aE,getCategoriesCount as sE,SelectableCategoryList as lE,styled as yh,Typography as cE,Wallet as pE}from"@rango-dev/ui";import Bt,{useState as hh}from"react";var uE=yh("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),dE=yh(ie,{textAlign:"center"});function Sh(){let{fetchStatus:t}=y(),[e,o]=hh("ALL"),n=y().blockchains(),{config:r}=y(),[a,s]=hh(),l=re.use.isActiveTab(),{list:c}=ft(),u=Uc(c,n),d=sE(u)!==1,h=zc(c,e),f=i(m=>{Nc(c,r.multiWallets)||s(m)},"handleWalletItemClick");return Bt.createElement(oe,{header:{title:gh.t("Connect Wallets")}},Bt.createElement(dE,null,d&&Bt.createElement(Bt.Fragment,null,Bt.createElement(lE,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),Bt.createElement(aE,{size:24})),Bt.createElement(cE,{variant:"title",size:"xmedium",align:"center"},gh.t("Choose a wallet to connect.")),Bt.createElement(uE,null,h.map((m,g)=>{let C=`wallet-${g}-${m.type}`;return Bt.createElement(pE,{key:C,...m,container:W(),onClick:()=>f(m),isLoading:t==="loading",disabled:!l})}),Bt.createElement(co,{wallet:a,onClose:()=>{s(void 0)}}))))}i(Sh,"WalletsPage");function Ch(){return mu(),_a(),mE([{path:$.home,element:_e.createElement(jf,null)},{path:$.routes,element:_e.createElement(Rf,null)},{path:$.fromSwap,children:[{index:!0,element:_e.createElement(Nl,{type:"source"})},{path:$.blockchains,element:_e.createElement(Ni,{type:"source"})}]},{path:$.toSwap,children:[{index:!0,element:_e.createElement(Nl,{type:"destination"})},{path:$.blockchains,element:_e.createElement(Ni,{type:"destination"})}]},{path:$.settings,children:[{index:!0,element:_e.createElement(Ig,null)},{path:$.languages,element:_e.createElement(Yf,null)},{path:$.exchanges,element:_e.createElement(Tl,{sourceType:"Exchanges"})},{path:$.bridges,element:_e.createElement(Tl,{sourceType:"Bridges"})},{path:$.customTokens,children:[{index:!0,element:_e.createElement(nf,null)},{path:$.addCustomTokens,children:[{index:!0,element:_e.createElement(ju,null)},{path:$.blockchains,element:_e.createElement(Ni,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:$.swaps,children:[{index:!0,element:_e.createElement(bf,null)},{path:$.swapDetails,element:_e.createElement(fh,null)}]},{path:$.wallets,element:_e.createElement(Sh,null)},{path:$.confirmSwap,element:_e.createElement(qm,null)}])}i(Ch,"AppRoutes");import{useQueueManager as vE}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as wE}from"@rango-dev/wallets-shared";import{isEvmBlockchain as bE}from"rango-sdk";import{useContext as xE,useEffect as Eh,useState as Ih}from"react";import{globalCss as fE}from"@rango-dev/ui";var kh=i(()=>fE({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function Th(){let{setWatermark:t,setShowProfileBanner:e}=re();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Lt("BASE_URL")}/meta/dapp/config?apiKey=${Lt("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(Th,"useFetchApiConfig");import{useWallets as gE}from"@rango-dev/wallets-react";import{useEffect as hE,useRef as yE}from"react";function vh(){let{connect:t,state:e}=gE(),o=yE({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);hE(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(vh,"useForceAutoConnect");import{isApprovalTX as SE,RouteEventType as wh,StepEventType as bh,StepExecutionEventStatus as CE,WidgetEvents as Gi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as xh}from"react";function Xl(){let t=be.use.setNotification(),{connectedWallets:e,fetchBalances:o}=y();xh(()=>{let n=i(r=>{let{event:a,step:s,route:l}=r;if(a.type===bh.TX_EXECUTION&&a.status===CE.TX_SENT&&!SE(s)||a.type===bh.SUCCEEDED){let u=e.find(d=>d.chain===s?.fromBlockchain),p=s?.fromBlockchain!==s?.toBlockchain&&e.find(d=>d.chain===s?.toBlockchain);u&&o([u]),p&&o([p])}t(a,l)},"handleStepEvent");return he.on(Gi.StepEvent,n),()=>he.off(Gi.StepEvent,n)},[he,e]),xh(()=>{let n=i(r=>{let{event:a,route:s}=r;(a.type===wh.FAILED||a.type===wh.SUCCEEDED)&&t(a,s)},"handleRouteEvent");return he.on(Gi.RouteEvent,n),()=>he.off(Gi.RouteEvent,n)},[he])}i(Xl,"useSubscribeToWidgetEvents");import{useManager as kE}from"@rango-dev/queue-manager-react";import{useEffect as TE}from"react";function Yl(){let{isSynced:t,syncNotifications:e}=be(),{manager:o,state:n}=kE();TE(()=>{be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(pt(o))},[be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Yl,"useSyncNotifications");function Zl(){vh(),kh(),Xl(),Yl();let t=y().blockchains(),{canSwitchNetworkTo:e}=jr(),[o,n]=Ih(""),[r,a]=Ih(),s=xE(xr),l=t.filter(bE),{fetchApiConfig:c}=Th();Eh(()=>()=>du(),[]),vE({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Eh(()=>(io.init(),be.persist.hasHydrated()||be.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===wE(o)?.[0]&&n("")}),c().catch(console.log),io.destroy),[])}i(Zl,"useBootstrap");import{styled as EE}from"@rango-dev/ui";var Ah=EE("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Vi(){Zl();let{config:t}=y(),{activeTheme:e}=Uo(t?.theme||{}),{activeLanguage:o}=Rt();return Jl.createElement(IE,{language:o},Jl.createElement(Ah,{id:"swap-container",className:e()},Jl.createElement(Ch,null)))}i(Vi,"Main");import{setSolanaSignerConfig as KE}from"@rango-dev/signer-solana";import ec,{useEffect as Ph,useMemo as jE}from"react";import{useState as AE}from"react";var NE=i(()=>{let[t,e]=AE(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=Ac(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Nh=NE;import{checkWaitingForNetworkChange as WE,makeQueueDefinition as BE}from"@rango-dev/queue-manager-rango-preset";import{Provider as ME}from"@rango-dev/queue-manager-react";import{useWallets as LE}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as PE}from"@rango-dev/wallets-shared";import{isEvmBlockchain as _E}from"rango-types";import DE,{useMemo as $E}from"react";function FE(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=LE(),l=$E(()=>BE({API_KEY:t.apiKey||Lt("API_KEY"),BASE_URL:Lt("BASE_URL"),emitter:{emit:he.emit}}),[t.apiKey]),{blockchains:c,connectedWallets:u}=y(),p=c(),d={blockchains:u.map(v=>({accounts:[v],name:v.chain}))},h=i(async(v,w)=>a(v,w.network)?await r(v,[w]):void 0,"switchNetwork"),f=i(v=>!!s(v).mobileWallet,"isMobileWallet"),m=p.filter(v=>v.enabled).reduce((v,w)=>(v[w.name]=w,v),{}),g=p.filter(_E),C=i(v=>{let{supportedChains:w}=s(v);return dr(w)},"getSupportedChainNames"),S=e(),k={meta:{blockchains:m,evmBasedChains:g,evmNetworkChainInfo:PE(g),getSupportedChainNames:C},getSigners:o,wallets:d,providers:S,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:f},T=re.use.isActiveTab();return DE.createElement(ME,{queuesDefs:[l],context:k,onPersistedDataLoaded:v=>{WE(v)},isPaused:!T},t.children)}i(FE,"QueueManager");var Wh=FE;import{useManager as qE}from"@rango-dev/queue-manager-react";import HE,{createContext as GE,useContext as VE}from"react";function Bh(){let{findToken:t}=y(),e=y().blockchains(),o=y().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=O();return i(u=>{let{fromBlockchain:p,fromToken:d,toBlockchain:h,toToken:f,requestAmount:m}=u,g={blockchains:e,tokens:o};if(p!==void 0){let C=e.find(S=>S.name===p)??null;n(C)}if(d!==void 0){let C=d?t(d)??null:null;r({meta:g,token:C})}if(h!==void 0){let C=e.find(S=>S.name===h)??null;a(C)}if(f!==void 0){let C=f?t(f)??null:null;s({meta:g,token:C})}m!==void 0&&l(m)},"updateQuoteInputs")}i(Bh,"useUpdateQuoteInputs");import{cancelSwap as OE,getCurrentNamespaceOfOrNull as UE,getCurrentStep as zE,getRelatedWalletOrNull as QE}from"@rango-dev/queue-manager-rango-preset";var Ki=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return pt(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=Nr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&OE(o)}getCurrentStepInfo(e){let o=zE(e);return{step:o,wallet:o?QE(e,o):null,network:o?UE(e,o)?.network:null}}};var Mh=GE(void 0);function Rl(t){let{manager:e}=qE(),o=re.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:l}=y(),c=new Ki(e,{retrySwap:n,findToken:r}),{fetchingWallets:u}=y(),p=Pc(a()),d=y().blockchains(),h=y().tokens(),f=y().swappers(),m=y().fetchStatus,g=Rt().resetLanguage,C=be().getNotifications(),S=be().clearNotifications,k=Bh(),{fromBlockchain:T,toBlockchain:v,fromToken:w,toToken:A,inputAmount:L}=O(),b={isActiveTab:o,setCurrentTabAsActive:io.forceClaim,history:c,wallets:{isLoading:u,details:s(),totalBalance:p,refetch:async E=>l(E)},meta:{blockchains:d,tokens:h,swappers:f,loadingStatus:m,findToken:r},resetLanguage:g,notifications:{list:C,clearAll:S},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:w?{symbol:w.symbol,blockchain:w.blockchain,address:w.address}:null,toBlockchain:v?.name??null,toToken:A?{symbol:A.symbol,blockchain:A.blockchain,address:A.address}:null,requestAmount:L},updateQuoteInputs:k}};return HE.createElement(Mh.Provider,{value:b},t.children)}i(Rl,"WidgetInfo");function Lh(){let t=VE(Mh);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Lh,"useWidget");function ji(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Nh();return Ph(()=>{n&&r(n)},[n]),jE(()=>{Qc({API_KEY:o?.apiKey||ar,BASE_URL:o?.apiUrl||yc})},[o.apiKey,o.apiUrl]),Ph(()=>{t.config?.signers?.customSolanaRPC&&KE("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),ec.createElement(Er,{config:o,onUpdateState:e},ec.createElement(Wh,{apiKey:o.apiKey},ec.createElement(Rl,null,t.children)))}i(ji,"WidgetProvider");function _h(t){let e=t.config?.externalWallets;return Xi.createElement(Pp,null,e?Xi.createElement(Vi,null):Xi.createElement(ji,{config:t.config??ir},Xi.createElement(Vi,null)))}i(_h,"Widget");function Dh(){let{on:t,off:e}=he;return{on:t,off:e}}i(Dh,"useWidgetEvents");var k3={DerivationPath:fn,Namespaces:mn,isOnDerivationPath:hn,isOnNamespace:gn};export{Vj as EventSeverity,Wo as MainEvents,o3 as Networks,i3 as PendingSwapNetworkStatus,pa as QuoteEventTypes,Kj as RouteEventType,Ri as SUPPORTED_FONTS,k3 as StatefulConnect,jj as StepEventType,Xj as StepExecutionBlockedEventStatus,Yj as StepExecutionEventStatus,De as UI_ID,da as UiEventTypes,ua as WalletEventTypes,e3 as WalletEvents,n3 as WalletTypes,_h as Widget,Wo as WidgetEvents,ji as WidgetProvider,Er as WidgetWallets,Ka as customizedThemeTokens,Jj as readAccountAddress,Gt as useStatefulConnect,ft as useWalletList,jr as useWallets,Lh as useWidget,Dh as useWidgetEvents,Uy as widgetEventEmitter};
1
+ var Vh=Object.defineProperty;var i=(t,e)=>Vh(t,"name",{value:e,configurable:!0});import{EventSeverity as v3,RouteEventType as w3,StepEventType as b3,StepExecutionBlockedEventStatus as x3,StepExecutionEventStatus as E3}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as A3}from"@rango-dev/wallets-core/legacy";import{useWallets as Yr,Events as W3}from"@rango-dev/wallets-react";import{Networks as L3,WalletTypes as M3}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as _3}from"rango-types";import{Divider as zS}from"@rango-dev/ui";import co,{useEffect as QS,useRef as HS,useState as Mp}from"react";import{WalletState as Kh}from"@rango-dev/ui";import{useWallets as jh}from"@rango-dev/wallets-react";import{useReducer as Xh}from"react";function ic(t){return!!t.derivationPath}i(ic,"isStateOnDerivationPathStep");function ac(t){return!!t.namespace}i(ac,"isStateOnNamespace");var ar={status:"init",namespace:null,derivationPath:null};function sc(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"reset":return ar;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:ar;default:throw new Error("Action hasn't been defined.")}}i(sc,"reducer");function Gt(){let{state:t,disconnect:e,connect:o}=jh(),[n,r]=Xh(sc,ar),a=i(async(u,d,h)=>{r({type:"reset"});try{let f=d?.map(g=>({...g,network:void 0}));return await o(u,f),{status:"connected"}}catch(f){let g=f?.message?`Error: ${f.message}`:"An unknown error happened during connecting wallet.";throw new Error(g,{cause:f})}},"runConnect"),s=i(async(u,d)=>{if(u.state===Kh.DISCONNECTED){if(!!u.isHub&&u.properties?.find(k=>k.name==="detached")&&u.state!=="connected")return r({type:"needsNamespace",payload:{targetWallet:u}}),{status:"namespace"};if(!u.needsNamespace)return await a(u.type,void 0,d);let g=u.needsNamespace.data.length>1,m=u.needsDerivationPath;if(g)return r({type:"needsNamespace",payload:{targetWallet:u}}),{status:"namespace"};if(m){let C=u.needsNamespace.data[0];return r({type:"needsDerivationPath",payload:{providerType:u.type,providerImage:u.image,namespace:C.value}}),{status:"derivation-path"}}return await a(u.type,u.needsNamespace?.data.map(C=>({namespace:C.value})),d)}return d?.disconnectIfConnected?(await p(u.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),l=i(async(u,d)=>{let h=u.needsNamespace?.selection==="single",f=u.needsDerivationPath,g=d[0];if(!g)throw new Error("To confirm a namespace, you should select at least one namespace.");if(h&&f)return r({type:"needsDerivationPath",payload:{providerType:u.type,providerImage:u.image,namespace:g}}),{status:"derivation-path"};if(!ac(n))throw new Error("Something went wrong on handling namespace. Please retry.");let m=n.namespace.targetWallet.type,C=d.map(S=>({namespace:S}));return await a(m,C)},"handleNamespace"),c=i(async u=>{if(!u)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!ic(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let d=n.derivationPath.providerType,f=[{namespace:n.derivationPath.namespace,derivationPath:u}];return await a(d,f)},"handleDerivationPath"),p=i(async u=>{let d=t(u);return d.connected||d.connecting?(await e(u),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:p,handleNamespace:l,handleDerivationPath:c,getState:()=>n,resetState:u=>{r(u==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Gt,"useStatefulConnect");import{WalletState as ya}from"@rango-dev/ui";import{useWallets as iS}from"@rango-dev/wallets-react";import{detectMobileScreens as aS,KEPLR_COMPATIBLE_WALLETS as sS,WalletTypes as gn}from"@rango-dev/wallets-shared";import{useCallback as lS,useEffect as cS}from"react";import eS,{createContext as tS,useContext as oS,useEffect as nS,useRef as rS}from"react";import{create as Jy}from"zustand";import{persist as Ry}from"zustand/middleware";import{allProviders as Yh}from"@rango-dev/provider-all";var Ji=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()}},Eo=new Ji;import{defineVersions as cc,pickVersion as pc,Provider as Ri}from"@rango-dev/wallets-core";function uc({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=dc(a);return s instanceof Ri?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 Ri?o.push(cc().version("1.0.0",n).build()):o.push(cc().version("0.0.0",n).build())}),o}return t}i(uc,"matchAndGenerateProviders");function dc(t){try{return pc(t,"1.0.0")[1]}catch{return pc(t,"0.0.0")[1]}}i(dc,"pickProviderVersionWithFallbackToLegacy");function mc(t){return t.map(o=>dc(o)).map(o=>o instanceof Ri?o.id:o.config.type)}i(mc,"configWalletsToWalletName");function sr(t,e){return e.find(o=>o.name===t)?.displayName}i(sr,"getBlockchainDisplayNameFor");function st(t,e){return e.find(o=>o.name===t)?.shortName}i(st,"getBlockchainShortNameFor");function fc(t,e){return e.find(o=>o.name===t)?.logo}i(fc,"getBlockchainImage");function rn(t,e){return e.find(o=>o.id===t)?.title}i(rn,"getSwapperDisplayName");function an(t,e){return e.find(o=>o.name===t)??null}i(an,"findBlockchain");function ea(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(ea,"isTokenNative");function lt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(lt,"createTokenHash");function Io(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Io,"isValidTokenAddress");function sn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(c=>{typeof c!="string"&&(c=lt(c));let p=o.tokensMapByTokenHash.get(c);p&&(n[c]=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 l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(c=>{l.has(c)||a(o.tokensMapByBlockchainName[c])})}return s.forEach(l=>{let c=r[l];if(!c&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}c&&(c.isExcluded?(a(o.tokensMapByBlockchainName[l]),c.tokens.forEach(p=>{let u=lt(p);delete n[u]})):a(c.tokens))}),Object.values(n)}i(sn,"matchTokensFromConfigWithMeta");function lr(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(lr,"getSupportedBlockchainsFromConfig");function hc(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(hc,"makeProvidersOptionsFromConfig");var cr={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"}},Zh={clientUrl:void 0},Jh={liquiditySources:void 0};function gc(t){let e=hc(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 Yh(o).map(a=>a())}i(gc,"generateProviders");var yc=i((t,e,o)=>{let n=gc({...cr,...t});return{config:{...cr,...t},iframe:Zh,campaignMode:Jh,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:l}=o(),c=sn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}}),p=sn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}});Eo.set("supportedSourceTokens",c),Eo.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=gc(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=hc(a);return uc({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Sc}from"rango-types";var Cc=[Sc.EVM,Sc.SOLANA];import{RangoClient as my}from"rango-sdk";import{UI_ID as Rh}from"@rango-dev/ui";var pr="c6381a79-2817-4602-83bf-6a641a409e32",kc="https://api.rango.exchange",Tc="https://explorer.rango.exchange",De={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Rh};import{BlockchainCategories as ay,WalletState as bt}from"@rango-dev/ui";import{legacyReadAccountAddress as sy}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as ly,getCosmosExperimentalChainInfo as cy,isEvmAddress as py,KEPLR_COMPATIBLE_WALLETS as dA,Networks as _c}from"@rango-dev/wallets-shared";import No from"bignumber.js";import{isCosmosBlockchain as uy}from"rango-types";import ey from"bignumber.js";var ce=new ey(0);import{WalletTypes as ty}from"@rango-dev/wallets-shared";var no="~",vc=[ty.LEAP];import{BlockchainCategories as oa,WalletState as iy}from"@rango-dev/ui";import{TransactionType as ur}from"rango-sdk";var wc="Roboto",ta=[{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 Ao(t){return Array.from(new Set(t))}i(Ao,"removeDuplicateFrom");function Nc(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Nc,"debounce");function Je(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Je,"containsText");function Ec(t,e){return t.toLowerCase()===e.toLowerCase()}i(Ec,"exactText");function Ic(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Ic,"startWithText");var I=i(()=>document.getElementById(De.SWAP_BOX_ID),"getContainer"),ro=i(()=>document.getElementById(De.EXPANDED_BOX_ID),"getExpanded");function Ac(t,e,o){let n=!!e&&Ec(e,t),r=!!o&&Ec(o,t);return n!==r?n?-1:1:0}i(Ac,"compareExactMatchText");function na(t,e,o){let n=!!e&&Je(e,t),r=!!o&&Je(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(na,"compareContainsText");function ra(t,e,o){let n=!!e&&Ic(e,t),r=!!o&&Ic(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ra,"compareStartWithText");function Wc(t,e,o){if(!o)return 0;let n=Ac(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Ac(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ra(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=na(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ra(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=na(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ra(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=na(o,t.address,e.address);if(r!==0)return r}return 0}i(Wc,"compareWithSearchFor");var dr=i((t,e)=>{switch(e){case oa.ALL:return!0;case oa.UTXO:return t===ur.TRANSFER;case oa.OTHER:return t!==ur.TRANSFER&&t!==ur.COSMOS&&t!==ur.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Bc=i(t=>ta.find(o=>o.value===t)?.url,"getFontUrlByName");function Lc(t,e){let o=!!t.find(n=>n.state===iy.CONNECTED);return e===!1&&o}i(Lc,"isSingleWalletActive");function Mc(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(Mc,"memoizedResult");import{BigNumber as Pc}from"bignumber.js";var ln=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),B=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Pc(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Pc(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 mr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var wt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),cn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function pn(t){switch(!0){case t.connected:return bt.CONNECTED;case t.connecting:return bt.CONNECTING;case!t.installed:return bt.NOT_INSTALLED;default:return bt.DISCONNECTED}}i(pn,"mapStatusToWalletState");function Dc(t,e,o,n){return o.filter(r=>!vc.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:c}=t(r);return s&&(!l||!!n&&c!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:c,needsNamespace:p,supportedChains:u,needsDerivationPath:d,properties:h,isHub:f}=e(r),g=Ao(u.map(C=>C.type)),m=pn(t(r));return{title:a,image:s,link:ly(l),state:m,type:r,showOnMobile:c,needsNamespace:p,blockchainTypes:g,needsDerivationPath:d,properties:h,isHub:f}})}i(Dc,"mapWalletTypesToWalletInfo");function un(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(un,"walletAndSupportedChainsNames");function aa(t,e,o,n,r){let a=[];function s(c,p){if(!!!a.find(d=>d.chain===c)){let d={address:p,chain:c,walletType:t};a.push(d)}}i(s,"addAccount");let l=n||[];return e.forEach(c=>{let{address:p,network:u}=sy(c),d=l.length>0,h=l.includes(u),f=u===_c.Unknown;if(d&&!h&&!f)return;let m=u===_c.Unknown&&py(p);if(f&&!m)return;o.includes(u)||m?r?s(u,p.toLowerCase()):l.filter(k=>o.includes(k)).forEach(k=>{s(k,p.toLowerCase())}):s(u,p)}),a}i(aa,"prepareAccountsForWalletStore");function io(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:c}=r;c.forEach((p,u)=>{let d=p.from.blockchain,h=p.to.blockchain,f=a===o.swaps.length-1,g=u===c.length-1;(!f&&!g||f&&l!==d||e==="all")&&n.add(d),e==="all"&&n.add(h)})}e==="all"&&n.add(l)}),Array.from(n)}i(io,"getQuoteWallets");function dn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(dn,"isAccountAndWalletMatched");var $c=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ia(n.usdValue,n.decimals):ce.toFixed();return o.plus(r)},new No(ce));return dy(e.toString())},"calculateWalletUsdValue");function dy(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(dy,"numberWithThousandSeparator");var hr=i((t,e)=>{let o=cy(Object.entries(t).map(([,n])=>n).filter(uy));return o&&o[e]?.experimental},"isExperimentalChain");function ia(t,e){return new No(t).shiftedBy(-e).toFixed()}i(ia,"representAmountInNumber");function yr(t){if(!t)return null;let e=ia(t.amount,t.decimals),o=t.usdValue?ia(t.usdValue,t.decimals):null,n=B(e,8,8),r=o?B(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(yr,"formatBalance");function Fc(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new No(t.usdValue).shiftedBy(-t.decimals):ce,n=e&&e.usdValue?new No(e.usdValue).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new No(t.amount).shiftedBy(-t.decimals):ce,n=e&&e.amount?new No(e.amount).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Fc,"compareTokenBalance");function Lt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Lt,"areTokensEqual");function Oc(t){return t.sort((e,o)=>+(o.state===bt.CONNECTED)-+(e.state===bt.CONNECTED)||+(o.state===bt.DISCONNECTED||o.state===bt.CONNECTING)-+(e.state===bt.DISCONNECTED||e.state===bt.CONNECTING))}i(Oc,"sortWalletsBasedOnConnectionState");function Sr(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(Sr,"getConciseAddress");function Uc({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Uc,"getAddress");var zc=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Qc(t){return t.map(e=>e.state).join("-")}i(Qc,"hashWalletsState");function Hc(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(Hc,"filterBlockchainsByWalletTypes");function qc(t,e){return e===ay.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(dr(n,e))return!0;return!1})}i(qc,"filterWalletsByCategory");var sa={API_KEY:pr};function Mt(t){return sa[t]||""}i(Mt,"getConfig");function Gc(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),sa=e,sa}i(Gc,"initConfig");var Vc=20,Kc=25,la="theme-widget",ca=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Lt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Lt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),pa=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),jc=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Cr,xt=i(()=>Cr||(Cr=new my(Mt("API_KEY"),Mt("BASE_URL")),Cr),"httpService");function kr(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Ao(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(c=>c===s.swapperGroup)),l&&s.types.map(c=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:c,selected:!e.includes(s.swapperGroup)})})}}),n}i(kr,"getUniqueSwappersGroups");function Xc(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Xc,"sortLiquiditySourcesByGroupTitle");function Ve(t,e){return e?.[t]==="hidden"}i(Ve,"isFeatureHidden");function Wo(t,e){return e?.[t]==="enabled"}i(Wo,"isRoutingEnabled");var Yc=i((t,e,o)=>Ve("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");var Zc=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 c=lr({config:a}),p=r;return c.length>0&&(p=p.filter(u=>c.includes(u.name))),p.filter(u=>Cc.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(c=>!(s.length>0&&!s.includes(c.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),l=Array.from(n.values()),c=e()._blockchainsMapByName;if(!o||!o.type)return l;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",d=Eo.get(u);d?.length||(d=sn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Eo.set(u,d)),d=Yc(d,s,a.features);let h=e().blockchains({type:o.type});return d.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!h.some(m=>m.name===g.blockchain)?!1:o.searchFor?!!(Je(g.symbol,o.searchFor)||Je(g.address||"",o.searchFor)||Je(g.name||"",o.searchFor)):!0).sort((g,m)=>{let C=e().isTokenPinned(g,o.type),S=e().isTokenPinned(m,o.type);if(C!==S)return C?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(g),D=o.getBalanceFor(m),w=Fc(A,D);if(w!==0)return w}let k=c.get(g.blockchain),T=c.get(m.blockchain),v=ea(g,k),b=ea(m,T);if(v!==b)return v?-1:1;if(g.isPopular!==m.isPopular)return g.isPopular?-1:1;if(o.searchFor){let A=Wc(g,m,o.searchFor);if(A)return A}return g.isSecondaryCoin!==m.isSecondaryCoin?g.isSecondaryCoin?1:-1:k&&T?k.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=lt(o),s=n.get(a);return s||(s=r.find(l=>lt(l)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Lt(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(Xc)},fetch:async()=>{try{let{routing:o}=e().config,n=Wo("enableCentralizedSwappers",o),r=await xt().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,l={},c=[],p=r.popularTokens,u=r.swappers.filter(f=>f.enabled),d=new Set;r.tokens.forEach(f=>{d.add(f.blockchain),c.push(f)}),r.blockchains.sort((f,g)=>f.sort-g.sort).forEach(f=>{f.enabled&&d.has(f.name)&&a.set(f.name,f)}),c.forEach(f=>{let g=lt(f);l[f.blockchain]||(l[f.blockchain]=[]),s.set(g,f),l[f.blockchain].push(g)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as fy,Catalonia as gy,Chinese as Jc,Denmark as hy,English as yy,Finland as Sy,French as Cy,German as ky,Greece as Ty,Hungary as vy,India as wy,Indonesian as by,Italian as xy,Japanese as Ey,Korea as Iy,Lithuania as Ay,Malay as Ny,Netherlands as Wy,Pakistan as By,Philippines as Ly,Poland as My,Portuguese as Py,Russian as _y,SaudiArabia as Dy,Serbia as $y,Slovakia as Fy,SouthAfrica as Oy,Spanish as Uy,Swahili as zy,Swedish as Qy,Thai as Hy,Turkish as qy,Ukrainian as Gy,Vietnamese as Vy}from"@rango-dev/ui";var Rc=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:Oy},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:Dy},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:fy},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:gy},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Jc},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Jc},{title:"Danish",label:"Dansk",local:"da",SVGFlag:hy},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Wy},{title:"English",label:"English",local:"en",SVGFlag:yy},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:Ly},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Sy},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Cy},{title:"German",label:"Deutsch",local:"de",SVGFlag:ky},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:Ty},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:wy},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:vy},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:by},{title:"Italian",label:"Italiana",local:"it",SVGFlag:xy},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Ey},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:Iy},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:Ay},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:Ny},{title:"Polish",label:"Polski",local:"pl",SVGFlag:My},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Py},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:_y},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:$y},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:Fy},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Uy},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:zy},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:Qy},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:Hy},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:qy},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Gy},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:By},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:Vy}],Bo="en";var ep=[.5,1,3],tp=1,op=5,np=100,rp=0;var ip=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:tp,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let c=s===o,p=l<=9;return c&&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=Ao(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=Ve("theme",n),s=Ve("language",n),l=Ve("liquiditySource",n),c=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...c&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Bo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||Bo}})},setCustomToken:o=>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=lr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import ha from"bignumber.js";import Ky from"mitt";var ye=Ky(),jy={on:ye.on,off:ye.off};import{WidgetEvents as ap}from"@rango-dev/queue-manager-rango-preset";var da=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(da||{}),ma=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(ma||{}),fa=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(fa||{}),Lo=(a=>(a[a.RouteEvent=ap.RouteEvent]="RouteEvent",a[a.StepEvent=ap.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Lo||{});var sp=i(t=>(e,o,n)=>t(i((...a)=>{e(s=>({...s,lastUpdatedAt:+new Date})),e(...a)},"modifedSet"),o,n),"keepLastUpdated");import Xy from"bignumber.js";function mn(t){return`${t.blockchain}${no}${t.address}${no}${t.symbol}`}i(mn,"createAssetKey");function ga(t,e){return`${mn(e)}${no}${t}`}i(ga,"createBalanceKey");function fn(t){let[e,o,n]=t.split(no);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(fn,"extractAssetFromBalanceKey");function lp(t,e){let o={};return t.balances?.forEach(n=>{let r=ga(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,l=e().findToken(n.asset)?.usdPrice,c=l?new Xy(l??ce).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:c};o[r]=p}),o}i(lp,"createBalanceStateForNewAccount");function cp(t,e){for(let o in e){let n=fn(o),r=mn(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(cp,"updateAggregatedBalanceStateForNewAccount");function pp(t,e){let o=fn(e),n=mn(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(pp,"removeBalanceFromAggregatedBalance");function Yy(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(Yy,"matchWalletDetailsWithConnectedWallet");var Zy=Mc(),up=sp((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>dn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>dn(s,a))?{...a,loading:!1,error:!1,explorerUrl:Yy(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>dn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n)=>{let r=e().connectedWallets,a=o.filter(s=>!r.some(l=>dn(s,l)));if(a.length>0){let s=a.map(l=>{let c=!r.some(p=>p.chain===l.chain&&p.selected&&p.walletType!==l.walletType);return{address:l.address,chain:l.chain,explorerUrl:null,walletType:l.walletType,selected:c,namespace:n,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(p=>!s.some(u=>u.walletType===p.walletType&&u.chain===p.chain)),...s]}))}},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n)=>{ye.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o,n),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r=e().connectedWallets.filter(p=>p.walletType===o);e().connectedWallets.forEach(p=>{p.walletType!==o&&(r=r.filter(u=>!(u.chain===p.chain&&u.address===p.address)))}),n?.chains&&n.chains.length>0&&(r=r.filter(p=>n.chains?.includes(p.chain))),n?.namespaces&&n.namespaces.length>0&&(r=r.filter(p=>p.namespace?n.namespaces?.includes(p.namespace):!1));let a={},s=e()._aggregatedBalances,l=e()._balances;Object.keys(l).forEach(p=>{let u=fn(p);!!r.find(h=>ga(h.address,{address:u.address,blockchain:h.chain,symbol:u.symbol})===p)?s=pp(s,p):a[p]=l[p]}),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(ye.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(l=>a.includes(l.chain)?(a=a.filter(c=>c!==l.chain),{...l,selected:!0}):l);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(c=>({address:c.address,blockchain:c.chain})),s;try{s=await xt().getWalletsDetails(a)}catch(c){throw e().setConnectedWalletHasError(o),new Error("Request for fetching balances failed.",{cause:c})}let l=s.wallets;if(l){let{retryOnFailedBalances:c=!0}=n||{};if(c){let d=l.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.address}));d.length>0&&e().fetchBalances(d,{retryOnFailedBalances:!1})}let p={},u=e()._aggregatedBalances;l.forEach(d=>{if(d.failed||(e().removeBalancesForWallet(r,{chains:[d.blockChain]}),!e().connectedWallets.find(f=>f.walletType===r&&f.address===d.address&&f.chain===d.blockChain)))return;let h=lp(d,e);u=cp(u,h),p={...p,...h}}),t(d=>({_balances:{...d._balances,...p},_aggregatedBalances:u})),e().setConnectedWalletRetrievedData(o,l)}else throw e().setConnectedWalletHasError(o),new 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=mn(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let c=a[0];return n[c]}let l=n[a[0]];return a.forEach(c=>{let p=n[c],u=new ha(p.amount),d=new ha(l.amount);u.isGreaterThan(d)&&(l=p)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,l)=>{let c=n[l],[,,,p]=l.split(no);return p===o&&(s[l]=c),s},{})},getConnectedWalletsDetails:()=>Zy(()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,l)=>{let c=r[l],p=fn(l);if(p.blockchain===n.chain){let u=e().findToken(p),d=c.amount?new ha(c.amount).shiftedBy(-c.decimals):ce;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:c.amount,decimal:c.decimals,amount:d.toString(),logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function dp(t){return Jy()(Ry((...e)=>({...up(...e),...Zc(...e),...ip(...e),...yc(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})}))}i(dp,"createAppStore");var mp=tS(null);function y(){let t=oS(mp);if(nS(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function fp(t){let e=rS();return e.current||(e.current=dp(t.config)),eS.createElement(mp.Provider,{value:e.current},t.children)}i(fp,"AppStoreProvider");function ft(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=y(),{state:r,getWalletInfo:a}=iS(),s=y().blockchains(),{handleDisconnect:l}=Gt(),c=mc(n()),p=Dc(r,a,c,e);p=aS()?p.filter(m=>m.showOnMobile!==!1&&r(m.type).installed):p;let u=Oc(p),d=i(m=>!o.find(C=>C.walletType===m&&C.chain===e),"isExperimentalChainNotAdded"),h=lS(()=>{let m=p?.filter(C=>C.state===ya.CONNECTING)||[];for(let C of m)l(C.type)},[Qc(p)]);cS(()=>()=>{h()},[]);let f=i(m=>{let C=m.find(k=>k.type===gn.DEFAULT);return!C||C.state===ya.NOT_INSTALLED?!1:m.filter(k=>k.state!=ya.NOT_INSTALLED&&![gn.DEFAULT,gn.WALLET_CONNECT_2,gn.LEDGER].includes(k.type)&&a(k.type).supportedChains.filter(T=>T.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),g=i((m,C,S)=>hr(S,C)&&d(m)&&!sS.includes(m)||m==gn.DEFAULT&&!f(p),"shouldExcludeWallet");return{list:u.filter(m=>!g(m.type,e??"",s)),terminateConnectingWallets:h}}i(ft,"useWalletList");import{Modal as mS}from"@rango-dev/ui";import fS from"react";import{create as dS}from"zustand";var gp="rango-widget";var hn=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(gp),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 uS=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"),Mo=uS;var re=Mo(dS()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!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})}}))),ao=new hn({onInit:()=>re.setState({tabManagerInitiated:!0}),onClaim:()=>re.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>re.setState({isActiveTab:!1})});function Z(t){let{watermark:e}=re();return fS.createElement(mS,{hasWatermark:e==="FULL",...t},t.children)}i(Z,"WatermarkedModal");import{i18n as Sa}from"@lingui/core";import{Button as kS,Checkbox as TS,Divider as vS,Image as xp,ListItemButton as wS,MessageBox as bS,Radio as xS,RadioRoot as ES}from"@rango-dev/ui";import we,{useState as IS}from"react";import{css as gS,darkTheme as yp,IconButton as hS,styled as so}from"@rango-dev/ui";var Et=so(hS,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${yp} &`]:{backgroundColor:"$neutral"}}}),Sp=so("div",{position:"absolute",background:"$secondary500",[`.${yp} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Vt=so("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Cp=so("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"}}}}),kp=so("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Tp=so("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),vp=gS({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Tr=so("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});import{keyframes as yS,styled as vr}from"@rango-dev/ui";var TN=vr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Po=vr("div",{position:"relative"}),SS=yS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),_o=vr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${SS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),wr=vr("div",{"& img":{borderRadius:"50%"}});function wp(t,e){return t.find(o=>o.name===e)?.logo}i(wp,"getBlockchainLogo");import{styled as CS}from"@rango-dev/ui";var bp=CS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});function yn(t){let{targetWallet:e}=t.value,o=e.needsNamespace?.selection==="single",n=e.image,[r,a]=IS([]),s=y().blockchains(),l=i(p=>{a(o?[p]:u=>u.includes(p)?u.filter(d=>d!==p):u.concat(p))},"onSelect"),c=i(p=>o?we.createElement(ES,{value:r?.[0]},p):we.createElement(we.Fragment,null,p),"wrapRadioRoot");return we.createElement(we.Fragment,null,we.createElement(vS,{size:20}),we.createElement(bS,{type:"info",title:Sa.t("Select chain types"),description:Sa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:we.createElement(Po,null,we.createElement(Tr,null,we.createElement(xp,{src:n,size:45})),we.createElement(_o,null))}),we.createElement(bp,null,c(we.createElement(we.Fragment,null,e.needsNamespace?.data.map(p=>we.createElement(wS,{key:p.id,id:p.id,title:p.label,hasDivider:!0,style:{height:60},onClick:()=>l(p.value),start:we.createElement(xp,{src:wp(s,p.id),size:22}),end:o?we.createElement(xS,{value:p.value}):we.createElement(TS,{checked:r.includes(p.value)})}))))),we.createElement(kS,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!r.length,onClick:()=>t.onConfirm(r)},Sa.t("Confirm")))}i(yn,"Namespaces");import{i18n as Do}from"@lingui/core";import{Button as WS,Divider as Ap,Image as BS,MessageBox as LS,Select as MS,TextField as PS}from"@rango-dev/ui";import Oe,{useEffect as _S,useState as Np}from"react";import{namespaces as AS}from"@rango-dev/wallets-shared";var br={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ca(t){let e=t?AS[t].derivationPaths:null;return e?[...e,br]:[]}i(Ca,"getDerivationPaths");import{styled as Ep,Typography as NS}from"@rango-dev/ui";var Ip=Ep("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),ka=Ep(NS,{paddingLeft:"$10"}),Ta={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Wp="0";function Sn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Np(null),[l,c]=Np(Wp),p=a===br.id,u=Ca(o),d=i(({value:f})=>{let g=u?.find(m=>m.id===f);g&&(a===br.id&&Number.isNaN(Number(l))&&c(Wp),s(g.id))},"handleDerivationPathItemClick"),h=i(()=>{let f=u.find(g=>g.id===a);if(f)e(f.generateDerivationPath(l));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return _S(()=>{s(Ca(o)[0]?.id||null)},[o]),Oe.createElement(Oe.Fragment,null,Oe.createElement(Ap,{size:20}),Oe.createElement(LS,{type:"info",title:Do.t("Select Derivation Path"),description:Do.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:Oe.createElement(Po,null,Oe.createElement(wr,null,Oe.createElement(BS,{src:n,size:45})),Oe.createElement(_o,null))}),Oe.createElement(Ip,null,Oe.createElement(ka,{variant:"body",size:"xsmall",color:"$neutral600"},Do.t("Choose Derivation Path Template")),Oe.createElement(MS,{value:a||"",options:u.map(f=>({value:f.id,label:f.label})),variant:"filled",handleItemClick:d,styles:{trigger:Ta}}),Oe.createElement(Ap,{size:20}),Oe.createElement(ka,{variant:"body",size:"xsmall",color:"$neutral600"},p?Do.t("Enter Path"):Do.t("Enter Index")),Oe.createElement(PS,{type:p?"text":"number",variant:"contained",value:l,onChange:f=>c(f.target.value),style:Ta})),Oe.createElement(WS,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!u||!a||!l},Do.t("Confirm")))}i(Sn,"DerivationPath");import{i18n as $o}from"@lingui/core";import{Image as DS,MessageBox as va,WalletState as $S}from"@rango-dev/ui";import{useWallets as FS}from"@rango-dev/wallets-react";import lo from"react";function wa(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=FS();return pn(a(n))===$S.CONNECTED?lo.createElement(va,{type:"success",title:$o.t("Wallet Connected"),description:$o.t("Your wallet is connected, you can use it to swap.")}):o?lo.createElement(va,{type:"error",title:$o.t("Failed to Connect"),description:o||$o.t("Your wallet is not connected. Please try again.")}):lo.createElement(va,{type:"loading",title:$o.t("Connecting to your wallet"),description:$o.t("Click connect in your wallet popup."),icon:lo.createElement(Po,null,lo.createElement(wr,null,lo.createElement(DS,{src:r,size:45})),lo.createElement(_o,null))})}i(wa,"ConnectStatus");import{i18n as ba}from"@lingui/core";import{Button as OS,Divider as Bp,MessageBox as US}from"@rango-dev/ui";import xr from"react";function xa(t){let{displayName:e,onConfirm:o}=t;return xr.createElement(US,{title:ba.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:ba.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},xr.createElement(Bp,{size:18}),xr.createElement(Bp,{size:32}),xr.createElement(OS,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ba.t("Confirm")))}i(xa,"ExperimentalChain");function Lp(t,e){return t().status==="init"&&!!e}i(Lp,"isOnStatus");function Cn(t){return t().status==="namespace"}i(Cn,"isOnNamespace");function kn(t){return t().status==="derivationPath"}i(kn,"isOnDerivationPath");var qS=3e3,GS=300;function po(t){let e=HS(),[o,n]=Mp(!1),[r,a]=Mp(),s=i(k=>{a(k.message)},"catchErrorOnHandle"),{terminateConnectingWallets:l}=ft(),{handleConnect:c,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:h}=Gt(),f=i(k=>{u(t.wallet,k).then(S).catch(s)},"handleConfirmNamespaces"),g=i(k=>{if(!k)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(k).then(S).catch(s)},"handleDerivationPathConfirm"),m=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),S=i((k,T)=>{let v=k.status==="connected",b=["disconnected","disconnected-unhandled"].includes(k.status);v?(t.onConnect?.(),T||(e.current=setTimeout(m,qS))):b&&m()},"afterConnected");return QS(()=>{if(t.wallet){C();let k=!1,T=!0;i(()=>{setTimeout(()=>{T=!1,k||n(!0)},GS)},"beforeConnecting")(),c(t.wallet,{disconnectIfConnected:!0}).then(b=>{["namespace","derivation-path"].includes(b.status)||(k=!0),S(b,T)}).catch(s)}},[t.wallet]),co.createElement(Z,{open:o,onClose:m,onExit:()=>{C(),l(),t.onClose&&t.onClose()},container:I()},Lp(d,t.wallet)&&co.createElement(co.Fragment,null,co.createElement(wa,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),co.createElement(zS,{direction:"vertical",size:32})),Cn(d)&&co.createElement(yn,{onConfirm:f,value:d().namespace}),kn(d)&&co.createElement(Sn,{onConfirm:g,value:d().derivationPath}))}i(po,"StatefulConnectModal");import{Provider as YS}from"@rango-dev/wallets-react";import Er,{createContext as ZS,useEffect as Fp,useMemo as JS,useRef as Op}from"react";import{useEffect as VS}from"react";function Pp(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Pp,"hashProviders");function Ea(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=y(),a=n();return VS(()=>{o(),r()},[Pp(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(Ea,"useWalletProviders");import{legacyFormatAddressWithNetwork as KS,legacyReadAccountAddress as _p}from"@rango-dev/wallets-core/legacy";import{Events as uo}from"@rango-dev/wallets-react";import{isEvmBlockchain as jS}from"rango-sdk";function Dp(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=y(),{onConnectWalletHandler:l,onDisconnectWalletHandler:c}=t,p=s().filter(jS).map(m=>m.name),u=i((m,C)=>{let[S,,k,,T]=m,v=aa(S,k,p,C.supportedChainNames,T.isContractWallet);v.length&&e(v,T.namespace)},"onAccountsEvent"),d=i((m,C,S,k,T)=>{if(C===uo.ACCOUNTS){let v=un(T.supportedBlockchains);S&&u([m,C,S,k,T],{supportedChainNames:v})}if(C===uo.CONNECTED){let v=`${m}-${k.network}-${S}`;l.current?l.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}C===uo.PROVIDER_DISCONNECTED&&(o(m),c.current?c.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),C===uo.NAMESPACE_DISCONNECTED&&n(m,S)},"handleUpdatesForHub"),h=i((m,C,S,k,T)=>{if(C===uo.ACCOUNTS){let v=un(T.supportedBlockchains),b=[],A=[];if(S?.forEach(w=>{let{network:x}=_p(w);p.includes(x)?b.push(w):A.push(w)}),r.filter(w=>w.walletType===m).map(w=>KS(w.address,w.chain)).length>0){if(b.length>0){let w=aa(m,b,p,v,T.isContractWallet);a(m,{chains:w.map(x=>x.chain)})}A.length>0&&a(m,{chains:A.map(w=>{let{network:x}=_p(w);return x})})}S?u([m,C,S,k,T],{supportedChainNames:v}):(o(m),c.current?c.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}if(C===uo.ACCOUNTS&&k.connected){let v=`${m}-${k.network}-${S}`;l.current?l.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForLegacy"),f=i((m,C,S,k,T)=>{if(C===uo.NETWORK&&k.network){let v=`${m}-${k.network}`;l.current?l.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((m,C,S,k,T)=>{T.isHub?d(m,C,S,k,T):h(m,C,S,k,T),f(m,C,S,k,T)},"handler")}}i(Dp,"useUpdates");import{LegacyEvents as XS}from"@rango-dev/wallets-core/legacy";function $p(t,e){let[o,n,r,a,s]=e;n!==XS.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i($p,"propagateEvents");var Ir=ZS({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function RS(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=y(),a=y().blockchains(),s=y().config,l={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:c}=Ea(s.wallets,l),p=Op(),u=Op(),{handler:d}=Dp({onConnectWalletHandler:p,onDisconnectWalletHandler:u});Fp(()=>{n().catch(console.log)},[]),Fp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let h=re.use.isActiveTab(),f=JS(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Er.createElement(Ir.Provider,{value:f},Er.createElement(YS,{allBlockChains:a,providers:c,onUpdateState:(g,m,C,S,k)=>{let T=[g,m,C,S,k];d(...T),t.onUpdateState&&$p(t.onUpdateState,T)},autoConnect:!!h,configs:{wallets:s.wallets}},t.children))}i(RS,"Main");function Ar(t){let{config:e,...o}=t;return Er.createElement(fp,{config:e},Er.createElement(RS,{...o,config:e}))}i(Ar,"WidgetWallets");import Zi from"react";import eC,{Fragment as tC}from"react";import{MemoryRouter as oC,useInRouterContext as nC}from"react-router";function Up({children:t}){let o=nC()?tC:oC;return eC.createElement(o,null,t)}i(Up,"AppRouter");import{I18nManager as OE}from"@rango-dev/ui";import tc from"react";import _e from"react";import{useRoutes as xE}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 Oo,useRef as $r}from"react";import Ke from"bignumber.js";import{create as aC}from"zustand";import{subscribeWithSelector as sC}from"zustand/middleware";import{i18n as gt}from"@lingui/core";import{RouteEventType as DB}from"@rango-dev/queue-manager-rango-preset";import Ue from"bignumber.js";import{PendingSwapNetworkStatus as _r}from"rango-types";import{i18n as $e}from"@lingui/core";var R=i(()=>({genericServerError:$e.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:$e.t("Please reset your liquidity sources."),description:$e.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:$e.t("No Routes Found."),description:$e.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:$e.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:$e.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:$e.t("High Price Impact"),title:$e.t("Price impact is too high!"),description:$e.t("The price impact is significantly higher than the allowed amount."),confirmMessage:$e.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:$e.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:$e.t("USD Price Unknown"),title:$e.t("USD Price Unknown, Cannot calculate Price Impact."),description:$e.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:$e.t("Confirm USD Price Unknown")}}),"errorMessages");function zp(t){switch(t.type){case 0:return t.diagnosisMessage??R().noResultError.title;case 1:return R().genericServerError;default:return""}}i(zp,"getQuoteErrorMessage");import{i18n as Nr}from"@lingui/core";var mo=i(()=>({connectWallet:Nr.t("Connect Wallet"),swap:Nr.t("Swap"),swapAnyway:Nr.t("Swap anyway"),ethWarning:Nr.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ia(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(Ia,"getFeeLabel");var Aa=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Qp=100,Hp=30,qp=15,Gp=60;var Vp=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Kp=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as iC}from"@rango-dev/queue-manager-rango-preset";import vB from"bignumber.js";function Xp(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(Xp,"getRequiredBalanceOfWallet");function _t(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(_t,"getPriceImpactLevel");function Br(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=iC(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=an(a?a.toBlockchain:n.fromBlockchain,e),c=an(r.toBlockchain,e),p=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:p,toBlockchain:c,toToken:u,inputAmount:d}}i(Br,"createRetryQuote");function Fo(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=Tn(o),s=ct(o);if(o&&a&&s){let p=Pt(a.toString(),s.toString());if(!!p&&eu(a,p)){let d=Mr(o?.swaps,n),h=_t(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:h}}}if(e&&nu(e,o))return{type:4,usdValueChange:B(ct(o)?.minus(ct(e)??0).toString()??"0",null,2),percentageChange:B(Pt(ct(e)??"1",ct(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let l=Pr(o.swaps),c=r>op;if(ou(t.userSlippage.toString(),l)){if(c&&parseFloat(l??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:tu(o,r),minRequiredSlippage:l};return null}i(Fo,"generateQuoteWarnings");function Yp(t){return![4].includes(t.type)}i(Yp,"isQuoteWarningConfirmationRequired");function Pt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Na(t.toString(),e.toString());return n&&n<0?n:null}i(Pt,"getPriceImpact");var Zp=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"),Lr=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 l=o.requestId.toLowerCase(),c=n.requestId.toLowerCase();return l.localeCompare(c)}),"sortQuotesBy"),Jp=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),Rp=i(t=>{let e=i((o,n)=>{let r=Aa.indexOf(o.value),a=Aa.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function eu(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return Vp.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ue(r)))}i(eu,"hasHighValueLoss");function ru(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(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(ru,"hasLimitError");function iu(t){let e=(t||[]).filter(l=>{let c=l.fromAmountMinValue?new Ue(l.fromAmountMinValue):null,p=l.fromAmountMaxValue?new Ue(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?c?.gte(l.fromAmount)||p?.lte(l.fromAmount):c?.gt(l.fromAmount)||p?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=gt.t({id:"Required: >= {min} {symbol}",values:{min:B(o,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=gt.t({id:"Required: > {min} {symbol}",values:{min:B(o,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=gt.t({id:"Required: <= {max} {symbol}",values:{max:B(n,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=gt.t({id:"Required: < {max} {symbol}",values:{max:B(n,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(iu,"getLimitErrorMessage");function au(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:c}=t;return e!=="success"?{title:mo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:mo().swap,action:"confirm-swap",disabled:!0}:s?{title:mo().swapAnyway,action:"confirm-warning",disabled:!1}:c?{title:mo().ethWarning,action:"confirm-warning",disabled:!1}:{title:mo().swap,action:"confirm-swap",disabled:!1}:{title:mo().connectWallet,action:"connect-wallet",disabled:!1}}i(au,"getSwapButtonState");function Wa(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ce))&&e&&e!=="0"&&n!==0)}i(Wa,"canComputePriceImpact");function Ba(t,e){let o=ce;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ue(r.amount).multipliedBy(a||0))}return o}i(Ba,"getUsdFeeOfStep");function Mr(t,e){return t.reduce((o,n)=>o.plus(Ba(n,e)),ce)}i(Mr,"getTotalFeeInUsd");function La(t){let e=ce;return e=e.plus(new Ue(t.amount).multipliedBy(t.price||0)),e}i(La,"getUsdFee");function su(t){return t.reduce((e,o)=>e.plus(La(o)),ce)}i(su,"getTotalFeesInUsd");function lu(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(lu,"getFeesGroup");function cu(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(cu,"checkSlippageErrors");function tu(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(tu,"checkSlippageWarnings");function Pr(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(Pr,"getMinRequiredSlippage");function ou(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(ou,"hasProperSlippage");function pu(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:c,slippage:p,affiliateRef:u,affiliatePercent:d,affiliateWallets:h,destination:f}=t,g=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),m=[];return r?.forEach(S=>{m.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??void 0,affiliateWallets:h??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:m,selectedWallets:g??{},slippage:p.toString(),...f&&{destination:f},...c&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!c&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(pu,"createQuoteRequestBody");function uu(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(uu,"getWalletsForNewSwap");function Tn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new Ue(e).multipliedBy(o)}i(Tn,"getUsdInputFrom");function ct(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new Ue(e).multipliedBy(o)}i(ct,"getUsdOutputFrom");function Na(t,e){return new Ue(e).div(new Ue(t)).minus(1).multipliedBy(Qp).toNumber()}i(Na,"getPercentageChange");function nu(t,e){let o=Tn(t),n=ct(t),r=ct(e);if(!o||!n||!r)return!1;let a=Na(n.toString(),r.toString());return Kp.some(({threshold:s,minInput:l})=>a<=s&&o.isGreaterThanOrEqualTo(l))}i(nu,"isOutputAmountChangedExcessively");function du(t,e,o){let n=t.validationStatus,r=io({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Xp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,c=B(new Ue(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=B(new Ue(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=gt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=gt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=gt.t(" for input and network fee")),gt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:l,reason:u,currentAmount:c,blockchain:st(s.asset.blockchain,o)}})})}i(du,"generateBalanceWarnings");function vn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==_r.NetworkChanged}i(vn,"isNetworkStatusInWarningState");function mu(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),vn(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case _r.WaitingForConnectingWallet:n=n||gt.t("Waiting for connecting wallet");break;case _r.WaitingForQueue:n=n||gt.t("Waiting for other running tasks to be finished");break;case _r.WaitingForNetworkChange:n=n||gt.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(mu,"getSwapMessages");function fu(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(fu,"getLastConvertedTokenInFailedSwap");function gu(t){return t.status==="failed"}i(gu,"shouldRetrySwap");function hu(t,e,o,n,r,a){if(!n||t)return!0;let s=io({filter:"all",quote:n}),l=io({filter:"required",quote:n}),c=s.every(d=>r.some(h=>h.chain===d)),p=l.every(d=>r.some(h=>h.chain===d)),u=o&&a?Io(a,o):!1;return!e&&!c||e&&!o||e&&!!o&&(!u||!p)}i(hu,"isConfirmSwapDisabled");function yu(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(yu,"isTokensIdentical");var Dr=i((t,e)=>t?.usdPrice?new Ke(e||ce).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Mo(aC()(sC(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Ke(0),outputUsdValue:new Ke(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=ce,a=o.inputUsdValue;return cn(o.inputAmount)?(e&&(n=e?.outputAmount?new Ke(e?.outputAmount):null,a=Tn(e)??ce,r=ct(e)??ce),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Ke(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Ke(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Ke(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:Dr(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 Ke(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:null,outputUsdValue:new Ke(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Dr(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:Dr(n??null,s),outputUsdValue:new Ke(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?Dr(e.toToken,e.outputAmount?.toString()||""):new Ke(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Ke(0),inputUsdValue:new Ke(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Ke(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})})))),Su=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ye.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&&ye.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function Cu(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:c,toBlockchain:p}=O(),u=y().config,d=y().fetchStatus,h=y().blockchains(),f=y().tokens(),{findToken:g}=y(),{setAffiliateRef:m,setAffiliatePercent:C,setAffiliateWallets:S}=y(),k=u?.from?.tokens,T=u?.from?.blockchains,v=u?.to?.tokens,b=u?.to?.blockchains,A=$r(void 0),D=$r(void 0),w=$r(void 0),x=$r(void 0);Oo(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),Oo(()=>{if(d==="success"){r();let E=h.find(W=>W.name===u?.from?.blockchain),N=u?.from?.token,L=N&&g(N);(E||!E&&w.current)&&n(E??null),L?a({token:L,meta:{blockchains:h,tokens:f}}):!L&&A.current&&a({token:null}),w.current=u?.from?.blockchain,A.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),Oo(()=>{ca(s,k)&&a({token:null}),pa(c,T)&&n(null)},[k,T]),Oo(()=>{ca(l,v)&&a({token:null}),pa(p,b)&&o(null)},[v,b]),Oo(()=>{if(d==="success"){r();let E=h.find(W=>W.name===u?.to?.blockchain),N=u?.to?.token,L=N&&g(N);(E||!E&&x.current)&&o(E??null),L?e({token:L,meta:{blockchains:h,tokens:f}}):!L&&D.current&&e({token:null}),x.current=u?.to?.blockchain,D.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,d]),Oo(()=>{m(u?.affiliate?.ref??null),C(u?.affiliate?.percent??null),S(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Cu,"useSyncStoresWithConfig");import{useEffect as _a,useRef as lC}from"react";import{useInRouterContext as cC,useLocation as pC,useSearchParams as uC}from"react-router-dom";function Ma(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Ma,"convertTokenSearchParamToAsset");function Pa(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Pa,"tokenToSearchParam");function $a(){let t=pC(),[e,o]=uC(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:c,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:h}=O(),f=y().fetchStatus,g=y().blockchains(),m=y().tokens(),C=cC(),{updateIframe:S,updateCampaignMode:k}=y(),T=y().isInCampaignMode(),v=lC(),{findToken:b}=y(),A=i(()=>{let w={};for(let[X,se]of e.entries())X.startsWith("utm_")&&(w[X]=se);let x=e.get("fromAmount"),E=e.get("fromBlockchain"),N=e.get("fromToken"),L=e.get("toBlockchain"),W=e.get("toToken"),j=e.get("autoConnect"),te=e.get("clientUrl"),J=e.get("liquiditySources"),M=e.get("blockchain");return{fromAmount:x,fromBlockchain:E,fromToken:N,toBlockchain:L,toToken:W,autoConnect:j,clientUrl:te,liquiditySources:J,utmQueryParams:w,blockchain:M}},"getUrlSearchParams"),D=i(w=>{for(let x in w)w[x]||delete w[x];o(w,{replace:!0})},"updateUrlSearchParams");_a(()=>{let{autoConnect:w,clientUrl:x,utmQueryParams:E,blockchain:N}=A();C&&f==="success"&&D({fromBlockchain:n?.name,fromToken:Pa(a),toBlockchain:r?.name,toToken:Pa(s),fromAmount:l,autoConnect:w??void 0,clientUrl:x??void 0,blockchain:N??void 0,liquiditySources:T?v.current:void 0,...E})},[t.pathname,l,n,a,r,s,T]),_a(()=>{if(!C)return;let w=A();if(!v.current&&w.liquiditySources&&(v.current=w.liquiditySources),w.fromAmount&&h(w.fromAmount),f==="success"){let x=g.find(W=>W.name===w.fromBlockchain),E=w.fromToken&&x?b(Ma(w.fromToken,x)):void 0,N=g.find(W=>W.name===w.toBlockchain),L=w.toToken&&N?b(Ma(w.toToken,N)):void 0;x&&(c(x),E&&u({token:E,meta:{blockchains:g,tokens:m}})),N&&(p(N),L&&d({token:L,meta:{blockchains:g,tokens:m}}))}},[f]),_a(()=>{let{clientUrl:w,liquiditySources:x}=A();S("clientUrl",w||void 0),k("liquiditySources",x?.split(",")??void 0)},[])}i($a,"useSyncUrlAndStore");import{i18n as It}from"@lingui/core";import{Alert as xk,Button as Ru,darkTheme as Ek,Divider as xn,DoneIcon as Ik,MessageBox as Ak,styled as Nk,TextField as Wk,Typography as Bk}from"@rango-dev/ui";import Se,{useEffect as Lk,useState as qr}from"react";import{useNavigate as Mk,useSearchParams as Pk}from"react-router-dom";import{ChevronRightIcon as dC,Divider as bu,Image as mC,Typography as xu}from"@rango-dev/ui";import ht from"react";import{darkTheme as ku,styled as Fa}from"@rango-dev/ui";var Tu=Fa("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${ku} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ku} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),vu=Fa("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),wu=Fa("div",{display:"flex"});function Oa(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return ht.createElement(vu,null,ht.createElement(xu,{size:"large",variant:"label"},n),ht.createElement(bu,{size:10}),ht.createElement(Tu,{onClick:s?void 0:e,disabled:s},ht.createElement(wu,null,r&&ht.createElement(ht.Fragment,null,ht.createElement(mC,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),ht.createElement(bu,{size:4,direction:"horizontal"})),ht.createElement(xu,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),ht.createElement(dC,{size:12,color:"black"})))}i(Oa,"BlockchainSelectorButton");import{i18n as za}from"@lingui/core";import{Button as fC,Divider as wn,ExternalLinkIcon as gC,Image as hC,Typography as zo}from"@rango-dev/ui";import Ne from"react";function Eu(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Eu,"generateExplorerLink");import{darkTheme as Uo,styled as Iu}from"@rango-dev/ui";var Ua=Iu("a",{textDecoration:"none",color:"$colors$neutral700",[`.${Uo} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${Uo} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${Uo} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${Uo} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),Au=Iu("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${Uo} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${Uo} &`]:{color:"$colors$neutral900"}}});function Qa(t){let{open:e,onClose:o,token:n,onSubmitClick:r,blockchain:a}=t,s=Eu(n.address,a);return Ne.createElement(Z,{open:e,dismissible:!0,onClose:o,container:I()},Ne.createElement(Au,null,Ne.createElement(hC,{src:n.image,size:45,type:"circular"}),Ne.createElement(zo,{variant:"title",size:"medium"},n.name),Ne.createElement(zo,{variant:"body",size:"small",className:"_blockchain-name"},a.displayName),Ne.createElement(wn,{size:4}),Ne.createElement(zo,{variant:"body",size:"medium"},s?Ne.createElement(Ua,{hasHover:!0,href:s,target:"_blank",rel:"nofollow noreferrer"},n.address,Ne.createElement(gC,{size:12,color:"gray"})):Ne.createElement(Ua,null,n.address)),Ne.createElement(wn,{size:4}),n.coinSource&&Ne.createElement(zo,{className:"_coin-source",variant:"body",size:"xsmall"},za.t("via")," ",Ne.createElement(zo,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),Ne.createElement(wn,{size:"32"}),Ne.createElement(zo,{size:"medium",variant:"body",className:"_custom-token-description"},za.t("This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."))),Ne.createElement(wn,{size:40}),Ne.createElement(wn,{size:10}),Ne.createElement(fC,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:r},za.t("Import")))}i(Qa,"CustomTokenModal");import{useManager as Ck}from"@rango-dev/queue-manager-react";import{BottomLogo as kk,Divider as ju,Header as Tk}from"@rango-dev/ui";import Be,{useEffect as ps,useRef as Xu,useState as vk}from"react";import{useRef as yC}from"react";function Fr(){return window.self!==window.top}i(Fr,"isAppLoadedIntoIframe");function Ha(){let t=yC(null),{iframe:e}=y(),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(l=>{for(let c of l)n({type:"widget_height",data:{height:c.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Ha,"useIframe");import{useNavigate as SC}from"react-router-dom";function je(){let t=SC();return()=>t(-1)}i(je,"useNavigateBack");import{createTheme as Ya,darkTheme as LC,lightTheme as MC}from"@rango-dev/ui";import{useEffect as PC,useState as _C}from"react";import{theme as WC,darkColors as BC}from"@rango-dev/ui";import ja from"react";function CC(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(CC,"expandShortHexColor");function kC(t){return/[0-9]+$/.test(t)}i(kC,"isOverridingColor");function TC(t,e){return t.padStart(e,"0")}i(TC,"pad");function qa(t){let e=Math.min(Math.max(Math.round(t),0),255);return TC(e.toString(16),2)}i(qa,"intToHex");function vC(t){return`#${qa(t.red)}${qa(t.green)}${qa(t.blue)}`}i(vC,"rgbToHex");function wC(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(wC,"hexToRGB");function bC(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(bC,"generateShade");function xC(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(xC,"generateTint");function EC(t){return Nu(t,bC)}i(EC,"calculateShades");function IC(t){return Nu(t,xC)}i(IC,"calculateTints");function Nu(t,e){let o=wC(t),n=[];for(let r=1;r<9;r++)n.push(vC(e(o,r)));return n}i(Nu,"calculateColors");function Ga(t,e,o){let a=IC(t).reverse().concat(t),s=EC(t),l=a.concat(s),c={},p=l.length;for(let u=0;u<p;u++){let d=100+(o?p-1-u:u)*50;c[`${e}${d}`]=l[u]}return c}i(Ga,"createTintsAndShades");function Va(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)&&!kC(r)){let c=CC(a);Object.assign(n,Ga(c,r,s))}}return{...n,...e}}i(Va,"expandToGenerateThemeColors");var Wu=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),AC=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Wu(o%52)+e;return Wu(o%52)+e},"toAlphabeticName"),NC=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ka=i(t=>AC(NC(5381,JSON.stringify(t))>>>0),"toHash");function Xa(t){let e=WC.colors,o={...e,...BC},n,r;if(t?.light){let s={colors:Va(e,t.light)};n={id:`${la}-light-${Ka(s)}`,tokens:s}}if(t?.dark){let s={colors:Va(o,t.dark,{reverseNeutralRange:!0})};r={id:`${la}-dark-${Ka(s)}`,tokens:s}}return{light:n,dark:r}}i(Xa,"customizedThemeTokens");function Bu(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ja.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ja.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(ja.cloneElement(e,{key:l}))}}),o}i(Bu,"joinList");function Lu(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Lu,"doesWindowPreferDarkColorScheme");function Qo(t){let{colors:e,fontFamily:o=wc,borderRadius:n=Vc,secondaryBorderRadius:r=Kc}=t,[a,s]=_C(Lu()?"dark":"light"),{theme:l}=y(),{dark:c,light:p}=Xa(e),u=Ya({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,MC.className],h=[u.className,LC.className];if(p){let g=Ya(p.id,p.tokens);d.push(g.className)}if(c){let g=Ya(c.id,c.tokens);h.push(g.className)}return PC(()=>{let g=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return Lu()&&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=h.join(" ");return l==="auto"?a==="dark"?m:g:l==="dark"?m:g},"getActiveTheme"),mode:l==="auto"?a:l}}i(Qo,"useTheme");var pt=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 Mu}from"@lingui/core";import{Alert as DC,Button as $C}from"@rango-dev/ui";import Pu from"react";function Za(t){return Pu.createElement(DC,{action:Pu.createElement($C,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Mu.t("Activate this tab")),type:"warning",variant:"alarm",title:Mu.t("Another tab is open and handles transactions.")})}i(Za,"ActivateTabAlert");import{i18n as Ja}from"@lingui/core";import{Button as FC,Divider as OC,MessageBox as UC}from"@rango-dev/ui";import Or from"react";function Ra(t){let{open:e,onClose:o,onConfirm:n}=t;return Or.createElement(Z,{open:e,dismissible:!0,onClose:o,container:I()},Or.createElement(UC,{title:Ja.t("Activate current tab"),type:"warning",description:Ja.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.")},Or.createElement(OC,{size:20}),Or.createElement(FC,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Ja.t("Confirm"))))}i(Ra,"ActivateTabModal");import{ChevronLeftIcon as zC}from"@rango-dev/ui";import _u from"react";function es(t){return _u.createElement(Et,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},_u.createElement(zC,{color:"black",size:16}))}i(es,"BackButton");import{i18n as QC}from"@lingui/core";import{Button as HC,Typography as qC}from"@rango-dev/ui";import ts from"react";function os(t){return ts.createElement(Vt,null,ts.createElement(HC,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},ts.createElement(qC,{variant:"label",size:"medium",color:"error500"},QC.t("Cancel"))))}i(os,"CancelButton");import{i18n as GC}from"@lingui/core";import{Image as VC,Tooltip as KC,WalletIcon as jC}from"@rango-dev/ui";import fo from"react";function ns(t){let{list:e}=ft(),o=e.filter(r=>r.state==="connected"),n=o.length?fo.createElement("div",{className:vp()},o.map(r=>fo.createElement(Tr,{key:r.title},fo.createElement(VC,{src:r.image,size:14})))):GC.t("Connect Wallet");return fo.createElement(KC,{container:t.container,side:"bottom",content:n},fo.createElement(Et,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&fo.createElement(Sp,null),fo.createElement(jC,{size:18,color:"black"})))}i(ns,"WalletButton");import{i18n as zr}from"@lingui/core";import{NotificationsIcon as pk,Popover as uk,SettingsIcon as dk,Tooltip as Qr,TransactionIcon as mk}from"@rango-dev/ui";import We from"react";import{Notifications as JC}from"@rango-dev/ui";import RC from"react";import{useNavigate as ek}from"react-router-dom";import{create as XC}from"zustand";import{persist as YC,subscribeWithSelector as ZC}from"zustand/middleware";var be=Mo(XC()(YC(ZC((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(c=>c.requestId!==n.requestId);t(()=>({notifications:[...l,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(c=>c.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 rs(){let t=ek(),{getNotifications:e,clearNotifications:o}=be(),n=e(),r=y().blockchains(),{findToken:a}=y();return RC.createElement(JC,{list:n,getBlockchainImage:l=>fc(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${$.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(rs,"NotificationContent");import{useManager as tk}from"@rango-dev/queue-manager-react";import{InProgressIcon as ok}from"@rango-dev/ui";import Du from"react";var nk=i(()=>{let{manager:t}=tk();return pt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Du.createElement(Tp,null,Du.createElement(ok,{color:"info",size:6})):null},"InProgressTransactionBadge"),$u=nk;import{EventSeverity as rk}from"@rango-dev/queue-manager-rango-preset";import{Typography as ik}from"@rango-dev/ui";import Fu from"react";function Ou(){let{getNotifications:t}=be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===rk.WARNING);return o?Fu.createElement(Cp,{isSever:n},Fu.createElement(ik,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Ou,"NotificationsBadge");import{RefreshProgressButton as ak}from"@rango-dev/ui";import is,{useEffect as sk,useState as Uu}from"react";var lk=1e3,zu=60,ck=100;function Ur({onClick:t}){let[e,o]=Uu(0),[n,r]=Uu(!1),a=i(c=>{document.hidden&&c&&s(c)},"handleVisibilityChange");sk(()=>{let c;return t?c=window.setInterval(()=>{o(p=>p+1),e===zu&&l()},lk):s(c),document.addEventListener("visibilitychange",()=>a(c)),()=>{document.removeEventListener("visibilitychange",()=>a(c)),c&&clearInterval(c)}},[e,t]);let s=i(c=>{c&&clearInterval(c),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return is.createElement(Et,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},is.createElement(kp,{onTransitionEnd:()=>r(!1),isRefetched:n},is.createElement(ak,{size:22,color:t?"black":"gray",progress:e/zu*ck})))}i(Ur,"RefreshButton");function go(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ve("notification",s)||r.includes("notifications");return We.createElement(We.Fragment,null,!r.includes("refresh")&&We.createElement(Qr,{container:a||I(),side:"top",content:zr.t("Refresh")},We.createElement(Ur,{onClick:e})),!l&&We.createElement(uk,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:I(),content:We.createElement(rs,null)},We.createElement("div",null,We.createElement(Qr,{container:I(),side:"top",content:zr.t("Notifications")},We.createElement(Et,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},We.createElement(pk,{size:18,color:"black"}),We.createElement(Ou,null))))),!r.includes("settings")&&We.createElement(Qr,{container:I(),side:"top",content:zr.t("Settings")},We.createElement(Et,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},We.createElement(dk,{size:18,color:"black"}))),!r.includes("history")&&We.createElement(Qr,{container:I(),side:"top",content:zr.t("History")},We.createElement(Et,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},We.createElement(mk,{size:18,color:"black"}),We.createElement($u,null))))}i(go,"HeaderButtons");import{i18n as as}from"@lingui/core";import{Divider as Hu,MessageBox as hk,RefreshIcon as yk}from"@rango-dev/ui";import Ho from"react";import{Button as fk,styled as gk}from"@rango-dev/ui";var Qu=gk(fk,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ss(t){let{open:e,onClose:o}=t;return Ho.createElement(Z,{open:e,dismissible:!0,onClose:o,container:I()},Ho.createElement(hk,{title:as.t("Something went wrong"),type:"error",description:as.t("Something went wrong. Please refresh the app.")},Ho.createElement(Hu,{size:30}),Ho.createElement(Qu,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Ho.createElement(yk,{size:20,color:"primary"}),Ho.createElement(Hu,{size:4,direction:"horizontal"}),as.t("Refresh"))))}i(ss,"RefreshModal");function ls(t){let e=t.target;if(e){let o=e.scrollTop,n=I();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(ls,"onScrollContentAttachStatusToContainer");import{css as Sk,styled as cs}from"@rango-dev/ui";var qu="700px",Hr=Sk({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Gu=cs("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:qu},fixed:{height:qu}}}}),Vu=cs("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Ku=cs("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"}}});function oe(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ha(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l,connectedWallets:c}=y(),[p,u]=vk(!1),{config:{features:d,theme:h}}=y(),{watermark:f}=re(),g=f==="FULL",{activeTheme:m}=Qo(h||{}),C=Ve("connectWalletButton",d),{isActiveTab:S,tabManagerInitiated:k,showActivateTabModal:T,setShowActivateTabModal:v,activateCurrentTab:b}=re(),A=je(),{manager:D}=Ck(),x=pt(D).map(({swap:te})=>te).some(te=>te.status==="running"),E=i(()=>b(ao.forceClaim,x),"onActivateTab"),N=i(()=>{r.onWallet?.()},"onConnectWallet"),L=typeof r.hasBackButton>"u"||r.hasBackButton,W=Xu(null),j=Xu(null);return ps(()=>(Fr()&&j.current&&e(j.current),()=>{o()}),[]),ps(()=>(W.current?.addEventListener("scroll",ls),()=>{W.current?.removeEventListener("scroll",ls)}),[]),ps(()=>{u(l==="failed")},[l]),Be.createElement(Gu,{height:s,id:De.SWAP_BOX_ID,className:`${m()} ${Hr()}`,ref:j},Be.createElement(Tk,{prefix:L?Be.createElement(es,{onClick:()=>{A(),r.onBack&&r.onBack()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!C&&Be.createElement(ns,{container:I(),onClick:N,isConnected:!!c?.length}),r.onCancel&&Be.createElement(os,{onClick:r.onCancel}))}),Be.createElement(Vu,{ref:W},n),Be.createElement(Ra,{open:T,onClose:()=>v(!1),onConfirm:E}),Be.createElement(Ku,null,Be.createElement("div",{className:"footer__content"},k&&!S&&Be.createElement("div",{className:"footer__alert"},Be.createElement(Za,{onActivateTab:E}),Be.createElement(ju,{size:10})),a),Be.createElement(ju,{size:12}),Be.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Be.createElement(kk,null))),Be.createElement(ss,{open:p,onClose:()=>u(!1)}))}i(oe,"Layout");import{styled as wk}from"@rango-dev/ui";var Yu="$20 $20 $10 $20",bn=wk("div",{padding:Yu,overflowY:"auto",flexGrow:1});import{styled as bk}from"@rango-dev/ui";var ie=bk("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 qo}from"@lingui/core";import{useState as Zu}from"react";function Ju(){let[t,e]=Zu(!1),[o,n]=Zu(void 0),{findToken:r}=y(),a=y().customTokens();function s(c,p){switch(c){case"duplicated":return{title:qo.t("Duplicate Token"),message:qo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{title:qo.t("Token Already Exists"),message:qo.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{title:qo.t("Token Not Found"),message:qo.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:p}})}}}return i(s,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:c,tokenAddress:p})=>{e(!0);try{if(a.some(g=>g.address?.toLowerCase()===p.toLowerCase())){let g=s("duplicated");n(g);return}let d=await xt().getCustomToken({blockchain:c,address:p});if(!d||!d.token||d.error){let g=s("not-found",c);n(g);return}let h=d.token;if(r({blockchain:h.blockchain,address:h.address,symbol:h.symbol})){let g=s("token-exist");n(g);return}return h}catch(u){if(u?.code==="ERR_BAD_REQUEST"){let d=s("not-found",c);n(d);return}throw n(void 0),new Error(u.message)}finally{e(!1)}},"fetchCustomToken"),loading:t,error:o}}i(Ju,"useFetchCustomToken");var _k=Nk("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${Ek} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}}),Dk=1e3;function ed(){let t=Mk(),[e]=Pk(),o=je(),{setCustomToken:n}=y(),r=y().blockchains(),a=e.get("blockchain")||"",s=an(a,r),[l,c]=qr(""),[p,u]=qr(!1),[d,h]=qr(),{fetchCustomToken:f,loading:g,error:m}=Ju(),[C,S]=qr(""),k=!!s&&Io(s,l),T=!s||!l||!k,v=i(async()=>{if(s)try{let D=await f({blockchain:a,tokenAddress:l});S(""),D&&h(D)}catch(D){D.message==="Failed to fetch"&&(S(It.t("Network Error")),u(!0))}},"getCustomToken"),b=i(()=>{m&&c(""),u(!1)},"closeErrorModal"),A=i(async()=>{C&&setTimeout(async()=>{await v()},Dk),b()},"handleErrorModalButtonClick");return Lk(()=>{m&&u(!0)},[m]),Se.createElement(oe,{header:{title:It.t("Add Custom Token")}},Se.createElement(ie,null,Se.createElement(_k,null,Se.createElement("div",null,Se.createElement(Oa,{onClick:()=>t($.blockchains,{replace:!0}),hasLogo:!!s?.logo,value:s?{name:s.displayName,logo:s.logo}:void 0,title:It.t("Select chain"),placeholder:It.t("Select chain")}),Se.createElement(xn,{size:"24"}),Se.createElement(Bk,{size:"large",variant:"label"},It.t("Enter Address")),Se.createElement(xn,{size:10}),Se.createElement(Wk,{fullWidth:!0,disabled:!s,variant:"contained",placeholder:It.t("Enter token address"),size:"large",value:l,suffix:!!l&&k&&Se.createElement(Ik,{color:"success",size:12}),onChange:D=>c(D.target.value)}),!k&&!!l&&Se.createElement(Se.Fragment,null,Se.createElement(xn,{size:4}),Se.createElement(xk,{type:"error",variant:"alarm",title:"Invalid Address"}))),Se.createElement(Ru,{id:"widget-add-custom-token-import-btn",disabled:T,type:"primary",variant:"contained",loading:g,size:"large",onClick:v},It.t("Import"))),Se.createElement(Z,{open:p,dismissible:!0,onClose:b,container:I()},Se.createElement(Ak,{title:m?.title||C,type:"error",description:m?.message||It.t("Failed Network, Please retry.")},Se.createElement(xn,{size:40}),Se.createElement(xn,{size:10}),Se.createElement(Ru,{id:`widget-add-custom-token-${C?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:A},C?It.t("Retry"):It.t("Add another custom token")))),s&&d&&Se.createElement(Qa,{blockchain:s,token:d,onSubmitClick:()=>{d&&(n(d),h(void 0),o())},onClose:()=>h(void 0),open:!!s&&!!d})))}i(ed,"AddCustomTokenPage");import{i18n as Us}from"@lingui/core";import{useManager as Cv}from"@rango-dev/queue-manager-react";import{Alert as kv,Button as Tv,css as Qs,Divider as zs,IconButton as jm,styled as vv,Typography as wv,WalletIcon as bv}from"@rango-dev/ui";import Me,{useEffect as Si,useLayoutEffect as xv,useRef as Ev,useState as Fn}from"react";import{useNavigate as Iv}from"react-router-dom";import{i18n as ho}from"@lingui/core";import{Alert as sT,BalanceErrors as lT,Button as Ad,ChevronLeftIcon as cT,Divider as Ss,MessageBox as pT,Typography as Cs}from"@rango-dev/ui";import ee,{useCallback as uT,useEffect as Nd,useMemo as dT,useState as Ko}from"react";import{useNavigate as mT}from"react-router-dom";import{i18n as fs}from"@lingui/core";import{Alert as zk,ChevronDownIcon as Qk,CloseIcon as Hk,Divider as sd,IconButton as ld,PasteIcon as qk,Typography as Gk,WalletIcon as Vk}from"@rango-dev/ui";import Le,{useEffect as Kk,useRef as jk}from"react";import jr,{useRef as Ok}from"react";import*as Go from"@radix-ui/react-collapsible";import{keyframes as td,styled as Gr}from"@rango-dev/ui";var us=300,$k=td({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Fk=td({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),od=Gr(Go.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ds=Gr(Go.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Vr=Gr(Go.Content,{overflow:"hidden",variants:{open:{true:{animation:`${$k} ${us}ms ease-out`},false:{animation:`${Fk} ${us}ms ease-out`}}}}),Kr=Gr("div",{transition:`all ${us}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Xr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,c=Ok(null);return jr.createElement(od,{ref:c,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&jr.createElement(ds,{className:"collapsible_trigger",onClick:a},s),jr.createElement(Vr,{className:"collapsible_content",open:e},r),l==="bottom"&&jr.createElement(ds,{className:"collapsible_trigger",onClick:a},s))}i(Xr,"CustomCollapsible");import{darkTheme as nd,styled as ms,TextField as Uk}from"@rango-dev/ui";var rd=ms("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),id=ms(Uk,{backgroundColor:"$neutral100",padding:"$15"}),ad=ms("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${nd} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${nd} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function cd(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=y(),l=y().blockchains(),c=sr(e.name,l),p=jk(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),f=n&&!!r&&e&&!Io(e,r),g=i(()=>{a("")},"handleClear"),m=i(async S=>{if(S.preventDefault(),navigator.clipboard!==void 0){let k=await navigator.clipboard.readText();a(k),p?.current?.focus()}},"handlePaste"),C=i(()=>r?Le.createElement(ld,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},Le.createElement(Hk,{size:12,color:"gray"})):d?null:Le.createElement(ld,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},Le.createElement(qk,{size:16})),"renderSuffix");return Kk(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),Le.createElement(rd,null,Le.createElement(Xr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Le.createElement(ad,null,Le.createElement("div",{className:"button__content"},Le.createElement(Vk,{size:18,color:"info"}),Le.createElement(sd,{size:4,direction:"horizontal"}),Le.createElement(Gk,{variant:"label",size:"medium",color:n?"$neutral600":void 0},fs.t("Send to a different address"))),Le.createElement(Kr,{orientation:n?"up":"down"},Le.createElement(Qk,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Le.createElement(id,{ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:fs.t("Enter {blockchainName} address",{blockchainName:c}),value:r||"",suffix:C(),onChange:S=>{let k=S.target.value;a(k)}})),f&&Le.createElement(Le.Fragment,null,Le.createElement(sd,{size:4}),Le.createElement(zk,{variant:"alarm",type:"error",title:fs.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(cd,"CustomDestination");import{css as Xk,darkTheme as gs,IconButton as Yk,styled as Dt}from"@rango-dev/ui";var pd=Dt("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),ud=Dt("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Zk=Dt("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${gs} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${gs} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${gs} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),dd=Dt(Zk,{alignSelf:"stretch",minHeight:"93px"}),md=Dt("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),fd=Dt(Yk,{position:"absolute",left:"$20"}),gd=Dt("div",{paddingTop:"$20"}),hd=Xk({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),yd=Dt("div",{display:"flex"}),Sd=Dt("div",{overflow:"visible",width:"100%"});import{i18n as bd}from"@lingui/core";import{warn as oT}from"@rango-dev/logging-core";import{Divider as nT,SelectableWallet as rT,Typography as xd,WalletState as Ed}from"@rango-dev/ui";import Xe,{useEffect as Id,useState as In}from"react";import{Image as eT,MessageBox as tT}from"@rango-dev/ui";import En from"react";import{keyframes as Jk,styled as hs}from"@rango-dev/ui";var Cd=hs("div",{position:"relative"}),Rk=Jk({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),kd=hs("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Rk} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Td=hs("div",{"& img":{borderRadius:"50%"}});import{i18n as Vo}from"@lingui/core";function vd(t,e){switch(t){case"in-progress":return{type:"loading",title:Vo.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Vo.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Vo.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Vo.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Vo.t("Request Rejected"),description:Vo.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(vd,"generateMessageByStatus");function wd(t){let{status:e,displayName:o,image:n}=t,r=vd(e,o),a=e=="in-progress";return En.createElement(tT,{type:r.type,title:r.title,description:r.description,icon:a?En.createElement(Cd,null,En.createElement(Td,null,En.createElement(eT,{src:n,size:45})),En.createElement(kd,null)):void 0})}i(wd,"ExperimentalChainStatus");var iT=7,aT=3e3;function ys(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=re.use.isActiveTab(),{blockchains:l,connectedWallets:c}=y(),[p,u]=In(),[d,h]=In(null),[f,g]=In(!1),[m,C]=In(null),{suggestAndConnect:S}=Yr(),{handleDisconnect:k}=Gt(),{list:T}=ft({chain:e}),[v,b]=In(T),A=T.length,D=r&&A-r>0,w=i(async E=>{g(!1),C("in-progress");try{await S(E.walletType,E.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");Id(()=>{b(E=>{let N=T.findIndex(L=>o(L.type,e));return D&&N>1?[T[N]].concat(T.filter((L,W)=>W!==N)):E.map(L=>T.find(W=>W.type===L.type)??L)})},[JSON.stringify(T)]);let x=document.getElementById(De.SWAP_BOX_ID);return Id(()=>{let E=null;return(m==="completed"||m==="rejected")&&(E=setTimeout(()=>C(null),aT)),()=>{E&&clearTimeout(E)}},[m]),Xe.createElement(Xe.Fragment,null,v.slice(0,r).map(E=>{let N=Uc({connectedWallets:c,walletType:E.type,chain:e}),L=N?Sr(N,iT):"",W=hr(l(),e),j=!c.find(se=>se.walletType===E.type&&se.chain===e),te=W&&j&&E.state===Ed.CONNECTED,J=te?bd.t({id:"Add {chain} chain",values:{chain:e}}):L,M=i(async()=>{let se=E.state===Ed.DISCONNECTED,z=(E.isHub||!!E.needsNamespace)&&!L;se?u(E):z?(await k(E.type),u(E)):te?(h({walletType:E.type,chain:e,address:N??""}),g(!0)):n({walletType:E.type,chain:e,address:N??""})},"onSelectableWalletClick"),X=d?.chain?sr(d.chain,l()):void 0;return Xe.createElement(Xe.Fragment,{key:`${E.title}_${X}`},!!d&&Xe.createElement(Z,{open:!!d&&f,container:x,onClose:()=>{h(null)}},Xe.createElement(xa,{displayName:X,onConfirm:()=>{w(d)}})),m&&Xe.createElement(Z,{open:!!m,onClose:C.bind(null,null),container:x},Xe.createElement(wd,{status:m,displayName:X,image:E.image}),Xe.createElement(nT,{direction:"vertical",size:32})),Xe.createElement(rT,{key:E.type,description:J,onClick:M,selected:o(E.type,e),disabled:!s,...E}))}),Xe.createElement(po,{wallet:p,onClose:()=>{u(void 0)},onConnect:()=>{t.onConnect&&(p?.type?t.onConnect(p.type):oT(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),D&&Xe.createElement(dd,{selected:!1,onClick:a},Xe.createElement(xd,{variant:"label",size:"medium"},bd.t("Show more wallets"),Xe.createElement(xd,{variant:"label",size:"medium",color:"$primary"},"\xA0+",A-(r??0)))))}i(ys,"WalletList");var fT=2;function Wd(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=mT(),l=y().blockchains(),{selectedQuote:c,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:h,setCustomDestination:f}=O(),{config:g,connectedWallets:m,setWalletsAsSelected:C}=y(),[S,k]=Ko(""),[T,v]=Ko([]),[b,A]=Ko(""),[D,w]=Ko(!!h),x=dT(()=>io({filter:"all",quote:c}),[c]),E=io({filter:"required",quote:c}),N=l.find(P=>P.name===c?.swaps[c?.swaps.length-1].to.blockchain),L=i(P=>E.includes(P),"isWalletRequiredFor"),W=uT(()=>m.filter(P=>P.selected&&x.includes(P.chain)),[m,x]),[j,te]=Ko(W()),[J,M]=Ko([]),X=i((P,q)=>M(V=>V.concat({blockchain:P,walletType:q})),"addNextSelectedWallets"),se=T.length>0,z=i((P,q)=>!!j.find(V=>V.walletType===P&&V.chain===q&&V.selected&&(L(q)||!L(q)&&!h)),"isSelected"),me=i((P,q,V)=>{let ge=!1;return P.map(ne=>{if(ne.chain===q){let he=ne.selected;return!ge&&V?(ge=!0,he=!0):V||(he=!1),{...ne,selected:he}}return ne})},"updateSelectableWallets"),vt=i(P=>{w(P),P?L(N?.name??"")||te(q=>me(q,N?.name||"",!1)):(f(""),te(q=>me(q,N?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),Ze=i(P=>{if(S&&k(""),z(P.walletType,P.chain))return;let V=m.find(ge=>ge.walletType===P.walletType&&ge.chain===P.chain);V&&(n(),P.chain===N?.name&&D&&!L(N.name)&&(w(!1),f(null)),te(ge=>ge.filter(ne=>ne.chain!==P.chain).concat({...V,selected:!0})))},"onChange"),le=i(()=>{let P=j.filter(q=>q.selected);C(P),p(P),d(!0),o()},"onConfirmBalance"),at=i(async()=>{v([]),A("");let P=await r?.({selectedWallets:j.filter(V=>V.selected),customDestination:h}),q=P.warnings;q?.balance?.messages&&v(q.balance.messages),P.error&&A(zp(P.error)),!P.error&&!q?.balance?.messages.length?le():v(q?.balance?.messages??[])},"onConfirmWallets");Nd(()=>{te(P=>{let q=[];return P.forEach(V=>{!m.some(ne=>ne.chain===V.chain&&ne.walletType===V.walletType&&ne.address===V.address)||q.push(V)}),q=q.concat(m.filter(V=>!!!q.find(ne=>ne.chain===V.chain)&&V.selected&&x.includes(V.chain))),q})},[m,x]),Nd(()=>{let P=[];J.length>0&&(J.forEach(q=>{let V=m.find(ge=>ge.chain===q.blockchain&&ge.walletType===q.walletType);V?Ze(V):P.push(q)}),M(P))},[m,J]);let G=document.getElementById(De.SWAP_BOX_ID);return ee.createElement(Z,{open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!S,container:G,...!S&&{styles:{container:{height:"100%"}},footer:ee.createElement(yd,null,ee.createElement(Ad,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:hu(a,D,h,c,j,N),onClick:at,variant:"contained",type:"primary",fullWidth:!0,size:"large"},ho.t("Confirm")))},...S&&{styles:{container:{height:"100%",padding:"$0"}},header:ee.createElement(md,null,ee.createElement(fd,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:k.bind(null,"")},ee.createElement(cT,{size:16})),ee.createElement(Cs,{variant:"headline",size:"small"},ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:st(S,l)}})))},anchor:"center"},ee.createElement(Z,{open:se,onClose:v.bind(null,[]),container:G},ee.createElement(pT,{title:ho.t("Insufficient account balance"),type:"error",description:ee.createElement(lT,{messages:T??[]})},ee.createElement(Ad,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:le},ho.t("Proceed anyway")))),S&&ee.createElement(gd,null,ee.createElement("div",{className:hd()},ee.createElement(ys,{chain:S,isSelected:z,selectWallet:Ze,onShowMore:()=>k(S),onConnect:P=>{X(S,P)}}))),!S&&ee.createElement(ee.Fragment,null,b&&ee.createElement(ee.Fragment,null,ee.createElement(sT,{variant:"alarm",type:"error",title:ho.t(b)}),ee.createElement(Ss,{size:12})),ee.createElement(Sd,null,x.map((P,q)=>{let V=l.find(Fe=>Fe.name===P),ge=`wallet-${q}`,ne=q===x.length-1,he=ne&&N&&g?.customDestination!==!1;return ee.createElement("div",{key:ge},ee.createElement(pd,null,ee.createElement(Cs,{variant:"title",size:"xmedium"},ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:V?.shortName}})),ee.createElement(Cs,{variant:"label",color:"$neutral700",size:"medium"},ho.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:V?.shortName}}))),ee.createElement(Ss,{size:24}),ee.createElement(ud,null,ee.createElement(ys,{chain:P,isSelected:z,selectWallet:Ze,limit:fT,onShowMore:()=>k(V?.name??""),onConnect:Fe=>{X(P,Fe)}})),!ne&&ee.createElement(Ss,{size:32}),he&&ee.createElement(cd,{blockchain:N,open:D,handleOpenChange:vt}))}))))}i(Wd,"ConfirmWalletsModal");import{i18n as MT}from"@lingui/core";import{Alert as PT,Button as _T,InfoIcon as DT}from"@rango-dev/ui";import et from"react";import{Alert as yT,Button as ST,Divider as vs,NoRouteIcon as CT,RefreshIcon as kT,Typography as $d}from"@rango-dev/ui";import Re from"react";import{i18n as Bd}from"@lingui/core";var gT=24,hT=60;function Ld(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:R().genericServerError,action:{onClick:n,title:Bd.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:R().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Bd.t("Reset")}},description:R().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:R().noResultError.description}}i(Ld,"makeInfo");var ks=(o=>(o[o.small=gT]="small",o[o.large=hT]="large",o))(ks||{}),Ts=(o=>(o.small="small",o.large="medium",o))(Ts||{});import{styled as Zr}from"@rango-dev/ui";var Md=Zr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Pd=Zr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),_d=Zr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Dd=Zr("div",{padding:"$6 $0"});function An(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=Ld(o,r,()=>a(s,!0),e);return Re.createElement(Md,null,Re.createElement(CT,{size:ks[n],color:"gray"}),Re.createElement(vs,{size:4}),Re.createElement($d,{variant:"title",size:Ts[n]},R().noResultError.title),n==="large"&&Re.createElement(vs,{size:4}),!!l.description&&Re.createElement(Pd,{size:n},Re.createElement($d,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Re.createElement(vs,{size:n==="large"?"24":"4"}),!!l.alert&&Re.createElement(_d,{size:n},Re.createElement(yT,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Re.createElement(ST,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:Re.createElement(Dd,null,Re.createElement(kT,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(An,"NoResult");import{i18n as Nn}from"@lingui/core";import{Button as vT,Divider as wT,MessageBox as bT,Typography as xT,WarningIcon as ET}from"@rango-dev/ui";import $t from"react";import{Typography as zd}from"@rango-dev/ui";import bs from"react";import{darkTheme as TT,styled as Jr}from"@rango-dev/ui";var Fd=Jr("div",{width:"100%"}),ws=Jr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Od=Jr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${TT} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ud=Jr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Qd(t){let{title:e,value:o,valueColor:n}=t;return bs.createElement(Od,null,bs.createElement(zd,{size:"medium",variant:"label",className:"_title"},e),bs.createElement(zd,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Qd,"QuoteErrorsModalItem");function Hd(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Nn.t("Swapping"),value:B(r.inputUsdValue,4,4)},{title:Nn.t("Gas cost"),value:B(r.totalFee,2,2)},{title:Nn.t("Receiving"),value:B(r.outputUsdValue,4,4)},{title:Nn.t("Price impact"),value:B(r.priceImpact,2,2),valueColor:`${s}500`}];return $t.createElement(Z,{footer:$t.createElement(vT,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:$t.createElement(ET,null),fullWidth:!0,disabled:a,onClick:n},R().highValueLossError.confirmMessage),open:e,onClose:o,container:I()},$t.createElement(bT,{type:s,title:R().highValueLossError.impactTitle,description:R().highValueLossError.description}),$t.createElement(ws,null,$t.createElement(wT,{size:"4"}),$t.createElement(xT,{size:"small",variant:"title"},Nn.t("Details")),$t.createElement(ws,null,l.map((c,p)=>$t.createElement(Qd,{key:p,...c})))))}i(Hd,"HighValueLossWarningModal");import{i18n as Rr}from"@lingui/core";function qd(t,e){let o={alertType:"warning",title:"",action:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Rr.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o;if(t){switch(t.type){case 0:{_t(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=R().highValueLossError.title;break}case 4:{o.title=Rr.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=R().unknownPriceError.title;break}case 2:{o.title=Rr.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings";break}case 3:{o.title=Rr.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(qd,"makeAlerts");import{i18n as jo}from"@lingui/core";import{Button as Gd,Divider as Vd,MessageBox as IT,Typography as AT}from"@rango-dev/ui";import yo from"react";import{useNavigate as NT}from"react-router-dom";function Kd(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,c=NT(),p=e??o;return yo.createElement(Z,{anchor:"bottom",open:n,prefix:yo.createElement(Gd,{size:"small",id:"widget-slippage-warning-modal-change-settings-btn",variant:"ghost",onClick:()=>c("../"+$.settings)},yo.createElement(AT,{variant:"label",size:"medium",color:"$neutral900"},jo.t("Change settings"))),container:I(),onClose:r},yo.createElement(IT,{type:"warning",title:s.type===3?jo.t("High slippage"):jo.t("Low slippage"),description:s.type===3?jo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:p}}):jo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},yo.createElement(Vd,{size:18}),yo.createElement(Vd,{size:32}),yo.createElement(Gd,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},jo.t("Confirm anyway"))))}i(Kd,"SlippageWarningModal");import{Button as WT,MessageBox as BT,WarningIcon as LT}from"@rango-dev/ui";import ei from"react";function jd(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return ei.createElement(Z,{footer:ei.createElement(WT,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:ei.createElement(LT,null),fullWidth:!0,disabled:r,onClick:n},R().unknownPriceError.confirmMessage),open:e,onClose:o,container:I()},ei.createElement(BT,{type:"warning",title:R().unknownPriceError.impactTitle,description:R().unknownPriceError.description}))}i(jd,"UnknownPriceWarningModal");function Wn(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:c,onConfirmWarningModal:p,onChangeSettings:u}=t,d={confirmationDisabled:a,open:r,onClose:c,onConfirm:p},h=o?.type===0||o?.type===1,f=qd(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),et.createElement(et.Fragment,null,h&&et.createElement(An,{error:o,fetch:s}),!!f&&et.createElement(Fd,null,et.createElement(PT,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:et.createElement(Ud,{onClick:l},et.createElement(DT,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:et.createElement(_T,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:f.alertType,onClick:u},MT.t("Change"))}})),e&&et.createElement(et.Fragment,null,e.type===0&&et.createElement(Hd,{...d,warning:e}),(e.type===3||e.type===2)&&et.createElement(Kd,{...d,warning:e}),e.type===1&&et.createElement(jd,{...d,warning:e})))}i(Wn,"QuoteWarningsAndErrors");import mv from"bignumber.js";import fi from"react";import{i18n as So}from"@lingui/core";import{Alert as ev,Divider as Yo,FullExpandedQuote as tv,InfoIcon as ov,NumericTooltip as Em,QuoteTag as nv,StepDetails as rv,TokenAmount as iv,Typography as Zo}from"@rango-dev/ui";import Ms from"bignumber.js";import F,{useRef as av,useState as sv}from"react";import{styled as xs}from"@rango-dev/ui";var Es=xs("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Xd=xs("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Yd=xs("div",{width:"100%",display:"flex"});import*as ti from"@radix-ui/react-collapsible";import{Button as $T,css as Bn,darkTheme as xe,Image as Zd,styled as ze,Typography as FT}from"@rango-dev/ui";var OT=300,Jd=ze(ti.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${xe} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Rd=Bn({padding:"$10 $15"}),em=ze($T,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${xe} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${xe} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${xe} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),tm=ze("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${xe} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${xe} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${xe} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${xe} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${xe} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${xe} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${xe} &`]:{backgroundColor:"$neutral400"}}}}]}),om=Bn({width:"100%",padding:"$15 $15 $10 $15"}),nm=Bn({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Xo=Bn({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),rm=Bn({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${xe} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),im=ze(ti.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:{[`& ${Zd}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Zd}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${xe} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),am=ze("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),sm=ze(Vr,{width:"100%",background:"inherit"}),Is=ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${OT}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),a1=ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),lm=ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${xe} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),cm=ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),As=ze(FT,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),pm=ze("div",{display:"flex",flexWrap:"wrap"}),Ns=ze("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),um=ze("div",{display:"flex"}),oi=ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${xe} &`]:{borderTopColor:"$neutral800"}});import{i18n as At}from"@lingui/core";import{ChevronDownIcon as zT,CloseIcon as QT,Divider as ii,IconButton as HT,NumericTooltip as qT,QuoteCost as GT,Typography as yt}from"@rango-dev/ui";import Y,{useState as gm}from"react";import{css as UT,styled as ni}from"@rango-dev/ui";var ri=ni("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Ws=ni("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),dm=ni("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),mm=ni("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),fm=UT({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var VT=i(t=>t.fee.isZero()?null:Y.createElement(ri,null,Y.createElement(yt,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(yt,{variant:"label",size:"medium"},"$",B(t.fee,4,4))),"NonPayableFee");function Bs(t){let[e,o]=gm(!1),[n,r]=gm(!1),{steps:a,quote:s,fee:l,time:c,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:h=!1}=t,f=s?.swaps??[],g=h?ro():I(),m=lu(f);return Y.createElement(Y.Fragment,null,Y.createElement(GT,{onClickFee:d?C=>{C.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:p,timeWarning:u,time:c,steps:a,tooltipGas:d?At.t("View more info"):void 0,tooltipContainer:g}),Y.createElement(Z,{container:g,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:Y.createElement(mm,{style:{textAlign:h?"left":"center"}},Y.createElement(yt,{variant:"title",size:"medium"},At.t("Gas & Fee Explanation")),Y.createElement(HT,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement(QT,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(dm,null,Y.createElement(yt,{variant:"title",size:"small"},At.t("Details")),Y.createElement(ii,{size:10}),Object.entries(m.payable).flatMap(([C,S])=>S.map((k,T)=>{let v=`payable-fee-${T}`,b=La(k);return Y.createElement(ri,{key:v},Y.createElement(yt,{variant:"label",size:"medium",color:"neutral600"},Ia(C,At.t)),Y.createElement(qT,{content:k.amount,container:g},Y.createElement(yt,{variant:"label",size:"medium"},B(k.amount,2,2)," ",k.asset.symbol," ($",B(b,4,4),")")))})),Y.createElement(ri,{className:"total_payable_fee"},Y.createElement(yt,{variant:"label",size:"medium"},At.t("Total Payable Fee")),Y.createElement(yt,{variant:"label",size:"medium"},"$",B(l,4,4))),Y.createElement(Ws,null),Object.keys(m.nonePayable).length&&Y.createElement(Xr,{triggerAnchor:"bottom",onClickTrigger:()=>r(C=>!C),trigger:Y.createElement("div",{className:fm()},Y.createElement(yt,{size:"small",variant:"body",color:"neutral700"},n?At.t("Hide non-payable fees"):At.t("Show non-payable fees")),Y.createElement(ii,{size:4,direction:"horizontal"}),Y.createElement(Kr,{orientation:n?"up":"down"},Y.createElement(zT,{size:12,color:"gray"}))),open:n},Y.createElement(yt,{size:"small",variant:"title"},At.t("Description")),Y.createElement(ii,{size:4}),Y.createElement(yt,{size:"small",variant:"body",color:"neutral700"},At.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),Y.createElement(ii,{size:10}),Object.entries(m.nonePayable).map(([C,S],k)=>{let T=su(S),v=Ia(C,At.t),b=`non-payable-fee-${k}`;return Y.createElement(VT,{key:b,fee:T,label:v})}),Y.createElement(Ws,null)))))}i(Bs,"QuoteCostDetails");import{i18n as Sm}from"@lingui/core";import{TokenAmount as Cm}from"@rango-dev/ui";import ai from"react";import{css as KT,styled as jT}from"@rango-dev/ui";var hm=jT("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),ym=KT({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function Ln(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return ai.createElement(hm,null,ai.createElement(Cm,{direction:"horizontal",label:Sm.t("Swap input"),type:"input",tooltipContainer:I(),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}}),ai.createElement("div",{className:ym()}),ai.createElement(Cm,{direction:"horizontal",tooltipContainer:I(),label:Sm.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(Ln,"QuoteSummary");import{i18n as bm}from"@lingui/core";import{ChevronDownIcon as ZT,ChevronRightIcon as JT,Divider as Ls,Image as RT,Tooltip as ui,Typography as li}from"@rango-dev/ui";import U from"react";import{useLayoutEffect as XT,useState as Mn}from"react";var km=480,Tm=768,vm=1024,wm=1200,YT=i(()=>{let[t,e]=Mn(!1),[o,n]=Mn(!1),[r,a]=Mn(!1),[s,l]=Mn(!1),[c,p]=Mn(!1),u=i(()=>{e(window.innerWidth<=km),n(window.innerWidth>km&&window.innerWidth<=Tm),a(window.innerWidth>Tm&&window.innerWidth<=vm),l(window.innerWidth>vm&&window.innerWidth<=wm),p(window.innerWidth>wm)},"handleResize");return XT(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:c}},"useScreenDetect"),si=YT;var ci=4,pi=6,Pn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||I();return U.createElement(ui,{container:l,side:"bottom",sideOffset:4,open:r,content:e},U.createElement(am,{className:n,state:a},U.createElement(RT,{src:o,size:16})))},"ImageComponent");function xm(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,c=l||I(),p=r.length,u=Zp(r),{isTablet:d,isMobile:h}=si();return U.createElement(im,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(g=>!g)}},U.createElement("div",{className:Xo()},U.createElement(li,{variant:"body",size:"xsmall"},bm.t("Via:")),U.createElement(Ls,{direction:"horizontal",size:4}),r.map((f,g)=>{let m=`item-${g}`,C=U.createElement(Is,null,U.createElement(JT,{size:12,color:"black"}));return h||d?U.createElement(U.Fragment,{key:m},U.createElement(Pn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==p-1&&U.createElement(U.Fragment,null,C)):U.createElement(U.Fragment,{key:m},p<=ci||p>ci&&g<ci-1?U.createElement(U.Fragment,null,U.createElement(Pn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==p-1&&U.createElement(U.Fragment,null,C)):g===ci-1&&U.createElement(ui,{container:c,side:"bottom",align:"end",sideOffset:4,content:U.createElement("div",{className:Xo()},C,r.map((S,k)=>{let T=`image-${k}`;return k>=g&&U.createElement(U.Fragment,{key:T},U.createElement(Pn,{content:S.swapper.displayName,src:S.swapper.image,state:S.state,open:!1}),k!==p-1&&U.createElement(U.Fragment,null,C))}))},U.createElement(Ns,{state:r.find((S,k)=>k>=g&&(S.state==="error"||S.state==="warning"))?.state},U.createElement(li,{size:"xsmall",variant:"body"},"+",p-g))))})),U.createElement("div",{className:Xo()},U.createElement("div",{className:"blockchains_section"},U.createElement("div",{className:Xo()},U.createElement(li,{variant:"body",size:"xsmall"},bm.t("Chains:")),U.createElement(Ls,{direction:"horizontal",size:4}),u.map((f,g)=>U.createElement(U.Fragment,{key:f.displayName},u.length<=pi||u.length>pi&&g<pi-1?U.createElement(ui,{container:c,side:"bottom",content:f.displayName,sideOffset:4},U.createElement(Pn,{content:"",src:f.image,open:!1,className:g!==0?"blockchainImage":""})):g===pi-1&&U.createElement(ui,{container:c,side:"bottom",align:"end",sideOffset:4,content:U.createElement("div",{className:Xo()},u.map((m,C)=>C>=g&&U.createElement(Pn,{key:m.displayName,content:"",src:m.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},U.createElement(Ns,{className:"blockchainImage"},U.createElement(li,{size:"xsmall",variant:"body"},"+",u.length-g))))),U.createElement(Ls,{direction:"horizontal",size:32}))),U.createElement(Is,{orientation:a?"up":"down"},U.createElement(ZT,{size:12,color:"black"}))))}i(xm,"QuoteTrigger");function Ps(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:c=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:d=!1,container:h}=t,f=y().blockchains(),{findToken:g}=y(),m=y().swappers(),{customSlippage:C,slippage:S}=y(),k=C||S,[T,v]=sv(t.expanded),b=av(null),A=B(o.value,6,6),D=B(n.value,6,6),w=n.usdValue?B(n.usdValue,4,4):"",x=Pt(o.usdValue,n.usdValue??null),E=B(x,2,2),N=_t(x??0),L=i((le,at)=>le.map((G,P)=>{let q,V=r?.type===3&&r.swap.swapperId===G.swapperId,ge=r?.type===4&&r.recommendedSlippages?.has(P),ne=a?.type===2&&a.recommendedSlippages?.has(P),he=V||ge,Fe=ne;he?q="error":Fe&&(q="warning");let ve=he?So.t("Slippage Error"):So.t("Slippage Warning");return V&&(ve=So.t("Bridge Limit Error")),{swapper:{displayName:rn(G.swapperId,m)??"",image:G.swapperLogo},from:{token:{displayName:G.from.symbol,image:G.from.logo},chain:{displayName:st(G.from.blockchain,f)??"",image:G.from.blockchainLogo},price:{value:P===0&&!at?B(o.value,6,6):B(G.fromAmount,6,6),usdValue:B((G.from.usdPrice??0)*parseFloat(G.fromAmount),4,4),realValue:P===0?o.value:G.fromAmount,realUsdValue:new Ms(G.from.usdPrice??0).multipliedBy(G.fromAmount).toString()}},to:{token:{displayName:G.to.symbol,image:G.to.logo},chain:{displayName:st(G.to.blockchain,f)||"",image:G.to.blockchainLogo},price:{value:B(G.toAmount,6,6),usdValue:B((G.to.usdPrice??0)*parseFloat(G.toAmount),4,4),realValue:G.toAmount,realUsdValue:new Ms(G.to.usdPrice??0).multipliedBy(G.toAmount).toString()}},state:q,alerts:he||Fe?F.createElement(Xd,{dense:d},F.createElement(ev,{variant:"alarm",type:he?"error":"warning",title:ve,footer:F.createElement(Yd,null,V&&F.createElement("div",null,F.createElement(Zo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(Yo,{direction:"vertical",size:2}),F.createElement(Zo,{size:"xsmall",variant:"body",color:"neutral900"},So.t({id:"Yours: {amount} {symbol}",values:{amount:B(G.fromAmount,6,6),symbol:G?.from.symbol}}))),(ge||ne)&&!V&&F.createElement("div",null,F.createElement(Zo,{size:"xsmall",variant:"body",color:"neutral900"},So.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(P)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(P)}}})),F.createElement(Yo,{direction:"vertical",size:2}),F.createElement(Zo,{size:"xsmall",variant:"body",color:"neutral900"},So.t({id:"Yours: {userSlippage}",values:{userSlippage:k}}))))})):void 0,time:ln(G.estimatedTimeInSeconds),fee:B(Ba(G,g),2,2),internalSwaps:G.internalSwaps?L(G.internalSwaps):void 0}}),"getQuoteSteps"),W=L(e?.swaps??[]),j=W.length,te=h||I(),J=Rp(t.quote.tags||[]),M=!!u,X=mr(e?.swaps),se=ln(X),z=Mr(e?.swaps??[],g),me=B(z,2,2),vt=z.gte(new Ms(Hp)),Ze=X/Gp>=qp;return d?F.createElement(tv,{selected:l,fee:me,time:se,tooltipContainer:ro(),steps:W,tags:J,quoteCost:F.createElement(Bs,{quote:e,fullExpandedMode:!0,time:se,fee:me,feeWarning:vt,timeWarning:Ze,showModalFee:p,steps:j}),percentageChange:E,warningLevel:N,outputPrice:{value:D,usdValue:w,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(tm,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:om()},!c&&J.length?F.createElement(F.Fragment,null,F.createElement(um,null,J.map((le,at)=>{let G=`${le.value}_${at}`;return F.createElement(F.Fragment,{key:G},F.createElement(nv,{label:le.label,value:le.value}),F.createElement(Yo,{size:4,direction:"horizontal"}))})),F.createElement(oi,null),!M&&F.createElement(Yo,{size:4})):null,F.createElement("div",{id:"portal-root",className:nm()},F.createElement(Bs,{quote:e,time:se,fee:me,feeWarning:vt,timeWarning:Ze,showModalFee:p,steps:j}),M&&F.createElement(em,{onClick:le=>{le.stopPropagation(),u()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Zo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},So.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:rm()},F.createElement(cm,null,F.createElement(ov,{size:12,color:"gray"})),F.createElement(pm,null,F.createElement(As,{size:"small",variant:"body"},`${A} ${W[0].from.token.displayName} = `),F.createElement(Em,{content:n.value,container:te,open:n.value?void 0:!1},F.createElement(As,{size:"small",variant:"body"},"\xA0",`${D} ${W[W.length-1].to.token.displayName}`))),F.createElement(Em,{content:n.usdValue,container:te},F.createElement(Yo,{size:2,direction:"horizontal"}),F.createElement(Zo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&F.createElement(iv,{tooltipContainer:te,type:"output",direction:"vertical",price:{value:D,usdValue:w,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:W[j-1].to.token.displayName,image:W[j-1].to.token.image},chain:{image:W[j-1].to.chain.image},percentageChange:E,warningLevel:N}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(Ln,{from:W[0].from,to:W[j-1].to,percentageChange:E,warningLevel:N}),F.createElement(Yo,{size:4}))),F.createElement(Jd,{selected:l,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:v},F.createElement(xm,{type:s,quoteRef:b,selected:l,setExpanded:v,container:te,expanded:T,steps:W}),F.createElement(sm,{open:T},F.createElement(lm,null),F.createElement("div",{className:Rd()},W.map((le,at)=>{let G=`item-${at}`;return F.createElement(rv,{type:"quote-details",key:G,tooltipContainer:te,step:le,hasSeparator:at!==W.length-1,state:le.state})})))))}i(Ps,"Quote");import{Divider as uv,Skeleton as dv}from"@rango-dev/ui";import Ot from"react";import{darkTheme as lv,styled as di}from"@rango-dev/ui";var Im=di("div",{$$color:"$colors$neutral100",[`.${lv} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Am=di("div",{paddingTop:"$2"}),Nm=di("div",{paddingLeft:"$8"}),Wm=di("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Um,Divider as St,Skeleton as tt}from"@rango-dev/ui";import Q from"react";import{css as cv,styled as Ft}from"@rango-dev/ui";var _s=Ft("div",{display:"flex"}),Bm=Ft("div",{padding:"$10 $0 $20"}),Lm=Ft("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Mm=Ft("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Pm=Ft("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),_m=Ft("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Dm=Ft("div",{width:"65%",display:"flex",justifyContent:"start"}),$m=Ft("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Fm=Ft("div",{padding:"$15 $0 $15 $0"}),Om=cv({display:"flex",justifyContent:"space-between",alignItems:"center"});function _n(t){let{type:e,tagHidden:o=!0}=t,n=Q.createElement(Pm,null,Q.createElement(Dm,null,Q.createElement(Um,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),Q.createElement(St,{size:8,direction:"horizontal"}),Q.createElement($m,null,Q.createElement(tt,{height:10,width:60,variant:"rounded"}),Q.createElement(St,{size:4}),Q.createElement(tt,{height:15,variant:"rounded"}))),Q.createElement(tt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return Q.createElement("div",null,!o&&Q.createElement(Q.Fragment,null,Q.createElement(_s,null,Q.createElement(tt,{width:65,height:20,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:65,height:20,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:65,height:20,variant:"rounded"})),Q.createElement(oi,null),!r&&Q.createElement(St,{size:4})),Q.createElement("div",{className:Om()},Q.createElement(_s,null,Q.createElement(tt,{width:60,height:10,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:60,height:10,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:60,height:10,variant:"rounded"})),r&&Q.createElement(tt,{width:85,height:24,variant:"rounded"})),e==="basic"&&Q.createElement(Bm,null,Q.createElement(tt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&Q.createElement(Lm,null,Q.createElement(Mm,null,Q.createElement(Um,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),Q.createElement(St,{direction:"horizontal",size:4}),Q.createElement(tt,{height:15,width:150,variant:"rounded"})),Q.createElement(St,{size:10}),Q.createElement(tt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&Q.createElement(Q.Fragment,null,Q.createElement(St,{size:4}),Q.createElement(Fm,null,n,Q.createElement(_m,null),n),Q.createElement(St,{size:12})))}i(_n,"QuoteSummarySkeleton");import{ChainToken as Gm,Divider as $s,NextIcon as pv,Skeleton as mi}from"@rango-dev/ui";import Ee from"react";import{styled as Dn}from"@rango-dev/ui";var zm=Dn("div",{display:"flex",alignItems:"start"}),Qm=Dn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ds=Dn("div",{display:"flex",alignItems:"center",flexGrow:1}),Hm=Dn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),qm=Dn("div",{display:"flex",alignItems:"center"});function Nt(t){let{separator:e=!0}=t;return Ee.createElement(Ee.Fragment,null,Ee.createElement(qm,null,Ee.createElement(mi,{height:22,width:22,variant:"circular"}),Ee.createElement($s,{direction:"horizontal",size:8}),Ee.createElement(mi,{height:15,width:148,variant:"rounded"})),Ee.createElement(zm,null,Ee.createElement(Wm,{hideSeparator:!e}),Ee.createElement(Qm,{extraSpace:e},Ee.createElement(Ds,null,Ee.createElement(Gm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement($s,{direction:"horizontal",size:8}),Ee.createElement(mi,{height:12,variant:"rounded"})),Ee.createElement(Hm,null,Ee.createElement(pv,{color:"gray",size:16})),Ee.createElement(Ds,null,Ee.createElement(Gm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement($s,{direction:"horizontal",size:8}),Ee.createElement(mi,{height:12,variant:"rounded"})))))}i(Nt,"StepSkeleton");function $n(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Ot.createElement(Im,{expanded:o,rounded:e!=="basic"},Ot.createElement(_n,{type:e,tagHidden:n}),Ot.createElement(Am,null,Ot.createElement(dv,{height:15,variant:"rounded"})),o&&Ot.createElement(Nm,null,Ot.createElement(uv,{size:24}),Ot.createElement(Nt,null),Ot.createElement(Nt,null),Ot.createElement(Nt,{separator:!1})))}i($n,"QuoteSkeleton");function Co(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:c,showModalFee:p,selected:u,onClickAllRoutes:d,fullExpandedMode:h=!1,container:f}=t,{inputAmount:g,inputUsdValue:m}=O(),C=e?.outputAmount?new mv(e?.outputAmount):null,S=e?ct(e):null,T=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?fi.createElement(Es,null,fi.createElement($n,{tagHidden:l,type:o,expanded:s})):T?fi.createElement(Es,{onClick:()=>c?.(e)},fi.createElement(Ps,{quote:e,error:r,container:f,showModalFee:p,warning:a,tagHidden:l,selected:u,type:o,expanded:s,onClickAllRoutes:d,fullExpandedMode:h,input:{value:g,usdValue:m?.toString()??""},output:{value:C?.toString()??"",usdValue:S?.toString()??""}})):null}i(Co,"QuoteInfo");import{calculatePendingSwap as yv}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Sv}from"react";import{useRef as fv,useState as gv}from"react";var hv=2e3;function gi({request:t}){let[e,o]=gv(!1),n=fv(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(c=>setTimeout(c,hv)),await s(l,!1)),"retryFetch"),s=i(async(l,c=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(l,{signal:n.current.signal});return n.current=null,p}catch(p){if(c)return await a(l);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(gi,"useFetch");function Vm(){let{fetch:t,loading:e,cancelFetch:o}=gi({request:async(n,r)=>await xt().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Vm,"useFetchConfirmQuote");function hi(t){if(!t.swaps)throw new Error(R().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Fs(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(hi,"throwErrorIfResponseIsNotValid");function Fs(t){if(ru(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=iu(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=cu(t);if(o){let n=Pr(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Fs,"getQuoteError");function Km(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,l={quote:null,balance:null},c=Fo({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});c&&(l.quote=c);let p=du(e,r,n.blockchains);return p.length===0||(l.balance={messages:p}),l}i(Km,"generateWarnings");function yi(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:t?.code==="ERR_BAD_REQUEST"?{swap:null,error:{type:0,diagnosisMessage:t.response.data.error},warnings:null}:{swap:null,error:{type:1},warnings:null}}i(yi,"handleQuoteErrors");function Os(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:l}=O(),{slippage:c,customSlippage:p}=y(),u=y().getDisabledLiquiditySources(),d=y().blockchains(),h=y().tokens(),{findToken:f}=y(),g=p||c,{fetch:m,cancelFetch:C,loading:S}=Vm();return Sv(()=>C,[]),{loading:S,fetch:i(async T=>{let v=T.selectedWallets,b=T?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=v.reduce((w,x)=>(w[x.chain]=x.address,w),{}),D={requestId:a?.requestId||"",selectedWallets:A,destination:b||void 0};try{return await m(D,!0).then(w=>{let{result:x}=w;if(!x)throw new Error("Error fetching updated route");hi({diagnosisMessages:x.diagnosisMessages,requestId:x.requestId,swaps:x.result?.swaps});let E={outputAmount:x.result?.outputAmount,requestId:x.requestId,resultType:x.result?.resultType,swaps:x.result?.swaps||[],validationStatus:x.validationStatus,requestAmount:x.requestAmount};r(E);let N={slippage:g.toString(),disabledSwappersGroups:u},L=Km({previousQuote:a??void 0,currentQuote:E,meta:{blockchains:d},selectedWallets:v,userSlippage:g,inputUsdValue:n,findToken:f});l();let W=!!L.balance,j=yv(o.toString(),x,uu(v),N,!W,{blockchains:d,tokens:h});return{quote:E,swap:j,error:null,warnings:L}})}catch(w){return yi(w)}},"fetch"),cancelFetch:C}}i(Os,"useConfirmSwap");var Av=vv("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${jm}`]:{width:"$48",height:"$48"}}),Nv=Qs({flexGrow:1,paddingRight:"$10"}),Wv=Qs({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Bv=Qs({display:"flex",justifyContent:"space-between",alignItems:"center"});function Xm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=Iv(),[l,c]=Fn(""),p=!n,[u,d]=Fn(!1),[h,f]=Fn(!1),{isActiveTab:g}=re(),m=y().getDisabledLiquiditySources(),C=Ev(m),{manager:S}=Cv(),{fetch:k,loading:T,cancelFetch:v}=Os(),[b,A]=Fn({swap:null,error:null,warnings:null}),[D,w]=Fn(!1),x=i(async({selectedWallets:M,customDestination:X})=>{let se=await k?.({selectedWallets:M,customDestination:X});return A(se),se},"onConfirmSwap"),E=i(async()=>{if(b.swap&&n)try{await S?.create("swap",{swapDetails:b.swap},{id:b.swap.requestId});let M=`../${$.swaps}/${b.swap.requestId}`;s(M,{replace:!0}),setTimeout(()=>{e("")},0)}catch(M){c("Error: "+M?.message)}},"addNewSwap"),N=i(async()=>{f(!0),await E(),f(!1)},"onConfirm"),L=i(async()=>{b.warnings?.quote&&Yp(b.warnings.quote)&&!a?w(!0):await N()},"onStartConfirmSwap"),W=i(async()=>{A({error:null,swap:null,warnings:null}),k({selectedWallets:o,customDestination:r}).then(M=>{A(M)}).catch(M=>console.error(M))},"onRefresh");Si(()=>{!!C.current.length&&!m.length&&W(),C.current=m},[m.length]),Si(()=>{p&&v()},[p]),Si(()=>{p&&d(p)},[p]),Si(()=>{p||k({selectedWallets:o,customDestination:r}).then(M=>A(M)).catch(M=>console.error(M))},[]),xv(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let j=b.warnings?.quote??null,te=b.error,J=[];if(l&&J.push(Me.createElement(kv,{type:"error",variant:"alarm",title:l})),j||te){let M=`../${$.settings}`;J.push(Me.createElement(Wn,{warning:j,error:te,couldChangeSettings:!1,refetchQuote:W,showWarningModal:D,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await E()},onChangeSettings:()=>s(M)}))}return Me.createElement(oe,{header:{title:Us.t("Confirm Swap"),onWallet:()=>{let M=`../${$.wallets}`;s(M)}},footer:Me.createElement(Av,null,Me.createElement("div",{className:Nv()},Me.createElement(Tv,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||h,disabled:!!b.error||!g,onClick:L},Us.t("Start Swap"))),Me.createElement(jm,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||h,disabled:!g,onClick:d.bind(null,!0)},Me.createElement(bv,{size:24})))},u&&Me.createElement(Wd,{open:u,onClose:()=>d(!1),onCancel:v,loading:T,onCheckBalance:x}),Me.createElement(ie,null,Me.createElement("div",{className:Bv()},Me.createElement(wv,{variant:"title",size:"small"},Us.t("You get")),Me.createElement("div",{className:Wv()},Me.createElement(Ur,{onClick:!T&&!u&&!D?W:void 0}))),Me.createElement(zs,{size:"12"}),Bu(J.map((M,X)=>({element:M,key:`alert-${X}`})),Me.createElement(zs,{size:10})),J.length>0?Me.createElement(zs,{size:10}):null,Me.createElement(Co,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:b.error,loading:T,warning:b.warnings?.quote??null})))}i(Xm,"ConfirmSwapPage");import{i18n as Ut}from"@lingui/core";import{Button as Rs,CustomTokensZeroStateDarkIcon as Kv,CustomTokensZeroStateIcon as jv,DeleteIcon as Xv,Divider as Qn,IconButton as Yv,MessageBox as Zv,NotFound as Jv,styled as tl}from"@rango-dev/ui";import de,{useState as el}from"react";import{useNavigate as Rv}from"react-router-dom";import{CloseIcon as Mv,IconButton as Pv,SearchIcon as _v,TextField as Dv}from"@rango-dev/ui";import On from"react";import{styled as Lv}from"@rango-dev/ui";var Ym=Lv("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Ct(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:c,...p}=t;return On.createElement(Dv,{prefix:On.createElement(Ym,null,On.createElement(_v,{color:"black"})),suffix:!!s.length&&On.createElement(Pv,{variant:"ghost",onClick:()=>c?.(""),size:"small"},On.createElement(Mv,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...l},size:r,value:s,onChange:a,...p})}i(Ct,"SearchInput");import{i18n as Js}from"@lingui/core";import{darkTheme as lf,Divider as Ro,ExternalLinkIcon as Ov,Image as Uv,ListItemButton as zv,NotFound as Qv,PinIcon as Hv,Skeleton as cf,Typography as Ti,VirtualizedList as qv}from"@rango-dev/ui";import H from"react";import{Divider as af,ListItem as Fv,Skeleton as Un}from"@rango-dev/ui";import kt from"react";import{css as Jo,darkTheme as Zm,ImageContainer as $v,styled as ut,Typography as Jm}from"@rango-dev/ui";var Hs=Jo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),qs=Jo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Gs=Jo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Vs=Jo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Zm} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Ks=Jo({}),js=Jo(),Rm=ut("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),Xs=ut("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Ci=ut("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${qs}`]:{[`& .${Vs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Ks}`]:{bottom:"-15px"},[`& .${Hs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Gs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ys=ut("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Zs=ut(Jm,{}),ef=ut("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${js}`]:{$$color:"$colors$neutral600",[`.${Zm} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ki=ut("div",{display:"flex",alignItems:"end",flexDirection:"column"}),ez=ut("div",{display:"flex",alignItems:"center"}),tf=ut("div",{position:"relative",[`& ${$v}`]:{borderRadius:"$xm",overflow:"hidden"}}),of=ut("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),nf=ut(Jm,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),rf=ut("a",{"& svg:hover":{color:"$colors$info"}});function sf(t){return kt.createElement(Ci,null,Array.from(Array(t.size),e=>kt.createElement(Fv,{key:e,hasDivider:!0,start:kt.createElement(Un,{variant:"circular",width:35,height:35}),end:kt.createElement(ki,null,kt.createElement(Un,{variant:"text",size:"large",width:70}),kt.createElement(af,{size:4}),kt.createElement(Un,{variant:"text",size:"medium",width:50})),title:kt.createElement("div",null,kt.createElement(Un,{variant:"text",size:"large",width:90}),kt.createElement(af,{size:4}),kt.createElement(Un,{variant:"text",size:"medium",width:90}))})))}i(sf,"LoadingTokenList");var Gv=20,Vv=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return H.createElement("div",{className:qs()},o?H.createElement("div",{className:Hs()},o):H.createElement(Xs,{className:Gs()},H.createElement(Ti,{variant:"title",size:"xmedium"},r.symbol),H.createElement(Ro,{direction:"horizontal",size:4}),H.createElement(Ys,{css:a},H.createElement(Zs,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&H.createElement("div",{className:`${Vs()} ${!o&&Ks()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",H.createElement(Ro,{size:4,direction:"horizontal"}),H.createElement(rf,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:c=>c.stopPropagation()},H.createElement(Ov,{size:12}))))},"renderDesc");function zn(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s}=t,l=y().fetchStatus,c=y().blockchains(),{getBalanceFor:p,fetchingWallets:u}=y(),{isTokenPinned:d}=y(),h=i(g=>{let m=yr(p(g));return s?s(g):u?H.createElement(ki,null,H.createElement(cf,{variant:"text",size:"large",width:70}),H.createElement(Ro,{size:4}),H.createElement(cf,{variant:"text",size:"medium",width:50})):m&&H.createElement(ef,null,H.createElement(nf,{variant:"title",size:"small"},m.amount),H.createElement("div",null),m.usdValue&&H.createElement(Ti,{variant:"body",className:js(),size:"xsmall"},`$${m.usdValue}`))},"endRenderer"),f=i(()=>H.createElement(qv,{itemContent:g=>{let m=e[g],C=m.address||"",S=c.find(b=>b.name===m.blockchain),k=Ga(S.color,"main"),T={$$color:k.main150,[`.${lf} &`]:{$$color:k.main750},backgroundColor:"$$color"},v={$$color:k.main750,[`.${lf} &`]:{$$color:k.main150},color:"$$color"};return H.createElement("div",{style:{paddingRight:5}},H.createElement(zv,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":g,key:`${m.symbol}${m.address}`,id:`${m.symbol}${m.address}`,className:"widget-token-list-item-btn",hasDivider:!0,onClick:()=>n&&n(e[g]),start:H.createElement(tf,null,H.createElement(Uv,{src:m.image,size:30}),t.type!=="custom-token"&&d(m,t.type)&&H.createElement(of,null,H.createElement(Hv,{size:12,color:"gray"}))),title:S?.type==="COSMOS"||m.name||!m.name&&!C?H.createElement(Xs,null,H.createElement(Ti,{variant:"title",size:"xmedium"},m.symbol),H.createElement(Ro,{direction:"horizontal",size:4}),H.createElement(Ys,{css:T},H.createElement(Zs,{variant:"body",size:"xsmall",css:v},m.blockchain))):void 0,description:S?.info&&C&&S.type!=="COSMOS"?Vv({address:C,token:e[g],customCssForTag:T,customCssForTagTitle:v,name:m.name,url:S.info.addressUrl.split("{wallet}").join(C)}):m.name||void 0,end:h(m)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList");return H.createElement(H.Fragment,null,a&&H.createElement(H.Fragment,null,H.createElement(Ti,{variant:"label",size:"large"},Js.t("Select Token")),H.createElement(Ro,{size:4})),H.createElement(Rm,null,H.createElement(Ro,{size:4}),l==="loading"&&H.createElement(sf,{size:Gv}),l==="success"&&(e.length?H.createElement(Ci,{as:"ul"},f()):!!o&&H.createElement(Qv,{title:Js.t("No results found"),description:Js.t("Try using different keywords")}))))}i(zn,"TokenList");var ew=tl("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),tw=tl("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),ow=tl(Yv,{"&:hover":{"& svg":{color:"$secondary550"}}});function pf(){let[t,e]=el(""),{deleteCustomToken:o}=y(),n=y().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:l}=O(),{mode:c}=Qo({}),p=Rv(),[u,d]=el(!1),[h,f]=el(),g=i(k=>{let T=k.target.value;e(T)},"handleSearch"),m=c==="dark",C=n.filter(k=>Je(k.symbol,t)||Je(k.address||"",t)||Je(k.name||"",t)),S=i(()=>{if(h){let k=a?lt(a):null,T=r?lt(r):null,v=lt(h);k===v?l({token:null}):T===v&&s({token:null}),o(h)}d(!1)},"handleDeleteCustomToken");return de.createElement(oe,{header:{title:Ut.t("Custom Tokens")}},de.createElement(ie,null,de.createElement(ew,null,n.length?de.createElement(de.Fragment,null,de.createElement(Ct,{value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Ut.t("Search Token"),onChange:g}),de.createElement(Qn,{size:16}),de.createElement(zn,{list:C,type:"custom-token",searchedFor:t,showTitle:!1,action:k=>de.createElement(ow,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),f(k)}},de.createElement(Xv,{size:12,color:"gray"}))})):de.createElement(tw,null,de.createElement(Jv,{icon:m?de.createElement(Kv,{size:200}):de.createElement(jv,{size:200}),title:Ut.t("No custom tokens"),description:Ut.t("press the button to add your custom token")})),de.createElement(Qn,{size:20}),de.createElement(Rs,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p($.addCustomTokens)},Ut.t("Add Custom Token"))),de.createElement(Z,{open:u,dismissible:!0,onClose:()=>d(!1),container:I()},de.createElement(Zv,{title:Ut.t("Delete Custom Token"),type:"error",description:Ut.t("Are you sure you want to Delete this Token?")},de.createElement(Qn,{size:40}),de.createElement(Qn,{size:10}),de.createElement(Rs,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},Ut.t("Yes, Delete it")),de.createElement(Qn,{size:12}),de.createElement(Rs,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},Ut.t("No, Continue"))))))}i(pf,"CustomTokensPage");import{i18n as He}from"@lingui/core";import{useManager as Tw}from"@rango-dev/queue-manager-react";import{Button as ll,darkTheme as vw,Divider as To,MessageBox as ww,NotFound as bw,styled as cl,Typography as bi}from"@rango-dev/ui";import{TransactionStatus as Gn}from"rango-types";import ae,{useMemo as Nf,useState as xi}from"react";import{useNavigate as xw}from"react-router-dom";import{FilterIcon as cw,Popover as pw}from"@rango-dev/ui";import ko from"react";import{css as nw,darkTheme as vi,IconButton as rw,styled as Hn}from"@rango-dev/ui";var ol=Hn("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${vi} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),uf=Hn(rw,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${vi} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${vi} &`]:{backgroundColor:"$neutral"},[`& ${ol}::before`]:{backgroundColor:"$secondary100",[`.${vi} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),df=Hn("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),mf=Hn("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),ff=nw({display:"flex",justifyContent:"space-between",alignItems:"center"}),gf=Hn("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as hf}from"@lingui/core";import{Button as iw,Divider as yf,ListItemButton as aw,Radio as sw,RadioRoot as lw,Typography as Sf}from"@rango-dev/ui";import ot from"react";function Cf(t){let{filterBy:e,onClickItem:o}=t;return ot.createElement(mf,null,ot.createElement("div",{className:ff()},ot.createElement(Sf,{size:"small",variant:"body"},hf.t("Status")),ot.createElement(iw,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},hf.t("Reset"))),ot.createElement(yf,{size:10}),ot.createElement(lw,{value:e},ot.createElement(gf,null,t.list.map((n,r)=>ot.createElement(aw,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:ot.createElement(ot.Fragment,null,ot.createElement(yf,{direction:"horizontal",size:4}),ot.createElement(Sf,{size:"medium",variant:"body"},n.title)),start:ot.createElement(sw,{value:n.id}),onClick:o})))))}i(Cf,"FilterSelectorContent");function nl(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return ko.createElement("div",null,ko.createElement(pw,{open:a,align:"end",onOpenChange:o,container:I(),content:ko.createElement(Cf,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},ko.createElement(uf,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},ko.createElement(ol,{isSelect:!!n},ko.createElement(cw,{size:16,color:"black"}),!!n&&ko.createElement(df,null)))))}i(nl,"FilterSelector");import{i18n as mw}from"@lingui/core";import{Divider as bf,GroupedVirtualizedList as fw,Skeleton as gw,SwapListItem as xf,Typography as hw}from"@rango-dev/ui";import Qe,{useCallback as Ef,useEffect as yw,useRef as Sw,useState as Cw}from"react";function kf(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(kf,"calculateGroupsSoFar");import{css as uw,darkTheme as dw,styled as qn}from"@rango-dev/ui";var rl=uw(),Tf=qn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),il=qn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${rl}`]:{$$color:"$colors$neutral600",[`.${dw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),al=qn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),vf=qn("div",{gap:"$10",display:"flex",flexDirection:"column"}),wf=qn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var kw=10;function sl(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=Cw([]),l=Sw(0),{swaps:c,groupCounts:p,groups:u}=n(e),d=Ef(kf,[]),h=Ef(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,kw),s(d(p,l.current)))},[e.length]);if(yw(()=>{r||h()},[r,h]),r){let f=[1,2];return Qe.createElement(Qe.Fragment,null,[f,f].map((m,C)=>Qe.createElement(il,{key:C},Qe.createElement(al,null,Qe.createElement(gw,{variant:"text",width:60,size:"small"}),Qe.createElement(bf,{size:16})),Qe.createElement(bf,{size:4}),Qe.createElement(vf,null,m.map((k,T)=>Qe.createElement(xf,{isLoading:!0,key:T}))))))}return Qe.createElement(fw,{endReached:()=>{l.current<e.length&&h()},groupCounts:a,groupContent:f=>Qe.createElement(il,null,Qe.createElement(al,null,Qe.createElement(hw,{variant:"label",size:"medium",className:rl()},u[f]))),itemContent:(f,g)=>{let m=c[f];if(!m)return null;let C=m.steps[0],S=m.steps[m.steps.length-1];return Qe.createElement(Tf,{key:m.requestId},Qe.createElement(xf,{requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,tooltipContainer:I(),onlyShowTime:u[g]===mw.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:B(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:B(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(sl,"HistoryGroupedList");import{i18n as wi}from"@lingui/core";import If from"dayjs";var Af=i(t=>{let e=new Map([["today",{title:wi.t("Today"),swaps:[]}],["week",{title:wi.t("This week"),swaps:[]}],["month",{title:wi.t("This month"),swaps:[]}],["year",{title:wi.t("This year"),swaps:[]}]]);function o(c,p){e.has(c)||e.set(c,{title:c,swaps:[]}),e.get(c)?.swaps.push(p)}i(o,"addYearsToOutput");let n=If();t.forEach(c=>{let p=Number(c.creationTime),u=If(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(c);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(c);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(c);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(c);else{let d=new Date(p).getFullYear().toString();o(d,c)}});let r=Array.from(e.values()).filter(c=>c.swaps.length>0),a=r.flatMap(c=>c.swaps),s=r.map(c=>c.swaps.length),l=r.map(c=>c.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var Ew=cl("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Iw=cl("div",{display:"flex",justifyContent:"center",alignItems:"center"}),Aw=cl("div",{"._typography":{color:"$neutral700",[`.${vw}&`]:{color:"$neutral900"}}}),Nw=[{id:Gn.SUCCESS,title:He.t("Complete")},{id:Gn.RUNNING,title:He.t("Running")},{id:Gn.FAILED,title:He.t("Failed")}],Ww=i((t,e)=>t?.length?t.filter(o=>wt(o.fromBlockchain,e)||wt(o.toBlockchain,e)||wt(o.toSymbol,e)||wt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Wf(){let t=xw(),{manager:e,state:o}=Tw(),n=pt(e).map(({swap:T})=>T),[r,a]=xi(""),[s,l]=xi(!1),c=!o.loadedFromPersistor,[p,u]=xi(""),[d,h]=xi(!1),f=i(T=>{let v=T.target.value;a(v)},"handleSearch"),g=Nf(()=>!r&&!p?n:n.filter(T=>{let{inputAmount:v,status:b,steps:A,requestId:D}=T;return(!r||wt(v,r)||wt(b,r)||Ww(A,r)||wt(D,r))&&(!p||p===b)}),[n,r,p]),m=!g?.length&&!c,C=i(()=>h(!1),"onCloseModal"),S=i(async()=>{try{await e?.clearQueue(),h(!1)}catch(T){console.log(T)}},"onClear"),k=Nf(()=>!n.some(T=>T.status===Gn.SUCCESS||T.status===Gn.FAILED),[n]);return ae.createElement(oe,{header:{title:He.t("History"),suffix:ae.createElement(Vt,null,ae.createElement(ll,{id:"widget-history-clear-btn",disabled:k,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},ae.createElement(bi,{size:"medium",variant:"label",color:"error"},He.t("Clear"))))}},ae.createElement(ie,null,ae.createElement(Iw,null,ae.createElement(Ct,{setValue:a,fullWidth:!0,variant:"contained",placeholder:He.t("Search Transaction"),autoFocus:!0,onChange:f,style:{height:36},value:r}),ae.createElement(To,{size:10,direction:"horizontal"}),ae.createElement(nl,{filterBy:p,open:s,onOpenChange:T=>l(T),onClickItem:T=>u(T),list:Nw})),ae.createElement(To,{size:"16"}),ae.createElement(Ew,null,m&&ae.createElement(wf,null,ae.createElement(To,{size:32}),ae.createElement(bw,{title:r?He.t("No results found"):He.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?He.t("Try using different keywords"):He.t("Your transaction history is stored locally and will appear here after you start a swap")})),!m&&ae.createElement(sl,{list:g,onSwapClick:t,groupBy:Af,isLoading:c}))),ae.createElement(Z,{open:d,onClose:C,container:I()},ae.createElement(To,{size:20}),ae.createElement(ww,{type:"warning",title:He.t("Clear Transaction History"),description:ae.createElement(Aw,null,ae.createElement(bi,{variant:"body",size:"medium"},He.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ae.createElement(To,{size:"24"}),ae.createElement(bi,{variant:"body",size:"small"},He.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ae.createElement(To,{size:30}),ae.createElement(ll,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},He.t("Yes, Clear the history")),ae.createElement(To,{size:10}),ae.createElement(ll,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:C},ae.createElement(bi,{variant:"title",size:"medium",color:"primary"},He.t("No, Cancel")))))}i(Wf,"HistoryPage");import{i18n as eb}from"@lingui/core";import{Button as tb,Divider as Zf,styled as ob,WarningIcon as nb}from"@rango-dev/ui";import rb from"bignumber.js";import qe,{useEffect as Jf,useState as Rf}from"react";import{useNavigate as ib}from"react-router-dom";import{i18n as Lf}from"@lingui/core";import{Alert as Lw,Divider as pl,NoRouteIcon as Mw,Typography as Pw}from"@rango-dev/ui";import vo from"react";import{styled as Bw}from"@rango-dev/ui";var Bf=Bw("div",{display:"flex",flexDirection:"column",alignItems:"center"});function ul(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Lt(t,e)?vo.createElement(Bf,null,vo.createElement(pl,{size:10}),vo.createElement(Mw,{size:24,color:"gray"}),vo.createElement(pl,{size:4}),vo.createElement(Pw,{variant:"title",size:"small"},Lf.t("No Routes Found")),vo.createElement(pl,{size:4}),vo.createElement(Lw,{title:Lf.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(ul,"SameTokensWarning");import{i18n as Uw}from"@lingui/core";import{Header as zw}from"@rango-dev/ui";import Jt,{useEffect as Qw,useState as Hw}from"react";import{i18n as Dw}from"@lingui/core";import{Divider as ml,FullExpandedQuote as $w,Typography as Fw}from"@rango-dev/ui";import Ce from"react";import{styled as dl}from"@rango-dev/ui";var Mf=dl("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Pf=dl("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),_f=dl("div",{width:"146px"});import{i18n as Vn}from"@lingui/core";import{Select as _w}from"@rango-dev/ui";import Df from"react";function Ei(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:Vn.t("Smart Routing")},{value:"FEE",label:Vn.t("Lowest Fee")},{value:"SPEED",label:Vn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Vn.t("Maximum Return")},{value:"PRICE",label:Vn.t("Maximum Output")}];return Df.createElement(_f,null,Df.createElement(_w,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Ei,"SelectStrategy");var $f=3;function Kn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:c,quotes:p,updateQuotePartialState:u,fromToken:d,toToken:h,sortStrategy:f,error:g}=O(),{slippage:m,customSlippage:C}=y(),{findToken:S}=y(),k=l||I(),T=!!p&&p.results.length,v=C??m,b=i(w=>{if(!d||!h||!p)return null;let x={requestAmount:p.requestAmount,validationStatus:null,...w};return Fo({currentQuote:x,userSlippage:v,findToken:S})},"getQuoteWarning"),A=g?.type===0||g?.type===1,D=p?.results?Lr(f,p?.results):[];return Ce.createElement(Ce.Fragment,null,a&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Pf,null,Ce.createElement(Fw,{size:"xmedium",variant:"title"},Dw.t("Sort by")),Ce.createElement(Ei,{container:k})),Ce.createElement(ml,{size:"10"})),e&&Array.from({length:$f},(w,x)=>Ce.createElement(Ce.Fragment,{key:x},s?Ce.createElement($w,{loading:!0}):Ce.createElement($n,{tagHidden:!1,type:"list-item",expanded:!1}),x!==$f-1&&Ce.createElement(ml,{size:16}))),!e&&Ce.createElement(Ce.Fragment,null,T?D.map((w,x)=>{let E=b(w),N=Fs(w.swaps),L=D.length-1===x;return Ce.createElement(Ce.Fragment,{key:w.requestId},Ce.createElement(Co,{showModalFee:r,container:k,selected:c?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:N?.options||null,warning:E,fullExpandedMode:s,onClick:W=>{N||u("warning",E),u("error",N?.options||null),o(W)},type:"list-item"}),!L&&Ce.createElement(ml,{size:16}))}):A&&Ce.createElement(Mf,null,Ce.createElement(An,{size:s?"large":"small",error:g,fetch:n}))))}i(Kn,"Quotes");import{darkTheme as Ow,styled as Ff}from"@rango-dev/ui";var Of=Ff("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${Ow} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Uf=Ff("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var qw=100;function fl(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=Hw(!1),c=s?"":"is-hidden",{config:p}=y(),u=p?.variant==="full-expanded",d=ro();return Qw(()=>{let h=null;return a?h=setTimeout(()=>{l(!0)},qw):(l(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),Jt.createElement(Of,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${c} ${Hr()}`,id:De.EXPANDED_BOX_ID},Jt.createElement(zw,{title:Uw.t("Routes"),suffix:Jt.createElement(Jt.Fragment,null,Jt.createElement(Ei,{container:d}),Jt.createElement(go,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Jt.createElement(Uf,null,Jt.createElement(Kn,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:ro(),onClickOnQuote:n,fullExpandedMode:u})))}i(fl,"ExpandedQuotes");import{i18n as Kf}from"@lingui/core";import{SwapInput as jf}from"@rango-dev/ui";import jw from"bignumber.js";import jn from"react";import{ReverseIcon as Kw}from"@rango-dev/ui";import hl from"react";import{keyframes as Gw,styled as zf}from"@rango-dev/ui";var gl=450,Vw=Gw({"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)"}}),Qf=zf("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Hf=zf("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${Vw} ${gl}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 yl(){let t=O.use.switchFromAndTo();return hl.createElement(Qf,null,hl.createElement(Hf,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},gl),t()}},hl.createElement(Kw,{size:12})))}i(yl,"SwitchFromAndToButton");import{styled as qf}from"@rango-dev/ui";var Gf=qf("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Vf=qf("div",{position:"relative"});function Sl(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:c,setInputAmount:p,inputAmount:u,inputUsdValue:d,outputAmount:h,outputUsdValue:f,selectedQuote:g}=O(),{connectedWallets:m,getBalanceFor:C}=y(),S=a?C(a):null,k=yr(S)?.amount??"0",T=S?new jw(S.amount).shiftedBy(-S.decimals):ce,v=!!s&&zc(m,s.name),b=!Wa(g,u,d),A=!Wa(g,u,f),D=!d||!f||!f.gt(0)?null:Pt(d.toString(),f.toString());return jn.createElement(Gf,null,jn.createElement(Vf,null,jn.createElement(jf,{label:Kf.t("From"),mode:"From",onInputChange:p,balance:k,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:u,usdValue:b?void 0:B(d,4,4),realUsdValue:b?void 0:d?.toString(),error:b?R().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:I(),onSelectMaxBalance:()=>{let w=B(T,S?.decimals),x=S?.amount?w:"";p(x)},anyWalletConnected:m.length>0}),jn.createElement(yl,null)),jn.createElement(jf,{sharpBottomStyle:!r&&(!!g||e),label:Kf.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:c?.displayName||"",image:c?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:B(Pt(d,f),2,2),warningLevel:_t(D??0),price:{value:B(h,6,6),usdValue:A?void 0:B(f,4,4),realValue:h?.toString(),realUsdValue:A?void 0:f?.toString(),error:A?R().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:I()}))}i(Sl,"Inputs");import{useCallback as Xw,useEffect as Yw,useRef as Zw,useState as Jw}from"react";function Xf(){let{fetch:t,loading:e,cancelFetch:o}=gi({request:async(n,r)=>await xt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Xf,"useFetchAllQuotes");var Rw=600;function Ii({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Xf(),{excludeLiquiditySources:n,routing:r}=y().config,{connectedWallets:a}=y(),{fromToken:s,toToken:l,inputAmount:c,inputUsdValue:p,selectedQuote:u,sortStrategy:d,resetQuote:h,error:f,warning:g,setSelectedQuote:m,updateQuotePartialState:C}=O(),{slippage:S,customSlippage:k,affiliatePercent:T,affiliateRef:v,affiliateWallets:b,fetchStatus:A}=y(),D=y().getLiquiditySources(),w=y().getDisabledLiquiditySources(),x=y().excludeLiquiditySources(),{findToken:E}=y(),[N,L]=Jw(!0),W=Zw(c),j=k??S,J=!s||!l||Lt(s,l)||!cn(c),M=i(z=>{L(z)},"resetState"),X=i(z=>{let{fromToken:me,toToken:vt,inputAmount:Ze,liquiditySources:le,excludeLiquiditySources:at,disabledLiquiditySources:G,slippage:P,affiliateRef:q,affiliatePercent:V,affiliateWallets:ge}=z;if(N||M(!0),!J&&me&&vt){h();let ne=pu({fromToken:me,toToken:vt,inputAmount:Ze,liquiditySources:le,excludeLiquiditySources:at,disabledLiquiditySources:G,wallets:a,slippage:P,affiliateRef:q,affiliatePercent:V,affiliateWallets:ge});Wo("experimental",r)&&(ne.experimental=!0),Wo("avoidNativeFee",r)&&(ne.avoidNativeFee=!0),Wo("enableCentralizedSwappers",r)&&(ne.enableCentralizedSwappers=!0),r?.maxLength&&(ne.maxLength=r.maxLength),e(ne).then(he=>{let Fe=Lr(d,he.results),ve=Jp(u,Fe,he.requestAmount);L(!1),C("quotes",he),m(ve),hi({diagnosisMessages:he.diagnosisMessages,requestId:ve?.requestId||"",swaps:ve?.swaps});let mt=ve&&Fo({currentQuote:ve,userSlippage:j,findToken:E});C("warning",mt)}).catch(he=>{let{error:Fe}=yi(he);(Fe?.type===0||Fe?.type===1)&&h(),Fe?.type!==2&&(C("error",Fe),L(!1))})}},"fetch"),se=Xw(Nc(z=>{X(z)},Rw),[J]);return Yw(()=>{if(!t){L(!1);return}if(A!=="success")return;if(J){L(!1),(u||f||g)&&h();return}if(!cn(c)||p?.eq(0)){M(!1),o();return}h(),M(!0);let z=X;return W.current&&W.current!=c&&(z=se),W.current=c,z({inputAmount:c,fromToken:s,toToken:l,liquiditySources:D,excludeLiquiditySources:x,disabledLiquiditySources:w,slippage:j,affiliateRef:v,affiliatePercent:T,affiliateWallets:b}),o},[A,c,s?.symbol,s?.address,s?.blockchain,l?.symbol,l?.address,l?.blockchain,J,D?.length,n,w.length,j,v,T,JSON.stringify(b)]),{fetch:()=>X({inputAmount:c,fromToken:s,toToken:l,liquiditySources:D,excludeLiquiditySources:x,disabledLiquiditySources:w,slippage:j,affiliateRef:v,affiliatePercent:T,affiliateWallets:b}),loading:N}}i(Ii,"useSwapInput");function Yf(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};ye.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Yf,"emitPreventableEvent");var ab=ob("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),sb=300;function eg(){let t=ib(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:c,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:h}=O(),[f,g]=Rf(!1),{isLargeScreen:m,isExtraLargeScreen:C}=si(),{fetch:S,loading:k}=Ii({refetchQuote:a}),{config:T,fetchStatus:v,connectedWallets:b}=y(),{isActiveTab:A}=re(),[D,w]=Rf(!1),E=au({fetchMetaStatus:v,fetchingQuote:k,inputAmount:n,quote:r,anyWalletConnected:b.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),N=jc(m,C,T?.variant),L=!!n&&!!e&&!!o&&new rb(n).gt(0)&&!yu(e,o),W=L&&v==="success"&&k,J=(!N||N&&c?.results.length)&&(l||s);Jf(()=>{u(),h("refetchQuote",!0)},[]),Jf(()=>{g(L)},[L]);let M=(r||s)&&!D?S:void 0,X=i(z=>{N&&f?(g(!1),setTimeout(()=>{t(z)},sb)):t(z)},"onHandleNavigation"),se=i(z=>{r?.requestId!==z.requestId&&(w(!1),p(z))},"onClickOnQuote");return qe.createElement(ab,null,qe.createElement(oe,{height:"auto",footer:qe.createElement(tb,{id:`widget-swap-${E.action}-btn`,type:"primary",size:"large",disabled:E.disabled||!A,prefix:E.action==="confirm-warning"&&qe.createElement(nb,null),fullWidth:!0,onClick:()=>{E.action==="connect-wallet"?Yf({type:"clickConnectWallet"},()=>X($.wallets)):E.action==="confirm-warning"?w(!0):X($.confirmSwap)}},E.title),header:{onWallet:()=>{X($.wallets)},hasBackButton:!1,title:T.title||eb.t("Swap"),suffix:qe.createElement(go,{hidden:N?["refresh"]:void 0,onClickRefresh:M,onClickHistory:()=>X($.swaps),onClickSettings:()=>{X($.settings)}})}},qe.createElement(ie,null,qe.createElement(Sl,{fetchingQuote:W,fetchMetaStatus:v,isExpandable:N,onClickToken:z=>{X(z==="from"?$.fromSwap:$.toSwap)}}),qe.createElement(Zf,{size:"2"}),N?null:qe.createElement(Co,{quote:r,loading:W,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:c&&c.results.length>1?()=>{h("refetchQuote",!1),X($.routes)}:void 0}),J?qe.createElement(qe.Fragment,null,qe.createElement(Zf,{size:"10"}),qe.createElement(Wn,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:S,showWarningModal:D,confirmationDisabled:!A,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),d(!0),X($.confirmSwap)},onChangeSettings:()=>X($.settings)})):null,qe.createElement(ul,null))),N?qe.createElement(fl,{loading:W,onClickOnQuote:se,fetch:S,onClickRefresh:M,isVisible:f}):null)}i(eg,"Home");import{i18n as tg}from"@lingui/core";import{Alert as lb,Divider as cb,List as pb,ListItemButton as ub,Radio as db,RadioRoot as mb,Typography as fb}from"@rango-dev/ui";import Wt from"react";function Rt(){let{setLanguage:t,language:e,config:o}=y(),n=Rc,r=o?.language||Bo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Bo),resetLanguage:()=>t(null)}}i(Rt,"useLanguage");function og(){let{activeLanguage:t,changeLanguage:e,languages:o}=Rt(),n=je(),r=o.map(a=>{let{local:s,label:l,SVGFlag:c}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Wt.createElement(fb,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Wt.createElement(db,{value:s}),start:Wt.createElement(c,null)}});return Wt.createElement(oe,{header:{title:tg.t("Language")}},Wt.createElement(ie,null,Wt.createElement(lb,{type:"warning",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Wt.createElement(cb,{size:"8"}),Wt.createElement(mb,{value:t},Wt.createElement(pb,{type:Wt.createElement(ub,{title:tg.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(og,"LanguagePage");import{i18n as zt}from"@lingui/core";import{Button as Cb,Checkbox as kb,Image as Tb,ListItemButton as vb,NotFound as wb,Typography as bb}from"@rango-dev/ui";import Ge,{useState as xb}from"react";import{Checkbox as yb,Skeleton as rg}from"@rango-dev/ui";import Yn from"react";import{styled as Cl}from"@rango-dev/ui";var Xn=Cl("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),kl=Cl("div",{width:80,display:"flex",justifyContent:"flex-end"}),Tl=Cl("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as gb,styled as hb}from"@rango-dev/ui";var ng=hb(gb,{height:61});var Sb=30;function vl(){return Yn.createElement(Xn,null,Array.from(Array(Sb),(t,e)=>Yn.createElement(ng,{hasDivider:!0,key:e,start:Yn.createElement(rg,{variant:"circular",width:35,height:35}),title:Yn.createElement(rg,{variant:"text",size:"large",width:90}),end:Yn.createElement(yb,{checked:!1})})))}i(vl,"LoadingLiquiditySourceList");function wl({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=xb(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),c=kr(o,n),p={Exchanges:zt.t("Exchanges"),Bridges:zt.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=c.filter(S=>u.includes(S.type)),h=d.length===d.filter(S=>S.selected).length,f=i(()=>{d.forEach(S=>{h?s(S.groupTitle):S.selected||s(S.groupTitle)})},"toggleAllSources"),g=d.map(S=>{let{selected:k,groupTitle:T,logo:v,id:b,...A}=S;return{id:`widget-setting-liquidity-source-${b.toLowerCase().replace(/\s+/g,"-")}-item-btn`,start:Ge.createElement(Tb,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(T)},end:Ge.createElement(kb,{checked:k,disabled:l}),title:Ge.createElement(bb,{variant:"title",size:"xmedium"},zt.t(T)),selected:k,groupTitle:T,logo:v,...A}}),m=i(S=>{let k=S.target.value;a(k)},"handleSearch"),C=g;return r&&(C=g.filter(S=>wt(S.groupTitle,r))),Ge.createElement(oe,{header:{title:zt.t(t),suffix:Ge.createElement(kl,null,Ge.createElement(Cb,{id:`widget-liquidity-source-${h?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:f},h?zt.t("Deselect all"):zt.t("Select all")))}},Ge.createElement(ie,{view:!0},Ge.createElement(Ct,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:zt.t("Search {sourceType}",{sourceType:p[t]}),onChange:m}),e==="loading"&&Ge.createElement(vl,null),!C.length&&r?Ge.createElement(Tl,null,Ge.createElement(wb,{title:zt.t("No results found"),description:zt.t("Try using different keywords")})):e==="success"&&Ge.createElement(Xn,{disabled:l},C.map(S=>{let{groupTitle:k,...T}=S;return Ge.createElement(Ge.Fragment,{key:S.id},Ge.createElement(vb,{style:{height:"61px"},...T,selected:!1,hasDivider:!0}))}))))}i(wl,"LiquiditySourcePage");import{i18n as Eb}from"@lingui/core";import Ai from"react";import{useNavigate as Ib}from"react-router-dom";function ig(){let t=Ib(),e=je(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:l,loading:c}=Ii({refetchQuote:n}),p=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${$.settings}`,d=`../${$.wallets}`;return Ai.createElement(oe,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:Eb.t("Routes"),suffix:Ai.createElement(go,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Ai.createElement(ie,null,Ai.createElement(Kn,{fetch:l,loading:c,onClickOnQuote:p})))}i(ig,"RoutesPage");import{i18n as dg}from"@lingui/core";import{Divider as mg,getCategoriesCount as $b,SelectableCategoryList as Fb}from"@rango-dev/ui";import Qt,{useState as fg}from"react";import{useNavigate as Ob}from"react-router-dom";import{i18n as bl}from"@lingui/core";import{Divider as Bb,Image as Lb,ListItemButton as Mb,NotFound as Pb,Typography as ug}from"@rango-dev/ui";import nt,{useEffect as _b,useState as Db}from"react";var ag=i((t,e,o)=>t.filter(n=>dr(n.type,o)).filter(n=>Je(n.name,e)||Je(n.displayName,e)),"filterBlockchains");import{ImageContainer as Ab,styled as sg}from"@rango-dev/ui";var lg=sg("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Ni=sg(bn,{padding:0,margin:0,listStyle:"none",[`& ${Ab}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as Nb,Skeleton as cg}from"@rango-dev/ui";import Wi from"react";var Wb=20;function pg(){return Wi.createElement(Ni,null,Array.from(Array(Wb),t=>Wi.createElement(Nb,{key:t,hasDivider:!0,start:Wi.createElement(cg,{variant:"circular",width:35,height:35}),title:Wi.createElement(cg,{variant:"text",size:"large",width:90})})))}i(pg,"LoadingBlockchainList");function xl(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,l]=Db(e),{fetchStatus:c}=y();_b(()=>{l([...ag(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?nt.createElement(Pb,{title:bl.t("No results found"),description:bl.t("Try using different keywords")}):nt.createElement(Ni,{as:"ul",key:`${r}-${o}`},s.map(u=>nt.createElement(Mb,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:nt.createElement(Lb,{src:u.logo,size:30}),title:nt.createElement(ug,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return nt.createElement(nt.Fragment,null,a&&nt.createElement(nt.Fragment,null,nt.createElement(ug,{variant:"label",size:"large"},bl.t("Select Chain")),nt.createElement(Bb,{size:4})),nt.createElement(lg,null,c==="loading"&&nt.createElement(pg,null),c==="success"&&p()))}i(xl,"BlockchainList");function Bi(t){let{type:e}=t,o=je(),[n,r]=fg(""),[a,s]=fg("ALL"),l=O.use.setToBlockchain(),c=O.use.setFromBlockchain(),{fetchStatus:p}=y(),u=Ob(),d=y().blockchains({type:e}),h=$b(d),f=!t.hideCategory&&h!==1;return Qt.createElement(oe,{header:{title:dg.t("Select Chain")}},Qt.createElement(ie,{view:!0},f&&Qt.createElement(Qt.Fragment,null,Qt.createElement(Fb,{setCategory:s,category:a,blockchains:d,isLoading:p==="loading"}),Qt.createElement(mg,{size:24})),Qt.createElement(Ct,{value:n,autoFocus:!0,placeholder:dg.t("Search Chain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:g=>r(g.target.value)}),Qt.createElement(mg,{size:16}),Qt.createElement(xl,{list:d,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:g=>{e==="custom-token"?u(`..?blockchain=${g.name}`,{replace:!0}):(e==="source"?c(g):l(g),o())}})))}i(Bi,"SelectBlockchainPage");import{i18n as Mi}from"@lingui/core";import{Divider as kg}from"@rango-dev/ui";import wo,{useState as Kb}from"react";import{useNavigate as jb}from"react-router-dom";import{i18n as Al}from"@lingui/core";import{BlockchainsChip as Li,Divider as Sg,Image as Cg,Skeleton as qb,Tooltip as Gb,Typography as Nl}from"@rango-dev/ui";import Pe from"react";import{useEffect as Qb}from"react";var gg=["ETH","COSMOS","OSMOSIS"];function El(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Ub),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let c=0;c<=l;c++){let p=n[c];s=s.filter(u=>p.name!==u)}}n.sort(zb(s)),r=n.splice(a)}return{list:n,more:r}}i(El,"prepare");function Ub(t,e){let o=gg,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(Ub,"sortByMostUsedBlockchains");function zb(t){return i(function(o,n){let r=t.findIndex(c=>c===o.name),a=t.findIndex(c=>c===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(zb,"generateSortByPreferredBlockchainsFor");function hg(t,e){return!!e.list.find(o=>o.name===t)}i(hg,"isInVisibleList");function Il(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();Qb(()=>{if(e?.selected){let a=El(t,o,e);hg(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=El(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Il,"usePrepareBlockchainList");import{styled as Hb}from"@rango-dev/ui";var yg=Hb("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Vb=12;function Wl(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Il(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),c=O.use.resetToBlockchain(),p=O.use.resetFromBlockchain(),u=s.more.length>0,d=s.more.length===1,h=!d&&u;return Pe.createElement(Pe.Fragment,null,Pe.createElement(Sg,{size:12}),Pe.createElement(Nl,{variant:"label",size:"large"},Al.t("Select Chain")),Pe.createElement(Sg,{size:12}),Pe.createElement(yg,null,l==="loading"&&Array.from(Array(Vb),f=>Pe.createElement(qb,{key:f,variant:"rounded",height:50})),l==="success"&&Pe.createElement(Pe.Fragment,null,Pe.createElement(Li,{selected:!n,onClick:()=>{o==="from"?p():c()}},Pe.createElement(Nl,{variant:"body",size:"xsmall",color:"secondary500"},Al.t("All"))),s.list.map(f=>Pe.createElement(Gb,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:I()},Pe.createElement(Li,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Pe.createElement(Cg,{src:f.logo,size:30})))),d?Pe.createElement(Li,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Pe.createElement(Cg,{src:s.more[0].logo,size:30})):null,h?Pe.createElement(Li,{onClick:a,key:"more-blockchains"},Pe.createElement(Nl,{variant:"body",size:"xsmall",color:"secondary500"},Al._("More +{count}",{count:s.more.length}))):null)))}i(Wl,"BlockchainsSection");function Bl(t){let{type:e}=t,o=jb(),n=je(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:c,setToBlockchain:p}=O(),{getBalanceFor:u}=y(),[d,h]=Kb(""),g=(e==="source"?r:a)?.name??"",m=y().blockchains({type:e}),C=y().tokens({type:e,blockchain:g,searchFor:d,getBalanceFor:u}),S=i(v=>{e==="source"?c(v):p(v)},"updateBlockchain"),k=i(v=>{e==="source"?s({token:v,meta:{blockchains:m,tokens:C}}):l({token:v,meta:{blockchains:m,tokens:C}})},"updateToken"),T={source:Mi.t("Source"),destination:Mi.t("Destination")};return wo.createElement(oe,{header:{title:Mi.t("Swap {type}",{type:T[e]})}},wo.createElement(ie,null,wo.createElement(Wl,{blockchains:m,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o($.blockchains),onChange:v=>{S(v)}}),wo.createElement(kg,{size:24}),wo.createElement(Ct,{value:d,autoFocus:!0,placeholder:Mi.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>h(""),onChange:v=>h(v.target.value)}),wo.createElement(kg,{size:16}),wo.createElement(zn,{list:C,selectedBlockchain:g,searchedFor:d,type:e,onChange:v=>{k(v);let b=m.find(A=>v.blockchain===A.name);b&&S(b),n()}})))}i(Bl,"SelectSwapItemsPage");import{i18n as Pl}from"@lingui/core";import{Alert as kx,Button as Tx,styled as vx}from"@rango-dev/ui";import bo from"react";import{useInRouterContext as wx,useSearchParams as bx}from"react-router-dom";import{i18n as Eg}from"@lingui/core";import{Divider as Ig,InfoIcon as Jb,SlippageIcon as Rb,TextField as ex,Tooltip as tx,Typography as Ag}from"@rango-dev/ui";import rt from"react";import{Chip as Xb,styled as Zn,TextField as Yb}from"@rango-dev/ui";var Tg=Zn("div",{paddingTop:"$5",padding:"$10 $5"}),vg=Zn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Yb}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),wg=Zn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Pi=Zn("div",{maxWidth:"280px",padding:"$10"}),bg=Zn(Xb,{width:"61px",flexShrink:0});import{i18n as Ll}from"@lingui/core";import{Typography as Zb}from"@rango-dev/ui";import Jn from"react";function xg(){return Jn.createElement(Pi,null,Jn.createElement(Zb,{variant:"label",size:"medium",color:"neutral700"},Ll.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Jn.createElement("br",null),Jn.createElement("br",null),Jn.createElement("b",null,Ll.t("Warning")),":\xA0",Ll.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(xg,"SlippageTooltipContent");function Ml(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return rt.createElement(Tg,null,rt.createElement(wg,null,rt.createElement(Rb,{size:16,color:"gray"}),rt.createElement(Ig,{direction:"horizontal",size:4}),rt.createElement(Ag,{variant:"title",size:"xmedium"},Eg.t("Slippage tolerance per swap")),rt.createElement(Ig,{direction:"horizontal",size:4}),rt.createElement(tx,{container:I(),side:"top",sideOffset:4,content:rt.createElement(xg,null)},rt.createElement(Jb,{color:"gray"}))),rt.createElement(vg,null,ep.map((r,a)=>{let s=`slippage-${a}`;return rt.createElement(bg,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),rt.createElement(ex,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=rp&&s<=np?n(s):n(null)},suffix:o&&rt.createElement(Ag,{variant:"body",size:"small"},"%"),placeholder:Eg.t("Custom")})))}i(Ml,"Slippage");import{i18n as dt}from"@lingui/core";import{AutoThemeIcon as Ng,BridgesIcon as ox,ChevronRightIcon as _i,DarkModeIcon as Wg,Divider as Rn,ExchangeIcon as nx,InfinityIcon as rx,InfoIcon as ix,LanguageIcon as ax,LightModeIcon as Bg,List as sx,ListItem as lx,ListItemButton as cx,Skeleton as px,styled as ux,Switch as dx,Tabs as mx,TargetIcon as fx,Tooltip as gx,Typography as Ye}from"@rango-dev/ui";import _ from"react";import{useNavigate as hx}from"react-router-dom";var yx=ux("div",{width:"202px",height:"$40"}),Sx=[{id:"light",icon:_.createElement(Bg,{color:"black",size:24}),tooltip:_.createElement(Ye,{size:"xsmall",variant:"body"},dt.t("Light"))},{id:"dark",icon:_.createElement(Wg,{color:"black",size:24}),tooltip:_.createElement(Ye,{size:"xsmall",variant:"body"},dt.t("Dark"))},{id:"auto",icon:_.createElement(Ng,{color:"black",size:24}),tooltip:_.createElement(Ye,{size:"xsmall",variant:"body"},dt.t("Auto"))}],Cx=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return _.createElement(Ng,{...e});case"dark":return _.createElement(Wg,{...e});default:return _.createElement(Bg,{...e})}},"getThemeIcon");function Lg(){let t=hx(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=Rt(),s=a.find(M=>M.local===r)?.label,l=y().fetchStatus,c=y().swappers(),p=y().getDisabledLiquiditySources(),{config:{features:u}}=y(),d=y().customTokens(),h=Ve("theme",u),f=Ve("liquiditySource",u),g=Ve("language",u),m=Ve("customTokens",u),C=y().infiniteApprove,S=y().toggleInfiniteApprove,k=kr(c,p),T=k.filter(M=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(M.type)),v=T.length,b=T.filter(M=>M.selected).length,A=k.filter(M=>M.type==="DEX"),D=A.length,w=A.filter(M=>M.selected).length,x=i((M,X)=>{switch(l){case"loading":return _.createElement(px,{variant:"text",size:"medium",width:50});case"failed":return _.createElement(Ye,{variant:"body",size:"medium",color:"$error500"},dt.t("Loading failed"));default:return _.createElement(Ye,{variant:"body",size:"medium"},`${M} / ${X}`)}},"handleSwapperEndItem"),E={id:"widget-setting-bridge-item-btn",title:_.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Bridges")),end:_.createElement(_.Fragment,null,x(b,v),_.createElement(Rn,{direction:"horizontal",size:8}),_.createElement(_i,{color:"black"})),onClick:()=>t($.bridges),start:_.createElement(ox,{color:"gray",size:16})},N={id:"widget-setting-exchange-item-btn",title:_.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Exchanges")),end:_.createElement(_.Fragment,null,x(w,D),_.createElement(Rn,{direction:"horizontal",size:8}),_.createElement(_i,{color:"black"})),start:_.createElement(nx,{color:"gray",size:16}),onClick:()=>t($.exchanges)},L={id:"widget-setting-custom-tokens-item-btn",title:_.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Custom Tokens")),end:_.createElement(_.Fragment,null,_.createElement(Ye,{variant:"body",size:"medium"},`${d.length}`),_.createElement(Rn,{direction:"horizontal",size:8}),_.createElement(_i,{color:"black"})),start:_.createElement(fx,{color:"gray",size:16}),onClick:()=>t($.customTokens)},W={id:"widget-setting-language-item-btn",title:_.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Language")),start:_.createElement(ax,{color:"gray",size:16}),end:_.createElement(_.Fragment,null,_.createElement(Ye,{variant:"body",size:"medium"},s),_.createElement(Rn,{direction:"horizontal",size:8}),_.createElement(_i,{color:"black"})),onClick:()=>t($.languages)},j={id:"widget-setting-infinite-approval-item-btn",title:_.createElement(_.Fragment,null,_.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Infinite approval")),_.createElement(Rn,{direction:"horizontal",size:4}),_.createElement(gx,{side:"top",sideOffset:4,container:I(),content:_.createElement(Pi,null,_.createElement(Ye,{variant:"label",size:"medium",color:"neutral700"},_.createElement("b",null,dt.t("Warning")),":\xA0",dt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},_.createElement(ix,{color:"gray"}))),start:_.createElement(rx,{color:"gray",size:16}),end:_.createElement(dx,{checked:C}),onClick:S},te={id:"widget-setting-theme-item-btn",type:_.createElement(lx,null),title:_.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Theme")),end:_.createElement(yx,null,_.createElement(mx,{container:I(),items:Sx,value:n,onChange:M=>o(M.id),type:"primary",borderRadius:"small"})),start:Cx(n)},J=f?[]:[E,N];return m||J.push(L),g||J.push(W),J.push(j),!e?.singleTheme&&!h&&J.push(te),_.createElement(sx,{type:_.createElement(cx,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:J})}i(Lg,"SettingsLists");var xx=vx("div",{paddingLeft:"$8"});function Mg(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=bx(),r=wx(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return bo.createElement(oe,{header:{title:Pl.t("Settings")}},bo.createElement(ie,null,o&&bo.createElement(kx,{type:"info",variant:"alarm",title:Pl.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:bo.createElement(xx,null,bo.createElement(Tx,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Pl.t("Reset")))}),bo.createElement(Ml,null),bo.createElement(Lg,null)))}i(Mg,"SettingsPage");import{i18n as mE}from"@lingui/core";import{cancelSwap as fE}from"@rango-dev/queue-manager-rango-preset";import{useManager as gE}from"@rango-dev/queue-manager-react";import{Alert as hE}from"@rango-dev/ui";import Zl from"react";import{useParams as yE}from"react-router-dom";import{i18n as it}from"@lingui/core";import{getCurrentNamespaceOfOrNull as jx,getCurrentStep as Xx,getRelatedWalletOrNull as Yx}from"@rango-dev/queue-manager-rango-preset";import{Button as mh,CopyIcon as Zx,Divider as Jx,DoneIcon as Rx,IconButton as eE,QuoteCost as tE,RangoExplorerIcon as oE,StepDetails as nE,Tooltip as fh,Typography as xo,useCopyToClipboard as rE}from"@rango-dev/ui";import{useWallets as iE}from"@rango-dev/wallets-react";import gh from"bignumber.js";import{PendingSwapNetworkStatus as Hi}from"rango-types";import K,{useEffect as hh,useRef as aE,useState as yh}from"react";import{useNavigate as sE}from"react-router-dom";import{i18n as eo}from"@lingui/core";var Ex=[eo.t("Sunday"),eo.t("Monday"),eo.t("Tuesday"),eo.t("Wednesday"),eo.t("Thursday"),eo.t("Friday"),eo.t("Saturday")];function Pg(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?eo.t("Today"):`${Ex[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Pg,"timeSince");function _g(t){return t.finishTime?Pg(parseInt(t.finishTime)):Pg(parseInt(t.creationTime))}i(_g,"getSwapDate");import{PendingSwapNetworkStatus as Fi}from"rango-types";import Oi from"react";import{i18n as Di}from"@lingui/core";import{Button as Dg,Divider as _l,MessageBox as Ix}from"@rango-dev/ui";import to from"react";var $g=i(({onCancel:t,onClose:e})=>to.createElement(to.Fragment,null,to.createElement(_l,{size:20}),to.createElement(Ix,{type:"error",title:Di.t("Cancel Swap"),description:Di.t("Are you sure you want to cancel this swap?")}),to.createElement(_l,{size:32}),to.createElement(Dg,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Di.t("Yes, Cancel it")),to.createElement(_l,{size:12}),to.createElement(Dg,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Di.t("No, Continue"))),"CancelContent");import{i18n as $i}from"@lingui/core";import{Button as Fg,Divider as Dl,MessageBox as Ax,Typography as Nx}from"@rango-dev/ui";import Ht from"react";var Og=i(({onDelete:t,onClose:e})=>Ht.createElement(Ht.Fragment,null,Ht.createElement(Dl,{size:20}),Ht.createElement(Ax,{type:"error",title:$i.t("Delete Transaction"),description:$i.t("Are you sure you want to delete this swap?")}),Ht.createElement(Dl,{size:32}),Ht.createElement(Fg,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},$i.t("Yes, Delete it")),Ht.createElement(Dl,{size:12}),Ht.createElement(Fg,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Ht.createElement(Nx,{variant:"title",size:"medium",color:"primary"},$i.t("No, Cancel")))),"DeleteContent");import{i18n as $l}from"@lingui/core";import{PendingSwapNetworkStatus as Fl}from"rango-types";var Ol={[Fl.WaitingForNetworkChange]:{type:"loading",title:$l.t("Change Network")},[Fl.WaitingForConnectingWallet]:{type:"warning",title:$l.t("Connect Wallet")},[Fl.NetworkChanged]:{type:"success",title:$l.t("Network Changed")}};import{warn as Wx}from"@rango-dev/logging-core";import{MessageBox as Bx,Wallet as Lx}from"@rango-dev/ui";import{useWallets as Mx}from"@rango-dev/wallets-react";import en,{useState as Px}from"react";import{styled as Ul}from"@rango-dev/ui";var Ug=Ul("div",{display:"flex",justifyContent:"center"}),P5=Ul("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),zg=Ul("img",{width:"100%"});var Qg=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[l,c]=Px(),{getWalletInfo:p,state:u}=Mx(),d=n?.walletType,h=d?pn(u(d)):null,f=d?p(d):null,g=a&&!!d&&!!h&&!!f,{list:m}=ft(),C=i(()=>{if(d){let S=m.find(k=>k.type===d);S?c(S):Wx(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${S}`))}},"handleWalletItemClick");return en.createElement(en.Fragment,null,en.createElement(Bx,{type:e,title:o,description:r}),g&&en.createElement(Ug,null,en.createElement(Lx,{container:I(),title:f.name,image:f.img,type:d,state:h,link:f.installLink,disabled:s,onClick:C})),en.createElement(po,{wallet:l,onClose:()=>{c(void 0)}}))},"WalletStateContent");function zl(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,c=e===Fi.WaitingForNetworkChange||e===Fi.WaitingForConnectingWallet||e===Fi.NetworkChanged;return Oi.createElement(Z,{open:!!e,onClose:o,container:document.getElementById(De.SWAP_BOX_ID)||document.body},c&&Oi.createElement(Qg,{type:Ol[e].type,title:Ol[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==Fi.WaitingForNetworkChange}),e==="delete"&&Oi.createElement(Og,{onClose:o,onDelete:n}),e==="cancel"&&Oi.createElement($g,{onClose:o,onCancel:r}))}i(zl,"SwapDetailsModal");import{i18n as er}from"@lingui/core";import{Button as Ql,Divider as tr,MessageBox as Gg,TokenAmount as _x,Typography as Vg}from"@rango-dev/ui";import fe from"react";import{Link as Dx,useNavigate as $x}from"react-router-dom";var Hg="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",qg="/profile";function Hl(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:c,chain:p,percentageChange:u,description:d,diagnosisUrl:h}=t,f=$x(),{showProfileBanner:g}=re();return fe.createElement(Z,{open:e,onClose:o,container:document.getElementById(De.SWAP_BOX_ID)||document.body},n==="success"?fe.createElement(Gg,{type:"success",title:er.t("Swap Successful")},fe.createElement(_x,{direction:"vertical",tooltipContainer:I(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:c,chain:p,percentageChange:u}),fe.createElement(tr,{size:12}),fe.createElement(Vg,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):fe.createElement(Gg,{type:"error",title:er.t("Transaction Failed"),description:d}),fe.createElement(tr,{size:30}),n==="success"&&fe.createElement(fe.Fragment,null,g&&fe.createElement(fe.Fragment,null,fe.createElement(Dx,{to:qg},fe.createElement(zg,{src:Hg,alt:"Profile Banner"})),fe.createElement(tr,{size:30})),fe.createElement(Ql,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},er.t("Done"))),fe.createElement(tr,{size:12}),h&&fe.createElement(fe.Fragment,null,fe.createElement(Ql,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},er.t("Diagnosis")),fe.createElement(tr,{size:12})),fe.createElement(Ql,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},fe.createElement(Vg,{variant:"title",size:"medium",color:"primary"},er.t("See Details"))))}i(Hl,"SwapDetailsCompleteModal");import Kx from"react";import{i18n as Hx}from"@lingui/core";import{Alert as ch,IconButton as qx,LinkIcon as Gx}from"@rango-dev/ui";import oo,{Fragment as Vx}from"react";import{Alert as Ox,ChevronDownIcon as Ux,IconButton as zx}from"@rango-dev/ui";import on,{useState as Qx}from"react";import{css as or,darkTheme as Kg,styled as qt,Typography as Fx}from"@rango-dev/ui";var jg=qt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Ui=qt("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Kg} &`]:{color:"$secondary500"}}}}}),Xg=qt(bn,{padding:"$0 $20 $20 $20"}),TK=qt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Yg=qt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),vK=qt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),tn=or({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Kg} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Zg=or({padding:"$5 0"}),zi=or({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Jg=or({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Rg=or({width:"100%",padding:"0 $20 $10"}),eh=qt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),th=qt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Qi=qt(Fx,{wordBreak:"break-word"});import{styled as ql}from"@rango-dev/ui";var oh=ql("div",{display:"flex",flexDirection:"column",gap:"$10"}),nh=ql("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),rh=ql("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function ih(t){let{message:e}=t,[o,n]=Qx(!1);return on.createElement(Ox,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&on.createElement(zx,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},on.createElement(nh,{rotated:o},on.createElement(Ux,{size:12,color:"gray"}))),footer:on.createElement(rh,{open:o},on.createElement(Qi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(ih,"FailedAlert");import{i18n as ah}from"@lingui/core";import{Alert as Gl,Button as sh}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Vl}from"rango-types";import nr from"react";function lh(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?nr.createElement(Gl,{type:"warning",title:n.shortMessage,action:nr.createElement(sh,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Vl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},ah.t("Change"))}):r===Vl.WaitingForConnectingWallet?nr.createElement(Gl,{type:"warning",title:n.shortMessage,action:nr.createElement(sh,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Vl.WaitingForConnectingWallet)}},ah.t("Connect"))}):nr.createElement(Gl,{type:"warning",title:n.shortMessage})}i(lh,"WarningAlert");function Kl(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=vn(a),c=a.status==="waitingForApproval"&&!l,p=a.status==="running"&&!l,u=p&&!s||c&&!a.explorerUrl?.length;return oo.createElement(oh,null,a.explorerUrl?.map((d,h,f)=>{let g=h+d.url,m=h===f.length-1,C=(m&&p||c)&&!u,S=m&&a.status==="failed";return oo.createElement(Vx,{key:g},oo.createElement(ch,{type:m&&(C&&"loading"||S&&"error")||"success",title:d.description?`${d.description} Tx`:Hx.t("View transaction"),action:d.url&&oo.createElement(qx,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},oo.createElement(Gx,{size:12}))}))}),u&&oo.createElement(ch,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&oo.createElement(lh,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&oo.createElement(ih,{message:r}))}i(Kl,"SwapDetailsAlerts");var ph=2e3;var uh=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=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:st(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:B(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:st(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:B(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:rn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(c=>({from:{chain:{displayName:st(c.fromBlockchain,e)??"",image:c.fromBlockchainLogo??""}},to:{chain:{displayName:st(c.toBlockchain,e)??"",image:c.toBlockchainLogo??""}},swapper:{displayName:rn(c.swapperId,o)??"",image:c.swapperLogo??"",type:c.swapperType}})):[],alerts:Kx.createElement(Kl,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function dh(t){if(vn(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(dh,"getStepState");function jl(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=iE(),c=y().blockchains(),p=y().swappers(),{findToken:u}=y(),d=O.use.retry(),h=re.use.isActiveTab(),f=sE(),[g,m]=rE(ph),C=aE(null),[S,k]=yh(null),[T,v]=yh(null),b=i(()=>{r(),k(null)},"onCancel"),A=be.use.getNotifications(),D=be.use.removeNotification(),w=A(),x=Xx(e),E=x?.networkStatus;hh(()=>{w.find(mt=>mt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),D(e.requestId)):T&&v(null))},[e.status,e.requestId]),hh(()=>{M?k(Hi.WaitingForNetworkChange):E===Hi.WaitingForConnectingWallet||E===Hi.NetworkChanged?k(E):k(null)},[E]);let N=fu(e),L=x?jx(e,x):null,W=x?Yx(e,x):null,j=_g(e),te=gu(e),J=i(ve=>!!l(ve)?.mobileWallet,"isMobileWallet"),M=E===Hi.WaitingForNetworkChange&&!!L&&!!W?.walletType&&(J(W.walletType)||a(W.walletType,L.network)),X=M?s.bind(null,W.walletType,[{namespace:L.namespace,network:L.network}]):void 0,se=mu(e,x),z=uh({swap:e,switchNetwork:X,showNetworkModal:E,setNetworkModal:k,message:se,blockchains:c,swappers:p}),me=z.length,[vt,Ze]=[e.steps[0],e.steps[me-1]],le=Ze.outputAmount||Ze.expectedOutputAmountHumanReadable,at=e.steps.reduce((ve,mt)=>ve+parseFloat(mt.feeInUsd||""),0),G=e.steps.find(ve=>ve.diagnosisUrl)?.diagnosisUrl,P=B(parseFloat(le||"0")*(Ze.toUsdPrice||0),4,4),q=B(parseFloat(e.inputAmount)*(vt.fromUsdPrice||0),4,4),V=le?new gh(le).multipliedBy(Ze.toUsdPrice||0).toString():"",ge=new gh(e.inputAmount).multipliedBy(vt.fromUsdPrice||0).toString(),ne=Pt(q,P),he=se.detailedMessage.content||se.shortMessage,Fe=e.status==="success"?it.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:B(le,6,6),token:z[me-1].to.token.displayName,conciseAddress:Sr(e.wallets[z[me-1].to.chain.displayName]?.address||""),chain:z[me-1].to.chain.displayName}}):K.createElement(th,null,K.createElement(xo,{variant:"body",size:"medium",color:"neutral700",align:"center"},he?"":it.t("Transaction was not sent."),N?`${it.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:N.outputAmount,symbol:N.symbol,blockchain:N.blockchain}})}`:""),he&&K.createElement(Qi,{align:"center",variant:"body",size:"medium",color:"neutral700"},K.createElement("b",null,"Reason:")," ",he));return K.createElement(oe,{header:{title:it.t("Swap Details"),onCancel:e.status==="running"?()=>k("cancel"):void 0,suffix:e.status!=="running"&&K.createElement(Vt,null,K.createElement(mh,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>k("delete")},K.createElement(xo,{size:"medium",variant:"label",color:"error"},it.t("Delete"))))},footer:te&&!T&&K.createElement(mh,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let ve=Br(e,c,u);d(ve),setTimeout(()=>{f("../../")},0)}},it.t("Try again"))},K.createElement(ie,{compact:!0,view:!0},K.createElement(Ui,null,K.createElement("div",{className:tn()},K.createElement(xo,{variant:"label",size:"large",color:"neutral700"},`${it.t("Request ID")}`),K.createElement("div",{className:zi()},K.createElement(xo,{variant:"label",size:"small",color:"neutral700"},o),K.createElement(fh,{container:I(),content:g?it.t("Copied To Clipboard"):it.t("Copy Request ID"),open:g||void 0,side:"bottom",alignOffset:-16,align:"end"},K.createElement(eE,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:m.bind(null,o||"")},g?K.createElement(Rx,{size:16,color:"secondary"}):K.createElement(Zx,{size:16,color:"gray"}))),K.createElement(eh,{target:"_blank",href:`${Tc}/swap/${o}`},K.createElement(fh,{container:I(),content:it.t("View on Rango Explorer"),side:"bottom"},K.createElement(oE,{size:20}))))),K.createElement("div",{className:tn()},K.createElement(xo,{variant:"label",size:"large",color:"neutral700"},e.finishTime?it.t("Finished at"):it.t("Created at")),K.createElement(xo,{variant:"label",size:"small",color:"neutral700"},j))),K.createElement("div",{className:Jg()},K.createElement(tE,{fee:B(String(at),2,2),time:ln(mr(e.steps)),steps:me}),K.createElement(Ln,{from:{price:{value:B(e.inputAmount,6,6),usdValue:q,realUsdValue:ge,realValue:e.inputAmount},token:{displayName:z[0].from.token.displayName,image:z[0].from.token.image},chain:{image:z[0].from.chain.image,displayName:z[0].from.chain.displayName}},to:{price:{value:B(le,6,6),usdValue:P,realUsdValue:V,realValue:le||""},token:{displayName:z[me-1].to.token.displayName,image:z[me-1].to.token.image},chain:{image:z[me-1].to.chain.image,displayName:z[me-1].to.chain.displayName}},percentageChange:B(ne,2,2),warningLevel:_t(ne??0)})),K.createElement("div",{className:Rg()},K.createElement(xo,{variant:"title",size:"small"},it.t("Swaps steps"))),K.createElement(Jx,{size:8}),K.createElement(Xg,{ref:C},z.map((ve,mt)=>{let rc=mt,nn=dh(e.steps[mt]),Gh=nn==="error"||nn==="in-progress"||nn==="warning"||nn==="completed"&&mt===z.length-1;return K.createElement(nE,{key:rc,step:ve,type:"swap-progress",ref:C,state:nn,hasSeparator:mt!==0,tabIndex:rc,isFocused:Gh,tooltipContainer:I()})}))),K.createElement(zl,{state:S,onClose:()=>k(null),onCancel:b,onDelete:n,message:se.detailedMessage.content,currentStepWallet:W,walletButtonDisabled:!h}),K.createElement(Hl,{open:!!T,diagnosisUrl:G,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:B(le,6,6),usdValue:P,realUsdValue:V,realValue:le||"",percentageChange:B(ne,2,2),token:{displayName:z[me-1].to.token.displayName,image:z[me-1].to.token.image},chain:{image:z[me-1].to.chain.image},description:Fe}))}i(jl,"SwapDetails");import{i18n as Gi}from"@lingui/core";import{Divider as kh,NotFound as dE,Skeleton as ir,Typography as Vi}from"@rango-dev/ui";import ke from"react";import{i18n as lE}from"@lingui/core";import{Divider as cE,Skeleton as pE,Typography as uE}from"@rango-dev/ui";import Te from"react";import{css as Tt,styled as Xl}from"@rango-dev/ui";var Sh=Xl("div",{width:"100%",height:"100%",padding:"$10 $20"}),rr=Xl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),qi=Xl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),P4=Tt({display:"flex",justifyContent:"space-between",alignItems:"center"}),_4=Tt({display:"flex",justifyContent:"space-between",alignItems:"center"}),D4=Tt({paddingTop:"$15",display:"flex"}),$4=Tt({padding:"$15 $0"}),F4=Tt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),O4=Tt({paddingBottom:"$10"}),U4=Tt({display:"flex",justifyContent:"start",alignItems:"center"}),z4=Tt({paddingTop:"$5",display:"flex",alignItems:"center"}),Q4=Tt({display:"flex",alignItems:"center"}),H4=Tt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Ch=Tt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Yl(){return Te.createElement(Sh,null,Te.createElement(_n,{type:"swap-preview"}),Te.createElement("div",{className:"swaps-steps"},Te.createElement(uE,{variant:"title",size:"small"},lE.t("Swaps steps"))),Te.createElement(Te.Fragment,null,Te.createElement(rr,null,Te.createElement(Nt,{separator:!1}),Te.createElement("div",{className:Ch()},Te.createElement(cE,{direction:"horizontal",size:20}),Te.createElement(pE,{height:22,variant:"rectangular"}))),Te.createElement(qi,null),Te.createElement(rr,null,Te.createElement(Nt,{separator:!1})),Te.createElement(qi,null),Te.createElement(rr,null,Te.createElement(Nt,{separator:!1})),Te.createElement(qi,null),Te.createElement(rr,null,Te.createElement(Nt,{separator:!1}))))}i(Yl,"LoadingSwapDetails");function Th(t){let{requestId:e,showSkeleton:o}=t;return ke.createElement(oe,{header:{title:Gi.t("Swap Details"),suffix:ke.createElement(Vt,null)}},o&&ke.createElement(jg,null,ke.createElement(Ui,null,ke.createElement("div",{className:tn()},ke.createElement(Vi,{variant:"label",size:"large",color:"neutral700"},`${Gi.t("Request ID")}`),ke.createElement("div",{className:zi()},ke.createElement(Vi,{variant:"label",size:"small",color:"neutral700"},ke.createElement(ir,{width:60,height:10,variant:"rounded"})),ke.createElement(kh,{direction:"horizontal",size:4}),ke.createElement(ir,{width:16,height:16,variant:"rectangular"}),ke.createElement(kh,{direction:"horizontal",size:4}),ke.createElement(ir,{width:16,height:16,variant:"rectangular"}))),ke.createElement("div",{className:tn()},ke.createElement(Vi,{className:Zg(),variant:"label",size:"large",color:"neutral700"},ke.createElement(ir,{width:60,height:10,variant:"rounded"})),ke.createElement(Vi,{variant:"label",size:"small",color:"neutral700"},ke.createElement(ir,{width:60,height:10,variant:"rounded"})))),ke.createElement(Yl,null)),!o&&ke.createElement(Yg,null,ke.createElement(dE,{title:Gi.t("Not found"),description:Gi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Th,"SwapDetailsPlaceholder");function vh(){let{manager:t,state:e}=gE(),o=!e.loadedFromPersistor,n=pt(t),{requestId:r}=yE(),a=je(),{fetchStatus:s}=y();if(!r)return Zl.createElement(hE,{containerStyles:{margin:"20px"},type:"error",title:mE.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",c=r?n.find(({swap:h})=>h.requestId===r):void 0,p=i(()=>{if(c?.id){let h=t?.get(c.id);h&&fE(h)}},"onCancel"),u=i(async()=>{if(c?.id)try{t?.deleteQueue(c.id),a()}catch(h){console.log(h)}},"onDelete"),d=c?.swap;return!d||l?Zl.createElement(Th,{requestId:r,showSkeleton:l}):Zl.createElement(jl,{swap:d,requestId:r,onCancel:p,onDelete:u})}i(vh,"SwapDetailsPage");import{i18n as wh}from"@lingui/core";import{Divider as SE,getCategoriesCount as CE,SelectableCategoryList as kE,styled as xh,Typography as TE,Wallet as vE}from"@rango-dev/ui";import Bt,{useState as bh}from"react";var wE=xh("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),bE=xh(ie,{textAlign:"center"});function Eh(){let{fetchStatus:t}=y(),[e,o]=bh("ALL"),n=y().blockchains(),{config:r}=y(),[a,s]=bh(),l=re.use.isActiveTab(),{list:c}=ft(),p=Hc(c,n),d=CE(p)!==1,h=qc(c,e),f=i(g=>{Lc(c,r.multiWallets)||s(g)},"handleWalletItemClick");return Bt.createElement(oe,{header:{title:wh.t("Connect Wallets")}},Bt.createElement(bE,null,d&&Bt.createElement(Bt.Fragment,null,Bt.createElement(kE,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),Bt.createElement(SE,{size:24})),Bt.createElement(TE,{variant:"title",size:"xmedium",align:"center"},wh.t("Choose a wallet to connect.")),Bt.createElement(wE,null,h.map((g,m)=>{let C=`wallet-${m}-${g.type}`;return Bt.createElement(vE,{key:C,...g,container:I(),onClick:()=>f(g),isLoading:t==="loading",disabled:!l})}),Bt.createElement(po,{wallet:a,onClose:()=>{s(void 0)}}))))}i(Eh,"WalletsPage");function Ih(){return Cu(),$a(),xE([{path:$.home,element:_e.createElement(eg,null)},{path:$.routes,element:_e.createElement(ig,null)},{path:$.fromSwap,children:[{index:!0,element:_e.createElement(Bl,{type:"source"})},{path:$.blockchains,element:_e.createElement(Bi,{type:"source"})}]},{path:$.toSwap,children:[{index:!0,element:_e.createElement(Bl,{type:"destination"})},{path:$.blockchains,element:_e.createElement(Bi,{type:"destination"})}]},{path:$.settings,children:[{index:!0,element:_e.createElement(Mg,null)},{path:$.languages,element:_e.createElement(og,null)},{path:$.exchanges,element:_e.createElement(wl,{sourceType:"Exchanges"})},{path:$.bridges,element:_e.createElement(wl,{sourceType:"Bridges"})},{path:$.customTokens,children:[{index:!0,element:_e.createElement(pf,null)},{path:$.addCustomTokens,children:[{index:!0,element:_e.createElement(ed,null)},{path:$.blockchains,element:_e.createElement(Bi,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:$.swaps,children:[{index:!0,element:_e.createElement(Wf,null)},{path:$.swapDetails,element:_e.createElement(vh,null)}]},{path:$.wallets,element:_e.createElement(Eh,null)},{path:$.confirmSwap,element:_e.createElement(Xm,null)}])}i(Ih,"AppRoutes");import{useQueueManager as PE}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as _E}from"@rango-dev/wallets-shared";import{isEvmBlockchain as DE}from"rango-sdk";import{useContext as $E,useEffect as Ph,useState as _h}from"react";import{globalCss as EE}from"@rango-dev/ui";var Ah=i(()=>EE({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function Nh(){let{setWatermark:t,setShowProfileBanner:e}=re();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Mt("BASE_URL")}/meta/dapp/config?apiKey=${Mt("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(Nh,"useFetchApiConfig");import{useWallets as IE}from"@rango-dev/wallets-react";import{useEffect as AE,useRef as NE}from"react";function Wh(){let{connect:t,state:e}=IE(),o=NE({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);AE(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Wh,"useForceAutoConnect");import{isApprovalTX as WE,RouteEventType as Bh,StepEventType as Lh,StepExecutionEventStatus as BE,WidgetEvents as Ki}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Mh}from"react";function Jl(){let t=be.use.setNotification(),{connectedWallets:e,fetchBalances:o}=y();Mh(()=>{let n=i(r=>{let{event:a,step:s,route:l}=r;if(a.type===Lh.TX_EXECUTION&&a.status===BE.TX_SENT&&!WE(s)||a.type===Lh.SUCCEEDED){let p=l.wallets[s?.fromBlockchain],u=e.find(d=>d.address?.toLocaleLowerCase()===p.address?.toLocaleLowerCase()&&d.walletType===p.walletType&&d.chain===s?.fromBlockchain);if(u&&o([u]),s?.fromBlockchain!==s?.toBlockchain){let d=l.wallets[s?.toBlockchain],h=e.find(f=>f.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&f.walletType===d.walletType&&f.chain===s?.toBlockchain);h&&o([h])}}t(a,l)},"handleStepEvent");return ye.on(Ki.StepEvent,n),()=>ye.off(Ki.StepEvent,n)},[ye,e]),Mh(()=>{let n=i(r=>{let{event:a,route:s}=r;(a.type===Bh.FAILED||a.type===Bh.SUCCEEDED)&&t(a,s)},"handleRouteEvent");return ye.on(Ki.RouteEvent,n),()=>ye.off(Ki.RouteEvent,n)},[ye])}i(Jl,"useSubscribeToWidgetEvents");import{useManager as LE}from"@rango-dev/queue-manager-react";import{useEffect as ME}from"react";function Rl(){let{isSynced:t,syncNotifications:e}=be(),{manager:o,state:n}=LE();ME(()=>{be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(pt(o))},[be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Rl,"useSyncNotifications");function ec(){Wh(),Ah(),Jl(),Rl();let t=y().blockchains(),{canSwitchNetworkTo:e}=Yr(),[o,n]=_h(""),[r,a]=_h(),s=$E(Ir),l=t.filter(DE),{fetchApiConfig:c}=Nh();Ph(()=>()=>Su(),[]),PE({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Ph(()=>(ao.init(),be.persist.hasHydrated()||be.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(p=>{a(p),p===_E(o)?.[0]&&n("")}),c().catch(console.log),ao.destroy),[])}i(ec,"useBootstrap");import{styled as FE}from"@rango-dev/ui";var Dh=FE("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function ji(){ec();let{config:t}=y(),{activeTheme:e}=Qo(t?.theme||{}),{activeLanguage:o}=Rt();return tc.createElement(OE,{language:o},tc.createElement(Dh,{id:"swap-container",className:e()},tc.createElement(Ih,null)))}i(ji,"Main");import{setSolanaSignerConfig as iI}from"@rango-dev/signer-solana";import nc,{useEffect as Qh,useMemo as aI}from"react";import{useState as UE}from"react";var zE=i(()=>{let[t,e]=UE(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=Bc(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),$h=zE;import{checkWaitingForNetworkChange as QE,makeQueueDefinition as HE}from"@rango-dev/queue-manager-rango-preset";import{Provider as qE}from"@rango-dev/queue-manager-react";import{useWallets as GE}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as VE}from"@rango-dev/wallets-shared";import{isEvmBlockchain as KE}from"rango-types";import jE,{useMemo as XE}from"react";function YE(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=GE(),l=XE(()=>HE({API_KEY:t.apiKey||Mt("API_KEY"),BASE_URL:Mt("BASE_URL"),emitter:{emit:ye.emit}}),[t.apiKey]),{blockchains:c,connectedWallets:p}=y(),u=c(),d={blockchains:p.map(v=>({accounts:[v],name:v.chain}))},h=i(async(v,b)=>a(v,b.network)?await r(v,[b]):void 0,"switchNetwork"),f=i(v=>!!s(v).mobileWallet,"isMobileWallet"),g=u.filter(v=>v.enabled).reduce((v,b)=>(v[b.name]=b,v),{}),m=u.filter(KE),C=i(v=>{let{supportedChains:b}=s(v);return un(b)},"getSupportedChainNames"),S=e(),k={meta:{blockchains:g,evmBasedChains:m,evmNetworkChainInfo:VE(m),getSupportedChainNames:C},getSigners:o,wallets:d,providers:S,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:f},T=re.use.isActiveTab();return jE.createElement(qE,{queuesDefs:[l],context:k,onPersistedDataLoaded:v=>{QE(v)},isPaused:!T},t.children)}i(YE,"QueueManager");var Fh=YE;import{useManager as tI}from"@rango-dev/queue-manager-react";import oI,{createContext as nI,useContext as rI}from"react";function Oh(){let{findToken:t}=y(),e=y().blockchains(),o=y().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=O();return i(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:h,toToken:f,requestAmount:g}=p,m={blockchains:e,tokens:o};if(u!==void 0){let C=e.find(S=>S.name===u)??null;n(C)}if(d!==void 0){let C=d?t(d)??null:null;r({meta:m,token:C})}if(h!==void 0){let C=e.find(S=>S.name===h)??null;a(C)}if(f!==void 0){let C=f?t(f)??null:null;s({meta:m,token:C})}g!==void 0&&l(g)},"updateQuoteInputs")}i(Oh,"useUpdateQuoteInputs");import{cancelSwap as ZE,getCurrentNamespaceOfOrNull as JE,getCurrentStep as RE,getRelatedWalletOrNull as eI}from"@rango-dev/queue-manager-rango-preset";var Xi=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return pt(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=Br(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&ZE(o)}getCurrentStepInfo(e){let o=RE(e);return{step:o,wallet:o?eI(e,o):null,network:o?JE(e,o)?.network:null}}};var Uh=nI(void 0);function oc(t){let{manager:e}=tI(),o=re.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:l}=y(),c=new Xi(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=y(),u=$c(a()),d=y().blockchains(),h=y().tokens(),f=y().swappers(),g=y().fetchStatus,m=Rt().resetLanguage,C=be().getNotifications(),S=be().clearNotifications,k=Oh(),{fromBlockchain:T,toBlockchain:v,fromToken:b,toToken:A,inputAmount:D}=O(),w={isActiveTab:o,setCurrentTabAsActive:ao.forceClaim,history:c,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async x=>l(x)},meta:{blockchains:d,tokens:h,swappers:f,loadingStatus:g,findToken:r},resetLanguage:m,notifications:{list:C,clearAll:S},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:b?{symbol:b.symbol,blockchain:b.blockchain,address:b.address}:null,toBlockchain:v?.name??null,toToken:A?{symbol:A.symbol,blockchain:A.blockchain,address:A.address}:null,requestAmount:D},updateQuoteInputs:k}};return oI.createElement(Uh.Provider,{value:w},t.children)}i(oc,"WidgetInfo");function zh(){let t=rI(Uh);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(zh,"useWidget");function Yi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=$h();return Qh(()=>{n&&r(n)},[n]),aI(()=>{Gc({API_KEY:o?.apiKey||pr,BASE_URL:o?.apiUrl||kc})},[o.apiKey,o.apiUrl]),Qh(()=>{t.config?.signers?.customSolanaRPC&&iI("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),nc.createElement(Ar,{config:o,onUpdateState:e},nc.createElement(Fh,{apiKey:o.apiKey},nc.createElement(oc,null,t.children)))}i(Yi,"WidgetProvider");function Hh(t){let e=t.config?.externalWallets;return Zi.createElement(Up,null,e?Zi.createElement(ji,null):Zi.createElement(Yi,{config:t.config??cr},Zi.createElement(ji,null)))}i(Hh,"Widget");function qh(){let{on:t,off:e}=ye;return{on:t,off:e}}i(qh,"useWidgetEvents");var Y3={DerivationPath:Sn,Namespaces:yn,isOnDerivationPath:kn,isOnNamespace:Cn};export{v3 as EventSeverity,Lo as MainEvents,L3 as Networks,_3 as PendingSwapNetworkStatus,da as QuoteEventTypes,w3 as RouteEventType,ta as SUPPORTED_FONTS,Y3 as StatefulConnect,b3 as StepEventType,x3 as StepExecutionBlockedEventStatus,E3 as StepExecutionEventStatus,De as UI_ID,fa as UiEventTypes,ma as WalletEventTypes,W3 as WalletEvents,M3 as WalletTypes,Hh as Widget,Lo as WidgetEvents,Yi as WidgetProvider,Ar as WidgetWallets,Xa as customizedThemeTokens,A3 as readAccountAddress,Gt as useStatefulConnect,ft as useWalletList,Yr as useWallets,zh as useWidget,qh as useWidgetEvents,jy as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map