@rango-dev/widget-embedded 0.46.2-next.2 → 0.46.2-next.4

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 (24) hide show
  1. package/dist/components/SearchInput/SearchInput.d.ts.map +1 -1
  2. package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
  3. package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.Warning.d.ts.map +1 -1
  4. package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.d.ts.map +1 -1
  5. package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.types.d.ts +2 -2
  6. package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.types.d.ts.map +1 -1
  7. package/dist/components/SwapDetailsModal/SwapDetailsModal.NetworkState.d.ts.map +1 -1
  8. package/dist/components/SwapDetailsModal/SwapDetailsModal.d.ts.map +1 -1
  9. package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts +11 -3
  10. package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts.map +1 -1
  11. package/dist/index.js +2 -2
  12. package/dist/index.js.map +3 -3
  13. package/dist/utils/swap.d.ts.map +1 -1
  14. package/dist/widget-embedded.build.json +1 -1
  15. package/package.json +6 -6
  16. package/src/components/SearchInput/SearchInput.tsx +0 -1
  17. package/src/components/SwapDetails/SwapDetails.tsx +150 -53
  18. package/src/components/SwapDetailsAlerts/SwapDetailsAlerts.Warning.tsx +11 -9
  19. package/src/components/SwapDetailsAlerts/SwapDetailsAlerts.tsx +4 -2
  20. package/src/components/SwapDetailsAlerts/SwapDetailsAlerts.types.ts +2 -2
  21. package/src/components/SwapDetailsModal/SwapDetailsModal.NetworkState.tsx +23 -9
  22. package/src/components/SwapDetailsModal/SwapDetailsModal.tsx +18 -4
  23. package/src/components/SwapDetailsModal/SwapDetailsModal.types.ts +13 -3
  24. package/src/utils/swap.ts +7 -0
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var HS=Object.defineProperty;var i=(t,e)=>HS(t,"name",{value:e,configurable:!0});import{EventSeverity as hR,RouteEventType as yR,StepEventType as SR,StepExecutionBlockedEventStatus as CR,StepExecutionEventStatus as TR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as vR}from"@rango-dev/wallets-core/legacy";import{useWallets as qi,Events as bR}from"@rango-dev/wallets-react";import{Networks as ER,WalletTypes as IR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as NR}from"rango-types";import{Divider as ak}from"@rango-dev/ui";import no,{useEffect as sk,useRef as lk,useState as od}from"react";import{WalletState as GS}from"@rango-dev/ui";import{useWallets as VS}from"@rango-dev/wallets-react";import{useReducer as KS}from"react";function Sp(t){return!!t.derivationPath}i(Sp,"isStateOnDerivationPathStep");function Cp(t){return!!t.namespace}i(Cp,"isStateOnNamespace");var $r={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Tp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return $r;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:$r;default:throw new Error("Action hasn't been defined.")}}i(Tp,"reducer");function Qo(){let{state:t,disconnect:e,connect:o}=VS(),[n,r]=KS(Tp,$r),a=i(async(d,g,h)=>{r({type:"reset"});try{let f=g?.map(m=>({...m,network:void 0}));return await o(d,f),{status:"connected"}}catch(f){let m=f?.message?`Error: ${f.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:f})}},"runConnect"),s=i(async(d,g)=>{if(d.state===GS.DISCONNECTED){let f=!!d.isHub,m=f?d.properties?.find(y=>y.name==="namespaces")?.value:d.needsNamespace,T=f?d.properties?.find(y=>y.name==="derivationPath")?.value:d.needsDerivationPath;if(!m?.data?.length)return await a(d.type,void 0,g);if(m?.data.length&&m.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:g?.defaultSelectedChains}}),{status:"namespace"};if(m?.data.length===1){if(T){let y=m.data[0];return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y.value}}),{status:"derivation-path"}}return await a(d.type,m?.data?.map(y=>({namespace:y.value})),g)}}if(d.isHub){let f=d.properties?.find(m=>m.name==="namespaces")?.value;if(f?.data.length&&f.data.length>1)return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return g?.disconnectIfConnected?(await u(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(d,g)=>{let h=!!d.isHub,f=h?d.properties?.find(k=>k.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(k=>k.name==="derivationPath")?.value:d.needsDerivationPath,T=f?.selection==="single",y=g[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(T&&m)return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y}}),{status:"derivation-path"};if(!Cp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=g.map(k=>({namespace:k}));return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:C?.map(k=>k.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async d=>{if(!d)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Sp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let g=n.derivationPath.providerType,f=[{namespace:n.derivationPath.namespace,derivationPath:d}];return await a(g,f)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let g=t(d.type);return g.connected||g.connecting?(await e(d.type),Co(p)?(r({type:"needsNamespace",payload:{targetWallet:d}}),{status:"namespace"}):{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:p,resetState:d=>{r(d==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Qo,"useStatefulConnect");import{WalletState as ds}from"@rango-dev/ui";import{useWallets as nT}from"@rango-dev/wallets-react";import{detectMobileScreens as rT,KEPLR_COMPATIBLE_WALLETS as iT,WalletTypes as Dn}from"@rango-dev/wallets-shared";import{useCallback as aT,useEffect as sT}from"react";import JC,{createContext as RC,useContext as eT,useEffect as tT,useRef as oT}from"react";import{create as YC}from"zustand";import{persist as ZC}from"zustand/middleware";import{allProviders as jS}from"@rango-dev/provider-all";var Qa=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},Ho=new Qa;import{defineVersions as vp,pickVersion as wp,Provider as Ha}from"@rango-dev/wallets-core";function bp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=xp(a);return s instanceof Ha?s.id===n:s.config.type===n});r?o.push(r):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else n instanceof Ha?o.push(vp().version("1.0.0",n).build()):o.push(vp().version("0.0.0",n).build())}),o}return t}i(bp,"matchAndGenerateProviders");function xp(t){try{return wp(t,"1.0.0")[1]}catch{return wp(t,"0.0.0")[1]}}i(xp,"pickProviderVersionWithFallbackToLegacy");function Ep(t){return t.map(o=>xp(o)).map(o=>o instanceof Ha?o.id:o.config.type)}i(Ep,"configWalletsToWalletName");function Fr(t,e){return e.find(o=>o.name===t)?.displayName}i(Fr,"getBlockchainDisplayNameFor");function gt(t,e){return e.find(o=>o.name===t)?.shortName}i(gt,"getBlockchainShortNameFor");function Ip(t,e){return e.find(o=>o.name===t)?.logo}i(Ip,"getBlockchainImage");function In(t,e){return e.find(o=>o.id===t)?.title}i(In,"getSwapperDisplayName");function To(t,e){return e.find(o=>o.name===t)??null}i(To,"findBlockchain");function Ga(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Ga,"isTokenNative");function ht(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(ht,"createTokenHash");function Go(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Go,"isValidTokenAddress");function An(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=ht(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{c.has(l)||a(o.tokensMapByBlockchainName[l])})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=ht(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(An,"matchTokensFromConfigWithMeta");function Or(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(Or,"getSupportedBlockchainsFromConfig");function Np(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Np,"makeProvidersOptionsFromConfig");var Ur={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/manifests/tonconnect-manifest.json"}},XS={clientUrl:void 0},YS={liquiditySources:void 0};function Ap(t){let e=Np(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return jS(o).map(a=>a())}i(Ap,"generateProviders");var Bp=i((t,e,o)=>{let n=Ap({...Ur,...t});return{config:{...Ur,...t},iframe:XS,campaignMode:YS,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c}=o(),l=An({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=An({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});Ho.set("supportedSourceTokens",l),Ho.set("supportedDestinationTokens",p),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=Ap(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Np(a);return bp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Wp}from"rango-types";var Lp=[Wp.EVM,Wp.SOLANA],zr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as uC}from"rango-sdk";import{UI_ID as ZS}from"@rango-dev/ui";var qr="c6381a79-2817-4602-83bf-6a641a409e32",Pp="https://api.rango.exchange",Mp="https://explorer.rango.exchange",tt={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...ZS};import{BlockchainCategories as rC,WalletState as lt}from"@rango-dev/ui";import{legacyReadAccountAddress as iC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as aC,getCosmosExperimentalChainInfo as sC,isEvmAddress as lC,KEPLR_COMPATIBLE_WALLETS as OB,Networks as tu}from"@rango-dev/wallets-shared";import Ko from"bignumber.js";import{isCosmosBlockchain as cC}from"rango-types";import JS from"bignumber.js";var ce=new JS(0);import{WalletTypes as RS}from"@rango-dev/wallets-shared";var ko="~",_p=[RS.LEAP];import{BlockchainCategories as Ka,WalletState as nC}from"@rango-dev/ui";import{TransactionType as Qr}from"rango-sdk";var Dp="Roboto",Va=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];function Vo(t){return Array.from(new Set(t))}i(Vo,"removeDuplicateFrom");function Hr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Hr,"debounce");function st(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(st,"containsText");function Op(t,e){return t.toLowerCase()===e.toLowerCase()}i(Op,"exactText");function Up(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Up,"startWithText");var N=i(()=>document.getElementById(tt.SWAP_BOX_ID),"getContainer"),vo=i(()=>document.getElementById(tt.EXPANDED_BOX_ID),"getExpanded");function zp(t,e,o){let n=!!e&&Op(e,t),r=!!o&&Op(o,t);return n!==r?n?-1:1:0}i(zp,"compareExactMatchText");function ja(t,e,o){let n=!!e&&st(e,t),r=!!o&&st(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ja,"compareContainsText");function Xa(t,e,o){let n=!!e&&Up(e,t),r=!!o&&Up(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Xa,"compareStartWithText");function qp(t,e,o){if(!o)return 0;let n=zp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=zp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Xa(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ja(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Xa(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ja(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Xa(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ja(o,t.address,e.address);if(r!==0)return r}return 0}i(qp,"compareWithSearchFor");var Gr=i((t,e)=>{switch(e){case Ka.ALL:return!0;case Ka.UTXO:return t===Qr.TRANSFER;case Ka.OTHER:return t!==Qr.TRANSFER&&t!==Qr.COSMOS&&t!==Qr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Qp=i(t=>Va.find(o=>o.value===t)?.url,"getFontUrlByName");function Hp(t,e){let o=!!t.find(n=>n.state===nC.CONNECTED);return e===!1&&o}i(Hp,"isSingleWalletActive");function Gp(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(Gp,"memoizedResult");import{BigNumber as Rp}from"bignumber.js";function Vp(t){return t.replace(/^0+(?=\d)/g,"")}i(Vp,"removeLeadingZeros");function Kp(t){return t.replace(/^\.(\d+)/,"0.$1")}i(Kp,"ensureLeadingZeroForDecimal");function jp(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(jp,"formatThousandsWithCommas");function Xp(t){return t.replace(/\s+/g,"-")}i(Xp,"replaceSpacesWithDash");function Yp(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(Yp,"stripTrailingZeros");function Vr(t){return/^0+(?:\.0+)?$/.test(t)}i(Vr,"isZeroValue");function Zp(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(Zp,"isValidCurrencyFormat");function Jp(t){return/\d+$/.test(t)}i(Jp,"isColorKeyOverridden");var Nn=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),_=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Rp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Rp(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Kr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Wt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Bn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function eu(t){return Vr(t)?"0":Yp(t)}i(eu,"sanitizeInputAmount");function Wn(t){return t.connected?lt.CONNECTED:t.connecting?lt.CONNECTING:t.installed?lt.DISCONNECTED:lt.NOT_INSTALLED}i(Wn,"mapStatusToWalletState");function ou(t,e,o,n){return o.filter(r=>!_p.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:d,properties:g,isHub:h}=e(r),f=Vo(u.map(T=>T.type)),m=Wn(t(r));return{title:a,image:s,link:aC(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:f,needsDerivationPath:d,properties:g,isHub:h}})}i(ou,"mapWalletTypesToWalletInfo");function Ln(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Ln,"walletAndSupportedChainsNames");function Za(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(g=>g.chain===l)){let g={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(g)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=iC(l),d=c.length>0,g=c.includes(u),h=u===tu.Unknown;if(d&&!g&&!h)return;let m=u===tu.Unknown&&lC(p);if(h&&!m)return;o.includes(u)||m?r?s(u,p.toLowerCase(),r):c.filter(C=>o.includes(C)).forEach(C=>{s(C,p.toLowerCase())}):s(u,p)}),a}i(Za,"prepareAccountsForWalletStore");function wo(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((p,u)=>{let d=p.from.blockchain,g=p.to.blockchain,h=a===o.swaps.length-1,f=u===l.length-1;(!h&&!f||h&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(g)})}e==="all"&&n.add(c)}),Array.from(n)}i(wo,"getQuoteChains");function Pn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Pn,"isAccountAndWalletMatched");var nu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?Ya(n.usdValue,n.decimals):ce.toFixed();return o.plus(r)},new Ko(ce));return pC(e.toString())},"calculateWalletUsdValue");function pC(t){let e=t.toString().split(".");return e[0]=jp(e[0]),e.join(".")}i(pC,"numberWithThousandSeparator");var Yr=i((t,e)=>{let o=sC(Object.entries(t).map(([,n])=>n).filter(cC));return o&&o[e]?.experimental},"isExperimentalChain");function Ya(t,e){return new Ko(t).shiftedBy(-e).toFixed()}i(Ya,"representAmountInNumber");function Zr(t){if(!t)return null;let e=Ya(t.amount,t.decimals),o=t.usdValue?Ya(t.usdValue,t.decimals):null,n=_(e,8,8),r=o?_(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(Zr,"formatBalance");function ru(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Ko(t.usdValue).shiftedBy(-t.decimals):ce,n=e&&e.usdValue?new Ko(e.usdValue).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Ko(t.amount).shiftedBy(-t.decimals):ce,n=e&&e.amount?new Ko(e.amount).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(ru,"compareTokenBalance");function Ot(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Ot,"areTokensEqual");function iu(t,e){return t.map(o=>({isPartiallyConnected:Ja(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===lt.CONNECTED&&!n.isPartiallyConnected)-+(o.state===lt.CONNECTED&&!o.isPartiallyConnected)||+(n.state===lt.CONNECTED)-+(o.state===lt.CONNECTED)||+(n.state===lt.DISCONNECTED||n.state===lt.CONNECTING)-+(o.state===lt.DISCONNECTED||o.state===lt.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(iu,"sortWalletsBasedOnConnectionState");function oo(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(oo,"getConciseAddress");function au({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(au,"getAddress");var su=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function lu(t){return t.map(e=>e.state).join("-")}i(lu,"hashWalletsState");function cu(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(cu,"filterBlockchainsByWalletTypes");function pu(t,e){return e===rC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Gr(n,e))return!0;return!1})}i(pu,"filterWalletsByCategory");function Ja(t,e){return!t.isHub||!t.needsNamespace||t.state!==lt.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(Ja,"checkIsWalletPartiallyConnected");var Ra={API_KEY:qr};function Ut(t){return Ra[t]||""}i(Ut,"getConfig");function uu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ra=e,Ra}i(uu,"initConfig");var du=20,mu=25,es="theme-widget",ts=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Ot(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Ot(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),os=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),fu=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Jr,ct=i(()=>Jr||(Jr=new uC(Ut("API_KEY"),Ut("BASE_URL")),Jr),"httpService");import{i18n as hu}from"@lingui/core";var Rr=[.5,1,3],ei=1,jo=5,Mn=30,ti=0;var Xe=(a=>(a[a.NO_RESULT=0]="NO_RESULT",a[a.REQUEST_FAILED=1]="REQUEST_FAILED",a[a.REQUEST_CANCELED=2]="REQUEST_CANCELED",a[a.BRIDGE_LIMIT=3]="BRIDGE_LIMIT",a[a.INSUFFICIENT_SLIPPAGE=4]="INSUFFICIENT_SLIPPAGE",a))(Xe||{});import{WidgetEvents as gu}from"@rango-dev/queue-manager-rango-preset";var ns=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ns||{}),rs=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(rs||{}),is=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(is||{}),Xo=(a=>(a[a.RouteEvent=gu.RouteEvent]="RouteEvent",a[a.StepEvent=gu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Xo||{});function oi(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Vo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(c=>c.swapperGroup===a);if(s){let c=!0;o&&(c=o.some(l=>l===s.swapperGroup)),c&&s.types.map(l=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:l,selected:!e.includes(s.swapperGroup)})})}}),n}i(oi,"getUniqueSwappersGroups");function yu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(yu,"sortLiquiditySourcesByGroupTitle");function ot(t,e){return e?.[t]==="hidden"}i(ot,"isFeatureHidden");function Yo(t,e){return e?.[t]==="enabled"}i(Yo,"isRoutingEnabled");var Su=i((t,e,o)=>ot("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function Zo(t){return t==ti?{type:"error",message:hu.t("Slippage must be greater than or equal to 0.01")}:t>jo&&t<=Mn?{type:"warning",message:hu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(Zo,"getSlippageValidation");var Cu=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let l=Or({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>Lp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",d=Ho.get(u);d?.length||(d=An({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Ho.set(u,d)),d=Su(d,s,a.features);let g=e().blockchains({type:o.type});return d.filter(f=>o.blockchain&&f.blockchain!==o.blockchain||!g.some(m=>m.name===f.blockchain)?!1:o.searchFor?!!(st(f.symbol,o.searchFor)||st(f.address||"",o.searchFor)||st(f.name||"",o.searchFor)):!0).sort((f,m)=>{let T=e().isTokenPinned(f,o.type),y=e().isTokenPinned(m,o.type);if(T!==y)return T?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(f),I=o.getBalanceFor(m),E=ru(A,I);if(E!==0)return E}let C=l.get(f.blockchain),k=l.get(m.blockchain),v=Ga(f,C),x=Ga(m,k);if(v!==x)return v?-1:1;if(f.isPopular!==m.isPopular)return f.isPopular?-1:1;if(o.searchFor){let A=qp(f,m,o.searchFor);if(A)return A}return f.isSecondaryCoin!==m.isSecondaryCoin?f.isSecondaryCoin?1:-1:C&&k?C.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=ht(o),s=n.get(a);return s||(s=r.find(c=>ht(c)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Ot(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(yu)},fetch:async()=>{try{let{routing:o}=e().config,n=Yo("enableCentralizedSwappers",o),r=await ct().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],p=r.popularTokens,u=r.swappers.filter(h=>h.enabled),d=new Set;r.tokens.forEach(h=>{d.add(h.blockchain),l.push(h)}),r.blockchains.sort((h,f)=>h.sort-f.sort).forEach(h=>{h.enabled&&d.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let f=ht(h);c[h.blockchain]||(c[h.blockchain]=[]),s.set(f,h),c[h.blockchain].push(f)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as dC,Catalonia as mC,Chinese as Tu,Denmark as fC,English as gC,Finland as hC,French as yC,German as SC,Greece as CC,Hungary as TC,India as kC,Indonesian as vC,Italian as wC,Japanese as bC,Korea as xC,Lithuania as EC,Malay as IC,Netherlands as AC,Pakistan as NC,Philippines as BC,Poland as WC,Portuguese as LC,Russian as PC,SaudiArabia as MC,Serbia as _C,Slovakia as DC,SouthAfrica as $C,Spanish as FC,Swahili as OC,Swedish as UC,Thai as zC,Turkish as qC,Ukrainian as QC,Vietnamese as HC}from"@rango-dev/ui";var ku=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:$C},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:MC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:dC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:mC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Tu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Tu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:fC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:AC},{title:"English",label:"English",local:"en",SVGFlag:gC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:BC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:hC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:yC},{title:"German",label:"Deutsch",local:"de",SVGFlag:SC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:CC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:kC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:TC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:vC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:wC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:bC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:xC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:EC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:IC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:WC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:LC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:PC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:_C},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:DC},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:FC},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:OC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:UC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:zC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:qC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:QC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:NC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:HC}],Jo="en";var vu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:ei,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],quoteTokensRate:"default",changeQuoteTokensRate:()=>t(o=>({quoteTokensRate:o.quoteTokensRate==="default"?"reversed":"default"})),addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,c)=>{let l=s===o,p=c<=9;return l&&p}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=Vo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=ot("theme",n),s=ot("language",n),c=ot("liquiditySource",n),l=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Jo},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||Jo}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=Or({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import us from"bignumber.js";import GC from"mitt";var we=GC(),VC={on:we.on,off:we.off};var wu=i(t=>(e,o,n)=>t(i((...a)=>{let[s,...c]=a;e(l=>({...typeof s=="function"?s(l):s,lastUpdatedAt:+new Date}),...c)},"modifedSet"),o,n),"keepLastUpdated");import bu from"bignumber.js";function zt(t){return`${t.blockchain}${ko}${t.address}${ko}${t.symbol}`}i(zt,"createAssetKey");function xu(t,e){return`${zt(e)}${ko}${t}`}i(xu,"createBalanceKey");function _n(t){let[e,o,n]=t.split(ko);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(_n,"extractAssetFromBalanceKey");function ss(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[zt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new bu(r??ce).multipliedBy(o[s].amount).toString():""})})}),o}i(ss,"computeNextBalancesWithNewPrices");function ls(t,e){let o={};return t.balances?.forEach(n=>{let r=xu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new bu(c??ce).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(ls,"createBalanceStateForNewAccount");function cs(t,e){for(let o in e){let n=_n(o),r=zt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(cs,"updateAggregatedBalanceStateForNewAccount");function KC(t,e){let o=_n(e),n=zt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(KC,"removeBalanceFromAggregatedBalance");function ps(t,e,o){let n=t.connectedWallets.filter(l=>l.walletType===e);t.connectedWallets.forEach(l=>{l.walletType!==e&&(n=n.filter(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=_n(l);!!n.find(d=>xu(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=KC(a,l):r[l]=s[l]}),{_balances:r,_aggregatedBalances:a}}i(ps,"computeNextStateAfterWalletBalanceRemoval");function jC(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(jC,"matchWalletDetailsWithConnectedWallet");var XC=Gp(),Eu=wu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Pn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Pn(s,a))?{...a,loading:!1,error:!1,explorerUrl:jC(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Pn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Pn(c,l)));if(s.length>0){let c=s.map(l=>{let p=!a.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:p,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!c.some(d=>d.walletType===u.walletType&&d.chain===u.chain)),...c]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=r.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address].push(...a[p.chain]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await ct().getMultipleTokenBalance({assets:p.map(({symbol:d,address:g,blockchain:h})=>({symbol:d,address:g,blockchain:h})),walletAddress:l});if(u){let d=e()._balances,g=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let f={blockChain:h.asset.blockchain,balances:[h],address:l},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};ss(m,f,d);let T=ls(f,e);g=cs(g,T),d={...d,...T}}),t(h=>({_balances:{...h._balances,...d},_aggregatedBalances:g}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{we.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=ps(r,o,n);t({_balances:a,_aggregatedBalances:s})},disconnectNamespaces:(o,n)=>{if(e().connectedWallets.find(a=>a.walletType===o)){e().removeBalancesForWallet(o,{namespaces:n}),e()._changeSelectedWalletIfNeededOnRemove(o,{namespaces:n});let a=e().connectedWallets.filter(s=>s.namespace?!(s.walletType===o&&n.includes(s.namespace)):!0);t({connectedWallets:a})}},disconnectWallet:o=>{let n=e().connectedWallets.find(r=>r.walletType===o);if(we.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0)return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await ct().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(d=>{if(d.failed)return;let g={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};ss(g,d,l);let{_balances:h,_aggregatedBalances:f}=ps(g,r,{chains:[d.blockChain]});if(p=f,l=h,!e().connectedWallets.find(T=>T.walletType===r&&T.address===d.address&&T.chain===d.blockChain))return;let m=ls(d,e);p=cs(p,m),l={...l,...m}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let d=c.filter(g=>g.failed).map(g=>({chain:g.blockChain,walletType:r,address:g.address}));d.length>0&&await e().fetchMainTokensBalances(d,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=zt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let l=a[0];return n[l]}let c=n[a[0]];return a.forEach(l=>{let p=n[l],u=new us(p.amount),d=new us(c.amount);u.isGreaterThan(d)&&(c=p)}),c},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(ko);return p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>XC(()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,c)=>{let l=r[c],p=_n(c);if(p.blockchain===n.chain){let u=e().findToken(p),d=l.amount?new us(l.amount).shiftedBy(-l.decimals):ce;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:d.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Iu(t){return YC()(ZC((...e)=>({...Eu(...e),...Cu(...e),...vu(...e),...Bp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i(Iu,"createAppStore");var Au=RC(null);function S(){let t=eT(Au);if(tT(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(S,"useAppStore");function Nu(t){let e=oT();return e.current||(e.current=Iu(t.config)),JC.createElement(Au.Provider,{value:e.current},t.children)}i(Nu,"AppStoreProvider");function vt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=S(),{state:r,getWalletInfo:a}=nT(),s=S().blockchains(),{handleDisconnect:c}=Qo(),l=Ep(n()),p=ou(r,a,l,e);p=rT()?p.filter(m=>m.showOnMobile!==!1&&r(m.type).installed):p;let u=iu(p,r),d=i(m=>!o.find(T=>T.walletType===m&&T.chain===e),"isExperimentalChainNotAdded"),g=aT(()=>{let m=p?.filter(T=>T.state===ds.CONNECTING)||[];for(let T of m)c(T)},[lu(p)]);sT(()=>()=>{g()},[]);let h=i(m=>{let T=m.find(C=>C.type===Dn.DEFAULT);return!T||T.state===ds.NOT_INSTALLED?!1:m.filter(C=>C.state!=ds.NOT_INSTALLED&&![Dn.DEFAULT,Dn.WALLET_CONNECT_2,Dn.LEDGER].includes(C.type)&&a(C.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),f=i((m,T,y)=>Yr(y,T)&&d(m)&&!iT.includes(m)||m==Dn.DEFAULT&&!h(p),"shouldExcludeWallet");return{list:u.filter(m=>!f(m.type,e??"",s)),terminateConnectingWallets:g}}i(vt,"useWalletList");import{Modal as uT}from"@rango-dev/ui";import dT from"react";import{create as pT}from"zustand";var Bu="rango-widget";var $n=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(Bu),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var cT=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Ro=cT;var oe=Ro(pT()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),xo=new $n({onInit:()=>oe.setState({tabManagerInitiated:!0}),onClaim:()=>oe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>oe.setState({isActiveTab:!1})});function R(t){let{watermark:e}=oe();return dT.createElement(uT,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as on}from"@lingui/core";import{Alert as ET,Button as IT,Divider as pi,Image as AT,MessageBox as NT,RadioRoot as BT}from"@rango-dev/ui";import pe,{useEffect as WT,useMemo as LT,useState as PT}from"react";import{i18n as hT}from"@lingui/core";import{Typography as Fu}from"@rango-dev/ui";import en from"react";function ni(t,e){return t.find(o=>o.name===e)?.logo}i(ni,"getBlockchainLogo");import{darkTheme as mT,Image as fT,styled as qt,Typography as gT}from"@rango-dev/ui";var ri=qt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${mT} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),ii=qt("div",{display:"flex",gap:"$8",alignItems:"center"}),Lu=qt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Pu=qt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Mu=qt("div",{display:"flex",gap:"$6",alignItems:"center"}),_u=qt("div",{paddingLeft:"48px"}),Du=qt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),$u=qt(gT,{maxWidth:"100px"}),ai=qt(fT,{variants:{disabled:{true:{opacity:"0.5"}}}});function si(t){let{namespace:e}=t,o=S().blockchains();return en.createElement(ri,{unsupported:!0},en.createElement(ii,null,en.createElement(ai,{src:ni(o,e.id),size:40,disabled:!0}),en.createElement(Pu,null,en.createElement(Fu,{variant:"label",size:"large"},e.label),en.createElement(Fu,{variant:"body",size:"xsmall"},hT.t("(Currently not supported)")))))}i(si,"NamespaceUnsupportedItem");import{Checkbox as wT,Radio as bT}from"@rango-dev/ui";import hs from"react";import{i18n as gs}from"@lingui/core";import{ChevronDownIcon as ST,ChevronUpIcon as CT,Divider as TT,Typography as Fn}from"@rango-dev/ui";import Ne,{useEffect as kT,useState as vT}from"react";import{Image as Uu,Tooltip as zu,Typography as yT}from"@rango-dev/ui";import Lt from"react";import{styled as Ou}from"@rango-dev/ui";var ms=Ou("div",{display:"flex",alignItems:"center",padding:0,margin:0}),li=Ou("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var fs=3;function qu(t){let{chains:e}=t;return Lt.createElement(ms,{id:"widget-supported-chains-container"},e.slice(0,fs).map((o,n)=>Lt.createElement(zu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Lt.createElement(li,{firstItem:n===0},Lt.createElement(Uu,{src:o.logo,size:15})))),e.length>fs&&Lt.createElement(zu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Lt.createElement(ms,null,e.map((o,n)=>Lt.createElement(li,{key:o.name,firstItem:n===0},Lt.createElement(Uu,{src:o.logo,size:15}))))},Lt.createElement(li,null,Lt.createElement(yT,{variant:"body",size:"xsmall"},"+",e.length-fs))))}i(qu,"SupportedChainsList");function Eo(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=vT(!1),p=S().blockchains();kT(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!o&&!r&&u.length>1;return Ne.createElement(ri,{hasError:!!o,clickable:!!s,onClick:s},Ne.createElement(ii,null,Ne.createElement(ai,{src:ni(p,e.id),size:40}),Ne.createElement(Lu,{showSupportedChains:d||r||!!o},Ne.createElement(Mu,null,Ne.createElement(Fn,{variant:"label",size:"large"},e.label),r&&Ne.createElement(Fn,{variant:"body",size:"small",color:"success500"},gs.t("Connected")),!!o&&Ne.createElement(Fn,{variant:"body",size:"small",color:"error500"},gs.t("Connection failed"))),d&&Ne.createElement(qu,{chains:u}),r&&Ne.createElement($u,{variant:"body",size:"small",color:"neutral700"},a),o&&Ne.createElement(Du,{onClick:()=>l(g=>!g)},Ne.createElement(Fn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},gs.t("See why")),c?Ne.createElement(CT,{size:12,color:"gray"}):Ne.createElement(ST,{size:12,color:"gray"}))),n),!!o&&c&&Ne.createElement(Ne.Fragment,null,Ne.createElement(TT,{size:4}),Ne.createElement(_u,null,Ne.createElement(Fn,{variant:"body",size:"small",color:"neutral700"},o))))}i(Eo,"NamespaceItem");function Qu(t){let{onClick:e,type:o,namespace:n}=t;return hs.createElement(Eo,{namespace:n,onClick:e,suffix:o==="radio"?hs.createElement(bT,{value:n.value}):hs.createElement(wT,{checked:t.value})})}i(Qu,"NamespaceListItem");import{Button as xT,styled as Hu}from"@rango-dev/ui";var ci=Hu("ul",{padding:0,paddingTop:"$16",paddingBottom:"$20",margin:0}),tn=Hu(xT,{minHeight:"$40"});function On(t){let{targetWallet:e}=t.value,o=e.properties?.find(m=>m.name==="namespaces"),n=e.isHub,r=e.isHub?o?.value.selection==="single":e.needsNamespace?.selection==="single",a=n?o?.value:e.needsNamespace,s=e.image,c=S().blockchains(),[l,p]=PT([]),u=LT(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:T=>T.includes(m)?T.filter(y=>y!==m):T.concat(m))},"onSelect"),g=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");g?p([]):u&&p(u.map(m=>m.value))},"onSelectAll"),f=i(m=>r?pe.createElement(BT,{value:l?.[0]},m):pe.createElement(pe.Fragment,null,m),"wrapRadioRoot");return WT(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(T=>T.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(m.map(T=>T.value))}else p(u.map(m=>m.value))},[]),pe.createElement(pe.Fragment,null,pe.createElement(NT,{type:"info",title:on.t("Connect {wallet}",{wallet:e.title}),description:on.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:pe.createElement(AT,{src:s,size:45})}),r?pe.createElement(pe.Fragment,null,pe.createElement(pi,{size:20}),pe.createElement(ET,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:on.t("This wallet can only connect to one chain at a time. ")})):pe.createElement(pe.Fragment,null,pe.createElement(pi,{size:30}),pe.createElement(IT,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},g?on.t("Deselect all"):on.t("Select all"))),pe.createElement(ci,null,f(pe.createElement(pe.Fragment,null,a?.data.map((m,T,y)=>pe.createElement(pe.Fragment,{key:m.id},m.unsupported?pe.createElement(si,{namespace:m}):pe.createElement(Qu,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),T!==y.length-1&&pe.createElement(pi,{size:10})))))),pe.createElement(pi,{size:20}),pe.createElement(tn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},on.t("Connect")))}i(On,"Namespaces");import{i18n as ui}from"@lingui/core";import{Button as zT,Divider as Cs,Image as qT,MessageBox as QT}from"@rango-dev/ui";import{useWallets as HT}from"@rango-dev/wallets-react";import Ye from"react";import{styled as MT}from"@rango-dev/ui";var Gu=MT("div",{display:"flex",justifyContent:"end"});import{i18n as ys}from"@lingui/core";import{Button as _T,Spinner as DT}from"@rango-dev/ui";import{useWallets as $T}from"@rango-dev/wallets-react";import Ss,{useLayoutEffect as FT,useRef as OT,useState as UT}from"react";var Vu=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,{connect:a,disconnect:s,state:c}=$T(),[l,p]=UT(null),d=c(o).namespaces?.get(n.value),g=d.accounts?.[0]?.split(":"),h=OT(!1);FT(()=>{r&&!h.current&&f(o,n.value)},[]);let f=i(async(y,C)=>{try{h.current=!0,await a(y,[{namespace:C,network:""}])}catch(k){p(k)}finally{h.current=!1}},"handleConnectNamespace"),m=i(async y=>{p(null),y.connected?await s(o,[n.value]):f(o,n.value)},"handleButtonClick"),T=i(()=>d.connected?ys.t("Disconnect"):l?ys.t("Try again"):ys.t("Connect"),"getButtonText");return Ss.createElement(Eo,{namespace:n,connected:d.connected,error:l?.message,address:d.connected?oo(g?.[g?.length-1]):"",suffix:d.connecting?Ss.createElement(DT,{color:"info"}):Ss.createElement(_T,{id:"widget-name-space-connect-btn",variant:"ghost",type:d.connected?"error":"primary",size:"xsmall",onClick:async()=>m(d)},T())})},"NamespaceDetachedItem");function Un(t){let{selectedNamespaces:e,value:o,onDisconnectWallet:n}=t,{targetWallet:r}=o,{state:a}=HT(),s=a(r.type);return Ye.createElement(Ye.Fragment,null,Ye.createElement(QT,{type:"info",title:ui.t("Connect {wallet}",{wallet:r.type}),description:ui.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:Ye.createElement(qT,{src:r.image,size:45})}),Ye.createElement(Cs,{size:30}),Ye.createElement(Gu,null,Ye.createElement(zT,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:s.connecting||!s.connected,onClick:n},ui.t("Disconnect wallet"))),Ye.createElement(ci,{id:"widget-detached-namespace-list",as:"ul"},r.needsNamespace?.data.map((c,l,p)=>Ye.createElement(Ye.Fragment,{key:c.id},c.unsupported?Ye.createElement(si,{namespace:c}):Ye.createElement(Vu,{walletType:r.type,namespace:c,initialConnect:e?.includes(c.value)}),l!==p.length-1&&Ye.createElement(Cs,{size:10})))),Ye.createElement(Cs,{size:20}),Ye.createElement(tn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},ui.t("Done")))}i(Un,"Detached");import{i18n as nn}from"@lingui/core";import{Divider as ju,Image as jT,MessageBox as XT,Select as YT,TextField as ZT}from"@rango-dev/ui";import yt,{useEffect as JT,useState as Xu}from"react";import{namespaces as GT}from"@rango-dev/wallets-shared";var di={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ts(t){let e=t?GT[t].derivationPaths:null;return e?[...e,di]:[]}i(Ts,"getDerivationPaths");import{Button as VT,styled as ks,Typography as KT}from"@rango-dev/ui";var Ku=ks("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),vs=ks(KT,{paddingLeft:"$10"}),ws={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},dM=ks(VT,{minHeight:"$40"});var Yu="0";function zn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Xu(null),[c,l]=Xu(Yu),p=a===di.id,u=Ts(o),d=i(({value:h})=>{let f=u?.find(m=>m.id===h);f&&(a===di.id&&Number.isNaN(Number(c))&&l(Yu),s(f.id))},"handleDerivationPathItemClick"),g=i(()=>{let h=u.find(f=>f.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return JT(()=>{s(Ts(o)[0]?.id||null)},[o]),yt.createElement(yt.Fragment,null,yt.createElement(ju,{size:20}),yt.createElement(XT,{type:"info",title:nn.t("Select Derivation Path"),description:nn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:yt.createElement(jT,{src:n,size:45})}),yt.createElement(Ku,null,yt.createElement(vs,{variant:"body",size:"xsmall",color:"$neutral600"},nn.t("Choose Derivation Path Template")),yt.createElement(YT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:ws}}),yt.createElement(ju,{size:20}),yt.createElement(vs,{variant:"body",size:"xsmall",color:"$neutral600"},p?nn.t("Enter Path"):nn.t("Enter Index")),yt.createElement(ZT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:ws})),yt.createElement(tn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:g,disabled:!u||!a||!c},nn.t("Confirm")))}i(zn,"DerivationPath");import{i18n as rn}from"@lingui/core";import{Image as tk,MessageBox as bs,WalletState as ok}from"@rango-dev/ui";import{useWallets as nk}from"@rango-dev/wallets-react";import Io from"react";import{keyframes as RT,styled as mi}from"@rango-dev/ui";var wM=mi("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Zu=mi("div",{position:"relative"}),ek=RT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Ju=mi("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ek} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Ru=mi("div",{"& img":{borderRadius:"50%"}});function xs(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=nk();return Wn(a(n))===ok.CONNECTED?Io.createElement(bs,{type:"success",title:rn.t("Wallet Connected"),description:rn.t("Your wallet is connected, you can use it to swap.")}):o?Io.createElement(bs,{type:"error",title:rn.t("Failed to Connect"),description:o||rn.t("Your wallet is not connected. Please try again.")}):Io.createElement(bs,{type:"loading",title:rn.t("Connecting to your wallet"),description:rn.t("Click connect in your wallet popup."),icon:Io.createElement(Zu,null,Io.createElement(Ru,null,Io.createElement(tk,{src:r,size:45})),Io.createElement(Ju,null))})}i(xs,"ConnectStatus");import{i18n as Es}from"@lingui/core";import{Button as rk,Divider as ed,MessageBox as ik}from"@rango-dev/ui";import fi from"react";function Is(t){let{displayName:e,onConfirm:o,id:n}=t;return fi.createElement(ik,{id:n,title:Es.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Es.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},fi.createElement(ed,{size:18}),fi.createElement(ed,{size:32}),fi.createElement(rk,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Es.t("Confirm")))}i(Is,"ExperimentalChain");function td(t,e){return t().status==="init"&&!!e}i(td,"isOnStatus");function qn(t){return t().status==="namespace"}i(qn,"isOnNamespace");function Qn(t){return t().status==="derivationPath"}i(Qn,"isOnDerivationPath");function Co(t){return t().status==="detached"}i(Co,"isOnDetached");var ck=3e3,pk=300;function Hn(t){let e=lk(),[o,n]=od(!1),[r,a]=od(),s=i(v=>{a(v.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=vt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:g,handleDisconnect:h}=Qo(),f=i(v=>{u(t.wallet,v).then(k).catch(s)},"handleConfirmNamespaces"),m=i(()=>{y()},"handleDetachedConfirm"),T=i(v=>{if(!v)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(v).then(k).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),g(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),k=i((v,x)=>{let A=v.status==="connected",I=["disconnected","disconnected-unhandled"].includes(v.status);A?(t.onConnect?.(),x||(e.current=setTimeout(y,ck))):I&&y()},"afterConnected");return sk(()=>{if(t.wallet){C();let v=!1,x=!0;i(()=>{setTimeout(()=>{x=!1,v||n(!0)},pk)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(I=>{["namespace","Detached","derivation-path"].includes(I.status)||(v=!0),k(I,x)}).catch(s)}},[t.wallet]),no.createElement(R,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},td(d,t.wallet)&&no.createElement(no.Fragment,null,no.createElement(xs,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),no.createElement(ak,{direction:"vertical",size:32})),qn(d)&&no.createElement(On,{onConfirm:f,value:d().namespace}),Qn(d)&&no.createElement(zn,{onConfirm:T,value:d().derivationPath}),Co(d)&&no.createElement(Un,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces}))}i(Hn,"StatefulConnectModal");import{Provider as gk}from"@rango-dev/wallets-react";import gi,{createContext as hk,useEffect as sd,useMemo as yk,useRef as ld}from"react";import{useEffect as uk}from"react";function nd(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(nd,"hashProviders");function As(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=S(),a=n();return uk(()=>{o(),r()},[nd(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(As,"useWalletProviders");import{legacyFormatAddressWithNetwork as dk,legacyReadAccountAddress as rd}from"@rango-dev/wallets-core/legacy";import{Events as an}from"@rango-dev/wallets-react";import{isEvmBlockchain as mk}from"rango-sdk";function id(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=S(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(mk).map(m=>m.name),u=i((m,T)=>{let[y,,C,k,v]=m,x={walletType:y,network:k.network??void 0,accounts:C};c.current?c.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let A=Za(y,C,p,T.supportedChainNames,v.isContractWallet);A.length&&e(A,v.namespace,k.derivationPath)},"onAccountsEvent"),d=i((m,T,y,C,k)=>{if(T===an.ACCOUNTS){let v=Ln(k.supportedBlockchains);y&&u([m,T,y,C,k],{supportedChainNames:v})}T===an.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),T===an.NAMESPACE_DISCONNECTED&&n(m,y)},"handleUpdatesForHub"),g=i((m,T,y,C,k)=>{if(T===an.ACCOUNTS){let v=Ln(k.supportedBlockchains),x=[],A=[];if(y?.forEach(E=>{let{network:b}=rd(E);p.includes(b)?x.push(E):A.push(E)}),r.filter(E=>E.walletType===m).map(E=>dk(E.address,E.chain)).length>0){if(x.length>0){let E=Za(m,x,p,v,k.isContractWallet);a(m,{chains:E.map(b=>b.chain)})}A.length>0&&a(m,{chains:A.map(E=>{let{network:b}=rd(E);return b})})}y?u([m,T,y,C,k],{supportedChainNames:v}):(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((m,T,y,C,k)=>{if(T===an.CONNECTED&&y){let v={walletType:m,network:C.network??void 0,accounts:C.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(T===an.NETWORK&&y){let v={walletType:m,network:y,accounts:C.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((m,T,y,C,k)=>{k.isHub?d(m,T,y,C,k):g(m,T,y,C,k),h(m,T,y,C,k)},"handler")}}i(id,"useUpdates");import{LegacyEvents as fk}from"@rango-dev/wallets-core/legacy";function ad(t,e){let[o,n,r,a,s]=e;n!==fk.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(ad,"propagateEvents");var hi=hk({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Sk(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=S(),a=S().blockchains(),s=S().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=As(s.wallets,c),p=ld(),u=ld(),{handler:d}=id({onConnectWalletHandler:p,onDisconnectWalletHandler:u});sd(()=>{n().catch(console.log)},[]),sd(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let g=oe.use.isActiveTab(),h=yk(()=>({onConnectWallet:f=>{p.current=f},onDisconnectWallet:f=>{u.current=f}}),[]);return gi.createElement(hi.Provider,{value:h},gi.createElement(gk,{allBlockChains:a,providers:l,onUpdateState:(f,m,T,y,C)=>{let k=[f,m,T,y,C];d(...k),t.onUpdateState&&ad(t.onUpdateState,k)},autoConnect:!!g,configs:{wallets:s.wallets}},t.children))}i(Sk,"Main");function yi(t){let{config:e,...o}=t;return gi.createElement(Nu,{config:e},gi.createElement(Sk,{...o,config:e}))}i(yi,"WidgetWallets");import qa from"react";import Ck,{Fragment as Tk}from"react";import{MemoryRouter as kk,useInRouterContext as vk}from"react-router";function cd({children:t}){let o=vk()?Tk:kk;return Ck.createElement(o,null,t)}i(cd,"AppRouter");import{I18nManager as iN}from"@rango-dev/ui";import gp from"react";import qe from"react";import{useRoutes as V0}from"react-router-dom";var F={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as ln,useRef as xi}from"react";import nt from"bignumber.js";import{create as Ek}from"zustand";import{subscribeWithSelector as Ik}from"zustand/middleware";import{i18n as wt}from"@lingui/core";import{getRelatedWalletOrNull as xk,RouteEventType as mD}from"@rango-dev/queue-manager-rango-preset";import Ge from"bignumber.js";import{PendingSwapNetworkStatus as wi}from"rango-types";import{i18n as He}from"@lingui/core";var ne=i(()=>({genericServerError:He.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:He.t("Please reset your liquidity sources."),description:He.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:He.t("No Routes Found."),description:He.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:He.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:He.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:He.t("High Price Impact"),title:He.t("Price impact is too high!"),description:He.t("The price impact is significantly higher than the allowed amount."),confirmMessage:He.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:He.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:He.t("USD Price Unknown"),title:He.t("USD Price Unknown, Cannot calculate Price Impact."),description:He.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:He.t("Confirm USD Price Unknown")}}),"errorMessages");function pd(t){return t.type===0?t.diagnosisMessage??ne().noResultError.title:t.type===1?t.diagnosisMessage??ne().genericServerError:""}i(pd,"getQuoteErrorMessage");import{i18n as Si}from"@lingui/core";var Ao=i(()=>({connectWallet:Si.t("Connect Wallet"),swap:Si.t("Swap"),swapAnyway:Si.t("Swap anyway"),ethWarning:Si.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ns(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Ns,"getFeeLabel");var Bs=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],ud=100,dd=30,md=15,fd=60;var gd=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],hd=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as bk}from"@rango-dev/queue-manager-rango-preset";import R_ from"bignumber.js";function Sd(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(Sd,"getRequiredBalanceOfWallet");function Ht(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Ht,"getPriceImpactLevel");function Ci(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=bk(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=To(a?a.toBlockchain:n.fromBlockchain,e),l=To(r.toBlockchain,e),p=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:d}}i(Ci,"createRetryQuote");function sn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=Gn(o),s=St(o);if(o&&a&&s){let p=Qt(a.toString(),s.toString());if(!!p&&wd(a,p)){let d=ki(o?.swaps,n),g=Ht(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:g}}}if(e&&Ed(e,o))return{type:4,usdValueChange:_(St(o)?.minus(St(e)??0).toString()??"0",null,2),percentageChange:_(Qt(St(e)??"1",St(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=vi(o.swaps),l=r>jo;if(xd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:bd(o,r),minRequiredSlippage:c};return null}i(sn,"generateQuoteWarnings");function Cd(t){return![4].includes(t.type)}i(Cd,"isQuoteWarningConfirmationRequired");function Qt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ws(t.toString(),e.toString());return n&&n<0?n:null}i(Qt,"getPriceImpact");var Td=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),Ti=i((t,e)=>e.sort((o,n)=>{let r=i(p=>p.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),kd=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(c=>c.swapperId));return Array.from(n).every(c=>s.has(c))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),vd=i(t=>{let e=i((o,n)=>{let r=Bs.indexOf(o.value),a=Bs.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function wd(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return gd.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ge(r)))}i(wd,"hasHighValueLoss");function Id(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(Id,"hasLimitError");function Ad(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new Ge(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new Ge(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0],o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=wt.t({id:"Required: >= {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=wt.t({id:"Required: > {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=wt.t({id:"Required: <= {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=wt.t({id:"Required: < {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Ad,"getLimitErrorMessage");function Nd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Ao().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Ao().swap,action:"confirm-swap",disabled:!0}:s?{title:Ao().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Ao().ethWarning,action:"confirm-warning",disabled:!1}:{title:Ao().swap,action:"confirm-swap",disabled:!1}:{title:Ao().connectWallet,action:"connect-wallet",disabled:!1}}i(Nd,"getSwapButtonState");function Ls(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ce))&&e&&e!=="0"&&n!==0)}i(Ls,"canComputePriceImpact");function Ps(t,e){let o=ce;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ge(r.amount).multipliedBy(a||0))}return o}i(Ps,"getUsdFeeOfStep");function ki(t,e){return t.reduce((o,n)=>o.plus(Ps(n,e)),ce)}i(ki,"getTotalFeeInUsd");function Ms(t){let e=ce,o=new Ge(t.price||0);return e=e.plus(new Ge(t.amount).multipliedBy(o)),e}i(Ms,"getUsdFee");function Bd(t){return t.reduce((e,o)=>e.plus(Ms(o)),ce)}i(Bd,"getTotalFeesInUsd");function Wd(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(Wd,"getFeesGroup");function Ld(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?Object.fromEntries(e):null}i(Ld,"checkSlippageErrors");function bd(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?Object.fromEntries(o):null}i(bd,"checkSlippageWarnings");function vi(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(vi,"getMinRequiredSlippage");function xd(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(xd,"hasProperSlippage");function Pd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:d,affiliateWallets:g,destination:h,contractCall:f}=t,m=a?.reduce((C,k)=>(C[k.chain]=k.address,C),{}),T=[];return r?.forEach(C=>{T.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??void 0,affiliateWallets:g??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:T,selectedWallets:m??{},slippage:p.toString(),contractCall:f,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1}}}i(Pd,"createQuoteRequestBody");function Md(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Md,"getWalletsForNewSwap");function Gn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}i(Gn,"getUsdInputFrom");function St(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}i(St,"getUsdOutputFrom");function Ws(t,e){return new Ge(e).div(new Ge(t)).minus(1).multipliedBy(ud).toNumber()}i(Ws,"getPercentageChange");function Ed(t,e){let o=Gn(t),n=St(t),r=St(e);if(!o||!n||!r)return!1;let a=Ws(n.toString(),r.toString());return hd.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Ed,"isOutputAmountChangedExcessively");function _d(t,e,o){let n=t.validationStatus,r=wo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>Sd(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=_(new Ge(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=_(new Ge(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=wt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=wt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=wt.t(" for input and network fee")),wt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:gt(s.asset.blockchain,o)}})})}i(_d,"generateBalanceWarnings");function Vn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==wi.NetworkChanged}i(Vn,"isNetworkStatusInWarningState");function Dd(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),Vn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?xk(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case wi.WaitingForConnectingWallet:r=u?wt.t("Connect {wallet}",{wallet:u}):r;break;case wi.WaitingForQueue:r=r||wt.t("Waiting for other running tasks to be finished");break;case wi.WaitingForNetworkChange:r=r||wt.t("Waiting for changing wallet network");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(Dd,"getSwapMessages");function $d(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i($d,"getLastConvertedTokenInFailedSwap");function Fd(t){return t.status==="failed"}i(Fd,"shouldRetrySwap");function Od(t,e,o,n,r,a){if(!n||t)return!0;let s=wo({filter:"all",quote:n}),c=wo({filter:"required",quote:n}),l=s.every(d=>r.some(g=>g.chain===d)),p=c.every(d=>r.some(g=>g.chain===d)),u=o&&a?Go(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Od,"isConfirmSwapDisabled");function Ud(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Ud,"isTokensIdentical");var bi=i((t,e)=>t?.usdPrice?new nt(e||ce).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Ro(Ek()(Ik(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new nt(0),outputUsdValue:new nt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=ce,a=o.inputUsdValue;return Bn(o.inputAmount)?(e&&(n=e?.outputAmount?new nt(e?.outputAmount):null,a=Gn(e)??ce,r=St(e)??ce),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new nt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new nt(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new nt(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:bi(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new nt(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),sanitizeInputAmount:e=>{let o=eu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;Vr(e)||(o=Vp(o),o=Kp(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new nt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:bi(n.fromToken,o)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:bi(n??null,s),outputUsdValue:new nt(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?bi(e.toToken,e.outputAmount?.toString()||""):new nt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new nt(0),inputUsdValue:new nt(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new nt(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),zd=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&we.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&we.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function qd(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=O(),u=S().config,d=S().fetchStatus,g=S().blockchains(),{findToken:h}=S(),{setAffiliateRef:f,setAffiliatePercent:m,setAffiliateWallets:T}=S(),y=u?.from?.tokens,C=u?.from?.blockchains,k=u?.to?.tokens,v=u?.to?.blockchains,x=xi(void 0),A=xi(void 0),I=xi(void 0),E=xi(void 0);ln(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),ln(()=>{if(d==="success"){r();let b=g.find(M=>M.name===u?.from?.blockchain),w=u?.from?.token,B=w&&h(w);(b||!b&&I.current)&&n(b??null),B?a({token:B,meta:{blockchains:g}}):!B&&x.current&&a({token:null}),I.current=u?.from?.blockchain,x.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),ln(()=>{ts(s,y)&&a({token:null}),os(l,C)&&n(null)},[y,C]),ln(()=>{ts(c,k)&&a({token:null}),os(p,v)&&o(null)},[k,v]),ln(()=>{if(d==="success"){r();let b=g.find(M=>M.name===u?.to?.blockchain),w=u?.to?.token,B=w&&h(w);(b||!b&&E.current)&&o(b??null),B?e({token:B,meta:{blockchains:g}}):!B&&A.current&&e({token:null}),E.current=u?.to?.blockchain,A.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,d]),ln(()=>{f(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),T(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(qd,"useSyncStoresWithConfig");import{useEffect as $s,useRef as Ak}from"react";import{useInRouterContext as Nk,useLocation as Bk,useSearchParams as Wk}from"react-router-dom";function _s(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(_s,"convertTokenSearchParamToAsset");function Ds(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ds,"tokenToSearchParam");function Os(){let t=Bk(),[e,o]=Wk(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:g}=O(),h=S().fetchStatus,f=S().blockchains(),m=Nk(),{updateIframe:T,updateCampaignMode:y}=S(),C=S().isInCampaignMode(),k=Ak(),{findToken:v}=S(),x=i(()=>{let I={};for(let[L,te]of e.entries())L.startsWith("utm_")&&(I[L]=te);let E=e.get("fromAmount"),b=e.get("fromBlockchain"),w=e.get("fromToken"),B=e.get("toBlockchain"),M=e.get("toToken"),$=e.get("autoConnect"),q=e.get("clientUrl"),ee=e.get("liquiditySources"),V=e.get("blockchain");return{fromAmount:E,fromBlockchain:b,fromToken:w,toBlockchain:B,toToken:M,autoConnect:$,clientUrl:q,liquiditySources:ee,utmQueryParams:I,blockchain:V}},"getUrlSearchParams"),A=i(I=>{for(let E in I)I[E]||delete I[E];o(I,{replace:!0})},"updateUrlSearchParams");$s(()=>{let{autoConnect:I,clientUrl:E,utmQueryParams:b,blockchain:w}=x();m&&h==="success"&&A({fromBlockchain:n?.name,fromToken:Ds(a),toBlockchain:r?.name,toToken:Ds(s),fromAmount:c,autoConnect:I??void 0,clientUrl:E??void 0,blockchain:w??void 0,liquiditySources:C?k.current:void 0,...b})},[t.pathname,c,n,a,r,s,C,h]),$s(()=>{if(!m)return;let I=x();if(!k.current&&I.liquiditySources&&(k.current=I.liquiditySources),I.fromAmount&&g(I.fromAmount),h==="success"){let E=f.find(M=>M.name===I.fromBlockchain),b=I.fromToken&&E?v(_s(I.fromToken,E)):void 0,w=f.find(M=>M.name===I.toBlockchain),B=I.toToken&&w?v(_s(I.toToken,w)):void 0;E&&(l(E),b&&u({token:b,meta:{blockchains:f}})),w&&(p(w),B&&d({token:B,meta:{blockchains:f}}))}},[h]),$s(()=>{let{clientUrl:I,liquiditySources:E}=x();T("clientUrl",I||void 0),y("liquiditySources",E?.split(",")??void 0)},[])}i(Os,"useSyncUrlAndStore");import{i18n as mn}from"@lingui/core";import{Alert as Jv,Button as Rv,darkTheme as ew,Divider as hl,DoneIcon as tw,styled as ow,TextField as nw,Typography as rw}from"@rango-dev/ui";import Ke,{useState as iw}from"react";import{useNavigate as aw,useSearchParams as sw}from"react-router-dom";import{ChevronRightIcon as Lk,Divider as Kd,Image as Pk,Typography as jd}from"@rango-dev/ui";import bt from"react";import{darkTheme as Qd,styled as Us}from"@rango-dev/ui";var Hd=Us("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Qd} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Qd} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),Gd=Us("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),Vd=Us("div",{display:"flex"});function zs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return bt.createElement(Gd,null,bt.createElement(jd,{size:"large",variant:"label"},n),bt.createElement(Kd,{size:10}),bt.createElement(Hd,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},bt.createElement(Vd,null,r&&bt.createElement(bt.Fragment,null,bt.createElement(Pk,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),bt.createElement(Kd,{size:4,direction:"horizontal"})),bt.createElement(jd,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),bt.createElement(Lk,{size:12,color:"black"})))}i(zs,"BlockchainSelectorButton");import{i18n as Vs}from"@lingui/core";import{Button as $k,Divider as Jd,MessageBox as Fk}from"@rango-dev/ui";import ro,{useEffect as Rd,useState as Ks}from"react";import{i18n as Ei}from"@lingui/core";import{Divider as No,ExternalLinkIcon as _k,Image as Dk,Typography as pn}from"@rango-dev/ui";import be from"react";var Xd="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function Yd(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Yd,"generateExplorerLink");import{Button as Mk,darkTheme as cn,styled as qs}from"@rango-dev/ui";var Qs=qs("a",{textDecoration:"none",color:"$colors$neutral700",[`.${cn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${cn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${cn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${cn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),Zd=qs("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${cn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${cn} &`]:{color:"$colors$neutral900"}}}),Hs=qs(Mk,{minHeight:"$40"});function Gs(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=Yd(n.address,s),l=i(()=>window.open(Xd,"_blank"),"onClickLearnMore");return be.createElement(R,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},be.createElement(Zd,null,be.createElement(Dk,{src:n.image===""?zr:n.image,size:45,type:"circular"}),be.createElement(No,{size:4}),be.createElement(pn,{variant:"title",size:"medium"},n.symbol),be.createElement(pn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),be.createElement(No,{size:4}),be.createElement(pn,{variant:"body",size:"medium"},c?be.createElement(Qs,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,be.createElement(_k,{size:12,color:"gray"})):be.createElement(Qs,null,n.address)),be.createElement(No,{size:4}),n.coinSource&&be.createElement(pn,{className:"_coin-source",variant:"body",size:"xsmall"},Ei.t("via")," ",be.createElement(pn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),be.createElement(No,{size:"32"}),be.createElement(pn,{size:"medium",variant:"body",className:"_custom-token-description"},Ei.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),be.createElement(No,{size:40}),be.createElement(No,{size:10}),be.createElement(Hs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Ei.t("Import Anyway")),be.createElement(No,{size:10}),be.createElement(Hs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Ei.t("Learn More")))}i(Gs,"CustomTokenModal");function Kn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=S(),[d,g]=Ks(!1),[h,f]=Ks(!1),[m,T]=Ks(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),g(!1)},"closeErrorModal"),k=i(()=>{T(!0),C()},"handleErrorModalButtonClick"),v=i(()=>{m&&n?.type==="network-error"&&(T(!1),y()),l()},"handleExit"),x=i(()=>{e&&(u(e),c())},"handleSubmit");return Rd(()=>{n&&g(!0)},[n]),Rd(()=>{o&&e&&f(!0)},[o,e]),ro.createElement(ro.Fragment,null,ro.createElement(R,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:C,onExit:v,container:N()},ro.createElement(Fk,{title:n?.title??"",type:"error",description:n?.message||Vs.t("Failed Network, Please retry.")},ro.createElement(Jd,{size:40}),ro.createElement(Jd,{size:10}),ro.createElement($k,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:k},n?.type==="network-error"?Vs.t("Retry"):Vs.t("Add another custom token")))),o&&e&&ro.createElement(Gs,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>f(!1),open:h,onExit:p}))}i(Kn,"ImportCustomToken");import{useManager as Vv}from"@rango-dev/queue-manager-react";import{BottomLogo as Kv,Divider as Wm,Header as jv}from"@rango-dev/ui";import We,{useEffect as _i,useLayoutEffect as Xv,useRef as Lm,useState as Pm}from"react";import{useRef as Ok}from"react";function jn(){return window.self!==window.top}i(jn,"isAppLoadedIntoIframe");function js(){let t=Ok(null),{iframe:e}=S(),o=jn()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(js,"useIframe");import{useNavigate as Uk}from"react-router-dom";function Ve(){let t=Uk();return()=>t(-1)}i(Ve,"useNavigateBack");import{useLayoutEffect as zk,useState as Xn}from"react";var em=480,tm=768,om=1024,nm=1200,qk=i(()=>{let[t,e]=Xn(!1),[o,n]=Xn(!1),[r,a]=Xn(!1),[s,c]=Xn(!1),[l,p]=Xn(!1),u=i(()=>{e(window.innerWidth<=em),n(window.innerWidth>em&&window.innerWidth<=tm),a(window.innerWidth>tm&&window.innerWidth<=om),c(window.innerWidth>om&&window.innerWidth<=nm),p(window.innerWidth>nm)},"handleResize");return zk(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),un=qk;import{createTheme as tl,darkTheme as tv,lightTheme as ov}from"@rango-dev/ui";import{useEffect as nv,useState as rv}from"react";import{theme as Rk,darkColors as ev}from"@rango-dev/ui";import Rs from"react";var Ii=16,Ai=255,rm=.11;function Qk(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Qk,"expandShortHexColor");function Hk(t,e){return t.padStart(e,"0")}i(Hk,"pad");function Xs(t){let e=Math.min(Math.max(Math.round(t),0),Ai);return Hk(e.toString(Ii),2)}i(Xs,"intToHex");function Gk(t){return`#${Xs(t.red)}${Xs(t.green)}${Xs(t.blue)}`}i(Gk,"rgbToHex");function Vk(t){let e=parseInt(t.slice(1,3),Ii),o=parseInt(t.slice(3,5),Ii),n=parseInt(t.slice(5,7),Ii);return{red:e,green:o,blue:n}}i(Vk,"hexToRGB");function Kk(t,e){let o=1-rm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Kk,"generateShade");function jk(t,e){let o=rm*e;return{red:t.red+(Ai-t.red)*o,green:t.green+(Ai-t.green)*o,blue:t.blue+(Ai-t.blue)*o}}i(jk,"generateTint");function Xk(t){return im(t,Kk)}i(Xk,"calculateShades");function Yk(t){return im(t,jk)}i(Yk,"calculateTints");function im(t,e){let o=Vk(t),n=[];for(let r=1;r<9;r++)n.push(Gk(e(o,r)));return n}i(im,"calculateColors");function Ys(t,e,o){let a=Yk(t).reverse().concat(t),s=Xk(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let d=100+(o?p-1-u:u)*50;l[`${e}${d}`]=c[u]}return l}i(Ys,"createTintsAndShades");function Zs(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!Jp(r)){let l=Qk(a);Object.assign(n,Ys(l,r,s))}}return{...n,...e}}i(Zs,"expandToGenerateThemeColors");var am=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Zk=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=am(o%52)+e;return am(o%52)+e},"toAlphabeticName"),Jk=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Js=i(t=>Zk(Jk(5381,JSON.stringify(t))>>>0),"toHash");function el(t){let e=Rk.colors,o={...e,...ev},n,r;if(t?.light){let s={colors:Zs(e,t.light)};n={id:`${es}-light-${Js(s)}`,tokens:s}}if(t?.dark){let s={colors:Zs(o,t.dark,{reverseNeutralRange:!0})};r={id:`${es}-dark-${Js(s)}`,tokens:s}}return{light:n,dark:r}}i(el,"customizedThemeTokens");function sm(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Rs.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Rs.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(Rs.cloneElement(e,{key:c}))}}),o}i(sm,"joinList");function lm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(lm,"doesWindowPreferDarkColorScheme");function io(t){let{colors:e,fontFamily:o=Dp,borderRadius:n=du,secondaryBorderRadius:r=mu}=t,[a,s]=rv(lm()?"dark":"light"),{theme:c}=S(),{dark:l,light:p}=el(e),u=tl({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,ov.className],g=[u.className,tv.className];if(p){let f=tl(p.id,p.tokens);d.push(f.className)}if(l){let f=tl(l.id,l.tokens);g.push(f.className)}return nv(()=>{let f=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return lm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=d.join(" "),m=g.join(" ");return c==="auto"?a==="dark"?m:f:c==="dark"?m:f},"getActiveTheme"),mode:c==="auto"?a:c}}i(io,"useTheme");var Ct=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as cm}from"@lingui/core";import{Alert as iv,Button as av}from"@rango-dev/ui";import pm from"react";function ol(t){return pm.createElement(iv,{action:pm.createElement(av,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},cm.t("Activate this tab")),type:"warning",variant:"alarm",title:cm.t("Another tab is open and handles transactions.")})}i(ol,"ActivateTabAlert");import{i18n as nl}from"@lingui/core";import{Button as sv,Divider as lv,MessageBox as cv}from"@rango-dev/ui";import Ni from"react";function rl(t){let{open:e,onClose:o,onConfirm:n}=t;return Ni.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},Ni.createElement(cv,{title:nl.t("Activate current tab"),type:"warning",description:nl.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},Ni.createElement(lv,{size:20}),Ni.createElement(sv,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},nl.t("Confirm"))))}i(rl,"ActivateTabModal");import{ChevronLeftIcon as dv}from"@rango-dev/ui";import Sm from"react";import{css as pv,darkTheme as um,IconButton as uv,styled as Bo}from"@rango-dev/ui";var Pt=Bo(uv,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${um} &`]:{backgroundColor:"$neutral"}}}),dm=Bo("div",{position:"absolute",background:"$secondary500",[`.${um} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),ao=Bo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),mm=Bo("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),fm=Bo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),gm=Bo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),hm=pv({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),ym=Bo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function il(t){return Sm.createElement(Pt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Sm.createElement(dv,{color:"black",size:16}))}i(il,"BackButton");import{i18n as mv}from"@lingui/core";import{Button as fv,Typography as gv}from"@rango-dev/ui";import al from"react";function sl(t){return al.createElement(ao,null,al.createElement(fv,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},al.createElement(gv,{variant:"label",size:"medium",color:"error500"},mv.t("Cancel"))))}i(sl,"CancelButton");import{i18n as hv}from"@lingui/core";import{Image as yv,Tooltip as Sv,WalletIcon as Cv}from"@rango-dev/ui";import Wo from"react";function ll(t){let{list:e}=vt(),o=e.filter(r=>r.state==="connected"),n=o.length?Wo.createElement("div",{className:hm()},o.map(r=>Wo.createElement(ym,{key:r.title},Wo.createElement(yv,{src:r.image,size:14})))):hv.t("Connect Wallet");return Wo.createElement(Sv,{container:t.container,side:"bottom",content:n},Wo.createElement(Pt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Wo.createElement(dm,null),Wo.createElement(Cv,{size:18,color:"black"})))}i(ll,"WalletButton");import{i18n as Wi}from"@lingui/core";import{NotificationsIcon as _v,Popover as Dv,SettingsIcon as $v,Tooltip as Li,TransactionIcon as Fv}from"@rango-dev/ui";import De from"react";import{Notifications as wv}from"@rango-dev/ui";import bv from"react";import{useNavigate as xv}from"react-router-dom";import{create as Tv}from"zustand";import{persist as kv,subscribeWithSelector as vv}from"zustand/middleware";var Be=Ro(Tv()(kv(vv((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function cl(){let t=xv(),{getNotifications:e,clearNotifications:o}=Be(),n=e(),r=S().blockchains(),{findToken:a}=S();return bv.createElement(wv,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Ip(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${F.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(cl,"NotificationContent");import{useManager as Ev}from"@rango-dev/queue-manager-react";import{InProgressIcon as Iv}from"@rango-dev/ui";import Cm from"react";var Av=i(()=>{let{manager:t}=Ev();return Ct(t).map(({swap:o})=>o).find(o=>o.status==="running")?Cm.createElement(gm,{id:"widget-header-history-badge-container"},Cm.createElement(Iv,{color:"info",size:6})):null},"InProgressTransactionBadge"),Tm=Av;import{EventSeverity as Nv}from"@rango-dev/queue-manager-rango-preset";import{Typography as Bv}from"@rango-dev/ui";import km from"react";function vm(){let{getNotifications:t}=Be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Nv.WARNING);return o?km.createElement(mm,{isSever:n},km.createElement(Bv,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(vm,"NotificationsBadge");import{RefreshProgressButton as Wv}from"@rango-dev/ui";import pl,{useEffect as Lv,useState as wm}from"react";var Pv=1e3,bm=60,Mv=100;function Bi({onClick:t}){let[e,o]=wm(0),[n,r]=wm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Lv(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===bm&&c()},Pv):s(l),document.addEventListener("visibilitychange",()=>a(l)),()=>{document.removeEventListener("visibilitychange",()=>a(l)),l&&clearInterval(l)}},[e,t]);let s=i(l=>{l&&clearInterval(l),o(0)},"clearTimeout"),c=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return pl.createElement(Pt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},pl.createElement(fm,{onTransitionEnd:()=>r(!1),isRefetched:n},pl.createElement(Wv,{size:22,color:t?"black":"gray",progress:e/bm*Mv})))}i(Bi,"RefreshButton");function Lo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=S(),c=ot("notification",s)||r.includes("notifications");return De.createElement(De.Fragment,null,!r.includes("refresh")&&De.createElement(Li,{container:a||N(),side:"top",content:Wi.t("Refresh")},De.createElement(Bi,{onClick:e})),!c&&De.createElement(Dv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:De.createElement(cl,null)},De.createElement("div",null,De.createElement(Li,{container:N(),side:"top",content:Wi.t("Notifications")},De.createElement(Pt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},De.createElement(_v,{size:18,color:"black"}),De.createElement(vm,null))))),!r.includes("settings")&&De.createElement(Li,{container:N(),side:"top",content:Wi.t("Settings")},De.createElement(Pt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},De.createElement($v,{size:18,color:"black"}))),!r.includes("history")&&De.createElement(Li,{container:N(),side:"top",content:Wi.t("History")},De.createElement(Pt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},De.createElement(Fv,{size:18,color:"black"}),De.createElement(Tm,null))))}i(Lo,"HeaderButtons");import{i18n as ul}from"@lingui/core";import{Divider as Em,MessageBox as zv,RefreshIcon as qv}from"@rango-dev/ui";import dn from"react";import{Button as Ov,styled as Uv}from"@rango-dev/ui";var xm=Uv(Ov,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function dl(t){let{open:e,onClose:o}=t;return dn.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},dn.createElement(zv,{title:ul.t("Something went wrong"),type:"error",description:ul.t("Something went wrong. Please refresh the app.")},dn.createElement(Em,{size:30}),dn.createElement(xm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},dn.createElement(qv,{size:20,color:"primary"}),dn.createElement(Em,{size:4,direction:"horizontal"}),ul.t("Refresh"))))}i(dl,"RefreshModal");function ml(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(ml,"onScrollContentAttachStatusToContainer");import{css as Hv,styled as Pi}from"@rango-dev/ui";var Mi=Hv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Im=Pi("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:700},fixed:{minHeight:425,maxHeight:700,height:700}},showBanner:{true:{overflow:"visible"}}}}),Am=Pi("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Nm=Pi("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}}),Bm=Pi("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=js(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=S(),[u,d]=Pm(!1),{config:{features:g,theme:h}}=S(),{watermark:f,setShowCompactTokenSelector:m}=oe(),T=f==="FULL",{activeTheme:y}=io(h||{}),[C,k]=Pm(!1),v=ot("connectWalletButton",g),{isActiveTab:x,tabManagerInitiated:A,showActivateTabModal:I,setShowActivateTabModal:E,activateCurrentTab:b}=oe(),w=Ve(),{manager:B}=Vv(),{isTablet:M,isMobile:$}=un(),ee=Ct(B).map(({swap:X})=>X).some(X=>X.status==="running"),V=i(()=>b(xo.forceClaim,ee),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),te=typeof r.hasBackButton>"u"||r.hasBackButton,le=Lm(null),J=Lm(null);return _i(()=>{let X=(p?.swapBoxBanner?.routes?.length??0)===0,j=!!p?.swapBoxBanner?.routes?.some(ue=>location.pathname.endsWith(ue));k(!!p?.swapBoxBanner&&(X||j))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),_i(()=>(jn()&&J.current&&e(J.current),()=>{o()}),[]),_i(()=>(le.current?.addEventListener("scroll",ml),()=>{le.current?.removeEventListener("scroll",ml)}),[]),_i(()=>{d(c==="failed")},[c]),Xv(()=>{let X=s==="auto"||!J.current||jn(),j=$||M,ue=i(()=>{X||(j?J.current.style.height=`${window.innerHeight-J.current.offsetTop}px`:J.current.style.height=`${700}px`,m(parseFloat(J.current.style.height)<640))},"handler");return ue(),window.addEventListener("resize",ue),()=>window.removeEventListener("resize",ue)},[s,$,M]),We.createElement(Im,{height:s,id:tt.SWAP_BOX_ID,className:`${y()} ${Mi()}`,ref:J,showBanner:C},We.createElement(jv,{prefix:te?We.createElement(il,{onClick:()=>{w(),r.onBack?.()}}):null,title:r.title,suffix:We.createElement(We.Fragment,null,r.suffix,r.onWallet&&!v&&We.createElement(ll,{container:N(),onClick:L,isConnected:!!l?.length}),r.onCancel&&We.createElement(sl,{onClick:r.onCancel}))}),We.createElement(Am,{ref:le},n),We.createElement(rl,{open:I,onClose:()=>E(!1),onConfirm:V}),We.createElement(Nm,null,We.createElement("div",{className:"footer__content"},A&&!x&&We.createElement("div",{className:"footer__alert"},We.createElement(ol,{onActivateTab:V}),We.createElement(Wm,{size:10})),a),We.createElement(Wm,{size:12}),We.createElement("div",{className:`footer__logo ${T?"logo__show":"logo__hidden"}`},We.createElement(Kv,null))),C&&We.createElement(Bm,null,p?.swapBoxBanner?.element),We.createElement(dl,{open:u,onClose:()=>d(!1)}))}i(ie,"Layout");import{styled as Yv}from"@rango-dev/ui";var Mm="$20 $20 $10 $20",fl=Yv("div",{padding:Mm,overflowY:"auto",flexGrow:1});import{styled as Zv}from"@rango-dev/ui";var ae=Zv("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as so}from"@lingui/core";import{useState as gl}from"react";function _m(){let[t,e]=gl(!1),[o,n]=gl(null),[r,a]=gl(null),{findToken:s}=S(),c=S().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(d,g){switch(d){case"duplicated":return{type:d,title:so.t("Duplicate Token"),message:so.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:so.t("Token Already Exists"),message:so.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:d,title:so.t("Token Not Found"),message:so.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:g}})};case"network-error":return{type:d,title:so.t("Network error"),message:so.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:g})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===g.toLowerCase())){let y=p("duplicated");n(y);return}let f=await ct().getCustomToken({blockchain:d,address:g});if(!f||!f.token||f.error){let y=p("not-found",d);n(y);return}let m=f.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let y=p("token-exist");n(y);return}return a({...m,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let f=p("not-found",d);n(f);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(_m,"useFetchCustomToken");var lw=ow("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${ew} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Dm(){let t=aw(),[e]=sw(),o=Ve(),n=S().blockchains(),r=e.get("blockchain")||"",a=To(r,n),[s,c]=iw(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:g}=_m(),h=!!a&&Go(a,s),f=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ke.createElement(ie,{header:{title:mn.t("Add Custom Token")}},Ke.createElement(ae,null,Ke.createElement(lw,null,Ke.createElement("div",null,Ke.createElement(zs,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:mn.t("Select chain"),placeholder:mn.t("Select chain")}),Ke.createElement(hl,{size:"24"}),Ke.createElement(rw,{size:"large",variant:"label"},mn.t("Enter Address")),Ke.createElement(hl,{size:10}),Ke.createElement(nw,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:mn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Ke.createElement(tw,{color:"success",size:12}),onChange:T=>c(T.target.value)}),!h&&!!s&&Ke.createElement(Ke.Fragment,null,Ke.createElement(hl,{size:4}),Ke.createElement(Jv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ke.createElement(Rv,{id:"widget-add-custom-token-import-btn",disabled:f,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},mn.t("Import"))),Ke.createElement(Kn,{token:p,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:g,onExitImportModal:g})))}i(Dm,"AddCustomTokenPage");import{i18n as Kl}from"@lingui/core";import{useManager as Kb}from"@rango-dev/queue-manager-react";import{Alert as jb,Button as Xb,css as Xl,Divider as jl,IconButton as Eg,styled as Yb,Typography as Zb,WalletIcon as Jb}from"@rango-dev/ui";import Fe,{useEffect as sa,useLayoutEffect as Rb,useRef as ex,useState as cr}from"react";import{useNavigate as tx}from"react-router-dom";import{i18n as Po}from"@lingui/core";import{Alert as Mw,BalanceErrors as _w,Button as cf,ChevronLeftIcon as Dw,Divider as bl,MessageBox as $w,Typography as xl}from"@rango-dev/ui";import re,{useCallback as Fw,useEffect as pf,useMemo as Ow,useState as hn}from"react";import{useNavigate as Uw}from"react-router-dom";import{i18n as Tl}from"@lingui/core";import{Alert as mw,ChevronDownIcon as fw,CloseIcon as gw,Divider as Qm,IconButton as Hm,PasteIcon as hw,Typography as yw,WalletIcon as Sw}from"@rango-dev/ui";import $e,{useEffect as Cw,useRef as Tw}from"react";import Oi,{useRef as uw}from"react";import*as fn from"@radix-ui/react-collapsible";import{keyframes as $m,styled as Di}from"@rango-dev/ui";var yl=300,cw=$m({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),pw=$m({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Fm=Di(fn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Sl=Di(fn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),$i=Di(fn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${cw} ${yl}ms ease-out`},false:{animation:`${pw} ${yl}ms ease-out`}}}}),Fi=Di("div",{transition:`all ${yl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Ui(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=uw(null);return Oi.createElement(Fm,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&Oi.createElement(Sl,{className:"collapsible_trigger",onClick:a},s),Oi.createElement($i,{className:"collapsible_content",open:e},r),c==="bottom"&&Oi.createElement(Sl,{className:"collapsible_trigger",onClick:a},s))}i(Ui,"CustomCollapsible");import{darkTheme as Om,styled as Cl,TextField as dw}from"@rango-dev/ui";var Um=Cl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),zm=Cl(dw,{backgroundColor:"$neutral100",padding:"$15"}),qm=Cl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Om} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Om} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function Gm(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=S(),c=S().blockchains(),l=Fr(e.name,c),p=Tw(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!Go(e,r),f=i(()=>{a("")},"handleClear"),m=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),p?.current?.focus()}},"handlePaste"),T=i(()=>r?$e.createElement(Hm,{id:"widget-custom-destination-close-icon-btn",onClick:f,variant:"ghost"},$e.createElement(gw,{size:12,color:"gray"})):d?null:$e.createElement(Hm,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},$e.createElement(hw,{size:16})),"renderSuffix");return Cw(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),$e.createElement(Um,null,$e.createElement(Ui,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:$e.createElement(qm,{id:"widget-custom-destination-collapsible-btn"},$e.createElement("div",{className:"button__content"},$e.createElement(Sw,{size:18,color:"info"}),$e.createElement(Qm,{size:4,direction:"horizontal"}),$e.createElement(yw,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Tl.t("Send to a different address"))),$e.createElement(Fi,{orientation:n?"up":"down"},$e.createElement(fw,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},$e.createElement(zm,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Tl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:T(),onChange:y=>{let C=y.target.value;a(C)}})),h&&$e.createElement($e.Fragment,null,$e.createElement(Qm,{size:4}),$e.createElement(mw,{variant:"alarm",type:"error",title:Tl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(Gm,"CustomDestination");import{css as kw,IconButton as vw,SelectableWalletButton as ww,styled as lo}from"@rango-dev/ui";var Vm=lo("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Km=lo("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),jm=lo(ww,{justifyContent:"center"}),Xm=lo("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Ym=lo(vw,{position:"absolute",left:"$20"}),Zm=lo("div",{paddingTop:"$20"}),Jm=kw({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Rm=lo("div",{display:"flex"}),ef=lo("div",{overflow:"visible",width:"100%"});import{i18n as vl}from"@lingui/core";import{warn as Aw}from"@rango-dev/logging-core";import{Divider as Nw,makeInfo as Bw,SelectableWallet as Ww,Typography as sf,WalletState as zi}from"@rango-dev/ui";import rt,{useEffect as lf,useState as Jn}from"react";import{Image as Ew,MessageBox as Iw}from"@rango-dev/ui";import Zn from"react";import{keyframes as bw,styled as kl}from"@rango-dev/ui";var tf=kl("div",{position:"relative"}),xw=bw({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),of=kl("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${xw} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),nf=kl("div",{"& img":{borderRadius:"50%"}});import{i18n as gn}from"@lingui/core";function rf(t,e){switch(t){case"in-progress":return{type:"loading",title:gn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:gn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:gn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:gn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:gn.t("Request Rejected"),description:gn.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(rf,"generateMessageByStatus");function af(t){let{status:e,displayName:o,image:n}=t,r=rf(e,o),a=e=="in-progress";return Zn.createElement(Iw,{type:r.type,title:r.title,description:r.description,icon:a?Zn.createElement(tf,null,Zn.createElement(nf,null,Zn.createElement(Ew,{src:n,size:45})),Zn.createElement(of,null)):void 0})}i(af,"ExperimentalChainStatus");var Lw=7,Pw=3e3;function wl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{blockchains:l,connectedWallets:p}=S(),[u,d]=Jn(),[g,h]=Jn(null),[f,m]=Jn(!1),[T,y]=Jn(null),{suggestAndConnect:C}=qi(),{list:k}=vt({chain:e}),[v,x]=Jn(k),A=k.length,I=a&&A-a>0,E=i(async w=>{m(!1),y("in-progress");try{await C(w.walletType,w.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");lf(()=>{x(w=>{let B=k.findIndex(M=>n(M.type,e));return I&&B>1?[k[B]].concat(k.filter((M,$)=>$!==B)):w.map(M=>k.find($=>$.type===M.type)??M)})},[JSON.stringify(k)]);let b=document.getElementById(tt.SWAP_BOX_ID);return lf(()=>{let w=null;return(T==="completed"||T==="rejected")&&(w=setTimeout(()=>y(null),Pw)),()=>{w&&clearTimeout(w)}},[T]),rt.createElement(rt.Fragment,null,v.slice(0,a).map(w=>{let B=au({connectedWallets:p,walletType:w.type,chain:e}),M=w.state===zi.CONNECTED,$=B?oo(B,Lw):"",q=M&&!!w.needsNamespace&&!$,ee=Yr(l(),e),V=!p.find(ue=>ue.walletType===w.type&&ue.chain===e),L=ee&&V&&w.state===zi.CONNECTED,te=i(async()=>{w.state===zi.DISCONNECTED||q?d(w):L?(h({walletType:w.type,chain:e,address:B??""}),m(!0)):r({walletType:w.type,chain:e,address:B??""})},"onSelectableWalletClick"),le=Bw(w.state),J=i(()=>L?vl.t({id:"Add {chain} chain",values:{chain:e}}):q?vl.t("Chain not connected"):$||le.description,"getWalletDescription"),X=i(()=>w.state===zi.CONNECTED?q?"neutral600":"neutral700":le.color,"getWalletDescriptionColor"),j=g?.chain?Fr(g.chain,l()):void 0;return rt.createElement(rt.Fragment,{key:`${w.title}_${j}`},!!g&&rt.createElement(R,{id:"widget-wallets-list-watermarked-modal",open:!!g&&f,container:b,onClose:()=>{h(null)}},rt.createElement(Is,{id:"widget-wallets-list-experimental-chain-container",displayName:j,onConfirm:()=>{E(g)}})),T&&rt.createElement(R,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!T,onClose:y.bind(null,null),container:b},rt.createElement(af,{status:T,displayName:j,image:w.image}),rt.createElement(Nw,{direction:"vertical",size:32})),rt.createElement(Ww,{key:w.type,id:"widget-wallets-list-selectable-wallet-btn",description:J(),descriptionColor:X(),onClick:te,selected:n(w.type,e),disabled:!c,...w}))}),rt.createElement(Hn,{id:"widget-wallets-list-stateful-connect-modal",wallet:u,options:{defaultSelectedChains:o||[e]},onClose:()=>{d(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):Aw(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),I&&rt.createElement(jm,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},rt.createElement(sf,{variant:"label",size:"medium"},vl.t("Show more wallets"),rt.createElement(sf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",A-(a??0)))))}i(wl,"WalletList");var zw=2;function uf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Uw(),c=S().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:h}=O(),{config:f,connectedWallets:m,setWalletsAsSelected:T}=S(),[y,C]=hn(""),[k,v]=hn([]),[x,A]=hn(""),[I,E]=hn(!!g),b=Ow(()=>wo({filter:"all",quote:l}),[l]),w=wo({filter:"required",quote:l}),B=c.find(W=>W.name===l?.swaps[l?.swaps.length-1].to.blockchain),M=i(W=>w.includes(W),"isWalletRequiredFor"),$=Fw(()=>m.filter(W=>W.selected&&b.includes(W.chain)),[m,b]),[q,ee]=hn($()),[V,L]=hn([]),te=i((W,Q)=>L(K=>K.concat({blockchain:W,walletType:Q})),"addNextSelectedWallets"),le=k.length>0,J=i((W,Q)=>!!q.find(K=>K.walletType===W&&K.chain===Q&&K.selected&&(M(Q)||!M(Q)&&!g)),"isSelected"),X=i((W,Q,K)=>{let Y=!1;return W.map(ye=>{if(ye.chain===Q){let Qe=ye.selected;return!Y&&K?(Y=!0,Qe=!0):K||(Qe=!1),{...ye,selected:Qe}}return ye})},"updateSelectableWallets"),j=i(W=>{E(W),W?M(B?.name??"")||ee(Q=>X(Q,B?.name||"",!1)):(h(""),ee(Q=>X(Q,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),ue=i(W=>{if(y&&C(""),J(W.walletType,W.chain))return;let K=m.find(Y=>Y.walletType===W.walletType&&Y.chain===W.chain);K&&(n(),W.chain===B?.name&&I&&!M(B.name)&&(E(!1),h(null)),ee(Y=>Y.filter(ye=>ye.chain!==W.chain).concat({...K,selected:!0})))},"onChange"),de=i(()=>{let W=q.filter(Q=>Q.selected);T(W),p(W),d(!0),o()},"onConfirmBalance"),ke=i(async()=>{v([]),A("");let W=await r?.({selectedWallets:q.filter(K=>K.selected),customDestination:g}),Q=W.warnings;Q?.balance?.messages&&v(Q.balance.messages),W.error&&A(pd(W.error)),!W.error&&!Q?.balance?.messages.length?de():v(Q?.balance?.messages??[])},"onConfirmWallets");pf(()=>{ee(W=>{let Q=[];return W.forEach(K=>{!m.some(ye=>ye.chain===K.chain&&ye.walletType===K.walletType&&ye.address===K.address)||Q.push(K)}),Q=Q.concat(m.filter(K=>!!!Q.find(ye=>ye.chain===K.chain)&&K.selected&&b.includes(K.chain))),Q})},[m,b]),pf(()=>{let W=[];V.length>0&&(V.forEach(Q=>{let K=m.find(Y=>Y.chain===Q.blockchain&&Y.walletType===Q.walletType);K?ue(K):W.push(Q)}),L(W))},[m,V]);let H=document.getElementById(tt.SWAP_BOX_ID);return re.createElement(R,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:H,...!y&&{styles:{container:{height:"100%"}},footer:re.createElement(Rm,null,re.createElement(cf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Od(a,I,g,l,q,B),onClick:ke,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Po.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:re.createElement(Xm,null,re.createElement(Ym,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},re.createElement(Dw,{size:16})),re.createElement(xl,{variant:"headline",size:"small"},Po.t({id:"Your {blockchainName} wallets",values:{blockchainName:gt(y,c)}})))},anchor:"center"},re.createElement(R,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:le,onClose:v.bind(null,[]),container:H},re.createElement($w,{title:Po.t("Insufficient account balance"),type:"error",description:re.createElement(_w,{messages:k??[]})},re.createElement(cf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:de},Po.t("Proceed anyway")))),y&&re.createElement(Zm,null,re.createElement("div",{className:Jm()},re.createElement(wl,{chain:y,quoteChains:b,isSelected:J,selectWallet:ue,onShowMore:()=>C(y),onConnect:W=>{te(y,W)}}))),!y&&re.createElement(re.Fragment,null,x&&re.createElement(re.Fragment,null,re.createElement(Mw,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Po.t(x)}),re.createElement(bl,{size:12})),re.createElement(ef,null,b.map((W,Q)=>{let K=c.find(Oe=>Oe.name===W),Y=`wallet-${Q}`,ye=Q===b.length-1,Qe=ye&&B&&f?.customDestination!==!1;return re.createElement("div",{key:Y},re.createElement(Vm,null,re.createElement(xl,{variant:"title",size:"xmedium"},Po.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),re.createElement(xl,{variant:"label",color:"$neutral700",size:"medium"},Po.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),re.createElement(bl,{size:24}),re.createElement(Km,null,re.createElement(wl,{chain:W,quoteChains:b,isSelected:J,selectWallet:ue,limit:zw,onShowMore:()=>C(K?.name??""),onConnect:Oe=>{te(W,Oe)}})),!ye&&re.createElement(bl,{size:32}),Qe&&re.createElement(Gm,{blockchain:B,open:I,handleOpenChange:j}))}))))}i(uf,"ConfirmWalletsModal");import{i18n as lb}from"@lingui/core";import{Alert as cb,Button as pb,Divider as Bf,InfoIcon as ub}from"@rango-dev/ui";import Ue from"react";import{Alert as Hw,Button as Gw,Divider as Al,NoRouteIcon as Vw,RefreshIcon as Kw,Typography as Sf}from"@rango-dev/ui";import pt from"react";import{i18n as df}from"@lingui/core";var qw=24,Qw=60;function mf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ne().genericServerError,action:{onClick:n,title:df.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ne().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:df.t("Reset")}},description:ne().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ne().noResultError.description}}i(mf,"makeInfo");var El=(o=>(o[o.small=qw]="small",o[o.large=Qw]="large",o))(El||{}),Il=(o=>(o.small="small",o.large="medium",o))(Il||{});import{styled as Qi}from"@rango-dev/ui";var ff=Qi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),gf=Qi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),hf=Qi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),yf=Qi("div",{padding:"$6 $0"});function Rn(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=S().getDisabledLiquiditySources(),s=S().toggleAllLiquiditySources,c=S().swappers(),l=mf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),pt.createElement(ff,{id:"widget-no-result-container"},pt.createElement(Vw,{size:El[n],color:"gray"}),pt.createElement(Al,{size:4}),pt.createElement(Sf,{variant:"title",size:Il[n]},ne().noResultError.title),n==="large"&&pt.createElement(Al,{size:4}),!!l.description&&pt.createElement(gf,{size:n},pt.createElement(Sf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),pt.createElement(Al,{size:n==="large"?"24":"4"}),!!l.alert&&pt.createElement(hf,{size:n},pt.createElement(Hw,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&pt.createElement(Gw,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:pt.createElement(yf,null,pt.createElement(Kw,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Rn,"NoResult");import{i18n as tr}from"@lingui/core";import{Button as Yw,Divider as Zw,MessageBox as Jw,Typography as Rw,WarningIcon as eb}from"@rango-dev/ui";import Gt from"react";import{Typography as wf}from"@rango-dev/ui";import Bl from"react";import{Button as jw,darkTheme as Xw,styled as er}from"@rango-dev/ui";var Cf=er("div",{width:"100%"}),Nl=er("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Tf=er("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Xw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),kf=er("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),vf=er(jw,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function bf(t){let{title:e,value:o,valueColor:n}=t;return Bl.createElement(Tf,null,Bl.createElement(wf,{size:"medium",variant:"label",className:"_title"},e),Bl.createElement(wf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(bf,"QuoteErrorsModalItem");function xf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:tr.t("Swapping"),value:_(r.inputUsdValue,4,4)},{title:tr.t("Gas cost"),value:_(r.totalFee,2,2)},{title:tr.t("Receiving"),value:_(r.outputUsdValue,4,4)},{title:tr.t("Price impact"),value:_(r.priceImpact,2,2),valueColor:`${s}500`}];return Gt.createElement(R,{id:"widget-high-value-loss-warning-modal",footer:Gt.createElement(Yw,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Gt.createElement(eb,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},Gt.createElement(Jw,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Gt.createElement(Nl,null,Gt.createElement(Zw,{size:"4"}),Gt.createElement(Rw,{size:"small",variant:"title"},tr.t("Details")),Gt.createElement(Nl,null,c.map((l,p)=>Gt.createElement(bf,{key:p,...l})))))}i(xf,"HighValueLossWarningModal");import{i18n as yn}from"@lingui/core";function Ef(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=yn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=yn.t("Increase")),o;if(t){switch(t.type){case 0:{Ht(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().highValueLossError.title;break}case 4:{o.title=yn.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=ne().unknownPriceError.title;break}case 2:{o.title=yn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=yn.t("Increase");break}case 3:{o.title=yn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Ef,"makeAlerts");function If(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(If,"getRequiredSlippage");import{i18n as Sn}from"@lingui/core";import{Button as tb,Divider as Wl,MessageBox as ob,WarningIcon as nb}from"@rango-dev/ui";import uo from"react";import{useNavigate as rb}from"react-router-dom";function Af(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=rb();return uo.createElement(R,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},uo.createElement(ob,{type:"warning",title:r.type===3?Sn.t("High slippage"):Sn.t("Low slippage"),description:r.type===3?Sn.t("Caution, your slippage is high. Your trade may be front run."):Sn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},uo.createElement(Wl,{size:18}),uo.createElement(Wl,{size:32}),uo.createElement(vf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},uo.createElement(nb,{color:"white",size:16}),Sn.t("Swap anyway")),uo.createElement(Wl,{size:10}),uo.createElement(tb,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+F.settings)},Sn.t("Change Slippage"))))}i(Af,"SlippageWarningModal");import{Button as ib,MessageBox as ab,WarningIcon as sb}from"@rango-dev/ui";import Hi from"react";function Nf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Hi.createElement(R,{id:"widget-unknown-price-warning-modal",footer:Hi.createElement(ib,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Hi.createElement(sb,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Hi.createElement(ab,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(Nf,"UnknownPriceWarningModal");function or(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:d,onChangeSlippage:g}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,m=Ef(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let T=!!m&&!s,y=i(C=>{if(C==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,v=If(e,k);g?.(v)}else C==="change-settings"&&d()},"onclickActionButton");return Ue.createElement(Ue.Fragment,null,f&&Ue.createElement(Ue.Fragment,null,Ue.createElement(Bf,{size:10}),Ue.createElement(Rn,{skipAlerts:s,error:o,fetch:c})),T&&Ue.createElement(Cf,null,Ue.createElement(Bf,{size:10}),Ue.createElement(cb,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Ue.createElement(kf,{onClick:l},Ue.createElement(ub,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Ue.createElement(pb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>y(m.action)},m.actionButtonTitle||lb.t("Change"))}})),e&&Ue.createElement(Ue.Fragment,null,e.type===0&&Ue.createElement(xf,{...h,warning:e}),(e.type===3||e.type===2)&&Ue.createElement(Af,{...h,warning:e}),e.type===1&&Ue.createElement(Nf,{...h,warning:e})))}i(or,"QuoteWarningsAndErrors");import Ub from"bignumber.js";import na from"react";import{i18n as Mo}from"@lingui/core";import{Alert as Ib,Divider as Tn,FullExpandedQuote as Ab,InfoIcon as Nb,NumericTooltip as rg,QuoteTag as Bb,StepDetails as Wb,TokenAmount as Lb,Typography as kn}from"@rango-dev/ui";import Ul from"bignumber.js";import U,{useRef as Pb,useState as Mb}from"react";import{styled as Ll}from"@rango-dev/ui";var Pl=Ll("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Wf=Ll("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Lf=Ll("div",{width:"100%",display:"flex"});import*as Gi from"@radix-ui/react-collapsible";import{Button as db,css as nr,darkTheme as Le,Image as Pf,styled as Ze,Typography as mb}from"@rango-dev/ui";var fb=300,Mf=Ze(Gi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Le} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),_f=nr({padding:"$10 $15"}),Df=Ze(db,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Le} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Le} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Le} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),$f=Ze("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${Le} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Le} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Le} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Le} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Le} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Le} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Le} &`]:{backgroundColor:"$neutral400"}}}}]}),Ff=nr({width:"100%",padding:"$15 $15 $10 $15"}),Of=nr({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Cn=nr({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Uf=nr({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Le} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),zf=Ze(Gi.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Pf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Pf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Le} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),qf=Ze("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Qf=Ze($i,{width:"100%",background:"inherit"}),Ml=Ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${fb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),aQ=Ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Hf=Ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Le} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Gf=Ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),_l=Ze(mb,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Vf=Ze("div",{display:"flex",flexWrap:"wrap"}),Dl=Ze("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Kf=Ze("div",{display:"flex"}),Vi=Ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Le} &`]:{borderTopColor:"$neutral800"}});import{i18n as Mt}from"@lingui/core";import{ChevronDownIcon as hb,CloseIcon as yb,Divider as Xi,IconButton as Sb,NumericTooltip as Cb,QuoteCost as Tb,Typography as xt}from"@rango-dev/ui";import Z,{useState as Zf}from"react";import{css as gb,styled as Ki}from"@rango-dev/ui";var ji=Ki("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),$l=Ki("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),jf=Ki("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Xf=Ki("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Yf=gb({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var kb=i(t=>t.fee.isZero()?null:Z.createElement(ji,null,Z.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(xt,{variant:"label",size:"medium"},"$",_(t.fee,4,4))),"NonPayableFee");function Fl(t){let[e,o]=Zf(!1),[n,r]=Zf(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:g=!1}=t,h=s?.swaps??[],f=g?vo():N(),m=Wd(h),T=_(c,2,2);return Z.createElement(Z.Fragment,null,Z.createElement(Tb,{onClickFee:d?y=>{y.stopPropagation(),o(!e)}:void 0,fee:T,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?Mt.t("View more info"):void 0,tooltipContainer:f}),Z.createElement(R,{id:"widget-quote-cost-explanation-modal",container:f,open:e,anchor:g?"center":"bottom",styles:{container:{maxWidth:g?"484px":"unset"}},header:Z.createElement(Xf,{style:{textAlign:g?"left":"center"}},Z.createElement(xt,{variant:"title",size:"medium"},Mt.t("Gas & Fee Explanation")),Z.createElement(Sb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Z.createElement(yb,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(jf,null,Z.createElement(xt,{variant:"title",size:"small"},Mt.t("Details")),Z.createElement(Xi,{size:10}),Object.entries(m.payable).flatMap(([y,C])=>C.map((k,v)=>{let x=`payable-fee-${v}`,A=Ms(k);return Z.createElement(ji,{key:x},Z.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},Ns(y,Mt.t)),Z.createElement(Cb,{content:k.amount,container:f},Z.createElement(xt,{variant:"label",size:"medium"},_(k.amount,2,2),k.asset.symbol," ($",_(A,4,4),")")))})),Z.createElement(ji,{className:"total_payable_fee"},Z.createElement(xt,{variant:"label",size:"medium"},Mt.t("Total Payable Fee")),Z.createElement(xt,{variant:"label",size:"medium"},"$",_(c,4,4))),Z.createElement($l,null),!!Object.keys(m.nonePayable).length&&Z.createElement(Ui,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:Z.createElement("div",{className:Yf()},Z.createElement(xt,{size:"small",variant:"body",color:"neutral700"},n?Mt.t("Hide non-payable fees"):Mt.t("Show non-payable fees")),Z.createElement(Xi,{size:4,direction:"horizontal"}),Z.createElement(Fi,{orientation:n?"up":"down"},Z.createElement(hb,{size:12,color:"gray"}))),open:n},Z.createElement(xt,{size:"small",variant:"title"},Mt.t("Description")),Z.createElement(Xi,{size:4}),Z.createElement(xt,{size:"small",variant:"body",color:"neutral700"},Mt.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),Z.createElement(Xi,{size:10}),Object.entries(m.nonePayable).map(([y,C],k)=>{let v=Bd(C),x=Ns(y,Mt.t),A=`non-payable-fee-${k}`;return Z.createElement(kb,{key:A,fee:v,label:x})}),Z.createElement($l,null)))))}i(Fl,"QuoteCostDetails");import{i18n as eg}from"@lingui/core";import{TokenAmount as tg}from"@rango-dev/ui";import Yi from"react";import{css as vb,styled as wb}from"@rango-dev/ui";var Jf=wb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Rf=vb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function rr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Yi.createElement(Jf,null,Yi.createElement(tg,{direction:"horizontal",label:eg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Yi.createElement("div",{className:Rf()}),Yi.createElement(tg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:eg.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(rr,"QuoteSummary");import{i18n as og}from"@lingui/core";import{ChevronDownIcon as bb,ChevronRightIcon as xb,Divider as Ol,Image as Eb,Tooltip as ea,Typography as Zi}from"@rango-dev/ui";import z from"react";var Ji=4,Ri=6,ir=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return z.createElement(ea,{container:c,side:"bottom",sideOffset:4,open:r,content:e},z.createElement(qf,{className:n,state:a},z.createElement(Eb,{src:o,size:16})))},"ImageComponent");function ng(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),p=r.length,u=Td(r),{isTablet:d,isMobile:g}=un();return z.createElement(zf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(f=>!f)}},z.createElement("div",{className:Cn()},z.createElement(Zi,{variant:"body",size:"xsmall"},og.t("Via:")),z.createElement(Ol,{direction:"horizontal",size:4}),r.map((h,f)=>{let m=`item-${f}`,T=z.createElement(Ml,null,z.createElement(xb,{size:12,color:"black"}));return g||d?z.createElement(z.Fragment,{key:m},z.createElement(ir,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),f!==p-1&&z.createElement(z.Fragment,null,T)):z.createElement(z.Fragment,{key:m},p<=Ji||p>Ji&&f<Ji-1?z.createElement(z.Fragment,null,z.createElement(ir,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),f!==p-1&&z.createElement(z.Fragment,null,T)):f===Ji-1&&z.createElement(ea,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:Cn()},T,r.map((y,C)=>{let k=`image-${C}`;return C>=f&&z.createElement(z.Fragment,{key:k},z.createElement(ir,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),C!==p-1&&z.createElement(z.Fragment,null,T))}))},z.createElement(Dl,{state:r.find((y,C)=>C>=f&&(y.state==="error"||y.state==="warning"))?.state},z.createElement(Zi,{size:"xsmall",variant:"body"},"+",p-f))))})),z.createElement("div",{className:Cn()},z.createElement("div",{className:"blockchains_section"},z.createElement("div",{className:Cn()},z.createElement(Zi,{variant:"body",size:"xsmall"},og.t("Chains:")),z.createElement(Ol,{direction:"horizontal",size:4}),u.map((h,f)=>z.createElement(z.Fragment,{key:h.displayName},u.length<=Ri||u.length>Ri&&f<Ri-1?z.createElement(ea,{container:l,side:"bottom",content:h.displayName,sideOffset:4},z.createElement(ir,{content:"",src:h.image??"",open:!1,className:f!==0?"blockchainImage":""})):f===Ri-1&&z.createElement(ea,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:Cn()},u.map((m,T)=>T>=f&&z.createElement(ir,{key:m.displayName,content:"",src:m.image??"",open:!1,className:T>f?"blockchainImage":"",container:c})))},z.createElement(Dl,{className:"blockchainImage"},z.createElement(Zi,{size:"xsmall",variant:"body"},"+",u.length-f))))),z.createElement(Ol,{direction:"horizontal",size:32}))),z.createElement(Ml,{orientation:a?"up":"down"},z.createElement(bb,{size:12,color:"black"}))))}i(ng,"QuoteTrigger");function zl(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:d=!1,container:g}=t,h=S().blockchains(),{findToken:f}=S(),m=S().swappers(),{customSlippage:T,slippage:y}=S(),C=T||y,[k,v]=Mb(t.expanded),x=Pb(null),A=_(o.value,6,6),I=_(n.value,6,6),E=n.usdValue?_(n.usdValue,4,4):"",b=Qt(o.usdValue,n.usdValue??null),w=_(b,2,2),B=Ht(b??0),M=i((de,ke)=>de.map((H,W)=>{let Q,K=r?.type===3&&r.swap.swapperId===H.swapperId,Y=r?.type===4&&!!r.recommendedSlippages?.[W],ye=a?.type===2&&!!a.recommendedSlippages?.[W],Qe=K||Y,Oe=ye;Qe?Q="error":Oe&&(Q="warning");let kt=Qe?Mo.t("Slippage Error"):Mo.t("Slippage Warning");return K&&(kt=Mo.t("Bridge Limit Error")),{swapper:{displayName:In(H.swapperId,m)??"",image:H.swapperLogo},from:{token:{displayName:H.from.symbol,image:H.from.logo},chain:{displayName:gt(H.from.blockchain,h)??"",image:H.from.blockchainLogo},price:{value:W===0&&!ke?_(o.value,6,6):_(H.fromAmount,6,6),usdValue:_((H.from.usdPrice??0)*parseFloat(H.fromAmount),4,4),realValue:W===0?o.value:H.fromAmount,realUsdValue:new Ul(H.from.usdPrice??0).multipliedBy(H.fromAmount).toString()}},to:{token:{displayName:H.to.symbol,image:H.to.logo},chain:{displayName:gt(H.to.blockchain,h)||"",image:H.to.blockchainLogo},price:{value:_(H.toAmount,6,6),usdValue:_((H.to.usdPrice??0)*parseFloat(H.toAmount),4,4),realValue:H.toAmount,realUsdValue:new Ul(H.to.usdPrice??0).multipliedBy(H.toAmount).toString()}},state:Q,alerts:Qe||Oe?U.createElement(Wf,{dense:d},U.createElement(Ib,{variant:"alarm",type:Qe?"error":"warning",title:kt,id:"widget-quote-footer-step-alarm-alert",footer:U.createElement(Lf,null,K&&U.createElement("div",null,U.createElement(kn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(Tn,{direction:"vertical",size:2}),U.createElement(kn,{size:"xsmall",variant:"body",color:"neutral900"},Mo.t({id:"Yours: {amount} {symbol}",values:{amount:_(H.fromAmount,6,6),symbol:H?.from.symbol}}))),(Y||ye)&&!K&&U.createElement("div",null,U.createElement(kn,{size:"xsmall",variant:"body",color:"neutral900"},Mo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[W]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[W]}}})),U.createElement(Tn,{direction:"vertical",size:2}),U.createElement(kn,{size:"xsmall",variant:"body",color:"neutral900"},Mo.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Nn(H.estimatedTimeInSeconds),fee:_(Ps(H,f),2,2),internalSwaps:H.internalSwaps?M(H.internalSwaps):void 0}}),"getQuoteSteps"),$=M(e?.swaps??[]),q=$.length,ee=g||N(),V=vd(t.quote.tags||[]),L=!!u,te=Kr(e?.swaps),le=Nn(te),J=ki(e?.swaps??[],f),X=_(J,2,2),j=J.gte(new Ul(dd)),ue=te/fd>=md;return d?U.createElement(Ab,{selected:c,fee:X,time:le,tooltipContainer:vo(),steps:$,tags:V,id:"widget-quote-full-expanded-quote-container",quoteCost:U.createElement(Fl,{quote:e,fullExpandedMode:!0,time:le,fee:J,feeWarning:j,timeWarning:ue,showModalFee:p,steps:q}),percentageChange:w,warningLevel:B,outputPrice:{value:I,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):U.createElement($f,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},U.createElement("div",{className:Ff()},!l&&V.length?U.createElement(U.Fragment,null,U.createElement(Kf,null,V.map((de,ke)=>{let H=`${de.value}_${ke}`;return U.createElement(U.Fragment,{key:H},U.createElement(Bb,{label:de.label,value:de.value}),U.createElement(Tn,{size:4,direction:"horizontal"}))})),U.createElement(Vi,null),!L&&U.createElement(Tn,{size:4})):null,U.createElement("div",{id:"portal-root",className:Of()},U.createElement(Fl,{quote:e,time:le,fee:J,feeWarning:j,timeWarning:ue,showModalFee:p,steps:q}),L&&U.createElement(Df,{onClick:de=>{de.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(kn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Mo.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:Uf()},U.createElement(Gf,null,U.createElement(Nb,{size:12,color:"gray"})),U.createElement(Vf,null,U.createElement(_l,{size:"small",variant:"body"},`${A} ${$[0].from.token.displayName} = `),U.createElement(rg,{content:n.value,container:ee,open:n.value?void 0:!1},U.createElement(_l,{size:"small",variant:"body"},"\xA0",`${I} ${$[$.length-1].to.token.displayName}`))),U.createElement(rg,{content:n.usdValue,container:ee},U.createElement(Tn,{size:2,direction:"horizontal"}),U.createElement(kn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&U.createElement(Lb,{id:"widget-quote-token-amount-container",tooltipContainer:ee,type:"output",direction:"vertical",price:{value:I,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:$[q-1].to.token.displayName,image:$[q-1].to.token.image},chain:{image:$[q-1].to.chain.image},percentageChange:w,warningLevel:B}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(rr,{from:$[0].from,to:$[q-1].to,percentageChange:w,warningLevel:B}),U.createElement(Tn,{size:4}))),U.createElement(Mf,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},U.createElement(ng,{type:s,quoteRef:x,selected:c,setExpanded:v,container:ee,expanded:k,steps:$}),U.createElement(Qf,{open:k},U.createElement(Hf,null),U.createElement("div",{className:_f()},$.map((de,ke)=>{let H=`item-${ke}`;return U.createElement(Wb,{type:"quote-details",className:"widget-quote-step-details-container",key:H,tooltipContainer:ee,step:de,hasSeparator:ke!==$.length-1,state:de.state})})))))}i(zl,"Quote");import{Divider as Fb,Skeleton as Ob}from"@rango-dev/ui";import Xt from"react";import{darkTheme as _b,styled as ta}from"@rango-dev/ui";var ig=ta("div",{$$color:"$colors$neutral100",[`.${_b} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),ag=ta("div",{paddingTop:"$2"}),sg=ta("div",{paddingLeft:"$8"}),lg=ta("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Sg,Divider as Et,Skeleton as ut}from"@rango-dev/ui";import G from"react";import{css as Db,styled as jt}from"@rango-dev/ui";var ql=jt("div",{display:"flex"}),cg=jt("div",{padding:"$10 $0 $20"}),pg=jt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),ug=jt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),dg=jt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),mg=jt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),fg=jt("div",{width:"65%",display:"flex",justifyContent:"start"}),gg=jt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),hg=jt("div",{padding:"$15 $0 $15 $0"}),yg=Db({display:"flex",justifyContent:"space-between",alignItems:"center"});function ar(t){let{type:e,tagHidden:o=!0}=t,n=G.createElement(dg,null,G.createElement(fg,null,G.createElement(Sg,{loading:!0,size:"medium"}),G.createElement(Et,{size:8,direction:"horizontal"}),G.createElement(gg,null,G.createElement(ut,{height:10,width:60,variant:"rounded"}),G.createElement(Et,{size:4}),G.createElement(ut,{height:15,variant:"rounded"}))),G.createElement(ut,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return G.createElement("div",null,!o&&G.createElement(G.Fragment,null,G.createElement(ql,null,G.createElement(ut,{width:65,height:20,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:65,height:20,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:65,height:20,variant:"rounded"})),G.createElement(Vi,null),!r&&G.createElement(Et,{size:4})),G.createElement("div",{className:yg()},G.createElement(ql,null,G.createElement(ut,{width:60,height:10,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:60,height:10,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:60,height:10,variant:"rounded"})),r&&G.createElement(ut,{width:85,height:24,variant:"rounded"})),e==="basic"&&G.createElement(cg,null,G.createElement(ut,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(pg,null,G.createElement(ug,null,G.createElement(Sg,{loading:!0,size:"medium"}),G.createElement(Et,{direction:"horizontal",size:4}),G.createElement(ut,{height:15,width:150,variant:"rounded"})),G.createElement(Et,{size:10}),G.createElement(ut,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(Et,{size:4}),G.createElement(hg,null,n,G.createElement(mg,null),n),G.createElement(Et,{size:12})))}i(ar,"QuoteSummarySkeleton");import{ChainToken as wg,Divider as Hl,NextIcon as $b,Skeleton as oa}from"@rango-dev/ui";import Pe from"react";import{styled as sr}from"@rango-dev/ui";var Cg=sr("div",{display:"flex",alignItems:"start"}),Tg=sr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ql=sr("div",{display:"flex",alignItems:"center",flexGrow:1}),kg=sr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),vg=sr("div",{display:"flex",alignItems:"center"});function _t(t){let{separator:e=!0}=t;return Pe.createElement(Pe.Fragment,null,Pe.createElement(vg,null,Pe.createElement(oa,{height:22,width:22,variant:"circular"}),Pe.createElement(Hl,{direction:"horizontal",size:8}),Pe.createElement(oa,{height:15,width:148,variant:"rounded"})),Pe.createElement(Cg,null,Pe.createElement(lg,{hideSeparator:!e}),Pe.createElement(Tg,{extraSpace:e},Pe.createElement(Ql,null,Pe.createElement(wg,{size:"small",loading:!0}),Pe.createElement(Hl,{direction:"horizontal",size:8}),Pe.createElement(oa,{height:12,variant:"rounded"})),Pe.createElement(kg,null,Pe.createElement($b,{color:"gray",size:16})),Pe.createElement(Ql,null,Pe.createElement(wg,{size:"small",loading:!0}),Pe.createElement(Hl,{direction:"horizontal",size:8}),Pe.createElement(oa,{height:12,variant:"rounded"})))))}i(_t,"StepSkeleton");function lr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Xt.createElement(ig,{expanded:o,rounded:e!=="basic"},Xt.createElement(ar,{type:e,tagHidden:n}),Xt.createElement(ag,null,Xt.createElement(Ob,{height:15,variant:"rounded"})),o&&Xt.createElement(sg,null,Xt.createElement(Fb,{size:24}),Xt.createElement(_t,null),Xt.createElement(_t,null),Xt.createElement(_t,{separator:!1})))}i(lr,"QuoteSkeleton");function _o(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:d,onClickAllRoutes:g,fullExpandedMode:h=!1,container:f}=t,{inputAmount:m,inputUsdValue:T}=O(),y=e?.outputAmount?new Ub(e?.outputAmount):null,C=e?St(e):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?na.createElement(Pl,null,na.createElement(lr,{tagHidden:c,type:o,expanded:s})):v?na.createElement(Pl,{onClick:()=>l?.(e),id:d},na.createElement(zl,{quote:e,error:r,container:f,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:g,fullExpandedMode:h,input:{value:m,usdValue:T?.toString()??""},output:{value:y?.toString()??"",usdValue:C?.toString()??""}})):null}i(_o,"QuoteInfo");import{warn as Hb}from"@rango-dev/logging-core";import{calculatePendingSwap as Gb}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Vb}from"react";import{useRef as zb,useState as qb}from"react";var Qb=2e3;function ra({request:t}){let[e,o]=qb(!1),n=zb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,Qb)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(c,{signal:n.current.signal});return n.current=null,p}catch(p){if(l)return await a(c);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(ra,"useFetch");function bg(){let{fetch:t,loading:e,cancelFetch:o}=ra({request:async(n,r)=>await ct().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(bg,"useFetchConfirmQuote");function ia(t){if(!t.swaps)throw new Error(ne().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Gl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ia,"throwErrorIfResponseIsNotValid");function Gl(t){if(Id(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Ad(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=Ld(t);if(o){let n=vi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Gl,"getQuoteError");function xg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=sn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=_d(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(xg,"generateWarnings");function aa(t){return t?.code==="ERR_CANCELED"?{type:2}:t.cause?t.cause:t?.code==="ERR_BAD_REQUEST"?{type:0,diagnosisMessage:t.response.data.error}:{type:1,diagnosisMessage:t.message}}i(aa,"handleQuoteErrors");function Vl(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=O(),{slippage:l,customSlippage:p}=S(),u=S().getDisabledLiquiditySources(),d=S().blockchains(),g=S().tokens(),{findToken:h}=S(),f=p||l,{fetch:m,cancelFetch:T,loading:y}=bg();return Vb(()=>T,[]),{loading:y,fetch:i(async k=>{let v=k.selectedWallets,x=k?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=v.reduce((E,b)=>(E[b.chain]=b.address,E),{}),I={requestId:a?.requestId||"",selectedWallets:A,destination:x||void 0};try{return await m(I,!0).then(E=>{let{result:b}=E;if(!b)throw new Error(E.error??"Error fetching updated quote");ia({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let w={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};r(w);let B={slippage:f.toString(),disabledSwappersGroups:u},M=xg({previousQuote:a??void 0,currentQuote:w,meta:{blockchains:d},selectedWallets:v,userSlippage:f,inputUsdValue:n,findToken:h});c();let $=!!M.balance,q=Gb(o.toString(),b,Md(v),B,!$,{blockchains:d,tokens:g});return{quote:w,swap:q,error:null,warnings:M}})}catch(E){let b=aa(E);return b.type!==2&&Hb(new Error("confirm swap error"),{tags:{...b,type:Xe[b.type],initialQuote:a,requestBody:I}}),{swap:null,error:b,warnings:null}}},"fetch"),cancelFetch:T}}i(Vl,"useConfirmSwap");var ox=Yb("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Eg}`]:{width:"$48",height:"$48"}}),nx=Xl({flexGrow:1,paddingRight:"$10"}),rx=Xl({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),ix=Xl({display:"flex",justifyContent:"space-between",alignItems:"center"});function Ig(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=tx(),[c,l]=cr(""),p=!n,[u,d]=cr(!1),[g,h]=cr(!1),{isActiveTab:f}=oe(),m=S().getDisabledLiquiditySources(),T=ex(m),{manager:y}=Kb(),{fetch:C,loading:k,cancelFetch:v}=Vl(),[x,A]=cr({swap:null,error:null,warnings:null}),[I,E]=cr(!1),b=i(async({selectedWallets:L,customDestination:te})=>{let le=await C?.({selectedWallets:L,customDestination:te});return A(le),le},"onConfirmSwap"),w=i(async()=>{if(x.swap&&n)try{await y?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let L=`../${F.swaps}/${x.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{h(!0),await w(),h(!1)},"onConfirm"),M=i(async()=>{x.warnings?.quote&&Cd(x.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),$=i(async()=>{A({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(L=>{A(L)}).catch(L=>console.error(L))},"onRefresh");sa(()=>{!!T.current.length&&!m.length&&$(),T.current=m},[m.length]),sa(()=>{p&&v()},[p]),sa(()=>{p&&d(p)},[p]),sa(()=>{p||C({selectedWallets:o,customDestination:r}).then(L=>A(L)).catch(L=>console.error(L))},[]),Rb(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=x.warnings?.quote??null,ee=x.error,V=[];if(c&&V.push(Fe.createElement(jb,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||ee){let L=`../${F.settings}`;V.push(Fe.createElement(or,{warning:q,error:ee,couldChangeSettings:!1,refetchQuote:$,skipAlerts:ee?.type===4||q?.type===2,showWarningModal:I,confirmationDisabled:!f,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await w()},onChangeSettings:()=>s(L)}))}return Fe.createElement(ie,{header:{title:Kl.t("Confirm Swap"),onWallet:()=>{let L=`../${F.wallets}`;s(L)}},footer:Fe.createElement(ox,null,Fe.createElement("div",{className:nx()},Fe.createElement(Xb,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||g,disabled:!!x.error||!f,onClick:M},Kl.t("Start Swap"))),Fe.createElement(Eg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||g,disabled:!f,onClick:d.bind(null,!0)},Fe.createElement(Jb,{size:24})))},u&&Fe.createElement(uf,{open:u,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:b}),Fe.createElement(ae,null,Fe.createElement("div",{className:ix()},Fe.createElement(Zb,{variant:"title",size:"small"},Kl.t("You get")),Fe.createElement("div",{className:rx()},Fe.createElement(Bi,{onClick:!k&&!u&&!I?$:void 0}))),Fe.createElement(jl,{size:"12"}),sm(V.map((L,te)=>({element:L,key:`alert-${te}`})),Fe.createElement(jl,{size:10})),V.length>0?Fe.createElement(jl,{size:10}):null,Fe.createElement(_o,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:x.error,loading:k,warning:x.warnings?.quote??null})))}i(Ig,"ConfirmSwapPage");import{i18n as Zt}from"@lingui/core";import{Button as sc,CustomTokensZeroStateDarkIcon as Ex,CustomTokensZeroStateIcon as Ix,DeleteIcon as Ax,Divider as gr,IconButton as Nx,MessageBox as Bx,NotFound as Wx,styled as cc}from"@rango-dev/ui";import ge,{useState as lc}from"react";import{useNavigate as Lx}from"react-router-dom";import{CloseIcon as sx,IconButton as lx,SearchIcon as cx,TextField as px}from"@rango-dev/ui";import pr from"react";import{styled as ax}from"@rango-dev/ui";var Ag=ax("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function It(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...d}=t,g=s.length?pr.createElement(lx,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},pr.createElement(sx,{color:"gray",size:10})):null;return p&&(g=p),pr.createElement(px,{prefix:pr.createElement(Ag,null,pr.createElement(cx,{color:"black"})),id:u,suffix:g,fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d})}i(It,"SearchInput");import{i18n as ac}from"@lingui/core";import{Button as fx,CustomTokenWarning as gx,darkTheme as Ug,Divider as Yt,ExternalLinkIcon as hx,Image as yx,ListItem as Sx,NotFound as Cx,PinIcon as Tx,Skeleton as Do,Typography as mr,VirtualizedList as kx}from"@rango-dev/ui";import P,{useState as vx}from"react";import{useTranslation as wx}from"react-i18next";import{Divider as Fg,ListItem as mx,Skeleton as dr}from"@rango-dev/ui";import At from"react";import{css as vn,darkTheme as Yl,ImageContainer as ux,ListItemButton as dx,styled as it,Typography as Ng}from"@rango-dev/ui";var Zl=vn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Jl=vn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Rl=vn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),ec=vn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Yl} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),tc=vn({}),oc=vn(),Bg=it("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),nc=it("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),la=it("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Jl}`]:{[`& .${ec}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${tc}`]:{bottom:"-15px"},[`& .${Zl}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Rl}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Wg=it(dx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),rc=it("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),ic=it(Ng,{}),Lg=it("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${oc}`]:{$$color:"$colors$neutral600",[`.${Yl} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ur=it("div",{display:"flex",alignItems:"end",flexDirection:"column"}),eV=it("div",{display:"flex",alignItems:"center"}),Pg=it("div",{position:"relative",[`& ${ux}`]:{borderRadius:"$xm",overflow:"hidden"}}),Mg=it("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),_g=it(Ng,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Dg=it("a",{"& svg:hover":{color:"$colors$info"}}),$g=it("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${Yl} &`]:{color:"$foreground"}}}});function Og(t){return At.createElement(la,null,Array.from(Array(t.size),e=>At.createElement(mx,{key:e,hasDivider:!0,start:At.createElement(dr,{variant:"circular",width:35,height:35}),end:At.createElement(ur,null,At.createElement(dr,{variant:"text",size:"large",width:70}),At.createElement(Fg,{size:4}),At.createElement(dr,{variant:"text",size:"medium",width:50})),title:At.createElement("div",null,At.createElement(dr,{variant:"text",size:"large",width:90}),At.createElement(Fg,{size:4}),At.createElement(dr,{variant:"text",size:"medium",width:90}))})))}i(Og,"LoadingTokenList");var bx=20,xx=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return P.createElement("div",{className:Jl()},o?P.createElement("div",{className:Zl()},o):P.createElement(nc,{className:Rl()},P.createElement(mr,{variant:"title",size:"xmedium"},r.symbol),P.createElement(Yt,{direction:"horizontal",size:4}),P.createElement(rc,{css:a},P.createElement(ic,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&P.createElement("div",{className:`${ec()} ${!o&&tc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",P.createElement(Yt,{size:4,direction:"horizontal"}),P.createElement(Dg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},P.createElement(hx,{size:12}))))},"renderDesc");function fr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=S().fetchStatus,u=S().blockchains(),{getBalanceFor:d,fetchingWallets:g}=S(),{isTokenPinned:h}=S(),{setFromToken:f,setToToken:m}=O(),{t:T}=wx(),y=Ve(),[C,k]=vx(null),v=i(()=>{c==="source"?f({token:C,meta:{blockchains:u}}):m({token:C,meta:{blockchains:u}})},"updateToken"),x=i(()=>{v(),y()},"handleImportToken"),A=i(b=>{if(b.customToken){let{customToken:B,...M}=b;return P.createElement(fx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),k({...M,warning:!0})},"handleClick")},P.createElement(mr,{variant:"body",size:"xsmall",color:"background"},T("import")))}let w=Zr(d(b));return s?s(b):g?P.createElement(ur,null,P.createElement(Do,{variant:"text",size:"large",width:70}),P.createElement(Yt,{size:4}),P.createElement(Do,{variant:"text",size:"medium",width:50})):w&&P.createElement(Lg,null,P.createElement(_g,{variant:"title",size:"small"},w.amount),P.createElement("div",null),w.usdValue&&P.createElement(mr,{variant:"body",className:oc(),size:"xsmall"},`$${w.usdValue}`))},"endRenderer"),I=i(()=>P.createElement(kx,{itemContent:b=>{let w=e[b];if(w==="skeleton")return P.createElement(Sx,{hasDivider:!0,start:P.createElement(Do,{variant:"circular",width:35,height:35}),end:P.createElement(ur,null,P.createElement(Do,{variant:"text",size:"large",width:70}),P.createElement(Yt,{size:4}),P.createElement(Do,{variant:"text",size:"medium",width:50})),title:P.createElement("div",null,P.createElement(Do,{variant:"text",size:"large",width:90}),P.createElement(Yt,{size:4}),P.createElement(Do,{variant:"text",size:"medium",width:90}))});let B=w.address||"",M=u.find(L=>L.name===w.blockchain);if(!M)return null;let $=Ys(M.color,"main"),q={$$color:$.main150,[`.${Ug} &`]:{$$color:$.main750},backgroundColor:"$$color"},ee={$$color:$.main750,[`.${Ug} &`]:{$$color:$.main150},color:"$$color"},V=i(()=>{typeof w!="string"&&!w.customToken&&n?.(w)},"handleClick");return P.createElement($g,null,P.createElement(Wg,{"tab-index":b,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:w.customToken,onClick:V,start:P.createElement(Pg,null,P.createElement(yx,{src:w.image===""?zr:w.image,size:30}),t.type!=="custom-token"&&h(w,t.type)&&P.createElement(Mg,null,P.createElement(Tx,{size:12,color:"gray"}))),title:M?.type==="COSMOS"||w.name||!w.name&&!B?P.createElement(nc,null,P.createElement(mr,{variant:"title",size:"xmedium"},w.symbol),P.createElement(Yt,{direction:"horizontal",size:4}),P.createElement(rc,{css:q},P.createElement(ic,{variant:"body",size:"xsmall",css:ee},w.blockchain)),l&&w.warning&&P.createElement(P.Fragment,null,P.createElement(Yt,{direction:"horizontal",size:4}),P.createElement(gx,{container:N()}))):void 0,description:typeof w!="string"&&M?.info&&B&&M.type!=="COSMOS"?xx({address:B,token:w,customCssForTag:q,customCssForTagTitle:ee,name:w.name,url:M.info.addressUrl.split("{wallet}").join(B)}):w.name||void 0,end:A(w)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=C?To(C?.blockchain,u):null;return P.createElement(P.Fragment,null,a&&P.createElement(P.Fragment,null,P.createElement(mr,{variant:"label",size:"large"},ac.t("Select Token")),P.createElement(Yt,{size:4})),P.createElement(Bg,null,P.createElement(Yt,{size:4}),p==="loading"&&P.createElement(Og,{size:bx}),p==="success"&&(e.length?P.createElement(P.Fragment,null,P.createElement(Kn,{token:C,address:C?.address??"",blockchain:E??void 0,onImport:x,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),P.createElement(la,{as:"ul"},I())):!!o&&P.createElement(Cx,{title:ac.t("No results found"),description:ac.t("Try using different keywords")}))))}i(fr,"TokenList");var Px=cc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Mx=cc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),_x=cc(Nx,{"&:hover":{"& svg":{color:"$secondary550"}}});function zg(){let[t,e]=lc(""),{deleteCustomToken:o}=S(),n=S().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=O(),{mode:l}=io({}),p=Lx(),[u,d]=lc(!1),[g,h]=lc(),f=i(C=>{let k=C.target.value;e(k)},"handleSearch"),m=l==="dark",T=n.filter(C=>st(C.symbol,t)||st(C.address||"",t)||st(C.name||"",t)),y=i(()=>{if(g){let C=a?ht(a):null,k=r?ht(r):null,v=ht(g);C===v?c({token:null}):k===v&&s({token:null}),o(g)}d(!1)},"handleDeleteCustomToken");return ge.createElement(ie,{header:{title:Zt.t("Custom Tokens")}},ge.createElement(ae,null,ge.createElement(Px,null,n.length?ge.createElement(ge.Fragment,null,ge.createElement(It,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Zt.t("Search Token"),onChange:f}),ge.createElement(gr,{size:16}),ge.createElement(fr,{list:T,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>ge.createElement(_x,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(C)}},ge.createElement(Ax,{size:12,color:"gray"}))})):ge.createElement(Mx,null,ge.createElement(Wx,{icon:m?ge.createElement(Ex,{size:200}):ge.createElement(Ix,{size:200}),title:Zt.t("No custom tokens"),description:Zt.t("press the button to add your custom token")})),ge.createElement(gr,{size:20}),ge.createElement(sc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(F.addCustomTokens)},Zt.t("Add Custom Token"))),ge.createElement(R,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:N()},ge.createElement(Bx,{title:Zt.t("Delete Custom Token"),type:"error",description:Zt.t("Are you sure you want to Delete this Token?")},ge.createElement(gr,{size:40}),ge.createElement(gr,{size:10}),ge.createElement(sc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},Zt.t("Yes, Delete it")),ge.createElement(gr,{size:12}),ge.createElement(sc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},Zt.t("No, Continue"))))))}i(zg,"CustomTokensPage");import{i18n as Re}from"@lingui/core";import{useManager as tE}from"@rango-dev/queue-manager-react";import{Button as hc,darkTheme as oE,Divider as Fo,MessageBox as nE,NotFound as rE,styled as yc,Typography as ua}from"@rango-dev/ui";import{TransactionStatus as Sr}from"rango-types";import se,{useMemo as ah,useState as da}from"react";import{useNavigate as iE}from"react-router-dom";import{FilterIcon as qx,Popover as Qx}from"@rango-dev/ui";import $o from"react";import{css as Dx,darkTheme as ca,IconButton as $x,styled as hr}from"@rango-dev/ui";var pc=hr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ca} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),qg=hr($x,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ca} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ca} &`]:{backgroundColor:"$neutral"},[`& ${pc}::before`]:{backgroundColor:"$secondary100",[`.${ca} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Qg=hr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Hg=hr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),Gg=Dx({display:"flex",justifyContent:"space-between",alignItems:"center"}),Vg=hr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as Kg}from"@lingui/core";import{Button as Fx,Divider as jg,ListItemButton as Ox,Radio as Ux,RadioRoot as zx,Typography as Xg}from"@rango-dev/ui";import dt from"react";function Yg(t){let{filterBy:e,onClickItem:o}=t;return dt.createElement(Hg,null,dt.createElement("div",{className:Gg()},dt.createElement(Xg,{size:"small",variant:"body"},Kg.t("Status")),dt.createElement(Fx,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},Kg.t("Reset"))),dt.createElement(jg,{size:10}),dt.createElement(zx,{value:e},dt.createElement(Vg,null,t.list.map((n,r)=>dt.createElement(Ox,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:dt.createElement(dt.Fragment,null,dt.createElement(jg,{direction:"horizontal",size:4}),dt.createElement(Xg,{size:"medium",variant:"body"},n.title)),start:dt.createElement(Ux,{value:n.id}),onClick:o})))))}i(Yg,"FilterSelectorContent");function uc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return $o.createElement("div",null,$o.createElement(Qx,{open:a,align:"end",onOpenChange:o,container:N(),content:$o.createElement(Yg,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},$o.createElement(qg,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},$o.createElement(pc,{isSelect:!!n},$o.createElement(qx,{size:16,color:"black"}),!!n&&$o.createElement(Qg,null)))))}i(uc,"FilterSelector");import{i18n as Vx}from"@lingui/core";import{getCurrentStep as Kx}from"@rango-dev/queue-manager-rango-preset";import{Divider as th,GroupedVirtualizedList as jx,Skeleton as Xx,SwapListItem as oh,Typography as Yx}from"@rango-dev/ui";import Je,{useCallback as nh,useEffect as Zx,useRef as Jx,useState as Rx}from"react";function Zg(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(Zg,"calculateGroupsSoFar");import{css as Hx,darkTheme as Gx,styled as yr}from"@rango-dev/ui";var dc=Hx(),Jg=yr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),mc=yr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${dc}`]:{$$color:"$colors$neutral600",[`.${Gx} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),fc=yr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Rg=yr("div",{gap:"$10",display:"flex",flexDirection:"column"}),eh=yr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var eE=10;function gc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=Rx([]),c=Jx(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=nh(Zg,[]),g=nh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,eE),s(d(p,c.current)))},[e.length]);if(Zx(()=>{r||g()},[r,g]),r){let h=[1,2];return Je.createElement(Je.Fragment,null,[h,h].map((m,T)=>Je.createElement(mc,{key:T},Je.createElement(fc,null,Je.createElement(Xx,{variant:"text",width:60,size:"small"}),Je.createElement(th,{size:16})),Je.createElement(th,{size:4}),Je.createElement(Rg,null,m.map((C,k)=>Je.createElement(oh,{isLoading:!0,key:k}))))))}return Je.createElement(jx,{endReached:()=>{c.current<e.length&&g()},groupCounts:a,groupContent:h=>Je.createElement(mc,null,Je.createElement(fc,null,Je.createElement(Yx,{variant:"label",size:"medium",className:dc()},u[h]))),itemContent:(h,f)=>{let m=l[h];if(!m)return null;let T=Kx(m),y=m.steps[0],C=m.steps[m.steps.length-1];return Je.createElement(Jg,{key:m.requestId},Je.createElement(oh,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:T,tooltipContainer:N(),onlyShowTime:u[f]===Vx.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:_(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:_(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(gc,"HistoryGroupedList");import{i18n as pa}from"@lingui/core";import rh from"dayjs";var ih=i(t=>{let e=new Map([["today",{title:pa.t("Today"),swaps:[]}],["week",{title:pa.t("This week"),swaps:[]}],["month",{title:pa.t("This month"),swaps:[]}],["year",{title:pa.t("This year"),swaps:[]}]]);function o(l,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}i(o,"addYearsToOutput");let n=rh();t.forEach(l=>{let p=Number(l.creationTime),u=rh(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(l);else{let d=new Date(p).getFullYear().toString();o(d,l)}});let r=Array.from(e.values()).filter(l=>l.swaps.length>0),a=r.flatMap(l=>l.swaps),s=r.map(l=>l.swaps.length),c=r.map(l=>l.title);return{swaps:a,groupCounts:s,groups:c}},"groupSwapsByDate");var aE=yc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),sE=yc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),lE=yc("div",{"._typography":{color:"$neutral700",[`.${oE}&`]:{color:"$neutral900"}}}),cE=[{id:Sr.SUCCESS,title:Re.t("Complete")},{id:Sr.RUNNING,title:Re.t("Running")},{id:Sr.FAILED,title:Re.t("Failed")}],pE=i((t,e)=>t?.length?t.filter(o=>Wt(o.fromBlockchain,e)||Wt(o.toBlockchain,e)||Wt(o.toSymbol,e)||Wt(o.fromSymbol,e)).length:!1,"isStepContainsText");function sh(){let t=iE(),{manager:e,state:o}=tE(),n=Ct(e).map(({swap:k})=>k),[r,a]=da(""),[s,c]=da(!1),l=!o.loadedFromPersistor,[p,u]=da(""),[d,g]=da(!1),h=i(k=>{let v=k.target.value;a(v)},"handleSearch"),f=ah(()=>!r&&!p?n:n.filter(k=>{let{inputAmount:v,status:x,steps:A,requestId:I}=k;return(!r||Wt(v,r)||Wt(x,r)||pE(A,r)||Wt(I,r))&&(!p||p===x)}),[n,r,p]),m=!f?.length&&!l,T=i(()=>g(!1),"onCloseModal"),y=i(async()=>{try{await e?.clearQueue(),g(!1)}catch(k){console.log(k)}},"onClear"),C=ah(()=>!n.some(k=>k.status===Sr.SUCCESS||k.status===Sr.FAILED),[n]);return se.createElement(ie,{header:{title:Re.t("History"),suffix:se.createElement(ao,null,se.createElement(hc,{id:"widget-history-clear-btn",disabled:C,variant:"ghost",size:"xsmall",onClick:()=>g(!0)},se.createElement(ua,{size:"medium",variant:"label",color:"error"},Re.t("Clear"))))}},se.createElement(ae,null,se.createElement(sE,null,se.createElement(It,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Re.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:h,style:{height:36},value:r}),se.createElement(Fo,{size:10,direction:"horizontal"}),se.createElement(uc,{filterBy:p,open:s,onOpenChange:k=>c(k),onClickItem:k=>u(k),list:cE})),se.createElement(Fo,{size:"16"}),se.createElement(aE,null,m&&se.createElement(eh,null,se.createElement(Fo,{size:32}),se.createElement(rE,{title:r?Re.t("No results found"):Re.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Re.t("Try using different keywords"):Re.t("Your transaction history is stored locally and will appear here after you start a swap")})),!m&&se.createElement(gc,{list:f,onSwapClick:t,groupBy:ih,isLoading:l}))),se.createElement(R,{open:d,onClose:T,id:"widget-history-clear-modal",container:N()},se.createElement(Fo,{size:20}),se.createElement(nE,{type:"warning",title:Re.t("Clear Transaction History"),description:se.createElement(lE,null,se.createElement(ua,{variant:"body",size:"medium"},Re.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),se.createElement(Fo,{size:"24"}),se.createElement(ua,{variant:"body",size:"small"},Re.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),se.createElement(Fo,{size:30}),se.createElement(hc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},Re.t("Yes, Clear the history")),se.createElement(Fo,{size:10}),se.createElement(hc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:T},se.createElement(ua,{variant:"title",size:"medium",color:"primary"},Re.t("No, Cancel")))))}i(sh,"HistoryPage");import{i18n as VE}from"@lingui/core";import{Button as KE,Divider as Wc,styled as jE,WarningIcon as XE}from"@rango-dev/ui";import YE from"bignumber.js";import Se,{useEffect as $h,useState as Fh}from"react";import{useNavigate as ZE}from"react-router-dom";import{i18n as ch}from"@lingui/core";import{Alert as dE,Divider as Sc,NoRouteIcon as mE,Typography as fE}from"@rango-dev/ui";import Oo from"react";import{styled as uE}from"@rango-dev/ui";var lh=uE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Cc(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Ot(t,e)?Oo.createElement(lh,null,Oo.createElement(Sc,{size:10}),Oo.createElement(mE,{size:24,color:"gray"}),Oo.createElement(Sc,{size:4}),Oo.createElement(fE,{variant:"title",size:"small"},ch.t("No Routes Found")),Oo.createElement(Sc,{size:4}),Oo.createElement(dE,{title:ch.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Cc,"SameTokensWarning");import{Alert as gE,Button as hE}from"@rango-dev/ui";import uh from"react";import{i18n as ma}from"@lingui/core";function ph(t){let e=null;return t===ti?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ma.t("Reset"),title:ma.t("Slippage cannot be set lower than 0.01%.")},e):t>jo?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ma.t("Change"),title:ma.t("Caution, your slippage is high!")},e):null}i(ph,"makeAlerts");function dh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=S(),{onChangeSettings:a}=t,c=ph(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(ei),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?uh.createElement(gE,{title:c.title,type:c.alertType,variant:"alarm",action:uh.createElement(hE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(dh,"SlippageWarningsAndErrors");import{i18n as kE}from"@lingui/core";import{IconButton as vE,ReverseIcon as wE,Skeleton as bE,Tooltip as xE,Typography as Cr}from"@rango-dev/ui";import mt from"react";import fa from"bignumber.js";function fh(t){let{error:e,isDarkTheme:o,warning:n}=t,{quoteError:r,slippageError:a}=e,{quoteWarning:s,slippageWarning:c}=n,l=!!a||r?.type===4,p=!!c||s?.type===2;return l?"$error500":p?"$warning500":o?"$neutral600":"$neutral700"}i(fh,"getSlippageColor");function gh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new fa(e),r=new fa(o),a=n.dividedBy(r),s;return a.isLessThan(1)?s=a.toFixed(14).replace(/\.?0+$/,""):a.toFixed(0).length>10?s=a.toFixed(0).slice(0,10):s=a.toFixed(2),{displayValue:s,rawValue:a.toFixed()}}i(gh,"getUsdExchangeRate");function hh(t,e){let o=new fa(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,fa.ROUND_DOWN).toFormat(2)}`}i(hh,"formatTokenValueInUsd");import{darkTheme as CE,styled as kc,Typography as TE}from"@rango-dev/ui";var yh=kc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),Sh=kc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${CE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),vc=kc(TE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function wc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=S(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:g}=io({}),h=Zo(d),f=g==="dark",m=n==="default",T={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},C=p?.swaps[0].from||c,k=p?.swaps[p?.swaps.length-1].to||l,v=m?C:k,x=m?k:C,A=Number(m?p?.outputAmount:p?.requestAmount),I=Number(m?p?.requestAmount:p?.outputAmount),E=A||v.usdPrice,b=I||x.usdPrice,{rawValue:w,displayValue:B}=gh({toTokenUsdPrice:b,fromTokenUsdPrice:E});return mt.createElement(yh,null,mt.createElement(Cr,{variant:T||y?"label":"body",size:T||y?"medium":"small",color:fh({error:T,warning:y,isDarkTheme:f})},kE.t("Slippage:")," ",d,"%"),u?mt.createElement(bE,{height:16,width:104,variant:"rounded"}):E&&b&&mt.createElement(Sh,null,mt.createElement(Cr,{className:"rate-text",variant:"body",size:"small"},"1"),mt.createElement(vc,{className:"rate-text",variant:"body",size:"small"},x.symbol),mt.createElement(vE,{id:"widget-home-page-change-rate-button",onClick:r},mt.createElement(wE,{size:14,color:"secondary"})),mt.createElement(xE,{container:N(),side:"top",sideOffset:4,content:mt.createElement(Cr,{className:"rate-text",variant:"body",size:"small"},w)},mt.createElement(Cr,{className:"rate-text",variant:"body",size:"small"},B)),mt.createElement(vc,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&mt.createElement(Cr,{color:"neutral600",variant:"body",size:"small"},"~",hh(Number(w),v.usdPrice))))}i(wc,"SwapMetrics");import{i18n as WE}from"@lingui/core";import{Header as LE}from"@rango-dev/ui";import mo,{useEffect as PE,useState as ME}from"react";import{i18n as IE}from"@lingui/core";import{Divider as xc,FullExpandedQuote as AE,Typography as NE}from"@rango-dev/ui";import xe from"react";import{styled as bc}from"@rango-dev/ui";var Ch=bc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Th=bc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),kh=bc("div",{width:"146px"});import{i18n as Tr}from"@lingui/core";import{Select as EE}from"@rango-dev/ui";import vh from"react";function ga(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:Tr.t("Smart Routing")},{value:"FEE",label:Tr.t("Lowest Fee")},{value:"SPEED",label:Tr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Tr.t("Maximum Return")},{value:"PRICE",label:Tr.t("Maximum Output")}];return vh.createElement(kh,null,vh.createElement(EE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ga,"SelectStrategy");var wh=3;function kr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:d,toToken:g,sortStrategy:h,error:f}=O(),{slippage:m,customSlippage:T}=S(),{findToken:y}=S(),C=c||N(),k=!!p&&p.results.length,v=T??m,x=i(E=>{if(!d||!g||!p)return null;let b={requestAmount:p.requestAmount,validationStatus:null,...E};return sn({currentQuote:b,userSlippage:v,findToken:y})},"getQuoteWarning"),A=f?.type===0||f?.type===1,I=p?.results?Ti(h,p?.results):[];return xe.createElement(xe.Fragment,null,a&&xe.createElement(xe.Fragment,null,xe.createElement(Th,null,xe.createElement(NE,{size:"xmedium",variant:"title"},IE.t("Sort by")),xe.createElement(ga,{container:C})),xe.createElement(xc,{size:"10"})),e&&Array.from({length:wh},(E,b)=>xe.createElement(xe.Fragment,{key:b},s?xe.createElement(AE,{loading:!0}):xe.createElement(lr,{tagHidden:!1,type:"list-item",expanded:!1}),b!==wh-1&&xe.createElement(xc,{size:16}))),!e&&xe.createElement(xe.Fragment,null,k?I.map((E,b)=>{let w=x(E),B=Gl(E.swaps),M=I.length-1===b;return xe.createElement(xe.Fragment,{key:E.requestId},xe.createElement(_o,{id:"widget-quotes-quote-info-container",showModalFee:r,container:C,selected:l?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:w,fullExpandedMode:s,onClick:$=>{B||u("warning",w),u("error",B?.options||null),o($)},type:"list-item"}),!M&&xe.createElement(xc,{size:16}))}):A&&xe.createElement(Ch,null,xe.createElement(Rn,{size:s?"large":"small",error:f,fetch:n}))))}i(kr,"Quotes");import{darkTheme as BE,styled as bh}from"@rango-dev/ui";var xh=bh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${BE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Eh=bh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var _E=100;function Ec(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=ME(!1),l=s?"":"is-hidden",{config:p}=S(),u=p?.variant==="full-expanded",d=vo();return PE(()=>{let g=null;return a?g=setTimeout(()=>{c(!0)},_E):(c(!1),g&&clearTimeout(g)),()=>{g&&clearTimeout(g)}},[a]),mo.createElement(xh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Mi()} widget-expanded-quotes-container`,id:tt.EXPANDED_BOX_ID},mo.createElement(LE,{title:WE.t("Routes"),suffix:mo.createElement(mo.Fragment,null,mo.createElement(ga,{container:d}),mo.createElement(Lo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),mo.createElement(Eh,null,mo.createElement(kr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:vo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Ec,"ExpandedQuotes");import{i18n as Ph}from"@lingui/core";import{SwapInput as Mh}from"@rango-dev/ui";import OE from"bignumber.js";import vr from"react";import{ReverseIcon as FE}from"@rango-dev/ui";import Ac from"react";import{keyframes as DE,styled as Ih}from"@rango-dev/ui";var Ic=450,$E=DE({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Ah=Ih("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Nh=Ih("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${$E} ${Ic}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function Nc(){let t=O.use.switchFromAndTo();return Ac.createElement(Ah,null,Ac.createElement(Nh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Ic),t()}},Ac.createElement(FE,{size:12})))}i(Nc,"SwitchFromAndToButton");import{styled as Bh}from"@rango-dev/ui";var Wh=Bh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Lh=Bh("div",{position:"relative"});function Bc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:d,inputUsdValue:g,outputAmount:h,outputUsdValue:f,selectedQuote:m}=O(),{connectedWallets:T,getBalanceFor:y}=S(),C=a?y(a):null,k=Zr(C)?.amount??"0",v=C?new OE(C.amount).shiftedBy(-C.decimals):ce,x=!!s&&su(T,s.name),A=!Ls(m,d,g),I=!Ls(m,d,f),E=!g||!f||!f.gt(0)?null:Qt(g.toString(),f.toString());return vr.createElement(Wh,null,vr.createElement(Lh,null,vr.createElement(Mh,{label:Ph.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:k,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:A?void 0:_(g,4,4),realUsdValue:A?void 0:g?.toString(),error:A?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:N(),onSelectMaxBalance:()=>{let b=_(v,C?.decimals),w=C?.amount?b.split(",").join(""):"";p(w)},anyWalletConnected:T.length>0}),vr.createElement(Nc,null)),vr.createElement(Mh,{sharpBottomStyle:!r&&(!!m||e),label:Ph.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:_(Qt(g,f),2,2),warningLevel:Ht(E??0),price:{value:_(h,6,6),usdValue:I?void 0:_(f,4,4),realValue:h?.toString(),realUsdValue:I?void 0:f?.toString(),error:I?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(Bc,"Inputs");import{warn as UE}from"@rango-dev/logging-core";import{useCallback as zE,useEffect as qE,useRef as QE,useState as HE}from"react";function _h(){let{fetch:t,loading:e,cancelFetch:o}=ra({request:async(n,r)=>await ct().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(_h,"useFetchAllQuotes");var GE=600;function ha({refetchQuote:t}){let{fetch:e,cancelFetch:o}=_h(),{excludeLiquiditySources:n,routing:r}=S().config,{connectedWallets:a}=S(),c=a.some(j=>j.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:g,sortStrategy:h,resetQuote:f,error:m,warning:T,setSelectedQuote:y,updateQuotePartialState:C}=O(),{slippage:k,customSlippage:v,affiliatePercent:x,affiliateRef:A,affiliateWallets:I,fetchStatus:E}=S(),b=S().getLiquiditySources(),w=S().getDisabledLiquiditySources(),B=S().excludeLiquiditySources(),{findToken:M}=S(),[$,q]=HE(!0),ee=QE(u),V=v??k,te=!l||!p||Ot(l,p)||!Bn(u),le=i(j=>{q(j)},"resetState"),J=i(j=>{let{fromToken:ue,toToken:de,inputAmount:ke,liquiditySources:H,excludeLiquiditySources:W,disabledLiquiditySources:Q,slippage:K,affiliateRef:Y,affiliatePercent:ye,affiliateWallets:Qe}=j;if($||le(!0),!te&&ue&&de){f();let Oe=Pd({fromToken:ue,toToken:de,inputAmount:ke,liquiditySources:H,excludeLiquiditySources:W,disabledLiquiditySources:Q,wallets:a,slippage:K,affiliateRef:Y,affiliatePercent:ye,affiliateWallets:Qe,contractCall:c});Yo("experimental",r)&&(Oe.experimental=!0),Yo("avoidNativeFee",r)&&(Oe.avoidNativeFee=!0),Yo("enableCentralizedSwappers",r)&&(Oe.enableCentralizedSwappers=!0),r?.maxLength&&(Oe.maxLength=r.maxLength),e(Oe).then(kt=>{let ve=Ti(h,kt.results),je=kd(g,ve,kt.requestAmount);q(!1),C("quotes",kt),y(je),ia({diagnosisMessages:kt.diagnosisMessages,requestId:je?.requestId||"",swaps:je?.swaps});let Dr=je&&sn({currentQuote:je,userSlippage:V,findToken:M});C("warning",Dr)}).catch(kt=>{let ve=aa(kt);(ve.type===0||ve.type===1)&&f(),ve.type!==2&&(C("error",ve),q(!1),UE(new Error("quote error"),{tags:{...ve,type:Xe[ve.type],requestBody:Oe}}))})}},"fetch"),X=zE(Hr(j=>{J(j)},GE),[te]);return qE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(te){q(!1),(g||m||T)&&f();return}if(!Bn(u)&&d?.eq(0)){le(!1),o();return}f(),le(!0);let j=J;return ee.current&&ee.current!=u&&(j=X),ee.current=u,j({inputAmount:u,fromToken:l,toToken:p,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:V,affiliateRef:A,affiliatePercent:x,affiliateWallets:I,contractCall:c}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,te,b?.length,n,w.length,V,A,x,c,JSON.stringify(I)]),{fetch:()=>J({inputAmount:u,fromToken:l,toToken:p,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:V,affiliateRef:A,affiliatePercent:x,affiliateWallets:I,contractCall:c}),loading:$}}i(ha,"useSwapInput");function Dh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};we.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Dh,"emitPreventableEvent");var JE=jE("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),RE=300;function Oh(){let t=ZE(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:g}=O(),[h,f]=Fh(!1),{isLargeScreen:m,isExtraLargeScreen:T}=un(),{fetch:y,loading:C}=ha({refetchQuote:a}),{config:k,fetchStatus:v,connectedWallets:x,customSlippage:A,slippage:I,setSlippage:E,setCustomSlippage:b}=S(),{isActiveTab:w}=oe(),[B,M]=Fh(!1),q=Zo(A!==null?A:I),V=Nd({fetchMetaStatus:v,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),L=fu(m,T,k?.variant),te=!!n&&!!e&&!!o&&new YE(n).gt(0)&&!Ud(e,o),le=te&&v==="success"&&C,J=q?.quoteValidation||c,ue=(!L||L&&l?.results.length)&&(J||s),de=!!e&&!!o,ke=de&&!!q,H=(r||s)&&!B?y:void 0,W=i(Y=>{L&&h?(f(!1),setTimeout(()=>{t(Y)},RE)):t(Y)},"onHandleNavigation"),Q=i(Y=>{r?.requestId!==Y.requestId&&(M(!1),p(Y))},"onClickOnQuote"),K=i(Y=>{if(Y){if(Rr.includes(Y)){E(Y),b(null);return}b(Y)}},"onChangeSlippage");return $h(()=>{u(),g("refetchQuote",!0)},[]),$h(()=>{f(te)},[te]),Se.createElement(JE,null,Se.createElement(ie,{height:"auto",footer:Se.createElement(KE,{id:`widget-swap-${V.action}-btn`,type:"primary",size:"large",disabled:V.disabled||!w,prefix:V.action==="confirm-warning"&&Se.createElement(XE,null),fullWidth:!0,onClick:()=>{V.action==="connect-wallet"?Dh({type:"clickConnectWallet"},()=>W(F.wallets)):V.action==="confirm-warning"?M(!0):W(F.confirmSwap)}},V.title),header:{onWallet:()=>{W(F.wallets)},hasBackButton:!1,title:k.title||VE.t("Swap"),suffix:Se.createElement(Lo,{hidden:L?["refresh"]:void 0,onClickRefresh:H,onClickHistory:()=>W(F.swaps),onClickSettings:()=>{W(F.settings)}})}},Se.createElement(ae,null,Se.createElement(Bc,{fetchingQuote:le,fetchMetaStatus:v,isExpandable:L,onClickToken:Y=>{W(Y==="from"?F.fromSwap:F.toSwap)}}),Se.createElement(Wc,{size:"2"}),L?null:Se.createElement(_o,{quote:r,loading:le,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:J,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{g("refetchQuote",!1),W(F.routes)}:void 0}),de&&Se.createElement(Se.Fragment,null,Se.createElement(Wc,{size:8}),Se.createElement(wc,{quoteError:s,quoteWarning:J,fromToken:e,toToken:o,quote:r,loading:le})),ue?Se.createElement(Se.Fragment,null,Se.createElement(or,{warning:J,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:y,showWarningModal:B,confirmationDisabled:!w,onOpenWarningModal:()=>M(!0),onCloseWarningModal:()=>M(!1),onChangeSlippage:K,onConfirmWarningModal:()=>{M(!1),d(!0),W(F.confirmSwap)},onChangeSettings:()=>W(F.settings)})):null,ke&&Se.createElement(Se.Fragment,null,Se.createElement(Wc,{size:"10"}),Se.createElement(dh,{onChangeSettings:()=>W(F.settings)})),Se.createElement(Cc,null))),L?Se.createElement(Ec,{loading:le,onClickOnQuote:Q,fetch:y,onClickRefresh:H,isVisible:h}):null)}i(Oh,"Home");import{i18n as Uh}from"@lingui/core";import{Alert as eI,Divider as tI,List as oI,ListItemButton as nI,Radio as rI,RadioRoot as iI,Typography as aI}from"@rango-dev/ui";import Dt from"react";function fo(){let{setLanguage:t,language:e,config:o}=S(),n=ku,r=o?.language||Jo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Jo),resetLanguage:()=>t(null)}}i(fo,"useLanguage");function zh(){let{activeLanguage:t,changeLanguage:e,languages:o}=fo(),n=Ve(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Dt.createElement(aI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Dt.createElement(rI,{value:s}),start:Dt.createElement(l,null)}});return Dt.createElement(ie,{header:{title:Uh.t("Language")}},Dt.createElement(ae,null,Dt.createElement(eI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Dt.createElement(tI,{size:"8"}),Dt.createElement(iI,{value:t},Dt.createElement(oI,{type:Dt.createElement(nI,{title:Uh.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(zh,"LanguagePage");import{i18n as Jt}from"@lingui/core";import{Button as uI,Checkbox as dI,Image as mI,ListItemButton as fI,NotFound as gI,Typography as hI}from"@rango-dev/ui";import et,{useState as yI}from"react";import{Checkbox as cI,Skeleton as Qh}from"@rango-dev/ui";import br from"react";import{styled as Lc}from"@rango-dev/ui";var wr=Lc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Pc=Lc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Mc=Lc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as sI,styled as lI}from"@rango-dev/ui";var qh=lI(sI,{height:61});var pI=30;function _c(){return br.createElement(wr,null,Array.from(Array(pI),(t,e)=>br.createElement(qh,{hasDivider:!0,key:e,start:br.createElement(Qh,{variant:"circular",width:35,height:35}),title:br.createElement(Qh,{variant:"text",size:"large",width:90}),end:br.createElement(cI,{checked:!1})})))}i(_c,"LoadingLiquiditySourceList");function Dc({sourceType:t}){let e=S().fetchStatus,o=S().swappers(),n=S().getDisabledLiquiditySources(),[r,a]=yI(""),s=S().toggleLiquiditySource,c=S().isInCampaignMode(),l=oi(o,n),p={Exchanges:Jt.t("Exchanges"),Bridges:Jt.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(y=>u.includes(y.type)),g=d.length===d.filter(y=>y.selected).length,h=i(()=>{d.forEach(y=>{g?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),f=d.map(y=>{let{selected:C,groupTitle:k,logo:v,id:x,...A}=y;return{id:`widget-setting-liquidity-source-${Xp(x.toLowerCase())}-item-btn`,start:et.createElement(mI,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:et.createElement(dI,{checked:C,disabled:c}),title:et.createElement(hI,{variant:"title",size:"xmedium"},Jt.t(k)),selected:C,groupTitle:k,logo:v,...A}}),m=i(y=>{let C=y.target.value;a(C)},"handleSearch"),T=f;return r&&(T=f.filter(y=>Wt(y.groupTitle,r))),et.createElement(ie,{header:{title:Jt.t(t),suffix:et.createElement(Pc,null,et.createElement(uI,{id:`widget-liquidity-source-${g?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},g?Jt.t("Deselect all"):Jt.t("Select all")))}},et.createElement(ae,{view:!0},et.createElement(It,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:Jt.t("Search {sourceType}",{sourceType:p[t]}),onChange:m}),e==="loading"&&et.createElement(_c,null),!T.length&&r?et.createElement(Mc,null,et.createElement(gI,{title:Jt.t("No results found"),description:Jt.t("Try using different keywords")})):e==="success"&&et.createElement(wr,{disabled:c,className:"widget-liquidity-source-list"},T.map(y=>{let{groupTitle:C,...k}=y;return et.createElement(et.Fragment,{key:y.id},et.createElement(fI,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Dc,"LiquiditySourcePage");import{i18n as SI}from"@lingui/core";import ya from"react";import{useNavigate as CI}from"react-router-dom";function Hh(){let t=CI(),e=Ve(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:c,loading:l}=ha({refetchQuote:n}),p=i(g=>{r(g),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${F.settings}`,d=`../${F.wallets}`;return ya.createElement(ie,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:SI.t("Routes"),suffix:ya.createElement(Lo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},ya.createElement(ae,null,ya.createElement(kr,{fetch:c,loading:l,onClickOnQuote:p})))}i(Hh,"RoutesPage");import{i18n as Zh}from"@lingui/core";import{Divider as Jh,getCategoriesCount as NI,SelectableCategoryList as BI}from"@rango-dev/ui";import Rt,{useState as Rh}from"react";import{useNavigate as WI}from"react-router-dom";import{i18n as $c}from"@lingui/core";import{Divider as wI,Image as bI,ListItemButton as xI,NotFound as EI,Typography as Yh}from"@rango-dev/ui";import ft,{useEffect as II,useState as AI}from"react";var Gh=i((t,e,o)=>t.filter(n=>Gr(n.type,o)).filter(n=>st(n.name,e)||st(n.displayName,e)),"filterBlockchains");import{ImageContainer as TI,styled as Vh}from"@rango-dev/ui";var Kh=Vh("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Sa=Vh(fl,{padding:0,margin:0,listStyle:"none",[`& ${TI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as kI,Skeleton as jh}from"@rango-dev/ui";import Ca from"react";var vI=20;function Xh(){return Ca.createElement(Sa,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(vI),t=>Ca.createElement(kI,{key:t,hasDivider:!0,start:Ca.createElement(jh,{variant:"circular",width:35,height:35}),title:Ca.createElement(jh,{variant:"text",size:"large",width:90})})))}i(Xh,"LoadingBlockchainList");function Fc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=AI(e),{fetchStatus:l}=S();II(()=>{c([...Gh(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ft.createElement(EI,{title:$c.t("No results found"),description:$c.t("Try using different keywords")}):ft.createElement(Sa,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ft.createElement(xI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ft.createElement(bI,{src:u.logo,size:30}),title:ft.createElement(Yh,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ft.createElement(ft.Fragment,null,a&&ft.createElement(ft.Fragment,null,ft.createElement(Yh,{variant:"label",size:"large"},$c.t("Select Chain")),ft.createElement(wI,{size:4})),ft.createElement(Kh,null,l==="loading"&&ft.createElement(Xh,null),l==="success"&&p()))}i(Fc,"BlockchainList");function Ta(t){let{type:e}=t,o=Ve(),[n,r]=Rh(""),[a,s]=Rh("ALL"),c=O.use.setToBlockchain(),l=O.use.setFromBlockchain(),{fetchStatus:p}=S(),u=WI(),d=S().blockchains({type:e}),g=NI(d),h=!t.hideCategory&&g!==1;return Rt.createElement(ie,{header:{title:Zh.t("Select Chain")}},Rt.createElement(ae,{view:!0},h&&Rt.createElement(Rt.Fragment,null,Rt.createElement(BI,{setCategory:s,category:a,blockchains:d,isLoading:p==="loading"}),Rt.createElement(Jh,{size:24})),Rt.createElement(It,{value:n,autoFocus:!0,placeholder:Zh.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Rt.createElement(Jh,{size:16}),Rt.createElement(Fc,{list:d,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:f=>{e==="custom-token"?u(`..?blockchain=${f.name}`,{replace:!0}):(e==="source"?l(f):c(f),o())}})))}i(Ta,"SelectBlockchainPage");import{i18n as wa}from"@lingui/core";import{Divider as ay,Spinner as VI}from"@rango-dev/ui";import go,{useEffect as KI,useState as jI}from"react";import{useNavigate as XI}from"react-router-dom";import{i18n as zc}from"@lingui/core";import{BlockchainsChip as ka,Divider as ny,Image as ry,Skeleton as $I,Tooltip as FI,Typography as qc}from"@rango-dev/ui";import Ee from"react";import{useEffect as MI}from"react";var ey=["ETH","COSMOS","OSMOSIS"];function Oc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(LI),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let c=o.limit-e.length;for(let l=0;l<=c;l++){let p=n[l];s=s.filter(u=>p.name!==u)}}n.sort(PI(s)),r=n.splice(a)}return{list:n,more:r}}i(Oc,"prepare");function LI(t,e){let o=ey,n=o.findIndex(c=>c===t.name),r=o.findIndex(c=>c===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(LI,"sortByMostUsedBlockchains");function PI(t){return i(function(o,n){let r=t.findIndex(l=>l===o.name),a=t.findIndex(l=>l===n.name),s=r>-1,c=a>-1;return s&&c?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(PI,"generateSortByPreferredBlockchainsFor");function ty(t,e){return!!e.list.find(o=>o.name===t)}i(ty,"isInVisibleList");function Uc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=S();MI(()=>{if(e?.selected){let a=Oc(t,o,e);ty(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Oc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Uc,"usePrepareBlockchainList");import{styled as _I}from"@rango-dev/ui";var oy=_I("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var OI=6,UI=12;function Qc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=Uc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=S(),p=O.use.resetToBlockchain(),u=O.use.resetFromBlockchain(),d=c.more.length>0,g=c.more.length===1,h=!g&&d;return Ee.createElement(Ee.Fragment,null,!s&&Ee.createElement(Ee.Fragment,null,Ee.createElement(ny,{size:12}),Ee.createElement(qc,{variant:"label",size:"large"},zc.t("Select Chain"))),Ee.createElement(ny,{size:12}),Ee.createElement(oy,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?OI:UI),(f,m)=>Ee.createElement($I,{key:m,variant:"rounded",height:50})),l==="success"&&Ee.createElement(Ee.Fragment,null,Ee.createElement(ka,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},Ee.createElement(qc,{variant:"body",size:"xsmall",color:"secondary500"},zc.t("All"))),c.list.map(f=>Ee.createElement(FI,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:N()},Ee.createElement(ka,{className:"widget-blockchains-section-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Ee.createElement(ry,{src:f.logo,size:30})))),g?Ee.createElement(ka,{className:"widget-blockchains-section-only-item-btn",key:c.more[0].name,selected:!!n&&n.name===c.more[0].name,onClick:()=>r(c.more[0])},Ee.createElement(ry,{src:c.more[0].logo,size:30})):null,h?Ee.createElement(ka,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},Ee.createElement(qc,{variant:"body",size:"xsmall",color:"secondary500"},zc._("More +{count}",{count:c.more.length}))):null)))}i(Qc,"BlockchainsSection");import{useCallback as qI,useRef as QI,useState as Hc}from"react";function Gc(){let t=S().blockchains(),e=QI(null),{customTokens:o}=S(),[n,r]=Hc(!1),[a,s]=Hc([]),[c,l]=Hc(null),p=i(async(g,h)=>{l(null),r(!0),s([]);try{let f=await ct().searchCustomTokens({query:g,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(C=>zt(C))),T=new Set(t.map(C=>C.name)),y=f.tokens.filter(C=>T.has(C.blockchain)&&!m.has(zt(C)));s(y),r(!1)}catch(f){l(f instanceof Error?f.message:"something went wrong"),s([]),f?.name!=="CanceledError"&&r(!1)}},"fetch"),u=qI(Hr((g,h)=>{e.current?.signal.aborted||p(g,h)},600),[t.length]);return{fetch:(g,h)=>{e.current=new AbortController,s([]),r(!0),u(g,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Gc,"useSearchCustomTokens");function va(t,e,o){return o&&t.length===1&&t[0].address===e?!1:t.length<20&&e.trim().length>=3}i(va,"shouldSearchForCustomTokens");function iy(t,e,o,n,r){let a=[...t];return va(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(iy,"prepareTokensList");function ba(t){let{type:e}=t,o=XI(),n=Ve(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=O(),{getBalanceFor:u}=S(),{fetch:d,loading:g,tokens:h,cancel:f}=Gc(),[m,T]=jI(""),y=e==="source"?r:a,C=y?.name??"",k=S().blockchains({type:e}),v=S().tokens({type:e,blockchain:C,searchFor:m,getBalanceFor:u}),x=iy(v,h,m,g,y?.name),A=i(b=>{e==="source"?l(b):p(b)},"updateBlockchain"),I=i(b=>{e==="source"?s({token:b,meta:{blockchains:k}}):c({token:b,meta:{blockchains:k}})},"updateToken"),E={source:wa.t("Source"),destination:wa.t("Destination")};return KI(()=>(va(v,m,y?.name)&&d(m,y?.name??void 0),()=>{f()}),[v.length,m,y?.name]),go.createElement(ie,{header:{title:wa.t("Swap {type}",{type:E[e]})}},go.createElement(ae,null,go.createElement(Qc,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:b=>{A(b)}}),go.createElement(ay,{size:24}),go.createElement(It,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:wa.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>T(""),onChange:b=>T(b.target.value),suffix:va(v,m,y?.name)&&g?go.createElement(VI,{size:12,color:"secondary"}):void 0}),go.createElement(ay,{size:16}),go.createElement(fr,{list:x,selectedBlockchain:C,searchedFor:m,type:e,onChange:b=>{I(b);let w=k.find(B=>b.blockchain===B.name);w&&A(w),n()}})))}i(ba,"SelectSwapItemsPage");import{i18n as Xc}from"@lingui/core";import{Alert as vA,Button as wA,styled as bA}from"@rango-dev/ui";import Uo from"react";import{useInRouterContext as xA,useSearchParams as EA}from"react-router-dom";import{i18n as dy}from"@lingui/core";import{Alert as RI,Divider as Kc,InfoIcon as eA,SlippageIcon as tA,TextField as oA,Tooltip as nA,Typography as my}from"@rango-dev/ui";import ze from"react";import{Chip as YI,styled as xr,TextField as ZI}from"@rango-dev/ui";var sy=xr("div",{paddingTop:"$5",padding:"$10 $5"}),ly=xr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${ZI}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),cy=xr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),xa=xr("div",{maxWidth:"280px",padding:"$10"}),py=xr(YI,{width:"61px",flexShrink:0});import{i18n as Vc}from"@lingui/core";import{Typography as JI}from"@rango-dev/ui";import Er from"react";function uy(){return Er.createElement(xa,null,Er.createElement(JI,{variant:"label",size:"medium",color:"neutral700"},Vc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Er.createElement("br",null),Er.createElement("br",null),Er.createElement("b",null,Vc.t("Warning")),":\xA0",Vc.t("This setting is applied to each step (e.g. 1Inch, Thorchain, etc.), meaning only that specific step will be reverted, not the entire route.")))}i(uy,"SlippageTooltipContent");function jc(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=S(),r=o!==null?Zo(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let d=u;u>Mn&&(d=Mn),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;Zp(u)||(p.value=u.slice(0,-1))},"onInput");return ze.createElement(sy,null,ze.createElement(cy,null,ze.createElement(tA,{size:16,color:"gray"}),ze.createElement(Kc,{direction:"horizontal",size:4}),ze.createElement(my,{variant:"title",size:"xmedium"},dy.t("Slippage tolerance per swap")),ze.createElement(Kc,{direction:"horizontal",size:4}),ze.createElement(nA,{container:N(),side:"top",sideOffset:4,content:ze.createElement(uy,null)},ze.createElement(eA,{color:"gray"}))),ze.createElement(ly,null,Rr.map((l,p)=>{let u=`slippage-${p}`;return ze.createElement(py,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),ze.createElement(oA,{type:"number",min:"0.01",max:"30",step:"0.01",status:r?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&ze.createElement(my,{variant:"body",size:"small"},"%"),placeholder:dy.t("Custom")})),r&&ze.createElement(ze.Fragment,null,ze.createElement(Kc,{size:10}),ze.createElement(RI,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(jc,"Slippage");import{i18n as Tt}from"@lingui/core";import{AutoThemeIcon as fy,BridgesIcon as rA,ChevronRightIcon as Ea,DarkModeIcon as gy,Divider as Ir,ExchangeIcon as iA,InfinityIcon as aA,InfoIcon as sA,LanguageIcon as lA,LightModeIcon as hy,List as cA,ListItem as pA,ListItemButton as uA,Skeleton as dA,styled as mA,Switch as fA,Tabs as gA,TargetIcon as hA,Tooltip as yA,Typography as at}from"@rango-dev/ui";import D from"react";import{useNavigate as SA}from"react-router-dom";var CA=mA("div",{width:"202px",height:"$40"}),TA=[{id:"light",icon:D.createElement(hy,{color:"black",size:24}),tooltip:D.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Light"))},{id:"dark",icon:D.createElement(gy,{color:"black",size:24}),tooltip:D.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Dark"))},{id:"auto",icon:D.createElement(fy,{color:"black",size:24}),tooltip:D.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Auto"))}],kA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(fy,{...e});case"dark":return D.createElement(gy,{...e});default:return D.createElement(hy,{...e})}},"getThemeIcon");function yy(){let t=SA(),{theme:e}=S().config,{setTheme:o,theme:n}=S(),{activeLanguage:r,languages:a}=fo(),s=a.find(L=>L.local===r)?.label,c=S().fetchStatus,l=S().swappers(),p=S().getDisabledLiquiditySources(),{config:{features:u}}=S(),d=S().customTokens(),g=ot("theme",u),h=ot("liquiditySource",u),f=ot("language",u),m=ot("customTokens",u),T=S().infiniteApprove,y=S().toggleInfiniteApprove,C=oi(l,p),k=C.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),v=k.length,x=k.filter(L=>L.selected).length,A=C.filter(L=>L.type==="DEX"),I=A.length,E=A.filter(L=>L.selected).length,b=i((L,te)=>{switch(c){case"loading":return D.createElement(dA,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(at,{variant:"body",size:"medium",color:"$error500"},Tt.t("Loading failed"));default:return D.createElement(at,{variant:"body",size:"medium"},`${L} / ${te}`)}},"handleSwapperEndItem"),w={id:"widget-setting-bridge-item-btn",title:D.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Bridges")),end:D.createElement(D.Fragment,null,b(x,v),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(Ea,{color:"black"})),onClick:()=>t(F.bridges),start:D.createElement(rA,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:D.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Exchanges")),end:D.createElement(D.Fragment,null,b(E,I),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(Ea,{color:"black"})),start:D.createElement(iA,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},M={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(at,{variant:"body",size:"medium"},`${d.length}`),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(Ea,{color:"black"})),start:D.createElement(hA,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},$={id:"widget-setting-language-item-btn",title:D.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Language")),start:D.createElement(lA,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(at,{variant:"body",size:"medium"},s),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(Ea,{color:"black"})),onClick:()=>t(F.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Infinite approval")),D.createElement(Ir,{direction:"horizontal",size:4}),D.createElement(yA,{side:"top",sideOffset:4,container:N(),content:D.createElement(xa,null,D.createElement(at,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,Tt.t("Warning")),":\xA0",Tt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(sA,{color:"gray"}))),start:D.createElement(aA,{color:"gray",size:16}),end:D.createElement(fA,{checked:T}),onClick:y},ee={id:"widget-setting-theme-item-btn",type:D.createElement(pA,null),title:D.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Theme")),end:D.createElement(CA,null,D.createElement(gA,{container:N(),items:TA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:kA(n)},V=h?[]:[w,B];return m||V.push(M),f||V.push($),V.push(q),!e?.singleTheme&&!g&&V.push(ee),D.createElement(cA,{type:D.createElement(uA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:V})}i(yy,"SettingsLists");var IA=bA("div",{paddingLeft:"$8"});function Sy(){let{isInCampaignMode:t,updateCampaignMode:e}=S(),o=t(),[,n]=EA(),r=xA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Uo.createElement(ie,{header:{title:Xc.t("Settings")}},Uo.createElement(ae,null,o&&Uo.createElement(vA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:Xc.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:Uo.createElement(IA,null,Uo.createElement(wA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Xc.t("Reset")))}),Uo.createElement(jc,null),Uo.createElement(yy,null)))}i(Sy,"SettingsPage");import{i18n as L0}from"@lingui/core";import{cancelSwap as P0}from"@rango-dev/queue-manager-rango-preset";import{useManager as M0}from"@rango-dev/queue-manager-react";import{Alert as _0}from"@rango-dev/ui";import up from"react";import{useParams as D0}from"react-router-dom";import{i18n as qo}from"@lingui/core";import{getCurrentNamespaceOfOrNull as C0,getCurrentStep as T0,getRelatedWalletOrNull as k0}from"@rango-dev/queue-manager-rango-preset";import{Button as dS,Divider as v0,QuoteCost as w0,StepDetails as b0,Typography as ap}from"@rango-dev/ui";import{useWallets as x0}from"@rango-dev/wallets-react";import mS from"bignumber.js";import{PendingSwapNetworkStatus as xn}from"rango-types";import Te,{useEffect as fS,useRef as gS,useState as sp}from"react";import{useNavigate as E0}from"react-router-dom";import{i18n as ho}from"@lingui/core";var AA=[ho.t("Sunday"),ho.t("Monday"),ho.t("Tuesday"),ho.t("Wednesday"),ho.t("Thursday"),ho.t("Friday"),ho.t("Saturday")];function Cy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?ho.t("Today"):`${AA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Cy,"timeSince");function Ty(t){return t.finishTime?Cy(parseInt(t.finishTime)):Cy(parseInt(t.creationTime))}i(Ty,"getSwapDate");import Nr from"react";import{i18n as Ia}from"@lingui/core";import{Button as ky,Divider as Yc,MessageBox as NA}from"@rango-dev/ui";import yo from"react";var vy=i(({onCancel:t,onClose:e})=>yo.createElement(yo.Fragment,null,yo.createElement(Yc,{size:20}),yo.createElement(NA,{type:"error",title:Ia.t("Cancel Swap"),description:Ia.t("Are you sure you want to cancel this swap?")}),yo.createElement(Yc,{size:32}),yo.createElement(ky,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Ia.t("Yes, Cancel it")),yo.createElement(Yc,{size:12}),yo.createElement(ky,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Ia.t("No, Continue"))),"CancelContent");import{i18n as Aa}from"@lingui/core";import{Button as wy,Divider as Zc,MessageBox as BA,Typography as WA}from"@rango-dev/ui";import eo from"react";var by=i(({onDelete:t,onClose:e})=>eo.createElement(eo.Fragment,null,eo.createElement(Zc,{size:20}),eo.createElement(BA,{type:"error",title:Aa.t("Delete Transaction"),description:Aa.t("Are you sure you want to delete this swap?")}),eo.createElement(Zc,{size:32}),eo.createElement(wy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Aa.t("Yes, Delete it")),eo.createElement(Zc,{size:12}),eo.createElement(wy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},eo.createElement(WA,{variant:"title",size:"medium",color:"primary"},Aa.t("No, Cancel")))),"DeleteContent");import{i18n as xy}from"@lingui/core";import{MessageBox as LA}from"@rango-dev/ui";import PA from"react";var Ey=i(t=>{let{status:e,message:o}=t,n=e==="waitingForNetworkChange"?"loading":"success",r=e==="waitingForNetworkChange"?xy.t("Change Network"):xy.t("Network Changed");return PA.createElement(LA,{type:n,title:r,description:o})},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as YA,getCurrentStep as ZA,getRelatedWalletOrNull as JA}from"@rango-dev/queue-manager-rango-preset";import{WalletState as RA}from"@rango-dev/ui";import{useWallets as e0}from"@rango-dev/wallets-react";import Ly from"react";import{i18n as wn}from"@lingui/core";import{Alert as Ay,Button as _A,Checkbox as DA,Divider as Wa,Image as $A,MessageBox as FA,Spinner as OA,WarningIcon as UA}from"@rango-dev/ui";import{useWallets as zA}from"@rango-dev/wallets-react";import he,{useState as qA}from"react";import{darkTheme as MA,styled as Ar}from"@rango-dev/ui";var Y3=Ar("div",{display:"flex",justifyContent:"center"}),Z3=Ar("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Iy=Ar("img",{width:"100%"}),Na=Ar("div",{position:"relative"}),Ba=Ar("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${MA} &`]:{$$color:"$warning600"}});var Ny=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=qA(null),{list:s}=vt(),c=oe.use.isActiveTab(),{state:l,connect:p}=zA(),u=s.find(x=>x.type===e.walletType),d=u?.needsNamespace?.data.find(x=>x.value===o?.namespace);if(!u)return null;let g=l(e.walletType),h=u.isHub&&o?.namespace?g.namespaces?.get(o.namespace):null,f=g.connecting||h?.connecting,m=u.isHub?h?.connected:g.connected,T=i(()=>m?wn.t("Done"):r?wn.t("Try again"):wn.t("Connect"),"getButtonTitle"),y=i(()=>f?he.createElement(OA,{color:"info"}):r||m?null:he.createElement(DA,{checked:!0,disabled:!0}),"getNamespaceSuffix"),C=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(x){a(x)}},"handleConnect"),k=i(async()=>{if(m){n();return}C()},"handleClickButton"),v=i(()=>{if(!m)return null;let x=u?.isHub?h?.accounts?.[0]?.split(":"):g?.accounts?.[0]?.split(":"),A=x?.[x?.length-1];return A?oo(A):null},"getAddress");return he.createElement(he.Fragment,null,he.createElement(FA,{type:"warning",title:wn.t("Connect {wallet}",{wallet:u.title}),description:wn.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:he.createElement(Na,null,he.createElement($A,{src:u.image,size:45}),he.createElement(Ba,null,he.createElement(UA,{color:"warning",size:10})))}),m&&!d&&he.createElement(he.Fragment,null,he.createElement(Wa,{size:10}),he.createElement(Ay,{type:"success",variant:"alarm",title:wn.t("Wallet connected successfully.")})),r&&!d&&he.createElement(he.Fragment,null,he.createElement(Wa,{size:10}),he.createElement(Ay,{type:"error",title:r?.message,variant:"alarm"})),d&&he.createElement(he.Fragment,null,he.createElement(Wa,{size:30}),he.createElement(Eo,{namespace:d,suffix:y(),error:r?.message,connected:m,address:v()})),he.createElement(Wa,{size:"40"}),he.createElement(_A,{loading:f,type:"primary",id:"widget-connect-wallet-btn",onClick:k,disabled:!c},T()))},"ConnectWalletContent");import{i18n as By}from"@lingui/core";import{Button as QA,Divider as HA,Image as GA,MessageBox as VA,WarningIcon as KA}from"@rango-dev/ui";import{useWallets as jA}from"@rango-dev/wallets-react";import{detectInstallLink as XA}from"@rango-dev/wallets-shared";import to from"react";var Wy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=jA(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(XA(n.installLink),"_blank"),"handleButtonClick");return to.createElement(to.Fragment,null,to.createElement(VA,{type:"warning",title:By.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:to.createElement(Na,null,to.createElement(GA,{src:n.img,size:45}),to.createElement(Ba,null,to.createElement(KA,{color:"warning",size:10})))}),to.createElement(HA,{size:"40"}),to.createElement(QA,{type:"primary",id:"widget-install-wallet-btn",onClick:r},By.t("Install")))},"InstallWalletContent");var Py=i(t=>{let{swap:e,onClose:o}=t,{state:n}=e0(),r=ZA(e),a=r?JA(e,r):null,s=a?.walletType,c=s?Wn(n(s)):null,l=r?YA(e,r):null;return s?c===RA.NOT_INSTALLED?Ly.createElement(Wy,{walletType:s}):Ly.createElement(Ny,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function Jc(t){let{isOpen:e,state:o,onClose:n,onDelete:r,onCancel:a,swap:s,message:c}=t;return Nr.createElement(R,{open:e,onClose:n,container:N()},o==="waitingForConnectingWallet"&&Nr.createElement(Py,{swap:s,message:c,onClose:n}),(o==="waitingForNetworkChange"||o==="networkChanged")&&Nr.createElement(Ey,{message:c,status:o}),o==="delete"&&Nr.createElement(by,{onClose:n,onDelete:()=>{n(),r()}}),o==="cancel"&&Nr.createElement(vy,{onClose:n,onCancel:()=>{n(),a()}}))}i(Jc,"SwapDetailsModal");import{i18n as Br}from"@lingui/core";import{Button as Rc,Divider as Wr,MessageBox as Dy,TokenAmount as t0,Typography as $y}from"@rango-dev/ui";import Ce from"react";import{Link as o0,useNavigate as n0}from"react-router-dom";var My="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",_y="/profile";function ep(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:d,diagnosisUrl:g}=t,h=n0(),{showProfileBanner:f}=oe();return Ce.createElement(R,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(tt.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement(Dy,{type:"success",title:Br.t("Swap Successful")},Ce.createElement(t0,{direction:"vertical",tooltipContainer:N(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),Ce.createElement(Wr,{size:12}),Ce.createElement($y,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Ce.createElement(Dy,{type:"error",title:Br.t("Transaction Failed"),description:d}),Ce.createElement(Wr,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,f&&Ce.createElement(Ce.Fragment,null,Ce.createElement(o0,{to:_y},Ce.createElement(Iy,{src:My,alt:"Profile Banner"})),Ce.createElement(Wr,{size:30})),Ce.createElement(Rc,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Br.t("Done"))),Ce.createElement(Wr,{size:12}),g&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Rc,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(g,"_blank")},Br.t("Diagnosis")),Ce.createElement(Wr,{size:12})),Ce.createElement(Rc,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement($y,{variant:"title",size:"medium",color:"primary"},Br.t("See Details"))))}i(ep,"SwapDetailsCompleteModal");import{i18n as Ma}from"@lingui/core";import{CopyIcon as f0,DoneIcon as g0,IconButton as h0,RangoExplorerIcon as y0,Tooltip as aS,Typography as sS,useCopyToClipboard as S0}from"@rango-dev/ui";import Nt from"react";import m0 from"react";import{i18n as c0}from"@lingui/core";import{Alert as oS,IconButton as p0,LinkIcon as u0}from"@rango-dev/ui";import So,{Fragment as d0}from"react";import{Alert as i0,ChevronDownIcon as a0,IconButton as s0}from"@rango-dev/ui";import bn,{useState as l0}from"react";import{css as Lr,darkTheme as Fy,styled as $t,Typography as r0}from"@rango-dev/ui";var Oy=$t(ae,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Fy} &`]:{color:"$secondary500"}}}}}),Uy=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),zy=$t("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),qy=$t("div",{padding:"$0 $20 $20 $20"}),eY=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),Qy=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),tY=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),zo=Lr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Fy} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Hy=Lr({padding:"$5 0"}),La=Lr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Gy=Lr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Vy=Lr({width:"100%",padding:"0 $20 $10"}),Ky=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),jy=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),Pa=$t(r0,{wordBreak:"break-word"});import{styled as tp}from"@rango-dev/ui";var Xy=tp("div",{display:"flex",flexDirection:"column",gap:"$10"}),Yy=tp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Zy=tp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Jy(t){let{message:e}=t,[o,n]=l0(!1);return bn.createElement(i0,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&bn.createElement(s0,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},bn.createElement(Yy,{rotated:o},bn.createElement(a0,{size:12,color:"gray"}))),footer:bn.createElement(Zy,{open:o},bn.createElement(Pa,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Jy,"FailedAlert");import{i18n as Ry}from"@lingui/core";import{Alert as op,Button as eS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as np}from"rango-types";import Pr from"react";function tS(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Pr.createElement(op,{type:"warning",id:"widget-swap-details-change-network-alert",title:n.shortMessage,action:Pr.createElement(eS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(np.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Ry.t("Change"))}):r===np.WaitingForConnectingWallet?Pr.createElement(op,{type:"warning",title:n.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Pr.createElement(eS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(np.WaitingForConnectingWallet)}},Ry.t("Connect"))}):Pr.createElement(op,{id:"widget-swap-details-short-alert",type:"warning",title:n.shortMessage})}i(tS,"WarningAlert");function rp(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,c=Vn(a),l=a.status==="waitingForApproval"&&!c,p=a.status==="running"&&!c,u=p&&!s||l&&!a.explorerUrl?.length;return So.createElement(Xy,null,a.explorerUrl?.map((d,g,h)=>{let f=g+d.url,m=g===h.length-1,T=(m&&p||l)&&!u,y=m&&a.status==="failed";return So.createElement(d0,{key:f},So.createElement(oS,{id:"widget-swap-details-tx-alert",type:m&&(T&&"loading"||y&&"error")||"success",title:d.description?`${d.description} Tx`:c0.t("View transaction"),action:d.url&&So.createElement(p0,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},So.createElement(u0,{size:12}))}))}),u&&So.createElement(oS,{id:"widget-swap-details-loading-alert",type:"loading",title:r.shortMessage}),a.status!=="failed"&&c&&So.createElement(tS,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&So.createElement(Jy,{message:r}))}i(rp,"SwapDetailsAlerts");var nS=2e3;var rS=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:gt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:_(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:gt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:_(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:In(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:gt(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:gt(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:In(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:m0.createElement(rp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function iS(t){if(Vn(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(iS,"getStepState");function lS(t){let{requestId:e}=t,[o,n]=S0(nS);return Nt.createElement(zy,{className:zo()},Nt.createElement(sS,{variant:"label",size:"large",color:"neutral700"},Ma.t("Request ID")),Nt.createElement("div",{className:La()},Nt.createElement(sS,{variant:"label",size:"small",color:"neutral700"},e),Nt.createElement(aS,{container:N(),content:o?Ma.t("Copied To Clipboard"):Ma.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Nt.createElement(h0,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Nt.createElement(g0,{size:16,color:"secondary"}):Nt.createElement(f0,{size:16,color:"gray"}))),Nt.createElement(Ky,{target:"_blank",href:`${Mp}/swap/${e}`},Nt.createElement(aS,{container:N(),content:Ma.t("View on Rango Explorer"),side:"bottom"},Nt.createElement(y0,{size:20})))))}i(lS,"RequestIdRow");import{i18n as cS}from"@lingui/core";import{Typography as pS}from"@rango-dev/ui";import ip from"react";function uS(t){let{date:e,isFinished:o}=t;return ip.createElement("div",{className:zo()},ip.createElement(pS,{variant:"label",size:"large",color:"neutral700"},o?cS.t("Finished at"):cS.t("Created at")),ip.createElement(pS,{variant:"label",size:"small",color:"neutral700"},e))}i(uS,"SwapDateRow");function lp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=x0(),l=S().blockchains(),p=S().swappers(),{findToken:u}=S(),d=O.use.retry(),g=E0(),h=gS(null),[f,m]=sp(!1),[T,y]=sp(null),[C,k]=sp(null),v=gS(!1),x=Be.use.getNotifications(),A=Be.use.removeNotification(),I=x(),E=T0(e),b=E?.networkStatus,w=i(ve=>{m(!0),y(ve)},"handleChangeModalState"),B=i(()=>{m(!1)},"handleCloseModal");fS(()=>{I.find(je=>je.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(k(e.status),A(e.requestId),B()):C&&k(null))},[e.status,e.requestId]),fS(()=>{te?w(xn.WaitingForNetworkChange):b===xn.WaitingForConnectingWallet?w(xn.WaitingForConnectingWallet):b===xn.NetworkChanged&&w(xn.NetworkChanged),!te&&v.current&&B(),v.current=te},[b]);let M=$d(e),$=E?C0(e,E):null,q=E?k0(e,E):null,ee=Ty(e),V=Fd(e),L=i(ve=>!!c(ve)?.mobileWallet,"isMobileWallet"),te=b===xn.WaitingForNetworkChange&&!!$&&!!q?.walletType&&(L(q.walletType)||a(q.walletType,$.network,$)),le=te?s.bind(null,q.walletType,[{namespace:$.namespace,network:$.network}]):void 0,J=Dd(e,E,c),X=rS({swap:e,switchNetwork:le,showNetworkModal:b,setNetworkModal:w,message:J,blockchains:l,swappers:p}),j=X.length,[ue,de]=[e.steps[0],e.steps[j-1]],ke=de.outputAmount||de.expectedOutputAmountHumanReadable,H=e.steps.reduce((ve,je)=>ve+parseFloat(je.feeInUsd||""),0),W=e.steps.find(ve=>ve.diagnosisUrl)?.diagnosisUrl,Q=_(parseFloat(ke||"0")*(de.toUsdPrice||0),4,4),K=_(parseFloat(e.inputAmount)*(ue.fromUsdPrice||0),4,4),Y=ke?new mS(ke).multipliedBy(de.toUsdPrice||0).toString():"",ye=new mS(e.inputAmount).multipliedBy(ue.fromUsdPrice||0).toString(),Qe=Qt(K,Q),Oe=J.detailedMessage.content||J.shortMessage,kt=e.status==="success"?qo.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:_(ke,6,6),token:X[j-1].to.token.displayName,conciseAddress:oo(e.wallets[X[j-1].to.chain.displayName]?.address||""),chain:X[j-1].to.chain.displayName}}):Te.createElement(jy,null,Te.createElement(ap,{variant:"body",size:"medium",color:"neutral700",align:"center"},Oe?"":qo.t("Transaction was not sent."),M?`${qo.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:M.outputAmount,symbol:M.symbol,blockchain:M.blockchain}})}`:""),Oe&&Te.createElement(Pa,{align:"center",variant:"body",size:"medium",color:"neutral700"},Te.createElement("b",null,"Reason:")," ",Oe));return Te.createElement(ie,{header:{title:qo.t("Swap Details"),onCancel:e.status==="running"?()=>w("cancel"):void 0,suffix:e.status!=="running"&&Te.createElement(ao,null,Te.createElement(dS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>w("delete")},Te.createElement(ap,{size:"medium",variant:"label",color:"error"},qo.t("Delete"))))},footer:V&&!C&&Te.createElement(dS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let ve=Ci(e,l,u);d(ve),setTimeout(()=>{g("../../")},0)}},qo.t("Try again"))},Te.createElement(Oy,{compact:!0,ref:h},Te.createElement(lS,{requestId:o}),Te.createElement(uS,{date:ee,isFinished:!!e.finishTime}),Te.createElement("div",{className:Gy()},Te.createElement(w0,{fee:_(String(H),2,2),time:Nn(Kr(e.steps)),steps:j}),Te.createElement(rr,{from:{price:{value:_(e.inputAmount,6,6),usdValue:K,realUsdValue:ye,realValue:e.inputAmount},token:{displayName:X[0].from.token.displayName,image:X[0].from.token.image},chain:{image:X[0].from.chain.image,displayName:X[0].from.chain.displayName}},to:{price:{value:_(ke,6,6),usdValue:Q,realUsdValue:Y,realValue:ke||""},token:{displayName:X[j-1].to.token.displayName,image:X[j-1].to.token.image},chain:{image:X[j-1].to.chain.image,displayName:X[j-1].to.chain.displayName}},percentageChange:_(Qe,2,2),warningLevel:Ht(Qe??0)})),Te.createElement("div",{className:Vy()},Te.createElement(ap,{variant:"title",size:"small"},qo.t("Swaps steps"))),Te.createElement(v0,{size:8}),Te.createElement(qy,null,X.map((ve,je)=>{let Dr=je,En=iS(e.steps[je]),QS=En==="error"||En==="in-progress"||En==="warning"||En==="completed"&&je===X.length-1;return Te.createElement(b0,{className:"widget-swap-details-step-item-container",key:Dr,step:ve,type:"swap-progress",ref:h,state:En,hasSeparator:je!==0,tabIndex:Dr,isFocused:QS,tooltipContainer:N()})}))),Te.createElement(Jc,{isOpen:f,state:T,onClose:B,onCancel:r,onDelete:n,message:J.detailedMessage.content,swap:e}),Te.createElement(ep,{open:!!C,diagnosisUrl:W,onClose:()=>k(null),status:e.status==="success"?"success":"failed",priceValue:_(ke,6,6),usdValue:Q,realUsdValue:Y,realValue:ke||"",percentageChange:_(Qe,2,2),token:{displayName:X[j-1].to.token.displayName,image:X[j-1].to.token.image},chain:{image:X[j-1].to.chain.image},description:kt}))}i(lp,"SwapDetails");import{i18n as Da}from"@lingui/core";import{Divider as SS,NotFound as W0,Skeleton as _r,Typography as $a}from"@rango-dev/ui";import Ae from"react";import{i18n as I0}from"@lingui/core";import{Divider as A0,Skeleton as N0,Typography as B0}from"@rango-dev/ui";import Ie from"react";import{css as Bt,styled as cp}from"@rango-dev/ui";var hS=cp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Mr=cp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),_a=cp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),A7=Bt({display:"flex",justifyContent:"space-between",alignItems:"center"}),N7=Bt({display:"flex",justifyContent:"space-between",alignItems:"center"}),B7=Bt({paddingTop:"$15",display:"flex"}),W7=Bt({padding:"$15 $0"}),L7=Bt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),P7=Bt({paddingBottom:"$10"}),M7=Bt({display:"flex",justifyContent:"start",alignItems:"center"}),_7=Bt({paddingTop:"$5",display:"flex",alignItems:"center"}),D7=Bt({display:"flex",alignItems:"center"}),$7=Bt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),yS=Bt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function pp(){return Ie.createElement(hS,null,Ie.createElement(ar,{type:"swap-preview"}),Ie.createElement("div",{className:"swaps-steps"},Ie.createElement(B0,{variant:"title",size:"small"},I0.t("Swaps steps"))),Ie.createElement(Ie.Fragment,null,Ie.createElement(Mr,null,Ie.createElement(_t,{separator:!1}),Ie.createElement("div",{className:yS()},Ie.createElement(A0,{direction:"horizontal",size:20}),Ie.createElement(N0,{height:22,variant:"rectangular"}))),Ie.createElement(_a,null),Ie.createElement(Mr,null,Ie.createElement(_t,{separator:!1})),Ie.createElement(_a,null),Ie.createElement(Mr,null,Ie.createElement(_t,{separator:!1})),Ie.createElement(_a,null),Ie.createElement(Mr,null,Ie.createElement(_t,{separator:!1}))))}i(pp,"LoadingSwapDetails");function CS(t){let{requestId:e,showSkeleton:o}=t;return Ae.createElement(ie,{header:{title:Da.t("Swap Details"),suffix:Ae.createElement(ao,null)}},o&&Ae.createElement(Uy,null,Ae.createElement("div",{className:zo()},Ae.createElement($a,{variant:"label",size:"large",color:"neutral700"},`${Da.t("Request ID")}`),Ae.createElement("div",{className:La()},Ae.createElement($a,{variant:"label",size:"small",color:"neutral700"},Ae.createElement(_r,{width:60,height:10,variant:"rounded"})),Ae.createElement(SS,{direction:"horizontal",size:4}),Ae.createElement(_r,{width:16,height:16,variant:"rectangular"}),Ae.createElement(SS,{direction:"horizontal",size:4}),Ae.createElement(_r,{width:16,height:16,variant:"rectangular"}))),Ae.createElement("div",{className:zo()},Ae.createElement($a,{className:Hy(),variant:"label",size:"large",color:"neutral700"},Ae.createElement(_r,{width:60,height:10,variant:"rounded"})),Ae.createElement($a,{variant:"label",size:"small",color:"neutral700"},Ae.createElement(_r,{width:60,height:10,variant:"rounded"}))),Ae.createElement(pp,null)),!o&&Ae.createElement(Qy,null,Ae.createElement(W0,{title:Da.t("Not found"),description:Da.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(CS,"SwapDetailsPlaceholder");function TS(){let{manager:t,state:e}=M0(),o=!e.loadedFromPersistor,n=Ct(t),{requestId:r}=D0(),a=Ve(),{fetchStatus:s}=S();if(!r)return up.createElement(_0,{containerStyles:{margin:"20px"},type:"error",title:L0.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:g})=>g.requestId===r):void 0,p=i(()=>{if(l?.id){let g=t?.get(l.id);g&&P0(g)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(g){console.log(g)}},"onDelete"),d=l?.swap;return!d||c?up.createElement(CS,{requestId:r,showSkeleton:c}):up.createElement(lp,{swap:d,requestId:r,onCancel:p,onDelete:u})}i(TS,"SwapDetailsPage");import{i18n as kS}from"@lingui/core";import{Divider as $0,getCategoriesCount as F0,SelectableCategoryList as O0,styled as wS,Typography as U0,Wallet as z0,WalletState as q0}from"@rango-dev/ui";import{useWallets as Q0}from"@rango-dev/wallets-react";import Ft,{useState as vS}from"react";var H0=wS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),G0=wS(ae,{textAlign:"center"});function bS(){let{fetchStatus:t}=S(),[e,o]=vS("ALL"),n=S().blockchains(),{config:r}=S(),{state:a}=Q0(),[s,c]=vS(),l=oe.use.isActiveTab(),{list:p}=vt(),u=cu(p,n),g=F0(u)!==1,h=pu(p,e),f=i(m=>{Hp(p,r.multiWallets)||c(m)},"handleWalletItemClick");return Ft.createElement(ie,{header:{title:kS.t("Connect Wallets")}},Ft.createElement(G0,null,g&&Ft.createElement(Ft.Fragment,null,Ft.createElement(O0,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),Ft.createElement($0,{size:24})),Ft.createElement(U0,{variant:"title",size:"xmedium",align:"center"},kS.t("Choose a wallet to connect.")),Ft.createElement(H0,null,h.map((m,T)=>{let C=a(m.type).namespaces,k=`wallet-${T}-${m.type}`,v=Ja(m,C);return Ft.createElement(z0,{key:k,...m,state:v?q0.PARTIALLY_CONNECTED:m.state,container:N(),onClick:()=>f(m),isLoading:t==="loading",disabled:!l})}),Ft.createElement(Hn,{id:"widget-state-full-connect-modal",wallet:s,onClose:()=>{c(void 0)}}))))}i(bS,"WalletsPage");function xS(){return qd(),Os(),V0([{path:F.home,element:qe.createElement(Oh,null)},{path:F.routes,element:qe.createElement(Hh,null)},{path:F.fromSwap,children:[{index:!0,element:qe.createElement(ba,{type:"source"})},{path:F.blockchains,element:qe.createElement(Ta,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:qe.createElement(ba,{type:"destination"})},{path:F.blockchains,element:qe.createElement(Ta,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:qe.createElement(Sy,null)},{path:F.languages,element:qe.createElement(zh,null)},{path:F.exchanges,element:qe.createElement(Dc,{sourceType:"Exchanges"})},{path:F.bridges,element:qe.createElement(Dc,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:qe.createElement(zg,null)},{path:F.addCustomTokens,children:[{index:!0,element:qe.createElement(Dm,null)},{path:F.blockchains,element:qe.createElement(Ta,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:qe.createElement(sh,null)},{path:F.swapDetails,element:qe.createElement(TS,null)}]},{path:F.wallets,element:qe.createElement(bS,null)},{path:F.confirmSwap,element:qe.createElement(Ig,null)}])}i(xS,"AppRoutes");import{useQueueManager as tN}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as oN}from"rango-sdk";import{useContext as nN,useEffect as LS,useState as PS}from"react";import{globalCss as K0}from"@rango-dev/ui";var ES=i(()=>K0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function IS(){let{setWatermark:t,setShowProfileBanner:e}=oe();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Ut("BASE_URL")}/meta/dapp/config?apiKey=${Ut("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(IS,"useFetchApiConfig");import{useWallets as j0}from"@rango-dev/wallets-react";import{useEffect as X0,useRef as Y0}from"react";function AS(){let{connect:t,state:e}=j0(),o=Y0({}),{fetchStatus:n}=S(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);X0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(AS,"useForceAutoConnect");import{isApprovalTX as Z0,RouteEventType as NS,StepEventType as BS,StepExecutionEventStatus as J0,WidgetEvents as Fa}from"@rango-dev/queue-manager-rango-preset";import{useEffect as WS}from"react";function dp(){let t=Be.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=S();WS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===BS.TX_EXECUTION&&s.status===J0.TX_SENT&&!Z0(c)||s.type===BS.SUCCEEDED){let u=[],d=l.wallets[c?.fromBlockchain];if(d){let g=e.find(h=>h.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&h.walletType===d.walletType&&h.chain===c?.fromBlockchain);g&&u.push(g)}if(c?.fromBlockchain!==c?.toBlockchain){let g=l.wallets[c?.toBlockchain];if(g){let h=e.find(f=>f.address?.toLocaleLowerCase()===g.address?.toLocaleLowerCase()&&f.walletType===g.walletType&&f.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let g=n(),f=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(m=>g.some(T=>T.blockchain===m.blockchain&&T.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&T.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:f,shouldFetchCustomTokens:f.length>0})}}t(s,l)},"handleStepEvent");return we.on(Fa.StepEvent,r),()=>we.off(Fa.StepEvent,r)},[we,e]),WS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===NS.FAILED||s.type===NS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return we.on(Fa.RouteEvent,r),()=>we.off(Fa.RouteEvent,r)},[we])}i(dp,"useSubscribeToWidgetEvents");import{useManager as R0}from"@rango-dev/queue-manager-react";import{useEffect as eN}from"react";function mp(){let{isSynced:t,syncNotifications:e}=Be(),{manager:o,state:n}=R0();eN(()=>{Be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Ct(o))},[Be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(mp,"useSyncNotifications");function fp(){AS(),ES(),dp(),mp();let t=S().blockchains(),{canSwitchNetworkTo:e}=qi(),[o,n]=PS(null),[r,a]=PS(),s=nN(hi),c=t.filter(oN),{fetchApiConfig:l}=IS();LS(()=>()=>zd(),[]),tN({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),LS(()=>(xo.init(),Be.persist.hasHydrated()||Be.persist.rehydrate(),s.onConnectWallet(p=>{n(u=>{if(!u||u.walletType!==p.walletType)return p;let d={...u};return p.network&&(d.network=p.network),p.accounts&&(d.accounts=p.accounts),d})}),s.onDisconnectWallet(p=>{a(p),n(u=>p===u?.walletType?null:u)}),l().catch(console.log),xo.destroy),[])}i(fp,"useBootstrap");import{styled as rN}from"@rango-dev/ui";var MS=rN("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Oa(){fp();let{config:t}=S(),{activeTheme:e}=io(t?.theme||{}),{activeLanguage:o}=fo();return gp.createElement(iN,{language:o},gp.createElement(MS,{id:"swap-container",className:e()},gp.createElement(xS,null)))}i(Oa,"Main");import{setSolanaSignerConfig as xN}from"@rango-dev/signer-solana";import yp,{useEffect as US,useMemo as EN}from"react";import{useState as aN}from"react";var sN=i(()=>{let[t,e]=aN(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Qp(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),_S=sN;import{checkWaitingForNetworkChange as lN,makeQueueDefinition as cN}from"@rango-dev/queue-manager-rango-preset";import{Provider as pN}from"@rango-dev/queue-manager-react";import{useWallets as uN}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as dN}from"@rango-dev/wallets-shared";import{isEvmBlockchain as mN}from"rango-types";import fN,{useMemo as gN}from"react";function hN(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=uN(),c=gN(()=>cN({API_KEY:t.apiKey||Ut("API_KEY"),BASE_URL:Ut("BASE_URL"),emitter:{emit:we.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=S(),u=l(),d={blockchains:p.map(v=>({accounts:[v],name:v.chain}))},g=i(async(v,x)=>a(v,x.network,x)?await r(v,[x]):void 0,"switchNetwork"),h=i(v=>!!s(v).mobileWallet,"isMobileWallet"),f=u.filter(v=>v.enabled).reduce((v,x)=>(v[x.name]=x,v),{}),m=u.filter(mN),T=i(v=>{let{supportedChains:x}=s(v);return Ln(x)},"getSupportedChainNames"),y=e(),C={meta:{blockchains:f,evmBasedChains:m,evmNetworkChainInfo:dN(m),getSupportedChainNames:T},getSigners:o,wallets:d,providers:y,switchNetwork:g,canSwitchNetworkTo:a,state:n,isMobileWallet:h},k=oe.use.isActiveTab();return fN.createElement(pN,{queuesDefs:[c],context:C,onPersistedDataLoaded:v=>{lN(v)},isPaused:!k},t.children)}i(hN,"QueueManager");var DS=hN;import{useManager as kN}from"@rango-dev/queue-manager-react";import vN,{createContext as wN,useContext as bN}from"react";function $S(){let{findToken:t}=S(),e=S().blockchains(),o=S().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=O();return i(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:g,toToken:h,requestAmount:f}=p,m={blockchains:e,tokens:o};if(u!==void 0){let T=e.find(y=>y.name===u)??null;n(T)}if(d!==void 0){let T=d?t(d)??null:null;r({meta:m,token:T})}if(g!==void 0){let T=e.find(y=>y.name===g)??null;a(T)}if(h!==void 0){let T=h?t(h)??null:null;s({meta:m,token:T})}f!==void 0&&c(f)},"updateQuoteInputs")}i($S,"useUpdateQuoteInputs");import{cancelSwap as yN,getCurrentNamespaceOfOrNull as SN,getCurrentStep as CN,getRelatedWalletOrNull as TN}from"@rango-dev/queue-manager-rango-preset";var Ua=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Ct(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Ci(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&yN(o)}getCurrentStepInfo(e){let o=CN(e);return{step:o,wallet:o?TN(e,o):null,network:o?SN(e,o)?.network:null}}};var FS=wN(void 0);function hp(t){let{manager:e}=kN(),o=oe.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=S(),l=new Ua(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=S(),u=nu(a()),d=S().blockchains(),g=S().tokens(),h=S().swappers(),f=S().fetchStatus,m=fo().resetLanguage,T=Be().getNotifications(),y=Be().clearNotifications,C=$S(),{fromBlockchain:k,toBlockchain:v,fromToken:x,toToken:A,inputAmount:I}=O(),E={isActiveTab:o,setCurrentTabAsActive:xo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async b=>c(b)},meta:{blockchains:d,tokens:g,swappers:h,loadingStatus:f,findToken:r},resetLanguage:m,notifications:{list:T,clearAll:y},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:v?.name??null,toToken:A?{symbol:A.symbol,blockchain:A.blockchain,address:A.address}:null,requestAmount:I},updateQuoteInputs:C}};return vN.createElement(FS.Provider,{value:E},t.children)}i(hp,"WidgetInfo");function OS(){let t=bN(FS);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(OS,"useWidget");function za(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=_S();return US(()=>{n&&r(n)},[n]),EN(()=>{uu({API_KEY:o?.apiKey||qr,BASE_URL:o?.apiUrl||Pp})},[o.apiKey,o.apiUrl]),US(()=>{t.config?.signers?.customSolanaRPC&&xN("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),yp.createElement(yi,{config:o,onUpdateState:e},yp.createElement(DS,{apiKey:o.apiKey},yp.createElement(hp,null,t.children)))}i(za,"WidgetProvider");function zS(t){let e=t.config?.externalWallets;return qa.createElement(cd,null,e?qa.createElement(Oa,null):qa.createElement(za,{config:t.config??Ur},qa.createElement(Oa,null)))}i(zS,"Widget");function qS(){let{on:t,off:e}=we;return{on:t,off:e}}i(qS,"useWidgetEvents");var HR={DerivationPath:zn,Namespaces:On,Detached:Un,isOnDerivationPath:Qn,isOnNamespace:qn,isOnDetached:Co};export{hR as EventSeverity,Xo as MainEvents,ER as Networks,NR as PendingSwapNetworkStatus,ns as QuoteEventTypes,yR as RouteEventType,Va as SUPPORTED_FONTS,HR as StatefulConnect,SR as StepEventType,CR as StepExecutionBlockedEventStatus,TR as StepExecutionEventStatus,tt as UI_ID,is as UiEventTypes,rs as WalletEventTypes,bR as WalletEvents,IR as WalletTypes,zS as Widget,Xo as WidgetEvents,za as WidgetProvider,yi as WidgetWallets,el as customizedThemeTokens,vR as readAccountAddress,Qo as useStatefulConnect,vt as useWalletList,qi as useWallets,OS as useWidget,qS as useWidgetEvents,VC as widgetEventEmitter};
1
+ var RS=Object.defineProperty;var i=(t,e)=>RS(t,"name",{value:e,configurable:!0});import{EventSeverity as NR,RouteEventType as BR,StepEventType as WR,StepExecutionBlockedEventStatus as LR,StepExecutionEventStatus as MR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as _R}from"@rango-dev/wallets-core/legacy";import{useWallets as Hi,Events as $R}from"@rango-dev/wallets-react";import{Networks as OR,WalletTypes as UR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as qR}from"rango-types";import{Divider as gT}from"@rango-dev/ui";import io,{useEffect as hT,useRef as yT,useState as dd}from"react";import{WalletState as eC}from"@rango-dev/ui";import{useWallets as tC}from"@rango-dev/wallets-react";import{useReducer as oC}from"react";function Ap(t){return!!t.derivationPath}i(Ap,"isStateOnDerivationPathStep");function Np(t){return!!t.namespace}i(Np,"isStateOnNamespace");var Ur={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Bp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return Ur;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Ur;default:throw new Error("Action hasn't been defined.")}}i(Bp,"reducer");function Vo(){let{state:t,disconnect:e,connect:o}=tC(),[n,r]=oC(Bp,Ur),a=i(async(d,g,h)=>{r({type:"reset"});try{let f=g?.map(m=>({...m,network:void 0}));return await o(d,f),{status:"connected"}}catch(f){let m=f?.message?`Error: ${f.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:f})}},"runConnect"),s=i(async(d,g)=>{if(d.state===eC.DISCONNECTED){let f=!!d.isHub,m=f?d.properties?.find(y=>y.name==="namespaces")?.value:d.needsNamespace,S=f?d.properties?.find(y=>y.name==="derivationPath")?.value:d.needsDerivationPath;if(!m?.data?.length)return await a(d.type,void 0,g);if(m?.data.length&&m.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:g?.defaultSelectedChains}}),{status:"namespace"};if(m?.data.length===1){if(S){let y=m.data[0];return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y.value}}),{status:"derivation-path"}}return await a(d.type,m?.data?.map(y=>({namespace:y.value})),g)}}if(d.isHub){let f=d.properties?.find(m=>m.name==="namespaces")?.value;if(f?.data.length&&f.data.length>1)return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return g?.disconnectIfConnected?(await u(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(d,g)=>{let h=!!d.isHub,f=h?d.properties?.find(T=>T.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(T=>T.name==="derivationPath")?.value:d.needsDerivationPath,S=f?.selection==="single",y=g[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(S&&m)return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y}}),{status:"derivation-path"};if(!Np(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=g.map(T=>({namespace:T}));return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:C?.map(T=>T.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async d=>{if(!d)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Ap(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let g=n.derivationPath.providerType,f=[{namespace:n.derivationPath.namespace,derivationPath:d}];return await a(g,f)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let g=t(d.type);return g.connected||g.connecting?(await e(d.type),wo(p)?(r({type:"needsNamespace",payload:{targetWallet:d}}),{status:"namespace"}):{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:p,resetState:d=>{r(d==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Vo,"useStatefulConnect");import{WalletState as Cs}from"@rango-dev/ui";import{useWallets as dk}from"@rango-dev/wallets-react";import{detectMobileScreens as mk,KEPLR_COMPATIBLE_WALLETS as fk,WalletTypes as On}from"@rango-dev/wallets-shared";import{useCallback as gk,useEffect as hk}from"react";import sk,{createContext as lk,useContext as ck,useEffect as pk,useRef as uk}from"react";import{create as ik}from"zustand";import{persist as ak}from"zustand/middleware";import{allProviders as nC}from"@rango-dev/provider-all";var Ya=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},Ko=new Ya;import{defineVersions as Lp,pickVersion as Mp,Provider as Za}from"@rango-dev/wallets-core";function Pp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=_p(a);return s instanceof Za?s.id===n:s.config.type===n});r?o.push(r):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else n instanceof Za?o.push(Lp().version("1.0.0",n).build()):o.push(Lp().version("0.0.0",n).build())}),o}return t}i(Pp,"matchAndGenerateProviders");function _p(t){try{return Mp(t,"1.0.0")[1]}catch{return Mp(t,"0.0.0")[1]}}i(_p,"pickProviderVersionWithFallbackToLegacy");function Dp(t){return t.map(o=>_p(o)).map(o=>o instanceof Za?o.id:o.config.type)}i(Dp,"configWalletsToWalletName");function zr(t,e){return e.find(o=>o.name===t)?.displayName}i(zr,"getBlockchainDisplayNameFor");function ht(t,e){return e.find(o=>o.name===t)?.shortName}i(ht,"getBlockchainShortNameFor");function $p(t,e){return e.find(o=>o.name===t)?.logo}i($p,"getBlockchainImage");function Bn(t,e){return e.find(o=>o.id===t)?.title}i(Bn,"getSwapperDisplayName");function vo(t,e){return e.find(o=>o.name===t)??null}i(vo,"findBlockchain");function Ja(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Ja,"isTokenNative");function yt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(yt,"createTokenHash");function jo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(jo,"isValidTokenAddress");function Wn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=yt(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{c.has(l)||a(o.tokensMapByBlockchainName[l])})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=yt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Wn,"matchTokensFromConfigWithMeta");function qr(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(qr,"getSupportedBlockchainsFromConfig");function Op(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Op,"makeProvidersOptionsFromConfig");var Qr={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/manifests/tonconnect-manifest.json"}},rC={clientUrl:void 0},iC={liquiditySources:void 0};function Fp(t){let e=Op(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return nC(o).map(a=>a())}i(Fp,"generateProviders");var Up=i((t,e,o)=>{let n=Fp({...Qr,...t});return{config:{...Qr,...t},iframe:rC,campaignMode:iC,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c}=o(),l=Wn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=Wn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});Ko.set("supportedSourceTokens",l),Ko.set("supportedDestinationTokens",p),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=Fp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Op(a);return Pp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as zp}from"rango-types";var qp=[zp.EVM,zp.SOLANA],Hr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as kC}from"rango-sdk";import{UI_ID as aC}from"@rango-dev/ui";var Gr="c6381a79-2817-4602-83bf-6a641a409e32",Qp="https://api.rango.exchange",Hp="https://explorer.rango.exchange",ot={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...aC};import{BlockchainCategories as mC,WalletState as ct}from"@rango-dev/ui";import{legacyReadAccountAddress as fC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as gC,getCosmosExperimentalChainInfo as hC,isEvmAddress as yC,KEPLR_COMPATIBLE_WALLETS as JB,Networks as uu}from"@rango-dev/wallets-shared";import Yo from"bignumber.js";import{isCosmosBlockchain as SC}from"rango-types";import sC from"bignumber.js";var pe=new sC(0);import{WalletTypes as lC}from"@rango-dev/wallets-shared";var bo="~",Gp=[lC.LEAP];import{BlockchainCategories as es,WalletState as dC}from"@rango-dev/ui";import{TransactionType as Vr}from"rango-sdk";var Vp="Roboto",Ra=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];function Xo(t){return Array.from(new Set(t))}i(Xo,"removeDuplicateFrom");function Kr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Kr,"debounce");function lt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(lt,"containsText");function Xp(t,e){return t.toLowerCase()===e.toLowerCase()}i(Xp,"exactText");function Yp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Yp,"startWithText");var N=i(()=>document.getElementById(ot.SWAP_BOX_ID),"getContainer"),xo=i(()=>document.getElementById(ot.EXPANDED_BOX_ID),"getExpanded");function Zp(t,e,o){let n=!!e&&Xp(e,t),r=!!o&&Xp(o,t);return n!==r?n?-1:1:0}i(Zp,"compareExactMatchText");function ts(t,e,o){let n=!!e&&lt(e,t),r=!!o&&lt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ts,"compareContainsText");function os(t,e,o){let n=!!e&&Yp(e,t),r=!!o&&Yp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(os,"compareStartWithText");function Jp(t,e,o){if(!o)return 0;let n=Zp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Zp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=os(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ts(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=os(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ts(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=os(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ts(o,t.address,e.address);if(r!==0)return r}return 0}i(Jp,"compareWithSearchFor");var jr=i((t,e)=>{switch(e){case es.ALL:return!0;case es.UTXO:return t===Vr.TRANSFER;case es.OTHER:return t!==Vr.TRANSFER&&t!==Vr.COSMOS&&t!==Vr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Rp=i(t=>Ra.find(o=>o.value===t)?.url,"getFontUrlByName");function eu(t,e){let o=!!t.find(n=>n.state===dC.CONNECTED);return e===!1&&o}i(eu,"isSingleWalletActive");function tu(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(tu,"memoizedResult");import{BigNumber as cu}from"bignumber.js";function ou(t){return t.replace(/^0+(?=\d)/g,"")}i(ou,"removeLeadingZeros");function nu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(nu,"ensureLeadingZeroForDecimal");function ru(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(ru,"formatThousandsWithCommas");function iu(t){return t.replace(/\s+/g,"-")}i(iu,"replaceSpacesWithDash");function au(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(au,"stripTrailingZeros");function Xr(t){return/^0+(?:\.0+)?$/.test(t)}i(Xr,"isZeroValue");function su(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(su,"isValidCurrencyFormat");function lu(t){return/\d+$/.test(t)}i(lu,"isColorKeyOverridden");var Ln=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),_=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new cu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new cu(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Yr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Wt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Mn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function pu(t){return Xr(t)?"0":au(t)}i(pu,"sanitizeInputAmount");function Pn(t){return t.connected?ct.CONNECTED:t.connecting?ct.CONNECTING:t.installed?ct.DISCONNECTED:ct.NOT_INSTALLED}i(Pn,"mapStatusToWalletState");function du(t,e,o,n){return o.filter(r=>!Gp.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:d,properties:g,isHub:h}=e(r),f=Xo(u.map(S=>S.type)),m=Pn(t(r));return{title:a,image:s,link:gC(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:f,needsDerivationPath:d,properties:g,isHub:h}})}i(du,"mapWalletTypesToWalletInfo");function _n(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(_n,"walletAndSupportedChainsNames");function rs(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(g=>g.chain===l)){let g={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(g)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=fC(l),d=c.length>0,g=c.includes(u),h=u===uu.Unknown;if(d&&!g&&!h)return;let m=u===uu.Unknown&&yC(p);if(h&&!m)return;o.includes(u)||m?r?s(u,p.toLowerCase(),r):c.filter(C=>o.includes(C)).forEach(C=>{s(C,p.toLowerCase())}):s(u,p)}),a}i(rs,"prepareAccountsForWalletStore");function Eo(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((p,u)=>{let d=p.from.blockchain,g=p.to.blockchain,h=a===o.swaps.length-1,f=u===l.length-1;(!h&&!f||h&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(g)})}e==="all"&&n.add(c)}),Array.from(n)}i(Eo,"getQuoteChains");function Dn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Dn,"isAccountAndWalletMatched");var mu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ns(n.usdValue,n.decimals):pe.toFixed();return o.plus(r)},new Yo(pe));return CC(e.toString())},"calculateWalletUsdValue");function CC(t){let e=t.toString().split(".");return e[0]=ru(e[0]),e.join(".")}i(CC,"numberWithThousandSeparator");var Rr=i((t,e)=>{let o=hC(Object.entries(t).map(([,n])=>n).filter(SC));return o&&o[e]?.experimental},"isExperimentalChain");function ns(t,e){return new Yo(t).shiftedBy(-e).toFixed()}i(ns,"representAmountInNumber");function ei(t){if(!t)return null;let e=ns(t.amount,t.decimals),o=t.usdValue?ns(t.usdValue,t.decimals):null,n=_(e,8,8),r=o?_(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(ei,"formatBalance");function fu(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Yo(t.usdValue).shiftedBy(-t.decimals):pe,n=e&&e.usdValue?new Yo(e.usdValue).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Yo(t.amount).shiftedBy(-t.decimals):pe,n=e&&e.amount?new Yo(e.amount).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(fu,"compareTokenBalance");function zt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(zt,"areTokensEqual");function gu(t,e){return t.map(o=>({isPartiallyConnected:is(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===ct.CONNECTED&&!n.isPartiallyConnected)-+(o.state===ct.CONNECTED&&!o.isPartiallyConnected)||+(n.state===ct.CONNECTED)-+(o.state===ct.CONNECTED)||+(n.state===ct.DISCONNECTED||n.state===ct.CONNECTING)-+(o.state===ct.DISCONNECTED||o.state===ct.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(gu,"sortWalletsBasedOnConnectionState");function ro(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(ro,"getConciseAddress");function hu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(hu,"getAddress");var yu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Su(t){return t.map(e=>e.state).join("-")}i(Su,"hashWalletsState");function Cu(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(Cu,"filterBlockchainsByWalletTypes");function ku(t,e){return e===mC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(jr(n,e))return!0;return!1})}i(ku,"filterWalletsByCategory");function is(t,e){return!t.isHub||!t.needsNamespace||t.state!==ct.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(is,"checkIsWalletPartiallyConnected");var as={API_KEY:Gr};function qt(t){return as[t]||""}i(qt,"getConfig");function Tu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),as=e,as}i(Tu,"initConfig");var wu=20,vu=25,ss="theme-widget",ls=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>zt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>zt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),cs=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),bu=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var ti,pt=i(()=>ti||(ti=new kC(qt("API_KEY"),qt("BASE_URL")),ti),"httpService");import{i18n as Eu}from"@lingui/core";var oi=[.5,1,3],ni=1,Zo=5,$n=30,ri=0;var je=(a=>(a[a.NO_RESULT=0]="NO_RESULT",a[a.REQUEST_FAILED=1]="REQUEST_FAILED",a[a.REQUEST_CANCELED=2]="REQUEST_CANCELED",a[a.BRIDGE_LIMIT=3]="BRIDGE_LIMIT",a[a.INSUFFICIENT_SLIPPAGE=4]="INSUFFICIENT_SLIPPAGE",a))(je||{});import{WidgetEvents as xu}from"@rango-dev/queue-manager-rango-preset";var ps=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ps||{}),us=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(us||{}),ds=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(ds||{}),Jo=(a=>(a[a.RouteEvent=xu.RouteEvent]="RouteEvent",a[a.StepEvent=xu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Jo||{});function ii(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Xo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(c=>c.swapperGroup===a);if(s){let c=!0;o&&(c=o.some(l=>l===s.swapperGroup)),c&&s.types.map(l=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:l,selected:!e.includes(s.swapperGroup)})})}}),n}i(ii,"getUniqueSwappersGroups");function Iu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Iu,"sortLiquiditySourcesByGroupTitle");function nt(t,e){return e?.[t]==="hidden"}i(nt,"isFeatureHidden");function Ro(t,e){return e?.[t]==="enabled"}i(Ro,"isRoutingEnabled");var Au=i((t,e,o)=>nt("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function en(t){return t==ri?{type:"error",message:Eu.t("Slippage must be greater than or equal to 0.01")}:t>Zo&&t<=$n?{type:"warning",message:Eu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(en,"getSlippageValidation");var Nu=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let l=qr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>qp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",d=Ko.get(u);d?.length||(d=Wn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Ko.set(u,d)),d=Au(d,s,a.features);let g=e().blockchains({type:o.type});return d.filter(f=>o.blockchain&&f.blockchain!==o.blockchain||!g.some(m=>m.name===f.blockchain)?!1:o.searchFor?!!(lt(f.symbol,o.searchFor)||lt(f.address||"",o.searchFor)||lt(f.name||"",o.searchFor)):!0).sort((f,m)=>{let S=e().isTokenPinned(f,o.type),y=e().isTokenPinned(m,o.type);if(S!==y)return S?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(f),I=o.getBalanceFor(m),E=fu(A,I);if(E!==0)return E}let C=l.get(f.blockchain),T=l.get(m.blockchain),w=Ja(f,C),x=Ja(m,T);if(w!==x)return w?-1:1;if(f.isPopular!==m.isPopular)return f.isPopular?-1:1;if(o.searchFor){let A=Jp(f,m,o.searchFor);if(A)return A}return f.isSecondaryCoin!==m.isSecondaryCoin?f.isSecondaryCoin?1:-1:C&&T?C.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=yt(o),s=n.get(a);return s||(s=r.find(c=>yt(c)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>zt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(Iu)},fetch:async()=>{try{let{routing:o}=e().config,n=Ro("enableCentralizedSwappers",o),r=await pt().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],p=r.popularTokens,u=r.swappers.filter(h=>h.enabled),d=new Set;r.tokens.forEach(h=>{d.add(h.blockchain),l.push(h)}),r.blockchains.sort((h,f)=>h.sort-f.sort).forEach(h=>{h.enabled&&d.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let f=yt(h);c[h.blockchain]||(c[h.blockchain]=[]),s.set(f,h),c[h.blockchain].push(f)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as TC,Catalonia as wC,Chinese as Bu,Denmark as vC,English as bC,Finland as xC,French as EC,German as IC,Greece as AC,Hungary as NC,India as BC,Indonesian as WC,Italian as LC,Japanese as MC,Korea as PC,Lithuania as _C,Malay as DC,Netherlands as $C,Pakistan as FC,Philippines as OC,Poland as UC,Portuguese as zC,Russian as qC,SaudiArabia as QC,Serbia as HC,Slovakia as GC,SouthAfrica as VC,Spanish as KC,Swahili as jC,Swedish as XC,Thai as YC,Turkish as ZC,Ukrainian as JC,Vietnamese as RC}from"@rango-dev/ui";var Wu=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:VC},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:QC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:TC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:wC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Bu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Bu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:vC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:$C},{title:"English",label:"English",local:"en",SVGFlag:bC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:OC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:xC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:EC},{title:"German",label:"Deutsch",local:"de",SVGFlag:IC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:AC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:BC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:NC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:WC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:LC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:MC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:PC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:_C},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:DC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:UC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:zC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:qC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:HC},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:GC},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:KC},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:jC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:XC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:YC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:ZC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:JC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:FC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:RC}],tn="en";var Lu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:ni,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],quoteTokensRate:"default",changeQuoteTokensRate:()=>t(o=>({quoteTokensRate:o.quoteTokensRate==="default"?"reversed":"default"})),addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,c)=>{let l=s===o,p=c<=9;return l&&p}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=Xo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=nt("theme",n),s=nt("language",n),c=nt("liquiditySource",n),l=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||tn},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||tn}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=qr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import Ss from"bignumber.js";import ek from"mitt";var Te=ek(),tk={on:Te.on,off:Te.off};var Mu=i(t=>(e,o,n)=>t(i((...a)=>{let[s,...c]=a;e(l=>({...typeof s=="function"?s(l):s,lastUpdatedAt:+new Date}),...c)},"modifedSet"),o,n),"keepLastUpdated");import Pu from"bignumber.js";function Qt(t){return`${t.blockchain}${bo}${t.address}${bo}${t.symbol}`}i(Qt,"createAssetKey");function _u(t,e){return`${Qt(e)}${bo}${t}`}i(_u,"createBalanceKey");function Fn(t){let[e,o,n]=t.split(bo);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Fn,"extractAssetFromBalanceKey");function fs(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Qt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Pu(r??pe).multipliedBy(o[s].amount).toString():""})})}),o}i(fs,"computeNextBalancesWithNewPrices");function gs(t,e){let o={};return t.balances?.forEach(n=>{let r=_u(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Pu(c??pe).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(gs,"createBalanceStateForNewAccount");function hs(t,e){for(let o in e){let n=Fn(o),r=Qt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(hs,"updateAggregatedBalanceStateForNewAccount");function ok(t,e){let o=Fn(e),n=Qt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(ok,"removeBalanceFromAggregatedBalance");function ys(t,e,o){let n=t.connectedWallets.filter(l=>l.walletType===e);t.connectedWallets.forEach(l=>{l.walletType!==e&&(n=n.filter(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=Fn(l);!!n.find(d=>_u(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=ok(a,l):r[l]=s[l]}),{_balances:r,_aggregatedBalances:a}}i(ys,"computeNextStateAfterWalletBalanceRemoval");function nk(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(nk,"matchWalletDetailsWithConnectedWallet");var rk=tu(),Du=Mu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Dn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Dn(s,a))?{...a,loading:!1,error:!1,explorerUrl:nk(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Dn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Dn(c,l)));if(s.length>0){let c=s.map(l=>{let p=!a.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:p,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!c.some(d=>d.walletType===u.walletType&&d.chain===u.chain)),...c]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=r.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address].push(...a[p.chain]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await pt().getMultipleTokenBalance({assets:p.map(({symbol:d,address:g,blockchain:h})=>({symbol:d,address:g,blockchain:h})),walletAddress:l});if(u){let d=e()._balances,g=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let f={blockChain:h.asset.blockchain,balances:[h],address:l},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};fs(m,f,d);let S=gs(f,e);g=hs(g,S),d={...d,...S}}),t(h=>({_balances:{...h._balances,...d},_aggregatedBalances:g}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{Te.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=ys(r,o,n);t({_balances:a,_aggregatedBalances:s})},disconnectNamespaces:(o,n)=>{if(e().connectedWallets.find(a=>a.walletType===o)){e().removeBalancesForWallet(o,{namespaces:n}),e()._changeSelectedWalletIfNeededOnRemove(o,{namespaces:n});let a=e().connectedWallets.filter(s=>s.namespace?!(s.walletType===o&&n.includes(s.namespace)):!0);t({connectedWallets:a})}},disconnectWallet:o=>{let n=e().connectedWallets.find(r=>r.walletType===o);if(Te.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0)return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await pt().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(d=>{if(d.failed)return;let g={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};fs(g,d,l);let{_balances:h,_aggregatedBalances:f}=ys(g,r,{chains:[d.blockChain]});if(p=f,l=h,!e().connectedWallets.find(S=>S.walletType===r&&S.address===d.address&&S.chain===d.blockChain))return;let m=gs(d,e);p=hs(p,m),l={...l,...m}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let d=c.filter(g=>g.failed).map(g=>({chain:g.blockChain,walletType:r,address:g.address}));d.length>0&&await e().fetchMainTokensBalances(d,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=Qt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let l=a[0];return n[l]}let c=n[a[0]];return a.forEach(l=>{let p=n[l],u=new Ss(p.amount),d=new Ss(c.amount);u.isGreaterThan(d)&&(c=p)}),c},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(bo);return p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>rk(()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,c)=>{let l=r[c],p=Fn(c);if(p.blockchain===n.chain){let u=e().findToken(p),d=l.amount?new Ss(l.amount).shiftedBy(-l.decimals):pe;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:d.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function $u(t){return ik()(ak((...e)=>({...Du(...e),...Nu(...e),...Lu(...e),...Up(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i($u,"createAppStore");var Fu=lk(null);function k(){let t=ck(Fu);if(pk(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(k,"useAppStore");function Ou(t){let e=uk();return e.current||(e.current=$u(t.config)),sk.createElement(Fu.Provider,{value:e.current},t.children)}i(Ou,"AppStoreProvider");function vt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=k(),{state:r,getWalletInfo:a}=dk(),s=k().blockchains(),{handleDisconnect:c}=Vo(),l=Dp(n()),p=du(r,a,l,e);p=mk()?p.filter(m=>m.showOnMobile!==!1&&r(m.type).installed):p;let u=gu(p,r),d=i(m=>!o.find(S=>S.walletType===m&&S.chain===e),"isExperimentalChainNotAdded"),g=gk(()=>{let m=p?.filter(S=>S.state===Cs.CONNECTING)||[];for(let S of m)c(S)},[Su(p)]);hk(()=>()=>{g()},[]);let h=i(m=>{let S=m.find(C=>C.type===On.DEFAULT);return!S||S.state===Cs.NOT_INSTALLED?!1:m.filter(C=>C.state!=Cs.NOT_INSTALLED&&![On.DEFAULT,On.WALLET_CONNECT_2,On.LEDGER].includes(C.type)&&a(C.type).supportedChains.filter(T=>T.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),f=i((m,S,y)=>Rr(y,S)&&d(m)&&!fk.includes(m)||m==On.DEFAULT&&!h(p),"shouldExcludeWallet");return{list:u.filter(m=>!f(m.type,e??"",s)),terminateConnectingWallets:g}}i(vt,"useWalletList");import{Modal as kk}from"@rango-dev/ui";import Tk from"react";import{create as Ck}from"zustand";var Uu="rango-widget";var Un=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(Uu),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var Sk=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),on=Sk;var oe=on(Ck()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),Ao=new Un({onInit:()=>oe.setState({tabManagerInitiated:!0}),onClaim:()=>oe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>oe.setState({isActiveTab:!1})});function R(t){let{watermark:e}=oe();return Tk.createElement(kk,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as an}from"@lingui/core";import{Alert as _k,Button as Dk,Divider as mi,Image as $k,MessageBox as Fk,RadioRoot as Ok}from"@rango-dev/ui";import ue,{useEffect as Uk,useMemo as zk,useState as qk}from"react";import{i18n as xk}from"@lingui/core";import{Typography as ju}from"@rango-dev/ui";import nn from"react";function ai(t,e){return t.find(o=>o.name===e)?.logo}i(ai,"getBlockchainLogo");import{darkTheme as wk,Image as vk,styled as Ht,Typography as bk}from"@rango-dev/ui";var si=Ht("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${wk} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),li=Ht("div",{display:"flex",gap:"$8",alignItems:"center"}),qu=Ht("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Qu=Ht("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Hu=Ht("div",{display:"flex",gap:"$6",alignItems:"center"}),Gu=Ht("div",{paddingLeft:"48px"}),Vu=Ht("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),Ku=Ht(bk,{maxWidth:"100px"}),ci=Ht(vk,{variants:{disabled:{true:{opacity:"0.5"}}}});function pi(t){let{namespace:e}=t,o=k().blockchains();return nn.createElement(si,{unsupported:!0},nn.createElement(li,null,nn.createElement(ci,{src:ai(o,e.id),size:40,disabled:!0}),nn.createElement(Qu,null,nn.createElement(ju,{variant:"label",size:"large"},e.label),nn.createElement(ju,{variant:"body",size:"xsmall"},xk.t("(Currently not supported)")))))}i(pi,"NamespaceUnsupportedItem");import{Checkbox as Lk,Radio as Mk}from"@rango-dev/ui";import vs from"react";import{i18n as ws}from"@lingui/core";import{ChevronDownIcon as Ik,ChevronUpIcon as Ak,Divider as Nk,Typography as zn}from"@rango-dev/ui";import Ae,{useEffect as Bk,useState as Wk}from"react";import{Image as Yu,Tooltip as Zu,Typography as Ek}from"@rango-dev/ui";import Lt from"react";import{styled as Xu}from"@rango-dev/ui";var ks=Xu("div",{display:"flex",alignItems:"center",padding:0,margin:0}),ui=Xu("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var Ts=3;function Ju(t){let{chains:e}=t;return Lt.createElement(ks,{id:"widget-supported-chains-container"},e.slice(0,Ts).map((o,n)=>Lt.createElement(Zu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Lt.createElement(ui,{firstItem:n===0},Lt.createElement(Yu,{src:o.logo,size:15})))),e.length>Ts&&Lt.createElement(Zu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Lt.createElement(ks,null,e.map((o,n)=>Lt.createElement(ui,{key:o.name,firstItem:n===0},Lt.createElement(Yu,{src:o.logo,size:15}))))},Lt.createElement(ui,null,Lt.createElement(Ek,{variant:"body",size:"xsmall"},"+",e.length-Ts))))}i(Ju,"SupportedChainsList");function No(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=Wk(!1),p=k().blockchains();Bk(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!o&&!r&&u.length>1;return Ae.createElement(si,{hasError:!!o,clickable:!!s,onClick:s},Ae.createElement(li,null,Ae.createElement(ci,{src:ai(p,e.id),size:40}),Ae.createElement(qu,{showSupportedChains:d||r||!!o},Ae.createElement(Hu,null,Ae.createElement(zn,{variant:"label",size:"large"},e.label),r&&Ae.createElement(zn,{variant:"body",size:"small",color:"success500"},ws.t("Connected")),!!o&&Ae.createElement(zn,{variant:"body",size:"small",color:"error500"},ws.t("Connection failed"))),d&&Ae.createElement(Ju,{chains:u}),r&&Ae.createElement(Ku,{variant:"body",size:"small",color:"neutral700"},a),o&&Ae.createElement(Vu,{onClick:()=>l(g=>!g)},Ae.createElement(zn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},ws.t("See why")),c?Ae.createElement(Ak,{size:12,color:"gray"}):Ae.createElement(Ik,{size:12,color:"gray"}))),n),!!o&&c&&Ae.createElement(Ae.Fragment,null,Ae.createElement(Nk,{size:4}),Ae.createElement(Gu,null,Ae.createElement(zn,{variant:"body",size:"small",color:"neutral700"},o))))}i(No,"NamespaceItem");function Ru(t){let{onClick:e,type:o,namespace:n}=t;return vs.createElement(No,{namespace:n,onClick:e,suffix:o==="radio"?vs.createElement(Mk,{value:n.value}):vs.createElement(Lk,{checked:t.value})})}i(Ru,"NamespaceListItem");import{Button as Pk,styled as ed}from"@rango-dev/ui";var di=ed("ul",{padding:0,paddingTop:"$16",paddingBottom:"$20",margin:0}),rn=ed(Pk,{minHeight:"$40"});function qn(t){let{targetWallet:e}=t.value,o=e.properties?.find(m=>m.name==="namespaces"),n=e.isHub,r=e.isHub?o?.value.selection==="single":e.needsNamespace?.selection==="single",a=n?o?.value:e.needsNamespace,s=e.image,c=k().blockchains(),[l,p]=qk([]),u=zk(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:S=>S.includes(m)?S.filter(y=>y!==m):S.concat(m))},"onSelect"),g=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");g?p([]):u&&p(u.map(m=>m.value))},"onSelectAll"),f=i(m=>r?ue.createElement(Ok,{value:l?.[0]},m):ue.createElement(ue.Fragment,null,m),"wrapRadioRoot");return Uk(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(S=>S.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(m.map(S=>S.value))}else p(u.map(m=>m.value))},[]),ue.createElement(ue.Fragment,null,ue.createElement(Fk,{type:"info",title:an.t("Connect {wallet}",{wallet:e.title}),description:an.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:ue.createElement($k,{src:s,size:45})}),r?ue.createElement(ue.Fragment,null,ue.createElement(mi,{size:20}),ue.createElement(_k,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:an.t("This wallet can only connect to one chain at a time. ")})):ue.createElement(ue.Fragment,null,ue.createElement(mi,{size:30}),ue.createElement(Dk,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},g?an.t("Deselect all"):an.t("Select all"))),ue.createElement(di,null,f(ue.createElement(ue.Fragment,null,a?.data.map((m,S,y)=>ue.createElement(ue.Fragment,{key:m.id},m.unsupported?ue.createElement(pi,{namespace:m}):ue.createElement(Ru,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),S!==y.length-1&&ue.createElement(mi,{size:10})))))),ue.createElement(mi,{size:20}),ue.createElement(rn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},an.t("Connect")))}i(qn,"Namespaces");import{i18n as fi}from"@lingui/core";import{Button as Yk,Divider as Es,Image as Zk,MessageBox as Jk}from"@rango-dev/ui";import{useWallets as Rk}from"@rango-dev/wallets-react";import Xe from"react";import{styled as Qk}from"@rango-dev/ui";var td=Qk("div",{display:"flex",justifyContent:"end"});import{i18n as bs}from"@lingui/core";import{Button as Hk,Spinner as Gk}from"@rango-dev/ui";import{useWallets as Vk}from"@rango-dev/wallets-react";import xs,{useLayoutEffect as Kk,useRef as jk,useState as Xk}from"react";var od=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,{connect:a,disconnect:s,state:c}=Vk(),[l,p]=Xk(null),d=c(o).namespaces?.get(n.value),g=d.accounts?.[0]?.split(":"),h=jk(!1);Kk(()=>{r&&!h.current&&f(o,n.value)},[]);let f=i(async(y,C)=>{try{h.current=!0,await a(y,[{namespace:C,network:""}])}catch(T){p(T)}finally{h.current=!1}},"handleConnectNamespace"),m=i(async y=>{p(null),y.connected?await s(o,[n.value]):f(o,n.value)},"handleButtonClick"),S=i(()=>d.connected?bs.t("Disconnect"):l?bs.t("Try again"):bs.t("Connect"),"getButtonText");return xs.createElement(No,{namespace:n,connected:d.connected,error:l?.message,address:d.connected?ro(g?.[g?.length-1]):"",suffix:d.connecting?xs.createElement(Gk,{color:"info"}):xs.createElement(Hk,{id:"widget-name-space-connect-btn",variant:"ghost",type:d.connected?"error":"primary",size:"xsmall",onClick:async()=>m(d)},S())})},"NamespaceDetachedItem");function Qn(t){let{selectedNamespaces:e,value:o,onDisconnectWallet:n}=t,{targetWallet:r}=o,{state:a}=Rk(),s=a(r.type);return Xe.createElement(Xe.Fragment,null,Xe.createElement(Jk,{type:"info",title:fi.t("Connect {wallet}",{wallet:r.type}),description:fi.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:Xe.createElement(Zk,{src:r.image,size:45})}),Xe.createElement(Es,{size:30}),Xe.createElement(td,null,Xe.createElement(Yk,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:s.connecting||!s.connected,onClick:n},fi.t("Disconnect wallet"))),Xe.createElement(di,{id:"widget-detached-namespace-list",as:"ul"},r.needsNamespace?.data.map((c,l,p)=>Xe.createElement(Xe.Fragment,{key:c.id},c.unsupported?Xe.createElement(pi,{namespace:c}):Xe.createElement(od,{walletType:r.type,namespace:c,initialConnect:e?.includes(c.value)}),l!==p.length-1&&Xe.createElement(Es,{size:10})))),Xe.createElement(Es,{size:20}),Xe.createElement(rn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},fi.t("Done")))}i(Qn,"Detached");import{i18n as sn}from"@lingui/core";import{Divider as rd,Image as nT,MessageBox as rT,Select as iT,TextField as aT}from"@rango-dev/ui";import St,{useEffect as sT,useState as id}from"react";import{namespaces as eT}from"@rango-dev/wallets-shared";var gi={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Is(t){let e=t?eT[t].derivationPaths:null;return e?[...e,gi]:[]}i(Is,"getDerivationPaths");import{Button as tT,styled as As,Typography as oT}from"@rango-dev/ui";var nd=As("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ns=As(oT,{paddingLeft:"$10"}),Bs={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},xP=As(tT,{minHeight:"$40"});var ad="0";function Hn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=id(null),[c,l]=id(ad),p=a===gi.id,u=Is(o),d=i(({value:h})=>{let f=u?.find(m=>m.id===h);f&&(a===gi.id&&Number.isNaN(Number(c))&&l(ad),s(f.id))},"handleDerivationPathItemClick"),g=i(()=>{let h=u.find(f=>f.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return sT(()=>{s(Is(o)[0]?.id||null)},[o]),St.createElement(St.Fragment,null,St.createElement(rd,{size:20}),St.createElement(rT,{type:"info",title:sn.t("Select Derivation Path"),description:sn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:St.createElement(nT,{src:n,size:45})}),St.createElement(nd,null,St.createElement(Ns,{variant:"body",size:"xsmall",color:"$neutral600"},sn.t("Choose Derivation Path Template")),St.createElement(iT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:Bs}}),St.createElement(rd,{size:20}),St.createElement(Ns,{variant:"body",size:"xsmall",color:"$neutral600"},p?sn.t("Enter Path"):sn.t("Enter Index")),St.createElement(aT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Bs})),St.createElement(rn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:g,disabled:!u||!a||!c},sn.t("Confirm")))}i(Hn,"DerivationPath");import{i18n as ln}from"@lingui/core";import{Image as pT,MessageBox as Ws,WalletState as uT}from"@rango-dev/ui";import{useWallets as dT}from"@rango-dev/wallets-react";import Bo from"react";import{keyframes as lT,styled as hi}from"@rango-dev/ui";var DP=hi("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),sd=hi("div",{position:"relative"}),cT=lT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),ld=hi("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${cT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),cd=hi("div",{"& img":{borderRadius:"50%"}});function Ls(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=dT();return Pn(a(n))===uT.CONNECTED?Bo.createElement(Ws,{type:"success",title:ln.t("Wallet Connected"),description:ln.t("Your wallet is connected, you can use it to swap.")}):o?Bo.createElement(Ws,{type:"error",title:ln.t("Failed to Connect"),description:o||ln.t("Your wallet is not connected. Please try again.")}):Bo.createElement(Ws,{type:"loading",title:ln.t("Connecting to your wallet"),description:ln.t("Click connect in your wallet popup."),icon:Bo.createElement(sd,null,Bo.createElement(cd,null,Bo.createElement(pT,{src:r,size:45})),Bo.createElement(ld,null))})}i(Ls,"ConnectStatus");import{i18n as Ms}from"@lingui/core";import{Button as mT,Divider as pd,MessageBox as fT}from"@rango-dev/ui";import yi from"react";function Ps(t){let{displayName:e,onConfirm:o,id:n}=t;return yi.createElement(fT,{id:n,title:Ms.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Ms.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},yi.createElement(pd,{size:18}),yi.createElement(pd,{size:32}),yi.createElement(mT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Ms.t("Confirm")))}i(Ps,"ExperimentalChain");function ud(t,e){return t().status==="init"&&!!e}i(ud,"isOnStatus");function Gn(t){return t().status==="namespace"}i(Gn,"isOnNamespace");function Vn(t){return t().status==="derivationPath"}i(Vn,"isOnDerivationPath");function wo(t){return t().status==="detached"}i(wo,"isOnDetached");var ST=3e3,CT=300;function Kn(t){let e=yT(),[o,n]=dd(!1),[r,a]=dd(),s=i(w=>{a(w.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=vt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:g,handleDisconnect:h}=Vo(),f=i(w=>{u(t.wallet,w).then(T).catch(s)},"handleConfirmNamespaces"),m=i(()=>{y()},"handleDetachedConfirm"),S=i(w=>{if(!w)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(w).then(T).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),g(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),T=i((w,x)=>{let A=w.status==="connected",I=["disconnected","disconnected-unhandled"].includes(w.status);A?(t.onConnect?.(),x||(e.current=setTimeout(y,ST))):I&&y()},"afterConnected");return hT(()=>{if(t.wallet){C();let w=!1,x=!0;i(()=>{setTimeout(()=>{x=!1,w||n(!0)},CT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(I=>{["namespace","Detached","derivation-path"].includes(I.status)||(w=!0),T(I,x)}).catch(s)}},[t.wallet]),io.createElement(R,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},ud(d,t.wallet)&&io.createElement(io.Fragment,null,io.createElement(Ls,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),io.createElement(gT,{direction:"vertical",size:32})),Gn(d)&&io.createElement(qn,{onConfirm:f,value:d().namespace}),Vn(d)&&io.createElement(Hn,{onConfirm:S,value:d().derivationPath}),wo(d)&&io.createElement(Qn,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces}))}i(Kn,"StatefulConnectModal");import{Provider as bT}from"@rango-dev/wallets-react";import Si,{createContext as xT,useEffect as yd,useMemo as ET,useRef as Sd}from"react";import{useEffect as kT}from"react";function md(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(md,"hashProviders");function _s(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=k(),a=n();return kT(()=>{o(),r()},[md(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(_s,"useWalletProviders");import{legacyFormatAddressWithNetwork as TT,legacyReadAccountAddress as fd}from"@rango-dev/wallets-core/legacy";import{Events as cn}from"@rango-dev/wallets-react";import{isEvmBlockchain as wT}from"rango-sdk";function gd(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=k(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(wT).map(m=>m.name),u=i((m,S)=>{let[y,,C,T,w]=m,x={walletType:y,network:T.network??void 0,accounts:C};c.current?c.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let A=rs(y,C,p,S.supportedChainNames,w.isContractWallet);A.length&&e(A,w.namespace,T.derivationPath)},"onAccountsEvent"),d=i((m,S,y,C,T)=>{if(S===cn.ACCOUNTS){let w=_n(T.supportedBlockchains);y&&u([m,S,y,C,T],{supportedChainNames:w})}S===cn.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),S===cn.NAMESPACE_DISCONNECTED&&n(m,y)},"handleUpdatesForHub"),g=i((m,S,y,C,T)=>{if(S===cn.ACCOUNTS){let w=_n(T.supportedBlockchains),x=[],A=[];if(y?.forEach(E=>{let{network:v}=fd(E);p.includes(v)?x.push(E):A.push(E)}),r.filter(E=>E.walletType===m).map(E=>TT(E.address,E.chain)).length>0){if(x.length>0){let E=rs(m,x,p,w,T.isContractWallet);a(m,{chains:E.map(v=>v.chain)})}A.length>0&&a(m,{chains:A.map(E=>{let{network:v}=fd(E);return v})})}y?u([m,S,y,C,T],{supportedChainNames:w}):(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((m,S,y,C,T)=>{if(S===cn.CONNECTED&&y){let w={walletType:m,network:C.network??void 0,accounts:C.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(S===cn.NETWORK&&y){let w={walletType:m,network:y,accounts:C.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((m,S,y,C,T)=>{T.isHub?d(m,S,y,C,T):g(m,S,y,C,T),h(m,S,y,C,T)},"handler")}}i(gd,"useUpdates");import{LegacyEvents as vT}from"@rango-dev/wallets-core/legacy";function hd(t,e){let[o,n,r,a,s]=e;n!==vT.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(hd,"propagateEvents");var Ci=xT({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function IT(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=k(),a=k().blockchains(),s=k().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=_s(s.wallets,c),p=Sd(),u=Sd(),{handler:d}=gd({onConnectWalletHandler:p,onDisconnectWalletHandler:u});yd(()=>{n().catch(console.log)},[]),yd(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let g=oe.use.isActiveTab(),h=ET(()=>({onConnectWallet:f=>{p.current=f},onDisconnectWallet:f=>{u.current=f}}),[]);return Si.createElement(Ci.Provider,{value:h},Si.createElement(bT,{allBlockChains:a,providers:l,onUpdateState:(f,m,S,y,C)=>{let T=[f,m,S,y,C];d(...T),t.onUpdateState&&hd(t.onUpdateState,T)},autoConnect:!!g,configs:{wallets:s.wallets}},t.children))}i(IT,"Main");function ki(t){let{config:e,...o}=t;return Si.createElement(Ou,{config:e},Si.createElement(IT,{...o,config:e}))}i(ki,"WidgetWallets");import Ga from"react";import AT,{Fragment as NT}from"react";import{MemoryRouter as BT,useInRouterContext as WT}from"react-router";function Cd({children:t}){let o=WT()?NT:BT;return AT.createElement(o,null,t)}i(Cd,"AppRouter");import{I18nManager as S0}from"@rango-dev/ui";import wp from"react";import qe from"react";import{useRoutes as i0}from"react-router-dom";var F={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as un,useRef as Ii}from"react";import rt from"bignumber.js";import{create as _T}from"zustand";import{subscribeWithSelector as DT}from"zustand/middleware";import{i18n as kt}from"@lingui/core";import{getRelatedWalletOrNull as PT,RouteEventType as ED}from"@rango-dev/queue-manager-rango-preset";import Ge from"bignumber.js";import{PendingSwapNetworkStatus as Xn}from"rango-types";import{i18n as He}from"@lingui/core";var ne=i(()=>({genericServerError:He.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:He.t("Please reset your liquidity sources."),description:He.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:He.t("No Routes Found."),description:He.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:He.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:He.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:He.t("High Price Impact"),title:He.t("Price impact is too high!"),description:He.t("The price impact is significantly higher than the allowed amount."),confirmMessage:He.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:He.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:He.t("USD Price Unknown"),title:He.t("USD Price Unknown, Cannot calculate Price Impact."),description:He.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:He.t("Confirm USD Price Unknown")}}),"errorMessages");function kd(t){return t.type===0?t.diagnosisMessage??ne().noResultError.title:t.type===1?t.diagnosisMessage??ne().genericServerError:""}i(kd,"getQuoteErrorMessage");import{i18n as Ti}from"@lingui/core";var Wo=i(()=>({connectWallet:Ti.t("Connect Wallet"),swap:Ti.t("Swap"),swapAnyway:Ti.t("Swap anyway"),ethWarning:Ti.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ds(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Ds,"getFeeLabel");var $s=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Td=100,wd=30,vd=15,bd=60;var xd=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Ed=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as MT}from"@rango-dev/queue-manager-rango-preset";import dD from"bignumber.js";function Ad(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(Ad,"getRequiredBalanceOfWallet");function Vt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Vt,"getPriceImpactLevel");function wi(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=MT(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=vo(a?a.toBlockchain:n.fromBlockchain,e),l=vo(r.toBlockchain,e),p=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:d}}i(wi,"createRetryQuote");function pn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=jn(o),s=Ct(o);if(o&&a&&s){let p=Gt(a.toString(),s.toString());if(!!p&&Md(a,p)){let d=bi(o?.swaps,n),g=Vt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:g}}}if(e&&Dd(e,o))return{type:4,usdValueChange:_(Ct(o)?.minus(Ct(e)??0).toString()??"0",null,2),percentageChange:_(Gt(Ct(e)??"1",Ct(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=xi(o.swaps),l=r>Zo;if(_d(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Pd(o,r),minRequiredSlippage:c};return null}i(pn,"generateQuoteWarnings");function Nd(t){return![4].includes(t.type)}i(Nd,"isQuoteWarningConfirmationRequired");function Gt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Fs(t.toString(),e.toString());return n&&n<0?n:null}i(Gt,"getPriceImpact");var Bd=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),vi=i((t,e)=>e.sort((o,n)=>{let r=i(p=>p.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),Wd=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(c=>c.swapperId));return Array.from(n).every(c=>s.has(c))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),Ld=i(t=>{let e=i((o,n)=>{let r=$s.indexOf(o.value),a=$s.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Md(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return xd.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ge(r)))}i(Md,"hasHighValueLoss");function $d(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i($d,"hasLimitError");function Fd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new Ge(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new Ge(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0],o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=kt.t({id:"Required: >= {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=kt.t({id:"Required: > {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=kt.t({id:"Required: <= {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=kt.t({id:"Required: < {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Fd,"getLimitErrorMessage");function Od(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Wo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Wo().swap,action:"confirm-swap",disabled:!0}:s?{title:Wo().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Wo().ethWarning,action:"confirm-warning",disabled:!1}:{title:Wo().swap,action:"confirm-swap",disabled:!1}:{title:Wo().connectWallet,action:"connect-wallet",disabled:!1}}i(Od,"getSwapButtonState");function Os(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(pe))&&e&&e!=="0"&&n!==0)}i(Os,"canComputePriceImpact");function Us(t,e){let o=pe;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ge(r.amount).multipliedBy(a||0))}return o}i(Us,"getUsdFeeOfStep");function bi(t,e){return t.reduce((o,n)=>o.plus(Us(n,e)),pe)}i(bi,"getTotalFeeInUsd");function zs(t){let e=pe,o=new Ge(t.price||0);return e=e.plus(new Ge(t.amount).multipliedBy(o)),e}i(zs,"getUsdFee");function Ud(t){return t.reduce((e,o)=>e.plus(zs(o)),pe)}i(Ud,"getTotalFeesInUsd");function zd(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(zd,"getFeesGroup");function qd(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?Object.fromEntries(e):null}i(qd,"checkSlippageErrors");function Pd(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?Object.fromEntries(o):null}i(Pd,"checkSlippageWarnings");function xi(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(xi,"getMinRequiredSlippage");function _d(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(_d,"hasProperSlippage");function Qd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:d,affiliateWallets:g,destination:h,contractCall:f}=t,m=a?.reduce((C,T)=>(C[T.chain]=T.address,C),{}),S=[];return r?.forEach(C=>{S.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??void 0,affiliateWallets:g??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:m??{},slippage:p.toString(),contractCall:f,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1}}}i(Qd,"createQuoteRequestBody");function Hd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Hd,"getWalletsForNewSwap");function jn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}i(jn,"getUsdInputFrom");function Ct(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}i(Ct,"getUsdOutputFrom");function Fs(t,e){return new Ge(e).div(new Ge(t)).minus(1).multipliedBy(Td).toNumber()}i(Fs,"getPercentageChange");function Dd(t,e){let o=jn(t),n=Ct(t),r=Ct(e);if(!o||!n||!r)return!1;let a=Fs(n.toString(),r.toString());return Ed.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Dd,"isOutputAmountChangedExcessively");function Gd(t,e,o){let n=t.validationStatus,r=Eo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>Ad(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=_(new Ge(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=_(new Ge(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=kt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=kt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=kt.t(" for input and network fee")),kt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:ht(s.asset.blockchain,o)}})})}i(Gd,"generateBalanceWarnings");function Yn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Xn.NetworkChanged}i(Yn,"isNetworkStatusInWarningState");function Vd(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),Yn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?PT(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case Xn.WaitingForConnectingWallet:r=u?kt.t("Connect {wallet}",{wallet:u}):r;break;case Xn.WaitingForQueue:r=r||kt.t("Waiting for other running tasks to be finished");break;case Xn.WaitingForNetworkChange:r=r||kt.t("Waiting for changing wallet network");break;case Xn.NetworkChangeFailed:r=r||kt.t("The network switch could not be completed. Please try again, or switch the network manually in your wallet.");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(Vd,"getSwapMessages");function Kd(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(Kd,"getLastConvertedTokenInFailedSwap");function jd(t){return t.status==="failed"}i(jd,"shouldRetrySwap");function Xd(t,e,o,n,r,a){if(!n||t)return!0;let s=Eo({filter:"all",quote:n}),c=Eo({filter:"required",quote:n}),l=s.every(d=>r.some(g=>g.chain===d)),p=c.every(d=>r.some(g=>g.chain===d)),u=o&&a?jo(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Xd,"isConfirmSwapDisabled");function Yd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Yd,"isTokensIdentical");var Ei=i((t,e)=>t?.usdPrice?new rt(e||pe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=on(_T()(DT(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new rt(0),outputUsdValue:new rt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=pe,a=o.inputUsdValue;return Mn(o.inputAmount)?(e&&(n=e?.outputAmount?new rt(e?.outputAmount):null,a=jn(e)??pe,r=Ct(e)??pe),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new rt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new rt(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new rt(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:Ei(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new rt(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),sanitizeInputAmount:e=>{let o=pu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;Xr(e)||(o=ou(o),o=nu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new rt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Ei(n.fromToken,o)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:Ei(n??null,s),outputUsdValue:new rt(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?Ei(e.toToken,e.outputAmount?.toString()||""):new rt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new rt(0),inputUsdValue:new rt(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new rt(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),Zd=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Te.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&Te.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function Jd(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=O(),u=k().config,d=k().fetchStatus,g=k().blockchains(),{findToken:h}=k(),{setAffiliateRef:f,setAffiliatePercent:m,setAffiliateWallets:S}=k(),y=u?.from?.tokens,C=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,x=Ii(void 0),A=Ii(void 0),I=Ii(void 0),E=Ii(void 0);un(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),un(()=>{if(d==="success"){r();let v=g.find(L=>L.name===u?.from?.blockchain),b=u?.from?.token,B=b&&h(b);(v||!v&&I.current)&&n(v??null),B?a({token:B,meta:{blockchains:g}}):!B&&x.current&&a({token:null}),I.current=u?.from?.blockchain,x.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),un(()=>{ls(s,y)&&a({token:null}),cs(l,C)&&n(null)},[y,C]),un(()=>{ls(c,T)&&a({token:null}),cs(p,w)&&o(null)},[T,w]),un(()=>{if(d==="success"){r();let v=g.find(L=>L.name===u?.to?.blockchain),b=u?.to?.token,B=b&&h(b);(v||!v&&E.current)&&o(v??null),B?e({token:B,meta:{blockchains:g}}):!B&&A.current&&e({token:null}),E.current=u?.to?.blockchain,A.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,d]),un(()=>{f(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),S(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Jd,"useSyncStoresWithConfig");import{useEffect as Hs,useRef as $T}from"react";import{useInRouterContext as FT,useLocation as OT,useSearchParams as UT}from"react-router-dom";function qs(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(qs,"convertTokenSearchParamToAsset");function Qs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Qs,"tokenToSearchParam");function Vs(){let t=OT(),[e,o]=UT(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:g}=O(),h=k().fetchStatus,f=k().blockchains(),m=FT(),{updateIframe:S,updateCampaignMode:y}=k(),C=k().isInCampaignMode(),T=$T(),{findToken:w}=k(),x=i(()=>{let I={};for(let[M,te]of e.entries())M.startsWith("utm_")&&(I[M]=te);let E=e.get("fromAmount"),v=e.get("fromBlockchain"),b=e.get("fromToken"),B=e.get("toBlockchain"),L=e.get("toToken"),D=e.get("autoConnect"),q=e.get("clientUrl"),J=e.get("liquiditySources"),G=e.get("blockchain");return{fromAmount:E,fromBlockchain:v,fromToken:b,toBlockchain:B,toToken:L,autoConnect:D,clientUrl:q,liquiditySources:J,utmQueryParams:I,blockchain:G}},"getUrlSearchParams"),A=i(I=>{for(let E in I)I[E]||delete I[E];o(I,{replace:!0})},"updateUrlSearchParams");Hs(()=>{let{autoConnect:I,clientUrl:E,utmQueryParams:v,blockchain:b}=x();m&&h==="success"&&A({fromBlockchain:n?.name,fromToken:Qs(a),toBlockchain:r?.name,toToken:Qs(s),fromAmount:c,autoConnect:I??void 0,clientUrl:E??void 0,blockchain:b??void 0,liquiditySources:C?T.current:void 0,...v})},[t.pathname,c,n,a,r,s,C,h]),Hs(()=>{if(!m)return;let I=x();if(!T.current&&I.liquiditySources&&(T.current=I.liquiditySources),I.fromAmount&&g(I.fromAmount),h==="success"){let E=f.find(L=>L.name===I.fromBlockchain),v=I.fromToken&&E?w(qs(I.fromToken,E)):void 0,b=f.find(L=>L.name===I.toBlockchain),B=I.toToken&&b?w(qs(I.toToken,b)):void 0;E&&(l(E),v&&u({token:v,meta:{blockchains:f}})),b&&(p(b),B&&d({token:B,meta:{blockchains:f}}))}},[h]),Hs(()=>{let{clientUrl:I,liquiditySources:E}=x();S("clientUrl",I||void 0),y("liquiditySources",E?.split(",")??void 0)},[])}i(Vs,"useSyncUrlAndStore");import{i18n as hn}from"@lingui/core";import{Alert as sv,Button as lv,darkTheme as cv,Divider as vl,DoneIcon as pv,styled as uv,TextField as dv,Typography as mv}from"@rango-dev/ui";import Ke,{useState as fv}from"react";import{useNavigate as gv,useSearchParams as hv}from"react-router-dom";import{ChevronRightIcon as zT,Divider as nm,Image as qT,Typography as rm}from"@rango-dev/ui";import bt from"react";import{darkTheme as Rd,styled as Ks}from"@rango-dev/ui";var em=Ks("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Rd} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Rd} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),tm=Ks("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),om=Ks("div",{display:"flex"});function js(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return bt.createElement(tm,null,bt.createElement(rm,{size:"large",variant:"label"},n),bt.createElement(nm,{size:10}),bt.createElement(em,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},bt.createElement(om,null,r&&bt.createElement(bt.Fragment,null,bt.createElement(qT,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),bt.createElement(nm,{size:4,direction:"horizontal"})),bt.createElement(rm,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),bt.createElement(zT,{size:12,color:"black"})))}i(js,"BlockchainSelectorButton");import{i18n as Rs}from"@lingui/core";import{Button as VT,Divider as lm,MessageBox as KT}from"@rango-dev/ui";import ao,{useEffect as cm,useState as el}from"react";import{i18n as Ai}from"@lingui/core";import{Divider as Lo,ExternalLinkIcon as HT,Image as GT,Typography as mn}from"@rango-dev/ui";import we from"react";var im="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function am(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(am,"generateExplorerLink");import{Button as QT,darkTheme as dn,styled as Xs}from"@rango-dev/ui";var Ys=Xs("a",{textDecoration:"none",color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${dn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${dn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),sm=Xs("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${dn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"}}}),Zs=Xs(QT,{minHeight:"$40"});function Js(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=am(n.address,s),l=i(()=>window.open(im,"_blank"),"onClickLearnMore");return we.createElement(R,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},we.createElement(sm,null,we.createElement(GT,{src:n.image===""?Hr:n.image,size:45,type:"circular"}),we.createElement(Lo,{size:4}),we.createElement(mn,{variant:"title",size:"medium"},n.symbol),we.createElement(mn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),we.createElement(Lo,{size:4}),we.createElement(mn,{variant:"body",size:"medium"},c?we.createElement(Ys,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,we.createElement(HT,{size:12,color:"gray"})):we.createElement(Ys,null,n.address)),we.createElement(Lo,{size:4}),n.coinSource&&we.createElement(mn,{className:"_coin-source",variant:"body",size:"xsmall"},Ai.t("via")," ",we.createElement(mn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),we.createElement(Lo,{size:"32"}),we.createElement(mn,{size:"medium",variant:"body",className:"_custom-token-description"},Ai.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),we.createElement(Lo,{size:40}),we.createElement(Lo,{size:10}),we.createElement(Zs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Ai.t("Import Anyway")),we.createElement(Lo,{size:10}),we.createElement(Zs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Ai.t("Learn More")))}i(Js,"CustomTokenModal");function Zn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=k(),[d,g]=el(!1),[h,f]=el(!1),[m,S]=el(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),g(!1)},"closeErrorModal"),T=i(()=>{S(!0),C()},"handleErrorModalButtonClick"),w=i(()=>{m&&n?.type==="network-error"&&(S(!1),y()),l()},"handleExit"),x=i(()=>{e&&(u(e),c())},"handleSubmit");return cm(()=>{n&&g(!0)},[n]),cm(()=>{o&&e&&f(!0)},[o,e]),ao.createElement(ao.Fragment,null,ao.createElement(R,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:C,onExit:w,container:N()},ao.createElement(KT,{title:n?.title??"",type:"error",description:n?.message||Rs.t("Failed Network, Please retry.")},ao.createElement(lm,{size:40}),ao.createElement(lm,{size:10}),ao.createElement(VT,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:T},n?.type==="network-error"?Rs.t("Retry"):Rs.t("Add another custom token")))),o&&e&&ao.createElement(Js,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>f(!1),open:h,onExit:p}))}i(Zn,"ImportCustomToken");import{useManager as tv}from"@rango-dev/queue-manager-react";import{BottomLogo as ov,Divider as zm,Header as nv}from"@rango-dev/ui";import Be,{useEffect as $i,useLayoutEffect as rv,useRef as qm,useState as Qm}from"react";import{useRef as jT}from"react";function Jn(){return window.self!==window.top}i(Jn,"isAppLoadedIntoIframe");function tl(){let t=jT(null),{iframe:e}=k(),o=Jn()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(tl,"useIframe");import{useNavigate as XT}from"react-router-dom";function Ve(){let t=XT();return()=>t(-1)}i(Ve,"useNavigateBack");import{useLayoutEffect as YT,useState as Rn}from"react";var pm=480,um=768,dm=1024,mm=1200,ZT=i(()=>{let[t,e]=Rn(!1),[o,n]=Rn(!1),[r,a]=Rn(!1),[s,c]=Rn(!1),[l,p]=Rn(!1),u=i(()=>{e(window.innerWidth<=pm),n(window.innerWidth>pm&&window.innerWidth<=um),a(window.innerWidth>um&&window.innerWidth<=dm),c(window.innerWidth>dm&&window.innerWidth<=mm),p(window.innerWidth>mm)},"handleResize");return YT(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),fn=ZT;import{createTheme as ll,darkTheme as pw,lightTheme as uw}from"@rango-dev/ui";import{useEffect as dw,useState as mw}from"react";import{theme as lw,darkColors as cw}from"@rango-dev/ui";import al from"react";var Ni=16,Bi=255,fm=.11;function JT(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(JT,"expandShortHexColor");function RT(t,e){return t.padStart(e,"0")}i(RT,"pad");function ol(t){let e=Math.min(Math.max(Math.round(t),0),Bi);return RT(e.toString(Ni),2)}i(ol,"intToHex");function ew(t){return`#${ol(t.red)}${ol(t.green)}${ol(t.blue)}`}i(ew,"rgbToHex");function tw(t){let e=parseInt(t.slice(1,3),Ni),o=parseInt(t.slice(3,5),Ni),n=parseInt(t.slice(5,7),Ni);return{red:e,green:o,blue:n}}i(tw,"hexToRGB");function ow(t,e){let o=1-fm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(ow,"generateShade");function nw(t,e){let o=fm*e;return{red:t.red+(Bi-t.red)*o,green:t.green+(Bi-t.green)*o,blue:t.blue+(Bi-t.blue)*o}}i(nw,"generateTint");function rw(t){return gm(t,ow)}i(rw,"calculateShades");function iw(t){return gm(t,nw)}i(iw,"calculateTints");function gm(t,e){let o=tw(t),n=[];for(let r=1;r<9;r++)n.push(ew(e(o,r)));return n}i(gm,"calculateColors");function nl(t,e,o){let a=iw(t).reverse().concat(t),s=rw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let d=100+(o?p-1-u:u)*50;l[`${e}${d}`]=c[u]}return l}i(nl,"createTintsAndShades");function rl(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!lu(r)){let l=JT(a);Object.assign(n,nl(l,r,s))}}return{...n,...e}}i(rl,"expandToGenerateThemeColors");var hm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),aw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=hm(o%52)+e;return hm(o%52)+e},"toAlphabeticName"),sw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),il=i(t=>aw(sw(5381,JSON.stringify(t))>>>0),"toHash");function sl(t){let e=lw.colors,o={...e,...cw},n,r;if(t?.light){let s={colors:rl(e,t.light)};n={id:`${ss}-light-${il(s)}`,tokens:s}}if(t?.dark){let s={colors:rl(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ss}-dark-${il(s)}`,tokens:s}}return{light:n,dark:r}}i(sl,"customizedThemeTokens");function ym(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>al.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(al.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(al.cloneElement(e,{key:c}))}}),o}i(ym,"joinList");function Sm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Sm,"doesWindowPreferDarkColorScheme");function so(t){let{colors:e,fontFamily:o=Vp,borderRadius:n=wu,secondaryBorderRadius:r=vu}=t,[a,s]=mw(Sm()?"dark":"light"),{theme:c}=k(),{dark:l,light:p}=sl(e),u=ll({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,uw.className],g=[u.className,pw.className];if(p){let f=ll(p.id,p.tokens);d.push(f.className)}if(l){let f=ll(l.id,l.tokens);g.push(f.className)}return dw(()=>{let f=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return Sm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=d.join(" "),m=g.join(" ");return c==="auto"?a==="dark"?m:f:c==="dark"?m:f},"getActiveTheme"),mode:c==="auto"?a:c}}i(so,"useTheme");var Tt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Cm}from"@lingui/core";import{Alert as fw,Button as gw}from"@rango-dev/ui";import km from"react";function cl(t){return km.createElement(fw,{action:km.createElement(gw,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Cm.t("Activate this tab")),type:"warning",variant:"alarm",title:Cm.t("Another tab is open and handles transactions.")})}i(cl,"ActivateTabAlert");import{i18n as pl}from"@lingui/core";import{Button as hw,Divider as yw,MessageBox as Sw}from"@rango-dev/ui";import Wi from"react";function ul(t){let{open:e,onClose:o,onConfirm:n}=t;return Wi.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},Wi.createElement(Sw,{title:pl.t("Activate current tab"),type:"warning",description:pl.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},Wi.createElement(yw,{size:20}),Wi.createElement(hw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},pl.t("Confirm"))))}i(ul,"ActivateTabModal");import{ChevronLeftIcon as Tw}from"@rango-dev/ui";import Am from"react";import{css as Cw,darkTheme as Tm,IconButton as kw,styled as Mo}from"@rango-dev/ui";var Mt=Mo(kw,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Tm} &`]:{backgroundColor:"$neutral"}}}),wm=Mo("div",{position:"absolute",background:"$secondary500",[`.${Tm} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),lo=Mo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),vm=Mo("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),bm=Mo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),xm=Mo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Em=Cw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Im=Mo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function dl(t){return Am.createElement(Mt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Am.createElement(Tw,{color:"black",size:16}))}i(dl,"BackButton");import{i18n as ww}from"@lingui/core";import{Button as vw,Typography as bw}from"@rango-dev/ui";import ml from"react";function fl(t){return ml.createElement(lo,null,ml.createElement(vw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},ml.createElement(bw,{variant:"label",size:"medium",color:"error500"},ww.t("Cancel"))))}i(fl,"CancelButton");import{i18n as xw}from"@lingui/core";import{Image as Ew,Tooltip as Iw,WalletIcon as Aw}from"@rango-dev/ui";import Po from"react";function gl(t){let{list:e}=vt(),o=e.filter(r=>r.state==="connected"),n=o.length?Po.createElement("div",{className:Em()},o.map(r=>Po.createElement(Im,{key:r.title},Po.createElement(Ew,{src:r.image,size:14})))):xw.t("Connect Wallet");return Po.createElement(Iw,{container:t.container,side:"bottom",content:n},Po.createElement(Mt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Po.createElement(wm,null),Po.createElement(Aw,{size:18,color:"black"})))}i(gl,"WalletButton");import{i18n as Mi}from"@lingui/core";import{NotificationsIcon as Hw,Popover as Gw,SettingsIcon as Vw,Tooltip as Pi,TransactionIcon as Kw}from"@rango-dev/ui";import De from"react";import{Notifications as Lw}from"@rango-dev/ui";import Mw from"react";import{useNavigate as Pw}from"react-router-dom";import{create as Nw}from"zustand";import{persist as Bw,subscribeWithSelector as Ww}from"zustand/middleware";var Ne=on(Nw()(Bw(Ww((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function hl(){let t=Pw(),{getNotifications:e,clearNotifications:o}=Ne(),n=e(),r=k().blockchains(),{findToken:a}=k();return Mw.createElement(Lw,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>$p(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${F.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(hl,"NotificationContent");import{useManager as _w}from"@rango-dev/queue-manager-react";import{InProgressIcon as Dw}from"@rango-dev/ui";import Nm from"react";var $w=i(()=>{let{manager:t}=_w();return Tt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Nm.createElement(xm,{id:"widget-header-history-badge-container"},Nm.createElement(Dw,{color:"info",size:6})):null},"InProgressTransactionBadge"),Bm=$w;import{EventSeverity as Fw}from"@rango-dev/queue-manager-rango-preset";import{Typography as Ow}from"@rango-dev/ui";import Wm from"react";function Lm(){let{getNotifications:t}=Ne(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Fw.WARNING);return o?Wm.createElement(vm,{isSever:n},Wm.createElement(Ow,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Lm,"NotificationsBadge");import{RefreshProgressButton as Uw}from"@rango-dev/ui";import yl,{useEffect as zw,useState as Mm}from"react";var qw=1e3,Pm=60,Qw=100;function Li({onClick:t}){let[e,o]=Mm(0),[n,r]=Mm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");zw(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===Pm&&c()},qw):s(l),document.addEventListener("visibilitychange",()=>a(l)),()=>{document.removeEventListener("visibilitychange",()=>a(l)),l&&clearInterval(l)}},[e,t]);let s=i(l=>{l&&clearInterval(l),o(0)},"clearTimeout"),c=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return yl.createElement(Mt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},yl.createElement(bm,{onTransitionEnd:()=>r(!1),isRefetched:n},yl.createElement(Uw,{size:22,color:t?"black":"gray",progress:e/Pm*Qw})))}i(Li,"RefreshButton");function _o(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=k(),c=nt("notification",s)||r.includes("notifications");return De.createElement(De.Fragment,null,!r.includes("refresh")&&De.createElement(Pi,{container:a||N(),side:"top",content:Mi.t("Refresh")},De.createElement(Li,{onClick:e})),!c&&De.createElement(Gw,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:De.createElement(hl,null)},De.createElement("div",null,De.createElement(Pi,{container:N(),side:"top",content:Mi.t("Notifications")},De.createElement(Mt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},De.createElement(Hw,{size:18,color:"black"}),De.createElement(Lm,null))))),!r.includes("settings")&&De.createElement(Pi,{container:N(),side:"top",content:Mi.t("Settings")},De.createElement(Mt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},De.createElement(Vw,{size:18,color:"black"}))),!r.includes("history")&&De.createElement(Pi,{container:N(),side:"top",content:Mi.t("History")},De.createElement(Mt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},De.createElement(Kw,{size:18,color:"black"}),De.createElement(Bm,null))))}i(_o,"HeaderButtons");import{i18n as Sl}from"@lingui/core";import{Divider as Dm,MessageBox as Yw,RefreshIcon as Zw}from"@rango-dev/ui";import gn from"react";import{Button as jw,styled as Xw}from"@rango-dev/ui";var _m=Xw(jw,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Cl(t){let{open:e,onClose:o}=t;return gn.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},gn.createElement(Yw,{title:Sl.t("Something went wrong"),type:"error",description:Sl.t("Something went wrong. Please refresh the app.")},gn.createElement(Dm,{size:30}),gn.createElement(_m,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},gn.createElement(Zw,{size:20,color:"primary"}),gn.createElement(Dm,{size:4,direction:"horizontal"}),Sl.t("Refresh"))))}i(Cl,"RefreshModal");function kl(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(kl,"onScrollContentAttachStatusToContainer");import{css as Rw,styled as _i}from"@rango-dev/ui";var Di=Rw({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),$m=_i("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:700},fixed:{minHeight:425,maxHeight:700,height:700}},showBanner:{true:{overflow:"visible"}}}}),Fm=_i("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Om=_i("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}}),Um=_i("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=tl(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=k(),[u,d]=Qm(!1),{config:{features:g,theme:h}}=k(),{watermark:f,setShowCompactTokenSelector:m}=oe(),S=f==="FULL",{activeTheme:y}=so(h||{}),[C,T]=Qm(!1),w=nt("connectWalletButton",g),{isActiveTab:x,tabManagerInitiated:A,showActivateTabModal:I,setShowActivateTabModal:E,activateCurrentTab:v}=oe(),b=Ve(),{manager:B}=tv(),{isTablet:L,isMobile:D}=fn(),J=Tt(B).map(({swap:be})=>be).some(be=>be.status==="running"),G=i(()=>v(Ao.forceClaim,J),"onActivateTab"),M=i(()=>{r.onWallet?.()},"onConnectWallet"),te=typeof r.hasBackButton>"u"||r.hasBackButton,ee=qm(null),Y=qm(null);return $i(()=>{let be=(p?.swapBoxBanner?.routes?.length??0)===0,le=!!p?.swapBoxBanner?.routes?.some(fe=>location.pathname.endsWith(fe));T(!!p?.swapBoxBanner&&(be||le))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),$i(()=>(Jn()&&Y.current&&e(Y.current),()=>{o()}),[]),$i(()=>(ee.current?.addEventListener("scroll",kl),()=>{ee.current?.removeEventListener("scroll",kl)}),[]),$i(()=>{d(c==="failed")},[c]),rv(()=>{let be=s==="auto"||!Y.current||Jn(),le=D||L,fe=i(()=>{be||(le?Y.current.style.height=`${window.innerHeight-Y.current.offsetTop}px`:Y.current.style.height=`${700}px`,m(parseFloat(Y.current.style.height)<640))},"handler");return fe(),window.addEventListener("resize",fe),()=>window.removeEventListener("resize",fe)},[s,D,L]),Be.createElement($m,{height:s,id:ot.SWAP_BOX_ID,className:`${y()} ${Di()}`,ref:Y,showBanner:C},Be.createElement(nv,{prefix:te?Be.createElement(dl,{onClick:()=>{b(),r.onBack?.()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!w&&Be.createElement(gl,{container:N(),onClick:M,isConnected:!!l?.length}),r.onCancel&&Be.createElement(fl,{onClick:r.onCancel}))}),Be.createElement(Fm,{ref:ee},n),Be.createElement(ul,{open:I,onClose:()=>E(!1),onConfirm:G}),Be.createElement(Om,null,Be.createElement("div",{className:"footer__content"},A&&!x&&Be.createElement("div",{className:"footer__alert"},Be.createElement(cl,{onActivateTab:G}),Be.createElement(zm,{size:10})),a),Be.createElement(zm,{size:12}),Be.createElement("div",{className:`footer__logo ${S?"logo__show":"logo__hidden"}`},Be.createElement(ov,null))),C&&Be.createElement(Um,null,p?.swapBoxBanner?.element),Be.createElement(Cl,{open:u,onClose:()=>d(!1)}))}i(ie,"Layout");import{styled as iv}from"@rango-dev/ui";var Hm="$20 $20 $10 $20",Tl=iv("div",{padding:Hm,overflowY:"auto",flexGrow:1});import{styled as av}from"@rango-dev/ui";var ae=av("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as co}from"@lingui/core";import{useState as wl}from"react";function Gm(){let[t,e]=wl(!1),[o,n]=wl(null),[r,a]=wl(null),{findToken:s}=k(),c=k().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(d,g){switch(d){case"duplicated":return{type:d,title:co.t("Duplicate Token"),message:co.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:co.t("Token Already Exists"),message:co.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:d,title:co.t("Token Not Found"),message:co.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:g}})};case"network-error":return{type:d,title:co.t("Network error"),message:co.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:g})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===g.toLowerCase())){let y=p("duplicated");n(y);return}let f=await pt().getCustomToken({blockchain:d,address:g});if(!f||!f.token||f.error){let y=p("not-found",d);n(y);return}let m=f.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let y=p("token-exist");n(y);return}return a({...m,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let f=p("not-found",d);n(f);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(Gm,"useFetchCustomToken");var yv=uv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${cv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Vm(){let t=gv(),[e]=hv(),o=Ve(),n=k().blockchains(),r=e.get("blockchain")||"",a=vo(r,n),[s,c]=fv(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:g}=Gm(),h=!!a&&jo(a,s),f=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ke.createElement(ie,{header:{title:hn.t("Add Custom Token")}},Ke.createElement(ae,null,Ke.createElement(yv,null,Ke.createElement("div",null,Ke.createElement(js,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:hn.t("Select chain"),placeholder:hn.t("Select chain")}),Ke.createElement(vl,{size:"24"}),Ke.createElement(mv,{size:"large",variant:"label"},hn.t("Enter Address")),Ke.createElement(vl,{size:10}),Ke.createElement(dv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:hn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Ke.createElement(pv,{color:"success",size:12}),onChange:S=>c(S.target.value)}),!h&&!!s&&Ke.createElement(Ke.Fragment,null,Ke.createElement(vl,{size:4}),Ke.createElement(sv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ke.createElement(lv,{id:"widget-add-custom-token-import-btn",disabled:f,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},hn.t("Import"))),Ke.createElement(Zn,{token:p,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:g,onExitImportModal:g})))}i(Vm,"AddCustomTokenPage");import{i18n as ec}from"@lingui/core";import{useManager as ox}from"@rango-dev/queue-manager-react";import{Alert as nx,Button as rx,css as oc,Divider as tc,IconButton as Dg,styled as ix,Typography as ax,WalletIcon as sx}from"@rango-dev/ui";import Fe,{useEffect as ca,useLayoutEffect as lx,useRef as cx,useState as mr}from"react";import{useNavigate as px}from"react-router-dom";import{i18n as Do}from"@lingui/core";import{Alert as Qv,BalanceErrors as Hv,Button as Cf,ChevronLeftIcon as Gv,Divider as Wl,MessageBox as Vv,Typography as Ll}from"@rango-dev/ui";import re,{useCallback as Kv,useEffect as kf,useMemo as jv,useState as Cn}from"react";import{useNavigate as Xv}from"react-router-dom";import{i18n as Il}from"@lingui/core";import{Alert as wv,ChevronDownIcon as vv,CloseIcon as bv,Divider as Rm,IconButton as ef,PasteIcon as xv,Typography as Ev,WalletIcon as Iv}from"@rango-dev/ui";import $e,{useEffect as Av,useRef as Nv}from"react";import zi,{useRef as kv}from"react";import*as yn from"@radix-ui/react-collapsible";import{keyframes as Km,styled as Fi}from"@rango-dev/ui";var bl=300,Sv=Km({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Cv=Km({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),jm=Fi(yn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),xl=Fi(yn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Oi=Fi(yn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Sv} ${bl}ms ease-out`},false:{animation:`${Cv} ${bl}ms ease-out`}}}}),Ui=Fi("div",{transition:`all ${bl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function qi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=kv(null);return zi.createElement(jm,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&zi.createElement(xl,{className:"collapsible_trigger",onClick:a},s),zi.createElement(Oi,{className:"collapsible_content",open:e},r),c==="bottom"&&zi.createElement(xl,{className:"collapsible_trigger",onClick:a},s))}i(qi,"CustomCollapsible");import{darkTheme as Xm,styled as El,TextField as Tv}from"@rango-dev/ui";var Ym=El("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Zm=El(Tv,{backgroundColor:"$neutral100",padding:"$15"}),Jm=El("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Xm} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Xm} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function tf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=k(),c=k().blockchains(),l=zr(e.name,c),p=Nv(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!jo(e,r),f=i(()=>{a("")},"handleClear"),m=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),p?.current?.focus()}},"handlePaste"),S=i(()=>r?$e.createElement(ef,{id:"widget-custom-destination-close-icon-btn",onClick:f,variant:"ghost"},$e.createElement(bv,{size:12,color:"gray"})):d?null:$e.createElement(ef,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},$e.createElement(xv,{size:16})),"renderSuffix");return Av(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),$e.createElement(Ym,null,$e.createElement(qi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:$e.createElement(Jm,{id:"widget-custom-destination-collapsible-btn"},$e.createElement("div",{className:"button__content"},$e.createElement(Iv,{size:18,color:"info"}),$e.createElement(Rm,{size:4,direction:"horizontal"}),$e.createElement(Ev,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Il.t("Send to a different address"))),$e.createElement(Ui,{orientation:n?"up":"down"},$e.createElement(vv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},$e.createElement(Zm,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Il.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:S(),onChange:y=>{let C=y.target.value;a(C)}})),h&&$e.createElement($e.Fragment,null,$e.createElement(Rm,{size:4}),$e.createElement(wv,{variant:"alarm",type:"error",title:Il.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(tf,"CustomDestination");import{css as Bv,IconButton as Wv,SelectableWalletButton as Lv,styled as po}from"@rango-dev/ui";var of=po("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),nf=po("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),rf=po(Lv,{justifyContent:"center"}),af=po("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),sf=po(Wv,{position:"absolute",left:"$20"}),lf=po("div",{paddingTop:"$20"}),cf=Bv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),pf=po("div",{display:"flex"}),uf=po("div",{overflow:"visible",width:"100%"});import{i18n as Nl}from"@lingui/core";import{warn as $v}from"@rango-dev/logging-core";import{Divider as Fv,makeInfo as Ov,SelectableWallet as Uv,Typography as yf,WalletState as Qi}from"@rango-dev/ui";import it,{useEffect as Sf,useState as or}from"react";import{Image as _v,MessageBox as Dv}from"@rango-dev/ui";import tr from"react";import{keyframes as Mv,styled as Al}from"@rango-dev/ui";var df=Al("div",{position:"relative"}),Pv=Mv({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),mf=Al("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Pv} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),ff=Al("div",{"& img":{borderRadius:"50%"}});import{i18n as Sn}from"@lingui/core";function gf(t,e){switch(t){case"in-progress":return{type:"loading",title:Sn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Sn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Sn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Sn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Sn.t("Request Rejected"),description:Sn.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(gf,"generateMessageByStatus");function hf(t){let{status:e,displayName:o,image:n}=t,r=gf(e,o),a=e=="in-progress";return tr.createElement(Dv,{type:r.type,title:r.title,description:r.description,icon:a?tr.createElement(df,null,tr.createElement(ff,null,tr.createElement(_v,{src:n,size:45})),tr.createElement(mf,null)):void 0})}i(hf,"ExperimentalChainStatus");var zv=7,qv=3e3;function Bl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{blockchains:l,connectedWallets:p}=k(),[u,d]=or(),[g,h]=or(null),[f,m]=or(!1),[S,y]=or(null),{suggestAndConnect:C}=Hi(),{list:T}=vt({chain:e}),[w,x]=or(T),A=T.length,I=a&&A-a>0,E=i(async b=>{m(!1),y("in-progress");try{await C(b.walletType,b.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");Sf(()=>{x(b=>{let B=T.findIndex(L=>n(L.type,e));return I&&B>1?[T[B]].concat(T.filter((L,D)=>D!==B)):b.map(L=>T.find(D=>D.type===L.type)??L)})},[JSON.stringify(T)]);let v=document.getElementById(ot.SWAP_BOX_ID);return Sf(()=>{let b=null;return(S==="completed"||S==="rejected")&&(b=setTimeout(()=>y(null),qv)),()=>{b&&clearTimeout(b)}},[S]),it.createElement(it.Fragment,null,w.slice(0,a).map(b=>{let B=hu({connectedWallets:p,walletType:b.type,chain:e}),L=b.state===Qi.CONNECTED,D=B?ro(B,zv):"",q=L&&!!b.needsNamespace&&!D,J=Rr(l(),e),G=!p.find(fe=>fe.walletType===b.type&&fe.chain===e),M=J&&G&&b.state===Qi.CONNECTED,te=i(async()=>{b.state===Qi.DISCONNECTED||q?d(b):M?(h({walletType:b.type,chain:e,address:B??""}),m(!0)):r({walletType:b.type,chain:e,address:B??""})},"onSelectableWalletClick"),ee=Ov(b.state),Y=i(()=>M?Nl.t({id:"Add {chain} chain",values:{chain:e}}):q?Nl.t("Chain not connected"):D||ee.description,"getWalletDescription"),be=i(()=>b.state===Qi.CONNECTED?q?"neutral600":"neutral700":ee.color,"getWalletDescriptionColor"),le=g?.chain?zr(g.chain,l()):void 0;return it.createElement(it.Fragment,{key:`${b.title}_${le}`},!!g&&it.createElement(R,{id:"widget-wallets-list-watermarked-modal",open:!!g&&f,container:v,onClose:()=>{h(null)}},it.createElement(Ps,{id:"widget-wallets-list-experimental-chain-container",displayName:le,onConfirm:()=>{E(g)}})),S&&it.createElement(R,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!S,onClose:y.bind(null,null),container:v},it.createElement(hf,{status:S,displayName:le,image:b.image}),it.createElement(Fv,{direction:"vertical",size:32})),it.createElement(Uv,{key:b.type,id:"widget-wallets-list-selectable-wallet-btn",description:Y(),descriptionColor:be(),onClick:te,selected:n(b.type,e),disabled:!c,...b}))}),it.createElement(Kn,{id:"widget-wallets-list-stateful-connect-modal",wallet:u,options:{defaultSelectedChains:o||[e]},onClose:()=>{d(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):$v(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),I&&it.createElement(rf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},it.createElement(yf,{variant:"label",size:"medium"},Nl.t("Show more wallets"),it.createElement(yf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",A-(a??0)))))}i(Bl,"WalletList");var Yv=2;function Tf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Xv(),c=k().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:h}=O(),{config:f,connectedWallets:m,setWalletsAsSelected:S}=k(),[y,C]=Cn(""),[T,w]=Cn([]),[x,A]=Cn(""),[I,E]=Cn(!!g),v=jv(()=>Eo({filter:"all",quote:l}),[l]),b=Eo({filter:"required",quote:l}),B=c.find(W=>W.name===l?.swaps[l?.swaps.length-1].to.blockchain),L=i(W=>b.includes(W),"isWalletRequiredFor"),D=Kv(()=>m.filter(W=>W.selected&&v.includes(W.chain)),[m,v]),[q,J]=Cn(D()),[G,M]=Cn([]),te=i((W,V)=>M(K=>K.concat({blockchain:W,walletType:V})),"addNextSelectedWallets"),ee=T.length>0,Y=i((W,V)=>!!q.find(K=>K.walletType===W&&K.chain===V&&K.selected&&(L(V)||!L(V)&&!g)),"isSelected"),be=i((W,V,K)=>{let j=!1;return W.map(X=>{if(X.chain===V){let ce=X.selected;return!j&&K?(j=!0,ce=!0):K||(ce=!1),{...X,selected:ce}}return X})},"updateSelectableWallets"),le=i(W=>{E(W),W?L(B?.name??"")||J(V=>be(V,B?.name||"",!1)):(h(""),J(V=>be(V,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),fe=i(W=>{if(y&&C(""),Y(W.walletType,W.chain))return;let K=m.find(j=>j.walletType===W.walletType&&j.chain===W.chain);K&&(n(),W.chain===B?.name&&I&&!L(B.name)&&(E(!1),h(null)),J(j=>j.filter(X=>X.chain!==W.chain).concat({...K,selected:!0})))},"onChange"),ke=i(()=>{let W=q.filter(V=>V.selected);S(W),p(W),d(!0),o()},"onConfirmBalance"),et=i(async()=>{w([]),A("");let W=await r?.({selectedWallets:q.filter(K=>K.selected),customDestination:g}),V=W.warnings;V?.balance?.messages&&w(V.balance.messages),W.error&&A(kd(W.error)),!W.error&&!V?.balance?.messages.length?ke():w(V?.balance?.messages??[])},"onConfirmWallets");kf(()=>{J(W=>{let V=[];return W.forEach(K=>{!m.some(X=>X.chain===K.chain&&X.walletType===K.walletType&&X.address===K.address)||V.push(K)}),V=V.concat(m.filter(K=>!!!V.find(X=>X.chain===K.chain)&&K.selected&&v.includes(K.chain))),V})},[m,v]),kf(()=>{let W=[];G.length>0&&(G.forEach(V=>{let K=m.find(j=>j.chain===V.blockchain&&j.walletType===V.walletType);K?fe(K):W.push(V)}),M(W))},[m,G]);let Q=document.getElementById(ot.SWAP_BOX_ID);return re.createElement(R,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:Q,...!y&&{styles:{container:{height:"100%"}},footer:re.createElement(pf,null,re.createElement(Cf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Xd(a,I,g,l,q,B),onClick:et,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Do.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:re.createElement(af,null,re.createElement(sf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},re.createElement(Gv,{size:16})),re.createElement(Ll,{variant:"headline",size:"small"},Do.t({id:"Your {blockchainName} wallets",values:{blockchainName:ht(y,c)}})))},anchor:"center"},re.createElement(R,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:ee,onClose:w.bind(null,[]),container:Q},re.createElement(Vv,{title:Do.t("Insufficient account balance"),type:"error",description:re.createElement(Hv,{messages:T??[]})},re.createElement(Cf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:ke},Do.t("Proceed anyway")))),y&&re.createElement(lf,null,re.createElement("div",{className:cf()},re.createElement(Bl,{chain:y,quoteChains:v,isSelected:Y,selectWallet:fe,onShowMore:()=>C(y),onConnect:W=>{te(y,W)}}))),!y&&re.createElement(re.Fragment,null,x&&re.createElement(re.Fragment,null,re.createElement(Qv,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Do.t(x)}),re.createElement(Wl,{size:12})),re.createElement(uf,null,v.map((W,V)=>{let K=c.find(Qe=>Qe.name===W),j=`wallet-${V}`,X=V===v.length-1,ce=X&&B&&f?.customDestination!==!1;return re.createElement("div",{key:j},re.createElement(of,null,re.createElement(Ll,{variant:"title",size:"xmedium"},Do.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),re.createElement(Ll,{variant:"label",color:"$neutral700",size:"medium"},Do.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),re.createElement(Wl,{size:24}),re.createElement(nf,null,re.createElement(Bl,{chain:W,quoteChains:v,isSelected:Y,selectWallet:fe,limit:Yv,onShowMore:()=>C(K?.name??""),onConnect:Qe=>{te(W,Qe)}})),!X&&re.createElement(Wl,{size:32}),ce&&re.createElement(tf,{blockchain:B,open:I,handleOpenChange:le}))}))))}i(Tf,"ConfirmWalletsModal");import{i18n as yb}from"@lingui/core";import{Alert as Sb,Button as Cb,Divider as Uf,InfoIcon as kb}from"@rango-dev/ui";import Ue from"react";import{Alert as Rv,Button as eb,Divider as _l,NoRouteIcon as tb,RefreshIcon as ob,Typography as Af}from"@rango-dev/ui";import ut from"react";import{i18n as wf}from"@lingui/core";var Zv=24,Jv=60;function vf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ne().genericServerError,action:{onClick:n,title:wf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ne().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:wf.t("Reset")}},description:ne().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ne().noResultError.description}}i(vf,"makeInfo");var Ml=(o=>(o[o.small=Zv]="small",o[o.large=Jv]="large",o))(Ml||{}),Pl=(o=>(o.small="small",o.large="medium",o))(Pl||{});import{styled as Gi}from"@rango-dev/ui";var bf=Gi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),xf=Gi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Ef=Gi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),If=Gi("div",{padding:"$6 $0"});function nr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=k().getDisabledLiquiditySources(),s=k().toggleAllLiquiditySources,c=k().swappers(),l=vf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),ut.createElement(bf,{id:"widget-no-result-container"},ut.createElement(tb,{size:Ml[n],color:"gray"}),ut.createElement(_l,{size:4}),ut.createElement(Af,{variant:"title",size:Pl[n]},ne().noResultError.title),n==="large"&&ut.createElement(_l,{size:4}),!!l.description&&ut.createElement(xf,{size:n},ut.createElement(Af,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),ut.createElement(_l,{size:n==="large"?"24":"4"}),!!l.alert&&ut.createElement(Ef,{size:n},ut.createElement(Rv,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&ut.createElement(eb,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:ut.createElement(If,null,ut.createElement(ob,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(nr,"NoResult");import{i18n as ir}from"@lingui/core";import{Button as ib,Divider as ab,MessageBox as sb,Typography as lb,WarningIcon as cb}from"@rango-dev/ui";import Kt from"react";import{Typography as Mf}from"@rango-dev/ui";import $l from"react";import{Button as nb,darkTheme as rb,styled as rr}from"@rango-dev/ui";var Nf=rr("div",{width:"100%"}),Dl=rr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Bf=rr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${rb} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wf=rr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Lf=rr(nb,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function Pf(t){let{title:e,value:o,valueColor:n}=t;return $l.createElement(Bf,null,$l.createElement(Mf,{size:"medium",variant:"label",className:"_title"},e),$l.createElement(Mf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Pf,"QuoteErrorsModalItem");function _f(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:ir.t("Swapping"),value:_(r.inputUsdValue,4,4)},{title:ir.t("Gas cost"),value:_(r.totalFee,2,2)},{title:ir.t("Receiving"),value:_(r.outputUsdValue,4,4)},{title:ir.t("Price impact"),value:_(r.priceImpact,2,2),valueColor:`${s}500`}];return Kt.createElement(R,{id:"widget-high-value-loss-warning-modal",footer:Kt.createElement(ib,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Kt.createElement(cb,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},Kt.createElement(sb,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Kt.createElement(Dl,null,Kt.createElement(ab,{size:"4"}),Kt.createElement(lb,{size:"small",variant:"title"},ir.t("Details")),Kt.createElement(Dl,null,c.map((l,p)=>Kt.createElement(Pf,{key:p,...l})))))}i(_f,"HighValueLossWarningModal");import{i18n as kn}from"@lingui/core";function Df(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=kn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=kn.t("Increase")),o;if(t){switch(t.type){case 0:{Vt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().highValueLossError.title;break}case 4:{o.title=kn.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=ne().unknownPriceError.title;break}case 2:{o.title=kn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=kn.t("Increase");break}case 3:{o.title=kn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Df,"makeAlerts");function $f(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i($f,"getRequiredSlippage");import{i18n as Tn}from"@lingui/core";import{Button as pb,Divider as Fl,MessageBox as ub,WarningIcon as db}from"@rango-dev/ui";import fo from"react";import{useNavigate as mb}from"react-router-dom";function Ff(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=mb();return fo.createElement(R,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},fo.createElement(ub,{type:"warning",title:r.type===3?Tn.t("High slippage"):Tn.t("Low slippage"),description:r.type===3?Tn.t("Caution, your slippage is high. Your trade may be front run."):Tn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},fo.createElement(Fl,{size:18}),fo.createElement(Fl,{size:32}),fo.createElement(Lf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},fo.createElement(db,{color:"white",size:16}),Tn.t("Swap anyway")),fo.createElement(Fl,{size:10}),fo.createElement(pb,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+F.settings)},Tn.t("Change Slippage"))))}i(Ff,"SlippageWarningModal");import{Button as fb,MessageBox as gb,WarningIcon as hb}from"@rango-dev/ui";import Vi from"react";function Of(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Vi.createElement(R,{id:"widget-unknown-price-warning-modal",footer:Vi.createElement(fb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Vi.createElement(hb,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Vi.createElement(gb,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(Of,"UnknownPriceWarningModal");function ar(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:d,onChangeSlippage:g}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,m=Df(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let S=!!m&&!s,y=i(C=>{if(C==="change-slippage"){let T=o?.type===3||o?.type===4?o:null,w=$f(e,T);g?.(w)}else C==="change-settings"&&d()},"onclickActionButton");return Ue.createElement(Ue.Fragment,null,f&&Ue.createElement(Ue.Fragment,null,Ue.createElement(Uf,{size:10}),Ue.createElement(nr,{skipAlerts:s,error:o,fetch:c})),S&&Ue.createElement(Nf,null,Ue.createElement(Uf,{size:10}),Ue.createElement(Sb,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Ue.createElement(Wf,{onClick:l},Ue.createElement(kb,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Ue.createElement(Cb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>y(m.action)},m.actionButtonTitle||yb.t("Change"))}})),e&&Ue.createElement(Ue.Fragment,null,e.type===0&&Ue.createElement(_f,{...h,warning:e}),(e.type===3||e.type===2)&&Ue.createElement(Ff,{...h,warning:e}),e.type===1&&Ue.createElement(Of,{...h,warning:e})))}i(ar,"QuoteWarningsAndErrors");import Xb from"bignumber.js";import ia from"react";import{i18n as $o}from"@lingui/core";import{Alert as Db,Divider as vn,FullExpandedQuote as $b,InfoIcon as Fb,NumericTooltip as fg,QuoteTag as Ob,StepDetails as Ub,TokenAmount as zb,Typography as bn}from"@rango-dev/ui";import Kl from"bignumber.js";import U,{useRef as qb,useState as Qb}from"react";import{styled as Ol}from"@rango-dev/ui";var Ul=Ol("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),zf=Ol("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),qf=Ol("div",{width:"100%",display:"flex"});import*as Ki from"@radix-ui/react-collapsible";import{Button as Tb,css as sr,darkTheme as We,Image as Qf,styled as Ye,Typography as wb}from"@rango-dev/ui";var vb=300,Hf=Ye(Ki.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${We} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Gf=sr({padding:"$10 $15"}),Vf=Ye(Tb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${We} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${We} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${We} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Kf=Ye("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${We} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${We} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${We} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${We} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${We} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${We} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${We} &`]:{backgroundColor:"$neutral400"}}}}]}),jf=sr({width:"100%",padding:"$15 $15 $10 $15"}),Xf=sr({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),wn=sr({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Yf=sr({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${We} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Zf=Ye(Ki.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Qf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Qf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${We} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Jf=Ye("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Rf=Ye(Oi,{width:"100%",background:"inherit"}),zl=Ye("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${vb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),CQ=Ye("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),eg=Ye("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${We} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),tg=Ye("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),ql=Ye(wb,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),og=Ye("div",{display:"flex",flexWrap:"wrap"}),Ql=Ye("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),ng=Ye("div",{display:"flex"}),ji=Ye("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${We} &`]:{borderTopColor:"$neutral800"}});import{i18n as Pt}from"@lingui/core";import{ChevronDownIcon as xb,CloseIcon as Eb,Divider as Zi,IconButton as Ib,NumericTooltip as Ab,QuoteCost as Nb,Typography as xt}from"@rango-dev/ui";import Z,{useState as sg}from"react";import{css as bb,styled as Xi}from"@rango-dev/ui";var Yi=Xi("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Hl=Xi("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),rg=Xi("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),ig=Xi("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),ag=bb({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Bb=i(t=>t.fee.isZero()?null:Z.createElement(Yi,null,Z.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(xt,{variant:"label",size:"medium"},"$",_(t.fee,4,4))),"NonPayableFee");function Gl(t){let[e,o]=sg(!1),[n,r]=sg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:g=!1}=t,h=s?.swaps??[],f=g?xo():N(),m=zd(h),S=_(c,2,2);return Z.createElement(Z.Fragment,null,Z.createElement(Nb,{onClickFee:d?y=>{y.stopPropagation(),o(!e)}:void 0,fee:S,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?Pt.t("View more info"):void 0,tooltipContainer:f}),Z.createElement(R,{id:"widget-quote-cost-explanation-modal",container:f,open:e,anchor:g?"center":"bottom",styles:{container:{maxWidth:g?"484px":"unset"}},header:Z.createElement(ig,{style:{textAlign:g?"left":"center"}},Z.createElement(xt,{variant:"title",size:"medium"},Pt.t("Gas & Fee Explanation")),Z.createElement(Ib,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Z.createElement(Eb,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(rg,null,Z.createElement(xt,{variant:"title",size:"small"},Pt.t("Details")),Z.createElement(Zi,{size:10}),Object.entries(m.payable).flatMap(([y,C])=>C.map((T,w)=>{let x=`payable-fee-${w}`,A=zs(T);return Z.createElement(Yi,{key:x},Z.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},Ds(y,Pt.t)),Z.createElement(Ab,{content:T.amount,container:f},Z.createElement(xt,{variant:"label",size:"medium"},_(T.amount,2,2),T.asset.symbol," ($",_(A,4,4),")")))})),Z.createElement(Yi,{className:"total_payable_fee"},Z.createElement(xt,{variant:"label",size:"medium"},Pt.t("Total Payable Fee")),Z.createElement(xt,{variant:"label",size:"medium"},"$",_(c,4,4))),Z.createElement(Hl,null),!!Object.keys(m.nonePayable).length&&Z.createElement(qi,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:Z.createElement("div",{className:ag()},Z.createElement(xt,{size:"small",variant:"body",color:"neutral700"},n?Pt.t("Hide non-payable fees"):Pt.t("Show non-payable fees")),Z.createElement(Zi,{size:4,direction:"horizontal"}),Z.createElement(Ui,{orientation:n?"up":"down"},Z.createElement(xb,{size:12,color:"gray"}))),open:n},Z.createElement(xt,{size:"small",variant:"title"},Pt.t("Description")),Z.createElement(Zi,{size:4}),Z.createElement(xt,{size:"small",variant:"body",color:"neutral700"},Pt.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),Z.createElement(Zi,{size:10}),Object.entries(m.nonePayable).map(([y,C],T)=>{let w=Ud(C),x=Ds(y,Pt.t),A=`non-payable-fee-${T}`;return Z.createElement(Bb,{key:A,fee:w,label:x})}),Z.createElement(Hl,null)))))}i(Gl,"QuoteCostDetails");import{i18n as pg}from"@lingui/core";import{TokenAmount as ug}from"@rango-dev/ui";import Ji from"react";import{css as Wb,styled as Lb}from"@rango-dev/ui";var lg=Lb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),cg=Wb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function lr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Ji.createElement(lg,null,Ji.createElement(ug,{direction:"horizontal",label:pg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Ji.createElement("div",{className:cg()}),Ji.createElement(ug,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:pg.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(lr,"QuoteSummary");import{i18n as dg}from"@lingui/core";import{ChevronDownIcon as Mb,ChevronRightIcon as Pb,Divider as Vl,Image as _b,Tooltip as oa,Typography as Ri}from"@rango-dev/ui";import z from"react";var ea=4,ta=6,cr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return z.createElement(oa,{container:c,side:"bottom",sideOffset:4,open:r,content:e},z.createElement(Jf,{className:n,state:a},z.createElement(_b,{src:o,size:16})))},"ImageComponent");function mg(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),p=r.length,u=Bd(r),{isTablet:d,isMobile:g}=fn();return z.createElement(Zf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(f=>!f)}},z.createElement("div",{className:wn()},z.createElement(Ri,{variant:"body",size:"xsmall"},dg.t("Via:")),z.createElement(Vl,{direction:"horizontal",size:4}),r.map((h,f)=>{let m=`item-${f}`,S=z.createElement(zl,null,z.createElement(Pb,{size:12,color:"black"}));return g||d?z.createElement(z.Fragment,{key:m},z.createElement(cr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),f!==p-1&&z.createElement(z.Fragment,null,S)):z.createElement(z.Fragment,{key:m},p<=ea||p>ea&&f<ea-1?z.createElement(z.Fragment,null,z.createElement(cr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),f!==p-1&&z.createElement(z.Fragment,null,S)):f===ea-1&&z.createElement(oa,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:wn()},S,r.map((y,C)=>{let T=`image-${C}`;return C>=f&&z.createElement(z.Fragment,{key:T},z.createElement(cr,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),C!==p-1&&z.createElement(z.Fragment,null,S))}))},z.createElement(Ql,{state:r.find((y,C)=>C>=f&&(y.state==="error"||y.state==="warning"))?.state},z.createElement(Ri,{size:"xsmall",variant:"body"},"+",p-f))))})),z.createElement("div",{className:wn()},z.createElement("div",{className:"blockchains_section"},z.createElement("div",{className:wn()},z.createElement(Ri,{variant:"body",size:"xsmall"},dg.t("Chains:")),z.createElement(Vl,{direction:"horizontal",size:4}),u.map((h,f)=>z.createElement(z.Fragment,{key:h.displayName},u.length<=ta||u.length>ta&&f<ta-1?z.createElement(oa,{container:l,side:"bottom",content:h.displayName,sideOffset:4},z.createElement(cr,{content:"",src:h.image??"",open:!1,className:f!==0?"blockchainImage":""})):f===ta-1&&z.createElement(oa,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:wn()},u.map((m,S)=>S>=f&&z.createElement(cr,{key:m.displayName,content:"",src:m.image??"",open:!1,className:S>f?"blockchainImage":"",container:c})))},z.createElement(Ql,{className:"blockchainImage"},z.createElement(Ri,{size:"xsmall",variant:"body"},"+",u.length-f))))),z.createElement(Vl,{direction:"horizontal",size:32}))),z.createElement(zl,{orientation:a?"up":"down"},z.createElement(Mb,{size:12,color:"black"}))))}i(mg,"QuoteTrigger");function jl(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:d=!1,container:g}=t,h=k().blockchains(),{findToken:f}=k(),m=k().swappers(),{customSlippage:S,slippage:y}=k(),C=S||y,[T,w]=Qb(t.expanded),x=qb(null),A=_(o.value,6,6),I=_(n.value,6,6),E=n.usdValue?_(n.usdValue,4,4):"",v=Gt(o.usdValue,n.usdValue??null),b=_(v,2,2),B=Vt(v??0),L=i((ke,et)=>ke.map((Q,W)=>{let V,K=r?.type===3&&r.swap.swapperId===Q.swapperId,j=r?.type===4&&!!r.recommendedSlippages?.[W],X=a?.type===2&&!!a.recommendedSlippages?.[W],ce=K||j,Qe=X;ce?V="error":Qe&&(V="warning");let tt=ce?$o.t("Slippage Error"):$o.t("Slippage Warning");return K&&(tt=$o.t("Bridge Limit Error")),{swapper:{displayName:Bn(Q.swapperId,m)??"",image:Q.swapperLogo},from:{token:{displayName:Q.from.symbol,image:Q.from.logo},chain:{displayName:ht(Q.from.blockchain,h)??"",image:Q.from.blockchainLogo},price:{value:W===0&&!et?_(o.value,6,6):_(Q.fromAmount,6,6),usdValue:_((Q.from.usdPrice??0)*parseFloat(Q.fromAmount),4,4),realValue:W===0?o.value:Q.fromAmount,realUsdValue:new Kl(Q.from.usdPrice??0).multipliedBy(Q.fromAmount).toString()}},to:{token:{displayName:Q.to.symbol,image:Q.to.logo},chain:{displayName:ht(Q.to.blockchain,h)||"",image:Q.to.blockchainLogo},price:{value:_(Q.toAmount,6,6),usdValue:_((Q.to.usdPrice??0)*parseFloat(Q.toAmount),4,4),realValue:Q.toAmount,realUsdValue:new Kl(Q.to.usdPrice??0).multipliedBy(Q.toAmount).toString()}},state:V,alerts:ce||Qe?U.createElement(zf,{dense:d},U.createElement(Db,{variant:"alarm",type:ce?"error":"warning",title:tt,id:"widget-quote-footer-step-alarm-alert",footer:U.createElement(qf,null,K&&U.createElement("div",null,U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(vn,{direction:"vertical",size:2}),U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Yours: {amount} {symbol}",values:{amount:_(Q.fromAmount,6,6),symbol:Q?.from.symbol}}))),(j||X)&&!K&&U.createElement("div",null,U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[W]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[W]}}})),U.createElement(vn,{direction:"vertical",size:2}),U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Ln(Q.estimatedTimeInSeconds),fee:_(Us(Q,f),2,2),internalSwaps:Q.internalSwaps?L(Q.internalSwaps):void 0}}),"getQuoteSteps"),D=L(e?.swaps??[]),q=D.length,J=g||N(),G=Ld(t.quote.tags||[]),M=!!u,te=Yr(e?.swaps),ee=Ln(te),Y=bi(e?.swaps??[],f),be=_(Y,2,2),le=Y.gte(new Kl(wd)),fe=te/bd>=vd;return d?U.createElement($b,{selected:c,fee:be,time:ee,tooltipContainer:xo(),steps:D,tags:G,id:"widget-quote-full-expanded-quote-container",quoteCost:U.createElement(Gl,{quote:e,fullExpandedMode:!0,time:ee,fee:Y,feeWarning:le,timeWarning:fe,showModalFee:p,steps:q}),percentageChange:b,warningLevel:B,outputPrice:{value:I,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):U.createElement(Kf,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},U.createElement("div",{className:jf()},!l&&G.length?U.createElement(U.Fragment,null,U.createElement(ng,null,G.map((ke,et)=>{let Q=`${ke.value}_${et}`;return U.createElement(U.Fragment,{key:Q},U.createElement(Ob,{label:ke.label,value:ke.value}),U.createElement(vn,{size:4,direction:"horizontal"}))})),U.createElement(ji,null),!M&&U.createElement(vn,{size:4})):null,U.createElement("div",{id:"portal-root",className:Xf()},U.createElement(Gl,{quote:e,time:ee,fee:Y,feeWarning:le,timeWarning:fe,showModalFee:p,steps:q}),M&&U.createElement(Vf,{onClick:ke=>{ke.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(bn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},$o.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:Yf()},U.createElement(tg,null,U.createElement(Fb,{size:12,color:"gray"})),U.createElement(og,null,U.createElement(ql,{size:"small",variant:"body"},`${A} ${D[0].from.token.displayName} = `),U.createElement(fg,{content:n.value,container:J,open:n.value?void 0:!1},U.createElement(ql,{size:"small",variant:"body"},"\xA0",`${I} ${D[D.length-1].to.token.displayName}`))),U.createElement(fg,{content:n.usdValue,container:J},U.createElement(vn,{size:2,direction:"horizontal"}),U.createElement(bn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&U.createElement(zb,{id:"widget-quote-token-amount-container",tooltipContainer:J,type:"output",direction:"vertical",price:{value:I,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:D[q-1].to.token.displayName,image:D[q-1].to.token.image},chain:{image:D[q-1].to.chain.image},percentageChange:b,warningLevel:B}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(lr,{from:D[0].from,to:D[q-1].to,percentageChange:b,warningLevel:B}),U.createElement(vn,{size:4}))),U.createElement(Hf,{selected:c,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:w},U.createElement(mg,{type:s,quoteRef:x,selected:c,setExpanded:w,container:J,expanded:T,steps:D}),U.createElement(Rf,{open:T},U.createElement(eg,null),U.createElement("div",{className:Gf()},D.map((ke,et)=>{let Q=`item-${et}`;return U.createElement(Ub,{type:"quote-details",className:"widget-quote-step-details-container",key:Q,tooltipContainer:J,step:ke,hasSeparator:et!==D.length-1,state:ke.state})})))))}i(jl,"Quote");import{Divider as Kb,Skeleton as jb}from"@rango-dev/ui";import Zt from"react";import{darkTheme as Hb,styled as na}from"@rango-dev/ui";var gg=na("div",{$$color:"$colors$neutral100",[`.${Hb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),hg=na("div",{paddingTop:"$2"}),yg=na("div",{paddingLeft:"$8"}),Sg=na("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Ag,Divider as Et,Skeleton as dt}from"@rango-dev/ui";import H from"react";import{css as Gb,styled as Yt}from"@rango-dev/ui";var Xl=Yt("div",{display:"flex"}),Cg=Yt("div",{padding:"$10 $0 $20"}),kg=Yt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Tg=Yt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),wg=Yt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),vg=Yt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),bg=Yt("div",{width:"65%",display:"flex",justifyContent:"start"}),xg=Yt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Eg=Yt("div",{padding:"$15 $0 $15 $0"}),Ig=Gb({display:"flex",justifyContent:"space-between",alignItems:"center"});function pr(t){let{type:e,tagHidden:o=!0}=t,n=H.createElement(wg,null,H.createElement(bg,null,H.createElement(Ag,{loading:!0,size:"medium"}),H.createElement(Et,{size:8,direction:"horizontal"}),H.createElement(xg,null,H.createElement(dt,{height:10,width:60,variant:"rounded"}),H.createElement(Et,{size:4}),H.createElement(dt,{height:15,variant:"rounded"}))),H.createElement(dt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return H.createElement("div",null,!o&&H.createElement(H.Fragment,null,H.createElement(Xl,null,H.createElement(dt,{width:65,height:20,variant:"rounded"}),H.createElement(Et,{size:4,direction:"horizontal"}),H.createElement(dt,{width:65,height:20,variant:"rounded"}),H.createElement(Et,{size:4,direction:"horizontal"}),H.createElement(dt,{width:65,height:20,variant:"rounded"})),H.createElement(ji,null),!r&&H.createElement(Et,{size:4})),H.createElement("div",{className:Ig()},H.createElement(Xl,null,H.createElement(dt,{width:60,height:10,variant:"rounded"}),H.createElement(Et,{size:4,direction:"horizontal"}),H.createElement(dt,{width:60,height:10,variant:"rounded"}),H.createElement(Et,{size:4,direction:"horizontal"}),H.createElement(dt,{width:60,height:10,variant:"rounded"})),r&&H.createElement(dt,{width:85,height:24,variant:"rounded"})),e==="basic"&&H.createElement(Cg,null,H.createElement(dt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&H.createElement(kg,null,H.createElement(Tg,null,H.createElement(Ag,{loading:!0,size:"medium"}),H.createElement(Et,{direction:"horizontal",size:4}),H.createElement(dt,{height:15,width:150,variant:"rounded"})),H.createElement(Et,{size:10}),H.createElement(dt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&H.createElement(H.Fragment,null,H.createElement(Et,{size:4}),H.createElement(Eg,null,n,H.createElement(vg,null),n),H.createElement(Et,{size:12})))}i(pr,"QuoteSummarySkeleton");import{ChainToken as Mg,Divider as Zl,NextIcon as Vb,Skeleton as ra}from"@rango-dev/ui";import Le from"react";import{styled as ur}from"@rango-dev/ui";var Ng=ur("div",{display:"flex",alignItems:"start"}),Bg=ur("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Yl=ur("div",{display:"flex",alignItems:"center",flexGrow:1}),Wg=ur("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Lg=ur("div",{display:"flex",alignItems:"center"});function _t(t){let{separator:e=!0}=t;return Le.createElement(Le.Fragment,null,Le.createElement(Lg,null,Le.createElement(ra,{height:22,width:22,variant:"circular"}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:15,width:148,variant:"rounded"})),Le.createElement(Ng,null,Le.createElement(Sg,{hideSeparator:!e}),Le.createElement(Bg,{extraSpace:e},Le.createElement(Yl,null,Le.createElement(Mg,{size:"small",loading:!0}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:12,variant:"rounded"})),Le.createElement(Wg,null,Le.createElement(Vb,{color:"gray",size:16})),Le.createElement(Yl,null,Le.createElement(Mg,{size:"small",loading:!0}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:12,variant:"rounded"})))))}i(_t,"StepSkeleton");function dr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Zt.createElement(gg,{expanded:o,rounded:e!=="basic"},Zt.createElement(pr,{type:e,tagHidden:n}),Zt.createElement(hg,null,Zt.createElement(jb,{height:15,variant:"rounded"})),o&&Zt.createElement(yg,null,Zt.createElement(Kb,{size:24}),Zt.createElement(_t,null),Zt.createElement(_t,null),Zt.createElement(_t,{separator:!1})))}i(dr,"QuoteSkeleton");function Fo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:d,onClickAllRoutes:g,fullExpandedMode:h=!1,container:f}=t,{inputAmount:m,inputUsdValue:S}=O(),y=e?.outputAmount?new Xb(e?.outputAmount):null,C=e?Ct(e):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?ia.createElement(Ul,null,ia.createElement(dr,{tagHidden:c,type:o,expanded:s})):w?ia.createElement(Ul,{onClick:()=>l?.(e),id:d},ia.createElement(jl,{quote:e,error:r,container:f,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:g,fullExpandedMode:h,input:{value:m,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:C?.toString()??""}})):null}i(Fo,"QuoteInfo");import{warn as Rb}from"@rango-dev/logging-core";import{calculatePendingSwap as ex}from"@rango-dev/queue-manager-rango-preset";import{useEffect as tx}from"react";import{useRef as Yb,useState as Zb}from"react";var Jb=2e3;function aa({request:t}){let[e,o]=Zb(!1),n=Yb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,Jb)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(c,{signal:n.current.signal});return n.current=null,p}catch(p){if(l)return await a(c);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(aa,"useFetch");function Pg(){let{fetch:t,loading:e,cancelFetch:o}=aa({request:async(n,r)=>await pt().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Pg,"useFetchConfirmQuote");function sa(t){if(!t.swaps)throw new Error(ne().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Jl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(sa,"throwErrorIfResponseIsNotValid");function Jl(t){if($d(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Fd(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=qd(t);if(o){let n=xi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Jl,"getQuoteError");function _g(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=pn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=Gd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(_g,"generateWarnings");function la(t){return t?.code==="ERR_CANCELED"?{type:2}:t.cause?t.cause:t?.code==="ERR_BAD_REQUEST"?{type:0,diagnosisMessage:t.response.data.error}:{type:1,diagnosisMessage:t.message}}i(la,"handleQuoteErrors");function Rl(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=O(),{slippage:l,customSlippage:p}=k(),u=k().getDisabledLiquiditySources(),d=k().blockchains(),g=k().tokens(),{findToken:h}=k(),f=p||l,{fetch:m,cancelFetch:S,loading:y}=Pg();return tx(()=>S,[]),{loading:y,fetch:i(async T=>{let w=T.selectedWallets,x=T?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=w.reduce((E,v)=>(E[v.chain]=v.address,E),{}),I={requestId:a?.requestId||"",selectedWallets:A,destination:x||void 0};try{return await m(I,!0).then(E=>{let{result:v}=E;if(!v)throw new Error(E.error??"Error fetching updated quote");sa({diagnosisMessages:v.diagnosisMessages,requestId:v.requestId,swaps:v.result?.swaps});let b={outputAmount:v.result?.outputAmount,requestId:v.requestId,resultType:v.result?.resultType,swaps:v.result?.swaps||[],validationStatus:v.validationStatus,requestAmount:v.requestAmount};r(b);let B={slippage:f.toString(),disabledSwappersGroups:u},L=_g({previousQuote:a??void 0,currentQuote:b,meta:{blockchains:d},selectedWallets:w,userSlippage:f,inputUsdValue:n,findToken:h});c();let D=!!L.balance,q=ex(o.toString(),v,Hd(w),B,!D,{blockchains:d,tokens:g});return{quote:b,swap:q,error:null,warnings:L}})}catch(E){let v=la(E);return v.type!==2&&Rb(new Error("confirm swap error"),{tags:{...v,type:je[v.type],initialQuote:a,requestBody:I}}),{swap:null,error:v,warnings:null}}},"fetch"),cancelFetch:S}}i(Rl,"useConfirmSwap");var ux=ix("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Dg}`]:{width:"$48",height:"$48"}}),dx=oc({flexGrow:1,paddingRight:"$10"}),mx=oc({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),fx=oc({display:"flex",justifyContent:"space-between",alignItems:"center"});function $g(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=px(),[c,l]=mr(""),p=!n,[u,d]=mr(!1),[g,h]=mr(!1),{isActiveTab:f}=oe(),m=k().getDisabledLiquiditySources(),S=cx(m),{manager:y}=ox(),{fetch:C,loading:T,cancelFetch:w}=Rl(),[x,A]=mr({swap:null,error:null,warnings:null}),[I,E]=mr(!1),v=i(async({selectedWallets:M,customDestination:te})=>{let ee=await C?.({selectedWallets:M,customDestination:te});return A(ee),ee},"onConfirmSwap"),b=i(async()=>{if(x.swap&&n)try{await y?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let M=`../${F.swaps}/${x.swap.requestId}`;s(M,{replace:!0}),setTimeout(()=>{e("")},0)}catch(M){l("Error: "+M?.message)}},"addNewSwap"),B=i(async()=>{h(!0),await b(),h(!1)},"onConfirm"),L=i(async()=>{x.warnings?.quote&&Nd(x.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),D=i(async()=>{A({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(M=>{A(M)}).catch(M=>console.error(M))},"onRefresh");ca(()=>{!!S.current.length&&!m.length&&D(),S.current=m},[m.length]),ca(()=>{p&&w()},[p]),ca(()=>{p&&d(p)},[p]),ca(()=>{p||C({selectedWallets:o,customDestination:r}).then(M=>A(M)).catch(M=>console.error(M))},[]),lx(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=x.warnings?.quote??null,J=x.error,G=[];if(c&&G.push(Fe.createElement(nx,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||J){let M=`../${F.settings}`;G.push(Fe.createElement(ar,{warning:q,error:J,couldChangeSettings:!1,refetchQuote:D,skipAlerts:J?.type===4||q?.type===2,showWarningModal:I,confirmationDisabled:!f,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await b()},onChangeSettings:()=>s(M)}))}return Fe.createElement(ie,{header:{title:ec.t("Confirm Swap"),onWallet:()=>{let M=`../${F.wallets}`;s(M)}},footer:Fe.createElement(ux,null,Fe.createElement("div",{className:dx()},Fe.createElement(rx,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||g,disabled:!!x.error||!f,onClick:L},ec.t("Start Swap"))),Fe.createElement(Dg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||g,disabled:!f,onClick:d.bind(null,!0)},Fe.createElement(sx,{size:24})))},u&&Fe.createElement(Tf,{open:u,onClose:()=>d(!1),onCancel:w,loading:T,onCheckBalance:v}),Fe.createElement(ae,null,Fe.createElement("div",{className:fx()},Fe.createElement(ax,{variant:"title",size:"small"},ec.t("You get")),Fe.createElement("div",{className:mx()},Fe.createElement(Li,{onClick:!T&&!u&&!I?D:void 0}))),Fe.createElement(tc,{size:"12"}),ym(G.map((M,te)=>({element:M,key:`alert-${te}`})),Fe.createElement(tc,{size:10})),G.length>0?Fe.createElement(tc,{size:10}):null,Fe.createElement(Fo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:x.error,loading:T,warning:x.warnings?.quote??null})))}i($g,"ConfirmSwapPage");import{i18n as Rt}from"@lingui/core";import{Button as fc,CustomTokensZeroStateDarkIcon as _x,CustomTokensZeroStateIcon as Dx,DeleteIcon as $x,Divider as Cr,IconButton as Fx,MessageBox as Ox,NotFound as Ux,styled as hc}from"@rango-dev/ui";import ge,{useState as gc}from"react";import{useNavigate as zx}from"react-router-dom";import{CloseIcon as hx,IconButton as yx,SearchIcon as Sx,TextField as Cx}from"@rango-dev/ui";import fr from"react";import{styled as gx}from"@rango-dev/ui";var Fg=gx("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function It(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...d}=t,g=s.length?fr.createElement(yx,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},fr.createElement(hx,{color:"gray",size:10})):null;return p&&(g=p),fr.createElement(Cx,{prefix:fr.createElement(Fg,null,fr.createElement(Sx,{color:"black"})),id:u,suffix:g,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d})}i(It,"SearchInput");import{i18n as mc}from"@lingui/core";import{Button as vx,CustomTokenWarning as bx,darkTheme as Yg,Divider as Jt,ExternalLinkIcon as xx,Image as Ex,ListItem as Ix,NotFound as Ax,PinIcon as Nx,Skeleton as Oo,Typography as yr,VirtualizedList as Bx}from"@rango-dev/ui";import P,{useState as Wx}from"react";import{useTranslation as Lx}from"react-i18next";import{Divider as jg,ListItem as wx,Skeleton as hr}from"@rango-dev/ui";import At from"react";import{css as xn,darkTheme as nc,ImageContainer as kx,ListItemButton as Tx,styled as at,Typography as Og}from"@rango-dev/ui";var rc=xn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),ic=xn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ac=xn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),sc=xn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${nc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),lc=xn({}),cc=xn(),Ug=at("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),pc=at("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),pa=at("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${ic}`]:{[`& .${sc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${lc}`]:{bottom:"-15px"},[`& .${rc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ac}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),zg=at(Tx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),uc=at("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),dc=at(Og,{}),qg=at("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${cc}`]:{$$color:"$colors$neutral600",[`.${nc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),gr=at("div",{display:"flex",alignItems:"end",flexDirection:"column"}),mV=at("div",{display:"flex",alignItems:"center"}),Qg=at("div",{position:"relative",[`& ${kx}`]:{borderRadius:"$xm",overflow:"hidden"}}),Hg=at("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Gg=at(Og,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Vg=at("a",{"& svg:hover":{color:"$colors$info"}}),Kg=at("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${nc} &`]:{color:"$foreground"}}}});function Xg(t){return At.createElement(pa,null,Array.from(Array(t.size),e=>At.createElement(wx,{key:e,hasDivider:!0,start:At.createElement(hr,{variant:"circular",width:35,height:35}),end:At.createElement(gr,null,At.createElement(hr,{variant:"text",size:"large",width:70}),At.createElement(jg,{size:4}),At.createElement(hr,{variant:"text",size:"medium",width:50})),title:At.createElement("div",null,At.createElement(hr,{variant:"text",size:"large",width:90}),At.createElement(jg,{size:4}),At.createElement(hr,{variant:"text",size:"medium",width:90}))})))}i(Xg,"LoadingTokenList");var Mx=20,Px=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return P.createElement("div",{className:ic()},o?P.createElement("div",{className:rc()},o):P.createElement(pc,{className:ac()},P.createElement(yr,{variant:"title",size:"xmedium"},r.symbol),P.createElement(Jt,{direction:"horizontal",size:4}),P.createElement(uc,{css:a},P.createElement(dc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&P.createElement("div",{className:`${sc()} ${!o&&lc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",P.createElement(Jt,{size:4,direction:"horizontal"}),P.createElement(Vg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},P.createElement(xx,{size:12}))))},"renderDesc");function Sr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=k().fetchStatus,u=k().blockchains(),{getBalanceFor:d,fetchingWallets:g}=k(),{isTokenPinned:h}=k(),{setFromToken:f,setToToken:m}=O(),{t:S}=Lx(),y=Ve(),[C,T]=Wx(null),w=i(()=>{c==="source"?f({token:C,meta:{blockchains:u}}):m({token:C,meta:{blockchains:u}})},"updateToken"),x=i(()=>{w(),y()},"handleImportToken"),A=i(v=>{if(v.customToken){let{customToken:B,...L}=v;return P.createElement(vx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),T({...L,warning:!0})},"handleClick")},P.createElement(yr,{variant:"body",size:"xsmall",color:"background"},S("import")))}let b=ei(d(v));return s?s(v):g?P.createElement(gr,null,P.createElement(Oo,{variant:"text",size:"large",width:70}),P.createElement(Jt,{size:4}),P.createElement(Oo,{variant:"text",size:"medium",width:50})):b&&P.createElement(qg,null,P.createElement(Gg,{variant:"title",size:"small"},b.amount),P.createElement("div",null),b.usdValue&&P.createElement(yr,{variant:"body",className:cc(),size:"xsmall"},`$${b.usdValue}`))},"endRenderer"),I=i(()=>P.createElement(Bx,{itemContent:v=>{let b=e[v];if(b==="skeleton")return P.createElement(Ix,{hasDivider:!0,start:P.createElement(Oo,{variant:"circular",width:35,height:35}),end:P.createElement(gr,null,P.createElement(Oo,{variant:"text",size:"large",width:70}),P.createElement(Jt,{size:4}),P.createElement(Oo,{variant:"text",size:"medium",width:50})),title:P.createElement("div",null,P.createElement(Oo,{variant:"text",size:"large",width:90}),P.createElement(Jt,{size:4}),P.createElement(Oo,{variant:"text",size:"medium",width:90}))});let B=b.address||"",L=u.find(M=>M.name===b.blockchain);if(!L)return null;let D=nl(L.color,"main"),q={$$color:D.main150,[`.${Yg} &`]:{$$color:D.main750},backgroundColor:"$$color"},J={$$color:D.main750,[`.${Yg} &`]:{$$color:D.main150},color:"$$color"},G=i(()=>{typeof b!="string"&&!b.customToken&&n?.(b)},"handleClick");return P.createElement(Kg,null,P.createElement(zg,{"tab-index":v,key:`${b.symbol}${b.address}`,id:`${b.symbol}${b.address}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:b.customToken,onClick:G,start:P.createElement(Qg,null,P.createElement(Ex,{src:b.image===""?Hr:b.image,size:30}),t.type!=="custom-token"&&h(b,t.type)&&P.createElement(Hg,null,P.createElement(Nx,{size:12,color:"gray"}))),title:L?.type==="COSMOS"||b.name||!b.name&&!B?P.createElement(pc,null,P.createElement(yr,{variant:"title",size:"xmedium"},b.symbol),P.createElement(Jt,{direction:"horizontal",size:4}),P.createElement(uc,{css:q},P.createElement(dc,{variant:"body",size:"xsmall",css:J},b.blockchain)),l&&b.warning&&P.createElement(P.Fragment,null,P.createElement(Jt,{direction:"horizontal",size:4}),P.createElement(bx,{container:N()}))):void 0,description:typeof b!="string"&&L?.info&&B&&L.type!=="COSMOS"?Px({address:B,token:b,customCssForTag:q,customCssForTagTitle:J,name:b.name,url:L.info.addressUrl.split("{wallet}").join(B)}):b.name||void 0,end:A(b)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=C?vo(C?.blockchain,u):null;return P.createElement(P.Fragment,null,a&&P.createElement(P.Fragment,null,P.createElement(yr,{variant:"label",size:"large"},mc.t("Select Token")),P.createElement(Jt,{size:4})),P.createElement(Ug,null,P.createElement(Jt,{size:4}),p==="loading"&&P.createElement(Xg,{size:Mx}),p==="success"&&(e.length?P.createElement(P.Fragment,null,P.createElement(Zn,{token:C,address:C?.address??"",blockchain:E??void 0,onImport:x,onExitErrorModal:()=>T(null),onExitImportModal:()=>T(null)}),P.createElement(pa,{as:"ul"},I())):!!o&&P.createElement(Ax,{title:mc.t("No results found"),description:mc.t("Try using different keywords")}))))}i(Sr,"TokenList");var qx=hc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Qx=hc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Hx=hc(Fx,{"&:hover":{"& svg":{color:"$secondary550"}}});function Zg(){let[t,e]=gc(""),{deleteCustomToken:o}=k(),n=k().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=O(),{mode:l}=so({}),p=zx(),[u,d]=gc(!1),[g,h]=gc(),f=i(C=>{let T=C.target.value;e(T)},"handleSearch"),m=l==="dark",S=n.filter(C=>lt(C.symbol,t)||lt(C.address||"",t)||lt(C.name||"",t)),y=i(()=>{if(g){let C=a?yt(a):null,T=r?yt(r):null,w=yt(g);C===w?c({token:null}):T===w&&s({token:null}),o(g)}d(!1)},"handleDeleteCustomToken");return ge.createElement(ie,{header:{title:Rt.t("Custom Tokens")}},ge.createElement(ae,null,ge.createElement(qx,null,n.length?ge.createElement(ge.Fragment,null,ge.createElement(It,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Rt.t("Search Token"),onChange:f}),ge.createElement(Cr,{size:16}),ge.createElement(Sr,{list:S,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>ge.createElement(Hx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(C)}},ge.createElement($x,{size:12,color:"gray"}))})):ge.createElement(Qx,null,ge.createElement(Ux,{icon:m?ge.createElement(_x,{size:200}):ge.createElement(Dx,{size:200}),title:Rt.t("No custom tokens"),description:Rt.t("press the button to add your custom token")})),ge.createElement(Cr,{size:20}),ge.createElement(fc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(F.addCustomTokens)},Rt.t("Add Custom Token"))),ge.createElement(R,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:N()},ge.createElement(Ox,{title:Rt.t("Delete Custom Token"),type:"error",description:Rt.t("Are you sure you want to Delete this Token?")},ge.createElement(Cr,{size:40}),ge.createElement(Cr,{size:10}),ge.createElement(fc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},Rt.t("Yes, Delete it")),ge.createElement(Cr,{size:12}),ge.createElement(fc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},Rt.t("No, Continue"))))))}i(Zg,"CustomTokensPage");import{i18n as Je}from"@lingui/core";import{useManager as pE}from"@rango-dev/queue-manager-react";import{Button as vc,darkTheme as uE,Divider as zo,MessageBox as dE,NotFound as mE,styled as bc,Typography as ma}from"@rango-dev/ui";import{TransactionStatus as wr}from"rango-types";import se,{useMemo as hh,useState as fa}from"react";import{useNavigate as fE}from"react-router-dom";import{FilterIcon as Zx,Popover as Jx}from"@rango-dev/ui";import Uo from"react";import{css as Gx,darkTheme as ua,IconButton as Vx,styled as kr}from"@rango-dev/ui";var yc=kr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ua} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),Jg=kr(Vx,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ua} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ua} &`]:{backgroundColor:"$neutral"},[`& ${yc}::before`]:{backgroundColor:"$secondary100",[`.${ua} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Rg=kr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),eh=kr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),th=Gx({display:"flex",justifyContent:"space-between",alignItems:"center"}),oh=kr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as nh}from"@lingui/core";import{Button as Kx,Divider as rh,ListItemButton as jx,Radio as Xx,RadioRoot as Yx,Typography as ih}from"@rango-dev/ui";import mt from"react";function ah(t){let{filterBy:e,onClickItem:o}=t;return mt.createElement(eh,null,mt.createElement("div",{className:th()},mt.createElement(ih,{size:"small",variant:"body"},nh.t("Status")),mt.createElement(Kx,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},nh.t("Reset"))),mt.createElement(rh,{size:10}),mt.createElement(Yx,{value:e},mt.createElement(oh,null,t.list.map((n,r)=>mt.createElement(jx,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:mt.createElement(mt.Fragment,null,mt.createElement(rh,{direction:"horizontal",size:4}),mt.createElement(ih,{size:"medium",variant:"body"},n.title)),start:mt.createElement(Xx,{value:n.id}),onClick:o})))))}i(ah,"FilterSelectorContent");function Sc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Uo.createElement("div",null,Uo.createElement(Jx,{open:a,align:"end",onOpenChange:o,container:N(),content:Uo.createElement(ah,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Uo.createElement(Jg,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Uo.createElement(yc,{isSelect:!!n},Uo.createElement(Zx,{size:16,color:"black"}),!!n&&Uo.createElement(Rg,null)))))}i(Sc,"FilterSelector");import{i18n as tE}from"@lingui/core";import{getCurrentStep as oE}from"@rango-dev/queue-manager-rango-preset";import{Divider as uh,GroupedVirtualizedList as nE,Skeleton as rE,SwapListItem as dh,Typography as iE}from"@rango-dev/ui";import Ze,{useCallback as mh,useEffect as aE,useRef as sE,useState as lE}from"react";function sh(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(sh,"calculateGroupsSoFar");import{css as Rx,darkTheme as eE,styled as Tr}from"@rango-dev/ui";var Cc=Rx(),lh=Tr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),kc=Tr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Cc}`]:{$$color:"$colors$neutral600",[`.${eE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Tc=Tr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),ch=Tr("div",{gap:"$10",display:"flex",flexDirection:"column"}),ph=Tr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var cE=10;function wc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=lE([]),c=sE(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=mh(sh,[]),g=mh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,cE),s(d(p,c.current)))},[e.length]);if(aE(()=>{r||g()},[r,g]),r){let h=[1,2];return Ze.createElement(Ze.Fragment,null,[h,h].map((m,S)=>Ze.createElement(kc,{key:S},Ze.createElement(Tc,null,Ze.createElement(rE,{variant:"text",width:60,size:"small"}),Ze.createElement(uh,{size:16})),Ze.createElement(uh,{size:4}),Ze.createElement(ch,null,m.map((C,T)=>Ze.createElement(dh,{isLoading:!0,key:T}))))))}return Ze.createElement(nE,{endReached:()=>{c.current<e.length&&g()},groupCounts:a,groupContent:h=>Ze.createElement(kc,null,Ze.createElement(Tc,null,Ze.createElement(iE,{variant:"label",size:"medium",className:Cc()},u[h]))),itemContent:(h,f)=>{let m=l[h];if(!m)return null;let S=oE(m),y=m.steps[0],C=m.steps[m.steps.length-1];return Ze.createElement(lh,{key:m.requestId},Ze.createElement(dh,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:S,tooltipContainer:N(),onlyShowTime:u[f]===tE.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:_(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:_(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(wc,"HistoryGroupedList");import{i18n as da}from"@lingui/core";import fh from"dayjs";var gh=i(t=>{let e=new Map([["today",{title:da.t("Today"),swaps:[]}],["week",{title:da.t("This week"),swaps:[]}],["month",{title:da.t("This month"),swaps:[]}],["year",{title:da.t("This year"),swaps:[]}]]);function o(l,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}i(o,"addYearsToOutput");let n=fh();t.forEach(l=>{let p=Number(l.creationTime),u=fh(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(l);else{let d=new Date(p).getFullYear().toString();o(d,l)}});let r=Array.from(e.values()).filter(l=>l.swaps.length>0),a=r.flatMap(l=>l.swaps),s=r.map(l=>l.swaps.length),c=r.map(l=>l.title);return{swaps:a,groupCounts:s,groups:c}},"groupSwapsByDate");var gE=bc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),hE=bc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),yE=bc("div",{"._typography":{color:"$neutral700",[`.${uE}&`]:{color:"$neutral900"}}}),SE=[{id:wr.SUCCESS,title:Je.t("Complete")},{id:wr.RUNNING,title:Je.t("Running")},{id:wr.FAILED,title:Je.t("Failed")}],CE=i((t,e)=>t?.length?t.filter(o=>Wt(o.fromBlockchain,e)||Wt(o.toBlockchain,e)||Wt(o.toSymbol,e)||Wt(o.fromSymbol,e)).length:!1,"isStepContainsText");function yh(){let t=fE(),{manager:e,state:o}=pE(),n=Tt(e).map(({swap:T})=>T),[r,a]=fa(""),[s,c]=fa(!1),l=!o.loadedFromPersistor,[p,u]=fa(""),[d,g]=fa(!1),h=i(T=>{let w=T.target.value;a(w)},"handleSearch"),f=hh(()=>!r&&!p?n:n.filter(T=>{let{inputAmount:w,status:x,steps:A,requestId:I}=T;return(!r||Wt(w,r)||Wt(x,r)||CE(A,r)||Wt(I,r))&&(!p||p===x)}),[n,r,p]),m=!f?.length&&!l,S=i(()=>g(!1),"onCloseModal"),y=i(async()=>{try{await e?.clearQueue(),g(!1)}catch(T){console.log(T)}},"onClear"),C=hh(()=>!n.some(T=>T.status===wr.SUCCESS||T.status===wr.FAILED),[n]);return se.createElement(ie,{header:{title:Je.t("History"),suffix:se.createElement(lo,null,se.createElement(vc,{id:"widget-history-clear-btn",disabled:C,variant:"ghost",size:"xsmall",onClick:()=>g(!0)},se.createElement(ma,{size:"medium",variant:"label",color:"error"},Je.t("Clear"))))}},se.createElement(ae,null,se.createElement(hE,null,se.createElement(It,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Je.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:h,style:{height:36},value:r}),se.createElement(zo,{size:10,direction:"horizontal"}),se.createElement(Sc,{filterBy:p,open:s,onOpenChange:T=>c(T),onClickItem:T=>u(T),list:SE})),se.createElement(zo,{size:"16"}),se.createElement(gE,null,m&&se.createElement(ph,null,se.createElement(zo,{size:32}),se.createElement(mE,{title:r?Je.t("No results found"):Je.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Je.t("Try using different keywords"):Je.t("Your transaction history is stored locally and will appear here after you start a swap")})),!m&&se.createElement(wc,{list:f,onSwapClick:t,groupBy:gh,isLoading:l}))),se.createElement(R,{open:d,onClose:S,id:"widget-history-clear-modal",container:N()},se.createElement(zo,{size:20}),se.createElement(dE,{type:"warning",title:Je.t("Clear Transaction History"),description:se.createElement(yE,null,se.createElement(ma,{variant:"body",size:"medium"},Je.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),se.createElement(zo,{size:"24"}),se.createElement(ma,{variant:"body",size:"small"},Je.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),se.createElement(zo,{size:30}),se.createElement(vc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},Je.t("Yes, Clear the history")),se.createElement(zo,{size:10}),se.createElement(vc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:S},se.createElement(ma,{variant:"title",size:"medium",color:"primary"},Je.t("No, Cancel")))))}i(yh,"HistoryPage");import{i18n as tI}from"@lingui/core";import{Button as oI,Divider as Fc,styled as nI,WarningIcon as rI}from"@rango-dev/ui";import iI from"bignumber.js";import ye,{useEffect as Kh,useState as jh}from"react";import{useNavigate as aI}from"react-router-dom";import{i18n as Ch}from"@lingui/core";import{Alert as TE,Divider as xc,NoRouteIcon as wE,Typography as vE}from"@rango-dev/ui";import qo from"react";import{styled as kE}from"@rango-dev/ui";var Sh=kE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Ec(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&zt(t,e)?qo.createElement(Sh,null,qo.createElement(xc,{size:10}),qo.createElement(wE,{size:24,color:"gray"}),qo.createElement(xc,{size:4}),qo.createElement(vE,{variant:"title",size:"small"},Ch.t("No Routes Found")),qo.createElement(xc,{size:4}),qo.createElement(TE,{title:Ch.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Ec,"SameTokensWarning");import{Alert as bE,Button as xE}from"@rango-dev/ui";import Th from"react";import{i18n as ga}from"@lingui/core";function kh(t){let e=null;return t===ri?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ga.t("Reset"),title:ga.t("Slippage cannot be set lower than 0.01%.")},e):t>Zo?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ga.t("Change"),title:ga.t("Caution, your slippage is high!")},e):null}i(kh,"makeAlerts");function wh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=k(),{onChangeSettings:a}=t,c=kh(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(ni),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Th.createElement(bE,{title:c.title,type:c.alertType,variant:"alarm",action:Th.createElement(xE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(wh,"SlippageWarningsAndErrors");import{i18n as BE}from"@lingui/core";import{IconButton as WE,ReverseIcon as LE,Skeleton as ME,Tooltip as PE,Typography as vr}from"@rango-dev/ui";import ft from"react";import ha from"bignumber.js";function bh(t){let{error:e,isDarkTheme:o,warning:n}=t,{quoteError:r,slippageError:a}=e,{quoteWarning:s,slippageWarning:c}=n,l=!!a||r?.type===4,p=!!c||s?.type===2;return l?"$error500":p?"$warning500":o?"$neutral600":"$neutral700"}i(bh,"getSlippageColor");function xh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new ha(e),r=new ha(o),a=n.dividedBy(r),s;return a.isLessThan(1)?s=a.toFixed(14).replace(/\.?0+$/,""):a.toFixed(0).length>10?s=a.toFixed(0).slice(0,10):s=a.toFixed(2),{displayValue:s,rawValue:a.toFixed()}}i(xh,"getUsdExchangeRate");function Eh(t,e){let o=new ha(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,ha.ROUND_DOWN).toFormat(2)}`}i(Eh,"formatTokenValueInUsd");import{darkTheme as AE,styled as Ac,Typography as NE}from"@rango-dev/ui";var Ih=Ac("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),Ah=Ac("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${AE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Nc=Ac(NE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Bc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=k(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:g}=so({}),h=en(d),f=g==="dark",m=n==="default",S={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},C=p?.swaps[0].from||c,T=p?.swaps[p?.swaps.length-1].to||l,w=m?C:T,x=m?T:C,A=Number(m?p?.outputAmount:p?.requestAmount),I=Number(m?p?.requestAmount:p?.outputAmount),E=A||w.usdPrice,v=I||x.usdPrice,{rawValue:b,displayValue:B}=xh({toTokenUsdPrice:v,fromTokenUsdPrice:E});return ft.createElement(Ih,null,ft.createElement(vr,{variant:S||y?"label":"body",size:S||y?"medium":"small",color:bh({error:S,warning:y,isDarkTheme:f})},BE.t("Slippage:")," ",d,"%"),u?ft.createElement(ME,{height:16,width:104,variant:"rounded"}):E&&v&&ft.createElement(Ah,null,ft.createElement(vr,{className:"rate-text",variant:"body",size:"small"},"1"),ft.createElement(Nc,{className:"rate-text",variant:"body",size:"small"},x.symbol),ft.createElement(WE,{id:"widget-home-page-change-rate-button",onClick:r},ft.createElement(LE,{size:14,color:"secondary"})),ft.createElement(PE,{container:N(),side:"top",sideOffset:4,content:ft.createElement(vr,{className:"rate-text",variant:"body",size:"small"},b)},ft.createElement(vr,{className:"rate-text",variant:"body",size:"small"},B)),ft.createElement(Nc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&&ft.createElement(vr,{color:"neutral600",variant:"body",size:"small"},"~",Eh(Number(b),w.usdPrice))))}i(Bc,"SwapMetrics");import{i18n as UE}from"@lingui/core";import{Header as zE}from"@rango-dev/ui";import go,{useEffect as qE,useState as QE}from"react";import{i18n as DE}from"@lingui/core";import{Divider as Lc,FullExpandedQuote as $E,Typography as FE}from"@rango-dev/ui";import ve from"react";import{styled as Wc}from"@rango-dev/ui";var Nh=Wc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Bh=Wc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Wh=Wc("div",{width:"146px"});import{i18n as br}from"@lingui/core";import{Select as _E}from"@rango-dev/ui";import Lh from"react";function ya(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:br.t("Smart Routing")},{value:"FEE",label:br.t("Lowest Fee")},{value:"SPEED",label:br.t("Fastest Transfer")},{value:"NET_OUTPUT",label:br.t("Maximum Return")},{value:"PRICE",label:br.t("Maximum Output")}];return Lh.createElement(Wh,null,Lh.createElement(_E,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ya,"SelectStrategy");var Mh=3;function xr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:d,toToken:g,sortStrategy:h,error:f}=O(),{slippage:m,customSlippage:S}=k(),{findToken:y}=k(),C=c||N(),T=!!p&&p.results.length,w=S??m,x=i(E=>{if(!d||!g||!p)return null;let v={requestAmount:p.requestAmount,validationStatus:null,...E};return pn({currentQuote:v,userSlippage:w,findToken:y})},"getQuoteWarning"),A=f?.type===0||f?.type===1,I=p?.results?vi(h,p?.results):[];return ve.createElement(ve.Fragment,null,a&&ve.createElement(ve.Fragment,null,ve.createElement(Bh,null,ve.createElement(FE,{size:"xmedium",variant:"title"},DE.t("Sort by")),ve.createElement(ya,{container:C})),ve.createElement(Lc,{size:"10"})),e&&Array.from({length:Mh},(E,v)=>ve.createElement(ve.Fragment,{key:v},s?ve.createElement($E,{loading:!0}):ve.createElement(dr,{tagHidden:!1,type:"list-item",expanded:!1}),v!==Mh-1&&ve.createElement(Lc,{size:16}))),!e&&ve.createElement(ve.Fragment,null,T?I.map((E,v)=>{let b=x(E),B=Jl(E.swaps),L=I.length-1===v;return ve.createElement(ve.Fragment,{key:E.requestId},ve.createElement(Fo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:C,selected:l?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:b,fullExpandedMode:s,onClick:D=>{B||u("warning",b),u("error",B?.options||null),o(D)},type:"list-item"}),!L&&ve.createElement(Lc,{size:16}))}):A&&ve.createElement(Nh,null,ve.createElement(nr,{size:s?"large":"small",error:f,fetch:n}))))}i(xr,"Quotes");import{darkTheme as OE,styled as Ph}from"@rango-dev/ui";var _h=Ph("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${OE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Dh=Ph("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var HE=100;function Mc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=QE(!1),l=s?"":"is-hidden",{config:p}=k(),u=p?.variant==="full-expanded",d=xo();return qE(()=>{let g=null;return a?g=setTimeout(()=>{c(!0)},HE):(c(!1),g&&clearTimeout(g)),()=>{g&&clearTimeout(g)}},[a]),go.createElement(_h,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Di()} widget-expanded-quotes-container`,id:ot.EXPANDED_BOX_ID},go.createElement(zE,{title:UE.t("Routes"),suffix:go.createElement(go.Fragment,null,go.createElement(ya,{container:d}),go.createElement(_o,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),go.createElement(Dh,null,go.createElement(xr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:xo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Mc,"ExpandedQuotes");import{i18n as Qh}from"@lingui/core";import{SwapInput as Hh}from"@rango-dev/ui";import jE from"bignumber.js";import Er from"react";import{ReverseIcon as KE}from"@rango-dev/ui";import _c from"react";import{keyframes as GE,styled as $h}from"@rango-dev/ui";var Pc=450,VE=GE({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Fh=$h("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Oh=$h("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${VE} ${Pc}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function Dc(){let t=O.use.switchFromAndTo();return _c.createElement(Fh,null,_c.createElement(Oh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Pc),t()}},_c.createElement(KE,{size:12})))}i(Dc,"SwitchFromAndToButton");import{styled as Uh}from"@rango-dev/ui";var zh=Uh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),qh=Uh("div",{position:"relative"});function $c(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:d,inputUsdValue:g,outputAmount:h,outputUsdValue:f,selectedQuote:m}=O(),{connectedWallets:S,getBalanceFor:y}=k(),C=a?y(a):null,T=ei(C)?.amount??"0",w=C?new jE(C.amount).shiftedBy(-C.decimals):pe,x=!!s&&yu(S,s.name),A=!Os(m,d,g),I=!Os(m,d,f),E=!g||!f||!f.gt(0)?null:Gt(g.toString(),f.toString());return Er.createElement(zh,null,Er.createElement(qh,null,Er.createElement(Hh,{label:Qh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:A?void 0:_(g,4,4),realUsdValue:A?void 0:g?.toString(),error:A?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:N(),onSelectMaxBalance:()=>{let v=_(w,C?.decimals),b=C?.amount?v.split(",").join(""):"";p(b)},anyWalletConnected:S.length>0}),Er.createElement(Dc,null)),Er.createElement(Hh,{sharpBottomStyle:!r&&(!!m||e),label:Qh.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:_(Gt(g,f),2,2),warningLevel:Vt(E??0),price:{value:_(h,6,6),usdValue:I?void 0:_(f,4,4),realValue:h?.toString(),realUsdValue:I?void 0:f?.toString(),error:I?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i($c,"Inputs");import{warn as XE}from"@rango-dev/logging-core";import{useCallback as YE,useEffect as ZE,useRef as JE,useState as RE}from"react";function Gh(){let{fetch:t,loading:e,cancelFetch:o}=aa({request:async(n,r)=>await pt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Gh,"useFetchAllQuotes");var eI=600;function Sa({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Gh(),{excludeLiquiditySources:n,routing:r}=k().config,{connectedWallets:a}=k(),c=a.some(le=>le.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:g,sortStrategy:h,resetQuote:f,error:m,warning:S,setSelectedQuote:y,updateQuotePartialState:C}=O(),{slippage:T,customSlippage:w,affiliatePercent:x,affiliateRef:A,affiliateWallets:I,fetchStatus:E}=k(),v=k().getLiquiditySources(),b=k().getDisabledLiquiditySources(),B=k().excludeLiquiditySources(),{findToken:L}=k(),[D,q]=RE(!0),J=JE(u),G=w??T,te=!l||!p||zt(l,p)||!Mn(u),ee=i(le=>{q(le)},"resetState"),Y=i(le=>{let{fromToken:fe,toToken:ke,inputAmount:et,liquiditySources:Q,excludeLiquiditySources:W,disabledLiquiditySources:V,slippage:K,affiliateRef:j,affiliatePercent:X,affiliateWallets:ce}=le;if(D||ee(!0),!te&&fe&&ke){f();let Qe=Qd({fromToken:fe,toToken:ke,inputAmount:et,liquiditySources:Q,excludeLiquiditySources:W,disabledLiquiditySources:V,wallets:a,slippage:K,affiliateRef:j,affiliatePercent:X,affiliateWallets:ce,contractCall:c});Ro("experimental",r)&&(Qe.experimental=!0),Ro("avoidNativeFee",r)&&(Qe.avoidNativeFee=!0),Ro("enableCentralizedSwappers",r)&&(Qe.enableCentralizedSwappers=!0),r?.maxLength&&(Qe.maxLength=r.maxLength),e(Qe).then(tt=>{let Oe=vi(h,tt.results),To=Wd(g,Oe,tt.requestAmount);q(!1),C("quotes",tt),y(To),sa({diagnosisMessages:tt.diagnosisMessages,requestId:To?.requestId||"",swaps:To?.swaps});let Va=To&&pn({currentQuote:To,userSlippage:G,findToken:L});C("warning",Va)}).catch(tt=>{let Oe=la(tt);(Oe.type===0||Oe.type===1)&&f(),Oe.type!==2&&(C("error",Oe),q(!1),XE(new Error("quote error"),{tags:{...Oe,type:je[Oe.type],requestBody:Qe}}))})}},"fetch"),be=YE(Kr(le=>{Y(le)},eI),[te]);return ZE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(te){q(!1),(g||m||S)&&f();return}if(!Mn(u)&&d?.eq(0)){ee(!1),o();return}f(),ee(!0);let le=Y;return J.current&&J.current!=u&&(le=be),J.current=u,le({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:B,disabledLiquiditySources:b,slippage:G,affiliateRef:A,affiliatePercent:x,affiliateWallets:I,contractCall:c}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,te,v?.length,n,b.length,G,A,x,c,JSON.stringify(I)]),{fetch:()=>Y({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:B,disabledLiquiditySources:b,slippage:G,affiliateRef:A,affiliatePercent:x,affiliateWallets:I,contractCall:c}),loading:D}}i(Sa,"useSwapInput");function Vh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Te.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Vh,"emitPreventableEvent");var sI=nI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),lI=300;function Xh(){let t=aI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:g}=O(),[h,f]=jh(!1),{isLargeScreen:m,isExtraLargeScreen:S}=fn(),{fetch:y,loading:C}=Sa({refetchQuote:a}),{config:T,fetchStatus:w,connectedWallets:x,customSlippage:A,slippage:I,setSlippage:E,setCustomSlippage:v}=k(),{isActiveTab:b}=oe(),[B,L]=jh(!1),q=en(A!==null?A:I),G=Od({fetchMetaStatus:w,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),M=bu(m,S,T?.variant),te=!!n&&!!e&&!!o&&new iI(n).gt(0)&&!Yd(e,o),ee=te&&w==="success"&&C,Y=q?.quoteValidation||c,fe=(!M||M&&l?.results.length)&&(Y||s),ke=!!e&&!!o,et=ke&&!!q,Q=(r||s)&&!B?y:void 0,W=i(j=>{M&&h?(f(!1),setTimeout(()=>{t(j)},lI)):t(j)},"onHandleNavigation"),V=i(j=>{r?.requestId!==j.requestId&&(L(!1),p(j))},"onClickOnQuote"),K=i(j=>{if(j){if(oi.includes(j)){E(j),v(null);return}v(j)}},"onChangeSlippage");return Kh(()=>{u(),g("refetchQuote",!0)},[]),Kh(()=>{f(te)},[te]),ye.createElement(sI,null,ye.createElement(ie,{height:"auto",footer:ye.createElement(oI,{id:`widget-swap-${G.action}-btn`,type:"primary",size:"large",disabled:G.disabled||!b,prefix:G.action==="confirm-warning"&&ye.createElement(rI,null),fullWidth:!0,onClick:()=>{G.action==="connect-wallet"?Vh({type:"clickConnectWallet"},()=>W(F.wallets)):G.action==="confirm-warning"?L(!0):W(F.confirmSwap)}},G.title),header:{onWallet:()=>{W(F.wallets)},hasBackButton:!1,title:T.title||tI.t("Swap"),suffix:ye.createElement(_o,{hidden:M?["refresh"]:void 0,onClickRefresh:Q,onClickHistory:()=>W(F.swaps),onClickSettings:()=>{W(F.settings)}})}},ye.createElement(ae,null,ye.createElement($c,{fetchingQuote:ee,fetchMetaStatus:w,isExpandable:M,onClickToken:j=>{W(j==="from"?F.fromSwap:F.toSwap)}}),ye.createElement(Fc,{size:"2"}),M?null:ye.createElement(Fo,{quote:r,loading:ee,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:Y,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{g("refetchQuote",!1),W(F.routes)}:void 0}),ke&&ye.createElement(ye.Fragment,null,ye.createElement(Fc,{size:8}),ye.createElement(Bc,{quoteError:s,quoteWarning:Y,fromToken:e,toToken:o,quote:r,loading:ee})),fe?ye.createElement(ye.Fragment,null,ye.createElement(ar,{warning:Y,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:y,showWarningModal:B,confirmationDisabled:!b,onOpenWarningModal:()=>L(!0),onCloseWarningModal:()=>L(!1),onChangeSlippage:K,onConfirmWarningModal:()=>{L(!1),d(!0),W(F.confirmSwap)},onChangeSettings:()=>W(F.settings)})):null,et&&ye.createElement(ye.Fragment,null,ye.createElement(Fc,{size:"10"}),ye.createElement(wh,{onChangeSettings:()=>W(F.settings)})),ye.createElement(Ec,null))),M?ye.createElement(Mc,{loading:ee,onClickOnQuote:V,fetch:y,onClickRefresh:Q,isVisible:h}):null)}i(Xh,"Home");import{i18n as Yh}from"@lingui/core";import{Alert as cI,Divider as pI,List as uI,ListItemButton as dI,Radio as mI,RadioRoot as fI,Typography as gI}from"@rango-dev/ui";import Dt from"react";function ho(){let{setLanguage:t,language:e,config:o}=k(),n=Wu,r=o?.language||tn;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||tn),resetLanguage:()=>t(null)}}i(ho,"useLanguage");function Zh(){let{activeLanguage:t,changeLanguage:e,languages:o}=ho(),n=Ve(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Dt.createElement(gI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Dt.createElement(mI,{value:s}),start:Dt.createElement(l,null)}});return Dt.createElement(ie,{header:{title:Yh.t("Language")}},Dt.createElement(ae,null,Dt.createElement(cI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Dt.createElement(pI,{size:"8"}),Dt.createElement(fI,{value:t},Dt.createElement(uI,{type:Dt.createElement(dI,{title:Yh.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(Zh,"LanguagePage");import{i18n as eo}from"@lingui/core";import{Button as kI,Checkbox as TI,Image as wI,ListItemButton as vI,NotFound as bI,Typography as xI}from"@rango-dev/ui";import Re,{useState as EI}from"react";import{Checkbox as SI,Skeleton as Rh}from"@rango-dev/ui";import Ar from"react";import{styled as Oc}from"@rango-dev/ui";var Ir=Oc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Uc=Oc("div",{width:80,display:"flex",justifyContent:"flex-end"}),zc=Oc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as hI,styled as yI}from"@rango-dev/ui";var Jh=yI(hI,{height:61});var CI=30;function qc(){return Ar.createElement(Ir,null,Array.from(Array(CI),(t,e)=>Ar.createElement(Jh,{hasDivider:!0,key:e,start:Ar.createElement(Rh,{variant:"circular",width:35,height:35}),title:Ar.createElement(Rh,{variant:"text",size:"large",width:90}),end:Ar.createElement(SI,{checked:!1})})))}i(qc,"LoadingLiquiditySourceList");function Qc({sourceType:t}){let e=k().fetchStatus,o=k().swappers(),n=k().getDisabledLiquiditySources(),[r,a]=EI(""),s=k().toggleLiquiditySource,c=k().isInCampaignMode(),l=ii(o,n),p={Exchanges:eo.t("Exchanges"),Bridges:eo.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(y=>u.includes(y.type)),g=d.length===d.filter(y=>y.selected).length,h=i(()=>{d.forEach(y=>{g?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),f=d.map(y=>{let{selected:C,groupTitle:T,logo:w,id:x,...A}=y;return{id:`widget-setting-liquidity-source-${iu(x.toLowerCase())}-item-btn`,start:Re.createElement(wI,{src:w,size:22,type:"circular"}),onClick:()=>{c||s(T)},end:Re.createElement(TI,{checked:C,disabled:c}),title:Re.createElement(xI,{variant:"title",size:"xmedium"},eo.t(T)),selected:C,groupTitle:T,logo:w,...A}}),m=i(y=>{let C=y.target.value;a(C)},"handleSearch"),S=f;return r&&(S=f.filter(y=>Wt(y.groupTitle,r))),Re.createElement(ie,{header:{title:eo.t(t),suffix:Re.createElement(Uc,null,Re.createElement(kI,{id:`widget-liquidity-source-${g?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},g?eo.t("Deselect all"):eo.t("Select all")))}},Re.createElement(ae,{view:!0},Re.createElement(It,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:eo.t("Search {sourceType}",{sourceType:p[t]}),onChange:m}),e==="loading"&&Re.createElement(qc,null),!S.length&&r?Re.createElement(zc,null,Re.createElement(bI,{title:eo.t("No results found"),description:eo.t("Try using different keywords")})):e==="success"&&Re.createElement(Ir,{disabled:c,className:"widget-liquidity-source-list"},S.map(y=>{let{groupTitle:C,...T}=y;return Re.createElement(Re.Fragment,{key:y.id},Re.createElement(vI,{style:{height:"61px"},...T,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Qc,"LiquiditySourcePage");import{i18n as II}from"@lingui/core";import Ca from"react";import{useNavigate as AI}from"react-router-dom";function ey(){let t=AI(),e=Ve(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:c,loading:l}=Sa({refetchQuote:n}),p=i(g=>{r(g),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${F.settings}`,d=`../${F.wallets}`;return Ca.createElement(ie,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:II.t("Routes"),suffix:Ca.createElement(_o,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Ca.createElement(ae,null,Ca.createElement(xr,{fetch:c,loading:l,onClickOnQuote:p})))}i(ey,"RoutesPage");import{i18n as sy}from"@lingui/core";import{Divider as ly,getCategoriesCount as FI,SelectableCategoryList as OI}from"@rango-dev/ui";import to,{useState as cy}from"react";import{useNavigate as UI}from"react-router-dom";import{i18n as Hc}from"@lingui/core";import{Divider as LI,Image as MI,ListItemButton as PI,NotFound as _I,Typography as ay}from"@rango-dev/ui";import gt,{useEffect as DI,useState as $I}from"react";var ty=i((t,e,o)=>t.filter(n=>jr(n.type,o)).filter(n=>lt(n.name,e)||lt(n.displayName,e)),"filterBlockchains");import{ImageContainer as NI,styled as oy}from"@rango-dev/ui";var ny=oy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),ka=oy(Tl,{padding:0,margin:0,listStyle:"none",[`& ${NI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as BI,Skeleton as ry}from"@rango-dev/ui";import Ta from"react";var WI=20;function iy(){return Ta.createElement(ka,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(WI),t=>Ta.createElement(BI,{key:t,hasDivider:!0,start:Ta.createElement(ry,{variant:"circular",width:35,height:35}),title:Ta.createElement(ry,{variant:"text",size:"large",width:90})})))}i(iy,"LoadingBlockchainList");function Gc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=$I(e),{fetchStatus:l}=k();DI(()=>{c([...ty(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?gt.createElement(_I,{title:Hc.t("No results found"),description:Hc.t("Try using different keywords")}):gt.createElement(ka,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>gt.createElement(PI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:gt.createElement(MI,{src:u.logo,size:30}),title:gt.createElement(ay,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return gt.createElement(gt.Fragment,null,a&&gt.createElement(gt.Fragment,null,gt.createElement(ay,{variant:"label",size:"large"},Hc.t("Select Chain")),gt.createElement(LI,{size:4})),gt.createElement(ny,null,l==="loading"&&gt.createElement(iy,null),l==="success"&&p()))}i(Gc,"BlockchainList");function wa(t){let{type:e}=t,o=Ve(),[n,r]=cy(""),[a,s]=cy("ALL"),c=O.use.setToBlockchain(),l=O.use.setFromBlockchain(),{fetchStatus:p}=k(),u=UI(),d=k().blockchains({type:e}),g=FI(d),h=!t.hideCategory&&g!==1;return to.createElement(ie,{header:{title:sy.t("Select Chain")}},to.createElement(ae,{view:!0},h&&to.createElement(to.Fragment,null,to.createElement(OI,{setCategory:s,category:a,blockchains:d,isLoading:p==="loading"}),to.createElement(ly,{size:24})),to.createElement(It,{value:n,autoFocus:!0,placeholder:sy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),to.createElement(ly,{size:16}),to.createElement(Gc,{list:d,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:f=>{e==="custom-token"?u(`..?blockchain=${f.name}`,{replace:!0}):(e==="source"?l(f):c(f),o())}})))}i(wa,"SelectBlockchainPage");import{i18n as xa}from"@lingui/core";import{Divider as hy,Spinner as tA}from"@rango-dev/ui";import yo,{useEffect as oA,useState as nA}from"react";import{useNavigate as rA}from"react-router-dom";import{i18n as jc}from"@lingui/core";import{BlockchainsChip as va,Divider as my,Image as fy,Skeleton as VI,Tooltip as KI,Typography as Xc}from"@rango-dev/ui";import xe from"react";import{useEffect as QI}from"react";var py=["ETH","COSMOS","OSMOSIS"];function Vc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(zI),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let c=o.limit-e.length;for(let l=0;l<=c;l++){let p=n[l];s=s.filter(u=>p.name!==u)}}n.sort(qI(s)),r=n.splice(a)}return{list:n,more:r}}i(Vc,"prepare");function zI(t,e){let o=py,n=o.findIndex(c=>c===t.name),r=o.findIndex(c=>c===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(zI,"sortByMostUsedBlockchains");function qI(t){return i(function(o,n){let r=t.findIndex(l=>l===o.name),a=t.findIndex(l=>l===n.name),s=r>-1,c=a>-1;return s&&c?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(qI,"generateSortByPreferredBlockchainsFor");function uy(t,e){return!!e.list.find(o=>o.name===t)}i(uy,"isInVisibleList");function Kc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=k();QI(()=>{if(e?.selected){let a=Vc(t,o,e);uy(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Vc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Kc,"usePrepareBlockchainList");import{styled as HI}from"@rango-dev/ui";var dy=HI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var jI=6,XI=12;function Yc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=Kc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=k(),p=O.use.resetToBlockchain(),u=O.use.resetFromBlockchain(),d=c.more.length>0,g=c.more.length===1,h=!g&&d;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(my,{size:12}),xe.createElement(Xc,{variant:"label",size:"large"},jc.t("Select Chain"))),xe.createElement(my,{size:12}),xe.createElement(dy,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?jI:XI),(f,m)=>xe.createElement(VI,{key:m,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(va,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(Xc,{variant:"body",size:"xsmall",color:"secondary500"},jc.t("All"))),c.list.map(f=>xe.createElement(KI,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:N()},xe.createElement(va,{className:"widget-blockchains-section-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(fy,{src:f.logo,size:30})))),g?xe.createElement(va,{className:"widget-blockchains-section-only-item-btn",key:c.more[0].name,selected:!!n&&n.name===c.more[0].name,onClick:()=>r(c.more[0])},xe.createElement(fy,{src:c.more[0].logo,size:30})):null,h?xe.createElement(va,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(Xc,{variant:"body",size:"xsmall",color:"secondary500"},jc._("More +{count}",{count:c.more.length}))):null)))}i(Yc,"BlockchainsSection");import{useCallback as ZI,useRef as JI,useState as Zc}from"react";function Jc(){let t=k().blockchains(),e=JI(null),{customTokens:o}=k(),[n,r]=Zc(!1),[a,s]=Zc([]),[c,l]=Zc(null),p=i(async(g,h)=>{l(null),r(!0),s([]);try{let f=await pt().searchCustomTokens({query:g,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(C=>Qt(C))),S=new Set(t.map(C=>C.name)),y=f.tokens.filter(C=>S.has(C.blockchain)&&!m.has(Qt(C)));s(y),r(!1)}catch(f){l(f instanceof Error?f.message:"something went wrong"),s([]),f?.name!=="CanceledError"&&r(!1)}},"fetch"),u=ZI(Kr((g,h)=>{e.current?.signal.aborted||p(g,h)},600),[t.length]);return{fetch:(g,h)=>{e.current=new AbortController,s([]),r(!0),u(g,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Jc,"useSearchCustomTokens");function ba(t,e,o){return o&&t.length===1&&t[0].address===e?!1:t.length<20&&e.trim().length>=3}i(ba,"shouldSearchForCustomTokens");function gy(t,e,o,n,r){let a=[...t];return ba(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(gy,"prepareTokensList");function Ea(t){let{type:e}=t,o=rA(),n=Ve(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=O(),{getBalanceFor:u}=k(),{fetch:d,loading:g,tokens:h,cancel:f}=Jc(),[m,S]=nA(""),y=e==="source"?r:a,C=y?.name??"",T=k().blockchains({type:e}),w=k().tokens({type:e,blockchain:C,searchFor:m,getBalanceFor:u}),x=gy(w,h,m,g,y?.name),A=i(v=>{e==="source"?l(v):p(v)},"updateBlockchain"),I=i(v=>{e==="source"?s({token:v,meta:{blockchains:T}}):c({token:v,meta:{blockchains:T}})},"updateToken"),E={source:xa.t("Source"),destination:xa.t("Destination")};return oA(()=>(ba(w,m,y?.name)&&d(m,y?.name??void 0),()=>{f()}),[w.length,m,y?.name]),yo.createElement(ie,{header:{title:xa.t("Swap {type}",{type:E[e]})}},yo.createElement(ae,null,yo.createElement(Yc,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:v=>{A(v)}}),yo.createElement(hy,{size:24}),yo.createElement(It,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:xa.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>S(""),onChange:v=>S(v.target.value),suffix:ba(w,m,y?.name)&&g?yo.createElement(tA,{size:12,color:"secondary"}):void 0}),yo.createElement(hy,{size:16}),yo.createElement(Sr,{list:x,selectedBlockchain:C,searchedFor:m,type:e,onChange:v=>{I(v);let b=T.find(B=>v.blockchain===B.name);b&&A(b),n()}})))}i(Ea,"SelectSwapItemsPage");import{i18n as op}from"@lingui/core";import{Alert as WA,Button as LA,styled as MA}from"@rango-dev/ui";import Qo from"react";import{useInRouterContext as PA,useSearchParams as _A}from"react-router-dom";import{i18n as wy}from"@lingui/core";import{Alert as lA,Divider as ep,InfoIcon as cA,SlippageIcon as pA,TextField as uA,Tooltip as dA,Typography as vy}from"@rango-dev/ui";import ze from"react";import{Chip as iA,styled as Nr,TextField as aA}from"@rango-dev/ui";var yy=Nr("div",{paddingTop:"$5",padding:"$10 $5"}),Sy=Nr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${aA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Cy=Nr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Ia=Nr("div",{maxWidth:"280px",padding:"$10"}),ky=Nr(iA,{width:"61px",flexShrink:0});import{i18n as Rc}from"@lingui/core";import{Typography as sA}from"@rango-dev/ui";import Br from"react";function Ty(){return Br.createElement(Ia,null,Br.createElement(sA,{variant:"label",size:"medium",color:"neutral700"},Rc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Br.createElement("br",null),Br.createElement("br",null),Br.createElement("b",null,Rc.t("Warning")),":\xA0",Rc.t("This setting is applied to each step (e.g. 1Inch, Thorchain, etc.), meaning only that specific step will be reverted, not the entire route.")))}i(Ty,"SlippageTooltipContent");function tp(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=k(),r=o!==null?en(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let d=u;u>$n&&(d=$n),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;su(u)||(p.value=u.slice(0,-1))},"onInput");return ze.createElement(yy,null,ze.createElement(Cy,null,ze.createElement(pA,{size:16,color:"gray"}),ze.createElement(ep,{direction:"horizontal",size:4}),ze.createElement(vy,{variant:"title",size:"xmedium"},wy.t("Slippage tolerance per swap")),ze.createElement(ep,{direction:"horizontal",size:4}),ze.createElement(dA,{container:N(),side:"top",sideOffset:4,content:ze.createElement(Ty,null)},ze.createElement(cA,{color:"gray"}))),ze.createElement(Sy,null,oi.map((l,p)=>{let u=`slippage-${p}`;return ze.createElement(ky,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),ze.createElement(uA,{type:"number",min:"0.01",max:"30",step:"0.01",status:r?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&ze.createElement(vy,{variant:"body",size:"small"},"%"),placeholder:wy.t("Custom")})),r&&ze.createElement(ze.Fragment,null,ze.createElement(ep,{size:10}),ze.createElement(lA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(tp,"Slippage");import{i18n as wt}from"@lingui/core";import{AutoThemeIcon as by,BridgesIcon as mA,ChevronRightIcon as Aa,DarkModeIcon as xy,Divider as Wr,ExchangeIcon as fA,InfinityIcon as gA,InfoIcon as hA,LanguageIcon as yA,LightModeIcon as Ey,List as SA,ListItem as CA,ListItemButton as kA,Skeleton as TA,styled as wA,Switch as vA,Tabs as bA,TargetIcon as xA,Tooltip as EA,Typography as st}from"@rango-dev/ui";import $ from"react";import{useNavigate as IA}from"react-router-dom";var AA=wA("div",{width:"202px",height:"$40"}),NA=[{id:"light",icon:$.createElement(Ey,{color:"black",size:24}),tooltip:$.createElement(st,{size:"xsmall",variant:"body"},wt.t("Light"))},{id:"dark",icon:$.createElement(xy,{color:"black",size:24}),tooltip:$.createElement(st,{size:"xsmall",variant:"body"},wt.t("Dark"))},{id:"auto",icon:$.createElement(by,{color:"black",size:24}),tooltip:$.createElement(st,{size:"xsmall",variant:"body"},wt.t("Auto"))}],BA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return $.createElement(by,{...e});case"dark":return $.createElement(xy,{...e});default:return $.createElement(Ey,{...e})}},"getThemeIcon");function Iy(){let t=IA(),{theme:e}=k().config,{setTheme:o,theme:n}=k(),{activeLanguage:r,languages:a}=ho(),s=a.find(M=>M.local===r)?.label,c=k().fetchStatus,l=k().swappers(),p=k().getDisabledLiquiditySources(),{config:{features:u}}=k(),d=k().customTokens(),g=nt("theme",u),h=nt("liquiditySource",u),f=nt("language",u),m=nt("customTokens",u),S=k().infiniteApprove,y=k().toggleInfiniteApprove,C=ii(l,p),T=C.filter(M=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(M.type)),w=T.length,x=T.filter(M=>M.selected).length,A=C.filter(M=>M.type==="DEX"),I=A.length,E=A.filter(M=>M.selected).length,v=i((M,te)=>{switch(c){case"loading":return $.createElement(TA,{variant:"text",size:"medium",width:50});case"failed":return $.createElement(st,{variant:"body",size:"medium",color:"$error500"},wt.t("Loading failed"));default:return $.createElement(st,{variant:"body",size:"medium"},`${M} / ${te}`)}},"handleSwapperEndItem"),b={id:"widget-setting-bridge-item-btn",title:$.createElement(st,{variant:"title",size:"xmedium"},wt.t("Bridges")),end:$.createElement($.Fragment,null,v(x,w),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),onClick:()=>t(F.bridges),start:$.createElement(mA,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:$.createElement(st,{variant:"title",size:"xmedium"},wt.t("Exchanges")),end:$.createElement($.Fragment,null,v(E,I),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),start:$.createElement(fA,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},L={id:"widget-setting-custom-tokens-item-btn",title:$.createElement(st,{variant:"title",size:"xmedium"},wt.t("Custom Tokens")),end:$.createElement($.Fragment,null,$.createElement(st,{variant:"body",size:"medium"},`${d.length}`),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),start:$.createElement(xA,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},D={id:"widget-setting-language-item-btn",title:$.createElement(st,{variant:"title",size:"xmedium"},wt.t("Language")),start:$.createElement(yA,{color:"gray",size:16}),end:$.createElement($.Fragment,null,$.createElement(st,{variant:"body",size:"medium"},s),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),onClick:()=>t(F.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:$.createElement($.Fragment,null,$.createElement(st,{variant:"title",size:"xmedium"},wt.t("Infinite approval")),$.createElement(Wr,{direction:"horizontal",size:4}),$.createElement(EA,{side:"top",sideOffset:4,container:N(),content:$.createElement(Ia,null,$.createElement(st,{variant:"label",size:"medium",color:"neutral700"},$.createElement("b",null,wt.t("Warning")),":\xA0",wt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},$.createElement(hA,{color:"gray"}))),start:$.createElement(gA,{color:"gray",size:16}),end:$.createElement(vA,{checked:S}),onClick:y},J={id:"widget-setting-theme-item-btn",type:$.createElement(CA,null),title:$.createElement(st,{variant:"title",size:"xmedium"},wt.t("Theme")),end:$.createElement(AA,null,$.createElement(bA,{container:N(),items:NA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:M=>o(M.id),type:"primary",borderRadius:"small"})),start:BA(n)},G=h?[]:[b,B];return m||G.push(L),f||G.push(D),G.push(q),!e?.singleTheme&&!g&&G.push(J),$.createElement(SA,{type:$.createElement(kA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:G})}i(Iy,"SettingsLists");var DA=MA("div",{paddingLeft:"$8"});function Ay(){let{isInCampaignMode:t,updateCampaignMode:e}=k(),o=t(),[,n]=_A(),r=PA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Qo.createElement(ie,{header:{title:op.t("Settings")}},Qo.createElement(ae,null,o&&Qo.createElement(WA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:op.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:Qo.createElement(DA,null,Qo.createElement(LA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},op.t("Reset")))}),Qo.createElement(tp,null),Qo.createElement(Iy,null)))}i(Ay,"SettingsPage");import{i18n as GN}from"@lingui/core";import{cancelSwap as VN}from"@rango-dev/queue-manager-rango-preset";import{useManager as KN}from"@rango-dev/queue-manager-react";import{Alert as jN}from"@rango-dev/ui";import Sp from"react";import{useParams as XN}from"react-router-dom";import{i18n as Ft}from"@lingui/core";import{getCurrentNamespaceOfOrNull as WN,getCurrentStep as LN,getRelatedWalletOrNull as MN}from"@rango-dev/queue-manager-rango-preset";import{Button as TS,Divider as PN,QuoteCost as _N,StepDetails as DN,Typography as dp}from"@rango-dev/ui";import{useWallets as $N}from"@rango-dev/wallets-react";import wS from"bignumber.js";import{PendingSwapNetworkStatus as An}from"rango-types";import Ce,{useEffect as mp,useRef as fp,useState as $a}from"react";import{useNavigate as FN}from"react-router-dom";import{i18n as So}from"@lingui/core";var $A=[So.t("Sunday"),So.t("Monday"),So.t("Tuesday"),So.t("Wednesday"),So.t("Thursday"),So.t("Friday"),So.t("Saturday")];function Ny(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?So.t("Today"):`${$A[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Ny,"timeSince");function By(t){return t.finishTime?Ny(parseInt(t.finishTime)):Ny(parseInt(t.creationTime))}i(By,"getSwapDate");import Mr from"react";import{i18n as Na}from"@lingui/core";import{Button as Wy,Divider as np,MessageBox as FA}from"@rango-dev/ui";import Co from"react";var Ly=i(({onCancel:t,onClose:e})=>Co.createElement(Co.Fragment,null,Co.createElement(np,{size:20}),Co.createElement(FA,{type:"error",title:Na.t("Cancel Swap"),description:Na.t("Are you sure you want to cancel this swap?")}),Co.createElement(np,{size:32}),Co.createElement(Wy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Na.t("Yes, Cancel it")),Co.createElement(np,{size:12}),Co.createElement(Wy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Na.t("No, Continue"))),"CancelContent");import{i18n as Ba}from"@lingui/core";import{Button as My,Divider as rp,MessageBox as OA,Typography as UA}from"@rango-dev/ui";import oo from"react";var Py=i(({onDelete:t,onClose:e})=>oo.createElement(oo.Fragment,null,oo.createElement(rp,{size:20}),oo.createElement(OA,{type:"error",title:Ba.t("Delete Transaction"),description:Ba.t("Are you sure you want to delete this swap?")}),oo.createElement(rp,{size:32}),oo.createElement(My,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Ba.t("Yes, Delete it")),oo.createElement(rp,{size:12}),oo.createElement(My,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},oo.createElement(UA,{variant:"title",size:"medium",color:"primary"},Ba.t("No, Cancel")))),"DeleteContent");import{i18n as zA}from"@lingui/core";import{Button as qA,Divider as QA,MessageBox as HA}from"@rango-dev/ui";import Ho from"react";var _y=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Ho.createElement(Ho.Fragment,null,Ho.createElement(HA,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Ho.createElement(Ho.Fragment,null,Ho.createElement(QA,{size:"30"}),Ho.createElement(qA,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},zA.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as sN,getCurrentStep as lN,getRelatedWalletOrNull as cN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as pN}from"@rango-dev/ui";import{useWallets as uN}from"@rango-dev/wallets-react";import zy from"react";import{i18n as En}from"@lingui/core";import{Alert as $y,Button as VA,Checkbox as KA,Divider as Ma,Image as jA,MessageBox as XA,Spinner as YA,WarningIcon as ZA}from"@rango-dev/ui";import{useWallets as JA}from"@rango-dev/wallets-react";import he,{useState as RA}from"react";import{darkTheme as GA,styled as Lr}from"@rango-dev/ui";var cX=Lr("div",{display:"flex",justifyContent:"center"}),pX=Lr("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Dy=Lr("img",{width:"100%"}),Wa=Lr("div",{position:"relative"}),La=Lr("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${GA} &`]:{$$color:"$warning600"}});var Fy=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=RA(null),{list:s}=vt(),c=oe.use.isActiveTab(),{state:l,connect:p}=JA(),u=s.find(x=>x.type===e.walletType),d=u?.needsNamespace?.data.find(x=>x.value===o?.namespace);if(!u)return null;let g=l(e.walletType),h=u.isHub&&o?.namespace?g.namespaces?.get(o.namespace):null,f=g.connecting||h?.connecting,m=u.isHub?h?.connected:g.connected,S=i(()=>m?En.t("Done"):r?En.t("Try again"):En.t("Connect"),"getButtonTitle"),y=i(()=>f?he.createElement(YA,{color:"info"}):r||m?null:he.createElement(KA,{checked:!0,disabled:!0}),"getNamespaceSuffix"),C=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(x){a(x)}},"handleConnect"),T=i(async()=>{if(m){n();return}C()},"handleClickButton"),w=i(()=>{if(!m)return null;let x=u?.isHub?h?.accounts?.[0]?.split(":"):g?.accounts?.[0]?.split(":"),A=x?.[x?.length-1];return A?ro(A):null},"getAddress");return he.createElement(he.Fragment,null,he.createElement(XA,{type:"warning",title:En.t("Connect {wallet}",{wallet:u.title}),description:En.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:he.createElement(Wa,null,he.createElement(jA,{src:u.image,size:45}),he.createElement(La,null,he.createElement(ZA,{color:"warning",size:10})))}),m&&!d&&he.createElement(he.Fragment,null,he.createElement(Ma,{size:10}),he.createElement($y,{type:"success",variant:"alarm",title:En.t("Wallet connected successfully.")})),r&&!d&&he.createElement(he.Fragment,null,he.createElement(Ma,{size:10}),he.createElement($y,{type:"error",title:r?.message,variant:"alarm"})),d&&he.createElement(he.Fragment,null,he.createElement(Ma,{size:30}),he.createElement(No,{namespace:d,suffix:y(),error:r?.message,connected:m,address:w()})),he.createElement(Ma,{size:"40"}),he.createElement(VA,{loading:f,type:"primary",id:"widget-connect-wallet-btn",onClick:T,disabled:!c},S()))},"ConnectWalletContent");import{i18n as Oy}from"@lingui/core";import{Button as eN,Divider as tN,Image as oN,MessageBox as nN,WarningIcon as rN}from"@rango-dev/ui";import{useWallets as iN}from"@rango-dev/wallets-react";import{detectInstallLink as aN}from"@rango-dev/wallets-shared";import no from"react";var Uy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=iN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(aN(n.installLink),"_blank"),"handleButtonClick");return no.createElement(no.Fragment,null,no.createElement(nN,{type:"warning",title:Oy.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:no.createElement(Wa,null,no.createElement(oN,{src:n.img,size:45}),no.createElement(La,null,no.createElement(rN,{color:"warning",size:10})))}),no.createElement(tN,{size:"40"}),no.createElement(eN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},Oy.t("Install")))},"InstallWalletContent");var qy=i(t=>{let{swap:e,onClose:o}=t,{state:n}=uN(),r=lN(e),a=r?cN(e,r):null,s=a?.walletType,c=s?Pn(n(s)):null,l=r?sN(e,r):null;return s?c===pN.NOT_INSTALLED?zy.createElement(Uy,{walletType:s}):zy.createElement(Fy,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function ip(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return Mr.createElement(R,{open:e,onClose:r,container:N()},o==="connectWallet"&&Mr.createElement(qy,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&Mr.createElement(_y,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&Mr.createElement(Py,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&Mr.createElement(Ly,{onClose:r,onCancel:()=>{r(),s()}}))}i(ip,"SwapDetailsModal");import{i18n as Pr}from"@lingui/core";import{Button as ap,Divider as _r,MessageBox as Gy,TokenAmount as dN,Typography as Vy}from"@rango-dev/ui";import Se from"react";import{Link as mN,useNavigate as fN}from"react-router-dom";var Qy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Hy="/profile";function sp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:d,diagnosisUrl:g}=t,h=fN(),{showProfileBanner:f}=oe();return Se.createElement(R,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(ot.SWAP_BOX_ID)||document.body},n==="success"?Se.createElement(Gy,{type:"success",title:Pr.t("Swap Successful")},Se.createElement(dN,{direction:"vertical",tooltipContainer:N(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),Se.createElement(_r,{size:12}),Se.createElement(Vy,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Se.createElement(Gy,{type:"error",title:Pr.t("Transaction Failed"),description:d}),Se.createElement(_r,{size:30}),n==="success"&&Se.createElement(Se.Fragment,null,f&&Se.createElement(Se.Fragment,null,Se.createElement(mN,{to:Hy},Se.createElement(Dy,{src:Qy,alt:"Profile Banner"})),Se.createElement(_r,{size:30})),Se.createElement(ap,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Pr.t("Done"))),Se.createElement(_r,{size:12}),g&&Se.createElement(Se.Fragment,null,Se.createElement(ap,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(g,"_blank")},Pr.t("Diagnosis")),Se.createElement(_r,{size:12})),Se.createElement(ap,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Se.createElement(Vy,{variant:"title",size:"medium",color:"primary"},Pr.t("See Details"))))}i(sp,"SwapDetailsCompleteModal");import{i18n as Da}from"@lingui/core";import{CopyIcon as EN,DoneIcon as IN,IconButton as AN,RangoExplorerIcon as NN,Tooltip as gS,Typography as hS,useCopyToClipboard as BN}from"@rango-dev/ui";import Nt from"react";import xN from"react";import{i18n as TN}from"@lingui/core";import{Alert as uS,IconButton as wN,LinkIcon as vN}from"@rango-dev/ui";import ko,{Fragment as bN}from"react";import{Alert as hN,ChevronDownIcon as yN,IconButton as SN}from"@rango-dev/ui";import In,{useState as CN}from"react";import{css as Dr,darkTheme as Ky,styled as $t,Typography as gN}from"@rango-dev/ui";var jy=$t(ae,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Ky} &`]:{color:"$secondary500"}}}}}),Xy=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Yy=$t("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),Zy=$t("div",{padding:"$0 $20 $20 $20"}),mY=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),Jy=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),fY=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Go=Dr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Ky} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Ry=Dr({padding:"$5 0"}),Pa=Dr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),eS=Dr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),tS=Dr({width:"100%",padding:"0 $20 $10"}),oS=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),nS=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),_a=$t(gN,{wordBreak:"break-word"});import{styled as lp}from"@rango-dev/ui";var rS=lp("div",{display:"flex",flexDirection:"column",gap:"$10"}),iS=lp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),aS=lp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function sS(t){let{message:e}=t,[o,n]=CN(!1);return In.createElement(hN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&In.createElement(SN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},In.createElement(iS,{rotated:o},In.createElement(yN,{size:12,color:"gray"}))),footer:In.createElement(aS,{open:o},In.createElement(_a,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(sS,"FailedAlert");import{i18n as lS}from"@lingui/core";import{Alert as cp,Button as cS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as kN}from"rango-types";import $r from"react";function pS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?$r.createElement(cp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:$r.createElement(cS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},lS.t("Change"))}):a===kN.WaitingForConnectingWallet?$r.createElement(cp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:$r.createElement(cS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},lS.t("Connect"))}):$r.createElement(cp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(pS,"WarningAlert");function pp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=Yn(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,d=u&&!c||p&&!s.explorerUrl?.length;return ko.createElement(rS,null,s.explorerUrl?.map((g,h,f)=>{let m=h+g.url,S=h===f.length-1,y=(S&&u||p)&&!d,C=S&&s.status==="failed";return ko.createElement(bN,{key:m},ko.createElement(uS,{id:"widget-swap-details-tx-alert",type:S&&(y&&"loading"||C&&"error")||"success",title:g.description?`${g.description} Tx`:TN.t("View transaction"),action:g.url&&ko.createElement(wN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(g.url,"_blank")},ko.createElement(vN,{size:12}))}))}),d&&ko.createElement(uS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&ko.createElement(pS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&ko.createElement(sS,{message:a}))}i(pp,"SwapDetailsAlerts");var dS=2e3;var mS=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:ht(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:_(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ht(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:_(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Bn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:ht(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:ht(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Bn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:xN.createElement(pp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function fS(t){if(Yn(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(fS,"getStepState");function yS(t){let{requestId:e}=t,[o,n]=BN(dS);return Nt.createElement(Yy,{className:Go()},Nt.createElement(hS,{variant:"label",size:"large",color:"neutral700"},Da.t("Request ID")),Nt.createElement("div",{className:Pa()},Nt.createElement(hS,{variant:"label",size:"small",color:"neutral700"},e),Nt.createElement(gS,{container:N(),content:o?Da.t("Copied To Clipboard"):Da.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Nt.createElement(AN,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Nt.createElement(IN,{size:16,color:"secondary"}):Nt.createElement(EN,{size:16,color:"gray"}))),Nt.createElement(oS,{target:"_blank",href:`${Hp}/swap/${e}`},Nt.createElement(gS,{container:N(),content:Da.t("View on Rango Explorer"),side:"bottom"},Nt.createElement(NN,{size:20})))))}i(yS,"RequestIdRow");import{i18n as SS}from"@lingui/core";import{Typography as CS}from"@rango-dev/ui";import up from"react";function kS(t){let{date:e,isFinished:o}=t;return up.createElement("div",{className:Go()},up.createElement(CS,{variant:"label",size:"large",color:"neutral700"},o?SS.t("Finished at"):SS.t("Created at")),up.createElement(CS,{variant:"label",size:"small",color:"neutral700"},e))}i(kS,"SwapDateRow");var ON=3e3;function gp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=$N(),l=k().blockchains(),p=k().swappers(),{findToken:u}=k(),d=O.use.retry(),g=FN(),h=fp(null),[f,m]=$a(!1),[S,y]=$a(null),[C,T]=$a(null),[w,x]=$a(null),A=fp(S),I=fp(C),E=Ne.use.getNotifications(),v=Ne.use.removeNotification(),b=E(),B=LN(e),L=B?.networkStatus,D=i(Me=>{m(!0),y(Me)},"handleChangeModalState"),q=i(()=>{m(!1)},"handleCloseModal"),J=i(()=>{T({type:"loading",title:Ft.t("Change Network"),description:`We\u2019re switching the connected network to ${ee?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),G=i(()=>{T({type:"success",title:Ft.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),M=i(Me=>{T({type:"error",title:Ft.t("Network Switch Failed"),description:Me?.message||j.detailedMessage.content})},"handleShowSwitchNetworkFailed"),te=Kd(e),ee=B?WN(e,B):null,Y=B?MN(e,B):null,be=By(e),le=jd(e),fe=i(Me=>!!c(Me)?.mobileWallet,"checkIsMobileWallet"),ke=!!L&&[An.WaitingForNetworkChange,An.NetworkChangeFailed].includes(L),et=!!Y?.walletType&&fe(Y.walletType),Q=!!Y&&!!ee&&a(Y.walletType,ee.network,ee),W=!!ee&&ke&&(et||Q),V=i(()=>{W&&(J(),s(Y.walletType,[{namespace:ee.namespace,network:ee.network}]).then(()=>{G()}).catch(Me=>{M(Me)}))},"handleSwitchNetwork"),K=i(()=>{D("switchNetwork"),V()},"handleSwitchNetworkClick"),j=Vd(e,B,c),X=mS({swap:e,switchNetworkIsAvailable:W,handleSwitchNetworkClick:K,showNetworkModal:L,setNetworkModal:D,message:j,blockchains:l,swappers:p}),ce=X.length,[Qe,tt]=[e.steps[0],e.steps[ce-1]],Oe=tt.outputAmount||tt.expectedOutputAmountHumanReadable,To=e.steps.reduce((Me,Ut)=>Me+parseFloat(Ut.feeInUsd||""),0),Va=e.steps.find(Me=>Me.diagnosisUrl)?.diagnosisUrl,Ka=_(parseFloat(Oe||"0")*(tt.toUsdPrice||0),4,4),xp=_(parseFloat(e.inputAmount)*(Qe.fromUsdPrice||0),4,4),Ep=Oe?new wS(Oe).multipliedBy(tt.toUsdPrice||0).toString():"",YS=new wS(e.inputAmount).multipliedBy(Qe.fromUsdPrice||0).toString(),ja=Gt(xp,Ka),Xa=j.detailedMessage.content||j.shortMessage,ZS=e.status==="success"?Ft.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:_(Oe,6,6),token:X[ce-1].to.token.displayName,conciseAddress:ro(e.wallets[X[ce-1].to.chain.displayName]?.address||""),chain:X[ce-1].to.chain.displayName}}):Ce.createElement(nS,null,Ce.createElement(dp,{variant:"body",size:"medium",color:"neutral700",align:"center"},Xa?"":Ft.t("Transaction was not sent."),te?`${Ft.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:te.outputAmount,symbol:te.symbol,blockchain:te.blockchain}})}`:""),Xa&&Ce.createElement(_a,{align:"center",variant:"body",size:"medium",color:"neutral700"},Ce.createElement("b",null,"Reason:")," ",Xa));return mp(()=>{b.find(Ut=>Ut.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(x(e.status),v(e.requestId),q()):w&&x(null))},[e.status,e.requestId]),mp(()=>{if(W){if(D("switchNetwork"),L===An.WaitingForNetworkChange){J();return}if(L===An.NetworkChangeFailed){M();return}return}if(L===An.WaitingForConnectingWallet){D("connectWallet");return}if(L===An.NetworkChanged){D("switchNetwork"),G();return}S&&["connectWallet","switchNetwork"].includes(S)&&q()},[L]),mp(()=>{if(A.current=S,I.current=C,S==="switchNetwork"&&C?.type==="success"){let Me=setTimeout(()=>{A.current==="switchNetwork"&&I.current?.type==="success"&&q()},ON);return()=>clearTimeout(Me)}},[S,C]),Ce.createElement(ie,{header:{title:Ft.t("Swap Details"),onCancel:e.status==="running"?()=>D("cancel"):void 0,suffix:e.status!=="running"&&Ce.createElement(lo,null,Ce.createElement(TS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>D("delete")},Ce.createElement(dp,{size:"medium",variant:"label",color:"error"},Ft.t("Delete"))))},footer:le&&!w&&Ce.createElement(TS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Me=wi(e,l,u);d(Me),setTimeout(()=>{g("../../")},0)}},Ft.t("Try again"))},Ce.createElement(jy,{compact:!0,ref:h},Ce.createElement(yS,{requestId:o}),Ce.createElement(kS,{date:be,isFinished:!!e.finishTime}),Ce.createElement("div",{className:eS()},Ce.createElement(_N,{fee:_(String(To),2,2),time:Ln(Yr(e.steps)),steps:ce}),Ce.createElement(lr,{from:{price:{value:_(e.inputAmount,6,6),usdValue:xp,realUsdValue:YS,realValue:e.inputAmount},token:{displayName:X[0].from.token.displayName,image:X[0].from.token.image},chain:{image:X[0].from.chain.image,displayName:X[0].from.chain.displayName}},to:{price:{value:_(Oe,6,6),usdValue:Ka,realUsdValue:Ep,realValue:Oe||""},token:{displayName:X[ce-1].to.token.displayName,image:X[ce-1].to.token.image},chain:{image:X[ce-1].to.chain.image,displayName:X[ce-1].to.chain.displayName}},percentageChange:_(ja,2,2),warningLevel:Vt(ja??0)})),Ce.createElement("div",{className:tS()},Ce.createElement(dp,{variant:"title",size:"small"},Ft.t("Swaps steps"))),Ce.createElement(PN,{size:8}),Ce.createElement(Zy,null,X.map((Me,Ut)=>{let Ip=Ut,Nn=fS(e.steps[Ut]),JS=Nn==="error"||Nn==="in-progress"||Nn==="warning"||Nn==="completed"&&Ut===X.length-1;return Ce.createElement(DN,{className:"widget-swap-details-step-item-container",key:Ip,step:Me,type:"swap-progress",ref:h,state:Nn,hasSeparator:Ut!==0,tabIndex:Ip,isFocused:JS,tooltipContainer:N()})}))),Ce.createElement(ip,{isOpen:f,state:S,switchNetworkModalState:C,onClose:q,onCancel:r,onDelete:n,message:j.detailedMessage.content,swap:e,handleSwitchNetwork:K}),Ce.createElement(sp,{open:!!w,diagnosisUrl:Va,onClose:()=>x(null),status:e.status==="success"?"success":"failed",priceValue:_(Oe,6,6),usdValue:Ka,realUsdValue:Ep,realValue:Oe||"",percentageChange:_(ja,2,2),token:{displayName:X[ce-1].to.token.displayName,image:X[ce-1].to.token.image},chain:{image:X[ce-1].to.chain.image},description:ZS}))}i(gp,"SwapDetails");import{i18n as Oa}from"@lingui/core";import{Divider as xS,NotFound as HN,Skeleton as Or,Typography as Ua}from"@rango-dev/ui";import Ie from"react";import{i18n as UN}from"@lingui/core";import{Divider as zN,Skeleton as qN,Typography as QN}from"@rango-dev/ui";import Ee from"react";import{css as Bt,styled as hp}from"@rango-dev/ui";var vS=hp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Fr=hp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Fa=hp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),z7=Bt({display:"flex",justifyContent:"space-between",alignItems:"center"}),q7=Bt({display:"flex",justifyContent:"space-between",alignItems:"center"}),Q7=Bt({paddingTop:"$15",display:"flex"}),H7=Bt({padding:"$15 $0"}),G7=Bt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),V7=Bt({paddingBottom:"$10"}),K7=Bt({display:"flex",justifyContent:"start",alignItems:"center"}),j7=Bt({paddingTop:"$5",display:"flex",alignItems:"center"}),X7=Bt({display:"flex",alignItems:"center"}),Y7=Bt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),bS=Bt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function yp(){return Ee.createElement(vS,null,Ee.createElement(pr,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(QN,{variant:"title",size:"small"},UN.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Fr,null,Ee.createElement(_t,{separator:!1}),Ee.createElement("div",{className:bS()},Ee.createElement(zN,{direction:"horizontal",size:20}),Ee.createElement(qN,{height:22,variant:"rectangular"}))),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement(_t,{separator:!1})),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement(_t,{separator:!1})),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement(_t,{separator:!1}))))}i(yp,"LoadingSwapDetails");function ES(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(ie,{header:{title:Oa.t("Swap Details"),suffix:Ie.createElement(lo,null)}},o&&Ie.createElement(Xy,null,Ie.createElement("div",{className:Go()},Ie.createElement(Ua,{variant:"label",size:"large",color:"neutral700"},`${Oa.t("Request ID")}`),Ie.createElement("div",{className:Pa()},Ie.createElement(Ua,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"})),Ie.createElement(xS,{direction:"horizontal",size:4}),Ie.createElement(Or,{width:16,height:16,variant:"rectangular"}),Ie.createElement(xS,{direction:"horizontal",size:4}),Ie.createElement(Or,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:Go()},Ie.createElement(Ua,{className:Ry(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"})),Ie.createElement(Ua,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"}))),Ie.createElement(yp,null)),!o&&Ie.createElement(Jy,null,Ie.createElement(HN,{title:Oa.t("Not found"),description:Oa.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(ES,"SwapDetailsPlaceholder");function IS(){let{manager:t,state:e}=KN(),o=!e.loadedFromPersistor,n=Tt(t),{requestId:r}=XN(),a=Ve(),{fetchStatus:s}=k();if(!r)return Sp.createElement(jN,{containerStyles:{margin:"20px"},type:"error",title:GN.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:g})=>g.requestId===r):void 0,p=i(()=>{if(l?.id){let g=t?.get(l.id);g&&VN(g)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(g){console.log(g)}},"onDelete"),d=l?.swap;return!d||c?Sp.createElement(ES,{requestId:r,showSkeleton:c}):Sp.createElement(gp,{swap:d,requestId:r,onCancel:p,onDelete:u})}i(IS,"SwapDetailsPage");import{i18n as AS}from"@lingui/core";import{Divider as YN,getCategoriesCount as ZN,SelectableCategoryList as JN,styled as BS,Typography as RN,Wallet as e0,WalletState as t0}from"@rango-dev/ui";import{useWallets as o0}from"@rango-dev/wallets-react";import Ot,{useState as NS}from"react";var n0=BS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),r0=BS(ae,{textAlign:"center"});function WS(){let{fetchStatus:t}=k(),[e,o]=NS("ALL"),n=k().blockchains(),{config:r}=k(),{state:a}=o0(),[s,c]=NS(),l=oe.use.isActiveTab(),{list:p}=vt(),u=Cu(p,n),g=ZN(u)!==1,h=ku(p,e),f=i(m=>{eu(p,r.multiWallets)||c(m)},"handleWalletItemClick");return Ot.createElement(ie,{header:{title:AS.t("Connect Wallets")}},Ot.createElement(r0,null,g&&Ot.createElement(Ot.Fragment,null,Ot.createElement(JN,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),Ot.createElement(YN,{size:24})),Ot.createElement(RN,{variant:"title",size:"xmedium",align:"center"},AS.t("Choose a wallet to connect.")),Ot.createElement(n0,null,h.map((m,S)=>{let C=a(m.type).namespaces,T=`wallet-${S}-${m.type}`,w=is(m,C);return Ot.createElement(e0,{key:T,...m,state:w?t0.PARTIALLY_CONNECTED:m.state,container:N(),onClick:()=>f(m),isLoading:t==="loading",disabled:!l})}),Ot.createElement(Kn,{id:"widget-state-full-connect-modal",wallet:s,onClose:()=>{c(void 0)}}))))}i(WS,"WalletsPage");function LS(){return Jd(),Vs(),i0([{path:F.home,element:qe.createElement(Xh,null)},{path:F.routes,element:qe.createElement(ey,null)},{path:F.fromSwap,children:[{index:!0,element:qe.createElement(Ea,{type:"source"})},{path:F.blockchains,element:qe.createElement(wa,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:qe.createElement(Ea,{type:"destination"})},{path:F.blockchains,element:qe.createElement(wa,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:qe.createElement(Ay,null)},{path:F.languages,element:qe.createElement(Zh,null)},{path:F.exchanges,element:qe.createElement(Qc,{sourceType:"Exchanges"})},{path:F.bridges,element:qe.createElement(Qc,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:qe.createElement(Zg,null)},{path:F.addCustomTokens,children:[{index:!0,element:qe.createElement(Vm,null)},{path:F.blockchains,element:qe.createElement(wa,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:qe.createElement(yh,null)},{path:F.swapDetails,element:qe.createElement(IS,null)}]},{path:F.wallets,element:qe.createElement(WS,null)},{path:F.confirmSwap,element:qe.createElement($g,null)}])}i(LS,"AppRoutes");import{useQueueManager as f0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as g0}from"rango-sdk";import{useContext as h0,useEffect as OS,useState as US}from"react";import{globalCss as a0}from"@rango-dev/ui";var MS=i(()=>a0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function PS(){let{setWatermark:t,setShowProfileBanner:e}=oe();return{fetchApiConfig:i(async()=>{let n=await fetch(`${qt("BASE_URL")}/meta/dapp/config?apiKey=${qt("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(PS,"useFetchApiConfig");import{useWallets as s0}from"@rango-dev/wallets-react";import{useEffect as l0,useRef as c0}from"react";function _S(){let{connect:t,state:e}=s0(),o=c0({}),{fetchStatus:n}=k(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);l0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(_S,"useForceAutoConnect");import{isApprovalTX as p0,RouteEventType as DS,StepEventType as $S,StepExecutionEventStatus as u0,WidgetEvents as za}from"@rango-dev/queue-manager-rango-preset";import{useEffect as FS}from"react";function Cp(){let t=Ne.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=k();FS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===$S.TX_EXECUTION&&s.status===u0.TX_SENT&&!p0(c)||s.type===$S.SUCCEEDED){let u=[],d=l.wallets[c?.fromBlockchain];if(d){let g=e.find(h=>h.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&h.walletType===d.walletType&&h.chain===c?.fromBlockchain);g&&u.push(g)}if(c?.fromBlockchain!==c?.toBlockchain){let g=l.wallets[c?.toBlockchain];if(g){let h=e.find(f=>f.address?.toLocaleLowerCase()===g.address?.toLocaleLowerCase()&&f.walletType===g.walletType&&f.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let g=n(),f=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(m=>g.some(S=>S.blockchain===m.blockchain&&S.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&S.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:f,shouldFetchCustomTokens:f.length>0})}}t(s,l)},"handleStepEvent");return Te.on(za.StepEvent,r),()=>Te.off(za.StepEvent,r)},[Te,e]),FS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===DS.FAILED||s.type===DS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return Te.on(za.RouteEvent,r),()=>Te.off(za.RouteEvent,r)},[Te])}i(Cp,"useSubscribeToWidgetEvents");import{useManager as d0}from"@rango-dev/queue-manager-react";import{useEffect as m0}from"react";function kp(){let{isSynced:t,syncNotifications:e}=Ne(),{manager:o,state:n}=d0();m0(()=>{Ne.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Tt(o))},[Ne.persist.hasHydrated(),n.loadedFromPersistor,t])}i(kp,"useSyncNotifications");function Tp(){_S(),MS(),Cp(),kp();let t=k().blockchains(),{canSwitchNetworkTo:e}=Hi(),[o,n]=US(null),[r,a]=US(),s=h0(Ci),c=t.filter(g0),{fetchApiConfig:l}=PS();OS(()=>()=>Zd(),[]),f0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),OS(()=>(Ao.init(),Ne.persist.hasHydrated()||Ne.persist.rehydrate(),s.onConnectWallet(p=>{n(u=>{if(!u||u.walletType!==p.walletType)return p;let d={...u};return p.network&&(d.network=p.network),p.accounts&&(d.accounts=p.accounts),d})}),s.onDisconnectWallet(p=>{a(p),n(u=>p===u?.walletType?null:u)}),l().catch(console.log),Ao.destroy),[])}i(Tp,"useBootstrap");import{styled as y0}from"@rango-dev/ui";var zS=y0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function qa(){Tp();let{config:t}=k(),{activeTheme:e}=so(t?.theme||{}),{activeLanguage:o}=ho();return wp.createElement(S0,{language:o},wp.createElement(zS,{id:"swap-container",className:e()},wp.createElement(LS,null)))}i(qa,"Main");import{setSolanaSignerConfig as F0}from"@rango-dev/signer-solana";import bp,{useEffect as KS,useMemo as O0}from"react";import{useState as C0}from"react";var k0=i(()=>{let[t,e]=C0(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Rp(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),qS=k0;import{checkWaitingForNetworkChange as T0,makeQueueDefinition as w0}from"@rango-dev/queue-manager-rango-preset";import{Provider as v0}from"@rango-dev/queue-manager-react";import{useWallets as b0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as x0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as E0}from"rango-types";import I0,{useMemo as A0}from"react";function N0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=b0(),c=A0(()=>w0({API_KEY:t.apiKey||qt("API_KEY"),BASE_URL:qt("BASE_URL"),emitter:{emit:Te.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=k(),u=l(),d={blockchains:p.map(w=>({accounts:[w],name:w.chain}))},g=i(async(w,x)=>a(w,x.network,x)?await r(w,[x]):void 0,"switchNetwork"),h=i(w=>!!s(w).mobileWallet,"isMobileWallet"),f=u.filter(w=>w.enabled).reduce((w,x)=>(w[x.name]=x,w),{}),m=u.filter(E0),S=i(w=>{let{supportedChains:x}=s(w);return _n(x)},"getSupportedChainNames"),y=e(),C={meta:{blockchains:f,evmBasedChains:m,evmNetworkChainInfo:x0(m),getSupportedChainNames:S},getSigners:o,wallets:d,providers:y,switchNetwork:g,canSwitchNetworkTo:a,state:n,isMobileWallet:h},T=oe.use.isActiveTab();return I0.createElement(v0,{queuesDefs:[c],context:C,onPersistedDataLoaded:w=>{T0(w)},isPaused:!T},t.children)}i(N0,"QueueManager");var QS=N0;import{useManager as P0}from"@rango-dev/queue-manager-react";import _0,{createContext as D0,useContext as $0}from"react";function HS(){let{findToken:t}=k(),e=k().blockchains(),o=k().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=O();return i(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:g,toToken:h,requestAmount:f}=p,m={blockchains:e,tokens:o};if(u!==void 0){let S=e.find(y=>y.name===u)??null;n(S)}if(d!==void 0){let S=d?t(d)??null:null;r({meta:m,token:S})}if(g!==void 0){let S=e.find(y=>y.name===g)??null;a(S)}if(h!==void 0){let S=h?t(h)??null:null;s({meta:m,token:S})}f!==void 0&&c(f)},"updateQuoteInputs")}i(HS,"useUpdateQuoteInputs");import{cancelSwap as B0,getCurrentNamespaceOfOrNull as W0,getCurrentStep as L0,getRelatedWalletOrNull as M0}from"@rango-dev/queue-manager-rango-preset";var Qa=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Tt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=wi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&B0(o)}getCurrentStepInfo(e){let o=L0(e);return{step:o,wallet:o?M0(e,o):null,network:o?W0(e,o)?.network:null}}};var GS=D0(void 0);function vp(t){let{manager:e}=P0(),o=oe.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=k(),l=new Qa(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=k(),u=mu(a()),d=k().blockchains(),g=k().tokens(),h=k().swappers(),f=k().fetchStatus,m=ho().resetLanguage,S=Ne().getNotifications(),y=Ne().clearNotifications,C=HS(),{fromBlockchain:T,toBlockchain:w,fromToken:x,toToken:A,inputAmount:I}=O(),E={isActiveTab:o,setCurrentTabAsActive:Ao.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async v=>c(v)},meta:{blockchains:d,tokens:g,swappers:h,loadingStatus:f,findToken:r},resetLanguage:m,notifications:{list:S,clearAll:y},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:w?.name??null,toToken:A?{symbol:A.symbol,blockchain:A.blockchain,address:A.address}:null,requestAmount:I},updateQuoteInputs:C}};return _0.createElement(GS.Provider,{value:E},t.children)}i(vp,"WidgetInfo");function VS(){let t=$0(GS);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(VS,"useWidget");function Ha(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=qS();return KS(()=>{n&&r(n)},[n]),O0(()=>{Tu({API_KEY:o?.apiKey||Gr,BASE_URL:o?.apiUrl||Qp})},[o.apiKey,o.apiUrl]),KS(()=>{t.config?.signers?.customSolanaRPC&&F0("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),bp.createElement(ki,{config:o,onUpdateState:e},bp.createElement(QS,{apiKey:o.apiKey},bp.createElement(vp,null,t.children)))}i(Ha,"WidgetProvider");function jS(t){let e=t.config?.externalWallets;return Ga.createElement(Cd,null,e?Ga.createElement(qa,null):Ga.createElement(Ha,{config:t.config??Qr},Ga.createElement(qa,null)))}i(jS,"Widget");function XS(){let{on:t,off:e}=Te;return{on:t,off:e}}i(XS,"useWidgetEvents");var nee={DerivationPath:Hn,Namespaces:qn,Detached:Qn,isOnDerivationPath:Vn,isOnNamespace:Gn,isOnDetached:wo};export{NR as EventSeverity,Jo as MainEvents,OR as Networks,qR as PendingSwapNetworkStatus,ps as QuoteEventTypes,BR as RouteEventType,Ra as SUPPORTED_FONTS,nee as StatefulConnect,WR as StepEventType,LR as StepExecutionBlockedEventStatus,MR as StepExecutionEventStatus,ot as UI_ID,ds as UiEventTypes,us as WalletEventTypes,$R as WalletEvents,UR as WalletTypes,jS as Widget,Jo as WidgetEvents,Ha as WidgetProvider,ki as WidgetWallets,sl as customizedThemeTokens,_R as readAccountAddress,Vo as useStatefulConnect,vt as useWalletList,Hi as useWallets,VS as useWidget,XS as useWidgetEvents,tk as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map