@rango-dev/widget-embedded 0.50.0 → 0.50.1-next.1

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 (34) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/components/StatefulConnectModal/StatefulConnectModal.d.ts.map +1 -1
  3. package/dist/components/WalletStatefulConnect/Detached.d.ts.map +1 -1
  4. package/dist/components/WalletStatefulConnect/Detached.types.d.ts +5 -1
  5. package/dist/components/WalletStatefulConnect/Detached.types.d.ts.map +1 -1
  6. package/dist/components/WalletStatefulConnect/NamespaceDetachedItem.d.ts +1 -1
  7. package/dist/components/WalletStatefulConnect/NamespaceDetachedItem.d.ts.map +1 -1
  8. package/dist/components/WalletStatefulConnect/Namespaces.d.ts.map +1 -1
  9. package/dist/components/WalletStatefulConnect/Namespaces.styles.d.ts.map +1 -1
  10. package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts +8 -2
  11. package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts.map +1 -1
  12. package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts +2 -1
  13. package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts.map +1 -1
  14. package/dist/hooks/useStatefulConnect/useStatefulConnect.state.d.ts +4 -1
  15. package/dist/hooks/useStatefulConnect/useStatefulConnect.state.d.ts.map +1 -1
  16. package/dist/hooks/useStatefulConnect/useStatefulConnect.types.d.ts +5 -1
  17. package/dist/hooks/useStatefulConnect/useStatefulConnect.types.d.ts.map +1 -1
  18. package/dist/index.js +2 -2
  19. package/dist/index.js.map +3 -3
  20. package/dist/utils/wallets.d.ts.map +1 -1
  21. package/dist/widget-embedded.build.json +1 -1
  22. package/package.json +7 -7
  23. package/src/components/StatefulConnectModal/StatefulConnectModal.tsx +9 -1
  24. package/src/components/WalletStatefulConnect/Detached.tsx +126 -27
  25. package/src/components/WalletStatefulConnect/Detached.types.ts +4 -1
  26. package/src/components/WalletStatefulConnect/NamespaceDetachedItem.tsx +37 -41
  27. package/src/components/WalletStatefulConnect/Namespaces.styles.ts +0 -1
  28. package/src/components/WalletStatefulConnect/Namespaces.tsx +2 -0
  29. package/src/components/WalletStatefulConnect/Namespaces.types.tsx +8 -2
  30. package/src/hooks/useStatefulConnect/useStatefulConnect.state.ts +3 -1
  31. package/src/hooks/useStatefulConnect/useStatefulConnect.ts +22 -3
  32. package/src/hooks/useStatefulConnect/useStatefulConnect.types.ts +4 -1
  33. package/src/pages/WalletsPage.tsx +7 -7
  34. package/src/utils/wallets.ts +6 -2
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var fC=Object.defineProperty;var i=(t,e)=>fC(t,"name",{value:e,configurable:!0});import{EventSeverity as Cee,RouteEventType as kee,StepEventType as Tee,StepExecutionBlockedEventStatus as wee,StepExecutionEventStatus as vee}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as xee}from"@rango-dev/wallets-core/legacy";import{useWallets as Xi,Events as Iee}from"@rango-dev/wallets-react";import{Networks as Nee,WalletTypes as Bee}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as Mee}from"rango-types";import{Divider as MT}from"@rango-dev/ui";import lo,{useEffect as LT,useRef as PT,useState as Sd}from"react";import{WalletState as gC}from"@rango-dev/ui";import{useWallets as hC}from"@rango-dev/wallets-react";import{useReducer as yC}from"react";function Pp(t){return!!t.derivationPath}i(Pp,"isStateOnDerivationPathStep");function _p(t){return!!t.namespace}i(_p,"isStateOnNamespace");var jr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Dp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return jr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:jr;default:throw new Error("Action hasn't been defined.")}}i(Dp,"reducer");function Yo(){let{state:t,disconnect:e,connect:o}=hC(),[n,r]=yC(Dp,jr),a=i(async(d,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(d,g),{status:"connected"}}catch(g){let m=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:g})}},"runConnect"),s=i(async(d,f)=>{if(d.state===gC.DISCONNECTED){let g=!!d.isHub,m=g?d.properties?.find(y=>y.name==="namespaces")?.value:d.needsNamespace,C=g?d.properties?.find(y=>y.name==="derivationPath")?.value:d.needsDerivationPath;if(!m?.data?.length)return await a(d.type,void 0,f);if(m?.data.length&&m.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(m?.data.length===1&&m.data[0]){if(C){let y=m.data[0];return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y.value}}),{status:"derivation-path"}}return await a(d.type,m?.data?.map(y=>({namespace:y.value})),f)}}if(d.isHub){let g=d.properties?.find(m=>m.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(d,f)=>{let h=!!d.isHub,g=h?d.properties?.find(T=>T.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(T=>T.name==="derivationPath")?.value:d.needsDerivationPath,C=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(C&&m)return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y}}),{status:"derivation-path"};if(!_p(n))throw new Error("Something went wrong on handling namespace. Please retry.");let S=f.map(T=>({namespace:T}));return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:S?.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(!Pp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let f=n.derivationPath.providerType,g=[{namespace:n.derivationPath.namespace,derivationPath:d}];return await a(f,g)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let f=t(d.type);return f.connected||f.connecting?(await e(d.type),Eo(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(Yo,"useStatefulConnect");import{WalletState as vs}from"@rango-dev/ui";import{useWallets as Nk}from"@rango-dev/wallets-react";import{detectMobileScreens as Bk,KEPLR_COMPATIBLE_WALLETS as Wk,WalletTypes as Kn}from"@rango-dev/wallets-shared";import{useCallback as Mk,useEffect as Lk}from"react";import wk,{createContext as vk,useContext as bk,useEffect as xk,useRef as Ek}from"react";import{create as kk}from"zustand";import{persist as Tk}from"zustand/middleware";import{allProviders as SC}from"@rango-dev/provider-all";var es=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},Zo=new es;import{defineVersions as Fp,pickVersion as Op,Provider as ts}from"@rango-dev/wallets-core";function Up({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=zp(a);return s instanceof ts?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 ts?o.push(Fp().version("1.0.0",n).build()):o.push(Fp().version("0.0.0",n).build())}),o}return t}i(Up,"matchAndGenerateProviders");function zp(t){try{return Op(t,"1.0.0")[1]}catch{return Op(t,"0.0.0")[1]}}i(zp,"pickProviderVersionWithFallbackToLegacy");function Qp(t){return t.map(o=>zp(o)).map(o=>o instanceof ts?o.id:o.config.type)}i(Qp,"configWalletsToWalletName");function Xr(t,e){return e.find(o=>o.name===t)?.displayName}i(Xr,"getBlockchainDisplayNameFor");function yt(t,e){return e.find(o=>o.name===t)?.shortName}i(yt,"getBlockchainShortNameFor");function Hp(t,e){return e.find(o=>o.name===t)?.logo}i(Hp,"getBlockchainImage");function Fn(t,e){return e.find(o=>o.id===t)?.title}i(Fn,"getSwapperDisplayName");function Io(t,e){return e.find(o=>o.name===t)??null}i(Io,"findBlockchain");function os(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(os,"isTokenNative");function St(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(St,"createTokenHash");function Jo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Jo,"isValidTokenAddress");function On(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=St(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{let p=o.tokensMapByBlockchainName[l];!c.has(l)&&p&&a(p)})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded&&o.tokensMapByBlockchainName[c]?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=St(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(On,"matchTokensFromConfigWithMeta");function Yr(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(Yr,"getSupportedBlockchainsFromConfig");function Gp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Gp,"makeProvidersOptionsFromConfig");var Ro={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"}},CC={clientUrl:void 0},kC={liquiditySources:void 0};function qp(t){let e=Gp(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return SC(o).map(a=>a())}i(qp,"generateProviders");var Vp=i((t,e,o)=>{let n=qp({...Ro,...t});return{config:{...Ro,...t},iframe:CC,campaignMode:kC,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=On({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=On({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});Zo.set("supportedSourceTokens",l),Zo.set("supportedDestinationTokens",p),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=qp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Gp(a);return Up({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Kp}from"rango-types";var jp=[Kp.EVM,Kp.SOLANA],Zr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as _C}from"rango-sdk";import{UI_ID as TC}from"@rango-dev/ui";var Jr="c6381a79-2817-4602-83bf-6a641a409e32",Xp="https://api.rango.exchange",Yp="https://explorer.rango.exchange",tt={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...TC};import{BlockchainCategories as AC,WalletState as pt}from"@rango-dev/ui";import{legacyReadAccountAddress as NC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as BC,getCosmosExperimentalChainInfo as WC,isEvmAddress as MC,KEPLR_COMPATIBLE_WALLETS as gW,Networks as yu}from"@rango-dev/wallets-shared";import tn from"bignumber.js";import{isCosmosBlockchain as LC}from"rango-types";import wC from"bignumber.js";var pe=new wC(0);import{WalletTypes as vC}from"@rango-dev/wallets-shared";var Ao="~",Zp=[vC.LEAP];import{BlockchainCategories as rs,WalletState as IC}from"@rango-dev/ui";import{TransactionType as Rr}from"rango-sdk";var Jp="Roboto",ns=[{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 en(t){return Array.from(new Set(t))}i(en,"removeDuplicateFrom");function ei(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(ei,"debounce");function ct(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(ct,"containsText");function tu(t,e){return t.toLowerCase()===e.toLowerCase()}i(tu,"exactText");function ou(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(ou,"startWithText");var W=i(()=>document.getElementById(tt.SWAP_BOX_ID),"getContainer"),No=i(()=>document.getElementById(tt.EXPANDED_BOX_ID),"getExpanded");function nu(t,e,o){let n=!!e&&tu(e,t),r=!!o&&tu(o,t);return n!==r?n?-1:1:0}i(nu,"compareExactMatchText");function is(t,e,o){let n=!!e&&ct(e,t),r=!!o&&ct(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(is,"compareContainsText");function as(t,e,o){let n=!!e&&ou(e,t),r=!!o&&ou(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(as,"compareStartWithText");function ru(t,e,o){if(!o)return 0;let n=nu(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=nu(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=as(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=is(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=as(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=is(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=as(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=is(o,t.address,e.address);if(r!==0)return r}return 0}i(ru,"compareWithSearchFor");var ti=i((t,e)=>{switch(e){case rs.ALL:return!0;case rs.UTXO:return t===Rr.TRANSFER;case rs.OTHER:return t!==Rr.TRANSFER&&t!==Rr.COSMOS&&t!==Rr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),iu=i(t=>ns.find(o=>o.value===t)?.url,"getFontUrlByName");function au(t,e){let o=!!t.find(n=>n.state===IC.CONNECTED);return e===!1&&o}i(au,"isSingleWalletActive");function su(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(su,"memoizedResult");import{BigNumber as gu}from"bignumber.js";function lu(t){return t.replace(/^0+(?=\d)/g,"")}i(lu,"removeLeadingZeros");function cu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(cu,"ensureLeadingZeroForDecimal");function pu(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(pu,"formatThousandsWithCommas");function uu(t){return t.replace(/\s+/g,"-")}i(uu,"replaceSpacesWithDash");function du(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(du,"stripTrailingZeros");function oi(t){return/^0+(?:\.0+)?$/.test(t)}i(oi,"isZeroValue");function mu(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(mu,"isValidCurrencyFormat");function fu(t){return/\d+$/.test(t)}i(fu,"isColorKeyOverridden");var Un=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"),D=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new gu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new gu(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 ni=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Pt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),zn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function hu(t){return oi(t)?"0":du(t)}i(hu,"sanitizeInputAmount");function Qn(t){return t.connected?pt.CONNECTED:t.connecting?pt.CONNECTING:t.installed?pt.DISCONNECTED:pt.NOT_INSTALLED}i(Qn,"mapStatusToWalletState");function Su(t,e,o,n){return o.filter(r=>!Zp.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:d,properties:f,isHub:h}=e(r),g=en(u.map(C=>C.type)),m=Qn(t(r));return{title:a,image:s,link:BC(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:d,properties:f,isHub:h}})}i(Su,"mapWalletTypesToWalletInfo");function Hn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Hn,"walletAndSupportedChainsNames");function ls(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(f=>f.chain===l)){let f={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(f)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=NC(l),d=c.length>0,f=c.includes(u),h=u===yu.Unknown;if(d&&!f&&!h)return;let m=u===yu.Unknown&&MC(p);if(h&&!m)return;o.includes(u)||m?r?s(u,p.toLowerCase(),r):c.filter(S=>o.includes(S)).forEach(S=>{s(S,p.toLowerCase())}):s(u,p)}),a}i(ls,"prepareAccountsForWalletStore");function Bo(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((p,u)=>{let d=p.from.blockchain,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(Bo,"getQuoteChains");function qn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(qn,"isAccountAndWalletMatched");var Cu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ss(n.usdValue,n.decimals):pe.toFixed();return o.plus(r)},new tn(pe));return PC(e.toString())},"calculateWalletUsdValue");function PC(t){let e=t.toString().split(".");return e[0]&&(e[0]=pu(e[0])),e.join(".")}i(PC,"numberWithThousandSeparator");var ai=i((t,e)=>{let o=WC(Object.entries(t).map(([,n])=>n).filter(LC));return o&&!!o[e]?.experimental},"isExperimentalChain");function ss(t,e){return new tn(t).shiftedBy(-e).toFixed()}i(ss,"representAmountInNumber");function si(t){if(!t)return null;let e=ss(t.amount,t.decimals),o=t.usdValue?ss(t.usdValue,t.decimals):null,n=D(e,8,8),r=o?D(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(si,"formatBalance");function ku(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new tn(t.usdValue).shiftedBy(-t.decimals):pe,n=e&&e.usdValue?new tn(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 tn(t.amount).shiftedBy(-t.decimals):pe,n=e&&e.amount?new tn(e.amount).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(ku,"compareTokenBalance");function Ht(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Ht,"areTokensEqual");function Tu(t,e){return t.map(o=>({isPartiallyConnected:cs(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===pt.CONNECTED&&!n.isPartiallyConnected)-+(o.state===pt.CONNECTED&&!o.isPartiallyConnected)||+(n.state===pt.CONNECTED)-+(o.state===pt.CONNECTED)||+(n.state===pt.DISCONNECTED||n.state===pt.CONNECTING)-+(o.state===pt.DISCONNECTED||o.state===pt.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(Tu,"sortWalletsBasedOnConnectionState");function ao(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(ao,"getConciseAddress");function wu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(wu,"getAddress");var vu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function bu(t){return t.map(e=>e.state).join("-")}i(bu,"hashWalletsState");function xu(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(xu,"filterBlockchainsByWalletTypes");function Eu(t,e){return e===AC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(ti(n,e))return!0;return!1})}i(Eu,"filterWalletsByCategory");function cs(t,e){return!t.isHub||!t.needsNamespace||t.state!==pt.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(cs,"checkIsWalletPartiallyConnected");var ps={API_KEY:Jr};function qt(t){return ps[t]||""}i(qt,"getConfig");function Iu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),ps=e,ps}i(Iu,"initConfig");var Au=20,Nu=25,us="theme-widget",ds=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Ht(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>Ht(a,t));let r=n.isExcluded;return!r&&!o||r&&o}}}return o},"isTokenExcludedInConfig"),ms=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 li,ut=i(()=>li||(li=new _C(qt("API_KEY"),qt("BASE_URL")),li),"httpService");import{i18n as Mu}from"@lingui/core";var ci=[.5,1,3],pi=1,on=5,Gn=30,ui=0;var Ye=(a=>(a[a.NO_RESULT=0]="NO_RESULT",a[a.REQUEST_FAILED=1]="REQUEST_FAILED",a[a.REQUEST_CANCELED=2]="REQUEST_CANCELED",a[a.BRIDGE_LIMIT=3]="BRIDGE_LIMIT",a[a.INSUFFICIENT_SLIPPAGE=4]="INSUFFICIENT_SLIPPAGE",a))(Ye||{});import{WidgetEvents as Wu}from"@rango-dev/queue-manager-rango-preset";var fs=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(fs||{}),gs=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(gs||{}),hs=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(hs||{}),nn=(a=>(a[a.RouteEvent=Wu.RouteEvent]="RouteEvent",a[a.StepEvent=Wu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(nn||{});function di(t,e){let o=t.map(a=>a.swapperGroup),n=[];return en(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(di,"getUniqueSwappersGroups");function Lu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Lu,"sortLiquiditySourcesByGroupTitle");function ot(t,e){return e?.[t]==="hidden"}i(ot,"isFeatureHidden");function rn(t,e){return e?.[t]==="enabled"}i(rn,"isRoutingEnabled");var Pu=i((t,e,o)=>ot("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function an(t){return t==ui?{type:"error",message:Mu.t("Slippage must be greater than or equal to 0.01")}:t>on&&t<=Gn?{type:"warning",message:Mu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(an,"getSlippageValidation");var _u=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let l=Yr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>jp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",d=Zo.get(u);d?.length||(d=On({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Zo.set(u,d)),d=Pu(d,s,a.features);let f=e().blockchains({type:o.type});return d.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(m=>m.name===g.blockchain)?!1:o.searchFor?!!(ct(g.symbol,o.searchFor)||ct(g.address||"",o.searchFor)||ct(g.name||"",o.searchFor)):!0).sort((g,m)=>{let C=e().isTokenPinned(g,o.type),y=e().isTokenPinned(m,o.type);if(C!==y)return C?-1:1;if(o.getBalanceFor){let N=o.getBalanceFor(g),B=o.getBalanceFor(m),b=ku(N,B);if(b!==0)return b}let S=l.get(g.blockchain),T=l.get(m.blockchain),w=os(g,S),v=os(m,T);if(w!==v)return w?-1:1;if(g.isPopular!==m.isPopular)return g.isPopular?-1:1;if(o.searchFor){let N=ru(g,m,o.searchFor);if(N)return N}return g.isSecondaryCoin!==m.isSecondaryCoin?g.isSecondaryCoin?1:-1:S&&T?S.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=St(o),s=n.get(a);return s||(s=r.find(c=>St(c)===a)),s},findNativeToken:o=>{let n=o.feeAssets[0];return e().findToken({blockchain:o.name,address:n.address,symbol:n.symbol})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Ht(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(Lu)},fetch:async()=>{try{let{routing:o}=e().config,n=rn("enableCentralizedSwappers",o),r=await ut().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],p=r.popularTokens,u=r.swappers.filter(h=>h.enabled),d=new Set;r.tokens.forEach(h=>{d.add(h.blockchain),l.push(h)}),r.blockchains.sort((h,g)=>h.sort-g.sort).forEach(h=>{h.enabled&&d.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let g=St(h);c[h.blockchain]||(c[h.blockchain]=[]),s.set(g,h),c[h.blockchain]?.push(g)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as DC,Catalonia as $C,Chinese as Du,Denmark as FC,English as OC,Finland as UC,French as zC,German as QC,Greece as HC,Hungary as qC,India as GC,Indonesian as VC,Italian as KC,Japanese as jC,Korea as XC,Lithuania as YC,Malay as ZC,Netherlands as JC,Pakistan as RC,Philippines as ek,Poland as tk,Portuguese as ok,Russian as nk,SaudiArabia as rk,Serbia as ik,Slovakia as ak,SouthAfrica as sk,Spanish as lk,Swahili as ck,Swedish as pk,Thai as uk,Turkish as dk,Ukrainian as mk,Vietnamese as fk}from"@rango-dev/ui";var $u=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:sk},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:rk},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:DC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:$C},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Du},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Du},{title:"Danish",label:"Dansk",local:"da",SVGFlag:FC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:JC},{title:"English",label:"English",local:"en",SVGFlag:OC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:ek},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:UC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:zC},{title:"German",label:"Deutsch",local:"de",SVGFlag:QC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:HC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:GC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:qC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:VC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:KC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:jC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:XC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:YC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:ZC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:tk},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:ok},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:nk},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:ik},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:ak},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:lk},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:ck},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:pk},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:uk},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:dk},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:mk},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:RC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:fk}],sn="en";var Fu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:pi,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=en(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||sn},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||sn}})},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=Yr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import ws from"bignumber.js";import gk from"mitt";var Ce=gk(),hk={on:Ce.on,off:Ce.off};var Ou=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 Uu from"bignumber.js";function Gt(t){return`${t.blockchain}${Ao}${t.address}${Ao}${t.symbol}`}i(Gt,"createAssetKey");function zu(t,e){return`${Gt(e)}${Ao}${t}`}i(zu,"createBalanceKey");function Vn(t){let[e,o,n]=t.split(Ao);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Vn,"extractAssetFromBalanceKey");function Ss(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Gt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Uu(r??pe).multipliedBy(o[s].amount).toString():""})})}),o}i(Ss,"computeNextBalancesWithNewPrices");function Cs(t,e){let o={};return t.balances?.forEach(n=>{let r=zu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Uu(c??pe).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(Cs,"createBalanceStateForNewAccount");function ks(t,e){for(let o in e){let n=Vn(o);if(n){let r=Gt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(ks,"updateAggregatedBalanceStateForNewAccount");function yk(t,e){let o=Vn(e);if(!o)return t;let n=Gt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(yk,"removeBalanceFromAggregatedBalance");function Ts(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=Vn(l);if(!p)return;!!n.find(d=>zu(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=yk(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(Ts,"computeNextStateAfterWalletBalanceRemoval");function Sk(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(Sk,"matchWalletDetailsWithConnectedWallet");var Ck=su(),Qu=Ou((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>qn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>qn(s,a))?{...a,loading:!1,error:!1,explorerUrl:Sk(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>qn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>qn(c,l)));if(s.length>0){let c=s.map(l=>{let p=!a.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:p,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!c.some(d=>d.walletType===u.walletType&&d.chain===u.chain)),...c]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=r.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address]?.push(...a[p.chain]||[]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await ut().getMultipleTokenBalance({assets:p.map(({symbol:d,address:f,blockchain:h})=>({symbol:d,address:f,blockchain:h})),walletAddress:l});if(u){let d=e()._balances,f=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};Ss(m,g,d);let C=Cs(g,e);f=ks(f,C),d={...d,...C}}),t(h=>({_balances:{...h._balances,...d},_aggregatedBalances:f}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{let a=o[0];a&&(Ce.emit("walletEvent",{type:"connect",payload:{walletType:a.walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o))},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=Ts(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(Ce.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0||!o[0])return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await ut().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(d=>{if(d.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};Ss(f,d,l);let{_balances:h,_aggregatedBalances:g}=Ts(f,r,{chains:[d.blockChain]});if(p=g,l=h,!e().connectedWallets.find(C=>C.walletType===r&&C.address===d.address&&C.chain===d.blockChain))return;let m=Cs(d,e);p=ks(p,m),l={...l,...m}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let d=c.filter(f=>f.failed).map(f=>({chain:f.blockChain,walletType:r,address:f.address}));d.length>0&&await e().fetchMainTokensBalances(d,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=Gt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0||!a[0])return null;let s=a[0];if(a.length===1&&n[s])return n[s];let c=n[a[0]];if(!c)return null;let l=c;return a.forEach(p=>{let u=n[p];if(!u)return;let d=new ws(u.amount),f=new ws(l.amount);d.isGreaterThan(f)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(Ao);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>Ck(()=>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=Vn(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),d=l?.amount?new ws(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 Hu(t){return kk()(Tk((...e)=>({...Qu(...e),..._u(...e),...Fu(...e),...Vp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i(Hu,"createAppStore");var qu=vk(null);function k(){let t=bk(qu);if(xk(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(k,"useAppStore");function Gu(t){let e=Ek();return e.current||(e.current=Hu(t.config)),wk.createElement(qu.Provider,{value:e.current},t.children)}i(Gu,"AppStoreProvider");import{useWallets as Ik}from"@rango-dev/wallets-react";import{detectMobileScreens as Ak}from"@rango-dev/wallets-shared";function ln(){let{getWalletInfo:t}=Ik(),{config:e}=k(),o=Ak();function n(s){let c=t(s),l=e.deepLinking?.appHost,p=e.deepLinking?.targetUrl;if(!(!l||!p))return c.generateDeepLink?.({appHost:l,targetUrl:p})}i(n,"getWalletDeepLink");function r(s){let c=n(s);return c&&o?c:t(s).installLink}i(r,"getWalletLink");function a(s){return!!n(s)&&o}return i(a,"checkHasDeepLink"),{getWalletDeepLink:n,getWalletLink:r,checkHasDeepLink:a}}i(ln,"useDeepLink");function xt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=k(),{state:r,getWalletInfo:a}=Nk(),s=k().blockchains(),{handleDisconnect:c}=Yo(),{checkHasDeepLink:l}=ln(),p=Qp(n()),u=Su(r,a,p,e);u=Bk()?u.filter(C=>C.showOnMobile!==!1&&(r(C.type).installed||l(C.type))):u;let d=Tu(u,r),f=i(C=>!o.find(y=>y.walletType===C&&y.chain===e),"isExperimentalChainNotAdded"),h=Mk(()=>{let C=u?.filter(y=>y.state===vs.CONNECTING)||[];for(let y of C)c(y)},[bu(u)]);Lk(()=>()=>{h()},[]);let g=i(C=>{let y=C.find(T=>T.type===Kn.DEFAULT);return!y||y.state===vs.NOT_INSTALLED?!1:C.filter(T=>T.state!=vs.NOT_INSTALLED&&![Kn.DEFAULT,Kn.WALLET_CONNECT_2,Kn.LEDGER].includes(T.type)&&a(T.type).supportedChains.filter(w=>w.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),m=i((C,y,S)=>ai(S,y)&&f(C)&&!Wk.includes(C)||C==Kn.DEFAULT&&!g(u),"shouldExcludeWallet");return{list:d.filter(C=>!m(C.type,e??"",s)),terminateConnectingWallets:h}}i(xt,"useWalletList");import{Modal as $k}from"@rango-dev/ui";import Fk from"react";import{create as Dk}from"zustand";var Vu="rango-widget";var jn=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(Vu),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 _k=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"),so=_k;var oe=so(Dk()((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})}}))),Mo=new jn({onInit:()=>oe.setState({tabManagerInitiated:!0}),onClaim:()=>oe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>oe.setState({isActiveTab:!1})});function J(t){let{watermark:e}=oe();return Fk.createElement($k,{hasWatermark:e==="FULL",...t},t.children)}i(J,"WatermarkedModal");import{i18n as un}from"@lingui/core";import{Alert as Jk,Button as Rk,Divider as ki,Image as eT,MessageBox as tT,RadioRoot as oT}from"@rango-dev/ui";import ue,{useEffect as nT,useMemo as rT,useState as iT}from"react";import{i18n as Qk}from"@lingui/core";import{Typography as ed}from"@rango-dev/ui";import cn from"react";function mi(t,e){return t.find(o=>o.name===e)?.logo}i(mi,"getBlockchainLogo");import{darkTheme as Ok,Image as Uk,styled as Vt,Typography as zk}from"@rango-dev/ui";var fi=Vt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${Ok} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),gi=Vt("div",{display:"flex",gap:"$8",alignItems:"center"}),ju=Vt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Xu=Vt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Yu=Vt("div",{display:"flex",gap:"$6",alignItems:"center"}),Zu=Vt("div",{paddingLeft:"48px"}),Ju=Vt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),Ru=Vt(zk,{maxWidth:"100px"}),hi=Vt(Uk,{variants:{disabled:{true:{opacity:"0.5"}}}});function yi(t){let{namespace:e}=t,o=k().blockchains();return cn.createElement(fi,{unsupported:!0},cn.createElement(gi,null,cn.createElement(hi,{src:mi(o,e.id),size:40,disabled:!0}),cn.createElement(Xu,null,cn.createElement(ed,{variant:"label",size:"large"},e.label),cn.createElement(ed,{variant:"body",size:"xsmall"},Qk.t("(Currently not supported)")))))}i(yi,"NamespaceUnsupportedItem");import{Checkbox as Xk,Radio as Yk}from"@rango-dev/ui";import Is from"react";import{i18n as Es}from"@lingui/core";import{ChevronDownIcon as qk,ChevronUpIcon as Gk,Divider as Vk,Typography as Xn}from"@rango-dev/ui";import Ie,{useEffect as Kk,useState as jk}from"react";import{Image as od,Tooltip as nd,Typography as Hk}from"@rango-dev/ui";import _t from"react";import{styled as td}from"@rango-dev/ui";var bs=td("div",{display:"flex",alignItems:"center",padding:0,margin:0}),Si=td("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 xs=3;function rd(t){let{chains:e}=t;return _t.createElement(bs,{id:"widget-supported-chains-container"},e.slice(0,xs).map((o,n)=>_t.createElement(nd,{key:o.name,container:W(),side:"bottom",align:"start",content:o.name,sideOffset:4},_t.createElement(Si,{firstItem:n===0},_t.createElement(od,{src:o.logo,size:15})))),e.length>xs&&_t.createElement(nd,{container:W(),side:"bottom",align:"start",sideOffset:4,content:_t.createElement(bs,null,e.map((o,n)=>_t.createElement(Si,{key:o.name,firstItem:n===0},_t.createElement(od,{src:o.logo,size:15}))))},_t.createElement(Si,null,_t.createElement(Hk,{variant:"body",size:"xsmall"},"+",e.length-xs))))}i(rd,"SupportedChainsList");function Lo(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=jk(!1),p=k().blockchains();Kk(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!o&&!r&&u.length>1;return Ie.createElement(fi,{hasError:!!o,clickable:!!s,onClick:s},Ie.createElement(gi,null,Ie.createElement(hi,{src:mi(p,e.id),size:40}),Ie.createElement(ju,{showSupportedChains:d||r||!!o},Ie.createElement(Yu,null,Ie.createElement(Xn,{variant:"label",size:"large"},e.label),r&&Ie.createElement(Xn,{variant:"body",size:"small",color:"success500"},Es.t("Connected")),!!o&&Ie.createElement(Xn,{variant:"body",size:"small",color:"error500"},Es.t("Connection failed"))),d&&Ie.createElement(rd,{chains:u}),r&&Ie.createElement(Ru,{variant:"body",size:"small",color:"neutral700"},a),o&&Ie.createElement(Ju,{onClick:()=>l(f=>!f)},Ie.createElement(Xn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},Es.t("See why")),c?Ie.createElement(Gk,{size:12,color:"gray"}):Ie.createElement(qk,{size:12,color:"gray"}))),n),!!o&&c&&Ie.createElement(Ie.Fragment,null,Ie.createElement(Vk,{size:4}),Ie.createElement(Zu,null,Ie.createElement(Xn,{variant:"body",size:"small",color:"neutral700"},o))))}i(Lo,"NamespaceItem");function id(t){let{onClick:e,type:o,namespace:n}=t;return Is.createElement(Lo,{namespace:n,onClick:e,suffix:o==="radio"?Is.createElement(Yk,{value:n.value}):Is.createElement(Xk,{checked:t.value})})}i(id,"NamespaceListItem");import{Button as Zk,styled as ad}from"@rango-dev/ui";var Ci=ad("ul",{padding:0,paddingTop:"$16",paddingBottom:"$20",margin:0}),pn=ad(Zk,{minHeight:"$40"});function Yn(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]=iT([]),u=rT(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:C=>C.includes(m)?C.filter(y=>y!==m):C.concat(m))},"onSelect"),f=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");f?p([]):u&&p(u.map(m=>m.value))},"onSelectAll"),g=i(m=>r?ue.createElement(oT,{value:l?.[0]},m):ue.createElement(ue.Fragment,null,m),"wrapRadioRoot");return nT(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(C=>C.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(m.map(C=>C.value))}else p(u.map(m=>m.value))},[]),ue.createElement(ue.Fragment,null,ue.createElement(tT,{type:"info",title:un.t("Connect {wallet}",{wallet:e.title}),description:un.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:ue.createElement(eT,{src:s,size:45})}),r?ue.createElement(ue.Fragment,null,ue.createElement(ki,{size:20}),ue.createElement(Jk,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:un.t("This wallet can only connect to one chain at a time. ")})):ue.createElement(ue.Fragment,null,ue.createElement(ki,{size:30}),ue.createElement(Rk,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?un.t("Deselect all"):un.t("Select all"))),ue.createElement(Ci,null,g(ue.createElement(ue.Fragment,null,a?.data.map((m,C,y)=>ue.createElement(ue.Fragment,{key:m.id},m.unsupported?ue.createElement(yi,{namespace:m}):ue.createElement(id,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),C!==y.length-1&&ue.createElement(ki,{size:10})))))),ue.createElement(ki,{size:20}),ue.createElement(pn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},un.t("Connect")))}i(Yn,"Namespaces");import{i18n as Ti}from"@lingui/core";import{Button as mT,Divider as Bs,Image as fT,MessageBox as gT}from"@rango-dev/ui";import{useWallets as hT}from"@rango-dev/wallets-react";import Ze from"react";import{styled as aT}from"@rango-dev/ui";var sd=aT("div",{display:"flex",justifyContent:"end"});import{i18n as As}from"@lingui/core";import{Button as sT,Spinner as lT}from"@rango-dev/ui";import{useWallets as cT}from"@rango-dev/wallets-react";import Ns,{useLayoutEffect as pT,useRef as uT,useState as dT}from"react";var ld=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,{connect:a,disconnect:s,state:c}=cT(),[l,p]=dT(null),d=c(o).namespaces?.get(n.value),f=d.accounts?.[0]?.split(":"),h=uT(!1);pT(()=>{r&&!h.current&&g(o,n.value)},[]);let g=i(async(y,S)=>{try{h.current=!0,await a(y,[{namespace:S,network:""}])}catch(T){p(T)}finally{h.current=!1}},"handleConnectNamespace"),m=i(async y=>{p(null),y.connected?await s(o,[n.value]):g(o,n.value)},"handleButtonClick"),C=i(()=>d.connected?As.t("Disconnect"):l?As.t("Try again"):As.t("Connect"),"getButtonText");return Ns.createElement(Lo,{namespace:n,connected:d.connected,error:l?.message,address:d.connected?ao(f?.[f?.length-1]):"",suffix:d.connecting?Ns.createElement(lT,{color:"info"}):Ns.createElement(sT,{id:"widget-name-space-connect-btn",variant:"ghost",type:d.connected?"error":"primary",size:"xsmall",onClick:async()=>m(d)},C())})},"NamespaceDetachedItem");function Zn(t){let{selectedNamespaces:e,value:o,onDisconnectWallet:n}=t,{targetWallet:r}=o,{state:a}=hT(),s=a(r.type);return Ze.createElement(Ze.Fragment,null,Ze.createElement(gT,{type:"info",title:Ti.t("Connect {wallet}",{wallet:r.type}),description:Ti.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:Ze.createElement(fT,{src:r.image,size:45})}),Ze.createElement(Bs,{size:30}),Ze.createElement(sd,null,Ze.createElement(mT,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:s.connecting||!s.connected,onClick:n},Ti.t("Disconnect wallet"))),Ze.createElement(Ci,{id:"widget-detached-namespace-list",as:"ul"},r.needsNamespace?.data.map((c,l,p)=>Ze.createElement(Ze.Fragment,{key:c.id},c.unsupported?Ze.createElement(yi,{namespace:c}):Ze.createElement(ld,{walletType:r.type,namespace:c,initialConnect:e?.includes(c.value)}),l!==p.length-1&&Ze.createElement(Bs,{size:10})))),Ze.createElement(Bs,{size:20}),Ze.createElement(pn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},Ti.t("Done")))}i(Zn,"Detached");import{i18n as dn}from"@lingui/core";import{Divider as pd,Image as kT,MessageBox as TT,Select as wT,TextField as vT}from"@rango-dev/ui";import Ct,{useEffect as bT,useState as ud}from"react";import{namespaces as yT}from"@rango-dev/wallets-shared";var wi={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ws(t){let e=t?yT[t]?.derivationPaths:null;return e?[...e,wi]:[]}i(Ws,"getDerivationPaths");import{Button as ST,styled as Ms,Typography as CT}from"@rango-dev/ui";var cd=Ms("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ls=Ms(CT,{paddingLeft:"$10"}),Ps={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},jP=Ms(ST,{minHeight:"$40"});var dd="0";function Jn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=ud(null),[c,l]=ud(dd),p=a===wi.id,u=Ws(o),d=i(({value:h})=>{let g=u?.find(m=>m.id===h);g&&(a===wi.id&&Number.isNaN(Number(c))&&l(dd),s(g.id))},"handleDerivationPathItemClick"),f=i(()=>{let h=u.find(g=>g.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return bT(()=>{s(Ws(o)[0]?.id||null)},[o]),Ct.createElement(Ct.Fragment,null,Ct.createElement(pd,{size:20}),Ct.createElement(TT,{type:"info",title:dn.t("Select Derivation Path"),description:dn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:Ct.createElement(kT,{src:n,size:45})}),Ct.createElement(cd,null,Ct.createElement(Ls,{variant:"body",size:"xsmall",color:"$neutral600"},dn.t("Choose Derivation Path Template")),Ct.createElement(wT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:Ps}}),Ct.createElement(pd,{size:20}),Ct.createElement(Ls,{variant:"body",size:"xsmall",color:"$neutral600"},p?dn.t("Enter Path"):dn.t("Enter Index")),Ct.createElement(vT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Ps})),Ct.createElement(pn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},dn.t("Confirm")))}i(Jn,"DerivationPath");import{i18n as mn}from"@lingui/core";import{Image as IT,MessageBox as _s,WalletState as AT}from"@rango-dev/ui";import{useWallets as NT}from"@rango-dev/wallets-react";import Po from"react";import{keyframes as xT,styled as vi}from"@rango-dev/ui";var i_=vi("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),md=vi("div",{position:"relative"}),ET=xT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),fd=vi("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ET} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),gd=vi("div",{"& img":{borderRadius:"50%"}});function Ds(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=NT();return Qn(a(n))===AT.CONNECTED?Po.createElement(_s,{type:"success",title:mn.t("Wallet Connected"),description:mn.t("Your wallet is connected, you can use it to swap.")}):o?Po.createElement(_s,{type:"error",title:mn.t("Failed to Connect"),description:o||mn.t("Your wallet is not connected. Please try again.")}):Po.createElement(_s,{type:"loading",title:mn.t("Connecting to your wallet"),description:mn.t("Click connect in your wallet popup."),icon:Po.createElement(md,null,Po.createElement(gd,null,Po.createElement(IT,{src:r,size:45})),Po.createElement(fd,null))})}i(Ds,"ConnectStatus");import{i18n as $s}from"@lingui/core";import{Button as BT,Divider as hd,MessageBox as WT}from"@rango-dev/ui";import bi from"react";function Fs(t){let{displayName:e,onConfirm:o,id:n}=t;return bi.createElement(WT,{id:n,title:$s.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:$s.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},bi.createElement(hd,{size:18}),bi.createElement(hd,{size:32}),bi.createElement(BT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},$s.t("Confirm")))}i(Fs,"ExperimentalChain");function yd(t,e){return t().status==="init"&&!!e}i(yd,"isOnStatus");function Rn(t){return t().status==="namespace"}i(Rn,"isOnNamespace");function er(t){return t().status==="derivationPath"}i(er,"isOnDerivationPath");function Eo(t){return t().status==="detached"}i(Eo,"isOnDetached");var _T=3e3,DT=300;function tr(t){let e=PT(),[o,n]=Sd(!1),[r,a]=Sd(),s=i(w=>{a(w.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=xt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:f,handleDisconnect:h}=Yo(),g=i(w=>{u(t.wallet,w).then(T).catch(s)},"handleConfirmNamespaces"),m=i(()=>{y()},"handleDetachedConfirm"),C=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"),S=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),T=i((w,v)=>{let N=w.status==="connected",B=["disconnected","disconnected-unhandled"].includes(w.status);N?(t.onConnect?.(),v||(e.current=setTimeout(y,_T))):B&&y()},"afterConnected");return LT(()=>{if(t.wallet){S();let w=!1,v=!0;i(()=>{setTimeout(()=>{v=!1,w||n(!0)},DT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(B=>{["namespace","Detached","derivation-path"].includes(B.status)||(w=!0),T(B,v)}).catch(s)}},[t.wallet]),lo.createElement(J,{id:t.id,open:o,onClose:y,onExit:()=>{S(),c(),t.onClose&&t.onClose()},container:W()},yd(d,t.wallet)&&lo.createElement(lo.Fragment,null,lo.createElement(Ds,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),lo.createElement(MT,{direction:"vertical",size:32})),Rn(d)&&lo.createElement(Yn,{onConfirm:g,value:d().namespace}),er(d)&&lo.createElement(Jn,{onConfirm:C,value:d().derivationPath}),Eo(d)&&lo.createElement(Zn,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces}))}i(tr,"StatefulConnectModal");import Ya from"react";import $T,{Fragment as FT}from"react";import{MemoryRouter as OT,useInRouterContext as UT}from"react-router";function xi({children:t}){let o=UT()?FT:OT;return $T.createElement(o,null,t)}i(xi,"AppRouter");import{I18nManager as _0}from"@rango-dev/ui";import Ip from"react";import qe from"react";import{useRoutes as f0}from"react-router-dom";var O={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 gn,useRef as Mi}from"react";import rt from"bignumber.js";import{create as Zd}from"zustand";import{subscribeWithSelector as Jd}from"zustand/middleware";import{createContext as zT,useContext as QT}from"react";var Cd=zT({swapMode:"swap",isMultiMode:!1});function nt(){let{swapMode:t,isMultiMode:e}=QT(Cd);return{swapMode:t,isMultiMode:e}}i(nt,"useSwapMode");import{i18n as Tt}from"@lingui/core";import{getRelatedWalletOrNull as GT,RouteEventType as wD}from"@rango-dev/queue-manager-rango-preset";import Ve from"bignumber.js";import{PendingSwapNetworkStatus as nr}from"rango-types";import{i18n as Ge}from"@lingui/core";var ne=i(()=>({genericServerError:Ge.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Ge.t("Please reset your liquidity sources."),description:Ge.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Ge.t("No Routes Found."),description:Ge.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:Ge.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Ge.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Ge.t("High Price Impact"),title:Ge.t("Price impact is too high!"),description:Ge.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Ge.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Ge.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Ge.t("USD Price Unknown"),title:Ge.t("USD Price Unknown, Cannot calculate Price Impact."),description:Ge.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Ge.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 Ei}from"@lingui/core";var _o=i(()=>({connectWallet:Ei.t("Connect Wallet"),swap:Ei.t("Swap"),swapAnyway:Ei.t("Swap anyway"),ethWarning:Ei.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Os(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Os,"getFeeLabel");var Us=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],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 qT}from"@rango-dev/queue-manager-rango-preset";import lD 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 jt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(jt,"getPriceImpactLevel");function Ii(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=qT(t.steps);if(!r||!n)return{fromBlockchain:null,fromToken:void 0,toBlockchain:null,toToken:void 0,inputAmount:""};let s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=Io(a?a.toBlockchain:n.fromBlockchain,e),l=Io(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(Ii,"createRetryQuote");function fn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=or(o),s=kt(o);if(o&&a&&s){let p=Kt(a.toString(),s.toString());if(!!p&&Ld(a,p)){let d=Ni(o?.swaps,n),f=jt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:f}}}if(e&&Dd(e,o))return{type:4,usdValueChange:D(kt(o)?.minus(kt(e)??0).toString()??"0",null,2),percentageChange:D(Kt(kt(e)??"1",kt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=Bi(o.swaps),l=r>on;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(fn,"generateQuoteWarnings");function Nd(t){return![4].includes(t.type)}i(Nd,"isQuoteWarningConfirmationRequired");function Kt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:zs(t.toString(),e.toString());return n&&n<0?n:null}i(Kt,"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"),Ai=i((t,e)=>e.sort((o,n)=>{let r=i(p=>p.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),Wd=i((t,e,o)=>{let n=e[0];if(!e.length||!n)return null;if(!t)return{requestAmount:o,validationStatus:null,...n};let r=new Set(t.swaps.map(s=>s.swapperId)),a=e.find(s=>{let c=new Set(s.swaps.map(l=>l.swapperId));return Array.from(r).every(l=>c.has(l))});return{requestAmount:o,validationStatus:null,...a||n}},"getDefaultQuote"),Md=i(t=>{let e=i((o,n)=>{let r=Us.indexOf(o.value),a=Us.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Ld(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 Ve(r)))}i(Ld,"hasHighValueLoss");function $d(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ve(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 Ve(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new Ve(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0];if(!e)return{swap:void 0,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new Ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ve(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=Tt.t({id:"Required: >= {min} {symbol}",values:{min:D(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=Tt.t({id:"Required: > {min} {symbol}",values:{min:D(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=Tt.t({id:"Required: <= {max} {symbol}",values:{max:D(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=Tt.t({id:"Required: < {max} {symbol}",values:{max:D(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:_o().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:_o().swap,action:"confirm-swap",disabled:!0}:s?{title:_o().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:_o().ethWarning,action:"confirm-warning",disabled:!1}:{title:_o().swap,action:"confirm-swap",disabled:!1}:{title:_o().connectWallet,action:"connect-wallet",disabled:!1}}i(Od,"getSwapButtonState");function Qs(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(pe))&&e&&e!=="0"&&n!==0)}i(Qs,"canComputePriceImpact");function Hs(t,e){let o=pe;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(!r||r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ve(r.amount).multipliedBy(a||0))}return o}i(Hs,"getUsdFeeOfStep");function Ni(t,e){return t.reduce((o,n)=>o.plus(Hs(n,e)),pe)}i(Ni,"getTotalFeeInUsd");function qs(t){let e=pe,o=new Ve(t.price||0);return e=e.plus(new Ve(t.amount).multipliedBy(o)),e}i(qs,"getUsdFee");function Ud(t){return t.reduce((e,o)=>e.plus(qs(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 Bi(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(Bi,"getMinRequiredSlippage");function _d(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(_d,"hasProperSlippage");function Hd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:d,affiliateWallets:f,destination:h,contractCall:g}=t,m=a?.reduce((S,T)=>(S[T.chain]=T.address,S),{}),C=[];return r?.forEach(S=>{C.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:m??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(Hd,"createQuoteRequestBody");function qd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(qd,"getWalletsForNewSwap");function or(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new Ve(e).multipliedBy(o)}i(or,"getUsdInputFrom");function kt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new Ve(e).multipliedBy(o)}i(kt,"getUsdOutputFrom");function zs(t,e){return new Ve(e).div(new Ve(t)).minus(1).multipliedBy(Td).toNumber()}i(zs,"getPercentageChange");function Dd(t,e){let o=or(t),n=kt(t),r=kt(e);if(!o||!n||!r)return!1;let a=zs(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=Bo({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=D(new Ve(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=D(new Ve(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=Tt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=Tt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=Tt.t(" for input and network fee")),Tt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:yt(s.asset.blockchain,o)}})})}i(Gd,"generateBalanceWarnings");function rr(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==nr.NetworkChanged}i(rr,"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,"")),rr(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?GT(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case nr.WaitingForConnectingWallet:r=u?Tt.t("Connect {wallet}",{wallet:u}):r;break;case nr.WaitingForQueue:r=r||Tt.t("Waiting for other running tasks to be finished");break;case nr.WaitingForNetworkChange:r=r||Tt.t("Waiting for changing wallet network");break;case nr.NetworkChangeFailed:r=r||Tt.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=Bo({filter:"all",quote:n}),c=Bo({filter:"required",quote:n}),l=s.every(d=>r.some(f=>f.chain===d)),p=c.every(d=>r.some(f=>f.chain===d)),u=o&&a?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 Wi=i((t,e)=>t?.usdPrice?new rt(e||pe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Rd=i(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 zn(o.inputAmount)?(e&&(n=e?.outputAmount?new rt(e?.outputAmount):null,a=or(e)??pe,r=kt(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:Wi(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new 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=hu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;oi(e)||(o=lu(o),o=cu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new rt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Wi(n.fromToken,o)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:Wi(n??null,s),outputUsdValue:new 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?Wi(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})}),"initializer"),em=Zd()(Jd(Rd)),tm=Zd()(Jd(Rd)),VT=so(em),KT=so(tm);function U(){let{swapMode:t}=nt();return so(t==="refuel"?tm:em)}i(U,"useQuoteStore");var om=i((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Ce.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&&Ce.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})},"subscribeCallback"),nm=VT.subscribe(om),rm=KT.subscribe(om);function im(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=U()(),u=k().config,d=k().fetchStatus,f=k().blockchains(),{findToken:h}=k(),{setAffiliateRef:g,setAffiliatePercent:m,setAffiliateWallets:C}=k(),y=u?.from?.tokens,S=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,v=Mi(void 0),N=Mi(void 0),B=Mi(void 0),b=Mi(void 0);gn(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),gn(()=>{if(d==="success"){r();let E=f.find(I=>I.name===u?.from?.blockchain),x=u?.from?.token,M=x&&h(x);(E||!E&&B.current)&&n(E??null),M?a({token:M,meta:{blockchains:f}}):!M&&v.current&&a({token:null}),B.current=u?.from?.blockchain,v.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),gn(()=>{ds(s,y)&&a({token:null}),ms(l,S)&&n(null)},[y,S]),gn(()=>{ds(c,T)&&a({token:null}),ms(p,w)&&o(null)},[T,w]),gn(()=>{if(d==="success"){r();let E=f.find(I=>I.name===u?.to?.blockchain),x=u?.to?.token,M=x&&h(x);(E||!E&&b.current)&&o(E??null),M?e({token:M,meta:{blockchains:f}}):!M&&N.current&&e({token:null}),b.current=u?.to?.blockchain,N.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,d]),gn(()=>{g(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),C(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(im,"useSyncStoresWithConfig");import{useEffect as Ks,useRef as jT}from"react";import{useInRouterContext as XT,useLocation as YT,useSearchParams as ZT}from"react-router-dom";function Gs(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(Gs,"convertTokenSearchParamToAsset");function Vs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Vs,"tokenToSearchParam");function Xs(){let t=YT(),[e,o]=ZT(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:f}=U()(),h=k().fetchStatus,g=k().blockchains(),m=XT(),{updateIframe:C,updateCampaignMode:y}=k(),S=k().isInCampaignMode(),T=jT(),{findToken:w}=k(),v=i(()=>{let B={};for(let[L,ee]of e.entries())L.startsWith("utm_")&&(B[L]=ee);let b=e.get("fromAmount"),E=e.get("fromBlockchain"),x=e.get("fromToken"),M=e.get("toBlockchain"),I=e.get("toToken"),_=e.get("autoConnect"),Q=e.get("clientUrl"),H=e.get("liquiditySources"),j=e.get("blockchain");return{fromAmount:b,fromBlockchain:E,fromToken:x,toBlockchain:M,toToken:I,autoConnect:_,clientUrl:Q,liquiditySources:H,utmQueryParams:B,blockchain:j}},"getUrlSearchParams"),N=i(B=>{for(let b in B)B[b]||delete B[b];o(B,{replace:!0})},"updateUrlSearchParams");Ks(()=>{let{autoConnect:B,clientUrl:b,utmQueryParams:E,blockchain:x}=v();m&&h==="success"&&N({fromBlockchain:n?.name,fromToken:Vs(a),toBlockchain:r?.name,toToken:Vs(s),fromAmount:c,autoConnect:B??void 0,clientUrl:b??void 0,blockchain:x??void 0,liquiditySources:S?T.current:void 0,...E})},[t.pathname,c,n,a,r,s,S,h]),Ks(()=>{if(!m)return;let B=v();if(!T.current&&B.liquiditySources&&(T.current=B.liquiditySources),B.fromAmount&&f(B.fromAmount),h==="success"){let b=g.find(Q=>Q.name===B.fromBlockchain),E=B.fromToken&&b&&Gs(B.fromToken,b),x=E?w(E):void 0,M=g.find(Q=>Q.name===B.toBlockchain),I=B.toToken&&M&&Gs(B.toToken,M),_=I?w(I):void 0;b&&(l(b),x&&u({token:x,meta:{blockchains:g}})),M&&(p(M),_&&d({token:_,meta:{blockchains:g}}))}},[h]),Ks(()=>{let{clientUrl:B,liquiditySources:b}=v();C("clientUrl",B||void 0),y("liquiditySources",b?.split(",")??void 0)},[])}i(Xs,"useSyncUrlAndStore");import{i18n as kn}from"@lingui/core";import{Alert as Sv,Button as Cv,darkTheme as kv,Divider as El,DoneIcon as Tv,styled as wv,TextField as vv,Typography as bv}from"@rango-dev/ui";import je,{useState as xv}from"react";import{useNavigate as Ev,useSearchParams as Iv}from"react-router-dom";import{ChevronRightIcon as JT,Divider as pm,Image as RT,Typography as um}from"@rango-dev/ui";import Et from"react";import{darkTheme as am,styled as Ys}from"@rango-dev/ui";var sm=Ys("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${am} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${am} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),lm=Ys("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),cm=Ys("div",{display:"flex"});function Zs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return Et.createElement(lm,null,Et.createElement(um,{size:"large",variant:"label"},n),Et.createElement(pm,{size:10}),Et.createElement(sm,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},Et.createElement(cm,null,r&&Et.createElement(Et.Fragment,null,Et.createElement(RT,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),Et.createElement(pm,{size:4,direction:"horizontal"})),Et.createElement(um,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),Et.createElement(JT,{size:12,color:"black"})))}i(Zs,"BlockchainSelectorButton");import{i18n as ol}from"@lingui/core";import{Button as nw,Divider as gm,MessageBox as rw}from"@rango-dev/ui";import co,{useEffect as hm,useState as nl}from"react";import{i18n as Li}from"@lingui/core";import{Divider as Do,ExternalLinkIcon as tw,Image as ow,Typography as yn}from"@rango-dev/ui";import ke from"react";var dm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function mm(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(mm,"generateExplorerLink");import{Button as ew,darkTheme as hn,styled as Js}from"@rango-dev/ui";var Rs=Js("a",{textDecoration:"none",color:"$colors$neutral700",[`.${hn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${hn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${hn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${hn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),fm=Js("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${hn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${hn} &`]:{color:"$colors$neutral900"}}}),el=Js(ew,{minHeight:"$40"});function tl(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=mm(n.address,s),l=i(()=>window.open(dm,"_blank"),"onClickLearnMore");return ke.createElement(J,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:W()},ke.createElement(fm,null,ke.createElement(ow,{src:n.image===""?Zr:n.image,size:45,type:"circular"}),ke.createElement(Do,{size:4}),ke.createElement(yn,{variant:"title",size:"medium"},n.symbol),ke.createElement(yn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),ke.createElement(Do,{size:4}),ke.createElement(yn,{variant:"body",size:"medium"},c?ke.createElement(Rs,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,ke.createElement(tw,{size:12,color:"gray"})):ke.createElement(Rs,null,n.address)),ke.createElement(Do,{size:4}),n.coinSource&&ke.createElement(yn,{className:"_coin-source",variant:"body",size:"xsmall"},Li.t("via")," ",ke.createElement(yn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),ke.createElement(Do,{size:"32"}),ke.createElement(yn,{size:"medium",variant:"body",className:"_custom-token-description"},Li.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),ke.createElement(Do,{size:40}),ke.createElement(Do,{size:10}),ke.createElement(el,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Li.t("Import Anyway")),ke.createElement(Do,{size:10}),ke.createElement(el,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Li.t("Learn More")))}i(tl,"CustomTokenModal");function ir(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=k(),[d,f]=nl(!1),[h,g]=nl(!1),[m,C]=nl(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),S=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),T=i(()=>{C(!0),S()},"handleErrorModalButtonClick"),w=i(()=>{m&&n?.type==="network-error"&&(C(!1),y()),l()},"handleExit"),v=i(()=>{e&&(u(e),c())},"handleSubmit");return hm(()=>{n&&f(!0)},[n]),hm(()=>{o&&e&&g(!0)},[o,e]),co.createElement(co.Fragment,null,co.createElement(J,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:S,onExit:w,container:W()},co.createElement(rw,{title:n?.title??"",type:"error",description:n?.message||ol.t("Failed Network, Please retry.")},co.createElement(gm,{size:40}),co.createElement(gm,{size:10}),co.createElement(nw,{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"?ol.t("Retry"):ol.t("Add another custom token")))),o&&e&&co.createElement(tl,{blockchain:o,token:e,onSubmitClick:v,onClose:()=>g(!1),open:h,onExit:p}))}i(ir,"ImportCustomToken");import{useManager as dv}from"@rango-dev/queue-manager-react";import{BottomLogo as mv,Divider as jm,Header as fv}from"@rango-dev/ui";import Ne,{useEffect as Qi,useLayoutEffect as gv,useRef as Xm,useState as Ym}from"react";import{useRef as iw}from"react";function ar(){return window.self!==window.top}i(ar,"isAppLoadedIntoIframe");function rl(){let t=iw(null),{iframe:e}=k(),o=ar()&&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(rl,"useIframe");import{useNavigate as aw}from"react-router-dom";function Ke(){let t=aw();return()=>t(-1)}i(Ke,"useNavigateBack");import{useLayoutEffect as sw,useState as sr}from"react";var ym=480,Sm=768,Cm=1024,km=1200,lw=i(()=>{let[t,e]=sr(!1),[o,n]=sr(!1),[r,a]=sr(!1),[s,c]=sr(!1),[l,p]=sr(!1),u=i(()=>{e(window.innerWidth<=ym),n(window.innerWidth>ym&&window.innerWidth<=Sm),a(window.innerWidth>Sm&&window.innerWidth<=Cm),c(window.innerWidth>Cm&&window.innerWidth<=km),p(window.innerWidth>km)},"handleResize");return sw(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),Sn=lw;import{createTheme as ul,darkTheme as Tw,lightTheme as ww}from"@rango-dev/ui";import{useEffect as vw,useState as bw}from"react";import{theme as Cw,darkColors as kw}from"@rango-dev/ui";import cl from"react";var Pi=16,_i=255,Tm=.11;function cw(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(cw,"expandShortHexColor");function pw(t,e){return t.padStart(e,"0")}i(pw,"pad");function il(t){let e=Math.min(Math.max(Math.round(t),0),_i);return pw(e.toString(Pi),2)}i(il,"intToHex");function uw(t){return`#${il(t.red)}${il(t.green)}${il(t.blue)}`}i(uw,"rgbToHex");function dw(t){let e=parseInt(t.slice(1,3),Pi),o=parseInt(t.slice(3,5),Pi),n=parseInt(t.slice(5,7),Pi);return{red:e,green:o,blue:n}}i(dw,"hexToRGB");function mw(t,e){let o=1-Tm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(mw,"generateShade");function fw(t,e){let o=Tm*e;return{red:t.red+(_i-t.red)*o,green:t.green+(_i-t.green)*o,blue:t.blue+(_i-t.blue)*o}}i(fw,"generateTint");function gw(t){return wm(t,mw)}i(gw,"calculateShades");function hw(t){return wm(t,fw)}i(hw,"calculateTints");function wm(t,e){let o=dw(t),n=[];for(let r=1;r<9;r++)n.push(uw(e(o,r)));return n}i(wm,"calculateColors");function al(t,e,o){let a=hw(t).reverse().concat(t),s=gw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let d=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${d}`]=f)}return l}i(al,"createTintsAndShades");function sl(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)&&!fu(r)){let l=cw(a);Object.assign(n,al(l,r,s))}}return{...n,...e}}i(sl,"expandToGenerateThemeColors");var vm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),yw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=vm(o%52)+e;return vm(o%52)+e},"toAlphabeticName"),Sw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ll=i(t=>yw(Sw(5381,JSON.stringify(t))>>>0),"toHash");function pl(t){let e=Cw.colors,o={...e,...kw},n,r;if(t?.light){let s={colors:sl(e,t.light)};n={id:`${us}-light-${ll(s)}`,tokens:s}}if(t?.dark){let s={colors:sl(o,t.dark,{reverseNeutralRange:!0})};r={id:`${us}-dark-${ll(s)}`,tokens:s}}return{light:n,dark:r}}i(pl,"customizedThemeTokens");function bm(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>cl.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(cl.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(cl.cloneElement(e,{key:c}))}}),o}i(bm,"joinList");function xm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(xm,"doesWindowPreferDarkColorScheme");function po(t){let{colors:e,fontFamily:o=Jp,borderRadius:n=Au,secondaryBorderRadius:r=Nu}=t,[a,s]=bw(xm()?"dark":"light"),{theme:c}=k(),{dark:l,light:p}=pl(e),u=ul({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,ww.className],f=[u.className,Tw.className];if(p){let g=ul(p.id,p.tokens);d.push(g.className)}if(l){let g=ul(l.id,l.tokens);f.push(g.className)}return vw(()=>{let g=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return xm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=d.join(" "),m=f.join(" ");return c==="auto"?a==="dark"?m:g:c==="dark"?m:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(po,"useTheme");var wt=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 Em}from"@lingui/core";import{Alert as xw,Button as Ew}from"@rango-dev/ui";import Im from"react";function dl(t){return Im.createElement(xw,{action:Im.createElement(Ew,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Em.t("Activate this tab")),type:"warning",variant:"alarm",title:Em.t("Another tab is open and handles transactions.")})}i(dl,"ActivateTabAlert");import{i18n as ml}from"@lingui/core";import{Button as Iw,Divider as Aw,MessageBox as Nw}from"@rango-dev/ui";import Di from"react";function fl(t){let{open:e,onClose:o,onConfirm:n}=t;return Di.createElement(J,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:W()},Di.createElement(Nw,{title:ml.t("Activate current tab"),type:"warning",description:ml.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.")},Di.createElement(Aw,{size:20}),Di.createElement(Iw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},ml.t("Confirm"))))}i(fl,"ActivateTabModal");import{ChevronLeftIcon as Mw}from"@rango-dev/ui";import _m from"react";import{css as Bw,darkTheme as Am,IconButton as Ww,styled as $o}from"@rango-dev/ui";var Dt=$o(Ww,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Am} &`]:{backgroundColor:"$neutral"}}}),Nm=$o("div",{position:"absolute",background:"$secondary500",[`.${Am} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),uo=$o("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Bm=$o("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"}}}}),Wm=$o("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Mm=$o("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Lm=Bw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Pm=$o("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function gl(t){return _m.createElement(Dt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},_m.createElement(Mw,{color:"black",size:16}))}i(gl,"BackButton");import{i18n as Lw}from"@lingui/core";import{Button as Pw,Typography as _w}from"@rango-dev/ui";import hl from"react";function yl(t){return hl.createElement(uo,null,hl.createElement(Pw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},hl.createElement(_w,{variant:"label",size:"medium",color:"error500"},Lw.t("Cancel"))))}i(yl,"CancelButton");import{i18n as Dw}from"@lingui/core";import{Image as $w,Tooltip as Fw,WalletIcon as Ow}from"@rango-dev/ui";import Fo from"react";function Sl(t){let{list:e}=xt(),o=e.filter(r=>r.state==="connected"),n=o.length?Fo.createElement("div",{className:Lm()},o.map(r=>Fo.createElement(Pm,{key:r.title},Fo.createElement($w,{src:r.image,size:14})))):Dw.t("Connect Wallet");return Fo.createElement(Fw,{container:t.container,side:"bottom",content:n},Fo.createElement(Dt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Fo.createElement(Nm,null),Fo.createElement(Ow,{size:18,color:"black"})))}i(Sl,"WalletButton");import{i18n as Fi}from"@lingui/core";import{NotificationsIcon as tv,Popover as ov,SettingsIcon as nv,Tooltip as Oi,TransactionIcon as rv}from"@rango-dev/ui";import De from"react";import{Notifications as Hw}from"@rango-dev/ui";import qw from"react";import{useNavigate as Gw}from"react-router-dom";import{create as Uw}from"zustand";import{persist as zw,subscribeWithSelector as Qw}from"zustand/middleware";var Ae=so(Uw()(zw(Qw((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1];if(!r||!a)return;let s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function Cl(){let t=Gw(),{getNotifications:e,clearNotifications:o}=Ae(),n=e(),r=k().blockchains(),{findToken:a}=k();return qw.createElement(Hw,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Hp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${O.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(Cl,"NotificationContent");import{useManager as Vw}from"@rango-dev/queue-manager-react";import{InProgressIcon as Kw}from"@rango-dev/ui";import Dm from"react";var jw=i(()=>{let{manager:t}=Vw();return wt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Dm.createElement(Mm,{id:"widget-header-history-badge-container"},Dm.createElement(Kw,{color:"info",size:6})):null},"InProgressTransactionBadge"),$m=jw;import{EventSeverity as Xw}from"@rango-dev/queue-manager-rango-preset";import{Typography as Yw}from"@rango-dev/ui";import Fm from"react";function Om(){let{getNotifications:t}=Ae(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Xw.WARNING);return o?Fm.createElement(Bm,{isSever:n},Fm.createElement(Yw,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Om,"NotificationsBadge");import{RefreshProgressButton as Zw}from"@rango-dev/ui";import kl,{useEffect as Jw,useState as Um}from"react";var Rw=1e3,zm=60,ev=100;function $i({onClick:t}){let[e,o]=Um(0),[n,r]=Um(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Jw(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===zm&&c()},Rw):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 kl.createElement(Dt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},kl.createElement(Wm,{onTransitionEnd:()=>r(!1),isRefetched:n},kl.createElement(Zw,{size:22,color:t?"black":"gray",progress:e/zm*ev})))}i($i,"RefreshButton");function Oo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=k(),c=ot("notification",s)||r.includes("notifications");return De.createElement(De.Fragment,null,!r.includes("refresh")&&De.createElement(Oi,{container:a||W(),side:"top",content:Fi.t("Refresh")},De.createElement($i,{onClick:e})),!c&&De.createElement(ov,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:W(),content:De.createElement(Cl,null)},De.createElement("div",null,De.createElement(Oi,{container:W(),side:"top",content:Fi.t("Notifications")},De.createElement(Dt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},De.createElement(tv,{size:18,color:"black"}),De.createElement(Om,null))))),!r.includes("settings")&&De.createElement(Oi,{container:W(),side:"top",content:Fi.t("Settings")},De.createElement(Dt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},De.createElement(nv,{size:18,color:"black"}))),!r.includes("history")&&De.createElement(Oi,{container:W(),side:"top",content:Fi.t("History")},De.createElement(Dt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},De.createElement(rv,{size:18,color:"black"}),De.createElement($m,null))))}i(Oo,"HeaderButtons");import{i18n as Tl}from"@lingui/core";import{Divider as Hm,MessageBox as sv,RefreshIcon as lv}from"@rango-dev/ui";import Cn from"react";import{Button as iv,styled as av}from"@rango-dev/ui";var Qm=av(iv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function wl(t){let{open:e,onClose:o}=t;return Cn.createElement(J,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:W()},Cn.createElement(sv,{title:Tl.t("Something went wrong"),type:"error",description:Tl.t("Something went wrong. Please refresh the app.")},Cn.createElement(Hm,{size:30}),Cn.createElement(Qm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Cn.createElement(lv,{size:20,color:"primary"}),Cn.createElement(Hm,{size:4,direction:"horizontal"}),Tl.t("Refresh"))))}i(wl,"RefreshModal");function vl(t){let e=t.target;if(e){let o=e.scrollTop,n=W();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(vl,"onScrollContentAttachStatusToContainer");import{css as pv,styled as Ui}from"@rango-dev/ui";var zi=pv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),qm=Ui("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"}}}}),Gm=Ui("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Vm=Ui("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"}}}),Km=Ui("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=rl(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=k(),[u,d]=Ym(!1),{config:{features:f,theme:h}}=k(),{watermark:g,setShowCompactTokenSelector:m}=oe(),C=g==="FULL",{activeTheme:y}=po(h||{}),[S,T]=Ym(!1),w=ot("connectWalletButton",f),{isActiveTab:v,tabManagerInitiated:N,showActivateTabModal:B,setShowActivateTabModal:b,activateCurrentTab:E}=oe(),x=Ke(),{manager:M}=dv(),{isTablet:I,isMobile:_}=Sn(),H=wt(M).map(({swap:le})=>le).some(le=>le.status==="running"),j=i(()=>E(Mo.forceClaim,H),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),ee=typeof r.hasBackButton>"u"||r.hasBackButton,R=Xm(null),Y=Xm(null);return Qi(()=>{let le=(p?.swapBoxBanner?.routes?.length??0)===0,Xe=!!p?.swapBoxBanner?.routes?.some(ae=>location.pathname.endsWith(ae));T(!!p?.swapBoxBanner&&(le||Xe))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),Qi(()=>(ar()&&Y.current&&e(Y.current),()=>{o()}),[]),Qi(()=>(R.current?.addEventListener("scroll",vl),()=>{R.current?.removeEventListener("scroll",vl)}),[]),Qi(()=>{d(c==="failed")},[c]),gv(()=>{let le=s==="auto"||!Y.current||ar(),Xe=_||I,ae=i(()=>{le||(Xe?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 ae(),window.addEventListener("resize",ae),()=>window.removeEventListener("resize",ae)},[s,_,I]),Ne.createElement(qm,{height:s,id:tt.SWAP_BOX_ID,className:`${y()} ${zi()}`,ref:Y,showBanner:S},Ne.createElement(fv,{prefix:ee?Ne.createElement(gl,{onClick:()=>{x(),r.onBack?.()}}):null,title:r.title,suffix:Ne.createElement(Ne.Fragment,null,r.suffix,r.onWallet&&!w&&Ne.createElement(Sl,{container:W(),onClick:L,isConnected:!!l?.length}),r.onCancel&&Ne.createElement(yl,{onClick:r.onCancel}))}),Ne.createElement(Gm,{ref:R},n),Ne.createElement(fl,{open:B,onClose:()=>b(!1),onConfirm:j}),Ne.createElement(Vm,null,Ne.createElement("div",{className:"footer__content"},N&&!v&&Ne.createElement("div",{className:"footer__alert"},Ne.createElement(dl,{onActivateTab:j}),Ne.createElement(jm,{size:10})),a),Ne.createElement(jm,{size:12}),Ne.createElement("div",{className:`footer__logo ${C?"logo__show":"logo__hidden"}`},Ne.createElement(mv,null))),S&&Ne.createElement(Km,null,p?.swapBoxBanner?.element),Ne.createElement(wl,{open:u,onClose:()=>d(!1)}))}i(ie,"Layout");import{styled as hv}from"@rango-dev/ui";var Zm="$20 $20 $10 $20",bl=hv("div",{padding:Zm,overflowY:"auto",flexGrow:1});import{styled as yv}from"@rango-dev/ui";var ce=yv("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 mo}from"@lingui/core";import{useState as xl}from"react";function Jm(){let[t,e]=xl(!1),[o,n]=xl(null),[r,a]=xl(null),{findToken:s}=k(),c=k().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(d,f){switch(d){case"duplicated":return{type:d,title:mo.t("Duplicate Token"),message:mo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:mo.t("Token Already Exists"),message:mo.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:mo.t("Token Not Found"),message:mo.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:f}})};case"network-error":return{type:d,title:mo.t("Network error"),message:mo.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:f})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===f.toLowerCase())){let y=p("duplicated");n(y);return}let g=await ut().getCustomToken({blockchain:d,address:f});if(!g||!g.token||g.error){let y=p("not-found",d);n(y);return}let m=g.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let y=p("token-exist");n(y);return}return a({...m,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",d);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(Jm,"useFetchCustomToken");var Av=wv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${kv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Rm(){let t=Ev(),[e]=Iv(),o=Ke(),n=k().blockchains(),r=e.get("blockchain")||"",a=Io(r,n),[s,c]=xv(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:f}=Jm(),h=!!a&&Jo(a,s),g=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return je.createElement(ie,{header:{title:kn.t("Add Custom Token")}},je.createElement(ce,null,je.createElement(Av,null,je.createElement("div",null,je.createElement(Zs,{onClick:()=>t(O.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:kn.t("Select chain"),placeholder:kn.t("Select chain")}),je.createElement(El,{size:"24"}),je.createElement(bv,{size:"large",variant:"label"},kn.t("Enter Address")),je.createElement(El,{size:10}),je.createElement(vv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:kn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&je.createElement(Tv,{color:"success",size:12}),onChange:C=>c(C.target.value)}),!h&&!!s&&je.createElement(je.Fragment,null,je.createElement(El,{size:4}),je.createElement(Sv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),je.createElement(Cv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},kn.t("Import"))),je.createElement(ir,{token:p,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(Rm,"AddCustomTokenPage");import{i18n as nc}from"@lingui/core";import{useManager as mx}from"@rango-dev/queue-manager-react";import{Alert as fx,Button as gx,css as ic,Divider as rc,IconButton as Hg,styled as hx,Typography as yx,WalletIcon as Sx}from"@rango-dev/ui";import Fe,{useEffect as fa,useLayoutEffect as Cx,useRef as kx,useState as Tr}from"react";import{useNavigate as Tx}from"react-router-dom";import{i18n as Uo}from"@lingui/core";import{Alert as eb,BalanceErrors as tb,Button as Ef,ChevronLeftIcon as ob,Divider as Pl,MessageBox as nb,Typography as _l}from"@rango-dev/ui";import re,{useCallback as rb,useEffect as If,useMemo as ib,useState as vn}from"react";import{useNavigate as ab}from"react-router-dom";import{i18n as Bl}from"@lingui/core";import{Alert as Lv,ChevronDownIcon as Pv,CloseIcon as _v,Divider as sf,IconButton as lf,PasteIcon as Dv,Typography as $v,WalletIcon as Fv}from"@rango-dev/ui";import $e,{useEffect as Ov,useRef as Uv}from"react";import Vi,{useRef as Wv}from"react";import*as Tn from"@radix-ui/react-collapsible";import{keyframes as ef,styled as Hi}from"@rango-dev/ui";var Il=300,Nv=ef({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Bv=ef({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),tf=Hi(Tn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Al=Hi(Tn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),qi=Hi(Tn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Nv} ${Il}ms ease-out`},false:{animation:`${Bv} ${Il}ms ease-out`}}}}),Gi=Hi("div",{transition:`all ${Il}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Ki(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Wv(null);return Vi.createElement(tf,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&Vi.createElement(Al,{className:"collapsible_trigger",onClick:a},s),Vi.createElement(qi,{className:"collapsible_content",open:e},r),c==="bottom"&&Vi.createElement(Al,{className:"collapsible_trigger",onClick:a},s))}i(Ki,"CustomCollapsible");import{darkTheme as of,styled as Nl,TextField as Mv}from"@rango-dev/ui";var nf=Nl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),rf=Nl(Mv,{backgroundColor:"$neutral100"}),af=Nl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${of} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${of} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function cf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=U()(),{config:s}=k(),c=k().blockchains(),l=Xr(e.name,c),p=Uv(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!Jo(e,r),g=i(()=>{a("")},"handleClear"),m=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let S=await navigator.clipboard.readText();a(S),p?.current?.focus()}},"handlePaste"),C=i(()=>r?$e.createElement(lf,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},$e.createElement(_v,{size:12,color:"gray"})):d?null:$e.createElement(lf,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},$e.createElement(Dv,{size:16})),"renderSuffix");return Ov(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),$e.createElement(nf,null,$e.createElement(Ki,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:$e.createElement(af,{id:"widget-custom-destination-collapsible-btn"},$e.createElement("div",{className:"button__content"},$e.createElement(Fv,{size:18,color:"info"}),$e.createElement(sf,{size:4,direction:"horizontal"}),$e.createElement($v,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Bl.t("Send to a different address"))),$e.createElement(Gi,{orientation:n?"up":"down"},$e.createElement(Pv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},$e.createElement(rf,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Bl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:C(),onChange:y=>{let S=y.target.value;a(S)}})),h&&$e.createElement($e.Fragment,null,$e.createElement(sf,{size:4}),$e.createElement(Lv,{variant:"alarm",type:"error",title:Bl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(cf,"CustomDestination");import{css as zv,IconButton as Qv,SelectableWalletButton as Hv,styled as fo}from"@rango-dev/ui";var pf=fo("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),uf=fo("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),df=fo(Hv,{justifyContent:"center"}),mf=fo("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),ff=fo(Qv,{position:"absolute",left:"$20"}),gf=fo("div",{paddingTop:"$20"}),hf=zv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),yf=fo("div",{display:"flex"}),Sf=fo("div",{overflow:"visible",width:"100%"});import{i18n as Ml}from"@lingui/core";import{warn as jv}from"@rango-dev/logging-core";import{Divider as Xv,makeInfo as Yv,SelectableWallet as Zv,Typography as bf,WalletState as ji}from"@rango-dev/ui";import it,{useEffect as xf,useState as pr}from"react";import{Image as Vv,MessageBox as Kv}from"@rango-dev/ui";import cr from"react";import{keyframes as qv,styled as Wl}from"@rango-dev/ui";var Cf=Wl("div",{position:"relative"}),Gv=qv({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),kf=Wl("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Gv} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Tf=Wl("div",{"& img":{borderRadius:"50%"}});import{i18n as wn}from"@lingui/core";function wf(t,e){switch(t){case"in-progress":return{type:"loading",title:wn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:wn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:wn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:wn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:wn.t("Request Rejected"),description:wn.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(wf,"generateMessageByStatus");function vf(t){let{status:e,displayName:o,image:n}=t,r=wf(e,o),a=e=="in-progress";return cr.createElement(Kv,{type:r.type,title:r.title,description:r.description,icon:a?cr.createElement(Cf,null,cr.createElement(Tf,null,cr.createElement(Vv,{src:n,size:45})),cr.createElement(kf,null)):void 0})}i(vf,"ExperimentalChainStatus");var Jv=7,Rv=3e3;function Ll(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{checkHasDeepLink:l,getWalletLink:p}=ln(),{blockchains:u,connectedWallets:d}=k(),[f,h]=pr(),[g,m]=pr(null),[C,y]=pr(!1),[S,T]=pr(null),{suggestAndConnect:w}=Xi(),{list:v}=xt({chain:e}),[N,B]=pr(v),b=v.length,E=a&&b-a>0,x=i(async I=>{y(!1),T("in-progress");try{await w(I.walletType,I.chain),T("completed")}catch{T("rejected")}},"addExperimentalChain");xf(()=>{B(I=>{let _=v.findIndex(Q=>n(Q.type,e));return E&&_>1?[v[_]].concat(v.filter((Q,H)=>H!==_)):I.map(Q=>v.find(H=>H.type===Q.type)??Q)})},[JSON.stringify(v)]);let M=document.getElementById(tt.SWAP_BOX_ID);return xf(()=>{let I=null;return(S==="completed"||S==="rejected")&&(I=setTimeout(()=>T(null),Rv)),()=>{I&&clearTimeout(I)}},[S]),it.createElement(it.Fragment,null,N.slice(0,a).map(I=>{let _=wu({connectedWallets:d,walletType:I.type,chain:e}),Q=I.state===ji.CONNECTED,H=_?ao(_,Jv):"",j=Q&&!!I.needsNamespace&&!H,L=ai(u(),e),ee=!d.find(Ue=>Ue.walletType===I.type&&Ue.chain===e),R=L&&ee&&I.state===ji.CONNECTED,Y=i(async()=>{I.state===ji.DISCONNECTED||j?h(I):R?(m({walletType:I.type,chain:e,address:_??""}),y(!0)):r({walletType:I.type,chain:e,address:_??""})},"onSelectableWalletClick"),le=Yv(I.state,{hasDeepLink:l(I.type)}),Xe=i(()=>R?Ml.t({id:"Add {chain} chain",values:{chain:e}}):j?Ml.t("Chain not connected"):H||le.description,"getWalletDescription"),ae=i(()=>I.state===ji.CONNECTED?j?"neutral600":"neutral700":le.color,"getWalletDescriptionColor"),we=g?.chain?Xr(g.chain,u()):void 0;return it.createElement(it.Fragment,{key:`${I.title}_${we}`},!!g&&it.createElement(J,{id:"widget-wallets-list-watermarked-modal",open:!!g&&C,container:M,onClose:()=>{m(null)}},it.createElement(Fs,{id:"widget-wallets-list-experimental-chain-container",displayName:we,onConfirm:()=>{x(g)}})),S&&it.createElement(J,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!S,onClose:T.bind(null,null),container:M},it.createElement(vf,{status:S,displayName:we,image:I.image}),it.createElement(Xv,{direction:"vertical",size:32})),it.createElement(Zv,{hasDeepLink:l(I.type),key:I.type,id:"widget-wallets-list-selectable-wallet-btn",description:Xe(),descriptionColor:ae(),onClick:Y,selected:n(I.type,e),disabled:!c,...I,link:p(I.type)}))}),it.createElement(tr,{id:"widget-wallets-list-stateful-connect-modal",wallet:f,options:{defaultSelectedChains:o||[e]},onClose:()=>{h(void 0)},onConnect:()=>{t.onConnect&&(f?.type?t.onConnect(f.type):jv(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),E&&it.createElement(df,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},it.createElement(bf,{variant:"label",size:"medium"},Ml.t("Show more wallets"),it.createElement(bf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",b-(a??0)))))}i(Ll,"WalletList");var sb=2;function Af(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=ab(),c=k().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:f,setCustomDestination:h}=U()(),{config:g,connectedWallets:m,setWalletsAsSelected:C}=k(),[y,S]=vn(""),[T,w]=vn([]),[v,N]=vn(""),[B,b]=vn(!!f),E=ib(()=>Bo({filter:"all",quote:l}),[l]),x=Bo({filter:"required",quote:l}),M=c.find($=>$.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),I=i($=>x.includes($),"isWalletRequiredFor"),_=rb(()=>m.filter($=>$.selected&&E.includes($.chain)),[m,E]),[Q,H]=vn(_()),[j,L]=vn([]),ee=i(($,A)=>L(G=>G.concat({blockchain:$,walletType:A})),"addNextSelectedWallets"),R=T.length>0,Y=i(($,A)=>!!Q.find(G=>G.walletType===$&&G.chain===A&&G.selected&&(I(A)||!I(A)&&!f)),"isSelected"),le=i(($,A,G)=>{let se=!1;return $.map(K=>{if(K.chain===A){let X=K.selected;return!se&&G?(se=!0,X=!0):G||(X=!1),{...K,selected:X}}return K})},"updateSelectableWallets"),Xe=i($=>{b($),$?I(M?.name??"")||H(A=>le(A,M?.name||"",!1)):(h(""),H(A=>le(A,M?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),ae=i($=>{if(y&&S(""),Y($.walletType,$.chain))return;let G=m.find(se=>se.walletType===$.walletType&&se.chain===$.chain);G&&(n(),$.chain===M?.name&&B&&!I(M.name)&&(b(!1),h(null)),H(se=>se.filter(K=>K.chain!==$.chain).concat({...G,selected:!0})))},"onChange"),we=i(()=>{let $=Q.filter(A=>A.selected);C($),p($),d(!0),o()},"onConfirmBalance"),Ue=i(async()=>{w([]),N("");let $=await r?.({selectedWallets:Q.filter(G=>G.selected),customDestination:f}),A=$.warnings;A?.balance?.messages&&w(A.balance.messages),$.error&&N(kd($.error)),!$.error&&!A?.balance?.messages.length?we():w(A?.balance?.messages??[])},"onConfirmWallets");If(()=>{H($=>{let A=[];return $.forEach(G=>{!m.some(K=>K.chain===G.chain&&K.walletType===G.walletType&&K.address===G.address)||A.push(G)}),A=A.concat(m.filter(G=>!!!A.find(K=>K.chain===G.chain)&&G.selected&&E.includes(G.chain))),A})},[m,E]),If(()=>{let $=[];j.length>0&&(j.forEach(A=>{let G=m.find(se=>se.chain===A.blockchain&&se.walletType===A.walletType);G?ae(G):$.push(A)}),L($))},[m,j]);let Ee=document.getElementById(tt.SWAP_BOX_ID);return re.createElement(J,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:Ee,...!y&&{styles:{container:{height:"100%"}},footer:re.createElement(yf,null,re.createElement(Ef,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Xd(a,B,f,l,Q,M),onClick:Ue,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Uo.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:re.createElement(mf,null,re.createElement(ff,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:S.bind(null,"")},re.createElement(ob,{size:16})),re.createElement(_l,{variant:"headline",size:"small"},Uo.t({id:"Your {blockchainName} wallets",values:{blockchainName:yt(y,c)}})))},anchor:"center"},re.createElement(J,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:R,onClose:w.bind(null,[]),container:Ee},re.createElement(nb,{title:Uo.t("Insufficient account balance"),type:"error",description:re.createElement(tb,{messages:T??[]})},re.createElement(Ef,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:we},Uo.t("Proceed anyway")))),y&&re.createElement(gf,null,re.createElement("div",{className:hf()},re.createElement(Ll,{chain:y,quoteChains:E,isSelected:Y,selectWallet:ae,onShowMore:()=>S(y),onConnect:$=>{ee(y,$)}}))),!y&&re.createElement(re.Fragment,null,v&&re.createElement(re.Fragment,null,re.createElement(eb,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Uo.t(v)}),re.createElement(Pl,{size:12})),re.createElement(Sf,null,E.map(($,A)=>{let G=c.find(bt=>bt.name===$),se=`wallet-${A}`,K=A===E.length-1,X=K&&M&&g?.customDestination!==!1;return re.createElement("div",{key:se},re.createElement(pf,null,re.createElement(_l,{variant:"title",size:"xmedium"},Uo.t({id:"Your {blockchainName} wallets",values:{blockchainName:G?.shortName}})),re.createElement(_l,{variant:"label",color:"$neutral700",size:"medium"},Uo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:G?.shortName}}))),re.createElement(Pl,{size:24}),re.createElement(uf,null,re.createElement(Ll,{chain:$,quoteChains:E,isSelected:Y,selectWallet:ae,limit:sb,onShowMore:()=>S(G?.name??""),onConnect:bt=>{ee($,bt)}})),!K&&re.createElement(Pl,{size:32}),X&&re.createElement(cf,{blockchain:M,open:B,handleOpenChange:Xe}))}))))}i(Af,"ConfirmWalletsModal");import{i18n as Ab}from"@lingui/core";import{Alert as Nb,Button as Bb,Divider as Kf,InfoIcon as Wb}from"@rango-dev/ui";import Qe from"react";import{Alert as pb,Button as ub,Divider as Fl,NoRouteIcon as db,RefreshIcon as mb,Typography as _f}from"@rango-dev/ui";import dt from"react";import{i18n as Nf}from"@lingui/core";var lb=24,cb=60;function Bf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ne().genericServerError,action:{onClick:n,title:Nf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ne().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Nf.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(Bf,"makeInfo");var Dl=(o=>(o[o.small=lb]="small",o[o.large=cb]="large",o))(Dl||{}),$l=(o=>(o.small="small",o.large="medium",o))($l||{});import{styled as Yi}from"@rango-dev/ui";var Wf=Yi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Mf=Yi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Lf=Yi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Pf=Yi("div",{padding:"$6 $0"});function ur(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=k().getDisabledLiquiditySources(),s=k().toggleAllLiquiditySources,c=k().swappers(),l=Bf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),dt.createElement(Wf,{id:"widget-no-result-container"},dt.createElement(db,{size:Dl[n],color:"gray"}),dt.createElement(Fl,{size:4}),dt.createElement(_f,{variant:"title",size:$l[n]},ne().noResultError.title),n==="large"&&dt.createElement(Fl,{size:4}),!!l.description&&dt.createElement(Mf,{size:n},dt.createElement(_f,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),dt.createElement(Fl,{size:n==="large"?"24":"4"}),!!l.alert&&dt.createElement(Lf,{size:n},dt.createElement(pb,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&dt.createElement(ub,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:dt.createElement(Pf,null,dt.createElement(mb,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(ur,"NoResult");import{i18n as mr}from"@lingui/core";import{Button as hb,Divider as yb,MessageBox as Sb,Typography as Cb,WarningIcon as kb}from"@rango-dev/ui";import Xt from"react";import{Typography as Uf}from"@rango-dev/ui";import Ul from"react";import{Button as fb,darkTheme as gb,styled as dr}from"@rango-dev/ui";var Df=dr("div",{width:"100%"}),Ol=dr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),$f=dr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${gb} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ff=dr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Of=dr(fb,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function zf(t){let{title:e,value:o,valueColor:n}=t;return Ul.createElement($f,null,Ul.createElement(Uf,{size:"medium",variant:"label",className:"_title"},e),Ul.createElement(Uf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(zf,"QuoteErrorsModalItem");function Qf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:mr.t("Swapping"),value:D(r.inputUsdValue,4,4)},{title:mr.t("Gas cost"),value:D(r.totalFee,2,2)},{title:mr.t("Receiving"),value:D(r.outputUsdValue,4,4)},{title:mr.t("Price impact"),value:D(r.priceImpact,2,2),valueColor:`${s}500`}];return Xt.createElement(J,{id:"widget-high-value-loss-warning-modal",footer:Xt.createElement(hb,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Xt.createElement(kb,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:W()},Xt.createElement(Sb,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Xt.createElement(Ol,null,Xt.createElement(yb,{size:"4"}),Xt.createElement(Cb,{size:"small",variant:"title"},mr.t("Details")),Xt.createElement(Ol,null,c.map((l,p)=>Xt.createElement(zf,{key:p,...l})))))}i(Qf,"HighValueLossWarningModal");import{i18n as bn}from"@lingui/core";function Hf(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=bn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=bn.t("Increase")),o;if(t){switch(t.type){case 0:{jt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().highValueLossError.title;break}case 4:{o.title=bn.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=ne().unknownPriceError.title;break}case 2:{o.title=bn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=bn.t("Increase");break}case 3:{o.title=bn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Hf,"makeAlerts");function qf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(qf,"getRequiredSlippage");import{i18n as xn}from"@lingui/core";import{Button as Tb,Divider as zl,MessageBox as wb,WarningIcon as vb}from"@rango-dev/ui";import yo from"react";import{useNavigate as bb}from"react-router-dom";function Gf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=bb();return yo.createElement(J,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:W(),onClose:o},yo.createElement(wb,{type:"warning",title:r.type===3?xn.t("High slippage"):xn.t("Low slippage"),description:r.type===3?xn.t("Caution, your slippage is high. Your trade may be front run."):xn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},yo.createElement(zl,{size:18}),yo.createElement(zl,{size:32}),yo.createElement(Of,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},yo.createElement(vb,{color:"white",size:16}),xn.t("Swap anyway")),yo.createElement(zl,{size:10}),yo.createElement(Tb,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+O.settings)},xn.t("Change Slippage"))))}i(Gf,"SlippageWarningModal");import{Button as xb,MessageBox as Eb,WarningIcon as Ib}from"@rango-dev/ui";import Zi from"react";function Vf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Zi.createElement(J,{id:"widget-unknown-price-warning-modal",footer:Zi.createElement(xb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Zi.createElement(Ib,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:W()},Zi.createElement(Eb,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(Vf,"UnknownPriceWarningModal");function fr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:d,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,m=Hf(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let C=!!m&&!s,y=i(S=>{if(S==="change-slippage"){let T=o?.type===3||o?.type===4?o:null,w=qf(e,T);f?.(w)}else S==="change-settings"&&d()},"onclickActionButton");return Qe.createElement(Qe.Fragment,null,g&&Qe.createElement(Qe.Fragment,null,Qe.createElement(Kf,{size:10}),Qe.createElement(ur,{skipAlerts:s,error:o,fetch:c})),C&&Qe.createElement(Df,null,Qe.createElement(Kf,{size:10}),Qe.createElement(Nb,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Qe.createElement(Ff,{onClick:l},Qe.createElement(Wb,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Qe.createElement(Bb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>y(m.action)},m.actionButtonTitle||Ab.t("Change"))}})),e&&Qe.createElement(Qe.Fragment,null,e.type===0&&Qe.createElement(Qf,{...h,warning:e}),(e.type===3||e.type===2)&&Qe.createElement(Gf,{...h,warning:e}),e.type===1&&Qe.createElement(Vf,{...h,warning:e})))}i(fr,"QuoteWarningsAndErrors");import ax from"bignumber.js";import pa from"react";import{i18n as zo}from"@lingui/core";import{Alert as Kb,Divider as In,FullExpandedQuote as jb,InfoIcon as Xb,NumericTooltip as Tg,QuoteTag as Yb,StepDetails as Zb,TokenAmount as Jb,Typography as An}from"@rango-dev/ui";import Yl from"bignumber.js";import z,{useRef as Rb,useState as ex}from"react";import{styled as Ql}from"@rango-dev/ui";var Hl=Ql("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),jf=Ql("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Xf=Ql("div",{width:"100%",display:"flex"});import*as Ji from"@radix-ui/react-collapsible";import{Button as Mb,css as gr,darkTheme as Be,Image as Yf,styled as Je,Typography as Lb}from"@rango-dev/ui";var Pb=300,Zf=Je(Ji.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Jf=gr({padding:"$10 $15"}),Rf=Je(Mb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Be} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Be} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Be} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),eg=Je("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${Be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Be} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Be} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Be} &`]:{backgroundColor:"$neutral400"}}}}]}),tg=gr({width:"100%",padding:"$15 $15 $10 $15"}),og=gr({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),En=gr({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),ng=gr({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Be} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),rg=Je(Ji.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Yf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Yf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),ig=Je("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),ag=Je(qi,{width:"100%",background:"inherit"}),ql=Je("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Pb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),yH=Je("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),sg=Je("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Be} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),lg=Je("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Gl=Je(Lb,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),cg=Je("div",{display:"flex",flexWrap:"wrap"}),Vl=Je("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),pg=Je("div",{display:"flex"}),Ri=Je("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Be} &`]:{borderTopColor:"$neutral800"}});import{i18n as $t}from"@lingui/core";import{ChevronDownIcon as Db,CloseIcon as $b,Divider as oa,IconButton as Fb,NumericTooltip as Ob,QuoteCost as Ub,Typography as It}from"@rango-dev/ui";import Z,{useState as fg}from"react";import{css as _b,styled as ea}from"@rango-dev/ui";var ta=ea("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Kl=ea("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),ug=ea("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),dg=ea("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),mg=_b({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var zb=i(t=>t.fee.isZero()?null:Z.createElement(ta,null,Z.createElement(It,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(It,{variant:"label",size:"medium"},"$",D(t.fee,4,4))),"NonPayableFee");function jl(t){let[e,o]=fg(!1),[n,r]=fg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?No():W(),m=zd(h),C=D(c,2,2);return Z.createElement(Z.Fragment,null,Z.createElement(Ub,{onClickFee:d?y=>{y.stopPropagation(),o(!e)}:void 0,fee:C,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?$t.t("View more info"):void 0,tooltipContainer:g}),Z.createElement(J,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:Z.createElement(dg,{style:{textAlign:f?"left":"center"}},Z.createElement(It,{variant:"title",size:"medium"},$t.t("Gas & Fee Explanation")),Z.createElement(Fb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Z.createElement($b,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(ug,null,Z.createElement(It,{variant:"title",size:"small"},$t.t("Details")),Z.createElement(oa,{size:10}),Object.entries(m.payable).flatMap(([y,S])=>S.map((T,w)=>{let v=`payable-fee-${w}`,N=qs(T);return Z.createElement(ta,{key:v},Z.createElement(It,{variant:"label",size:"medium",color:"neutral600"},Os(y,$t.t)),Z.createElement(Ob,{content:T.amount,container:g},Z.createElement(It,{variant:"label",size:"medium"},D(T.amount,2,2),T.asset.symbol," ($",D(N,4,4),")")))})),Z.createElement(ta,{className:"total_payable_fee"},Z.createElement(It,{variant:"label",size:"medium"},$t.t("Total Payable Fee")),Z.createElement(It,{variant:"label",size:"medium"},"$",D(c,4,4))),Z.createElement(Kl,null),!!Object.keys(m.nonePayable).length&&Z.createElement(Ki,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:Z.createElement("div",{className:mg()},Z.createElement(It,{size:"small",variant:"body",color:"neutral700"},n?$t.t("Hide non-payable fees"):$t.t("Show non-payable fees")),Z.createElement(oa,{size:4,direction:"horizontal"}),Z.createElement(Gi,{orientation:n?"up":"down"},Z.createElement(Db,{size:12,color:"gray"}))),open:n},Z.createElement(It,{size:"small",variant:"title"},$t.t("Description")),Z.createElement(oa,{size:4}),Z.createElement(It,{size:"small",variant:"body",color:"neutral700"},$t.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),Z.createElement(oa,{size:10}),Object.entries(m.nonePayable).map(([y,S],T)=>{let w=Ud(S),v=Os(y,$t.t),N=`non-payable-fee-${T}`;return Z.createElement(zb,{key:N,fee:w,label:v})}),Z.createElement(Kl,null)))))}i(jl,"QuoteCostDetails");import{i18n as yg}from"@lingui/core";import{TokenAmount as Sg}from"@rango-dev/ui";import na from"react";import{css as Qb,styled as Hb}from"@rango-dev/ui";var gg=Hb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),hg=Qb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function hr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return na.createElement(gg,null,na.createElement(Sg,{direction:"horizontal",label:yg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:W(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),na.createElement("div",{className:hg()}),na.createElement(Sg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:W(),label:yg.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(hr,"QuoteSummary");import{i18n as Cg}from"@lingui/core";import{ChevronDownIcon as qb,ChevronRightIcon as Gb,Divider as Xl,Image as Vb,Tooltip as sa,Typography as ra}from"@rango-dev/ui";import q from"react";var ia=4,aa=6,yr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||W();return q.createElement(sa,{container:c,side:"bottom",sideOffset:4,open:r,content:e},q.createElement(ig,{className:n,state:a},q.createElement(Vb,{src:o,size:16})))},"ImageComponent");function kg(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||W(),p=r.length,u=Bd(r),{isTablet:d,isMobile:f}=Sn();return q.createElement(rg,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},q.createElement("div",{className:En()},q.createElement(ra,{variant:"body",size:"xsmall"},Cg.t("Via:")),q.createElement(Xl,{direction:"horizontal",size:4}),r.map((h,g)=>{let m=`item-${g}`,C=q.createElement(ql,null,q.createElement(Gb,{size:12,color:"black"}));return f||d?q.createElement(q.Fragment,{key:m},q.createElement(yr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&q.createElement(q.Fragment,null,C)):q.createElement(q.Fragment,{key:m},p<=ia||p>ia&&g<ia-1?q.createElement(q.Fragment,null,q.createElement(yr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&q.createElement(q.Fragment,null,C)):g===ia-1&&q.createElement(sa,{container:l,side:"bottom",align:"end",sideOffset:4,content:q.createElement("div",{className:En()},C,r.map((y,S)=>{let T=`image-${S}`;return S>=g&&q.createElement(q.Fragment,{key:T},q.createElement(yr,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),S!==p-1&&q.createElement(q.Fragment,null,C))}))},q.createElement(Vl,{state:r.find((y,S)=>S>=g&&(y.state==="error"||y.state==="warning"))?.state},q.createElement(ra,{size:"xsmall",variant:"body"},"+",p-g))))})),q.createElement("div",{className:En()},q.createElement("div",{className:"blockchains_section"},q.createElement("div",{className:En()},q.createElement(ra,{variant:"body",size:"xsmall"},Cg.t("Chains:")),q.createElement(Xl,{direction:"horizontal",size:4}),u.map((h,g)=>q.createElement(q.Fragment,{key:h.displayName},u.length<=aa||u.length>aa&&g<aa-1?q.createElement(sa,{container:l,side:"bottom",content:h.displayName,sideOffset:4},q.createElement(yr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===aa-1&&q.createElement(sa,{container:l,side:"bottom",align:"end",sideOffset:4,content:q.createElement("div",{className:En()},u.map((m,C)=>C>=g&&q.createElement(yr,{key:m.displayName,content:"",src:m.image??"",open:!1,className:C>g?"blockchainImage":"",container:c})))},q.createElement(Vl,{className:"blockchainImage"},q.createElement(ra,{size:"xsmall",variant:"body"},"+",u.length-g))))),q.createElement(Xl,{direction:"horizontal",size:32}))),q.createElement(ql,{orientation:a?"up":"down"},q.createElement(qb,{size:12,color:"black"}))))}i(kg,"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:f}=t,h=k().blockchains(),{findToken:g}=k(),m=k().swappers(),{customSlippage:C,slippage:y}=k(),S=C||y,[T,w]=ex(t.expanded),v=Rb(null),N=D(o.value,6,6),B=D(n.value,6,6),b=n.usdValue?D(n.usdValue,4,4):"",E=Kt(o.usdValue,n.usdValue??null),x=D(E,2,2),M=jt(E??0),I=i((Ee,$)=>Ee.map((A,G)=>{let se,K=r?.type===3&&r.swap.swapperId===A.swapperId,X=r?.type===4&&!!r.recommendedSlippages?.[G],bt=a?.type===2&&!!a.recommendedSlippages?.[G],ze=K||X,Me=bt;ze?se="error":Me&&(se="warning");let lt=ze?zo.t("Slippage Error"):zo.t("Slippage Warning");return K&&(lt=zo.t("Bridge Limit Error")),{swapper:{displayName:Fn(A.swapperId,m)??"",image:A.swapperLogo},from:{token:{displayName:A.from.symbol,image:A.from.logo},chain:{displayName:yt(A.from.blockchain,h)??"",image:A.from.blockchainLogo},price:{value:G===0&&!$?D(o.value,6,6):D(A.fromAmount,6,6),usdValue:D((A.from.usdPrice??0)*parseFloat(A.fromAmount),4,4),realValue:G===0?o.value:A.fromAmount,realUsdValue:new Yl(A.from.usdPrice??0).multipliedBy(A.fromAmount).toString()}},to:{token:{displayName:A.to.symbol,image:A.to.logo},chain:{displayName:yt(A.to.blockchain,h)||"",image:A.to.blockchainLogo},price:{value:D(A.toAmount,6,6),usdValue:D((A.to.usdPrice??0)*parseFloat(A.toAmount),4,4),realValue:A.toAmount,realUsdValue:new Yl(A.to.usdPrice??0).multipliedBy(A.toAmount).toString()}},state:se,alerts:ze||Me?z.createElement(jf,{dense:d},z.createElement(Kb,{variant:"alarm",type:ze?"error":"warning",title:lt,id:"widget-quote-footer-step-alarm-alert",footer:z.createElement(Xf,null,K&&z.createElement("div",null,z.createElement(An,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),z.createElement(In,{direction:"vertical",size:2}),z.createElement(An,{size:"xsmall",variant:"body",color:"neutral900"},zo.t({id:"Yours: {amount} {symbol}",values:{amount:D(A.fromAmount,6,6),symbol:A?.from.symbol}}))),(X||bt)&&!K&&z.createElement("div",null,z.createElement(An,{size:"xsmall",variant:"body",color:"neutral900"},zo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[G]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[G]}}})),z.createElement(In,{direction:"vertical",size:2}),z.createElement(An,{size:"xsmall",variant:"body",color:"neutral900"},zo.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Un(A.estimatedTimeInSeconds),fee:D(Hs(A,g),2,2),internalSwaps:A.internalSwaps?I(A.internalSwaps):void 0}}),"getQuoteSteps"),_=I(e?.swaps??[]),Q=_.length,H=f||W(),j=Md(t.quote.tags||[]),L=!!u,ee=ni(e?.swaps),R=Un(ee),Y=Ni(e?.swaps??[],g),le=D(Y,2,2),Xe=Y.gte(new Yl(wd)),ae=ee/bd>=vd,we=_[Q-1],Ue=_[0];return!Ue||!we?null:d?z.createElement(jb,{selected:c,fee:le,time:R,tooltipContainer:No(),steps:_,tags:j,id:"widget-quote-full-expanded-quote-container",quoteCost:z.createElement(jl,{quote:e,fullExpandedMode:!0,time:R,fee:Y,feeWarning:Xe,timeWarning:ae,showModalFee:p,steps:Q}),percentageChange:x,warningLevel:M,outputPrice:{value:B,usdValue:b,realValue:n.value,realUsdValue:n.usdValue}}):z.createElement(eg,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},z.createElement("div",{className:tg()},!l&&j.length?z.createElement(z.Fragment,null,z.createElement(pg,null,j.map((Ee,$)=>{let A=`${Ee.value}_${$}`;return z.createElement(z.Fragment,{key:A},z.createElement(Yb,{label:Ee.label,value:Ee.value}),z.createElement(In,{size:4,direction:"horizontal"}))})),z.createElement(Ri,null),!L&&z.createElement(In,{size:4})):null,z.createElement("div",{id:"portal-root",className:og()},z.createElement(jl,{quote:e,time:R,fee:Y,feeWarning:Xe,timeWarning:ae,showModalFee:p,steps:Q}),L&&z.createElement(Rf,{onClick:Ee=>{Ee.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},z.createElement(An,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},zo.t("See All Routes")))),s==="basic"&&z.createElement("div",{className:ng()},z.createElement(lg,null,z.createElement(Xb,{size:12,color:"gray"})),z.createElement(cg,null,z.createElement(Gl,{size:"small",variant:"body"},`${N} ${Ue.from.token.displayName} = `),z.createElement(Tg,{content:n.value,container:H,open:n.value?void 0:!1},z.createElement(Gl,{size:"small",variant:"body"},"\xA0",`${B} ${we.to.token.displayName}`))),z.createElement(Tg,{content:n.usdValue,container:H},z.createElement(In,{size:2,direction:"horizontal"}),z.createElement(An,{color:"$neutral600",size:"xsmall",variant:"body"},`($${b})`))),s==="list-item"&&z.createElement(Jb,{id:"widget-quote-token-amount-container",tooltipContainer:H,type:"output",direction:"vertical",price:{value:B,usdValue:b,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:we.to.token.displayName,image:we.to.token.image},chain:{image:we.to.chain.image},percentageChange:x,warningLevel:M}),s==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(hr,{from:Ue.from,to:we.to,percentageChange:x,warningLevel:M}),z.createElement(In,{size:4}))),z.createElement(Zf,{selected:c,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:w},z.createElement(kg,{type:s,quoteRef:v,selected:c,setExpanded:w,container:H,expanded:T,steps:_}),z.createElement(ag,{open:T},z.createElement(sg,null),z.createElement("div",{className:Jf()},_.map((Ee,$)=>{let A=`item-${$}`;return z.createElement(Zb,{type:"quote-details",className:"widget-quote-step-details-container",key:A,tooltipContainer:H,step:Ee,hasSeparator:$!==_.length-1,state:Ee.state})})))))}i(Zl,"Quote");import{Divider as rx,Skeleton as ix}from"@rango-dev/ui";import Rt from"react";import{darkTheme as tx,styled as la}from"@rango-dev/ui";var wg=la("div",{$$color:"$colors$neutral100",[`.${tx} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),vg=la("div",{paddingTop:"$2"}),bg=la("div",{paddingLeft:"$8"}),xg=la("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as _g,Divider as At,Skeleton as mt}from"@rango-dev/ui";import V from"react";import{css as ox,styled as Jt}from"@rango-dev/ui";var Jl=Jt("div",{display:"flex"}),Eg=Jt("div",{padding:"$10 $0 $20"}),Ig=Jt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Ag=Jt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Ng=Jt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Bg=Jt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Wg=Jt("div",{width:"65%",display:"flex",justifyContent:"start"}),Mg=Jt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Lg=Jt("div",{padding:"$15 $0 $15 $0"}),Pg=ox({display:"flex",justifyContent:"space-between",alignItems:"center"});function Sr(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(Ng,null,V.createElement(Wg,null,V.createElement(_g,{loading:!0,size:"medium"}),V.createElement(At,{size:8,direction:"horizontal"}),V.createElement(Mg,null,V.createElement(mt,{height:10,width:60,variant:"rounded"}),V.createElement(At,{size:4}),V.createElement(mt,{height:15,variant:"rounded"}))),V.createElement(mt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(Jl,null,V.createElement(mt,{width:65,height:20,variant:"rounded"}),V.createElement(At,{size:4,direction:"horizontal"}),V.createElement(mt,{width:65,height:20,variant:"rounded"}),V.createElement(At,{size:4,direction:"horizontal"}),V.createElement(mt,{width:65,height:20,variant:"rounded"})),V.createElement(Ri,null),!r&&V.createElement(At,{size:4})),V.createElement("div",{className:Pg()},V.createElement(Jl,null,V.createElement(mt,{width:60,height:10,variant:"rounded"}),V.createElement(At,{size:4,direction:"horizontal"}),V.createElement(mt,{width:60,height:10,variant:"rounded"}),V.createElement(At,{size:4,direction:"horizontal"}),V.createElement(mt,{width:60,height:10,variant:"rounded"})),r&&V.createElement(mt,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(Eg,null,V.createElement(mt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(Ig,null,V.createElement(Ag,null,V.createElement(_g,{loading:!0,size:"medium"}),V.createElement(At,{direction:"horizontal",size:4}),V.createElement(mt,{height:15,width:150,variant:"rounded"})),V.createElement(At,{size:10}),V.createElement(mt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(At,{size:4}),V.createElement(Lg,null,n,V.createElement(Bg,null),n),V.createElement(At,{size:12})))}i(Sr,"QuoteSummarySkeleton");import{ChainToken as Ug,Divider as ec,NextIcon as nx,Skeleton as ca}from"@rango-dev/ui";import We from"react";import{styled as Cr}from"@rango-dev/ui";var Dg=Cr("div",{display:"flex",alignItems:"start"}),$g=Cr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Rl=Cr("div",{display:"flex",alignItems:"center",flexGrow:1}),Fg=Cr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Og=Cr("div",{display:"flex",alignItems:"center"});function Ft(t){let{separator:e=!0}=t;return We.createElement(We.Fragment,null,We.createElement(Og,null,We.createElement(ca,{height:22,width:22,variant:"circular"}),We.createElement(ec,{direction:"horizontal",size:8}),We.createElement(ca,{height:15,width:148,variant:"rounded"})),We.createElement(Dg,null,We.createElement(xg,{hideSeparator:!e}),We.createElement($g,{extraSpace:e},We.createElement(Rl,null,We.createElement(Ug,{size:"small",loading:!0}),We.createElement(ec,{direction:"horizontal",size:8}),We.createElement(ca,{height:12,variant:"rounded"})),We.createElement(Fg,null,We.createElement(nx,{color:"gray",size:16})),We.createElement(Rl,null,We.createElement(Ug,{size:"small",loading:!0}),We.createElement(ec,{direction:"horizontal",size:8}),We.createElement(ca,{height:12,variant:"rounded"})))))}i(Ft,"StepSkeleton");function kr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Rt.createElement(wg,{expanded:o,rounded:e!=="basic"},Rt.createElement(Sr,{type:e,tagHidden:n}),Rt.createElement(vg,null,Rt.createElement(ix,{height:15,variant:"rounded"})),o&&Rt.createElement(bg,null,Rt.createElement(rx,{size:24}),Rt.createElement(Ft,null),Rt.createElement(Ft,null),Rt.createElement(Ft,{separator:!1})))}i(kr,"QuoteSkeleton");function Qo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:d,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:m,inputUsdValue:C}=U()(),y=e?.outputAmount?new ax(e?.outputAmount):null,S=e?kt(e):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?pa.createElement(Hl,null,pa.createElement(kr,{tagHidden:c,type:o,expanded:s})):w?pa.createElement(Hl,{onClick:()=>l?.(e),id:d},pa.createElement(Zl,{quote:e,error:r,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:h,input:{value:m,usdValue:C?.toString()??""},output:{value:y?.toString()??"",usdValue:S?.toString()??""}})):null}i(Qo,"QuoteInfo");import{warn as px}from"@rango-dev/logging-core";import{calculatePendingSwap as ux}from"@rango-dev/queue-manager-rango-preset";import{useEffect as dx}from"react";import{useRef as sx,useState as lx}from"react";var cx=2e3;function ua({request:t}){let[e,o]=lx(!1),n=sx(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,cx)),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(ua,"useFetch");function zg(){let{fetch:t,loading:e,cancelFetch:o}=ua({request:async(n,r)=>await ut().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(zg,"useFetchConfirmQuote");function da(t){if(!t.swaps)throw new Error(ne().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=tc(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(da,"throwErrorIfResponseIsNotValid");function tc(t){if($d(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=Fd(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=Qd(t);if(o){let n=Bi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(tc,"getQuoteError");function Qg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=fn({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(Qg,"generateWarnings");function ma(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(ma,"handleQuoteErrors");function oc(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=U()(),{slippage:l,customSlippage:p}=k(),u=k().getDisabledLiquiditySources(),d=k().blockchains(),f=k().tokens(),{findToken:h}=k(),{swapMode:g}=nt(),m=p||l,{fetch:C,cancelFetch:y,loading:S}=zg();return dx(()=>y,[]),{loading:S,fetch:i(async w=>{let v=w.selectedWallets,N=w?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let B=v.reduce((E,x)=>(E[x.chain]=x.address,E),{}),b={requestId:a?.requestId||"",selectedWallets:B,destination:N||void 0};try{return await C(b,!0).then(E=>{let{result:x}=E;if(!x)throw new Error(E.error??"Error fetching updated quote");da({diagnosisMessages:x.diagnosisMessages,requestId:x.requestId,swaps:x.result?.swaps});let M={outputAmount:x.result?.outputAmount,requestId:x.requestId,resultType:x.result?.resultType,swaps:x.result?.swaps||[],validationStatus:x.validationStatus,requestAmount:x.requestAmount};r(M);let I={slippage:m.toString(),disabledSwappersGroups:u},_=Qg({previousQuote:a??void 0,currentQuote:M,meta:{blockchains:d},selectedWallets:v,userSlippage:m,inputUsdValue:n,findToken:h});c();let Q=!!_.balance,H=ux({inputAmount:o.toString(),bestRoute:x,wallets:qd(v),settings:I,validateBalanceOrFee:!Q,meta:{blockchains:d,tokens:f},swapMode:g});return{quote:M,swap:H,error:null,warnings:_}})}catch(E){let x=ma(E);return x.type!==2&&px(new Error("confirm swap error"),{tags:{...x,type:Ye[x.type],initialQuote:a,requestBody:b}}),{swap:null,error:x,warnings:null}}},"fetch"),cancelFetch:y}}i(oc,"useConfirmSwap");var wx=hx("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Hg}`]:{width:"$48",height:"$48"}}),vx=ic({flexGrow:1,paddingRight:"$10"}),bx=ic({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),xx=ic({display:"flex",justifyContent:"space-between",alignItems:"center"});function qg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=U()(),s=Tx(),[c,l]=Tr(""),p=!n,[u,d]=Tr(!1),[f,h]=Tr(!1),{isActiveTab:g}=oe(),m=k().getDisabledLiquiditySources(),C=kx(m),{manager:y}=mx(),{fetch:S,loading:T,cancelFetch:w}=oc(),[v,N]=Tr({swap:null,error:null,warnings:null}),[B,b]=Tr(!1),E=i(async({selectedWallets:L,customDestination:ee})=>{let R=await S?.({selectedWallets:L,customDestination:ee});return N(R),R},"onConfirmSwap"),x=i(async()=>{if(v.swap&&n)try{await y?.create("swap",{swapDetails:v.swap},{id:v.swap.requestId});let L=`../${O.swaps}/${v.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),M=i(async()=>{h(!0),await x(),h(!1)},"onConfirm"),I=i(async()=>{v.warnings?.quote&&Nd(v.warnings.quote)&&!a?b(!0):await M()},"onStartConfirmSwap"),_=i(async()=>{N({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(L=>{N(L)}).catch(L=>console.error(L))},"onRefresh");fa(()=>{!!C.current.length&&!m.length&&_(),C.current=m},[m.length]),fa(()=>{p&&w()},[p]),fa(()=>{p&&d(p)},[p]),fa(()=>{p||S({selectedWallets:o,customDestination:r}).then(L=>N(L)).catch(L=>console.error(L))},[]),Cx(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let Q=v.warnings?.quote??null,H=v.error,j=[];if(c&&j.push(Fe.createElement(fx,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),Q||H){let L=`../${O.settings}`;j.push(Fe.createElement(fr,{warning:Q,error:H,couldChangeSettings:!1,refetchQuote:_,skipAlerts:H?.type===4||Q?.type===2,showWarningModal:B,confirmationDisabled:!g,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await x()},onChangeSettings:()=>s(L)}))}return Fe.createElement(ie,{header:{title:nc.t("Confirm Swap"),onWallet:()=>{let L=`../${O.wallets}`;s(L)}},footer:Fe.createElement(wx,null,Fe.createElement("div",{className:vx()},Fe.createElement(gx,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||f,disabled:!!v.error||!g,onClick:I},nc.t("Start Swap"))),Fe.createElement(Hg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||f,disabled:!g,onClick:d.bind(null,!0)},Fe.createElement(Sx,{size:24})))},u&&Fe.createElement(Af,{open:u,onClose:()=>d(!1),onCancel:w,loading:T,onCheckBalance:E}),Fe.createElement(ce,null,Fe.createElement("div",{className:xx()},Fe.createElement(yx,{variant:"title",size:"small"},nc.t("You get")),Fe.createElement("div",{className:bx()},Fe.createElement($i,{onClick:!T&&!u&&!B?_:void 0}))),Fe.createElement(rc,{size:"12"}),bm(j.map((L,ee)=>({element:L,key:`alert-${ee}`})),Fe.createElement(rc,{size:10})),j.length>0?Fe.createElement(rc,{size:10}):null,Fe.createElement(Qo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:v.error,loading:T,warning:v.warnings?.quote??null})))}i(qg,"ConfirmSwapPage");import{i18n as to}from"@lingui/core";import{Button as yc,CustomTokensZeroStateDarkIcon as Gx,CustomTokensZeroStateIcon as Vx,DeleteIcon as Kx,Divider as Er,IconButton as jx,MessageBox as Xx,NotFound as Yx,styled as Cc}from"@rango-dev/ui";import fe,{useState as Sc}from"react";import{useNavigate as Zx}from"react-router-dom";import{CloseIcon as Ex,IconButton as Ix,SearchIcon as Ax,TextField as Nx}from"@rango-dev/ui";import Nn from"react";import{styled as Gg}from"@rango-dev/ui";var Vg=Gg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),Kg=Gg("div",{width:"100%","& ._text-field":{paddingLeft:"$10","& input":{paddingLeft:"$2",paddingTop:"$12",paddingBottom:"$12"}}});function Nt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...d}=t,f=s.length?Nn.createElement(Ix,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},Nn.createElement(Ex,{color:"gray",size:10})):null;return p&&(f=p),Nn.createElement(Kg,null,Nn.createElement(Nx,{prefix:Nn.createElement(Vg,null,Nn.createElement(Ax,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d}))}i(Nt,"SearchInput");import{i18n as hc}from"@lingui/core";import{Button as Lx,CustomTokenWarning as Px,darkTheme as ih,Divider as eo,ExternalLinkIcon as _x,Image as Dx,ListItem as $x,NotFound as Fx,PinIcon as Ox,Skeleton as Ho,Typography as br,VirtualizedList as Ux}from"@rango-dev/ui";import P,{useState as zx}from"react";import{useTranslation as Qx}from"react-i18next";import{Divider as nh,ListItem as Mx,Skeleton as vr}from"@rango-dev/ui";import Bt from"react";import{css as Bn,darkTheme as ac,ImageContainer as Bx,ListItemButton as Wx,styled as at,Typography as jg}from"@rango-dev/ui";var sc=Bn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),lc=Bn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),cc=Bn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),pc=Bn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ac} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),uc=Bn({}),dc=Bn(),Xg=at("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),mc=at("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ga=at("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${lc}`]:{[`& .${pc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${uc}`]:{bottom:"-15px"},[`& .${sc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${cc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Yg=at(Wx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),fc=at("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),gc=at(jg,{}),Zg=at("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${dc}`]:{$$color:"$colors$neutral600",[`.${ac} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),wr=at("div",{display:"flex",alignItems:"end",flexDirection:"column"}),dV=at("div",{display:"flex",alignItems:"center"}),Jg=at("div",{position:"relative",[`& ${Bx}`]:{borderRadius:"$xm",overflow:"hidden"}}),Rg=at("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),eh=at(jg,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),th=at("a",{"& svg:hover":{color:"$colors$info"}}),oh=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":{[`.${ac} &`]:{color:"$foreground"}}}});function rh(t){return Bt.createElement(ga,null,Array.from(Array(t.size),e=>Bt.createElement(Mx,{key:e,hasDivider:!0,start:Bt.createElement(vr,{variant:"circular",width:35,height:35}),end:Bt.createElement(wr,null,Bt.createElement(vr,{variant:"text",size:"large",width:70}),Bt.createElement(nh,{size:4}),Bt.createElement(vr,{variant:"text",size:"medium",width:50})),title:Bt.createElement("div",null,Bt.createElement(vr,{variant:"text",size:"large",width:90}),Bt.createElement(nh,{size:4}),Bt.createElement(vr,{variant:"text",size:"medium",width:90}))})))}i(rh,"LoadingTokenList");var Hx=20,qx=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return P.createElement("div",{className:lc()},o?P.createElement("div",{className:sc()},o):P.createElement(mc,{className:cc()},P.createElement(br,{variant:"title",size:"xmedium"},r.symbol),P.createElement(eo,{direction:"horizontal",size:4}),P.createElement(fc,{css:a},P.createElement(gc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&P.createElement("div",{className:`${pc()} ${!o&&uc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",P.createElement(eo,{size:4,direction:"horizontal"}),P.createElement(th,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},P.createElement(_x,{size:12}))))},"renderDesc");function xr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=k().fetchStatus,u=k().blockchains(),{getBalanceFor:d,fetchingWallets:f}=k(),{isTokenPinned:h}=k(),{setFromToken:g,setToToken:m}=U()(),{t:C}=Qx(),y=Ke(),[S,T]=zx(null),w=i(()=>{c==="source"?g({token:S,meta:{blockchains:u}}):m({token:S,meta:{blockchains:u}})},"updateToken"),v=i(()=>{w(),y()},"handleImportToken"),N=i(E=>{if(E.customToken){let{customToken:M,...I}=E;return P.createElement(Lx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(Q=>{Q.stopPropagation(),T({...I,warning:!0})},"handleClick")},P.createElement(br,{variant:"body",size:"xsmall",color:"background"},C("import")))}let x=si(d(E));return s?s(E):f?P.createElement(wr,null,P.createElement(Ho,{variant:"text",size:"large",width:70}),P.createElement(eo,{size:4}),P.createElement(Ho,{variant:"text",size:"medium",width:50})):x&&P.createElement(Zg,null,P.createElement(eh,{variant:"title",size:"small"},x.amount),P.createElement("div",null),x.usdValue&&P.createElement(br,{variant:"body",className:dc(),size:"xsmall"},`$${x.usdValue}`))},"endRenderer"),B=i(()=>P.createElement(Ux,{itemContent:E=>{let x=e[E];if(x==="skeleton")return P.createElement($x,{hasDivider:!0,start:P.createElement(Ho,{variant:"circular",width:35,height:35}),end:P.createElement(wr,null,P.createElement(Ho,{variant:"text",size:"large",width:70}),P.createElement(eo,{size:4}),P.createElement(Ho,{variant:"text",size:"medium",width:50})),title:P.createElement("div",null,P.createElement(Ho,{variant:"text",size:"large",width:90}),P.createElement(eo,{size:4}),P.createElement(Ho,{variant:"text",size:"medium",width:90}))});let M=u.find(L=>L.name===x?.blockchain);if(!M||!x)return null;let I=x.address,_=al(M.color,"main"),Q={$$color:_.main150,[`.${ih} &`]:{$$color:_.main750},backgroundColor:"$$color"},H={$$color:_.main750,[`.${ih} &`]:{$$color:_.main150},color:"$$color"},j=i(()=>{typeof x!="string"&&!x.customToken&&n?.(x)},"handleClick");return P.createElement(oh,null,P.createElement(Yg,{"tab-index":E,key:`${x.symbol}${I}`,id:`${x.symbol}${I}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:x?.customToken,onClick:j,start:P.createElement(Jg,null,P.createElement(Dx,{src:x.image===""?Zr:x.image,size:30}),t.type!=="custom-token"&&x&&h(x,t.type)&&P.createElement(Rg,null,P.createElement(Ox,{size:12,color:"gray"}))),title:M.type==="COSMOS"||x.name||!x.name&&!I?P.createElement(mc,null,P.createElement(br,{variant:"title",size:"xmedium"},x.symbol),P.createElement(eo,{direction:"horizontal",size:4}),P.createElement(fc,{css:Q},P.createElement(gc,{variant:"body",size:"xsmall",css:H},x.blockchain)),l&&x.warning&&P.createElement(P.Fragment,null,P.createElement(eo,{direction:"horizontal",size:4}),P.createElement(Px,{container:W()}))):void 0,description:typeof x!="string"&&M.info&&I&&M.type!=="COSMOS"?qx({address:I,token:x,customCssForTag:Q,customCssForTagTitle:H,name:x.name,url:M.info.addressUrl.split("{wallet}").join(I)}):x.name||void 0,end:N(x)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),b=S?Io(S?.blockchain,u):null;return P.createElement(P.Fragment,null,a&&P.createElement(P.Fragment,null,P.createElement(br,{variant:"label",size:"large"},hc.t("Select Token")),P.createElement(eo,{size:4})),P.createElement(Xg,null,P.createElement(eo,{size:4}),p==="loading"&&P.createElement(rh,{size:Hx}),p==="success"&&(e.length?P.createElement(P.Fragment,null,P.createElement(ir,{token:S,address:S?.address??"",blockchain:b??void 0,onImport:v,onExitErrorModal:()=>T(null),onExitImportModal:()=>T(null)}),P.createElement(ga,{as:"ul"},B())):!!o&&P.createElement(Fx,{title:hc.t("No results found"),description:hc.t("Try using different keywords")}))))}i(xr,"TokenList");var Jx=Cc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Rx=Cc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),eE=Cc(jx,{"&:hover":{"& svg":{color:"$secondary550"}}});function ah(){let[t,e]=Sc(""),{deleteCustomToken:o}=k(),n=k().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=U()(),{mode:l}=po({}),p=Zx(),[u,d]=Sc(!1),[f,h]=Sc(),g=i(S=>{let T=S.target.value;e(T)},"handleSearch"),m=l==="dark",C=n.filter(S=>ct(S.symbol,t)||ct(S.address||"",t)||ct(S.name||"",t)),y=i(()=>{if(f){let S=a?St(a):null,T=r?St(r):null,w=St(f);S===w?c({token:null}):T===w&&s({token:null}),o(f)}d(!1)},"handleDeleteCustomToken");return fe.createElement(ie,{header:{title:to.t("Custom Tokens")}},fe.createElement(ce,null,fe.createElement(Jx,null,n.length?fe.createElement(fe.Fragment,null,fe.createElement(Nt,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:to.t("Search Token"),onChange:g}),fe.createElement(Er,{size:16}),fe.createElement(xr,{list:C,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:S=>fe.createElement(eE,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(S)}},fe.createElement(Kx,{size:12,color:"gray"}))})):fe.createElement(Rx,null,fe.createElement(Yx,{icon:m?fe.createElement(Gx,{size:200}):fe.createElement(Vx,{size:200}),title:to.t("No custom tokens"),description:to.t("press the button to add your custom token")})),fe.createElement(Er,{size:20}),fe.createElement(yc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(O.addCustomTokens)},to.t("Add Custom Token"))),fe.createElement(J,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:W()},fe.createElement(Xx,{title:to.t("Delete Custom Token"),type:"error",description:to.t("Are you sure you want to Delete this Token?")},fe.createElement(Er,{size:40}),fe.createElement(Er,{size:10}),fe.createElement(yc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},to.t("Yes, Delete it")),fe.createElement(Er,{size:12}),fe.createElement(yc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},to.t("No, Continue"))))))}i(ah,"CustomTokensPage");import{i18n as Oe}from"@lingui/core";import{useManager as kE}from"@rango-dev/queue-manager-react";import{Button as Ec,darkTheme as TE,Divider as So,MessageBox as wE,NotFound as vE,styled as Ic,Tabs as bE,Typography as Sa}from"@rango-dev/ui";import{TransactionStatus as Nr}from"rango-types";import te,{useMemo as xh,useState as Br}from"react";import{useNavigate as xE}from"react-router-dom";import{FilterIcon as sE,Popover as lE}from"@rango-dev/ui";import qo from"react";import{css as tE,darkTheme as ha,IconButton as oE,styled as Ir}from"@rango-dev/ui";var kc=Ir("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ha} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),sh=Ir(oE,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ha} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ha} &`]:{backgroundColor:"$neutral"},[`& ${kc}::before`]:{backgroundColor:"$secondary100",[`.${ha} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),lh=Ir("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),ch=Ir("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),ph=tE({display:"flex",justifyContent:"space-between",alignItems:"center"}),uh=Ir("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as dh}from"@lingui/core";import{Button as nE,Divider as mh,ListItemButton as rE,Radio as iE,RadioRoot as aE,Typography as fh}from"@rango-dev/ui";import ft from"react";function gh(t){let{filterBy:e,onClickItem:o}=t;return ft.createElement(ch,null,ft.createElement("div",{className:ph()},ft.createElement(fh,{size:"small",variant:"body"},dh.t("Status")),ft.createElement(nE,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},dh.t("Reset"))),ft.createElement(mh,{size:10}),ft.createElement(aE,{value:e},ft.createElement(uh,null,t.list.map((n,r)=>ft.createElement(rE,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:ft.createElement(ft.Fragment,null,ft.createElement(mh,{direction:"horizontal",size:4}),ft.createElement(fh,{size:"medium",variant:"body"},n.title)),start:ft.createElement(iE,{value:n.id}),onClick:o})))))}i(gh,"FilterSelectorContent");function Tc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return qo.createElement("div",null,qo.createElement(lE,{open:a,align:"end",onOpenChange:o,container:W(),content:qo.createElement(gh,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},qo.createElement(sh,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},qo.createElement(kc,{isSelect:!!n},qo.createElement(sE,{size:16,color:"black"}),!!n&&qo.createElement(lh,null)))))}i(Tc,"FilterSelector");import{i18n as uE}from"@lingui/core";import{getCurrentStep as dE}from"@rango-dev/queue-manager-rango-preset";import{Divider as kh,GroupedVirtualizedList as mE,Skeleton as fE,SwapListItem as Th,Typography as gE}from"@rango-dev/ui";import Re,{useCallback as wh,useEffect as hE,useRef as yE,useState as SE}from"react";function hh(t,e){let o=[],n=0;do{let r=t[n];r&&(o.push(Math.min(r,e)),e-=r),n++}while(e>0&&n<=t.length);return o}i(hh,"calculateGroupsSoFar");import{css as cE,darkTheme as pE,styled as Ar}from"@rango-dev/ui";var wc=cE(),yh=Ar("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),vc=Ar("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${wc}`]:{$$color:"$colors$neutral600",[`.${pE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),bc=Ar("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Sh=Ar("div",{gap:"$10",display:"flex",flexDirection:"column"}),Ch=Ar("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var CE=10;function xc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=SE([]),c=yE(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=wh(hh,[]),f=wh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,CE),s(d(p,c.current)))},[e.length]);if(hE(()=>{r||f()},[r,f]),r){let h=[1,2];return Re.createElement(Re.Fragment,null,[h,h].map((m,C)=>Re.createElement(vc,{key:C},Re.createElement(bc,null,Re.createElement(fE,{variant:"text",width:60,size:"small"}),Re.createElement(kh,{size:16})),Re.createElement(kh,{size:4}),Re.createElement(Sh,null,m.map((S,T)=>Re.createElement(Th,{isLoading:!0,key:T}))))))}return Re.createElement(mE,{endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>Re.createElement(vc,null,Re.createElement(bc,null,Re.createElement(gE,{variant:"label",size:"medium",className:wc()},u[h]))),itemContent:(h,g)=>{let m=l[h];if(!m)return null;let C=dE(m),y=m.steps[0],S=m.steps[m.steps.length-1];return!y||!S?null:Re.createElement(yh,{key:m.requestId},Re.createElement(Th,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:C,tooltipContainer:W(),onlyShowTime:u[g]===uE.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:D(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:D(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(xc,"HistoryGroupedList");import{i18n as ya}from"@lingui/core";import vh from"dayjs";var bh=i(t=>{let e=new Map([["today",{title:ya.t("Today"),swaps:[]}],["week",{title:ya.t("This week"),swaps:[]}],["month",{title:ya.t("This month"),swaps:[]}],["year",{title:ya.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=vh();t.forEach(l=>{let p=Number(l.creationTime),u=vh(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 EE=Ic("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),IE=Ic("div",{display:"flex",justifyContent:"center",alignItems:"center"}),AE=Ic("div",{"._typography":{color:"$neutral700",[`.${TE}&`]:{color:"$neutral900"}}}),NE=i((t,e)=>t?.length?t.filter(o=>Pt(o.fromBlockchain,e)||Pt(o.toBlockchain,e)||Pt(o.toSymbol,e)||Pt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Eh(){let t=xE(),{manager:e,state:o}=kE(),n=wt(e).map(({swap:b})=>b),[r,a]=Br(""),[s,c]=Br(!1),l=!o.loadedFromPersistor,[p,u]=Br(""),[d,f]=Br(!1),[h,g]=Br("all"),m=i(b=>{let E=b.target.value;a(E)},"handleSearch"),{isMultiMode:C}=nt(),y=[{id:Nr.SUCCESS,title:Oe.t("Complete")},{id:Nr.RUNNING,title:Oe.t("Running")},{id:Nr.FAILED,title:Oe.t("Failed")}],S=[{id:"all",title:Oe.t("All")},{id:"swap",title:Oe.t("Swap")},{id:"refuel",title:Oe.t("Refuel")}],T=xh(()=>!r&&!p&&h==="all"?n:n.filter(b=>{let{inputAmount:E,status:x,steps:M,requestId:I,mode:_}=b;return(!r||Pt(E,r)||Pt(x,r)||NE(M,r)||Pt(I,r))&&(!p||p===x)&&(h==="all"?!0:h==="swap"?!_||_==="swap":h==="refuel"?_==="refuel":!1)}),[n,r,p,h]),w=!T?.length&&!l,v=i(()=>f(!1),"onCloseModal"),N=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(b){console.log(b)}},"onClear"),B=xh(()=>!n.some(b=>b.status===Nr.SUCCESS||b.status===Nr.FAILED),[n]);return te.createElement(ie,{header:{title:Oe.t("History"),suffix:te.createElement(uo,null,te.createElement(Ec,{id:"widget-history-clear-btn",disabled:B,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},te.createElement(Sa,{size:"medium",variant:"label",color:"error"},Oe.t("Clear"))))}},te.createElement(ce,null,te.createElement(IE,null,te.createElement(Nt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Oe.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:m,style:{height:36},value:r}),te.createElement(So,{size:10,direction:"horizontal"}),te.createElement(Tc,{filterBy:p,open:s,onOpenChange:b=>c(b),onClickItem:b=>u(b),list:y})),te.createElement(So,{size:"16"}),C&&!l&&te.createElement(te.Fragment,null,te.createElement(bE,{items:S,onChange:b=>g(b.id),value:h,type:"secondary"}),te.createElement(So,{size:"12"})),te.createElement(EE,null,w&&te.createElement(Ch,null,te.createElement(So,{size:32}),te.createElement(vE,{title:r?Oe.t("No results found"):Oe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Oe.t("Try using different keywords"):Oe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!w&&te.createElement(xc,{list:T,onSwapClick:t,groupBy:bh,isLoading:l}))),te.createElement(J,{open:d,onClose:v,id:"widget-history-clear-modal",container:W()},te.createElement(So,{size:20}),te.createElement(wE,{type:"warning",title:Oe.t("Clear Transaction History"),description:te.createElement(AE,null,te.createElement(Sa,{variant:"body",size:"medium"},Oe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),te.createElement(So,{size:"24"}),te.createElement(Sa,{variant:"body",size:"small"},Oe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),te.createElement(So,{size:30}),te.createElement(Ec,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:N},Oe.t("Yes, Clear the history")),te.createElement(So,{size:10}),te.createElement(Ec,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:v},te.createElement(Sa,{variant:"title",size:"medium",color:"primary"},Oe.t("No, Cancel")))))}i(Eh,"HistoryPage");import{i18n as oy}from"@lingui/core";import{Button as uI,Divider as zc,styled as dI,WarningIcon as mI}from"@rango-dev/ui";import fI from"bignumber.js";import he,{useEffect as ny,useState as ry}from"react";import{useNavigate as gI}from"react-router-dom";import{i18n as Ah}from"@lingui/core";import{Alert as WE,Divider as Ac,NoRouteIcon as ME,Typography as LE}from"@rango-dev/ui";import Go from"react";import{styled as BE}from"@rango-dev/ui";var Ih=BE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Nc(){let{fromToken:t,toToken:e}=U()();return!!t&&!!e&&Ht(t,e)?Go.createElement(Ih,null,Go.createElement(Ac,{size:10}),Go.createElement(ME,{size:24,color:"gray"}),Go.createElement(Ac,{size:4}),Go.createElement(LE,{variant:"title",size:"small"},Ah.t("No Routes Found")),Go.createElement(Ac,{size:4}),Go.createElement(WE,{title:Ah.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Nc,"SameTokensWarning");import{Alert as PE,Button as _E}from"@rango-dev/ui";import Bh from"react";import{i18n as Ca}from"@lingui/core";function Nh(t){let e=null;return t===ui?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:Ca.t("Reset"),title:Ca.t("Slippage cannot be set lower than 0.01%.")},e):t>on?(e={alertType:"warning",action:"change-settings",actionButtonTitle:Ca.t("Change"),title:Ca.t("Caution, your slippage is high!")},e):null}i(Nh,"makeAlerts");function Wh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=k(),{onChangeSettings:a}=t,c=Nh(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(pi),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Bh.createElement(PE,{title:c.title,type:c.alertType,variant:"alarm",action:Bh.createElement(_E,{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 UE}from"@lingui/core";import{IconButton as zE,ReverseIcon as QE,Skeleton as HE,Tooltip as qE,Typography as Wr}from"@rango-dev/ui";import gt from"react";import ka from"bignumber.js";function Lh(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(Lh,"getSlippageColor");function Ph(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new ka(e),r=new ka(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(Ph,"getUsdExchangeRate");function _h(t,e){let o=new ka(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,ka.ROUND_DOWN).toFormat(2)}`}i(_h,"formatTokenValueInUsd");import{darkTheme as FE,styled as Wc,Typography as OE}from"@rango-dev/ui";var Dh=Wc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),$h=Wc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${FE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Mc=Wc(OE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Lc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=k(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:f}=po({}),h=an(d),g=f==="dark",m=n==="default",C={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},S=p?.swaps[0]?.from||c,T=p?.swaps[p?.swaps.length-1]?.to||l,w=m?S:T,v=m?T:S,N=Number(m?p?.outputAmount:p?.requestAmount),B=Number(m?p?.requestAmount:p?.outputAmount),b=N||w.usdPrice,E=B||v.usdPrice,{rawValue:x,displayValue:M}=Ph({toTokenUsdPrice:E,fromTokenUsdPrice:b});return gt.createElement(Dh,null,gt.createElement(Wr,{variant:C||y?"label":"body",size:C||y?"medium":"small",color:Lh({error:C,warning:y,isDarkTheme:g})},UE.t("Slippage:")," ",d,"%"),u?gt.createElement(HE,{height:16,width:104,variant:"rounded"}):b&&E&&gt.createElement($h,null,gt.createElement(Wr,{className:"rate-text",variant:"body",size:"small"},"1"),gt.createElement(Mc,{className:"rate-text",variant:"body",size:"small"},v.symbol),gt.createElement(zE,{id:"widget-home-page-change-rate-button",onClick:r},gt.createElement(QE,{size:14,color:"secondary"})),gt.createElement(qE,{container:W(),side:"top",sideOffset:4,content:gt.createElement(Wr,{className:"rate-text",variant:"body",size:"small"},x)},gt.createElement(Wr,{className:"rate-text",variant:"body",size:"small"},M)),gt.createElement(Mc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&&gt.createElement(Wr,{color:"neutral600",variant:"body",size:"small"},"~",_h(Number(x),w.usdPrice))))}i(Lc,"SwapMetrics");import{i18n as YE}from"@lingui/core";import{Header as ZE}from"@rango-dev/ui";import Co,{useEffect as JE,useState as RE}from"react";import{i18n as VE}from"@lingui/core";import{Divider as _c,FullExpandedQuote as KE,Typography as jE}from"@rango-dev/ui";import Te from"react";import{styled as Pc}from"@rango-dev/ui";var Fh=Pc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Oh=Pc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Uh=Pc("div",{width:"146px"});import{i18n as Mr}from"@lingui/core";import{Select as GE}from"@rango-dev/ui";import zh from"react";function Ta(t){let{updateQuotePartialState:e,sortStrategy:o}=U()(),n=[{value:"SMART",label:Mr.t("Smart Routing")},{value:"FEE",label:Mr.t("Lowest Fee")},{value:"SPEED",label:Mr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Mr.t("Maximum Return")},{value:"PRICE",label:Mr.t("Maximum Output")}];return zh.createElement(Uh,null,zh.createElement(GE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Ta,"SelectStrategy");var Qh=3;function Lr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:d,toToken:f,sortStrategy:h,error:g}=U()(),{slippage:m,customSlippage:C}=k(),{findToken:y}=k(),S=c||W(),T=!!p&&p.results.length,w=C??m,v=i(b=>{if(!d||!f||!p)return null;let E={requestAmount:p.requestAmount,validationStatus:null,...b};return fn({currentQuote:E,userSlippage:w,findToken:y})},"getQuoteWarning"),N=g?.type===0||g?.type===1,B=p?.results?Ai(h,p?.results):[];return Te.createElement(Te.Fragment,null,a&&Te.createElement(Te.Fragment,null,Te.createElement(Oh,null,Te.createElement(jE,{size:"xmedium",variant:"title"},VE.t("Sort by")),Te.createElement(Ta,{container:S})),Te.createElement(_c,{size:"10"})),e&&Array.from({length:Qh},(b,E)=>Te.createElement(Te.Fragment,{key:E},s?Te.createElement(KE,{loading:!0}):Te.createElement(kr,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Qh-1&&Te.createElement(_c,{size:16}))),!e&&Te.createElement(Te.Fragment,null,T?B.map((b,E)=>{let x=v(b),M=tc(b.swaps),I=B.length-1===E;return Te.createElement(Te.Fragment,{key:b.requestId},Te.createElement(Qo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:S,selected:l?.requestId===b.requestId,tagHidden:!1,quote:{...b,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:M?.options||null,warning:x,fullExpandedMode:s,onClick:_=>{M||u("warning",x),u("error",M?.options||null),o(_)},type:"list-item"}),!I&&Te.createElement(_c,{size:16}))}):N&&Te.createElement(Fh,null,Te.createElement(ur,{size:s?"large":"small",error:g,fetch:n}))))}i(Lr,"Quotes");import{darkTheme as XE,styled as Hh}from"@rango-dev/ui";var qh=Hh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${XE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Gh=Hh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var eI=100;function Dc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=RE(!1),l=s?"":"is-hidden",{config:p}=k(),u=p?.variant==="full-expanded",d=No();return JE(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},eI):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Co.createElement(qh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${zi()} widget-expanded-quotes-container`,id:tt.EXPANDED_BOX_ID},Co.createElement(ZE,{title:YE.t("Routes"),suffix:Co.createElement(Co.Fragment,null,Co.createElement(Ta,{container:d}),Co.createElement(Oo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Co.createElement(Gh,null,Co.createElement(Lr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:No(),onClickOnQuote:n,fullExpandedMode:u})))}i(Dc,"ExpandedQuotes");import{i18n as Jh}from"@lingui/core";import{SwapInput as Rh}from"@rango-dev/ui";import rI from"bignumber.js";import Pr from"react";import{ReverseIcon as nI}from"@rango-dev/ui";import Fc from"react";import{keyframes as tI,styled as Vh}from"@rango-dev/ui";var $c=450,oI=tI({"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)"}}),Kh=Vh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),jh=Vh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${oI} ${$c}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 Oc(){let t=U().use.switchFromAndTo();return Fc.createElement(Kh,null,Fc.createElement(jh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},$c),t()}},Fc.createElement(nI,{size:12})))}i(Oc,"SwitchFromAndToButton");import{styled as Xh}from"@rango-dev/ui";var Yh=Xh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Zh=Xh("div",{position:"relative"});function Uc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:d,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:m}=U()(),{swapMode:C}=nt(),{connectedWallets:y,getBalanceFor:S}=k(),T=a?S(a):null,w=si(T)?.amount??"0",v=T?new rI(T.amount).shiftedBy(-T.decimals):pe,N=!!s&&vu(y,s.name),B=!Qs(m,d,f),b=!Qs(m,d,g),E=!f||!g||!g.gt(0)?null:Kt(f.toString(),g.toString());return Pr.createElement(Yh,null,Pr.createElement(Zh,null,Pr.createElement(Rh,{label:Jh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:w,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:B?void 0:D(f,4,4),realUsdValue:B?void 0:f?.toString(),error:B?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:N,tooltipContainer:W(),onSelectMaxBalance:()=>{let x=D(v,T?.decimals),M=T?.amount?x.split(",").join(""):"";p(M)},anyWalletConnected:y.length>0}),C==="swap"&&Pr.createElement(Oc,null)),Pr.createElement(Rh,{selectionType:C==="swap"?"token":"chain",sharpBottomStyle:!r&&(!!m||e),label:Jh.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:D(Kt(f,g),2,2),warningLevel:jt(E??0),price:{value:D(h,6,6),usdValue:b?void 0:D(g,4,4),realValue:h?.toString(),realUsdValue:b?void 0:g?.toString(),error:b?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:W()}))}i(Uc,"Inputs");import{warn as iI}from"@rango-dev/logging-core";import{useCallback as aI,useEffect as sI,useRef as lI,useState as cI}from"react";function ey(){let{fetch:t,loading:e,cancelFetch:o}=ua({request:async(n,r)=>await ut().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(ey,"useFetchAllQuotes");var pI=600;function wa({refetchQuote:t}){let{fetch:e,cancelFetch:o}=ey(),{excludeLiquiditySources:n,routing:r}=k().config,{connectedWallets:a}=k(),c=a.some(ae=>ae.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:f,sortStrategy:h,resetQuote:g,error:m,warning:C,setSelectedQuote:y,updateQuotePartialState:S}=U()(),{slippage:T,customSlippage:w,affiliatePercent:v,affiliateRef:N,affiliateWallets:B,fetchStatus:b}=k(),E=k().getLiquiditySources(),x=k().getDisabledLiquiditySources(),M=k().excludeLiquiditySources(),{findToken:I}=k(),{swapMode:_}=nt(),[Q,H]=cI(!0),j=lI(u),L=w??T,R=!l||!p||Ht(l,p)||!zn(u),Y=i(ae=>{H(ae)},"resetState"),le=i(ae=>{let{fromToken:we,toToken:Ue,inputAmount:Ee,liquiditySources:$,excludeLiquiditySources:A,disabledLiquiditySources:G,slippage:se,affiliateRef:K,affiliatePercent:X,affiliateWallets:bt}=ae;if(Q||Y(!0),!R&&we&&Ue){g();let ze=Hd({fromToken:we,toToken:Ue,inputAmount:Ee,liquiditySources:$,excludeLiquiditySources:A,disabledLiquiditySources:G,wallets:a,slippage:se,affiliateRef:K,affiliatePercent:X,affiliateWallets:bt,contractCall:c});rn("experimental",r)&&(ze.experimental=!0),rn("avoidNativeFee",r)&&(ze.avoidNativeFee=!0),rn("enableCentralizedSwappers",r)&&(ze.enableCentralizedSwappers=!0),r?.maxLength&&(ze.maxLength=r.maxLength),_==="refuel"&&(ze.maxLength=1),e(ze).then(Me=>{let lt=Ai(h,Me.results),xo=Wd(f,lt,Me.requestAmount);H(!1),S("quotes",Me),y(xo),da({diagnosisMessages:Me.diagnosisMessages,requestId:xo?.requestId||"",swaps:xo?.swaps});let Dn=xo&&fn({currentQuote:xo,userSlippage:L,findToken:I});S("warning",Dn)}).catch(Me=>{let lt=ma(Me);(lt.type===0||lt.type===1)&&g(),lt.type!==2&&(S("error",lt),H(!1),iI(new Error("quote error"),{tags:{...lt,type:Ye[lt.type],requestBody:ze}}))})}},"fetch"),Xe=aI(ei(ae=>{le(ae)},pI),[R]);return sI(()=>{if(!t){H(!1);return}if(b!=="success")return;if(R){H(!1),(f||m||C)&&g();return}if(!zn(u)&&d?.eq(0)){Y(!1),o();return}g(),Y(!0);let ae=le;return j.current&&j.current!=u&&(ae=Xe),j.current=u,ae({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:M,disabledLiquiditySources:x,slippage:L,affiliateRef:N,affiliatePercent:v,affiliateWallets:B,contractCall:c}),o},[b,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,R,E?.length,n,x.length,L,N,v,c,JSON.stringify(B)]),{fetch:()=>le({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:M,disabledLiquiditySources:x,slippage:L,affiliateRef:N,affiliatePercent:v,affiliateWallets:B,contractCall:c}),loading:Q}}i(wa,"useSwapInput");function ty(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Ce.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(ty,"emitPreventableEvent");var hI=dI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),yI=300;function iy(){let t=gI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:f}=U()(),[h,g]=ry(!1),{isLargeScreen:m,isExtraLargeScreen:C}=Sn(),{fetch:y,loading:S}=wa({refetchQuote:a}),{config:T,fetchStatus:w,connectedWallets:v,customSlippage:N,slippage:B,setSlippage:b,setCustomSlippage:E}=k(),{isActiveTab:x}=oe(),[M,I]=ry(!1),_=N!==null?N:B,{swapMode:Q}=nt(),H=an(_),L=Od({fetchMetaStatus:w,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:v.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),ee=Bu(m,C,T?.variant),R=!!n&&!!e&&!!o&&new fI(n).gt(0)&&!Yd(e,o),Y=R&&w==="success"&&S,le=H?.quoteValidation||c,we=(!ee||ee&&l?.results.length)&&(le||s),Ue=!!e&&!!o,Ee=Ue&&!!H,$=(r||s)&&!M?y:void 0,A=i(X=>{ee&&h?(g(!1),setTimeout(()=>{t(X)},yI)):t(X)},"onHandleNavigation"),G=i(X=>{r?.requestId!==X.requestId&&(I(!1),p(X))},"onClickOnQuote"),se=i(X=>{if(X){if(ci.includes(X)){b(X),E(null);return}E(X)}},"onChangeSlippage"),K=i(X=>{A(X==="from"?O.fromSwap:Q==="swap"?O.toSwap:O.toSwap+"/"+O.blockchains)},"handleInputTokenClick");return ny(()=>{u(),f("refetchQuote",!0)},[]),ny(()=>{g(R)},[R]),he.createElement(hI,null,he.createElement(ie,{height:"auto",footer:he.createElement(uI,{id:`widget-swap-${L.action}-btn`,type:"primary",size:"large",disabled:L.disabled||!x,prefix:L.action==="confirm-warning"&&he.createElement(mI,null),fullWidth:!0,onClick:()=>{L.action==="connect-wallet"?ty({type:"clickConnectWallet"},()=>A(O.wallets)):L.action==="confirm-warning"?I(!0):A(O.confirmSwap)}},L.title),header:{onWallet:()=>{A(O.wallets)},hasBackButton:!1,title:T.title||(Q==="swap"?oy.t("Swap"):oy.t("Refuel")),suffix:he.createElement(Oo,{hidden:ee?["refresh"]:void 0,onClickRefresh:$,onClickHistory:()=>A(O.swaps),onClickSettings:()=>{A(O.settings)}})}},he.createElement(ce,null,he.createElement(Uc,{fetchingQuote:Y,fetchMetaStatus:w,isExpandable:ee,onClickToken:K}),he.createElement(zc,{size:"2"}),ee?null:he.createElement(Qo,{quote:r,loading:Y,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:le,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),A(O.routes)}:void 0}),Ue&&he.createElement(he.Fragment,null,he.createElement(zc,{size:8}),he.createElement(Lc,{quoteError:s,quoteWarning:le,fromToken:e,toToken:o,quote:r,loading:Y})),we?he.createElement(he.Fragment,null,he.createElement(fr,{warning:le,error:s,skipAlerts:!!H,couldChangeSettings:!0,refetchQuote:y,showWarningModal:M,confirmationDisabled:!x,onOpenWarningModal:()=>I(!0),onCloseWarningModal:()=>I(!1),onChangeSlippage:se,onConfirmWarningModal:()=>{I(!1),d(!0),A(O.confirmSwap)},onChangeSettings:()=>A(O.settings)})):null,Ee&&he.createElement(he.Fragment,null,he.createElement(zc,{size:"10"}),he.createElement(Wh,{onChangeSettings:()=>A(O.settings)})),he.createElement(Nc,null))),ee?he.createElement(Dc,{loading:Y,onClickOnQuote:G,fetch:y,onClickRefresh:$,isVisible:h}):null)}i(iy,"Home");import{i18n as ay}from"@lingui/core";import{Alert as SI,Divider as CI,List as kI,ListItemButton as TI,Radio as wI,RadioRoot as vI,Typography as bI}from"@rango-dev/ui";import Ot from"react";function ko(){let{setLanguage:t,language:e,config:o}=k(),n=$u,r=o?.language||sn;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||sn),resetLanguage:()=>t(null)}}i(ko,"useLanguage");function sy(){let{activeLanguage:t,changeLanguage:e,languages:o}=ko(),n=Ke(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Ot.createElement(bI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Ot.createElement(wI,{value:s}),start:Ot.createElement(l,null)}});return Ot.createElement(ie,{header:{title:ay.t("Language")}},Ot.createElement(ce,null,Ot.createElement(SI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Ot.createElement(CI,{size:"8"}),Ot.createElement(vI,{value:t},Ot.createElement(kI,{type:Ot.createElement(TI,{title:ay.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(sy,"LanguagePage");import{i18n as oo}from"@lingui/core";import{Button as NI,Checkbox as BI,Image as WI,ListItemButton as MI,NotFound as LI,Typography as PI}from"@rango-dev/ui";import et,{useState as _I}from"react";import{Checkbox as II,Skeleton as cy}from"@rango-dev/ui";import Dr from"react";import{styled as Qc}from"@rango-dev/ui";var _r=Qc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Hc=Qc("div",{width:80,display:"flex",justifyContent:"flex-end"}),qc=Qc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as xI,styled as EI}from"@rango-dev/ui";var ly=EI(xI,{height:61});var AI=30;function Gc(){return Dr.createElement(_r,null,Array.from(Array(AI),(t,e)=>Dr.createElement(ly,{hasDivider:!0,key:e,start:Dr.createElement(cy,{variant:"circular",width:35,height:35}),title:Dr.createElement(cy,{variant:"text",size:"large",width:90}),end:Dr.createElement(II,{checked:!1})})))}i(Gc,"LoadingLiquiditySourceList");function Vc({sourceType:t}){let e=k().fetchStatus,o=k().swappers(),n=k().getDisabledLiquiditySources(),[r,a]=_I(""),s=k().toggleLiquiditySource,c=k().isInCampaignMode(),l=di(o,n),p={Exchanges:oo.t("Exchanges"),Bridges:oo.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(y=>u.includes(y.type)),f=d.length===d.filter(y=>y.selected).length,h=i(()=>{d.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=d.map(y=>{let{selected:S,groupTitle:T,logo:w,id:v,...N}=y;return{id:`widget-setting-liquidity-source-${uu(v.toLowerCase())}-item-btn`,start:et.createElement(WI,{src:w,size:22,type:"circular"}),onClick:()=>{c||s(T)},end:et.createElement(BI,{checked:S,disabled:c}),title:et.createElement(PI,{variant:"title",size:"xmedium"},oo.t(T)),selected:S,groupTitle:T,logo:w,...N}}),m=i(y=>{let S=y.target.value;a(S)},"handleSearch"),C=g;return r&&(C=g.filter(y=>Pt(y.groupTitle,r))),et.createElement(ie,{header:{title:oo.t(t),suffix:et.createElement(Hc,null,et.createElement(NI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},f?oo.t("Deselect all"):oo.t("Select all")))}},et.createElement(ce,{view:!0},et.createElement(Nt,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:oo.t("Search {sourceType}",{sourceType:p[t]}),onChange:m}),e==="loading"&&et.createElement(Gc,null),!C.length&&r?et.createElement(qc,null,et.createElement(LI,{title:oo.t("No results found"),description:oo.t("Try using different keywords")})):e==="success"&&et.createElement(_r,{disabled:c,className:"widget-liquidity-source-list"},C.map(y=>{let{groupTitle:S,...T}=y;return et.createElement(et.Fragment,{key:y.id},et.createElement(MI,{style:{height:"61px"},...T,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Vc,"LiquiditySourcePage");import{i18n as DI}from"@lingui/core";import va from"react";import{useNavigate as $I}from"react-router-dom";function py(){let t=$I(),e=Ke(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=U()(),{fetch:c,loading:l}=wa({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${O.settings}`,d=`../${O.wallets}`;return va.createElement(ie,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:DI.t("Routes"),suffix:va.createElement(Oo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},va.createElement(ce,null,va.createElement(Lr,{fetch:c,loading:l,onClickOnQuote:p})))}i(py,"RoutesPage");import{i18n as yy}from"@lingui/core";import{Divider as Sy,getCategoriesCount as KI,SelectableCategoryList as jI}from"@rango-dev/ui";import no,{useState as Cy}from"react";import{useNavigate as XI}from"react-router-dom";import{i18n as Kc}from"@lingui/core";import{Divider as zI,Image as QI,ListItemButton as HI,NotFound as qI,Typography as hy}from"@rango-dev/ui";import ht,{useEffect as GI,useState as VI}from"react";var uy=i((t,e,o)=>t.filter(n=>ti(n.type,o)).filter(n=>ct(n.name,e)||ct(n.displayName,e)),"filterBlockchains");import{ImageContainer as FI,styled as dy}from"@rango-dev/ui";var my=dy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),ba=dy(bl,{padding:0,margin:0,listStyle:"none",[`& ${FI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as OI,Skeleton as fy}from"@rango-dev/ui";import xa from"react";var UI=20;function gy(){return xa.createElement(ba,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(UI),t=>xa.createElement(OI,{key:t,hasDivider:!0,start:xa.createElement(fy,{variant:"circular",width:35,height:35}),title:xa.createElement(fy,{variant:"text",size:"large",width:90})})))}i(gy,"LoadingBlockchainList");function jc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=VI(e),{fetchStatus:l}=k();GI(()=>{c([...uy(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ht.createElement(qI,{title:Kc.t("No results found"),description:Kc.t("Try using different keywords")}):ht.createElement(ba,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ht.createElement(HI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ht.createElement(QI,{src:u.logo,size:30}),title:ht.createElement(hy,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ht.createElement(ht.Fragment,null,a&&ht.createElement(ht.Fragment,null,ht.createElement(hy,{variant:"label",size:"large"},Kc.t("Select Chain")),ht.createElement(zI,{size:4})),ht.createElement(my,null,l==="loading"&&ht.createElement(gy,null),l==="success"&&p()))}i(jc,"BlockchainList");function Ea(t){let{type:e}=t,o=Ke(),[n,r]=Cy(""),[a,s]=Cy("ALL"),c=U().use.setToBlockchain(),l=U().use.setFromBlockchain(),p=U().use.setToToken(),{fetchStatus:u,findNativeToken:d}=k(),f=XI(),{swapMode:h}=nt(),g=k().blockchains({type:e}),m=KI(g),C=!t.hideCategory&&m!==1,y=i(S=>{if(e==="custom-token")f(`..?blockchain=${S.name}`,{replace:!0});else{if(e==="source")l(S);else if(h==="swap")c(S);else{let T=d(S);T&&p({token:T,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return no.createElement(ie,{header:{title:yy.t("Select Chain")}},no.createElement(ce,{view:!0},C&&no.createElement(no.Fragment,null,no.createElement(jI,{setCategory:s,category:a,blockchains:g,isLoading:u==="loading"}),no.createElement(Sy,{size:24})),no.createElement(Nt,{value:n,autoFocus:!0,placeholder:yy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:S=>r(S.target.value)}),no.createElement(Sy,{size:16}),no.createElement(jc,{list:g,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:y})))}i(Ea,"SelectBlockchainPage");import{i18n as Na}from"@lingui/core";import{Divider as Ey,Spinner as pA}from"@rango-dev/ui";import To,{useEffect as uA,useState as dA}from"react";import{useNavigate as mA}from"react-router-dom";import{i18n as Zc}from"@lingui/core";import{BlockchainsChip as Ia,Divider as vy,Image as by,Skeleton as tA,Tooltip as oA,Typography as Jc}from"@rango-dev/ui";import ve from"react";import{useEffect as JI}from"react";var ky=["ETH","COSMOS","OSMOSIS"];function Xc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(YI),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(ZI(s)),r=n.splice(a)}return{list:n,more:r}}i(Xc,"prepare");function YI(t,e){let o=ky,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(YI,"sortByMostUsedBlockchains");function ZI(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(ZI,"generateSortByPreferredBlockchainsFor");function Ty(t,e){return!!e.list.find(o=>o.name===t)}i(Ty,"isInVisibleList");function Yc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=k();JI(()=>{if(e?.selected){let a=Xc(t,o,e);Ty(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Xc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Yc,"usePrepareBlockchainList");import{styled as RI}from"@rango-dev/ui";var wy=RI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var nA=6,rA=12;function Rc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=Yc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=k(),p=U().use.resetToBlockchain(),u=U().use.resetFromBlockchain(),d=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&d;return ve.createElement(ve.Fragment,null,!s&&ve.createElement(ve.Fragment,null,ve.createElement(vy,{size:12}),ve.createElement(Jc,{variant:"label",size:"large"},Zc.t("Select Chain"))),ve.createElement(vy,{size:12}),ve.createElement(wy,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?nA:rA),(m,C)=>ve.createElement(tA,{key:C,variant:"rounded",height:50})),l==="success"&&ve.createElement(ve.Fragment,null,ve.createElement(Ia,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},ve.createElement(Jc,{variant:"body",size:"xsmall",color:"secondary500"},Zc.t("All"))),c.list.map(m=>ve.createElement(oA,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:W()},ve.createElement(Ia,{className:"widget-blockchains-section-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},ve.createElement(by,{src:m.logo,size:30})))),h?ve.createElement(Ia,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},ve.createElement(by,{src:f.logo,size:30})):null,g?ve.createElement(Ia,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},ve.createElement(Jc,{variant:"body",size:"xsmall",color:"secondary500"},Zc._("More +{count}",{count:c.more.length}))):null)))}i(Rc,"BlockchainsSection");import{useCallback as aA,useRef as sA,useState as ep}from"react";function tp(){let t=k().blockchains(),e=sA(null),{customTokens:o}=k(),[n,r]=ep(!1),[a,s]=ep([]),[c,l]=ep(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await ut().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(S=>Gt(S))),C=new Set(t.map(S=>S.name)),y=g.tokens.filter(S=>C.has(S.blockchain)&&!m.has(Gt(S)));s(y),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=aA(ei((f,h)=>{e.current?.signal.aborted||p(f,h)},600),[t.length]);return{fetch:(f,h)=>{e.current=new AbortController,s([]),r(!0),u(f,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(tp,"useSearchCustomTokens");function Aa(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(Aa,"shouldSearchForCustomTokens");function xy(t,e,o,n,r){let a=[...t];return Aa(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(xy,"prepareTokensList");function Ba(t){let{type:e}=t,o=mA(),n=Ke(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=U()(),{getBalanceFor:u}=k(),{fetch:d,loading:f,tokens:h,cancel:g}=tp(),[m,C]=dA(""),y=e==="source"?r:a,S=y?.name??"",T=k().blockchains({type:e}),w=k().tokens({type:e,blockchain:S,searchFor:m,getBalanceFor:u}),v=xy(w,h,m,f,y?.name),N=i(E=>{e==="source"?l(E):p(E)},"updateBlockchain"),B=i(E=>{e==="source"?s({token:E,meta:{blockchains:T}}):c({token:E,meta:{blockchains:T}})},"updateToken"),b={source:Na.t("Source"),destination:Na.t("Destination")};return uA(()=>(Aa(w,m,y?.name)&&d(m,y?.name??void 0),()=>{g()}),[w.length,m,y?.name]),To.createElement(ie,{header:{title:Na.t("Swap {type}",{type:b[e]})}},To.createElement(ce,null,To.createElement(Rc,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(O.blockchains),onChange:E=>{N(E)}}),To.createElement(Ey,{size:24}),To.createElement(Nt,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:Na.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>C(""),onChange:E=>C(E.target.value),suffix:Aa(w,m,y?.name)&&f?To.createElement(pA,{size:12,color:"secondary"}):void 0}),To.createElement(Ey,{size:16}),To.createElement(xr,{list:v,selectedBlockchain:S,searchedFor:m,type:e,onChange:E=>{B(E);let x=T.find(M=>E.blockchain===M.name);x&&N(x),n()}})))}i(Ba,"SelectSwapItemsPage");import{i18n as ip}from"@lingui/core";import{Alert as UA,Button as zA,styled as QA}from"@rango-dev/ui";import Vo from"react";import{useInRouterContext as HA,useSearchParams as qA}from"react-router-dom";import{i18n as My}from"@lingui/core";import{Alert as yA,Divider as np,InfoIcon as SA,SlippageIcon as CA,TextField as kA,Tooltip as TA,Typography as Ly}from"@rango-dev/ui";import He from"react";import{Chip as fA,styled as $r,TextField as gA}from"@rango-dev/ui";var Iy=$r("div",{paddingTop:"$5",padding:"$10 $5"}),Ay=$r("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${gA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),Ny=$r("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Wa=$r("div",{maxWidth:"280px",padding:"$10"}),By=$r(fA,{width:"61px",flexShrink:0});import{i18n as op}from"@lingui/core";import{Typography as hA}from"@rango-dev/ui";import Fr from"react";function Wy(){return Fr.createElement(Wa,null,Fr.createElement(hA,{variant:"label",size:"medium",color:"neutral700"},op.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Fr.createElement("br",null),Fr.createElement("br",null),Fr.createElement("b",null,op.t("Warning")),":\xA0",op.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(Wy,"SlippageTooltipContent");function rp(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=k(),r=o!==null?an(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let d=u;u>Gn&&(d=Gn),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;mu(u)||(p.value=u.slice(0,-1))},"onInput");return He.createElement(Iy,null,He.createElement(Ny,null,He.createElement(CA,{size:16,color:"gray"}),He.createElement(np,{direction:"horizontal",size:4}),He.createElement(Ly,{variant:"title",size:"xmedium"},My.t("Slippage tolerance per swap")),He.createElement(np,{direction:"horizontal",size:4}),He.createElement(TA,{container:W(),side:"top",sideOffset:4,content:He.createElement(Wy,null)},He.createElement(SA,{color:"gray"}))),He.createElement(Ay,null,ci.map((l,p)=>{let u=`slippage-${p}`;return He.createElement(By,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),He.createElement(kA,{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&&He.createElement(Ly,{variant:"body",size:"small"},"%"),placeholder:My.t("Custom")})),r&&He.createElement(He.Fragment,null,He.createElement(np,{size:10}),He.createElement(yA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(rp,"Slippage");import{i18n as vt}from"@lingui/core";import{AutoThemeIcon as Py,BridgesIcon as wA,ChevronRightIcon as Ma,DarkModeIcon as _y,Divider as Or,ExchangeIcon as vA,InfinityIcon as bA,InfoIcon as xA,LanguageIcon as EA,LightModeIcon as Dy,List as IA,ListItem as AA,ListItemButton as NA,Skeleton as BA,styled as WA,Switch as MA,Tabs as LA,TargetIcon as PA,Tooltip as _A,Typography as st}from"@rango-dev/ui";import F from"react";import{useNavigate as DA}from"react-router-dom";var $A=WA("div",{width:"202px",height:"$40"}),FA=[{id:"light",icon:F.createElement(Dy,{color:"black",size:24}),tooltip:F.createElement(st,{size:"xsmall",variant:"body"},vt.t("Light"))},{id:"dark",icon:F.createElement(_y,{color:"black",size:24}),tooltip:F.createElement(st,{size:"xsmall",variant:"body"},vt.t("Dark"))},{id:"auto",icon:F.createElement(Py,{color:"black",size:24}),tooltip:F.createElement(st,{size:"xsmall",variant:"body"},vt.t("Auto"))}],OA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return F.createElement(Py,{...e});case"dark":return F.createElement(_y,{...e});default:return F.createElement(Dy,{...e})}},"getThemeIcon");function $y(){let t=DA(),{theme:e}=k().config,{setTheme:o,theme:n}=k(),{activeLanguage:r,languages:a}=ko(),s=a.find(L=>L.local===r)?.label,c=k().fetchStatus,l=k().swappers(),p=k().getDisabledLiquiditySources(),{config:{features:u}}=k(),d=k().customTokens(),f=ot("theme",u),h=ot("liquiditySource",u),g=ot("language",u),m=ot("customTokens",u),C=k().infiniteApprove,y=k().toggleInfiniteApprove,S=di(l,p),T=S.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),w=T.length,v=T.filter(L=>L.selected).length,N=S.filter(L=>L.type==="DEX"),B=N.length,b=N.filter(L=>L.selected).length,E=i((L,ee)=>{switch(c){case"loading":return F.createElement(BA,{variant:"text",size:"medium",width:50});case"failed":return F.createElement(st,{variant:"body",size:"medium",color:"$error500"},vt.t("Loading failed"));default:return F.createElement(st,{variant:"body",size:"medium"},`${L} / ${ee}`)}},"handleSwapperEndItem"),x={id:"widget-setting-bridge-item-btn",title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Bridges")),end:F.createElement(F.Fragment,null,E(v,w),F.createElement(Or,{direction:"horizontal",size:8}),F.createElement(Ma,{color:"black"})),onClick:()=>t(O.bridges),start:F.createElement(wA,{color:"gray",size:16})},M={id:"widget-setting-exchange-item-btn",title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Exchanges")),end:F.createElement(F.Fragment,null,E(b,B),F.createElement(Or,{direction:"horizontal",size:8}),F.createElement(Ma,{color:"black"})),start:F.createElement(vA,{color:"gray",size:16}),onClick:()=>t(O.exchanges)},I={id:"widget-setting-custom-tokens-item-btn",title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Custom Tokens")),end:F.createElement(F.Fragment,null,F.createElement(st,{variant:"body",size:"medium"},`${d.length}`),F.createElement(Or,{direction:"horizontal",size:8}),F.createElement(Ma,{color:"black"})),start:F.createElement(PA,{color:"gray",size:16}),onClick:()=>t(O.customTokens)},_={id:"widget-setting-language-item-btn",title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Language")),start:F.createElement(EA,{color:"gray",size:16}),end:F.createElement(F.Fragment,null,F.createElement(st,{variant:"body",size:"medium"},s),F.createElement(Or,{direction:"horizontal",size:8}),F.createElement(Ma,{color:"black"})),onClick:()=>t(O.languages)},Q={id:"widget-setting-infinite-approval-item-btn",title:F.createElement(F.Fragment,null,F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Infinite approval")),F.createElement(Or,{direction:"horizontal",size:4}),F.createElement(_A,{side:"top",sideOffset:4,container:W(),content:F.createElement(Wa,null,F.createElement(st,{variant:"label",size:"medium",color:"neutral700"},F.createElement("b",null,vt.t("Warning")),":\xA0",vt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},F.createElement(xA,{color:"gray"}))),start:F.createElement(bA,{color:"gray",size:16}),end:F.createElement(MA,{checked:C}),onClick:y},H={id:"widget-setting-theme-item-btn",type:F.createElement(AA,null),title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Theme")),end:F.createElement($A,null,F.createElement(LA,{container:W(),items:FA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:OA(n)},j=h?[]:[x,M];return m||j.push(I),g||j.push(_),j.push(Q),!e?.singleTheme&&!f&&j.push(H),F.createElement(IA,{type:F.createElement(NA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:j})}i($y,"SettingsLists");var GA=QA("div",{paddingLeft:"$8"});function Fy(){let{isInCampaignMode:t,updateCampaignMode:e}=k(),o=t(),[,n]=qA(),r=HA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Vo.createElement(ie,{header:{title:ip.t("Settings")}},Vo.createElement(ce,null,o&&Vo.createElement(UA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:ip.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:Vo.createElement(GA,null,Vo.createElement(zA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},ip.t("Reset")))}),Vo.createElement(rp,null),Vo.createElement($y,null)))}i(Fy,"SettingsPage");import{i18n as e0}from"@lingui/core";import{cancelSwap as t0}from"@rango-dev/queue-manager-rango-preset";import{useManager as o0}from"@rango-dev/queue-manager-react";import{Alert as n0}from"@rango-dev/ui";import Tp from"react";import{useParams as r0}from"react-router-dom";import{i18n as zt}from"@lingui/core";import{getCurrentNamespaceOfOrNull as UN,getCurrentStep as zN,getRelatedWalletOrNull as QN}from"@rango-dev/queue-manager-rango-preset";import{Button as WS,Divider as HN,QuoteCost as qN,StepDetails as GN,Typography as gp}from"@rango-dev/ui";import{useWallets as VN}from"@rango-dev/wallets-react";import MS from"bignumber.js";import{PendingSwapNetworkStatus as Ln}from"rango-types";import Se,{useEffect as hp,useRef as yp,useState as za}from"react";import{useNavigate as KN}from"react-router-dom";import{i18n as wo}from"@lingui/core";var VA=[wo.t("Sunday"),wo.t("Monday"),wo.t("Tuesday"),wo.t("Wednesday"),wo.t("Thursday"),wo.t("Friday"),wo.t("Saturday")];function Oy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?wo.t("Today"):`${VA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Oy,"timeSince");function Uy(t){return t.finishTime?Oy(parseInt(t.finishTime)):Oy(parseInt(t.creationTime))}i(Uy,"getSwapDate");import zr from"react";import{i18n as La}from"@lingui/core";import{Button as zy,Divider as ap,MessageBox as KA}from"@rango-dev/ui";import vo from"react";var Qy=i(({onCancel:t,onClose:e})=>vo.createElement(vo.Fragment,null,vo.createElement(ap,{size:20}),vo.createElement(KA,{type:"error",title:La.t("Cancel Swap"),description:La.t("Are you sure you want to cancel this swap?")}),vo.createElement(ap,{size:32}),vo.createElement(zy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},La.t("Yes, Cancel it")),vo.createElement(ap,{size:12}),vo.createElement(zy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},La.t("No, Continue"))),"CancelContent");import{i18n as Pa}from"@lingui/core";import{Button as Hy,Divider as sp,MessageBox as jA,Typography as XA}from"@rango-dev/ui";import ro from"react";var qy=i(({onDelete:t,onClose:e})=>ro.createElement(ro.Fragment,null,ro.createElement(sp,{size:20}),ro.createElement(jA,{type:"error",title:Pa.t("Delete Transaction"),description:Pa.t("Are you sure you want to delete this swap?")}),ro.createElement(sp,{size:32}),ro.createElement(Hy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Pa.t("Yes, Delete it")),ro.createElement(sp,{size:12}),ro.createElement(Hy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},ro.createElement(XA,{variant:"title",size:"medium",color:"primary"},Pa.t("No, Cancel")))),"DeleteContent");import{i18n as YA}from"@lingui/core";import{Button as ZA,Divider as JA,MessageBox as RA}from"@rango-dev/ui";import Ko from"react";var Gy=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Ko.createElement(Ko.Fragment,null,Ko.createElement(RA,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Ko.createElement(Ko.Fragment,null,Ko.createElement(JA,{size:"30"}),Ko.createElement(ZA,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},YA.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as hN,getCurrentStep as yN,getRelatedWalletOrNull as SN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as CN}from"@rango-dev/ui";import{useWallets as kN}from"@rango-dev/wallets-react";import Zy from"react";import{i18n as Wn}from"@lingui/core";import{Alert as Ky,Button as tN,Checkbox as oN,Divider as $a,Image as nN,MessageBox as rN,Spinner as iN,WarningIcon as aN}from"@rango-dev/ui";import{useWallets as sN}from"@rango-dev/wallets-react";import ge,{useState as lN}from"react";import{darkTheme as eN,styled as Ur}from"@rango-dev/ui";var mX=Ur("div",{display:"flex",justifyContent:"center"}),fX=Ur("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Vy=Ur("img",{width:"100%"}),_a=Ur("div",{position:"relative"}),Da=Ur("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${eN} &`]:{$$color:"$warning600"}});var jy=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=lN(null),{list:s}=xt(),c=oe.use.isActiveTab(),{state:l,connect:p}=sN(),u=s.find(v=>v.type===e.walletType),d=u?.needsNamespace?.data.find(v=>v.value===o?.namespace);if(!u)return null;let f=l(e.walletType),h=u.isHub&&o?.namespace?f.namespaces?.get(o.namespace):null,g=f.connecting||h?.connecting,m=u.isHub?h?.connected:f.connected,C=i(()=>m?Wn.t("Done"):r?Wn.t("Try again"):Wn.t("Connect"),"getButtonTitle"),y=i(()=>g?ge.createElement(iN,{color:"info"}):r||m?null:ge.createElement(oN,{checked:!0,disabled:!0}),"getNamespaceSuffix"),S=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(v){a(v)}},"handleConnect"),T=i(async()=>{if(m){n();return}S()},"handleClickButton"),w=i(()=>{if(!m)return null;let v=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),N=v?.[v?.length-1];return N?ao(N):null},"getAddress");return ge.createElement(ge.Fragment,null,ge.createElement(rN,{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:ge.createElement(_a,null,ge.createElement(nN,{src:u.image,size:45}),ge.createElement(Da,null,ge.createElement(aN,{color:"warning",size:10})))}),m&&!d&&ge.createElement(ge.Fragment,null,ge.createElement($a,{size:10}),ge.createElement(Ky,{type:"success",variant:"alarm",title:Wn.t("Wallet connected successfully.")})),r&&!d&&ge.createElement(ge.Fragment,null,ge.createElement($a,{size:10}),ge.createElement(Ky,{type:"error",title:r?.message,variant:"alarm"})),d&&ge.createElement(ge.Fragment,null,ge.createElement($a,{size:30}),ge.createElement(Lo,{namespace:d,suffix:y(),error:r?.message,connected:m,address:w()})),ge.createElement($a,{size:"40"}),ge.createElement(tN,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:T,disabled:!c},C()))},"ConnectWalletContent");import{i18n as Xy}from"@lingui/core";import{Button as cN,Divider as pN,Image as uN,MessageBox as dN,WarningIcon as mN}from"@rango-dev/ui";import{useWallets as fN}from"@rango-dev/wallets-react";import{detectInstallLink as gN}from"@rango-dev/wallets-shared";import io from"react";var Yy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=fN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(gN(n.installLink),"_blank"),"handleButtonClick");return io.createElement(io.Fragment,null,io.createElement(dN,{type:"warning",title:Xy.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:io.createElement(_a,null,io.createElement(uN,{src:n.img,size:45}),io.createElement(Da,null,io.createElement(mN,{color:"warning",size:10})))}),io.createElement(pN,{size:"40"}),io.createElement(cN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},Xy.t("Install")))},"InstallWalletContent");var Jy=i(t=>{let{swap:e,onClose:o}=t,{state:n}=kN(),r=yN(e),a=r?SN(e,r):null,s=a?.walletType,c=s?Qn(n(s)):null,l=r?hN(e,r):null;return s?c===CN.NOT_INSTALLED?Zy.createElement(Yy,{walletType:s}):Zy.createElement(jy,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function lp(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return zr.createElement(J,{open:e,onClose:r,container:W()},o==="connectWallet"&&zr.createElement(Jy,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&zr.createElement(Gy,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&zr.createElement(qy,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&zr.createElement(Qy,{onClose:r,onCancel:()=>{r(),s()}}))}i(lp,"SwapDetailsModal");import{i18n as Qr}from"@lingui/core";import{Button as cp,Divider as Hr,MessageBox as tS,TokenAmount as TN,Typography as oS}from"@rango-dev/ui";import ye from"react";import{Link as wN,useNavigate as vN}from"react-router-dom";var Ry="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",eS="/profile";function pp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:d,diagnosisUrl:f}=t,h=vN(),{showProfileBanner:g}=oe();return ye.createElement(J,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(tt.SWAP_BOX_ID)||document.body},n==="success"?ye.createElement(tS,{type:"success",title:Qr.t("Swap Successful")},ye.createElement(TN,{direction:"vertical",tooltipContainer:W(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),ye.createElement(Hr,{size:12}),ye.createElement(oS,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):ye.createElement(tS,{type:"error",title:Qr.t("Transaction Failed"),description:d}),ye.createElement(Hr,{size:30}),n==="success"&&ye.createElement(ye.Fragment,null,g&&ye.createElement(ye.Fragment,null,ye.createElement(wN,{to:eS},ye.createElement(Vy,{src:Ry,alt:"Profile Banner"})),ye.createElement(Hr,{size:30})),ye.createElement(cp,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Qr.t("Done"))),ye.createElement(Hr,{size:12}),f&&ye.createElement(ye.Fragment,null,ye.createElement(cp,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Qr.t("Diagnosis")),ye.createElement(Hr,{size:12})),ye.createElement(cp,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},ye.createElement(oS,{variant:"title",size:"medium",color:"primary"},Qr.t("See Details"))))}i(pp,"SwapDetailsCompleteModal");import{i18n as Ua}from"@lingui/core";import{CopyIcon as _N,DoneIcon as DN,IconButton as $N,RangoExplorerIcon as FN,Tooltip as xS,Typography as ES,useCopyToClipboard as ON}from"@rango-dev/ui";import Wt from"react";import PN from"react";import{i18n as BN}from"@lingui/core";import{Alert as TS,IconButton as WN,LinkIcon as MN}from"@rango-dev/ui";import bo,{Fragment as LN}from"react";import{Alert as xN,ChevronDownIcon as EN,IconButton as IN}from"@rango-dev/ui";import Mn,{useState as AN}from"react";import{css as qr,darkTheme as nS,styled as Ut,Typography as bN}from"@rango-dev/ui";var rS=Ut(ce,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${nS} &`]:{color:"$secondary500"}}}}}),iS=Ut("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),aS=Ut("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),sS=Ut("div",{padding:"$0 $20 $20 $20"}),yY=Ut("div",{display:"flex",flexDirection:"column",gap:"$10"}),lS=Ut("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),SY=Ut("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),jo=qr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${nS} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),cS=qr({padding:"$5 0"}),Fa=qr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),pS=qr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),uS=qr({width:"100%",padding:"0 $20 $10"}),dS=Ut("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),mS=Ut("div",{display:"flex",flexDirection:"column",gap:"$5"}),Oa=Ut(bN,{wordBreak:"break-word"});import{styled as up}from"@rango-dev/ui";var fS=up("div",{display:"flex",flexDirection:"column",gap:"$10"}),gS=up("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),hS=up("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function yS(t){let{message:e}=t,[o,n]=AN(!1);return Mn.createElement(xN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Mn.createElement(IN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Mn.createElement(gS,{rotated:o},Mn.createElement(EN,{size:12,color:"gray"}))),footer:Mn.createElement(hS,{open:o},Mn.createElement(Oa,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(yS,"FailedAlert");import{i18n as SS}from"@lingui/core";import{Alert as dp,Button as CS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as NN}from"rango-types";import Gr from"react";function kS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?Gr.createElement(dp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:Gr.createElement(CS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},SS.t("Change"))}):a===NN.WaitingForConnectingWallet?Gr.createElement(dp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Gr.createElement(CS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},SS.t("Connect"))}):Gr.createElement(dp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(kS,"WarningAlert");function mp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=rr(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,d=u&&!c||p&&!s.explorerUrl?.length;return bo.createElement(fS,null,s.explorerUrl?.map((f,h,g)=>{let m=h+f.url,C=h===g.length-1,y=(C&&u||p)&&!d,S=C&&s.status==="failed";return bo.createElement(LN,{key:m},bo.createElement(TS,{id:"widget-swap-details-tx-alert",type:C&&(y&&"loading"||S&&"error")||"success",title:f.description?`${f.description} Tx`:BN.t("View transaction"),action:f.url&&bo.createElement(WN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},bo.createElement(MN,{size:12}))}))}),d&&bo.createElement(TS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&bo.createElement(kS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&bo.createElement(yS,{message:a}))}i(mp,"SwapDetailsAlerts");var wS=2e3;var vS=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1]?.outputAmount||t.steps[s-1]?.expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:yt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:D(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:yt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:D(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Fn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:yt(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:yt(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Fn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:PN.createElement(mp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function bS(t){if(rr(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(bS,"getStepState");function IS(t){let{requestId:e}=t,[o,n]=ON(wS);return Wt.createElement(aS,{className:jo()},Wt.createElement(ES,{variant:"label",size:"large",color:"neutral700"},Ua.t("Request ID")),Wt.createElement("div",{className:Fa()},Wt.createElement(ES,{variant:"label",size:"small",color:"neutral700"},e),Wt.createElement(xS,{container:W(),content:o?Ua.t("Copied To Clipboard"):Ua.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Wt.createElement($N,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Wt.createElement(DN,{size:16,color:"secondary"}):Wt.createElement(_N,{size:16,color:"gray"}))),Wt.createElement(dS,{target:"_blank",href:`${Yp}/swap/${e}`},Wt.createElement(xS,{container:W(),content:Ua.t("View on Rango Explorer"),side:"bottom"},Wt.createElement(FN,{size:20})))))}i(IS,"RequestIdRow");import{i18n as AS}from"@lingui/core";import{Typography as NS}from"@rango-dev/ui";import fp from"react";function BS(t){let{date:e,isFinished:o}=t;return fp.createElement("div",{className:jo()},fp.createElement(NS,{variant:"label",size:"large",color:"neutral700"},o?AS.t("Finished at"):AS.t("Created at")),fp.createElement(NS,{variant:"label",size:"small",color:"neutral700"},e))}i(BS,"SwapDateRow");var jN=3e3;function Sp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=VN(),l=k().blockchains(),p=k().swappers(),{findToken:u}=k(),d=U().use.retry(),f=KN(),h=yp(null),[g,m]=za(!1),[C,y]=za(null),[S,T]=za(null),[w,v]=za(null),N=yp(C),B=yp(S),b=Ae.use.getNotifications(),E=Ae.use.removeNotification(),x=b(),M=zN(e),I=M?.networkStatus,_=i(Le=>{m(!0),y(Le)},"handleChangeModalState"),Q=i(()=>{m(!1)},"handleCloseModal"),H=i(()=>{T({type:"loading",title:zt.t("Change Network"),description:`We\u2019re switching the connected network to ${R?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),j=i(()=>{T({type:"success",title:zt.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),L=i(Le=>{T({type:"error",title:zt.t("Network Switch Failed"),description:Le?.message||se.detailedMessage.content})},"handleShowSwitchNetworkFailed"),ee=Kd(e),R=M?UN(e,M):null,Y=M?QN(e,M):null,le=Uy(e),Xe=jd(e),ae=i(Le=>!!c(Le)?.mobileWallet,"checkIsMobileWallet"),we=!!I&&[Ln.WaitingForNetworkChange,Ln.NetworkChangeFailed].includes(I),Ue=!!Y?.walletType&&ae(Y.walletType),Ee=!!Y&&!!R&&a(Y.walletType,R.network,R),$=!!R&&we&&(Ue||Ee),A=i(()=>{$&&(H(),s(Y.walletType,[{namespace:R.namespace,network:R.network}]).then(()=>{j()}).catch(Le=>{L(Le)}))},"handleSwitchNetwork"),G=i(()=>{_("switchNetwork"),A()},"handleSwitchNetworkClick"),se=Vd(e,M,c),K=vS({swap:e,switchNetworkIsAvailable:$,handleSwitchNetworkClick:G,showNetworkModal:I,setNetworkModal:_,message:se,blockchains:l,swappers:p}),X=K.length,[bt,ze]=[e.steps[0],e.steps[X-1]],Me=ze?.outputAmount||ze?.expectedOutputAmountHumanReadable,lt=e.steps.reduce((Le,Lt)=>Le+parseFloat(Lt.feeInUsd||""),0),xo=e.steps.find(Le=>Le.diagnosisUrl)?.diagnosisUrl,Dn=D(parseFloat(Me||"0")*(ze?.toUsdPrice||0),4,4),Wp=D(parseFloat(e.inputAmount)*(bt?.fromUsdPrice||0),4,4),Mp=Me?new MS(Me).multipliedBy(ze.toUsdPrice||0).toString():"",uC=new MS(e.inputAmount).multipliedBy(bt?.fromUsdPrice||0).toString(),Ja=Kt(Wp,Dn),Ra=se.detailedMessage.content||se.shortMessage,dC=e.status==="success"?zt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:D(Me,6,6),token:K[X-1]?.to.token.displayName,conciseAddress:ao(e.wallets[K[X-1]?.to.chain.displayName||""]?.address||""),chain:K[X-1]?.to.chain.displayName}}):Se.createElement(mS,null,Se.createElement(gp,{variant:"body",size:"medium",color:"neutral700",align:"center"},Ra?"":zt.t("Transaction was not sent."),ee?`${zt.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:ee.outputAmount,symbol:ee.symbol,blockchain:ee.blockchain}})}`:""),Ra&&Se.createElement(Oa,{align:"center",variant:"body",size:"medium",color:"neutral700"},Se.createElement("b",null,"Reason:")," ",Ra));return hp(()=>{x.find(Lt=>Lt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),E(e.requestId),Q()):w&&v(null))},[e.status,e.requestId]),hp(()=>{if($){if(_("switchNetwork"),I===Ln.WaitingForNetworkChange){H();return}if(I===Ln.NetworkChangeFailed){L();return}return}if(I===Ln.WaitingForConnectingWallet){_("connectWallet");return}if(I===Ln.NetworkChanged){_("switchNetwork"),j();return}C&&["connectWallet","switchNetwork"].includes(C)&&Q()},[I]),hp(()=>{if(N.current=C,B.current=S,C==="switchNetwork"&&S?.type==="success"){let Le=setTimeout(()=>{N.current==="switchNetwork"&&B.current?.type==="success"&&Q()},jN);return()=>clearTimeout(Le)}},[C,S]),Se.createElement(ie,{header:{title:zt.t("Swap Details"),onCancel:e.status==="running"?()=>_("cancel"):void 0,suffix:e.status!=="running"&&Se.createElement(uo,null,Se.createElement(WS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>_("delete")},Se.createElement(gp,{size:"medium",variant:"label",color:"error"},zt.t("Delete"))))},footer:Xe&&!w&&Se.createElement(WS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Le=Ii(e,l,u);d(Le),setTimeout(()=>{f("../../")},0)}},zt.t("Try again"))},Se.createElement(rS,{compact:!0,ref:h},Se.createElement(IS,{requestId:o}),Se.createElement(BS,{date:le,isFinished:!!e.finishTime}),Se.createElement("div",{className:pS()},Se.createElement(qN,{fee:D(String(lt),2,2),time:Un(ni(e.steps)),steps:X}),Se.createElement(hr,{from:{price:{value:D(e.inputAmount,6,6),usdValue:Wp,realUsdValue:uC,realValue:e.inputAmount},token:{displayName:K[0]?.from.token.displayName||"",image:K[0]?.from.token.image},chain:{image:K[0]?.from.chain.image,displayName:K[0]?.from.chain.displayName||""}},to:{price:{value:D(Me,6,6),usdValue:Dn,realUsdValue:Mp,realValue:Me||""},token:{displayName:K[X-1]?.to.token.displayName||"",image:K[X-1]?.to.token.image},chain:{image:K[X-1]?.to.chain.image,displayName:K[X-1]?.to.chain.displayName||""}},percentageChange:D(Ja,2,2),warningLevel:jt(Ja??0)})),Se.createElement("div",{className:uS()},Se.createElement(gp,{variant:"title",size:"small"},zt.t("Swaps steps"))),Se.createElement(HN,{size:8}),Se.createElement(sS,null,K.map((Le,Lt)=>{let Lp=Lt,$n=e.steps[Lt]&&bS(e.steps[Lt]),mC=$n==="error"||$n==="in-progress"||$n==="warning"||$n==="completed"&&Lt===K.length-1;return Se.createElement(GN,{className:"widget-swap-details-step-item-container",key:Lp,step:Le,type:"swap-progress",ref:h,state:$n,hasSeparator:Lt!==0,tabIndex:Lp,isFocused:mC,tooltipContainer:W()})}))),Se.createElement(lp,{isOpen:g,state:C,switchNetworkModalState:S,onClose:Q,onCancel:r,onDelete:n,message:se.detailedMessage.content,swap:e,handleSwitchNetwork:G}),Se.createElement(pp,{open:!!w,diagnosisUrl:xo,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:D(Me,6,6),usdValue:Dn,realUsdValue:Mp,realValue:Me||"",percentageChange:D(Ja,2,2),token:{displayName:K[X-1]?.to.token.displayName||"",image:K[X-1]?.to.token.image},chain:{image:K[X-1]?.to.chain.image},description:dC}))}i(Sp,"SwapDetails");import{i18n as Ha}from"@lingui/core";import{Divider as _S,NotFound as RN,Skeleton as Kr,Typography as qa}from"@rango-dev/ui";import xe from"react";import{i18n as XN}from"@lingui/core";import{Divider as YN,Skeleton as ZN,Typography as JN}from"@rango-dev/ui";import be from"react";import{css as Mt,styled as Cp}from"@rango-dev/ui";var LS=Cp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Vr=Cp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Qa=Cp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),G7=Mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),V7=Mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),K7=Mt({paddingTop:"$15",display:"flex"}),j7=Mt({padding:"$15 $0"}),X7=Mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),Y7=Mt({paddingBottom:"$10"}),Z7=Mt({display:"flex",justifyContent:"start",alignItems:"center"}),J7=Mt({paddingTop:"$5",display:"flex",alignItems:"center"}),R7=Mt({display:"flex",alignItems:"center"}),e9=Mt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),PS=Mt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function kp(){return be.createElement(LS,null,be.createElement(Sr,{type:"swap-preview"}),be.createElement("div",{className:"swaps-steps"},be.createElement(JN,{variant:"title",size:"small"},XN.t("Swaps steps"))),be.createElement(be.Fragment,null,be.createElement(Vr,null,be.createElement(Ft,{separator:!1}),be.createElement("div",{className:PS()},be.createElement(YN,{direction:"horizontal",size:20}),be.createElement(ZN,{height:22,variant:"rectangular"}))),be.createElement(Qa,null),be.createElement(Vr,null,be.createElement(Ft,{separator:!1})),be.createElement(Qa,null),be.createElement(Vr,null,be.createElement(Ft,{separator:!1})),be.createElement(Qa,null),be.createElement(Vr,null,be.createElement(Ft,{separator:!1}))))}i(kp,"LoadingSwapDetails");function DS(t){let{requestId:e,showSkeleton:o}=t;return xe.createElement(ie,{header:{title:Ha.t("Swap Details"),suffix:xe.createElement(uo,null)}},o&&xe.createElement(iS,null,xe.createElement("div",{className:jo()},xe.createElement(qa,{variant:"label",size:"large",color:"neutral700"},`${Ha.t("Request ID")}`),xe.createElement("div",{className:Fa()},xe.createElement(qa,{variant:"label",size:"small",color:"neutral700"},xe.createElement(Kr,{width:60,height:10,variant:"rounded"})),xe.createElement(_S,{direction:"horizontal",size:4}),xe.createElement(Kr,{width:16,height:16,variant:"rectangular"}),xe.createElement(_S,{direction:"horizontal",size:4}),xe.createElement(Kr,{width:16,height:16,variant:"rectangular"}))),xe.createElement("div",{className:jo()},xe.createElement(qa,{className:cS(),variant:"label",size:"large",color:"neutral700"},xe.createElement(Kr,{width:60,height:10,variant:"rounded"})),xe.createElement(qa,{variant:"label",size:"small",color:"neutral700"},xe.createElement(Kr,{width:60,height:10,variant:"rounded"}))),xe.createElement(kp,null)),!o&&xe.createElement(lS,null,xe.createElement(RN,{title:Ha.t("Not found"),description:Ha.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(DS,"SwapDetailsPlaceholder");function $S(){let{manager:t,state:e}=o0(),o=!e.loadedFromPersistor,n=wt(t),{requestId:r}=r0(),a=Ke(),{fetchStatus:s}=k();if(!r)return Tp.createElement(n0,{containerStyles:{margin:"20px"},type:"error",title:e0.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:f})=>f.requestId===r):void 0,p=i(()=>{if(l?.id){let f=t?.get(l.id);f&&t0(f)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),d=l?.swap;return!d||c?Tp.createElement(DS,{requestId:r,showSkeleton:c}):Tp.createElement(Sp,{swap:d,requestId:r,onCancel:p,onDelete:u})}i($S,"SwapDetailsPage");import{i18n as FS}from"@lingui/core";import{Divider as i0,getCategoriesCount as a0,SelectableCategoryList as s0,styled as US,Typography as l0,Wallet as c0,WalletState as p0}from"@rango-dev/ui";import{useWallets as u0}from"@rango-dev/wallets-react";import Qt,{useState as OS}from"react";var d0=US("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),m0=US(ce,{textAlign:"center"});function zS(){let{fetchStatus:t}=k(),[e,o]=OS("ALL"),n=k().blockchains(),{config:r}=k(),{state:a}=u0(),{checkHasDeepLink:s,getWalletLink:c}=ln(),[l,p]=OS(),u=oe.use.isActiveTab(),{list:d}=xt(),f=xu(d,n),g=a0(f)!==1,m=Eu(d,e),C=i(y=>{au(d,r.multiWallets)||p(y)},"handleWalletItemClick");return Qt.createElement(ie,{header:{title:FS.t("Connect Wallets")}},Qt.createElement(m0,null,g&&Qt.createElement(Qt.Fragment,null,Qt.createElement(s0,{setCategory:o,category:e,blockchains:f,isLoading:t==="loading"}),Qt.createElement(i0,{size:24})),Qt.createElement(l0,{variant:"title",size:"xmedium",align:"center"},FS.t("Choose a wallet to connect.")),Qt.createElement(d0,null,m.map((y,S)=>{let w=a(y.type).namespaces,v=`wallet-${S}-${y.type}`,N=cs(y,w);return Qt.createElement(c0,{key:v,...y,state:N?p0.PARTIALLY_CONNECTED:y.state,hasDeepLink:s(y.type),link:c(y.type),container:W(),onClick:()=>C(y),isLoading:t==="loading",disabled:!u})}),Qt.createElement(tr,{id:"widget-state-full-connect-modal",wallet:l,onClose:()=>{p(void 0)}}))))}i(zS,"WalletsPage");function QS(){return im(),Xs(),f0([{path:O.home,element:qe.createElement(iy,null)},{path:O.routes,element:qe.createElement(py,null)},{path:O.fromSwap,children:[{index:!0,element:qe.createElement(Ba,{type:"source"})},{path:O.blockchains,element:qe.createElement(Ea,{type:"source"})}]},{path:O.toSwap,children:[{index:!0,element:qe.createElement(Ba,{type:"destination"})},{path:O.blockchains,element:qe.createElement(Ea,{type:"destination"})}]},{path:O.settings,children:[{index:!0,element:qe.createElement(Fy,null)},{path:O.languages,element:qe.createElement(sy,null)},{path:O.exchanges,element:qe.createElement(Vc,{sourceType:"Exchanges"})},{path:O.bridges,element:qe.createElement(Vc,{sourceType:"Bridges"})},{path:O.customTokens,children:[{index:!0,element:qe.createElement(ah,null)},{path:O.addCustomTokens,children:[{index:!0,element:qe.createElement(Rm,null)},{path:O.blockchains,element:qe.createElement(Ea,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:O.swaps,children:[{index:!0,element:qe.createElement(Eh,null)},{path:O.swapDetails,element:qe.createElement($S,null)}]},{path:O.wallets,element:qe.createElement(zS,null)},{path:O.confirmSwap,element:qe.createElement(qg,null)}])}i(QS,"AppRoutes");import{useQueueManager as W0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as M0}from"rango-sdk";import{useContext as L0,useEffect as xp,useState as eC}from"react";import{Provider as C0}from"@rango-dev/wallets-react";import Ga,{createContext as k0,useEffect as KS,useMemo as T0,useRef as jS}from"react";import{useEffect as g0}from"react";function HS(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(HS,"hashProviders");function wp(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=k(),a=n();return g0(()=>{o(),r()},[HS(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(wp,"useWalletProviders");import{legacyFormatAddressWithNetwork as h0,legacyReadAccountAddress as qS}from"@rango-dev/wallets-core/legacy";import{Events as Pn}from"@rango-dev/wallets-react";import{isEvmBlockchain as y0}from"rango-sdk";function GS(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=k(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(y0).map(m=>m.name),u=i((m,C)=>{let[y,,S,T,w]=m,v={walletType:y,network:T.network??void 0,accounts:S};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let N=ls(y,S,p,C.supportedChainNames,w.isContractWallet);N.length&&e(N,w.namespace,T.derivationPath)},"onAccountsEvent"),d=i((m,C,y,S,T)=>{if(C===Pn.ACCOUNTS){let w=Hn(T.supportedBlockchains);y&&u([m,C,y,S,T],{supportedChainNames:w})}C===Pn.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),C===Pn.NAMESPACE_DISCONNECTED&&n(m,y)},"handleUpdatesForHub"),f=i((m,C,y,S,T)=>{if(C===Pn.ACCOUNTS){let w=Hn(T.supportedBlockchains),v=[],N=[];if(y?.forEach(b=>{let{network:E}=qS(b);p.includes(E)?v.push(b):N.push(b)}),r.filter(b=>b.walletType===m).map(b=>h0(b.address,b.chain)).length>0){if(v.length>0){let b=ls(m,v,p,w,T.isContractWallet);a(m,{chains:b.map(E=>E.chain)})}N.length>0&&a(m,{chains:N.map(b=>{let{network:E}=qS(b);return E})})}y?u([m,C,y,S,T],{supportedChainNames:w}):(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((m,C,y,S,T)=>{if(C===Pn.CONNECTED&&y){let w={walletType:m,network:S.network??void 0,accounts:S.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(C===Pn.NETWORK&&y){let w={walletType:m,network:y,accounts:S.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((m,C,y,S,T)=>{T.isHub?d(m,C,y,S,T):f(m,C,y,S,T),h(m,C,y,S,T)},"handler")}}i(GS,"useUpdates");import{LegacyEvents as S0}from"@rango-dev/wallets-core/legacy";function VS(t,e){let[o,n,r,a,s]=e;n!==S0.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(VS,"propagateEvents");var Va=k0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function w0(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}=wp(s.wallets,c),p=jS(),u=jS(),{handler:d}=GS({onConnectWalletHandler:p,onDisconnectWalletHandler:u});KS(()=>{n().catch(console.log)},[]),KS(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=oe.use.isActiveTab(),h=T0(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Ga.createElement(Va.Provider,{value:h},Ga.createElement(C0,{allBlockChains:a,providers:l,onUpdateState:(g,m,C,y,S)=>{let T=[g,m,C,y,S];d(...T),t.onUpdateState&&VS(t.onUpdateState,T)},autoConnect:!!f,configs:{wallets:s.wallets}},t.children))}i(w0,"Main");function Ka(t){let{config:e,...o}=t;return Ga.createElement(Gu,{config:e},Ga.createElement(w0,{...o,config:e}))}i(Ka,"WidgetWallets");import{globalCss as v0}from"@rango-dev/ui";var XS=i(()=>v0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");import{useWallets as b0}from"@rango-dev/wallets-react";import{useEffect as x0,useRef as E0}from"react";function YS(){let{connect:t,state:e}=b0(),o=E0({}),{fetchStatus:n}=k(),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(YS,"useForceAutoConnect");import{isApprovalTX as I0,RouteEventType as ZS,StepEventType as JS,StepExecutionEventStatus as A0,WidgetEvents as ja}from"@rango-dev/queue-manager-rango-preset";import{useEffect as RS}from"react";function vp(){let t=Ae.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=k();RS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===JS.TX_EXECUTION&&s.status===A0.TX_SENT&&!I0(c)||s.type===JS.SUCCEEDED){let u=[],d=l.wallets[c?.fromBlockchain];if(d){let f=e.find(h=>h.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&h.walletType===d.walletType&&h.chain===c?.fromBlockchain);f&&u.push(f)}if(c?.fromBlockchain!==c?.toBlockchain){let f=l.wallets[c?.toBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let f=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(m=>f.some(C=>C.blockchain===m.blockchain&&C.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&C.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return Ce.on(ja.StepEvent,r),()=>Ce.off(ja.StepEvent,r)},[Ce,e]),RS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===ZS.FAILED||s.type===ZS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return Ce.on(ja.RouteEvent,r),()=>Ce.off(ja.RouteEvent,r)},[Ce])}i(vp,"useSubscribeToWidgetEvents");import{useManager as N0}from"@rango-dev/queue-manager-react";import{useEffect as B0}from"react";function bp(){let{isSynced:t,syncNotifications:e}=Ae(),{manager:o,state:n}=N0();B0(()=>{Ae.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(wt(o))},[Ae.persist.hasHydrated(),n.loadedFromPersistor,t])}i(bp,"useSyncNotifications");function Ep(){YS(),XS(),vp(),bp();let t=k().blockchains(),{canSwitchNetworkTo:e}=Xi(),[o,n]=eC(null),[r,a]=eC(),s=L0(Va),c=t.filter(M0);xp(()=>()=>nm(),[]),xp(()=>()=>rm(),[]),W0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),xp(()=>(Mo.init(),Ae.persist.hasHydrated()||Ae.persist.rehydrate(),s.onConnectWallet(l=>{n(p=>{if(!p||p.walletType!==l.walletType)return l;let u={...p};return l.network&&(u.network=l.network),l.accounts&&(u.accounts=l.accounts),u})}),s.onDisconnectWallet(l=>{a(l),n(p=>l===p?.walletType?null:p)}),Mo.destroy),[])}i(Ep,"useBootstrap");import{styled as P0}from"@rango-dev/ui";var tC=P0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Xo(){Ep();let{config:t}=k(),{activeTheme:e}=po(t?.theme||{}),{activeLanguage:o}=ko();return Ip.createElement(_0,{language:o},Ip.createElement(tC,{id:"swap-container",className:e()},Ip.createElement(QS,null)))}i(Xo,"Main");import{setSolanaSignerConfig as tB}from"@rango-dev/signer-solana";import Np,{useEffect as Bp,useMemo as oB}from"react";function oC(){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(oC,"useFetchApiConfig");import{useState as D0}from"react";var $0=i(()=>{let[t,e]=D0(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=iu(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),nC=$0;import{checkWaitingForNetworkChange as F0,makeQueueDefinition as O0}from"@rango-dev/queue-manager-rango-preset";import{Provider as U0}from"@rango-dev/queue-manager-react";import{useWallets as z0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Q0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as H0}from"rango-types";import q0,{useMemo as G0}from"react";function V0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=z0(),c=G0(()=>O0({API_KEY:t.apiKey||qt("API_KEY"),BASE_URL:qt("BASE_URL"),emitter:{emit:Ce.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=k(),u=l(),d={blockchains:p.map(w=>({accounts:[w],name:w.chain}))},f=i(async(w,v)=>a(w,v.network,v)?await r(w,[v]):void 0,"switchNetwork"),h=i(w=>!!s(w).mobileWallet,"isMobileWallet"),g=u.filter(w=>w.enabled).reduce((w,v)=>(w[v.name]=v,w),{}),m=u.filter(H0),C=i(w=>{let{supportedChains:v}=s(w);return Hn(v)},"getSupportedChainNames"),y=e(),S={meta:{blockchains:g,evmBasedChains:m,evmNetworkChainInfo:Q0(m),getSupportedChainNames:C},getSigners:o,wallets:d,providers:y,switchNetwork:f,canSwitchNetworkTo:a,state:n,isMobileWallet:h},T=oe.use.isActiveTab();return q0.createElement(U0,{queuesDefs:[c],context:S,onPersistedDataLoaded:w=>{F0(w)},isPaused:!T},t.children)}i(V0,"QueueManager");var rC=V0;import{useManager as Z0}from"@rango-dev/queue-manager-react";import J0,{createContext as R0,useContext as eB}from"react";function iC(){let{findToken:t}=k(),e=k().blockchains(),o=k().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=U()();return i(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:f,toToken:h,requestAmount:g}=p,m={blockchains:e,tokens:o};if(u!==void 0){let C=e.find(y=>y.name===u)??null;n(C)}if(d!==void 0){let C=d?t(d)??null:null;r({meta:m,token:C})}if(f!==void 0){let C=e.find(y=>y.name===f)??null;a(C)}if(h!==void 0){let C=h?t(h)??null:null;s({meta:m,token:C})}g!==void 0&&c(g)},"updateQuoteInputs")}i(iC,"useUpdateQuoteInputs");import{cancelSwap as K0,getCurrentNamespaceOfOrNull as j0,getCurrentStep as X0,getRelatedWalletOrNull as Y0}from"@rango-dev/queue-manager-rango-preset";var Xa=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return wt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Ii(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&K0(o)}getCurrentStepInfo(e){let o=X0(e);return{step:o,wallet:o?Y0(e,o):null,network:o?j0(e,o)?.network:null}}};var aC=R0(void 0);function Ap(t){let{manager:e}=Z0(),o=oe.use.isActiveTab(),n=U().use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=k(),l=new Xa(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=k(),u=Cu(a()),d=k().blockchains(),f=k().tokens(),h=k().swappers(),g=k().fetchStatus,m=ko().resetLanguage,C=Ae().getNotifications(),y=Ae().clearNotifications,S=iC(),{fromBlockchain:T,toBlockchain:w,fromToken:v,toToken:N,inputAmount:B}=U()(),b={isActiveTab:o,setCurrentTabAsActive:Mo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async E=>c(E)},meta:{blockchains:d,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:m,notifications:{list:C,clearAll:y},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:v?{symbol:v.symbol,blockchain:v.blockchain,address:v.address}:null,toBlockchain:w?.name??null,toToken:N?{symbol:N.symbol,blockchain:N.blockchain,address:N.address}:null,requestAmount:B},updateQuoteInputs:S}};return J0.createElement(aC.Provider,{value:b},t.children)}i(Ap,"WidgetInfo");function sC(){let t=eB(aC);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(sC,"useWidget");function _n(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=oC(),{handleLoadCustomFont:a}=nC();return Bp(()=>{r().catch(console.log)},[]),Bp(()=>{n&&a(n)},[n]),oB(()=>{Iu({API_KEY:o?.apiKey||Jr,BASE_URL:o?.apiUrl||Xp})},[o.apiKey,o.apiUrl]),Bp(()=>{t.config?.signers?.customSolanaRPC&&tB("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Np.createElement(Ka,{config:o,onUpdateState:e},Np.createElement(rC,{apiKey:o.apiKey},Np.createElement(Ap,null,t.children)))}i(_n,"WidgetProvider");function lC(t){let e=t.config?.externalWallets;return Ya.createElement(xi,null,e?Ya.createElement(Xo,null):Ya.createElement(_n,{config:t.config??Ro},Ya.createElement(Xo,null)))}i(lC,"Refuel");import Za from"react";function cC(t){let e=t.config?.externalWallets;return Za.createElement(xi,null,e?Za.createElement(Xo,null):Za.createElement(_n,{config:t.config??Ro},Za.createElement(Xo,null)))}i(cC,"Widget");function pC(){let{on:t,off:e}=Ce;return{on:t,off:e}}i(pC,"useWidgetEvents");var Xee={DerivationPath:Jn,Namespaces:Yn,Detached:Zn,isOnDerivationPath:er,isOnNamespace:Rn,isOnDetached:Eo};export{Cee as EventSeverity,nn as MainEvents,Nee as Networks,Mee as PendingSwapNetworkStatus,fs as QuoteEventTypes,lC as Refuel,kee as RouteEventType,ns as SUPPORTED_FONTS,Xee as StatefulConnect,Tee as StepEventType,wee as StepExecutionBlockedEventStatus,vee as StepExecutionEventStatus,Cd as SwapModeContext,tt as UI_ID,hs as UiEventTypes,gs as WalletEventTypes,Iee as WalletEvents,Bee as WalletTypes,cC as Widget,nn as WidgetEvents,_n as WidgetProvider,Ka as WidgetWallets,pl as customizedThemeTokens,xee as readAccountAddress,Yo as useStatefulConnect,xt as useWalletList,Xi as useWallets,sC as useWidget,pC as useWidgetEvents,hk as widgetEventEmitter};
1
+ var fC=Object.defineProperty;var i=(t,e)=>fC(t,"name",{value:e,configurable:!0});import{EventSeverity as See,RouteEventType as Cee,StepEventType as kee,StepExecutionBlockedEventStatus as Tee,StepExecutionEventStatus as wee}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as bee}from"@rango-dev/wallets-core/legacy";import{useWallets as Yi,Events as Eee}from"@rango-dev/wallets-react";import{Networks as Aee,WalletTypes as Nee}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as Wee}from"rango-types";import{Divider as MT}from"@rango-dev/ui";import lo,{useEffect as LT,useRef as PT,useState as Sd}from"react";import{WalletState as gC}from"@rango-dev/ui";import{useWallets as hC}from"@rango-dev/wallets-react";import{useReducer as yC}from"react";function Pp(t){return!!t.derivationPath}i(Pp,"isStateOnDerivationPathStep");function _p(t){return!!t.namespace}i(_p,"isStateOnNamespace");var Zr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Dp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return Zr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Zr;default:throw new Error("Action hasn't been defined.")}}i(Dp,"reducer");function Yo(){let{state:t,disconnect:e,connect:o}=hC(),[n,r]=yC(Dp,Zr),a=i(async(d,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(d,g),{status:"connected"}}catch(g){let m=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:g})}},"runConnect"),s=i(async(d,f)=>{if(d.state===gC.DISCONNECTED){let g=!!d.isHub,m=g?d.properties?.find(y=>y.name==="namespaces")?.value:d.needsNamespace,C=g?d.properties?.find(y=>y.name==="derivationPath")?.value:d.needsDerivationPath;if(!m?.data?.length)return await a(d.type,void 0,f);if(m?.data.length&&m.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(m?.data.length===1&&m.data[0]){if(C){let y=m.data[0];return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y.value}}),{status:"derivation-path"}}return await a(d.type,m?.data?.map(y=>({namespace:y.value})),f)}}if(d.isHub){let g=d.properties?.find(m=>m.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(d,f)=>{let h=!!d.isHub,g=h?d.properties?.find(T=>T.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(T=>T.name==="derivationPath")?.value:d.needsDerivationPath,C=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(C&&m)return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y}}),{status:"derivation-path"};if(!_p(n))throw new Error("Something went wrong on handling namespace. Please retry.");let S=f.map(T=>({namespace:T}));return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:S??null}}),{status:"Detached"}},"handleNamespace"),l=i(async(d,f)=>{if(!f)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Pp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let h=n.derivationPath.providerType,m=[{namespace:n.derivationPath.namespace,derivationPath:f}],y=!!d.isHub?d.properties?.find(S=>S.name==="namespaces")?.value:d.needsNamespace;return y?.data&&y.data.length>1?(r({type:"detached",payload:{targetWallet:d,selectedNamespaces:m??null,derivationPath:f}}),{status:"Detached"}):await a(h,m)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let f=t(d.type);return f.connected||f.connecting?(await e(d.type),Eo(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(Yo,"useStatefulConnect");import{WalletState as bs}from"@rango-dev/ui";import{useWallets as Nk}from"@rango-dev/wallets-react";import{detectMobileScreens as Bk,KEPLR_COMPATIBLE_WALLETS as Wk,WalletTypes as Xn}from"@rango-dev/wallets-shared";import{useCallback as Mk,useEffect as Lk}from"react";import wk,{createContext as vk,useContext as bk,useEffect as xk,useRef as Ek}from"react";import{create as kk}from"zustand";import{persist as Tk}from"zustand/middleware";import{allProviders as SC}from"@rango-dev/provider-all";var ts=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},Zo=new ts;import{defineVersions as Fp,pickVersion as Op,Provider as os}from"@rango-dev/wallets-core";function Up({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=zp(a);return s instanceof os?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 os?o.push(Fp().version("1.0.0",n).build()):o.push(Fp().version("0.0.0",n).build())}),o}return t}i(Up,"matchAndGenerateProviders");function zp(t){try{return Op(t,"1.0.0")[1]}catch{return Op(t,"0.0.0")[1]}}i(zp,"pickProviderVersionWithFallbackToLegacy");function Qp(t){return t.map(o=>zp(o)).map(o=>o instanceof os?o.id:o.config.type)}i(Qp,"configWalletsToWalletName");function Jr(t,e){return e.find(o=>o.name===t)?.displayName}i(Jr,"getBlockchainDisplayNameFor");function yt(t,e){return e.find(o=>o.name===t)?.shortName}i(yt,"getBlockchainShortNameFor");function Hp(t,e){return e.find(o=>o.name===t)?.logo}i(Hp,"getBlockchainImage");function Un(t,e){return e.find(o=>o.id===t)?.title}i(Un,"getSwapperDisplayName");function Io(t,e){return e.find(o=>o.name===t)??null}i(Io,"findBlockchain");function ns(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(ns,"isTokenNative");function St(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(St,"createTokenHash");function Jo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Jo,"isValidTokenAddress");function zn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=St(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{let p=o.tokensMapByBlockchainName[l];!c.has(l)&&p&&a(p)})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded&&o.tokensMapByBlockchainName[c]?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=St(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(zn,"matchTokensFromConfigWithMeta");function Rr(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(Rr,"getSupportedBlockchainsFromConfig");function Gp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Gp,"makeProvidersOptionsFromConfig");var Ro={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"}},CC={clientUrl:void 0},kC={liquiditySources:void 0};function qp(t){let e=Gp(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return SC(o).map(a=>a())}i(qp,"generateProviders");var Vp=i((t,e,o)=>{let n=qp({...Ro,...t});return{config:{...Ro,...t},iframe:CC,campaignMode:kC,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=zn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=zn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});Zo.set("supportedSourceTokens",l),Zo.set("supportedDestinationTokens",p),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=qp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Gp(a);return Up({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Kp}from"rango-types";var jp=[Kp.EVM,Kp.SOLANA],ei="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as _C}from"rango-sdk";import{UI_ID as TC}from"@rango-dev/ui";var ti="c6381a79-2817-4602-83bf-6a641a409e32",Xp="https://api.rango.exchange",Yp="https://explorer.rango.exchange",tt={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...TC};import{BlockchainCategories as AC,WalletState as pt}from"@rango-dev/ui";import{legacyReadAccountAddress as NC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as BC,getCosmosExperimentalChainInfo as WC,isEvmAddress as MC,KEPLR_COMPATIBLE_WALLETS as gW,Networks as yu}from"@rango-dev/wallets-shared";import tn from"bignumber.js";import{isCosmosBlockchain as LC}from"rango-types";import wC from"bignumber.js";var ue=new wC(0);import{WalletTypes as vC}from"@rango-dev/wallets-shared";var Ao="~",Zp=[vC.LEAP];import{BlockchainCategories as is,WalletState as IC}from"@rango-dev/ui";import{TransactionType as oi}from"rango-sdk";var Jp="Roboto",rs=[{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 en(t){return Array.from(new Set(t))}i(en,"removeDuplicateFrom");function ni(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(ni,"debounce");function ct(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(ct,"containsText");function tu(t,e){return t.toLowerCase()===e.toLowerCase()}i(tu,"exactText");function ou(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(ou,"startWithText");var W=i(()=>document.getElementById(tt.SWAP_BOX_ID),"getContainer"),No=i(()=>document.getElementById(tt.EXPANDED_BOX_ID),"getExpanded");function nu(t,e,o){let n=!!e&&tu(e,t),r=!!o&&tu(o,t);return n!==r?n?-1:1:0}i(nu,"compareExactMatchText");function as(t,e,o){let n=!!e&&ct(e,t),r=!!o&&ct(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(as,"compareContainsText");function ss(t,e,o){let n=!!e&&ou(e,t),r=!!o&&ou(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ss,"compareStartWithText");function ru(t,e,o){if(!o)return 0;let n=nu(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=nu(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ss(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=as(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ss(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=as(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ss(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=as(o,t.address,e.address);if(r!==0)return r}return 0}i(ru,"compareWithSearchFor");var ri=i((t,e)=>{switch(e){case is.ALL:return!0;case is.UTXO:return t===oi.TRANSFER;case is.OTHER:return t!==oi.TRANSFER&&t!==oi.COSMOS&&t!==oi.EVM;default:return t===e}},"isBlockchainTypeInCategory"),iu=i(t=>rs.find(o=>o.value===t)?.url,"getFontUrlByName");function au(t,e){let o=!!t.find(n=>n.state===IC.CONNECTED);return e===!1&&o}i(au,"isSingleWalletActive");function su(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(su,"memoizedResult");import{BigNumber as gu}from"bignumber.js";function lu(t){return t.replace(/^0+(?=\d)/g,"")}i(lu,"removeLeadingZeros");function cu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(cu,"ensureLeadingZeroForDecimal");function pu(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(pu,"formatThousandsWithCommas");function uu(t){return t.replace(/\s+/g,"-")}i(uu,"replaceSpacesWithDash");function du(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(du,"stripTrailingZeros");function ii(t){return/^0+(?:\.0+)?$/.test(t)}i(ii,"isZeroValue");function mu(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(mu,"isValidCurrencyFormat");function fu(t){return/\d+$/.test(t)}i(fu,"isColorKeyOverridden");var Qn=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),D=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new gu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new gu(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var ai=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Pt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Hn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function hu(t){return ii(t)?"0":du(t)}i(hu,"sanitizeInputAmount");function qn(t){return t.connected?pt.CONNECTED:t.connecting?pt.CONNECTING:t.installed?pt.DISCONNECTED:pt.NOT_INSTALLED}i(qn,"mapStatusToWalletState");function Su(t,e,o,n){return o.filter(r=>!Zp.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:d,properties:f,isHub:h}=e(r),g=en(u.map(C=>C.type)),m=qn(t(r));return{title:a,image:s,link:BC(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:d,properties:f,isHub:h}})}i(Su,"mapWalletTypesToWalletInfo");function Gn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Gn,"walletAndSupportedChainsNames");function cs(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(f=>f.chain===l)){let f={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(f)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=NC(l),d=c.length>0,f=c.includes(u),h=u===yu.Unknown;if(d&&!f&&!h)return;let m=u===yu.Unknown&&MC(p);if(h&&!m)return;o.includes(u)||m?r?s(u,p.toLowerCase(),r):c.filter(S=>o.includes(S)).forEach(S=>{s(S,p.toLowerCase())}):s(u,p)}),a}i(cs,"prepareAccountsForWalletStore");function Bo(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((p,u)=>{let d=p.from.blockchain,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(Bo,"getQuoteChains");function Vn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Vn,"isAccountAndWalletMatched");var Cu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ls(n.usdValue,n.decimals):ue.toFixed();return o.plus(r)},new tn(ue));return PC(e.toString())},"calculateWalletUsdValue");function PC(t){let e=t.toString().split(".");return e[0]&&(e[0]=pu(e[0])),e.join(".")}i(PC,"numberWithThousandSeparator");var ci=i((t,e)=>{let o=WC(Object.entries(t).map(([,n])=>n).filter(LC));return o&&!!o[e]?.experimental},"isExperimentalChain");function ls(t,e){return new tn(t).shiftedBy(-e).toFixed()}i(ls,"representAmountInNumber");function pi(t){if(!t)return null;let e=ls(t.amount,t.decimals),o=t.usdValue?ls(t.usdValue,t.decimals):null,n=D(e,8,8),r=o?D(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(pi,"formatBalance");function ku(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new tn(t.usdValue).shiftedBy(-t.decimals):ue,n=e&&e.usdValue?new tn(e.usdValue).shiftedBy(-e.decimals):ue;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new tn(t.amount).shiftedBy(-t.decimals):ue,n=e&&e.amount?new tn(e.amount).shiftedBy(-e.decimals):ue;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(ku,"compareTokenBalance");function Ht(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Ht,"areTokensEqual");function Tu(t,e){return t.map(o=>({isPartiallyConnected:ps(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===pt.CONNECTED&&!n.isPartiallyConnected)-+(o.state===pt.CONNECTED&&!o.isPartiallyConnected)||+(n.state===pt.CONNECTED)-+(o.state===pt.CONNECTED)||+(n.state===pt.DISCONNECTED||n.state===pt.CONNECTING)-+(o.state===pt.DISCONNECTED||o.state===pt.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(Tu,"sortWalletsBasedOnConnectionState");function ao(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(ao,"getConciseAddress");function wu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(wu,"getAddress");var vu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function bu(t){return t.map(e=>e.state).join("-")}i(bu,"hashWalletsState");function xu(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(xu,"filterBlockchainsByWalletTypes");function Eu(t,e){return e===AC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(ri(n,e))return!0;return!1})}i(Eu,"filterWalletsByCategory");function ps(t,e){if(!t.isHub||!t.needsNamespace||t.state!==pt.CONNECTED)return!1;let n=t.needsNamespace.data.filter(r=>!r.unsupported);return t.needsNamespace.selection==="multiple"&&n.some(r=>!e?.get(r.value)?.connected)}i(ps,"checkIsWalletPartiallyConnected");var us={API_KEY:ti};function qt(t){return us[t]||""}i(qt,"getConfig");function Iu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),us=e,us}i(Iu,"initConfig");var Au=20,Nu=25,ds="theme-widget",ms=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Ht(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>Ht(a,t));let r=n.isExcluded;return!r&&!o||r&&o}}}return o},"isTokenExcludedInConfig"),fs=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Bu=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var ui,ut=i(()=>ui||(ui=new _C(qt("API_KEY"),qt("BASE_URL")),ui),"httpService");import{i18n as Mu}from"@lingui/core";var di=[.5,1,3],mi=1,on=5,Kn=30,fi=0;var Ze=(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))(Ze||{});import{WidgetEvents as Wu}from"@rango-dev/queue-manager-rango-preset";var gs=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(gs||{}),hs=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(hs||{}),ys=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(ys||{}),nn=(a=>(a[a.RouteEvent=Wu.RouteEvent]="RouteEvent",a[a.StepEvent=Wu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(nn||{});function gi(t,e){let o=t.map(a=>a.swapperGroup),n=[];return en(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(c=>c.swapperGroup===a);if(s){let c=!0;o&&(c=o.some(l=>l===s.swapperGroup)),c&&s.types.map(l=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:l,selected:!e.includes(s.swapperGroup)})})}}),n}i(gi,"getUniqueSwappersGroups");function Lu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Lu,"sortLiquiditySourcesByGroupTitle");function ot(t,e){return e?.[t]==="hidden"}i(ot,"isFeatureHidden");function rn(t,e){return e?.[t]==="enabled"}i(rn,"isRoutingEnabled");var Pu=i((t,e,o)=>ot("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function an(t){return t==fi?{type:"error",message:Mu.t("Slippage must be greater than or equal to 0.01")}:t>on&&t<=Kn?{type:"warning",message:Mu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(an,"getSlippageValidation");var _u=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let l=Rr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>jp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",d=Zo.get(u);d?.length||(d=zn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Zo.set(u,d)),d=Pu(d,s,a.features);let f=e().blockchains({type:o.type});return d.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(m=>m.name===g.blockchain)?!1:o.searchFor?!!(ct(g.symbol,o.searchFor)||ct(g.address||"",o.searchFor)||ct(g.name||"",o.searchFor)):!0).sort((g,m)=>{let C=e().isTokenPinned(g,o.type),y=e().isTokenPinned(m,o.type);if(C!==y)return C?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(g),B=o.getBalanceFor(m),b=ku(A,B);if(b!==0)return b}let S=l.get(g.blockchain),T=l.get(m.blockchain),v=ns(g,S),w=ns(m,T);if(v!==w)return v?-1:1;if(g.isPopular!==m.isPopular)return g.isPopular?-1:1;if(o.searchFor){let A=ru(g,m,o.searchFor);if(A)return A}return g.isSecondaryCoin!==m.isSecondaryCoin?g.isSecondaryCoin?1:-1:S&&T?S.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=St(o),s=n.get(a);return s||(s=r.find(c=>St(c)===a)),s},findNativeToken:o=>{let n=o.feeAssets[0];return e().findToken({blockchain:o.name,address:n.address,symbol:n.symbol})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Ht(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(Lu)},fetch:async()=>{try{let{routing:o}=e().config,n=rn("enableCentralizedSwappers",o),r=await ut().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],p=r.popularTokens,u=r.swappers.filter(h=>h.enabled),d=new Set;r.tokens.forEach(h=>{d.add(h.blockchain),l.push(h)}),r.blockchains.sort((h,g)=>h.sort-g.sort).forEach(h=>{h.enabled&&d.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let g=St(h);c[h.blockchain]||(c[h.blockchain]=[]),s.set(g,h),c[h.blockchain]?.push(g)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as DC,Catalonia as $C,Chinese as Du,Denmark as FC,English as OC,Finland as UC,French as zC,German as QC,Greece as HC,Hungary as qC,India as GC,Indonesian as VC,Italian as KC,Japanese as jC,Korea as XC,Lithuania as YC,Malay as ZC,Netherlands as JC,Pakistan as RC,Philippines as ek,Poland as tk,Portuguese as ok,Russian as nk,SaudiArabia as rk,Serbia as ik,Slovakia as ak,SouthAfrica as sk,Spanish as lk,Swahili as ck,Swedish as pk,Thai as uk,Turkish as dk,Ukrainian as mk,Vietnamese as fk}from"@rango-dev/ui";var $u=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:sk},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:rk},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:DC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:$C},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Du},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Du},{title:"Danish",label:"Dansk",local:"da",SVGFlag:FC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:JC},{title:"English",label:"English",local:"en",SVGFlag:OC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:ek},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:UC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:zC},{title:"German",label:"Deutsch",local:"de",SVGFlag:QC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:HC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:GC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:qC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:VC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:KC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:jC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:XC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:YC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:ZC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:tk},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:ok},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:nk},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:ik},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:ak},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:lk},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:ck},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:pk},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:uk},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:dk},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:mk},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:RC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:fk}],sn="en";var Fu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:mi,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],quoteTokensRate:"default",changeQuoteTokensRate:()=>t(o=>({quoteTokensRate:o.quoteTokensRate==="default"?"reversed":"default"})),addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,c)=>{let l=s===o,p=c<=9;return l&&p}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=en(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||sn},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||sn}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=Rr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import vs from"bignumber.js";import gk from"mitt";var ke=gk(),hk={on:ke.on,off:ke.off};var Ou=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 Uu from"bignumber.js";function Gt(t){return`${t.blockchain}${Ao}${t.address}${Ao}${t.symbol}`}i(Gt,"createAssetKey");function zu(t,e){return`${Gt(e)}${Ao}${t}`}i(zu,"createBalanceKey");function jn(t){let[e,o,n]=t.split(Ao);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(jn,"extractAssetFromBalanceKey");function Cs(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Gt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Uu(r??ue).multipliedBy(o[s].amount).toString():""})})}),o}i(Cs,"computeNextBalancesWithNewPrices");function ks(t,e){let o={};return t.balances?.forEach(n=>{let r=zu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Uu(c??ue).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(ks,"createBalanceStateForNewAccount");function Ts(t,e){for(let o in e){let n=jn(o);if(n){let r=Gt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(Ts,"updateAggregatedBalanceStateForNewAccount");function yk(t,e){let o=jn(e);if(!o)return t;let n=Gt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(yk,"removeBalanceFromAggregatedBalance");function ws(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=jn(l);if(!p)return;!!n.find(d=>zu(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=yk(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(ws,"computeNextStateAfterWalletBalanceRemoval");function Sk(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(Sk,"matchWalletDetailsWithConnectedWallet");var Ck=su(),Qu=Ou((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Vn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Vn(s,a))?{...a,loading:!1,error:!1,explorerUrl:Sk(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Vn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Vn(c,l)));if(s.length>0){let c=s.map(l=>{let p=!a.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:p,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!c.some(d=>d.walletType===u.walletType&&d.chain===u.chain)),...c]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=r.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address]?.push(...a[p.chain]||[]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await ut().getMultipleTokenBalance({assets:p.map(({symbol:d,address:f,blockchain:h})=>({symbol:d,address:f,blockchain:h})),walletAddress:l});if(u){let d=e()._balances,f=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};Cs(m,g,d);let C=ks(g,e);f=Ts(f,C),d={...d,...C}}),t(h=>({_balances:{...h._balances,...d},_aggregatedBalances:f}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{let a=o[0];a&&(ke.emit("walletEvent",{type:"connect",payload:{walletType:a.walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o))},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=ws(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(ke.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0||!o[0])return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await ut().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(d=>{if(d.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};Cs(f,d,l);let{_balances:h,_aggregatedBalances:g}=ws(f,r,{chains:[d.blockChain]});if(p=g,l=h,!e().connectedWallets.find(C=>C.walletType===r&&C.address===d.address&&C.chain===d.blockChain))return;let m=ks(d,e);p=Ts(p,m),l={...l,...m}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let d=c.filter(f=>f.failed).map(f=>({chain:f.blockChain,walletType:r,address:f.address}));d.length>0&&await e().fetchMainTokensBalances(d,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=Gt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0||!a[0])return null;let s=a[0];if(a.length===1&&n[s])return n[s];let c=n[a[0]];if(!c)return null;let l=c;return a.forEach(p=>{let u=n[p];if(!u)return;let d=new vs(u.amount),f=new vs(l.amount);d.isGreaterThan(f)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(Ao);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>Ck(()=>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=jn(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),d=l?.amount?new vs(l.amount).shiftedBy(-l.decimals):ue;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:d.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Hu(t){return kk()(Tk((...e)=>({...Qu(...e),..._u(...e),...Fu(...e),...Vp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i(Hu,"createAppStore");var qu=vk(null);function k(){let t=bk(qu);if(xk(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(k,"useAppStore");function Gu(t){let e=Ek();return e.current||(e.current=Hu(t.config)),wk.createElement(qu.Provider,{value:e.current},t.children)}i(Gu,"AppStoreProvider");import{useWallets as Ik}from"@rango-dev/wallets-react";import{detectMobileScreens as Ak}from"@rango-dev/wallets-shared";function ln(){let{getWalletInfo:t}=Ik(),{config:e}=k(),o=Ak();function n(s){let c=t(s),l=e.deepLinking?.appHost,p=e.deepLinking?.targetUrl;if(!(!l||!p))return c.generateDeepLink?.({appHost:l,targetUrl:p})}i(n,"getWalletDeepLink");function r(s){let c=n(s);return c&&o?c:t(s).installLink}i(r,"getWalletLink");function a(s){return!!n(s)&&o}return i(a,"checkHasDeepLink"),{getWalletDeepLink:n,getWalletLink:r,checkHasDeepLink:a}}i(ln,"useDeepLink");function xt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=k(),{state:r,getWalletInfo:a}=Nk(),s=k().blockchains(),{handleDisconnect:c}=Yo(),{checkHasDeepLink:l}=ln(),p=Qp(n()),u=Su(r,a,p,e);u=Bk()?u.filter(C=>C.showOnMobile!==!1&&(r(C.type).installed||l(C.type))):u;let d=Tu(u,r),f=i(C=>!o.find(y=>y.walletType===C&&y.chain===e),"isExperimentalChainNotAdded"),h=Mk(()=>{let C=u?.filter(y=>y.state===bs.CONNECTING)||[];for(let y of C)c(y)},[bu(u)]);Lk(()=>()=>{h()},[]);let g=i(C=>{let y=C.find(T=>T.type===Xn.DEFAULT);return!y||y.state===bs.NOT_INSTALLED?!1:C.filter(T=>T.state!=bs.NOT_INSTALLED&&![Xn.DEFAULT,Xn.WALLET_CONNECT_2,Xn.LEDGER].includes(T.type)&&a(T.type).supportedChains.filter(v=>v.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),m=i((C,y,S)=>ci(S,y)&&f(C)&&!Wk.includes(C)||C==Xn.DEFAULT&&!g(u),"shouldExcludeWallet");return{list:d.filter(C=>!m(C.type,e??"",s)),terminateConnectingWallets:h}}i(xt,"useWalletList");import{Modal as $k}from"@rango-dev/ui";import Fk from"react";import{create as Dk}from"zustand";var Vu="rango-widget";var Yn=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(Vu),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 _k=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"),so=_k;var oe=so(Dk()((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})}}))),Mo=new Yn({onInit:()=>oe.setState({tabManagerInitiated:!0}),onClaim:()=>oe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>oe.setState({isActiveTab:!1})});function J(t){let{watermark:e}=oe();return Fk.createElement($k,{hasWatermark:e==="FULL",...t},t.children)}i(J,"WatermarkedModal");import{i18n as un}from"@lingui/core";import{Alert as Jk,Button as Rk,Divider as dn,Image as eT,MessageBox as tT,RadioRoot as oT}from"@rango-dev/ui";import ce,{useEffect as nT,useMemo as rT,useState as iT}from"react";import{i18n as Qk}from"@lingui/core";import{Typography as ed}from"@rango-dev/ui";import cn from"react";function hi(t,e){return t.find(o=>o.name===e)?.logo}i(hi,"getBlockchainLogo");import{darkTheme as Ok,Image as Uk,styled as Vt,Typography as zk}from"@rango-dev/ui";var yi=Vt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${Ok} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),Si=Vt("div",{display:"flex",gap:"$8",alignItems:"center"}),ju=Vt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Xu=Vt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Yu=Vt("div",{display:"flex",gap:"$6",alignItems:"center"}),Zu=Vt("div",{paddingLeft:"48px"}),Ju=Vt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),Ru=Vt(zk,{maxWidth:"100px"}),Ci=Vt(Uk,{variants:{disabled:{true:{opacity:"0.5"}}}});function ki(t){let{namespace:e}=t,o=k().blockchains();return cn.createElement(yi,{unsupported:!0},cn.createElement(Si,null,cn.createElement(Ci,{src:hi(o,e.id),size:40,disabled:!0}),cn.createElement(Xu,null,cn.createElement(ed,{variant:"label",size:"large"},e.label),cn.createElement(ed,{variant:"body",size:"xsmall"},Qk.t("(Currently not supported)")))))}i(ki,"NamespaceUnsupportedItem");import{Checkbox as Xk,Radio as Yk}from"@rango-dev/ui";import As from"react";import{i18n as Is}from"@lingui/core";import{ChevronDownIcon as qk,ChevronUpIcon as Gk,Divider as Vk,Typography as Zn}from"@rango-dev/ui";import Ae,{useEffect as Kk,useState as jk}from"react";import{Image as od,Tooltip as nd,Typography as Hk}from"@rango-dev/ui";import _t from"react";import{styled as td}from"@rango-dev/ui";var xs=td("div",{display:"flex",alignItems:"center",padding:0,margin:0}),Ti=td("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 Es=3;function rd(t){let{chains:e}=t;return _t.createElement(xs,{id:"widget-supported-chains-container"},e.slice(0,Es).map((o,n)=>_t.createElement(nd,{key:o.name,container:W(),side:"bottom",align:"start",content:o.name,sideOffset:4},_t.createElement(Ti,{firstItem:n===0},_t.createElement(od,{src:o.logo,size:15})))),e.length>Es&&_t.createElement(nd,{container:W(),side:"bottom",align:"start",sideOffset:4,content:_t.createElement(xs,null,e.map((o,n)=>_t.createElement(Ti,{key:o.name,firstItem:n===0},_t.createElement(od,{src:o.logo,size:15}))))},_t.createElement(Ti,null,_t.createElement(Hk,{variant:"body",size:"xsmall"},"+",e.length-Es))))}i(rd,"SupportedChainsList");function Lo(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=jk(!1),p=k().blockchains();Kk(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!o&&!r&&u.length>1;return Ae.createElement(yi,{hasError:!!o,clickable:!!s,onClick:s},Ae.createElement(Si,null,Ae.createElement(Ci,{src:hi(p,e.id),size:40}),Ae.createElement(ju,{showSupportedChains:d||r||!!o},Ae.createElement(Yu,null,Ae.createElement(Zn,{variant:"label",size:"large"},e.label),r&&Ae.createElement(Zn,{variant:"body",size:"small",color:"success500"},Is.t("Connected")),!!o&&Ae.createElement(Zn,{variant:"body",size:"small",color:"error500"},Is.t("Connection failed"))),d&&Ae.createElement(rd,{chains:u}),r&&Ae.createElement(Ru,{variant:"body",size:"small",color:"neutral700"},a),o&&Ae.createElement(Ju,{onClick:()=>l(f=>!f)},Ae.createElement(Zn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},Is.t("See why")),c?Ae.createElement(Gk,{size:12,color:"gray"}):Ae.createElement(qk,{size:12,color:"gray"}))),n),!!o&&c&&Ae.createElement(Ae.Fragment,null,Ae.createElement(Vk,{size:4}),Ae.createElement(Zu,null,Ae.createElement(Zn,{variant:"body",size:"small",color:"neutral700"},o))))}i(Lo,"NamespaceItem");function id(t){let{onClick:e,type:o,namespace:n}=t;return As.createElement(Lo,{namespace:n,onClick:e,suffix:o==="radio"?As.createElement(Yk,{value:n.value}):As.createElement(Xk,{checked:t.value})})}i(id,"NamespaceListItem");import{Button as Zk,styled as ad}from"@rango-dev/ui";var wi=ad("ul",{padding:0,paddingBottom:"$20",margin:0}),pn=ad(Zk,{minHeight:"$40"});function Jn(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]=iT([]),u=rT(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:C=>C.includes(m)?C.filter(y=>y!==m):C.concat(m))},"onSelect"),f=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");f?p([]):u&&p(u.map(m=>m.value))},"onSelectAll"),g=i(m=>r?ce.createElement(oT,{value:l?.[0]},m):ce.createElement(ce.Fragment,null,m),"wrapRadioRoot");return nT(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(C=>C.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(m.map(C=>C.value))}else p(u.map(m=>m.value))},[]),ce.createElement(ce.Fragment,null,ce.createElement(tT,{type:"info",title:un.t("Connect {wallet}",{wallet:e.title}),description:un.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:ce.createElement(eT,{src:s,size:45})}),r?ce.createElement(ce.Fragment,null,ce.createElement(dn,{size:20}),ce.createElement(Jk,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:un.t("This wallet can only connect to one chain at a time. ")}),ce.createElement(dn,{size:30})):ce.createElement(ce.Fragment,null,ce.createElement(dn,{size:30}),ce.createElement(Rk,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?un.t("Deselect all"):un.t("Select all")),ce.createElement(dn,{size:10})),ce.createElement(wi,null,g(ce.createElement(ce.Fragment,null,a?.data.map((m,C,y)=>ce.createElement(ce.Fragment,{key:m.id},m.unsupported?ce.createElement(ki,{namespace:m}):ce.createElement(id,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),C!==y.length-1&&ce.createElement(dn,{size:10})))))),ce.createElement(dn,{size:20}),ce.createElement(pn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},un.t("Connect")))}i(Jn,"Namespaces");import{i18n as Rn}from"@lingui/core";import{Alert as dT,Button as mT,Divider as mn,Image as fT,MessageBox as gT}from"@rango-dev/ui";import{useWallets as hT}from"@rango-dev/wallets-react";import fe from"react";import{styled as aT}from"@rango-dev/ui";var sd=aT("div",{display:"flex",justifyContent:"end"});import{i18n as Ns}from"@lingui/core";import{Button as sT,Spinner as lT}from"@rango-dev/ui";import Bs,{useLayoutEffect as cT,useRef as pT,useState as uT}from"react";function ld(t){let{namespace:e,initialConnect:o,disabled:n,state:r,handleConnect:a,handleDisconnect:s}=t,[c,l]=uT(null),p=pT(!1);cT(()=>{o&&!p.current&&u()},[]);let u=i(async g=>{try{p.current=!0,await a(g)}catch(m){l(m)}finally{p.current=!1}},"handleConnectNamespace"),d=i(async()=>{l(null),r.connected?await s():u({shouldAskForDerivationPath:!0})},"handleButtonClick"),f=i(()=>{let g=r.accounts?.[0]?.split(":"),m=g?.[g.length-1];return!r.connected||!m?null:ao(m)},"getConnectedAddress"),h=i(()=>r.connected?Ns.t("Disconnect"):c?Ns.t("Try again"):Ns.t("Connect"),"getButtonText");return Bs.createElement(Lo,{namespace:e,connected:r.connected,error:c?.message,address:f(),suffix:r.connecting?Bs.createElement(lT,{color:"info"}):Bs.createElement(sT,{id:"widget-name-space-connect-btn",variant:"ghost",type:r.connected?"error":"primary",size:"xsmall",onClick:async()=>d(),disabled:n},h())})}i(ld,"NamespaceDetachedItem");function er(t){let{value:e,selectedNamespaces:o,onConfirm:n,onDisconnectWallet:r,navigateToDerivationPath:a}=t,{targetWallet:s}=e,{connect:c,disconnect:l,state:p}=hT(),u=s.type,d=p(u),f=s.properties?.find(T=>T.name==="namespaces"),h=s.properties?.find(T=>T.name==="derivationPath"),g=f?.value.selection==="single",m=i(async(T,v)=>{g&&await l(u),h&&v?.shouldAskForDerivationPath?a(T):await c(u,[{namespace:T,network:"",derivationPath:v?.derivationPath??void 0}])},"handleConnectNamespace"),C=i(async T=>{await l(u,[T])},"handleDisconnectNamespace"),y=i(()=>g?fe.createElement(fe.Fragment,null,fe.createElement(mn,{size:20}),fe.createElement(dT,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:Rn.t("This wallet can only connect to one chain at a time.")}),fe.createElement(mn,{size:30})):fe.createElement(fe.Fragment,null,fe.createElement(mn,{size:30}),fe.createElement(sd,null,fe.createElement(mT,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:d.connecting||!d.connected,onClick:r},Rn.t("Disconnect wallet"))),fe.createElement(mn,{size:16})),"renderNamespaceListHeader"),S=i(T=>{if(T.unsupported)return fe.createElement(ki,{namespace:T});let v=o?.find(B=>B.namespace===T.value),w=d.namespaces?.get(T.value);if(!w)throw new Error(`State for ${T.value} was not found!`);let A=g&&d.connecting;return fe.createElement(ld,{namespace:T,initialConnect:!!v,disabled:A,state:w,handleConnect:async B=>m(T.value,{derivationPath:v?.derivationPath,shouldAskForDerivationPath:B?.shouldAskForDerivationPath}),handleDisconnect:async()=>C(T.value)})},"renderNamespaceItem");return fe.createElement(fe.Fragment,null,fe.createElement(gT,{type:"info",title:Rn.t("Connect {wallet}",{wallet:s.type}),description:Rn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:fe.createElement(fT,{src:s.image,size:45})}),y(),fe.createElement(wi,{id:"widget-detached-namespace-list"},s.needsNamespace?.data.map((T,v,w)=>fe.createElement(fe.Fragment,{key:T.id},S(T),v!==w.length-1&&fe.createElement(mn,{size:10})))),fe.createElement(mn,{size:20}),fe.createElement(pn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:n},Rn.t("Done")))}i(er,"Detached");import{i18n as fn}from"@lingui/core";import{Divider as pd,Image as kT,MessageBox as TT,Select as wT,TextField as vT}from"@rango-dev/ui";import Ct,{useEffect as bT,useState as ud}from"react";import{namespaces as yT}from"@rango-dev/wallets-shared";var vi={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ws(t){let e=t?yT[t]?.derivationPaths:null;return e?[...e,vi]:[]}i(Ws,"getDerivationPaths");import{Button as ST,styled as Ms,Typography as CT}from"@rango-dev/ui";var cd=Ms("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ls=Ms(CT,{paddingLeft:"$10"}),Ps={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},KP=Ms(ST,{minHeight:"$40"});var dd="0";function tr(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=ud(null),[c,l]=ud(dd),p=a===vi.id,u=Ws(o),d=i(({value:h})=>{let g=u?.find(m=>m.id===h);g&&(a===vi.id&&Number.isNaN(Number(c))&&l(dd),s(g.id))},"handleDerivationPathItemClick"),f=i(()=>{let h=u.find(g=>g.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return bT(()=>{s(Ws(o)[0]?.id||null)},[o]),Ct.createElement(Ct.Fragment,null,Ct.createElement(pd,{size:20}),Ct.createElement(TT,{type:"info",title:fn.t("Select Derivation Path"),description:fn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:Ct.createElement(kT,{src:n,size:45})}),Ct.createElement(cd,null,Ct.createElement(Ls,{variant:"body",size:"xsmall",color:"$neutral600"},fn.t("Choose Derivation Path Template")),Ct.createElement(wT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:Ps}}),Ct.createElement(pd,{size:20}),Ct.createElement(Ls,{variant:"body",size:"xsmall",color:"$neutral600"},p?fn.t("Enter Path"):fn.t("Enter Index")),Ct.createElement(vT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Ps})),Ct.createElement(pn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},fn.t("Confirm")))}i(tr,"DerivationPath");import{i18n as gn}from"@lingui/core";import{Image as IT,MessageBox as _s,WalletState as AT}from"@rango-dev/ui";import{useWallets as NT}from"@rango-dev/wallets-react";import Po from"react";import{keyframes as xT,styled as bi}from"@rango-dev/ui";var r_=bi("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),md=bi("div",{position:"relative"}),ET=xT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),fd=bi("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ET} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),gd=bi("div",{"& img":{borderRadius:"50%"}});function Ds(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=NT();return qn(a(n))===AT.CONNECTED?Po.createElement(_s,{type:"success",title:gn.t("Wallet Connected"),description:gn.t("Your wallet is connected, you can use it to swap.")}):o?Po.createElement(_s,{type:"error",title:gn.t("Failed to Connect"),description:o||gn.t("Your wallet is not connected. Please try again.")}):Po.createElement(_s,{type:"loading",title:gn.t("Connecting to your wallet"),description:gn.t("Click connect in your wallet popup."),icon:Po.createElement(md,null,Po.createElement(gd,null,Po.createElement(IT,{src:r,size:45})),Po.createElement(fd,null))})}i(Ds,"ConnectStatus");import{i18n as $s}from"@lingui/core";import{Button as BT,Divider as hd,MessageBox as WT}from"@rango-dev/ui";import xi from"react";function Fs(t){let{displayName:e,onConfirm:o,id:n}=t;return xi.createElement(WT,{id:n,title:$s.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:$s.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},xi.createElement(hd,{size:18}),xi.createElement(hd,{size:32}),xi.createElement(BT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},$s.t("Confirm")))}i(Fs,"ExperimentalChain");function yd(t,e){return t().status==="init"&&!!e}i(yd,"isOnStatus");function or(t){return t().status==="namespace"}i(or,"isOnNamespace");function nr(t){return t().status==="derivationPath"}i(nr,"isOnDerivationPath");function Eo(t){return t().status==="detached"}i(Eo,"isOnDetached");var _T=3e3,DT=300;function rr(t){let e=PT(),[o,n]=Sd(!1),[r,a]=Sd(),s=i(w=>{a(w.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=xt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:f,handleDisconnect:h}=Yo(),g=i(w=>{u(t.wallet,w).then(T).catch(s)},"handleConfirmNamespaces"),m=i(()=>{y()},"handleDetachedConfirm"),C=i(w=>{if(!w)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(t.wallet,w).then(T).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),S=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),T=i((w,A)=>{let B=w.status==="connected",b=["disconnected","disconnected-unhandled"].includes(w.status);B?(t.onConnect?.(),A||(e.current=setTimeout(y,_T))):b&&y()},"afterConnected"),v=i(w=>{t.wallet?.needsDerivationPath&&u(t.wallet,[w])},"handleNavigateToDerivationPath");return LT(()=>{if(t.wallet){S();let w=!1,A=!0;i(()=>{setTimeout(()=>{A=!1,w||n(!0)},DT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(b=>{["namespace","Detached","derivation-path"].includes(b.status)||(w=!0),T(b,A)}).catch(s)}},[t.wallet]),lo.createElement(J,{id:t.id,open:o,onClose:y,onExit:()=>{S(),c(),t.onClose&&t.onClose()},container:W()},yd(d,t.wallet)&&lo.createElement(lo.Fragment,null,lo.createElement(Ds,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),lo.createElement(MT,{direction:"vertical",size:32})),or(d)&&lo.createElement(Jn,{onConfirm:g,value:d().namespace}),nr(d)&&lo.createElement(tr,{onConfirm:C,value:d().derivationPath}),Eo(d)&&lo.createElement(er,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces,navigateToDerivationPath:v}))}i(rr,"StatefulConnectModal");import Za from"react";import $T,{Fragment as FT}from"react";import{MemoryRouter as OT,useInRouterContext as UT}from"react-router";function Ei({children:t}){let o=UT()?FT:OT;return $T.createElement(o,null,t)}i(Ei,"AppRouter");import{I18nManager as _0}from"@rango-dev/ui";import Ip from"react";import Ge from"react";import{useRoutes as f0}from"react-router-dom";var O={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 yn,useRef as Li}from"react";import rt from"bignumber.js";import{create as Zd}from"zustand";import{subscribeWithSelector as Jd}from"zustand/middleware";import{createContext as zT,useContext as QT}from"react";var Cd=zT({swapMode:"swap",isMultiMode:!1});function nt(){let{swapMode:t,isMultiMode:e}=QT(Cd);return{swapMode:t,isMultiMode:e}}i(nt,"useSwapMode");import{i18n as Tt}from"@lingui/core";import{getRelatedWalletOrNull as GT,RouteEventType as TD}from"@rango-dev/queue-manager-rango-preset";import Ke from"bignumber.js";import{PendingSwapNetworkStatus as ar}from"rango-types";import{i18n as Ve}from"@lingui/core";var ne=i(()=>({genericServerError:Ve.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Ve.t("Please reset your liquidity sources."),description:Ve.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Ve.t("No Routes Found."),description:Ve.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:Ve.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Ve.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Ve.t("High Price Impact"),title:Ve.t("Price impact is too high!"),description:Ve.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Ve.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Ve.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Ve.t("USD Price Unknown"),title:Ve.t("USD Price Unknown, Cannot calculate Price Impact."),description:Ve.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Ve.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 Ii}from"@lingui/core";var _o=i(()=>({connectWallet:Ii.t("Connect Wallet"),swap:Ii.t("Swap"),swapAnyway:Ii.t("Swap anyway"),ethWarning:Ii.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Os(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Os,"getFeeLabel");var Us=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],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 qT}from"@rango-dev/queue-manager-rango-preset";import sD 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 jt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(jt,"getPriceImpactLevel");function Ai(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=qT(t.steps);if(!r||!n)return{fromBlockchain:null,fromToken:void 0,toBlockchain:null,toToken:void 0,inputAmount:""};let s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=Io(a?a.toBlockchain:n.fromBlockchain,e),l=Io(r.toBlockchain,e),p=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:d}}i(Ai,"createRetryQuote");function hn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=ir(o),s=kt(o);if(o&&a&&s){let p=Kt(a.toString(),s.toString());if(!!p&&Ld(a,p)){let d=Bi(o?.swaps,n),f=jt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:f}}}if(e&&Dd(e,o))return{type:4,usdValueChange:D(kt(o)?.minus(kt(e)??0).toString()??"0",null,2),percentageChange:D(Kt(kt(e)??"1",kt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=Wi(o.swaps),l=r>on;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(hn,"generateQuoteWarnings");function Nd(t){return![4].includes(t.type)}i(Nd,"isQuoteWarningConfirmationRequired");function Kt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:zs(t.toString(),e.toString());return n&&n<0?n:null}i(Kt,"getPriceImpact");var Bd=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),Ni=i((t,e)=>e.sort((o,n)=>{let r=i(p=>p.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),Wd=i((t,e,o)=>{let n=e[0];if(!e.length||!n)return null;if(!t)return{requestAmount:o,validationStatus:null,...n};let r=new Set(t.swaps.map(s=>s.swapperId)),a=e.find(s=>{let c=new Set(s.swaps.map(l=>l.swapperId));return Array.from(r).every(l=>c.has(l))});return{requestAmount:o,validationStatus:null,...a||n}},"getDefaultQuote"),Md=i(t=>{let e=i((o,n)=>{let r=Us.indexOf(o.value),a=Us.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Ld(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 Ke(r)))}i(Ld,"hasHighValueLoss");function $d(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ke(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ke(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 Ke(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new Ke(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0];if(!e)return{swap:void 0,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new Ke(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ke(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=Tt.t({id:"Required: >= {min} {symbol}",values:{min:D(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=Tt.t({id:"Required: > {min} {symbol}",values:{min:D(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=Tt.t({id:"Required: <= {max} {symbol}",values:{max:D(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=Tt.t({id:"Required: < {max} {symbol}",values:{max:D(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:_o().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:_o().swap,action:"confirm-swap",disabled:!0}:s?{title:_o().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:_o().ethWarning,action:"confirm-warning",disabled:!1}:{title:_o().swap,action:"confirm-swap",disabled:!1}:{title:_o().connectWallet,action:"connect-wallet",disabled:!1}}i(Od,"getSwapButtonState");function Qs(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ue))&&e&&e!=="0"&&n!==0)}i(Qs,"canComputePriceImpact");function Hs(t,e){let o=ue;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(!r||r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ke(r.amount).multipliedBy(a||0))}return o}i(Hs,"getUsdFeeOfStep");function Bi(t,e){return t.reduce((o,n)=>o.plus(Hs(n,e)),ue)}i(Bi,"getTotalFeeInUsd");function qs(t){let e=ue,o=new Ke(t.price||0);return e=e.plus(new Ke(t.amount).multipliedBy(o)),e}i(qs,"getUsdFee");function Ud(t){return t.reduce((e,o)=>e.plus(qs(o)),ue)}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 Wi(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(Wi,"getMinRequiredSlippage");function _d(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(_d,"hasProperSlippage");function Hd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:d,affiliateWallets:f,destination:h,contractCall:g}=t,m=a?.reduce((S,T)=>(S[T.chain]=T.address,S),{}),C=[];return r?.forEach(S=>{C.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:m??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(Hd,"createQuoteRequestBody");function qd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(qd,"getWalletsForNewSwap");function ir(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new Ke(e).multipliedBy(o)}i(ir,"getUsdInputFrom");function kt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new Ke(e).multipliedBy(o)}i(kt,"getUsdOutputFrom");function zs(t,e){return new Ke(e).div(new Ke(t)).minus(1).multipliedBy(Td).toNumber()}i(zs,"getPercentageChange");function Dd(t,e){let o=ir(t),n=kt(t),r=kt(e);if(!o||!n||!r)return!1;let a=zs(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=Bo({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=D(new Ke(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=D(new Ke(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=Tt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=Tt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=Tt.t(" for input and network fee")),Tt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:yt(s.asset.blockchain,o)}})})}i(Gd,"generateBalanceWarnings");function sr(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==ar.NetworkChanged}i(sr,"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,"")),sr(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?GT(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case ar.WaitingForConnectingWallet:r=u?Tt.t("Connect {wallet}",{wallet:u}):r;break;case ar.WaitingForQueue:r=r||Tt.t("Waiting for other running tasks to be finished");break;case ar.WaitingForNetworkChange:r=r||Tt.t("Waiting for changing wallet network");break;case ar.NetworkChangeFailed:r=r||Tt.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=Bo({filter:"all",quote:n}),c=Bo({filter:"required",quote:n}),l=s.every(d=>r.some(f=>f.chain===d)),p=c.every(d=>r.some(f=>f.chain===d)),u=o&&a?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 Mi=i((t,e)=>t?.usdPrice?new rt(e||ue).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Rd=i(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=ue,a=o.inputUsdValue;return Hn(o.inputAmount)?(e&&(n=e?.outputAmount?new rt(e?.outputAmount):null,a=ir(e)??ue,r=kt(e)??ue),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new 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:Mi(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=hu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;ii(e)||(o=lu(o),o=cu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new rt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Mi(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:Mi(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?Mi(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})}),"initializer"),em=Zd()(Jd(Rd)),tm=Zd()(Jd(Rd)),VT=so(em),KT=so(tm);function U(){let{swapMode:t}=nt();return so(t==="refuel"?tm:em)}i(U,"useQuoteStore");var om=i((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ke.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&&ke.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})},"subscribeCallback"),nm=VT.subscribe(om),rm=KT.subscribe(om);function im(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=U()(),u=k().config,d=k().fetchStatus,f=k().blockchains(),{findToken:h}=k(),{setAffiliateRef:g,setAffiliatePercent:m,setAffiliateWallets:C}=k(),y=u?.from?.tokens,S=u?.from?.blockchains,T=u?.to?.tokens,v=u?.to?.blockchains,w=Li(void 0),A=Li(void 0),B=Li(void 0),b=Li(void 0);yn(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),yn(()=>{if(d==="success"){r();let E=f.find(I=>I.name===u?.from?.blockchain),x=u?.from?.token,M=x&&h(x);(E||!E&&B.current)&&n(E??null),M?a({token:M,meta:{blockchains:f}}):!M&&w.current&&a({token:null}),B.current=u?.from?.blockchain,w.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),yn(()=>{ms(s,y)&&a({token:null}),fs(l,S)&&n(null)},[y,S]),yn(()=>{ms(c,T)&&a({token:null}),fs(p,v)&&o(null)},[T,v]),yn(()=>{if(d==="success"){r();let E=f.find(I=>I.name===u?.to?.blockchain),x=u?.to?.token,M=x&&h(x);(E||!E&&b.current)&&o(E??null),M?e({token:M,meta:{blockchains:f}}):!M&&A.current&&e({token:null}),b.current=u?.to?.blockchain,A.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,d]),yn(()=>{g(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),C(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(im,"useSyncStoresWithConfig");import{useEffect as Ks,useRef as jT}from"react";import{useInRouterContext as XT,useLocation as YT,useSearchParams as ZT}from"react-router-dom";function Gs(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(Gs,"convertTokenSearchParamToAsset");function Vs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Vs,"tokenToSearchParam");function Xs(){let t=YT(),[e,o]=ZT(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:f}=U()(),h=k().fetchStatus,g=k().blockchains(),m=XT(),{updateIframe:C,updateCampaignMode:y}=k(),S=k().isInCampaignMode(),T=jT(),{findToken:v}=k(),w=i(()=>{let B={};for(let[L,ee]of e.entries())L.startsWith("utm_")&&(B[L]=ee);let b=e.get("fromAmount"),E=e.get("fromBlockchain"),x=e.get("fromToken"),M=e.get("toBlockchain"),I=e.get("toToken"),_=e.get("autoConnect"),Q=e.get("clientUrl"),H=e.get("liquiditySources"),j=e.get("blockchain");return{fromAmount:b,fromBlockchain:E,fromToken:x,toBlockchain:M,toToken:I,autoConnect:_,clientUrl:Q,liquiditySources:H,utmQueryParams:B,blockchain:j}},"getUrlSearchParams"),A=i(B=>{for(let b in B)B[b]||delete B[b];o(B,{replace:!0})},"updateUrlSearchParams");Ks(()=>{let{autoConnect:B,clientUrl:b,utmQueryParams:E,blockchain:x}=w();m&&h==="success"&&A({fromBlockchain:n?.name,fromToken:Vs(a),toBlockchain:r?.name,toToken:Vs(s),fromAmount:c,autoConnect:B??void 0,clientUrl:b??void 0,blockchain:x??void 0,liquiditySources:S?T.current:void 0,...E})},[t.pathname,c,n,a,r,s,S,h]),Ks(()=>{if(!m)return;let B=w();if(!T.current&&B.liquiditySources&&(T.current=B.liquiditySources),B.fromAmount&&f(B.fromAmount),h==="success"){let b=g.find(Q=>Q.name===B.fromBlockchain),E=B.fromToken&&b&&Gs(B.fromToken,b),x=E?v(E):void 0,M=g.find(Q=>Q.name===B.toBlockchain),I=B.toToken&&M&&Gs(B.toToken,M),_=I?v(I):void 0;b&&(l(b),x&&u({token:x,meta:{blockchains:g}})),M&&(p(M),_&&d({token:_,meta:{blockchains:g}}))}},[h]),Ks(()=>{let{clientUrl:B,liquiditySources:b}=w();C("clientUrl",B||void 0),y("liquiditySources",b?.split(",")??void 0)},[])}i(Xs,"useSyncUrlAndStore");import{i18n as wn}from"@lingui/core";import{Alert as Sv,Button as Cv,darkTheme as kv,Divider as El,DoneIcon as Tv,styled as wv,TextField as vv,Typography as bv}from"@rango-dev/ui";import Xe,{useState as xv}from"react";import{useNavigate as Ev,useSearchParams as Iv}from"react-router-dom";import{ChevronRightIcon as JT,Divider as pm,Image as RT,Typography as um}from"@rango-dev/ui";import Et from"react";import{darkTheme as am,styled as Ys}from"@rango-dev/ui";var sm=Ys("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${am} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${am} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),lm=Ys("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),cm=Ys("div",{display:"flex"});function Zs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return Et.createElement(lm,null,Et.createElement(um,{size:"large",variant:"label"},n),Et.createElement(pm,{size:10}),Et.createElement(sm,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},Et.createElement(cm,null,r&&Et.createElement(Et.Fragment,null,Et.createElement(RT,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),Et.createElement(pm,{size:4,direction:"horizontal"})),Et.createElement(um,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),Et.createElement(JT,{size:12,color:"black"})))}i(Zs,"BlockchainSelectorButton");import{i18n as ol}from"@lingui/core";import{Button as nw,Divider as gm,MessageBox as rw}from"@rango-dev/ui";import co,{useEffect as hm,useState as nl}from"react";import{i18n as Pi}from"@lingui/core";import{Divider as Do,ExternalLinkIcon as tw,Image as ow,Typography as Cn}from"@rango-dev/ui";import Te from"react";var dm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function mm(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(mm,"generateExplorerLink");import{Button as ew,darkTheme as Sn,styled as Js}from"@rango-dev/ui";var Rs=Js("a",{textDecoration:"none",color:"$colors$neutral700",[`.${Sn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${Sn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${Sn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${Sn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),fm=Js("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${Sn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${Sn} &`]:{color:"$colors$neutral900"}}}),el=Js(ew,{minHeight:"$40"});function tl(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=mm(n.address,s),l=i(()=>window.open(dm,"_blank"),"onClickLearnMore");return Te.createElement(J,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:W()},Te.createElement(fm,null,Te.createElement(ow,{src:n.image===""?ei:n.image,size:45,type:"circular"}),Te.createElement(Do,{size:4}),Te.createElement(Cn,{variant:"title",size:"medium"},n.symbol),Te.createElement(Cn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),Te.createElement(Do,{size:4}),Te.createElement(Cn,{variant:"body",size:"medium"},c?Te.createElement(Rs,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,Te.createElement(tw,{size:12,color:"gray"})):Te.createElement(Rs,null,n.address)),Te.createElement(Do,{size:4}),n.coinSource&&Te.createElement(Cn,{className:"_coin-source",variant:"body",size:"xsmall"},Pi.t("via")," ",Te.createElement(Cn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),Te.createElement(Do,{size:"32"}),Te.createElement(Cn,{size:"medium",variant:"body",className:"_custom-token-description"},Pi.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."))),Te.createElement(Do,{size:40}),Te.createElement(Do,{size:10}),Te.createElement(el,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Pi.t("Import Anyway")),Te.createElement(Do,{size:10}),Te.createElement(el,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Pi.t("Learn More")))}i(tl,"CustomTokenModal");function lr(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=k(),[d,f]=nl(!1),[h,g]=nl(!1),[m,C]=nl(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),S=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),T=i(()=>{C(!0),S()},"handleErrorModalButtonClick"),v=i(()=>{m&&n?.type==="network-error"&&(C(!1),y()),l()},"handleExit"),w=i(()=>{e&&(u(e),c())},"handleSubmit");return hm(()=>{n&&f(!0)},[n]),hm(()=>{o&&e&&g(!0)},[o,e]),co.createElement(co.Fragment,null,co.createElement(J,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:S,onExit:v,container:W()},co.createElement(rw,{title:n?.title??"",type:"error",description:n?.message||ol.t("Failed Network, Please retry.")},co.createElement(gm,{size:40}),co.createElement(gm,{size:10}),co.createElement(nw,{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"?ol.t("Retry"):ol.t("Add another custom token")))),o&&e&&co.createElement(tl,{blockchain:o,token:e,onSubmitClick:w,onClose:()=>g(!1),open:h,onExit:p}))}i(lr,"ImportCustomToken");import{useManager as dv}from"@rango-dev/queue-manager-react";import{BottomLogo as mv,Divider as jm,Header as fv}from"@rango-dev/ui";import Be,{useEffect as Hi,useLayoutEffect as gv,useRef as Xm,useState as Ym}from"react";import{useRef as iw}from"react";function cr(){return window.self!==window.top}i(cr,"isAppLoadedIntoIframe");function rl(){let t=iw(null),{iframe:e}=k(),o=cr()&&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(rl,"useIframe");import{useNavigate as aw}from"react-router-dom";function je(){let t=aw();return()=>t(-1)}i(je,"useNavigateBack");import{useLayoutEffect as sw,useState as pr}from"react";var ym=480,Sm=768,Cm=1024,km=1200,lw=i(()=>{let[t,e]=pr(!1),[o,n]=pr(!1),[r,a]=pr(!1),[s,c]=pr(!1),[l,p]=pr(!1),u=i(()=>{e(window.innerWidth<=ym),n(window.innerWidth>ym&&window.innerWidth<=Sm),a(window.innerWidth>Sm&&window.innerWidth<=Cm),c(window.innerWidth>Cm&&window.innerWidth<=km),p(window.innerWidth>km)},"handleResize");return sw(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),kn=lw;import{createTheme as ul,darkTheme as Tw,lightTheme as ww}from"@rango-dev/ui";import{useEffect as vw,useState as bw}from"react";import{theme as Cw,darkColors as kw}from"@rango-dev/ui";import cl from"react";var _i=16,Di=255,Tm=.11;function cw(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(cw,"expandShortHexColor");function pw(t,e){return t.padStart(e,"0")}i(pw,"pad");function il(t){let e=Math.min(Math.max(Math.round(t),0),Di);return pw(e.toString(_i),2)}i(il,"intToHex");function uw(t){return`#${il(t.red)}${il(t.green)}${il(t.blue)}`}i(uw,"rgbToHex");function dw(t){let e=parseInt(t.slice(1,3),_i),o=parseInt(t.slice(3,5),_i),n=parseInt(t.slice(5,7),_i);return{red:e,green:o,blue:n}}i(dw,"hexToRGB");function mw(t,e){let o=1-Tm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(mw,"generateShade");function fw(t,e){let o=Tm*e;return{red:t.red+(Di-t.red)*o,green:t.green+(Di-t.green)*o,blue:t.blue+(Di-t.blue)*o}}i(fw,"generateTint");function gw(t){return wm(t,mw)}i(gw,"calculateShades");function hw(t){return wm(t,fw)}i(hw,"calculateTints");function wm(t,e){let o=dw(t),n=[];for(let r=1;r<9;r++)n.push(uw(e(o,r)));return n}i(wm,"calculateColors");function al(t,e,o){let a=hw(t).reverse().concat(t),s=gw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let d=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${d}`]=f)}return l}i(al,"createTintsAndShades");function sl(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)&&!fu(r)){let l=cw(a);Object.assign(n,al(l,r,s))}}return{...n,...e}}i(sl,"expandToGenerateThemeColors");var vm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),yw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=vm(o%52)+e;return vm(o%52)+e},"toAlphabeticName"),Sw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ll=i(t=>yw(Sw(5381,JSON.stringify(t))>>>0),"toHash");function pl(t){let e=Cw.colors,o={...e,...kw},n,r;if(t?.light){let s={colors:sl(e,t.light)};n={id:`${ds}-light-${ll(s)}`,tokens:s}}if(t?.dark){let s={colors:sl(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ds}-dark-${ll(s)}`,tokens:s}}return{light:n,dark:r}}i(pl,"customizedThemeTokens");function bm(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>cl.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(cl.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(cl.cloneElement(e,{key:c}))}}),o}i(bm,"joinList");function xm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(xm,"doesWindowPreferDarkColorScheme");function po(t){let{colors:e,fontFamily:o=Jp,borderRadius:n=Au,secondaryBorderRadius:r=Nu}=t,[a,s]=bw(xm()?"dark":"light"),{theme:c}=k(),{dark:l,light:p}=pl(e),u=ul({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,ww.className],f=[u.className,Tw.className];if(p){let g=ul(p.id,p.tokens);d.push(g.className)}if(l){let g=ul(l.id,l.tokens);f.push(g.className)}return vw(()=>{let g=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return xm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=d.join(" "),m=f.join(" ");return c==="auto"?a==="dark"?m:g:c==="dark"?m:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(po,"useTheme");var wt=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 Em}from"@lingui/core";import{Alert as xw,Button as Ew}from"@rango-dev/ui";import Im from"react";function dl(t){return Im.createElement(xw,{action:Im.createElement(Ew,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Em.t("Activate this tab")),type:"warning",variant:"alarm",title:Em.t("Another tab is open and handles transactions.")})}i(dl,"ActivateTabAlert");import{i18n as ml}from"@lingui/core";import{Button as Iw,Divider as Aw,MessageBox as Nw}from"@rango-dev/ui";import $i from"react";function fl(t){let{open:e,onClose:o,onConfirm:n}=t;return $i.createElement(J,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:W()},$i.createElement(Nw,{title:ml.t("Activate current tab"),type:"warning",description:ml.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},$i.createElement(Aw,{size:20}),$i.createElement(Iw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},ml.t("Confirm"))))}i(fl,"ActivateTabModal");import{ChevronLeftIcon as Mw}from"@rango-dev/ui";import _m from"react";import{css as Bw,darkTheme as Am,IconButton as Ww,styled as $o}from"@rango-dev/ui";var Dt=$o(Ww,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Am} &`]:{backgroundColor:"$neutral"}}}),Nm=$o("div",{position:"absolute",background:"$secondary500",[`.${Am} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),uo=$o("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Bm=$o("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"}}}}),Wm=$o("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Mm=$o("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Lm=Bw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Pm=$o("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function gl(t){return _m.createElement(Dt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},_m.createElement(Mw,{color:"black",size:16}))}i(gl,"BackButton");import{i18n as Lw}from"@lingui/core";import{Button as Pw,Typography as _w}from"@rango-dev/ui";import hl from"react";function yl(t){return hl.createElement(uo,null,hl.createElement(Pw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},hl.createElement(_w,{variant:"label",size:"medium",color:"error500"},Lw.t("Cancel"))))}i(yl,"CancelButton");import{i18n as Dw}from"@lingui/core";import{Image as $w,Tooltip as Fw,WalletIcon as Ow}from"@rango-dev/ui";import Fo from"react";function Sl(t){let{list:e}=xt(),o=e.filter(r=>r.state==="connected"),n=o.length?Fo.createElement("div",{className:Lm()},o.map(r=>Fo.createElement(Pm,{key:r.title},Fo.createElement($w,{src:r.image,size:14})))):Dw.t("Connect Wallet");return Fo.createElement(Fw,{container:t.container,side:"bottom",content:n},Fo.createElement(Dt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Fo.createElement(Nm,null),Fo.createElement(Ow,{size:18,color:"black"})))}i(Sl,"WalletButton");import{i18n as Oi}from"@lingui/core";import{NotificationsIcon as tv,Popover as ov,SettingsIcon as nv,Tooltip as Ui,TransactionIcon as rv}from"@rango-dev/ui";import $e from"react";import{Notifications as Hw}from"@rango-dev/ui";import qw from"react";import{useNavigate as Gw}from"react-router-dom";import{create as Uw}from"zustand";import{persist as zw,subscribeWithSelector as Qw}from"zustand/middleware";var Ne=so(Uw()(zw(Qw((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1];if(!r||!a)return;let s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function Cl(){let t=Gw(),{getNotifications:e,clearNotifications:o}=Ne(),n=e(),r=k().blockchains(),{findToken:a}=k();return qw.createElement(Hw,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Hp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${O.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(Cl,"NotificationContent");import{useManager as Vw}from"@rango-dev/queue-manager-react";import{InProgressIcon as Kw}from"@rango-dev/ui";import Dm from"react";var jw=i(()=>{let{manager:t}=Vw();return wt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Dm.createElement(Mm,{id:"widget-header-history-badge-container"},Dm.createElement(Kw,{color:"info",size:6})):null},"InProgressTransactionBadge"),$m=jw;import{EventSeverity as Xw}from"@rango-dev/queue-manager-rango-preset";import{Typography as Yw}from"@rango-dev/ui";import Fm from"react";function Om(){let{getNotifications:t}=Ne(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Xw.WARNING);return o?Fm.createElement(Bm,{isSever:n},Fm.createElement(Yw,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Om,"NotificationsBadge");import{RefreshProgressButton as Zw}from"@rango-dev/ui";import kl,{useEffect as Jw,useState as Um}from"react";var Rw=1e3,zm=60,ev=100;function Fi({onClick:t}){let[e,o]=Um(0),[n,r]=Um(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Jw(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===zm&&c()},Rw):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 kl.createElement(Dt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},kl.createElement(Wm,{onTransitionEnd:()=>r(!1),isRefetched:n},kl.createElement(Zw,{size:22,color:t?"black":"gray",progress:e/zm*ev})))}i(Fi,"RefreshButton");function Oo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=k(),c=ot("notification",s)||r.includes("notifications");return $e.createElement($e.Fragment,null,!r.includes("refresh")&&$e.createElement(Ui,{container:a||W(),side:"top",content:Oi.t("Refresh")},$e.createElement(Fi,{onClick:e})),!c&&$e.createElement(ov,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:W(),content:$e.createElement(Cl,null)},$e.createElement("div",null,$e.createElement(Ui,{container:W(),side:"top",content:Oi.t("Notifications")},$e.createElement(Dt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},$e.createElement(tv,{size:18,color:"black"}),$e.createElement(Om,null))))),!r.includes("settings")&&$e.createElement(Ui,{container:W(),side:"top",content:Oi.t("Settings")},$e.createElement(Dt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},$e.createElement(nv,{size:18,color:"black"}))),!r.includes("history")&&$e.createElement(Ui,{container:W(),side:"top",content:Oi.t("History")},$e.createElement(Dt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},$e.createElement(rv,{size:18,color:"black"}),$e.createElement($m,null))))}i(Oo,"HeaderButtons");import{i18n as Tl}from"@lingui/core";import{Divider as Hm,MessageBox as sv,RefreshIcon as lv}from"@rango-dev/ui";import Tn from"react";import{Button as iv,styled as av}from"@rango-dev/ui";var Qm=av(iv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function wl(t){let{open:e,onClose:o}=t;return Tn.createElement(J,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:W()},Tn.createElement(sv,{title:Tl.t("Something went wrong"),type:"error",description:Tl.t("Something went wrong. Please refresh the app.")},Tn.createElement(Hm,{size:30}),Tn.createElement(Qm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Tn.createElement(lv,{size:20,color:"primary"}),Tn.createElement(Hm,{size:4,direction:"horizontal"}),Tl.t("Refresh"))))}i(wl,"RefreshModal");function vl(t){let e=t.target;if(e){let o=e.scrollTop,n=W();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(vl,"onScrollContentAttachStatusToContainer");import{css as pv,styled as zi}from"@rango-dev/ui";var Qi=pv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),qm=zi("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"}}}}),Gm=zi("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Vm=zi("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}}),Km=zi("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=rl(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=k(),[u,d]=Ym(!1),{config:{features:f,theme:h}}=k(),{watermark:g,setShowCompactTokenSelector:m}=oe(),C=g==="FULL",{activeTheme:y}=po(h||{}),[S,T]=Ym(!1),v=ot("connectWalletButton",f),{isActiveTab:w,tabManagerInitiated:A,showActivateTabModal:B,setShowActivateTabModal:b,activateCurrentTab:E}=oe(),x=je(),{manager:M}=dv(),{isTablet:I,isMobile:_}=kn(),H=wt(M).map(({swap:le})=>le).some(le=>le.status==="running"),j=i(()=>E(Mo.forceClaim,H),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),ee=typeof r.hasBackButton>"u"||r.hasBackButton,R=Xm(null),Y=Xm(null);return Hi(()=>{let le=(p?.swapBoxBanner?.routes?.length??0)===0,Ye=!!p?.swapBoxBanner?.routes?.some(ae=>location.pathname.endsWith(ae));T(!!p?.swapBoxBanner&&(le||Ye))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),Hi(()=>(cr()&&Y.current&&e(Y.current),()=>{o()}),[]),Hi(()=>(R.current?.addEventListener("scroll",vl),()=>{R.current?.removeEventListener("scroll",vl)}),[]),Hi(()=>{d(c==="failed")},[c]),gv(()=>{let le=s==="auto"||!Y.current||cr(),Ye=_||I,ae=i(()=>{le||(Ye?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 ae(),window.addEventListener("resize",ae),()=>window.removeEventListener("resize",ae)},[s,_,I]),Be.createElement(qm,{height:s,id:tt.SWAP_BOX_ID,className:`${y()} ${Qi()}`,ref:Y,showBanner:S},Be.createElement(fv,{prefix:ee?Be.createElement(gl,{onClick:()=>{x(),r.onBack?.()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!v&&Be.createElement(Sl,{container:W(),onClick:L,isConnected:!!l?.length}),r.onCancel&&Be.createElement(yl,{onClick:r.onCancel}))}),Be.createElement(Gm,{ref:R},n),Be.createElement(fl,{open:B,onClose:()=>b(!1),onConfirm:j}),Be.createElement(Vm,null,Be.createElement("div",{className:"footer__content"},A&&!w&&Be.createElement("div",{className:"footer__alert"},Be.createElement(dl,{onActivateTab:j}),Be.createElement(jm,{size:10})),a),Be.createElement(jm,{size:12}),Be.createElement("div",{className:`footer__logo ${C?"logo__show":"logo__hidden"}`},Be.createElement(mv,null))),S&&Be.createElement(Km,null,p?.swapBoxBanner?.element),Be.createElement(wl,{open:u,onClose:()=>d(!1)}))}i(ie,"Layout");import{styled as hv}from"@rango-dev/ui";var Zm="$20 $20 $10 $20",bl=hv("div",{padding:Zm,overflowY:"auto",flexGrow:1});import{styled as yv}from"@rango-dev/ui";var pe=yv("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 mo}from"@lingui/core";import{useState as xl}from"react";function Jm(){let[t,e]=xl(!1),[o,n]=xl(null),[r,a]=xl(null),{findToken:s}=k(),c=k().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(d,f){switch(d){case"duplicated":return{type:d,title:mo.t("Duplicate Token"),message:mo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:mo.t("Token Already Exists"),message:mo.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:mo.t("Token Not Found"),message:mo.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:f}})};case"network-error":return{type:d,title:mo.t("Network error"),message:mo.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:f})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===f.toLowerCase())){let y=p("duplicated");n(y);return}let g=await ut().getCustomToken({blockchain:d,address:f});if(!g||!g.token||g.error){let y=p("not-found",d);n(y);return}let m=g.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let y=p("token-exist");n(y);return}return a({...m,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",d);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(Jm,"useFetchCustomToken");var Av=wv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${kv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Rm(){let t=Ev(),[e]=Iv(),o=je(),n=k().blockchains(),r=e.get("blockchain")||"",a=Io(r,n),[s,c]=xv(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:f}=Jm(),h=!!a&&Jo(a,s),g=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Xe.createElement(ie,{header:{title:wn.t("Add Custom Token")}},Xe.createElement(pe,null,Xe.createElement(Av,null,Xe.createElement("div",null,Xe.createElement(Zs,{onClick:()=>t(O.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:wn.t("Select chain"),placeholder:wn.t("Select chain")}),Xe.createElement(El,{size:"24"}),Xe.createElement(bv,{size:"large",variant:"label"},wn.t("Enter Address")),Xe.createElement(El,{size:10}),Xe.createElement(vv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:wn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Xe.createElement(Tv,{color:"success",size:12}),onChange:C=>c(C.target.value)}),!h&&!!s&&Xe.createElement(Xe.Fragment,null,Xe.createElement(El,{size:4}),Xe.createElement(Sv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Xe.createElement(Cv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},wn.t("Import"))),Xe.createElement(lr,{token:p,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(Rm,"AddCustomTokenPage");import{i18n as nc}from"@lingui/core";import{useManager as mx}from"@rango-dev/queue-manager-react";import{Alert as fx,Button as gx,css as ic,Divider as rc,IconButton as Hg,styled as hx,Typography as yx,WalletIcon as Sx}from"@rango-dev/ui";import Oe,{useEffect as ga,useLayoutEffect as Cx,useRef as kx,useState as br}from"react";import{useNavigate as Tx}from"react-router-dom";import{i18n as Uo}from"@lingui/core";import{Alert as eb,BalanceErrors as tb,Button as Ef,ChevronLeftIcon as ob,Divider as Pl,MessageBox as nb,Typography as _l}from"@rango-dev/ui";import re,{useCallback as rb,useEffect as If,useMemo as ib,useState as xn}from"react";import{useNavigate as ab}from"react-router-dom";import{i18n as Bl}from"@lingui/core";import{Alert as Lv,ChevronDownIcon as Pv,CloseIcon as _v,Divider as sf,IconButton as lf,PasteIcon as Dv,Typography as $v,WalletIcon as Fv}from"@rango-dev/ui";import Fe,{useEffect as Ov,useRef as Uv}from"react";import Ki,{useRef as Wv}from"react";import*as vn from"@radix-ui/react-collapsible";import{keyframes as ef,styled as qi}from"@rango-dev/ui";var Il=300,Nv=ef({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Bv=ef({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),tf=qi(vn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Al=qi(vn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Gi=qi(vn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Nv} ${Il}ms ease-out`},false:{animation:`${Bv} ${Il}ms ease-out`}}}}),Vi=qi("div",{transition:`all ${Il}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function ji(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Wv(null);return Ki.createElement(tf,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&Ki.createElement(Al,{className:"collapsible_trigger",onClick:a},s),Ki.createElement(Gi,{className:"collapsible_content",open:e},r),c==="bottom"&&Ki.createElement(Al,{className:"collapsible_trigger",onClick:a},s))}i(ji,"CustomCollapsible");import{darkTheme as of,styled as Nl,TextField as Mv}from"@rango-dev/ui";var nf=Nl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),rf=Nl(Mv,{backgroundColor:"$neutral100"}),af=Nl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${of} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${of} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function cf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=U()(),{config:s}=k(),c=k().blockchains(),l=Jr(e.name,c),p=Uv(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!Jo(e,r),g=i(()=>{a("")},"handleClear"),m=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let S=await navigator.clipboard.readText();a(S),p?.current?.focus()}},"handlePaste"),C=i(()=>r?Fe.createElement(lf,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},Fe.createElement(_v,{size:12,color:"gray"})):d?null:Fe.createElement(lf,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},Fe.createElement(Dv,{size:16})),"renderSuffix");return Ov(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),Fe.createElement(nf,null,Fe.createElement(ji,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Fe.createElement(af,{id:"widget-custom-destination-collapsible-btn"},Fe.createElement("div",{className:"button__content"},Fe.createElement(Fv,{size:18,color:"info"}),Fe.createElement(sf,{size:4,direction:"horizontal"}),Fe.createElement($v,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Bl.t("Send to a different address"))),Fe.createElement(Vi,{orientation:n?"up":"down"},Fe.createElement(Pv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Fe.createElement(rf,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Bl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:C(),onChange:y=>{let S=y.target.value;a(S)}})),h&&Fe.createElement(Fe.Fragment,null,Fe.createElement(sf,{size:4}),Fe.createElement(Lv,{variant:"alarm",type:"error",title:Bl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(cf,"CustomDestination");import{css as zv,IconButton as Qv,SelectableWalletButton as Hv,styled as fo}from"@rango-dev/ui";var pf=fo("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),uf=fo("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),df=fo(Hv,{justifyContent:"center"}),mf=fo("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),ff=fo(Qv,{position:"absolute",left:"$20"}),gf=fo("div",{paddingTop:"$20"}),hf=zv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),yf=fo("div",{display:"flex"}),Sf=fo("div",{overflow:"visible",width:"100%"});import{i18n as Ml}from"@lingui/core";import{warn as jv}from"@rango-dev/logging-core";import{Divider as Xv,makeInfo as Yv,SelectableWallet as Zv,Typography as bf,WalletState as Xi}from"@rango-dev/ui";import it,{useEffect as xf,useState as mr}from"react";import{Image as Vv,MessageBox as Kv}from"@rango-dev/ui";import dr from"react";import{keyframes as qv,styled as Wl}from"@rango-dev/ui";var Cf=Wl("div",{position:"relative"}),Gv=qv({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),kf=Wl("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Gv} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Tf=Wl("div",{"& img":{borderRadius:"50%"}});import{i18n as bn}from"@lingui/core";function wf(t,e){switch(t){case"in-progress":return{type:"loading",title:bn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:bn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:bn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:bn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:bn.t("Request Rejected"),description:bn.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(wf,"generateMessageByStatus");function vf(t){let{status:e,displayName:o,image:n}=t,r=wf(e,o),a=e=="in-progress";return dr.createElement(Kv,{type:r.type,title:r.title,description:r.description,icon:a?dr.createElement(Cf,null,dr.createElement(Tf,null,dr.createElement(Vv,{src:n,size:45})),dr.createElement(kf,null)):void 0})}i(vf,"ExperimentalChainStatus");var Jv=7,Rv=3e3;function Ll(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{checkHasDeepLink:l,getWalletLink:p}=ln(),{blockchains:u,connectedWallets:d}=k(),[f,h]=mr(),[g,m]=mr(null),[C,y]=mr(!1),[S,T]=mr(null),{suggestAndConnect:v}=Yi(),{list:w}=xt({chain:e}),[A,B]=mr(w),b=w.length,E=a&&b-a>0,x=i(async I=>{y(!1),T("in-progress");try{await v(I.walletType,I.chain),T("completed")}catch{T("rejected")}},"addExperimentalChain");xf(()=>{B(I=>{let _=w.findIndex(Q=>n(Q.type,e));return E&&_>1?[w[_]].concat(w.filter((Q,H)=>H!==_)):I.map(Q=>w.find(H=>H.type===Q.type)??Q)})},[JSON.stringify(w)]);let M=document.getElementById(tt.SWAP_BOX_ID);return xf(()=>{let I=null;return(S==="completed"||S==="rejected")&&(I=setTimeout(()=>T(null),Rv)),()=>{I&&clearTimeout(I)}},[S]),it.createElement(it.Fragment,null,A.slice(0,a).map(I=>{let _=wu({connectedWallets:d,walletType:I.type,chain:e}),Q=I.state===Xi.CONNECTED,H=_?ao(_,Jv):"",j=Q&&!!I.needsNamespace&&!H,L=ci(u(),e),ee=!d.find(ze=>ze.walletType===I.type&&ze.chain===e),R=L&&ee&&I.state===Xi.CONNECTED,Y=i(async()=>{I.state===Xi.DISCONNECTED||j?h(I):R?(m({walletType:I.type,chain:e,address:_??""}),y(!0)):r({walletType:I.type,chain:e,address:_??""})},"onSelectableWalletClick"),le=Yv(I.state,{hasDeepLink:l(I.type)}),Ye=i(()=>R?Ml.t({id:"Add {chain} chain",values:{chain:e}}):j?Ml.t("Chain not connected"):H||le.description,"getWalletDescription"),ae=i(()=>I.state===Xi.CONNECTED?j?"neutral600":"neutral700":le.color,"getWalletDescriptionColor"),ve=g?.chain?Jr(g.chain,u()):void 0;return it.createElement(it.Fragment,{key:`${I.title}_${ve}`},!!g&&it.createElement(J,{id:"widget-wallets-list-watermarked-modal",open:!!g&&C,container:M,onClose:()=>{m(null)}},it.createElement(Fs,{id:"widget-wallets-list-experimental-chain-container",displayName:ve,onConfirm:()=>{x(g)}})),S&&it.createElement(J,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!S,onClose:T.bind(null,null),container:M},it.createElement(vf,{status:S,displayName:ve,image:I.image}),it.createElement(Xv,{direction:"vertical",size:32})),it.createElement(Zv,{hasDeepLink:l(I.type),key:I.type,id:"widget-wallets-list-selectable-wallet-btn",description:Ye(),descriptionColor:ae(),onClick:Y,selected:n(I.type,e),disabled:!c,...I,link:p(I.type)}))}),it.createElement(rr,{id:"widget-wallets-list-stateful-connect-modal",wallet:f,options:{defaultSelectedChains:o||[e]},onClose:()=>{h(void 0)},onConnect:()=>{t.onConnect&&(f?.type?t.onConnect(f.type):jv(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),E&&it.createElement(df,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},it.createElement(bf,{variant:"label",size:"medium"},Ml.t("Show more wallets"),it.createElement(bf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",b-(a??0)))))}i(Ll,"WalletList");var sb=2;function Af(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=ab(),c=k().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:f,setCustomDestination:h}=U()(),{config:g,connectedWallets:m,setWalletsAsSelected:C}=k(),[y,S]=xn(""),[T,v]=xn([]),[w,A]=xn(""),[B,b]=xn(!!f),E=ib(()=>Bo({filter:"all",quote:l}),[l]),x=Bo({filter:"required",quote:l}),M=c.find($=>$.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),I=i($=>x.includes($),"isWalletRequiredFor"),_=rb(()=>m.filter($=>$.selected&&E.includes($.chain)),[m,E]),[Q,H]=xn(_()),[j,L]=xn([]),ee=i(($,N)=>L(G=>G.concat({blockchain:$,walletType:N})),"addNextSelectedWallets"),R=T.length>0,Y=i(($,N)=>!!Q.find(G=>G.walletType===$&&G.chain===N&&G.selected&&(I(N)||!I(N)&&!f)),"isSelected"),le=i(($,N,G)=>{let se=!1;return $.map(K=>{if(K.chain===N){let X=K.selected;return!se&&G?(se=!0,X=!0):G||(X=!1),{...K,selected:X}}return K})},"updateSelectableWallets"),Ye=i($=>{b($),$?I(M?.name??"")||H(N=>le(N,M?.name||"",!1)):(h(""),H(N=>le(N,M?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),ae=i($=>{if(y&&S(""),Y($.walletType,$.chain))return;let G=m.find(se=>se.walletType===$.walletType&&se.chain===$.chain);G&&(n(),$.chain===M?.name&&B&&!I(M.name)&&(b(!1),h(null)),H(se=>se.filter(K=>K.chain!==$.chain).concat({...G,selected:!0})))},"onChange"),ve=i(()=>{let $=Q.filter(N=>N.selected);C($),p($),d(!0),o()},"onConfirmBalance"),ze=i(async()=>{v([]),A("");let $=await r?.({selectedWallets:Q.filter(G=>G.selected),customDestination:f}),N=$.warnings;N?.balance?.messages&&v(N.balance.messages),$.error&&A(kd($.error)),!$.error&&!N?.balance?.messages.length?ve():v(N?.balance?.messages??[])},"onConfirmWallets");If(()=>{H($=>{let N=[];return $.forEach(G=>{!m.some(K=>K.chain===G.chain&&K.walletType===G.walletType&&K.address===G.address)||N.push(G)}),N=N.concat(m.filter(G=>!!!N.find(K=>K.chain===G.chain)&&G.selected&&E.includes(G.chain))),N})},[m,E]),If(()=>{let $=[];j.length>0&&(j.forEach(N=>{let G=m.find(se=>se.chain===N.blockchain&&se.walletType===N.walletType);G?ae(G):$.push(N)}),L($))},[m,j]);let Ie=document.getElementById(tt.SWAP_BOX_ID);return re.createElement(J,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:Ie,...!y&&{styles:{container:{height:"100%"}},footer:re.createElement(yf,null,re.createElement(Ef,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Xd(a,B,f,l,Q,M),onClick:ze,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Uo.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:re.createElement(mf,null,re.createElement(ff,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:S.bind(null,"")},re.createElement(ob,{size:16})),re.createElement(_l,{variant:"headline",size:"small"},Uo.t({id:"Your {blockchainName} wallets",values:{blockchainName:yt(y,c)}})))},anchor:"center"},re.createElement(J,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:R,onClose:v.bind(null,[]),container:Ie},re.createElement(nb,{title:Uo.t("Insufficient account balance"),type:"error",description:re.createElement(tb,{messages:T??[]})},re.createElement(Ef,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:ve},Uo.t("Proceed anyway")))),y&&re.createElement(gf,null,re.createElement("div",{className:hf()},re.createElement(Ll,{chain:y,quoteChains:E,isSelected:Y,selectWallet:ae,onShowMore:()=>S(y),onConnect:$=>{ee(y,$)}}))),!y&&re.createElement(re.Fragment,null,w&&re.createElement(re.Fragment,null,re.createElement(eb,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Uo.t(w)}),re.createElement(Pl,{size:12})),re.createElement(Sf,null,E.map(($,N)=>{let G=c.find(bt=>bt.name===$),se=`wallet-${N}`,K=N===E.length-1,X=K&&M&&g?.customDestination!==!1;return re.createElement("div",{key:se},re.createElement(pf,null,re.createElement(_l,{variant:"title",size:"xmedium"},Uo.t({id:"Your {blockchainName} wallets",values:{blockchainName:G?.shortName}})),re.createElement(_l,{variant:"label",color:"$neutral700",size:"medium"},Uo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:G?.shortName}}))),re.createElement(Pl,{size:24}),re.createElement(uf,null,re.createElement(Ll,{chain:$,quoteChains:E,isSelected:Y,selectWallet:ae,limit:sb,onShowMore:()=>S(G?.name??""),onConnect:bt=>{ee($,bt)}})),!K&&re.createElement(Pl,{size:32}),X&&re.createElement(cf,{blockchain:M,open:B,handleOpenChange:Ye}))}))))}i(Af,"ConfirmWalletsModal");import{i18n as Ab}from"@lingui/core";import{Alert as Nb,Button as Bb,Divider as Kf,InfoIcon as Wb}from"@rango-dev/ui";import He from"react";import{Alert as pb,Button as ub,Divider as Fl,NoRouteIcon as db,RefreshIcon as mb,Typography as _f}from"@rango-dev/ui";import dt from"react";import{i18n as Nf}from"@lingui/core";var lb=24,cb=60;function Bf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ne().genericServerError,action:{onClick:n,title:Nf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ne().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Nf.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(Bf,"makeInfo");var Dl=(o=>(o[o.small=lb]="small",o[o.large=cb]="large",o))(Dl||{}),$l=(o=>(o.small="small",o.large="medium",o))($l||{});import{styled as Zi}from"@rango-dev/ui";var Wf=Zi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Mf=Zi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Lf=Zi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Pf=Zi("div",{padding:"$6 $0"});function fr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=k().getDisabledLiquiditySources(),s=k().toggleAllLiquiditySources,c=k().swappers(),l=Bf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),dt.createElement(Wf,{id:"widget-no-result-container"},dt.createElement(db,{size:Dl[n],color:"gray"}),dt.createElement(Fl,{size:4}),dt.createElement(_f,{variant:"title",size:$l[n]},ne().noResultError.title),n==="large"&&dt.createElement(Fl,{size:4}),!!l.description&&dt.createElement(Mf,{size:n},dt.createElement(_f,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),dt.createElement(Fl,{size:n==="large"?"24":"4"}),!!l.alert&&dt.createElement(Lf,{size:n},dt.createElement(pb,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&dt.createElement(ub,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:dt.createElement(Pf,null,dt.createElement(mb,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(fr,"NoResult");import{i18n as hr}from"@lingui/core";import{Button as hb,Divider as yb,MessageBox as Sb,Typography as Cb,WarningIcon as kb}from"@rango-dev/ui";import Xt from"react";import{Typography as Uf}from"@rango-dev/ui";import Ul from"react";import{Button as fb,darkTheme as gb,styled as gr}from"@rango-dev/ui";var Df=gr("div",{width:"100%"}),Ol=gr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),$f=gr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${gb} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ff=gr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Of=gr(fb,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function zf(t){let{title:e,value:o,valueColor:n}=t;return Ul.createElement($f,null,Ul.createElement(Uf,{size:"medium",variant:"label",className:"_title"},e),Ul.createElement(Uf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(zf,"QuoteErrorsModalItem");function Qf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:hr.t("Swapping"),value:D(r.inputUsdValue,4,4)},{title:hr.t("Gas cost"),value:D(r.totalFee,2,2)},{title:hr.t("Receiving"),value:D(r.outputUsdValue,4,4)},{title:hr.t("Price impact"),value:D(r.priceImpact,2,2),valueColor:`${s}500`}];return Xt.createElement(J,{id:"widget-high-value-loss-warning-modal",footer:Xt.createElement(hb,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Xt.createElement(kb,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:W()},Xt.createElement(Sb,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Xt.createElement(Ol,null,Xt.createElement(yb,{size:"4"}),Xt.createElement(Cb,{size:"small",variant:"title"},hr.t("Details")),Xt.createElement(Ol,null,c.map((l,p)=>Xt.createElement(zf,{key:p,...l})))))}i(Qf,"HighValueLossWarningModal");import{i18n as En}from"@lingui/core";function Hf(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=En.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=En.t("Increase")),o;if(t){switch(t.type){case 0:{jt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().highValueLossError.title;break}case 4:{o.title=En.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=En.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=En.t("Increase");break}case 3:{o.title=En.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Hf,"makeAlerts");function qf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(qf,"getRequiredSlippage");import{i18n as In}from"@lingui/core";import{Button as Tb,Divider as zl,MessageBox as wb,WarningIcon as vb}from"@rango-dev/ui";import yo from"react";import{useNavigate as bb}from"react-router-dom";function Gf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=bb();return yo.createElement(J,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:W(),onClose:o},yo.createElement(wb,{type:"warning",title:r.type===3?In.t("High slippage"):In.t("Low slippage"),description:r.type===3?In.t("Caution, your slippage is high. Your trade may be front run."):In.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},yo.createElement(zl,{size:18}),yo.createElement(zl,{size:32}),yo.createElement(Of,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},yo.createElement(vb,{color:"white",size:16}),In.t("Swap anyway")),yo.createElement(zl,{size:10}),yo.createElement(Tb,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+O.settings)},In.t("Change Slippage"))))}i(Gf,"SlippageWarningModal");import{Button as xb,MessageBox as Eb,WarningIcon as Ib}from"@rango-dev/ui";import Ji from"react";function Vf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ji.createElement(J,{id:"widget-unknown-price-warning-modal",footer:Ji.createElement(xb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Ji.createElement(Ib,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:W()},Ji.createElement(Eb,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(Vf,"UnknownPriceWarningModal");function yr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:d,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,m=Hf(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let C=!!m&&!s,y=i(S=>{if(S==="change-slippage"){let T=o?.type===3||o?.type===4?o:null,v=qf(e,T);f?.(v)}else S==="change-settings"&&d()},"onclickActionButton");return He.createElement(He.Fragment,null,g&&He.createElement(He.Fragment,null,He.createElement(Kf,{size:10}),He.createElement(fr,{skipAlerts:s,error:o,fetch:c})),C&&He.createElement(Df,null,He.createElement(Kf,{size:10}),He.createElement(Nb,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:He.createElement(Ff,{onClick:l},He.createElement(Wb,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:He.createElement(Bb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>y(m.action)},m.actionButtonTitle||Ab.t("Change"))}})),e&&He.createElement(He.Fragment,null,e.type===0&&He.createElement(Qf,{...h,warning:e}),(e.type===3||e.type===2)&&He.createElement(Gf,{...h,warning:e}),e.type===1&&He.createElement(Vf,{...h,warning:e})))}i(yr,"QuoteWarningsAndErrors");import ax from"bignumber.js";import ua from"react";import{i18n as zo}from"@lingui/core";import{Alert as Kb,Divider as Nn,FullExpandedQuote as jb,InfoIcon as Xb,NumericTooltip as Tg,QuoteTag as Yb,StepDetails as Zb,TokenAmount as Jb,Typography as Bn}from"@rango-dev/ui";import Yl from"bignumber.js";import z,{useRef as Rb,useState as ex}from"react";import{styled as Ql}from"@rango-dev/ui";var Hl=Ql("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),jf=Ql("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Xf=Ql("div",{width:"100%",display:"flex"});import*as Ri from"@radix-ui/react-collapsible";import{Button as Mb,css as Sr,darkTheme as We,Image as Yf,styled as Je,Typography as Lb}from"@rango-dev/ui";var Pb=300,Zf=Je(Ri.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"}}]}),Jf=Sr({padding:"$10 $15"}),Rf=Je(Mb,{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"}}}),eg=Je("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${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"}}}}]}),tg=Sr({width:"100%",padding:"$15 $15 $10 $15"}),og=Sr({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),An=Sr({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),ng=Sr({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${We} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),rg=Je(Ri.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Yf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Yf}`]:{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"}}}),ig=Je("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),ag=Je(Gi,{width:"100%",background:"inherit"}),ql=Je("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Pb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),hH=Je("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),sg=Je("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${We} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),lg=Je("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Gl=Je(Lb,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),cg=Je("div",{display:"flex",flexWrap:"wrap"}),Vl=Je("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),pg=Je("div",{display:"flex"}),ea=Je("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${We} &`]:{borderTopColor:"$neutral800"}});import{i18n as $t}from"@lingui/core";import{ChevronDownIcon as Db,CloseIcon as $b,Divider as na,IconButton as Fb,NumericTooltip as Ob,QuoteCost as Ub,Typography as It}from"@rango-dev/ui";import Z,{useState as fg}from"react";import{css as _b,styled as ta}from"@rango-dev/ui";var oa=ta("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Kl=ta("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),ug=ta("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),dg=ta("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),mg=_b({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var zb=i(t=>t.fee.isZero()?null:Z.createElement(oa,null,Z.createElement(It,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(It,{variant:"label",size:"medium"},"$",D(t.fee,4,4))),"NonPayableFee");function jl(t){let[e,o]=fg(!1),[n,r]=fg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?No():W(),m=zd(h),C=D(c,2,2);return Z.createElement(Z.Fragment,null,Z.createElement(Ub,{onClickFee:d?y=>{y.stopPropagation(),o(!e)}:void 0,fee:C,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?$t.t("View more info"):void 0,tooltipContainer:g}),Z.createElement(J,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:Z.createElement(dg,{style:{textAlign:f?"left":"center"}},Z.createElement(It,{variant:"title",size:"medium"},$t.t("Gas & Fee Explanation")),Z.createElement(Fb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Z.createElement($b,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(ug,null,Z.createElement(It,{variant:"title",size:"small"},$t.t("Details")),Z.createElement(na,{size:10}),Object.entries(m.payable).flatMap(([y,S])=>S.map((T,v)=>{let w=`payable-fee-${v}`,A=qs(T);return Z.createElement(oa,{key:w},Z.createElement(It,{variant:"label",size:"medium",color:"neutral600"},Os(y,$t.t)),Z.createElement(Ob,{content:T.amount,container:g},Z.createElement(It,{variant:"label",size:"medium"},D(T.amount,2,2),T.asset.symbol," ($",D(A,4,4),")")))})),Z.createElement(oa,{className:"total_payable_fee"},Z.createElement(It,{variant:"label",size:"medium"},$t.t("Total Payable Fee")),Z.createElement(It,{variant:"label",size:"medium"},"$",D(c,4,4))),Z.createElement(Kl,null),!!Object.keys(m.nonePayable).length&&Z.createElement(ji,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:Z.createElement("div",{className:mg()},Z.createElement(It,{size:"small",variant:"body",color:"neutral700"},n?$t.t("Hide non-payable fees"):$t.t("Show non-payable fees")),Z.createElement(na,{size:4,direction:"horizontal"}),Z.createElement(Vi,{orientation:n?"up":"down"},Z.createElement(Db,{size:12,color:"gray"}))),open:n},Z.createElement(It,{size:"small",variant:"title"},$t.t("Description")),Z.createElement(na,{size:4}),Z.createElement(It,{size:"small",variant:"body",color:"neutral700"},$t.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),Z.createElement(na,{size:10}),Object.entries(m.nonePayable).map(([y,S],T)=>{let v=Ud(S),w=Os(y,$t.t),A=`non-payable-fee-${T}`;return Z.createElement(zb,{key:A,fee:v,label:w})}),Z.createElement(Kl,null)))))}i(jl,"QuoteCostDetails");import{i18n as yg}from"@lingui/core";import{TokenAmount as Sg}from"@rango-dev/ui";import ra from"react";import{css as Qb,styled as Hb}from"@rango-dev/ui";var gg=Hb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),hg=Qb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function Cr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return ra.createElement(gg,null,ra.createElement(Sg,{direction:"horizontal",label:yg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:W(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),ra.createElement("div",{className:hg()}),ra.createElement(Sg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:W(),label:yg.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(Cr,"QuoteSummary");import{i18n as Cg}from"@lingui/core";import{ChevronDownIcon as qb,ChevronRightIcon as Gb,Divider as Xl,Image as Vb,Tooltip as la,Typography as ia}from"@rango-dev/ui";import q from"react";var aa=4,sa=6,kr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||W();return q.createElement(la,{container:c,side:"bottom",sideOffset:4,open:r,content:e},q.createElement(ig,{className:n,state:a},q.createElement(Vb,{src:o,size:16})))},"ImageComponent");function kg(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||W(),p=r.length,u=Bd(r),{isTablet:d,isMobile:f}=kn();return q.createElement(rg,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},q.createElement("div",{className:An()},q.createElement(ia,{variant:"body",size:"xsmall"},Cg.t("Via:")),q.createElement(Xl,{direction:"horizontal",size:4}),r.map((h,g)=>{let m=`item-${g}`,C=q.createElement(ql,null,q.createElement(Gb,{size:12,color:"black"}));return f||d?q.createElement(q.Fragment,{key:m},q.createElement(kr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&q.createElement(q.Fragment,null,C)):q.createElement(q.Fragment,{key:m},p<=aa||p>aa&&g<aa-1?q.createElement(q.Fragment,null,q.createElement(kr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&q.createElement(q.Fragment,null,C)):g===aa-1&&q.createElement(la,{container:l,side:"bottom",align:"end",sideOffset:4,content:q.createElement("div",{className:An()},C,r.map((y,S)=>{let T=`image-${S}`;return S>=g&&q.createElement(q.Fragment,{key:T},q.createElement(kr,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),S!==p-1&&q.createElement(q.Fragment,null,C))}))},q.createElement(Vl,{state:r.find((y,S)=>S>=g&&(y.state==="error"||y.state==="warning"))?.state},q.createElement(ia,{size:"xsmall",variant:"body"},"+",p-g))))})),q.createElement("div",{className:An()},q.createElement("div",{className:"blockchains_section"},q.createElement("div",{className:An()},q.createElement(ia,{variant:"body",size:"xsmall"},Cg.t("Chains:")),q.createElement(Xl,{direction:"horizontal",size:4}),u.map((h,g)=>q.createElement(q.Fragment,{key:h.displayName},u.length<=sa||u.length>sa&&g<sa-1?q.createElement(la,{container:l,side:"bottom",content:h.displayName,sideOffset:4},q.createElement(kr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===sa-1&&q.createElement(la,{container:l,side:"bottom",align:"end",sideOffset:4,content:q.createElement("div",{className:An()},u.map((m,C)=>C>=g&&q.createElement(kr,{key:m.displayName,content:"",src:m.image??"",open:!1,className:C>g?"blockchainImage":"",container:c})))},q.createElement(Vl,{className:"blockchainImage"},q.createElement(ia,{size:"xsmall",variant:"body"},"+",u.length-g))))),q.createElement(Xl,{direction:"horizontal",size:32}))),q.createElement(ql,{orientation:a?"up":"down"},q.createElement(qb,{size:12,color:"black"}))))}i(kg,"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:f}=t,h=k().blockchains(),{findToken:g}=k(),m=k().swappers(),{customSlippage:C,slippage:y}=k(),S=C||y,[T,v]=ex(t.expanded),w=Rb(null),A=D(o.value,6,6),B=D(n.value,6,6),b=n.usdValue?D(n.usdValue,4,4):"",E=Kt(o.usdValue,n.usdValue??null),x=D(E,2,2),M=jt(E??0),I=i((Ie,$)=>Ie.map((N,G)=>{let se,K=r?.type===3&&r.swap.swapperId===N.swapperId,X=r?.type===4&&!!r.recommendedSlippages?.[G],bt=a?.type===2&&!!a.recommendedSlippages?.[G],Qe=K||X,Le=bt;Qe?se="error":Le&&(se="warning");let lt=Qe?zo.t("Slippage Error"):zo.t("Slippage Warning");return K&&(lt=zo.t("Bridge Limit Error")),{swapper:{displayName:Un(N.swapperId,m)??"",image:N.swapperLogo},from:{token:{displayName:N.from.symbol,image:N.from.logo},chain:{displayName:yt(N.from.blockchain,h)??"",image:N.from.blockchainLogo},price:{value:G===0&&!$?D(o.value,6,6):D(N.fromAmount,6,6),usdValue:D((N.from.usdPrice??0)*parseFloat(N.fromAmount),4,4),realValue:G===0?o.value:N.fromAmount,realUsdValue:new Yl(N.from.usdPrice??0).multipliedBy(N.fromAmount).toString()}},to:{token:{displayName:N.to.symbol,image:N.to.logo},chain:{displayName:yt(N.to.blockchain,h)||"",image:N.to.blockchainLogo},price:{value:D(N.toAmount,6,6),usdValue:D((N.to.usdPrice??0)*parseFloat(N.toAmount),4,4),realValue:N.toAmount,realUsdValue:new Yl(N.to.usdPrice??0).multipliedBy(N.toAmount).toString()}},state:se,alerts:Qe||Le?z.createElement(jf,{dense:d},z.createElement(Kb,{variant:"alarm",type:Qe?"error":"warning",title:lt,id:"widget-quote-footer-step-alarm-alert",footer:z.createElement(Xf,null,K&&z.createElement("div",null,z.createElement(Bn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),z.createElement(Nn,{direction:"vertical",size:2}),z.createElement(Bn,{size:"xsmall",variant:"body",color:"neutral900"},zo.t({id:"Yours: {amount} {symbol}",values:{amount:D(N.fromAmount,6,6),symbol:N?.from.symbol}}))),(X||bt)&&!K&&z.createElement("div",null,z.createElement(Bn,{size:"xsmall",variant:"body",color:"neutral900"},zo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[G]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[G]}}})),z.createElement(Nn,{direction:"vertical",size:2}),z.createElement(Bn,{size:"xsmall",variant:"body",color:"neutral900"},zo.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Qn(N.estimatedTimeInSeconds),fee:D(Hs(N,g),2,2),internalSwaps:N.internalSwaps?I(N.internalSwaps):void 0}}),"getQuoteSteps"),_=I(e?.swaps??[]),Q=_.length,H=f||W(),j=Md(t.quote.tags||[]),L=!!u,ee=ai(e?.swaps),R=Qn(ee),Y=Bi(e?.swaps??[],g),le=D(Y,2,2),Ye=Y.gte(new Yl(wd)),ae=ee/bd>=vd,ve=_[Q-1],ze=_[0];return!ze||!ve?null:d?z.createElement(jb,{selected:c,fee:le,time:R,tooltipContainer:No(),steps:_,tags:j,id:"widget-quote-full-expanded-quote-container",quoteCost:z.createElement(jl,{quote:e,fullExpandedMode:!0,time:R,fee:Y,feeWarning:Ye,timeWarning:ae,showModalFee:p,steps:Q}),percentageChange:x,warningLevel:M,outputPrice:{value:B,usdValue:b,realValue:n.value,realUsdValue:n.usdValue}}):z.createElement(eg,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},z.createElement("div",{className:tg()},!l&&j.length?z.createElement(z.Fragment,null,z.createElement(pg,null,j.map((Ie,$)=>{let N=`${Ie.value}_${$}`;return z.createElement(z.Fragment,{key:N},z.createElement(Yb,{label:Ie.label,value:Ie.value}),z.createElement(Nn,{size:4,direction:"horizontal"}))})),z.createElement(ea,null),!L&&z.createElement(Nn,{size:4})):null,z.createElement("div",{id:"portal-root",className:og()},z.createElement(jl,{quote:e,time:R,fee:Y,feeWarning:Ye,timeWarning:ae,showModalFee:p,steps:Q}),L&&z.createElement(Rf,{onClick:Ie=>{Ie.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},z.createElement(Bn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},zo.t("See All Routes")))),s==="basic"&&z.createElement("div",{className:ng()},z.createElement(lg,null,z.createElement(Xb,{size:12,color:"gray"})),z.createElement(cg,null,z.createElement(Gl,{size:"small",variant:"body"},`${A} ${ze.from.token.displayName} = `),z.createElement(Tg,{content:n.value,container:H,open:n.value?void 0:!1},z.createElement(Gl,{size:"small",variant:"body"},"\xA0",`${B} ${ve.to.token.displayName}`))),z.createElement(Tg,{content:n.usdValue,container:H},z.createElement(Nn,{size:2,direction:"horizontal"}),z.createElement(Bn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${b})`))),s==="list-item"&&z.createElement(Jb,{id:"widget-quote-token-amount-container",tooltipContainer:H,type:"output",direction:"vertical",price:{value:B,usdValue:b,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:ve.to.token.displayName,image:ve.to.token.image},chain:{image:ve.to.chain.image},percentageChange:x,warningLevel:M}),s==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(Cr,{from:ze.from,to:ve.to,percentageChange:x,warningLevel:M}),z.createElement(Nn,{size:4}))),z.createElement(Zf,{selected:c,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:v},z.createElement(kg,{type:s,quoteRef:w,selected:c,setExpanded:v,container:H,expanded:T,steps:_}),z.createElement(ag,{open:T},z.createElement(sg,null),z.createElement("div",{className:Jf()},_.map((Ie,$)=>{let N=`item-${$}`;return z.createElement(Zb,{type:"quote-details",className:"widget-quote-step-details-container",key:N,tooltipContainer:H,step:Ie,hasSeparator:$!==_.length-1,state:Ie.state})})))))}i(Zl,"Quote");import{Divider as rx,Skeleton as ix}from"@rango-dev/ui";import Rt from"react";import{darkTheme as tx,styled as ca}from"@rango-dev/ui";var wg=ca("div",{$$color:"$colors$neutral100",[`.${tx} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),vg=ca("div",{paddingTop:"$2"}),bg=ca("div",{paddingLeft:"$8"}),xg=ca("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as _g,Divider as At,Skeleton as mt}from"@rango-dev/ui";import V from"react";import{css as ox,styled as Jt}from"@rango-dev/ui";var Jl=Jt("div",{display:"flex"}),Eg=Jt("div",{padding:"$10 $0 $20"}),Ig=Jt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Ag=Jt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Ng=Jt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Bg=Jt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Wg=Jt("div",{width:"65%",display:"flex",justifyContent:"start"}),Mg=Jt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Lg=Jt("div",{padding:"$15 $0 $15 $0"}),Pg=ox({display:"flex",justifyContent:"space-between",alignItems:"center"});function Tr(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(Ng,null,V.createElement(Wg,null,V.createElement(_g,{loading:!0,size:"medium"}),V.createElement(At,{size:8,direction:"horizontal"}),V.createElement(Mg,null,V.createElement(mt,{height:10,width:60,variant:"rounded"}),V.createElement(At,{size:4}),V.createElement(mt,{height:15,variant:"rounded"}))),V.createElement(mt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(Jl,null,V.createElement(mt,{width:65,height:20,variant:"rounded"}),V.createElement(At,{size:4,direction:"horizontal"}),V.createElement(mt,{width:65,height:20,variant:"rounded"}),V.createElement(At,{size:4,direction:"horizontal"}),V.createElement(mt,{width:65,height:20,variant:"rounded"})),V.createElement(ea,null),!r&&V.createElement(At,{size:4})),V.createElement("div",{className:Pg()},V.createElement(Jl,null,V.createElement(mt,{width:60,height:10,variant:"rounded"}),V.createElement(At,{size:4,direction:"horizontal"}),V.createElement(mt,{width:60,height:10,variant:"rounded"}),V.createElement(At,{size:4,direction:"horizontal"}),V.createElement(mt,{width:60,height:10,variant:"rounded"})),r&&V.createElement(mt,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(Eg,null,V.createElement(mt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(Ig,null,V.createElement(Ag,null,V.createElement(_g,{loading:!0,size:"medium"}),V.createElement(At,{direction:"horizontal",size:4}),V.createElement(mt,{height:15,width:150,variant:"rounded"})),V.createElement(At,{size:10}),V.createElement(mt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(At,{size:4}),V.createElement(Lg,null,n,V.createElement(Bg,null),n),V.createElement(At,{size:12})))}i(Tr,"QuoteSummarySkeleton");import{ChainToken as Ug,Divider as ec,NextIcon as nx,Skeleton as pa}from"@rango-dev/ui";import Me from"react";import{styled as wr}from"@rango-dev/ui";var Dg=wr("div",{display:"flex",alignItems:"start"}),$g=wr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Rl=wr("div",{display:"flex",alignItems:"center",flexGrow:1}),Fg=wr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Og=wr("div",{display:"flex",alignItems:"center"});function Ft(t){let{separator:e=!0}=t;return Me.createElement(Me.Fragment,null,Me.createElement(Og,null,Me.createElement(pa,{height:22,width:22,variant:"circular"}),Me.createElement(ec,{direction:"horizontal",size:8}),Me.createElement(pa,{height:15,width:148,variant:"rounded"})),Me.createElement(Dg,null,Me.createElement(xg,{hideSeparator:!e}),Me.createElement($g,{extraSpace:e},Me.createElement(Rl,null,Me.createElement(Ug,{size:"small",loading:!0}),Me.createElement(ec,{direction:"horizontal",size:8}),Me.createElement(pa,{height:12,variant:"rounded"})),Me.createElement(Fg,null,Me.createElement(nx,{color:"gray",size:16})),Me.createElement(Rl,null,Me.createElement(Ug,{size:"small",loading:!0}),Me.createElement(ec,{direction:"horizontal",size:8}),Me.createElement(pa,{height:12,variant:"rounded"})))))}i(Ft,"StepSkeleton");function vr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Rt.createElement(wg,{expanded:o,rounded:e!=="basic"},Rt.createElement(Tr,{type:e,tagHidden:n}),Rt.createElement(vg,null,Rt.createElement(ix,{height:15,variant:"rounded"})),o&&Rt.createElement(bg,null,Rt.createElement(rx,{size:24}),Rt.createElement(Ft,null),Rt.createElement(Ft,null),Rt.createElement(Ft,{separator:!1})))}i(vr,"QuoteSkeleton");function Qo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:d,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:m,inputUsdValue:C}=U()(),y=e?.outputAmount?new ax(e?.outputAmount):null,S=e?kt(e):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?ua.createElement(Hl,null,ua.createElement(vr,{tagHidden:c,type:o,expanded:s})):v?ua.createElement(Hl,{onClick:()=>l?.(e),id:d},ua.createElement(Zl,{quote:e,error:r,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:h,input:{value:m,usdValue:C?.toString()??""},output:{value:y?.toString()??"",usdValue:S?.toString()??""}})):null}i(Qo,"QuoteInfo");import{warn as px}from"@rango-dev/logging-core";import{calculatePendingSwap as ux}from"@rango-dev/queue-manager-rango-preset";import{useEffect as dx}from"react";import{useRef as sx,useState as lx}from"react";var cx=2e3;function da({request:t}){let[e,o]=lx(!1),n=sx(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,cx)),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(da,"useFetch");function zg(){let{fetch:t,loading:e,cancelFetch:o}=da({request:async(n,r)=>await ut().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(zg,"useFetchConfirmQuote");function ma(t){if(!t.swaps)throw new Error(ne().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=tc(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ma,"throwErrorIfResponseIsNotValid");function tc(t){if($d(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=Fd(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=Qd(t);if(o){let n=Wi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(tc,"getQuoteError");function Qg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=hn({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(Qg,"generateWarnings");function fa(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(fa,"handleQuoteErrors");function oc(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=U()(),{slippage:l,customSlippage:p}=k(),u=k().getDisabledLiquiditySources(),d=k().blockchains(),f=k().tokens(),{findToken:h}=k(),{swapMode:g}=nt(),m=p||l,{fetch:C,cancelFetch:y,loading:S}=zg();return dx(()=>y,[]),{loading:S,fetch:i(async v=>{let w=v.selectedWallets,A=v?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let B=w.reduce((E,x)=>(E[x.chain]=x.address,E),{}),b={requestId:a?.requestId||"",selectedWallets:B,destination:A||void 0};try{return await C(b,!0).then(E=>{let{result:x}=E;if(!x)throw new Error(E.error??"Error fetching updated quote");ma({diagnosisMessages:x.diagnosisMessages,requestId:x.requestId,swaps:x.result?.swaps});let M={outputAmount:x.result?.outputAmount,requestId:x.requestId,resultType:x.result?.resultType,swaps:x.result?.swaps||[],validationStatus:x.validationStatus,requestAmount:x.requestAmount};r(M);let I={slippage:m.toString(),disabledSwappersGroups:u},_=Qg({previousQuote:a??void 0,currentQuote:M,meta:{blockchains:d},selectedWallets:w,userSlippage:m,inputUsdValue:n,findToken:h});c();let Q=!!_.balance,H=ux({inputAmount:o.toString(),bestRoute:x,wallets:qd(w),settings:I,validateBalanceOrFee:!Q,meta:{blockchains:d,tokens:f},swapMode:g});return{quote:M,swap:H,error:null,warnings:_}})}catch(E){let x=fa(E);return x.type!==2&&px(new Error("confirm swap error"),{tags:{...x,type:Ze[x.type],initialQuote:a,requestBody:b}}),{swap:null,error:x,warnings:null}}},"fetch"),cancelFetch:y}}i(oc,"useConfirmSwap");var wx=hx("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Hg}`]:{width:"$48",height:"$48"}}),vx=ic({flexGrow:1,paddingRight:"$10"}),bx=ic({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),xx=ic({display:"flex",justifyContent:"space-between",alignItems:"center"});function qg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=U()(),s=Tx(),[c,l]=br(""),p=!n,[u,d]=br(!1),[f,h]=br(!1),{isActiveTab:g}=oe(),m=k().getDisabledLiquiditySources(),C=kx(m),{manager:y}=mx(),{fetch:S,loading:T,cancelFetch:v}=oc(),[w,A]=br({swap:null,error:null,warnings:null}),[B,b]=br(!1),E=i(async({selectedWallets:L,customDestination:ee})=>{let R=await S?.({selectedWallets:L,customDestination:ee});return A(R),R},"onConfirmSwap"),x=i(async()=>{if(w.swap&&n)try{await y?.create("swap",{swapDetails:w.swap},{id:w.swap.requestId});let L=`../${O.swaps}/${w.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),M=i(async()=>{h(!0),await x(),h(!1)},"onConfirm"),I=i(async()=>{w.warnings?.quote&&Nd(w.warnings.quote)&&!a?b(!0):await M()},"onStartConfirmSwap"),_=i(async()=>{A({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(L=>{A(L)}).catch(L=>console.error(L))},"onRefresh");ga(()=>{!!C.current.length&&!m.length&&_(),C.current=m},[m.length]),ga(()=>{p&&v()},[p]),ga(()=>{p&&d(p)},[p]),ga(()=>{p||S({selectedWallets:o,customDestination:r}).then(L=>A(L)).catch(L=>console.error(L))},[]),Cx(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let Q=w.warnings?.quote??null,H=w.error,j=[];if(c&&j.push(Oe.createElement(fx,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),Q||H){let L=`../${O.settings}`;j.push(Oe.createElement(yr,{warning:Q,error:H,couldChangeSettings:!1,refetchQuote:_,skipAlerts:H?.type===4||Q?.type===2,showWarningModal:B,confirmationDisabled:!g,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await x()},onChangeSettings:()=>s(L)}))}return Oe.createElement(ie,{header:{title:nc.t("Confirm Swap"),onWallet:()=>{let L=`../${O.wallets}`;s(L)}},footer:Oe.createElement(wx,null,Oe.createElement("div",{className:vx()},Oe.createElement(gx,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||f,disabled:!!w.error||!g,onClick:I},nc.t("Start Swap"))),Oe.createElement(Hg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||f,disabled:!g,onClick:d.bind(null,!0)},Oe.createElement(Sx,{size:24})))},u&&Oe.createElement(Af,{open:u,onClose:()=>d(!1),onCancel:v,loading:T,onCheckBalance:E}),Oe.createElement(pe,null,Oe.createElement("div",{className:xx()},Oe.createElement(yx,{variant:"title",size:"small"},nc.t("You get")),Oe.createElement("div",{className:bx()},Oe.createElement(Fi,{onClick:!T&&!u&&!B?_:void 0}))),Oe.createElement(rc,{size:"12"}),bm(j.map((L,ee)=>({element:L,key:`alert-${ee}`})),Oe.createElement(rc,{size:10})),j.length>0?Oe.createElement(rc,{size:10}):null,Oe.createElement(Qo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:w.error,loading:T,warning:w.warnings?.quote??null})))}i(qg,"ConfirmSwapPage");import{i18n as to}from"@lingui/core";import{Button as yc,CustomTokensZeroStateDarkIcon as Gx,CustomTokensZeroStateIcon as Vx,DeleteIcon as Kx,Divider as Nr,IconButton as jx,MessageBox as Xx,NotFound as Yx,styled as Cc}from"@rango-dev/ui";import ge,{useState as Sc}from"react";import{useNavigate as Zx}from"react-router-dom";import{CloseIcon as Ex,IconButton as Ix,SearchIcon as Ax,TextField as Nx}from"@rango-dev/ui";import Wn from"react";import{styled as Gg}from"@rango-dev/ui";var Vg=Gg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),Kg=Gg("div",{width:"100%","& ._text-field":{paddingLeft:"$10","& input":{paddingLeft:"$2",paddingTop:"$12",paddingBottom:"$12"}}});function Nt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...d}=t,f=s.length?Wn.createElement(Ix,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},Wn.createElement(Ex,{color:"gray",size:10})):null;return p&&(f=p),Wn.createElement(Kg,null,Wn.createElement(Nx,{prefix:Wn.createElement(Vg,null,Wn.createElement(Ax,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d}))}i(Nt,"SearchInput");import{i18n as hc}from"@lingui/core";import{Button as Lx,CustomTokenWarning as Px,darkTheme as ih,Divider as eo,ExternalLinkIcon as _x,Image as Dx,ListItem as $x,NotFound as Fx,PinIcon as Ox,Skeleton as Ho,Typography as Ir,VirtualizedList as Ux}from"@rango-dev/ui";import P,{useState as zx}from"react";import{useTranslation as Qx}from"react-i18next";import{Divider as nh,ListItem as Mx,Skeleton as Er}from"@rango-dev/ui";import Bt from"react";import{css as Mn,darkTheme as ac,ImageContainer as Bx,ListItemButton as Wx,styled as at,Typography as jg}from"@rango-dev/ui";var sc=Mn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),lc=Mn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),cc=Mn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),pc=Mn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ac} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),uc=Mn({}),dc=Mn(),Xg=at("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),mc=at("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ha=at("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${lc}`]:{[`& .${pc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${uc}`]:{bottom:"-15px"},[`& .${sc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${cc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Yg=at(Wx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),fc=at("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),gc=at(jg,{}),Zg=at("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${dc}`]:{$$color:"$colors$neutral600",[`.${ac} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),xr=at("div",{display:"flex",alignItems:"end",flexDirection:"column"}),uV=at("div",{display:"flex",alignItems:"center"}),Jg=at("div",{position:"relative",[`& ${Bx}`]:{borderRadius:"$xm",overflow:"hidden"}}),Rg=at("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),eh=at(jg,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),th=at("a",{"& svg:hover":{color:"$colors$info"}}),oh=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":{[`.${ac} &`]:{color:"$foreground"}}}});function rh(t){return Bt.createElement(ha,null,Array.from(Array(t.size),e=>Bt.createElement(Mx,{key:e,hasDivider:!0,start:Bt.createElement(Er,{variant:"circular",width:35,height:35}),end:Bt.createElement(xr,null,Bt.createElement(Er,{variant:"text",size:"large",width:70}),Bt.createElement(nh,{size:4}),Bt.createElement(Er,{variant:"text",size:"medium",width:50})),title:Bt.createElement("div",null,Bt.createElement(Er,{variant:"text",size:"large",width:90}),Bt.createElement(nh,{size:4}),Bt.createElement(Er,{variant:"text",size:"medium",width:90}))})))}i(rh,"LoadingTokenList");var Hx=20,qx=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return P.createElement("div",{className:lc()},o?P.createElement("div",{className:sc()},o):P.createElement(mc,{className:cc()},P.createElement(Ir,{variant:"title",size:"xmedium"},r.symbol),P.createElement(eo,{direction:"horizontal",size:4}),P.createElement(fc,{css:a},P.createElement(gc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&P.createElement("div",{className:`${pc()} ${!o&&uc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",P.createElement(eo,{size:4,direction:"horizontal"}),P.createElement(th,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},P.createElement(_x,{size:12}))))},"renderDesc");function Ar(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=k().fetchStatus,u=k().blockchains(),{getBalanceFor:d,fetchingWallets:f}=k(),{isTokenPinned:h}=k(),{setFromToken:g,setToToken:m}=U()(),{t:C}=Qx(),y=je(),[S,T]=zx(null),v=i(()=>{c==="source"?g({token:S,meta:{blockchains:u}}):m({token:S,meta:{blockchains:u}})},"updateToken"),w=i(()=>{v(),y()},"handleImportToken"),A=i(E=>{if(E.customToken){let{customToken:M,...I}=E;return P.createElement(Lx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(Q=>{Q.stopPropagation(),T({...I,warning:!0})},"handleClick")},P.createElement(Ir,{variant:"body",size:"xsmall",color:"background"},C("import")))}let x=pi(d(E));return s?s(E):f?P.createElement(xr,null,P.createElement(Ho,{variant:"text",size:"large",width:70}),P.createElement(eo,{size:4}),P.createElement(Ho,{variant:"text",size:"medium",width:50})):x&&P.createElement(Zg,null,P.createElement(eh,{variant:"title",size:"small"},x.amount),P.createElement("div",null),x.usdValue&&P.createElement(Ir,{variant:"body",className:dc(),size:"xsmall"},`$${x.usdValue}`))},"endRenderer"),B=i(()=>P.createElement(Ux,{itemContent:E=>{let x=e[E];if(x==="skeleton")return P.createElement($x,{hasDivider:!0,start:P.createElement(Ho,{variant:"circular",width:35,height:35}),end:P.createElement(xr,null,P.createElement(Ho,{variant:"text",size:"large",width:70}),P.createElement(eo,{size:4}),P.createElement(Ho,{variant:"text",size:"medium",width:50})),title:P.createElement("div",null,P.createElement(Ho,{variant:"text",size:"large",width:90}),P.createElement(eo,{size:4}),P.createElement(Ho,{variant:"text",size:"medium",width:90}))});let M=u.find(L=>L.name===x?.blockchain);if(!M||!x)return null;let I=x.address,_=al(M.color,"main"),Q={$$color:_.main150,[`.${ih} &`]:{$$color:_.main750},backgroundColor:"$$color"},H={$$color:_.main750,[`.${ih} &`]:{$$color:_.main150},color:"$$color"},j=i(()=>{typeof x!="string"&&!x.customToken&&n?.(x)},"handleClick");return P.createElement(oh,null,P.createElement(Yg,{"tab-index":E,key:`${x.symbol}${I}`,id:`${x.symbol}${I}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:x?.customToken,onClick:j,start:P.createElement(Jg,null,P.createElement(Dx,{src:x.image===""?ei:x.image,size:30}),t.type!=="custom-token"&&x&&h(x,t.type)&&P.createElement(Rg,null,P.createElement(Ox,{size:12,color:"gray"}))),title:M.type==="COSMOS"||x.name||!x.name&&!I?P.createElement(mc,null,P.createElement(Ir,{variant:"title",size:"xmedium"},x.symbol),P.createElement(eo,{direction:"horizontal",size:4}),P.createElement(fc,{css:Q},P.createElement(gc,{variant:"body",size:"xsmall",css:H},x.blockchain)),l&&x.warning&&P.createElement(P.Fragment,null,P.createElement(eo,{direction:"horizontal",size:4}),P.createElement(Px,{container:W()}))):void 0,description:typeof x!="string"&&M.info&&I&&M.type!=="COSMOS"?qx({address:I,token:x,customCssForTag:Q,customCssForTagTitle:H,name:x.name,url:M.info.addressUrl.split("{wallet}").join(I)}):x.name||void 0,end:A(x)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),b=S?Io(S?.blockchain,u):null;return P.createElement(P.Fragment,null,a&&P.createElement(P.Fragment,null,P.createElement(Ir,{variant:"label",size:"large"},hc.t("Select Token")),P.createElement(eo,{size:4})),P.createElement(Xg,null,P.createElement(eo,{size:4}),p==="loading"&&P.createElement(rh,{size:Hx}),p==="success"&&(e.length?P.createElement(P.Fragment,null,P.createElement(lr,{token:S,address:S?.address??"",blockchain:b??void 0,onImport:w,onExitErrorModal:()=>T(null),onExitImportModal:()=>T(null)}),P.createElement(ha,{as:"ul"},B())):!!o&&P.createElement(Fx,{title:hc.t("No results found"),description:hc.t("Try using different keywords")}))))}i(Ar,"TokenList");var Jx=Cc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Rx=Cc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),eE=Cc(jx,{"&:hover":{"& svg":{color:"$secondary550"}}});function ah(){let[t,e]=Sc(""),{deleteCustomToken:o}=k(),n=k().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=U()(),{mode:l}=po({}),p=Zx(),[u,d]=Sc(!1),[f,h]=Sc(),g=i(S=>{let T=S.target.value;e(T)},"handleSearch"),m=l==="dark",C=n.filter(S=>ct(S.symbol,t)||ct(S.address||"",t)||ct(S.name||"",t)),y=i(()=>{if(f){let S=a?St(a):null,T=r?St(r):null,v=St(f);S===v?c({token:null}):T===v&&s({token:null}),o(f)}d(!1)},"handleDeleteCustomToken");return ge.createElement(ie,{header:{title:to.t("Custom Tokens")}},ge.createElement(pe,null,ge.createElement(Jx,null,n.length?ge.createElement(ge.Fragment,null,ge.createElement(Nt,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:to.t("Search Token"),onChange:g}),ge.createElement(Nr,{size:16}),ge.createElement(Ar,{list:C,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:S=>ge.createElement(eE,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(S)}},ge.createElement(Kx,{size:12,color:"gray"}))})):ge.createElement(Rx,null,ge.createElement(Yx,{icon:m?ge.createElement(Gx,{size:200}):ge.createElement(Vx,{size:200}),title:to.t("No custom tokens"),description:to.t("press the button to add your custom token")})),ge.createElement(Nr,{size:20}),ge.createElement(yc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(O.addCustomTokens)},to.t("Add Custom Token"))),ge.createElement(J,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:W()},ge.createElement(Xx,{title:to.t("Delete Custom Token"),type:"error",description:to.t("Are you sure you want to Delete this Token?")},ge.createElement(Nr,{size:40}),ge.createElement(Nr,{size:10}),ge.createElement(yc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},to.t("Yes, Delete it")),ge.createElement(Nr,{size:12}),ge.createElement(yc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},to.t("No, Continue"))))))}i(ah,"CustomTokensPage");import{i18n as Ue}from"@lingui/core";import{useManager as kE}from"@rango-dev/queue-manager-react";import{Button as Ec,darkTheme as TE,Divider as So,MessageBox as wE,NotFound as vE,styled as Ic,Tabs as bE,Typography as Ca}from"@rango-dev/ui";import{TransactionStatus as Mr}from"rango-types";import te,{useMemo as xh,useState as Lr}from"react";import{useNavigate as xE}from"react-router-dom";import{FilterIcon as sE,Popover as lE}from"@rango-dev/ui";import qo from"react";import{css as tE,darkTheme as ya,IconButton as oE,styled as Br}from"@rango-dev/ui";var kc=Br("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ya} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),sh=Br(oE,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ya} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ya} &`]:{backgroundColor:"$neutral"},[`& ${kc}::before`]:{backgroundColor:"$secondary100",[`.${ya} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),lh=Br("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),ch=Br("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),ph=tE({display:"flex",justifyContent:"space-between",alignItems:"center"}),uh=Br("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as dh}from"@lingui/core";import{Button as nE,Divider as mh,ListItemButton as rE,Radio as iE,RadioRoot as aE,Typography as fh}from"@rango-dev/ui";import ft from"react";function gh(t){let{filterBy:e,onClickItem:o}=t;return ft.createElement(ch,null,ft.createElement("div",{className:ph()},ft.createElement(fh,{size:"small",variant:"body"},dh.t("Status")),ft.createElement(nE,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},dh.t("Reset"))),ft.createElement(mh,{size:10}),ft.createElement(aE,{value:e},ft.createElement(uh,null,t.list.map((n,r)=>ft.createElement(rE,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:ft.createElement(ft.Fragment,null,ft.createElement(mh,{direction:"horizontal",size:4}),ft.createElement(fh,{size:"medium",variant:"body"},n.title)),start:ft.createElement(iE,{value:n.id}),onClick:o})))))}i(gh,"FilterSelectorContent");function Tc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return qo.createElement("div",null,qo.createElement(lE,{open:a,align:"end",onOpenChange:o,container:W(),content:qo.createElement(gh,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},qo.createElement(sh,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},qo.createElement(kc,{isSelect:!!n},qo.createElement(sE,{size:16,color:"black"}),!!n&&qo.createElement(lh,null)))))}i(Tc,"FilterSelector");import{i18n as uE}from"@lingui/core";import{getCurrentStep as dE}from"@rango-dev/queue-manager-rango-preset";import{Divider as kh,GroupedVirtualizedList as mE,Skeleton as fE,SwapListItem as Th,Typography as gE}from"@rango-dev/ui";import Re,{useCallback as wh,useEffect as hE,useRef as yE,useState as SE}from"react";function hh(t,e){let o=[],n=0;do{let r=t[n];r&&(o.push(Math.min(r,e)),e-=r),n++}while(e>0&&n<=t.length);return o}i(hh,"calculateGroupsSoFar");import{css as cE,darkTheme as pE,styled as Wr}from"@rango-dev/ui";var wc=cE(),yh=Wr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),vc=Wr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${wc}`]:{$$color:"$colors$neutral600",[`.${pE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),bc=Wr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Sh=Wr("div",{gap:"$10",display:"flex",flexDirection:"column"}),Ch=Wr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var CE=10;function xc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=SE([]),c=yE(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=wh(hh,[]),f=wh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,CE),s(d(p,c.current)))},[e.length]);if(hE(()=>{r||f()},[r,f]),r){let h=[1,2];return Re.createElement(Re.Fragment,null,[h,h].map((m,C)=>Re.createElement(vc,{key:C},Re.createElement(bc,null,Re.createElement(fE,{variant:"text",width:60,size:"small"}),Re.createElement(kh,{size:16})),Re.createElement(kh,{size:4}),Re.createElement(Sh,null,m.map((S,T)=>Re.createElement(Th,{isLoading:!0,key:T}))))))}return Re.createElement(mE,{endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>Re.createElement(vc,null,Re.createElement(bc,null,Re.createElement(gE,{variant:"label",size:"medium",className:wc()},u[h]))),itemContent:(h,g)=>{let m=l[h];if(!m)return null;let C=dE(m),y=m.steps[0],S=m.steps[m.steps.length-1];return!y||!S?null:Re.createElement(yh,{key:m.requestId},Re.createElement(Th,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:C,tooltipContainer:W(),onlyShowTime:u[g]===uE.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:D(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:D(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(xc,"HistoryGroupedList");import{i18n as Sa}from"@lingui/core";import vh from"dayjs";var bh=i(t=>{let e=new Map([["today",{title:Sa.t("Today"),swaps:[]}],["week",{title:Sa.t("This week"),swaps:[]}],["month",{title:Sa.t("This month"),swaps:[]}],["year",{title:Sa.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=vh();t.forEach(l=>{let p=Number(l.creationTime),u=vh(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 EE=Ic("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),IE=Ic("div",{display:"flex",justifyContent:"center",alignItems:"center"}),AE=Ic("div",{"._typography":{color:"$neutral700",[`.${TE}&`]:{color:"$neutral900"}}}),NE=i((t,e)=>t?.length?t.filter(o=>Pt(o.fromBlockchain,e)||Pt(o.toBlockchain,e)||Pt(o.toSymbol,e)||Pt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Eh(){let t=xE(),{manager:e,state:o}=kE(),n=wt(e).map(({swap:b})=>b),[r,a]=Lr(""),[s,c]=Lr(!1),l=!o.loadedFromPersistor,[p,u]=Lr(""),[d,f]=Lr(!1),[h,g]=Lr("all"),m=i(b=>{let E=b.target.value;a(E)},"handleSearch"),{isMultiMode:C}=nt(),y=[{id:Mr.SUCCESS,title:Ue.t("Complete")},{id:Mr.RUNNING,title:Ue.t("Running")},{id:Mr.FAILED,title:Ue.t("Failed")}],S=[{id:"all",title:Ue.t("All")},{id:"swap",title:Ue.t("Swap")},{id:"refuel",title:Ue.t("Refuel")}],T=xh(()=>!r&&!p&&h==="all"?n:n.filter(b=>{let{inputAmount:E,status:x,steps:M,requestId:I,mode:_}=b;return(!r||Pt(E,r)||Pt(x,r)||NE(M,r)||Pt(I,r))&&(!p||p===x)&&(h==="all"?!0:h==="swap"?!_||_==="swap":h==="refuel"?_==="refuel":!1)}),[n,r,p,h]),v=!T?.length&&!l,w=i(()=>f(!1),"onCloseModal"),A=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(b){console.log(b)}},"onClear"),B=xh(()=>!n.some(b=>b.status===Mr.SUCCESS||b.status===Mr.FAILED),[n]);return te.createElement(ie,{header:{title:Ue.t("History"),suffix:te.createElement(uo,null,te.createElement(Ec,{id:"widget-history-clear-btn",disabled:B,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},te.createElement(Ca,{size:"medium",variant:"label",color:"error"},Ue.t("Clear"))))}},te.createElement(pe,null,te.createElement(IE,null,te.createElement(Nt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Ue.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:m,style:{height:36},value:r}),te.createElement(So,{size:10,direction:"horizontal"}),te.createElement(Tc,{filterBy:p,open:s,onOpenChange:b=>c(b),onClickItem:b=>u(b),list:y})),te.createElement(So,{size:"16"}),C&&!l&&te.createElement(te.Fragment,null,te.createElement(bE,{items:S,onChange:b=>g(b.id),value:h,type:"secondary"}),te.createElement(So,{size:"12"})),te.createElement(EE,null,v&&te.createElement(Ch,null,te.createElement(So,{size:32}),te.createElement(vE,{title:r?Ue.t("No results found"):Ue.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Ue.t("Try using different keywords"):Ue.t("Your transaction history is stored locally and will appear here after you start a swap")})),!v&&te.createElement(xc,{list:T,onSwapClick:t,groupBy:bh,isLoading:l}))),te.createElement(J,{open:d,onClose:w,id:"widget-history-clear-modal",container:W()},te.createElement(So,{size:20}),te.createElement(wE,{type:"warning",title:Ue.t("Clear Transaction History"),description:te.createElement(AE,null,te.createElement(Ca,{variant:"body",size:"medium"},Ue.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),te.createElement(So,{size:"24"}),te.createElement(Ca,{variant:"body",size:"small"},Ue.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),te.createElement(So,{size:30}),te.createElement(Ec,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:A},Ue.t("Yes, Clear the history")),te.createElement(So,{size:10}),te.createElement(Ec,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:w},te.createElement(Ca,{variant:"title",size:"medium",color:"primary"},Ue.t("No, Cancel")))))}i(Eh,"HistoryPage");import{i18n as oy}from"@lingui/core";import{Button as uI,Divider as zc,styled as dI,WarningIcon as mI}from"@rango-dev/ui";import fI from"bignumber.js";import ye,{useEffect as ny,useState as ry}from"react";import{useNavigate as gI}from"react-router-dom";import{i18n as Ah}from"@lingui/core";import{Alert as WE,Divider as Ac,NoRouteIcon as ME,Typography as LE}from"@rango-dev/ui";import Go from"react";import{styled as BE}from"@rango-dev/ui";var Ih=BE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Nc(){let{fromToken:t,toToken:e}=U()();return!!t&&!!e&&Ht(t,e)?Go.createElement(Ih,null,Go.createElement(Ac,{size:10}),Go.createElement(ME,{size:24,color:"gray"}),Go.createElement(Ac,{size:4}),Go.createElement(LE,{variant:"title",size:"small"},Ah.t("No Routes Found")),Go.createElement(Ac,{size:4}),Go.createElement(WE,{title:Ah.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Nc,"SameTokensWarning");import{Alert as PE,Button as _E}from"@rango-dev/ui";import Bh from"react";import{i18n as ka}from"@lingui/core";function Nh(t){let e=null;return t===fi?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ka.t("Reset"),title:ka.t("Slippage cannot be set lower than 0.01%.")},e):t>on?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ka.t("Change"),title:ka.t("Caution, your slippage is high!")},e):null}i(Nh,"makeAlerts");function Wh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=k(),{onChangeSettings:a}=t,c=Nh(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(mi),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Bh.createElement(PE,{title:c.title,type:c.alertType,variant:"alarm",action:Bh.createElement(_E,{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 UE}from"@lingui/core";import{IconButton as zE,ReverseIcon as QE,Skeleton as HE,Tooltip as qE,Typography as Pr}from"@rango-dev/ui";import gt from"react";import Ta from"bignumber.js";function Lh(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(Lh,"getSlippageColor");function Ph(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new Ta(e),r=new Ta(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(Ph,"getUsdExchangeRate");function _h(t,e){let o=new Ta(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,Ta.ROUND_DOWN).toFormat(2)}`}i(_h,"formatTokenValueInUsd");import{darkTheme as FE,styled as Wc,Typography as OE}from"@rango-dev/ui";var Dh=Wc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),$h=Wc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${FE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Mc=Wc(OE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Lc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=k(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:f}=po({}),h=an(d),g=f==="dark",m=n==="default",C={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},S=p?.swaps[0]?.from||c,T=p?.swaps[p?.swaps.length-1]?.to||l,v=m?S:T,w=m?T:S,A=Number(m?p?.outputAmount:p?.requestAmount),B=Number(m?p?.requestAmount:p?.outputAmount),b=A||v.usdPrice,E=B||w.usdPrice,{rawValue:x,displayValue:M}=Ph({toTokenUsdPrice:E,fromTokenUsdPrice:b});return gt.createElement(Dh,null,gt.createElement(Pr,{variant:C||y?"label":"body",size:C||y?"medium":"small",color:Lh({error:C,warning:y,isDarkTheme:g})},UE.t("Slippage:")," ",d,"%"),u?gt.createElement(HE,{height:16,width:104,variant:"rounded"}):b&&E&&gt.createElement($h,null,gt.createElement(Pr,{className:"rate-text",variant:"body",size:"small"},"1"),gt.createElement(Mc,{className:"rate-text",variant:"body",size:"small"},w.symbol),gt.createElement(zE,{id:"widget-home-page-change-rate-button",onClick:r},gt.createElement(QE,{size:14,color:"secondary"})),gt.createElement(qE,{container:W(),side:"top",sideOffset:4,content:gt.createElement(Pr,{className:"rate-text",variant:"body",size:"small"},x)},gt.createElement(Pr,{className:"rate-text",variant:"body",size:"small"},M)),gt.createElement(Mc,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&gt.createElement(Pr,{color:"neutral600",variant:"body",size:"small"},"~",_h(Number(x),v.usdPrice))))}i(Lc,"SwapMetrics");import{i18n as YE}from"@lingui/core";import{Header as ZE}from"@rango-dev/ui";import Co,{useEffect as JE,useState as RE}from"react";import{i18n as VE}from"@lingui/core";import{Divider as _c,FullExpandedQuote as KE,Typography as jE}from"@rango-dev/ui";import we from"react";import{styled as Pc}from"@rango-dev/ui";var Fh=Pc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Oh=Pc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Uh=Pc("div",{width:"146px"});import{i18n as _r}from"@lingui/core";import{Select as GE}from"@rango-dev/ui";import zh from"react";function wa(t){let{updateQuotePartialState:e,sortStrategy:o}=U()(),n=[{value:"SMART",label:_r.t("Smart Routing")},{value:"FEE",label:_r.t("Lowest Fee")},{value:"SPEED",label:_r.t("Fastest Transfer")},{value:"NET_OUTPUT",label:_r.t("Maximum Return")},{value:"PRICE",label:_r.t("Maximum Output")}];return zh.createElement(Uh,null,zh.createElement(GE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(wa,"SelectStrategy");var Qh=3;function Dr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:d,toToken:f,sortStrategy:h,error:g}=U()(),{slippage:m,customSlippage:C}=k(),{findToken:y}=k(),S=c||W(),T=!!p&&p.results.length,v=C??m,w=i(b=>{if(!d||!f||!p)return null;let E={requestAmount:p.requestAmount,validationStatus:null,...b};return hn({currentQuote:E,userSlippage:v,findToken:y})},"getQuoteWarning"),A=g?.type===0||g?.type===1,B=p?.results?Ni(h,p?.results):[];return we.createElement(we.Fragment,null,a&&we.createElement(we.Fragment,null,we.createElement(Oh,null,we.createElement(jE,{size:"xmedium",variant:"title"},VE.t("Sort by")),we.createElement(wa,{container:S})),we.createElement(_c,{size:"10"})),e&&Array.from({length:Qh},(b,E)=>we.createElement(we.Fragment,{key:E},s?we.createElement(KE,{loading:!0}):we.createElement(vr,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Qh-1&&we.createElement(_c,{size:16}))),!e&&we.createElement(we.Fragment,null,T?B.map((b,E)=>{let x=w(b),M=tc(b.swaps),I=B.length-1===E;return we.createElement(we.Fragment,{key:b.requestId},we.createElement(Qo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:S,selected:l?.requestId===b.requestId,tagHidden:!1,quote:{...b,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:M?.options||null,warning:x,fullExpandedMode:s,onClick:_=>{M||u("warning",x),u("error",M?.options||null),o(_)},type:"list-item"}),!I&&we.createElement(_c,{size:16}))}):A&&we.createElement(Fh,null,we.createElement(fr,{size:s?"large":"small",error:g,fetch:n}))))}i(Dr,"Quotes");import{darkTheme as XE,styled as Hh}from"@rango-dev/ui";var qh=Hh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${XE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Gh=Hh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var eI=100;function Dc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=RE(!1),l=s?"":"is-hidden",{config:p}=k(),u=p?.variant==="full-expanded",d=No();return JE(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},eI):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Co.createElement(qh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Qi()} widget-expanded-quotes-container`,id:tt.EXPANDED_BOX_ID},Co.createElement(ZE,{title:YE.t("Routes"),suffix:Co.createElement(Co.Fragment,null,Co.createElement(wa,{container:d}),Co.createElement(Oo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Co.createElement(Gh,null,Co.createElement(Dr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:No(),onClickOnQuote:n,fullExpandedMode:u})))}i(Dc,"ExpandedQuotes");import{i18n as Jh}from"@lingui/core";import{SwapInput as Rh}from"@rango-dev/ui";import rI from"bignumber.js";import $r from"react";import{ReverseIcon as nI}from"@rango-dev/ui";import Fc from"react";import{keyframes as tI,styled as Vh}from"@rango-dev/ui";var $c=450,oI=tI({"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)"}}),Kh=Vh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),jh=Vh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${oI} ${$c}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 Oc(){let t=U().use.switchFromAndTo();return Fc.createElement(Kh,null,Fc.createElement(jh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},$c),t()}},Fc.createElement(nI,{size:12})))}i(Oc,"SwitchFromAndToButton");import{styled as Xh}from"@rango-dev/ui";var Yh=Xh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Zh=Xh("div",{position:"relative"});function Uc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:d,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:m}=U()(),{swapMode:C}=nt(),{connectedWallets:y,getBalanceFor:S}=k(),T=a?S(a):null,v=pi(T)?.amount??"0",w=T?new rI(T.amount).shiftedBy(-T.decimals):ue,A=!!s&&vu(y,s.name),B=!Qs(m,d,f),b=!Qs(m,d,g),E=!f||!g||!g.gt(0)?null:Kt(f.toString(),g.toString());return $r.createElement(Yh,null,$r.createElement(Zh,null,$r.createElement(Rh,{label:Jh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:v,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:B?void 0:D(f,4,4),realUsdValue:B?void 0:f?.toString(),error:B?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:A,tooltipContainer:W(),onSelectMaxBalance:()=>{let x=D(w,T?.decimals),M=T?.amount?x.split(",").join(""):"";p(M)},anyWalletConnected:y.length>0}),C==="swap"&&$r.createElement(Oc,null)),$r.createElement(Rh,{selectionType:C==="swap"?"token":"chain",sharpBottomStyle:!r&&(!!m||e),label:Jh.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:D(Kt(f,g),2,2),warningLevel:jt(E??0),price:{value:D(h,6,6),usdValue:b?void 0:D(g,4,4),realValue:h?.toString(),realUsdValue:b?void 0:g?.toString(),error:b?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:W()}))}i(Uc,"Inputs");import{warn as iI}from"@rango-dev/logging-core";import{useCallback as aI,useEffect as sI,useRef as lI,useState as cI}from"react";function ey(){let{fetch:t,loading:e,cancelFetch:o}=da({request:async(n,r)=>await ut().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(ey,"useFetchAllQuotes");var pI=600;function va({refetchQuote:t}){let{fetch:e,cancelFetch:o}=ey(),{excludeLiquiditySources:n,routing:r}=k().config,{connectedWallets:a}=k(),c=a.some(ae=>ae.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:f,sortStrategy:h,resetQuote:g,error:m,warning:C,setSelectedQuote:y,updateQuotePartialState:S}=U()(),{slippage:T,customSlippage:v,affiliatePercent:w,affiliateRef:A,affiliateWallets:B,fetchStatus:b}=k(),E=k().getLiquiditySources(),x=k().getDisabledLiquiditySources(),M=k().excludeLiquiditySources(),{findToken:I}=k(),{swapMode:_}=nt(),[Q,H]=cI(!0),j=lI(u),L=v??T,R=!l||!p||Ht(l,p)||!Hn(u),Y=i(ae=>{H(ae)},"resetState"),le=i(ae=>{let{fromToken:ve,toToken:ze,inputAmount:Ie,liquiditySources:$,excludeLiquiditySources:N,disabledLiquiditySources:G,slippage:se,affiliateRef:K,affiliatePercent:X,affiliateWallets:bt}=ae;if(Q||Y(!0),!R&&ve&&ze){g();let Qe=Hd({fromToken:ve,toToken:ze,inputAmount:Ie,liquiditySources:$,excludeLiquiditySources:N,disabledLiquiditySources:G,wallets:a,slippage:se,affiliateRef:K,affiliatePercent:X,affiliateWallets:bt,contractCall:c});rn("experimental",r)&&(Qe.experimental=!0),rn("avoidNativeFee",r)&&(Qe.avoidNativeFee=!0),rn("enableCentralizedSwappers",r)&&(Qe.enableCentralizedSwappers=!0),r?.maxLength&&(Qe.maxLength=r.maxLength),_==="refuel"&&(Qe.maxLength=1),e(Qe).then(Le=>{let lt=Ni(h,Le.results),xo=Wd(f,lt,Le.requestAmount);H(!1),S("quotes",Le),y(xo),ma({diagnosisMessages:Le.diagnosisMessages,requestId:xo?.requestId||"",swaps:xo?.swaps});let Fn=xo&&hn({currentQuote:xo,userSlippage:L,findToken:I});S("warning",Fn)}).catch(Le=>{let lt=fa(Le);(lt.type===0||lt.type===1)&&g(),lt.type!==2&&(S("error",lt),H(!1),iI(new Error("quote error"),{tags:{...lt,type:Ze[lt.type],requestBody:Qe}}))})}},"fetch"),Ye=aI(ni(ae=>{le(ae)},pI),[R]);return sI(()=>{if(!t){H(!1);return}if(b!=="success")return;if(R){H(!1),(f||m||C)&&g();return}if(!Hn(u)&&d?.eq(0)){Y(!1),o();return}g(),Y(!0);let ae=le;return j.current&&j.current!=u&&(ae=Ye),j.current=u,ae({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:M,disabledLiquiditySources:x,slippage:L,affiliateRef:A,affiliatePercent:w,affiliateWallets:B,contractCall:c}),o},[b,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,R,E?.length,n,x.length,L,A,w,c,JSON.stringify(B)]),{fetch:()=>le({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:M,disabledLiquiditySources:x,slippage:L,affiliateRef:A,affiliatePercent:w,affiliateWallets:B,contractCall:c}),loading:Q}}i(va,"useSwapInput");function ty(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};ke.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(ty,"emitPreventableEvent");var hI=dI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),yI=300;function iy(){let t=gI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:f}=U()(),[h,g]=ry(!1),{isLargeScreen:m,isExtraLargeScreen:C}=kn(),{fetch:y,loading:S}=va({refetchQuote:a}),{config:T,fetchStatus:v,connectedWallets:w,customSlippage:A,slippage:B,setSlippage:b,setCustomSlippage:E}=k(),{isActiveTab:x}=oe(),[M,I]=ry(!1),_=A!==null?A:B,{swapMode:Q}=nt(),H=an(_),L=Od({fetchMetaStatus:v,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:w.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),ee=Bu(m,C,T?.variant),R=!!n&&!!e&&!!o&&new fI(n).gt(0)&&!Yd(e,o),Y=R&&v==="success"&&S,le=H?.quoteValidation||c,ve=(!ee||ee&&l?.results.length)&&(le||s),ze=!!e&&!!o,Ie=ze&&!!H,$=(r||s)&&!M?y:void 0,N=i(X=>{ee&&h?(g(!1),setTimeout(()=>{t(X)},yI)):t(X)},"onHandleNavigation"),G=i(X=>{r?.requestId!==X.requestId&&(I(!1),p(X))},"onClickOnQuote"),se=i(X=>{if(X){if(di.includes(X)){b(X),E(null);return}E(X)}},"onChangeSlippage"),K=i(X=>{N(X==="from"?O.fromSwap:Q==="swap"?O.toSwap:O.toSwap+"/"+O.blockchains)},"handleInputTokenClick");return ny(()=>{u(),f("refetchQuote",!0)},[]),ny(()=>{g(R)},[R]),ye.createElement(hI,null,ye.createElement(ie,{height:"auto",footer:ye.createElement(uI,{id:`widget-swap-${L.action}-btn`,type:"primary",size:"large",disabled:L.disabled||!x,prefix:L.action==="confirm-warning"&&ye.createElement(mI,null),fullWidth:!0,onClick:()=>{L.action==="connect-wallet"?ty({type:"clickConnectWallet"},()=>N(O.wallets)):L.action==="confirm-warning"?I(!0):N(O.confirmSwap)}},L.title),header:{onWallet:()=>{N(O.wallets)},hasBackButton:!1,title:T.title||(Q==="swap"?oy.t("Swap"):oy.t("Refuel")),suffix:ye.createElement(Oo,{hidden:ee?["refresh"]:void 0,onClickRefresh:$,onClickHistory:()=>N(O.swaps),onClickSettings:()=>{N(O.settings)}})}},ye.createElement(pe,null,ye.createElement(Uc,{fetchingQuote:Y,fetchMetaStatus:v,isExpandable:ee,onClickToken:K}),ye.createElement(zc,{size:"2"}),ee?null:ye.createElement(Qo,{quote:r,loading:Y,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:le,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),N(O.routes)}:void 0}),ze&&ye.createElement(ye.Fragment,null,ye.createElement(zc,{size:8}),ye.createElement(Lc,{quoteError:s,quoteWarning:le,fromToken:e,toToken:o,quote:r,loading:Y})),ve?ye.createElement(ye.Fragment,null,ye.createElement(yr,{warning:le,error:s,skipAlerts:!!H,couldChangeSettings:!0,refetchQuote:y,showWarningModal:M,confirmationDisabled:!x,onOpenWarningModal:()=>I(!0),onCloseWarningModal:()=>I(!1),onChangeSlippage:se,onConfirmWarningModal:()=>{I(!1),d(!0),N(O.confirmSwap)},onChangeSettings:()=>N(O.settings)})):null,Ie&&ye.createElement(ye.Fragment,null,ye.createElement(zc,{size:"10"}),ye.createElement(Wh,{onChangeSettings:()=>N(O.settings)})),ye.createElement(Nc,null))),ee?ye.createElement(Dc,{loading:Y,onClickOnQuote:G,fetch:y,onClickRefresh:$,isVisible:h}):null)}i(iy,"Home");import{i18n as ay}from"@lingui/core";import{Alert as SI,Divider as CI,List as kI,ListItemButton as TI,Radio as wI,RadioRoot as vI,Typography as bI}from"@rango-dev/ui";import Ot from"react";function ko(){let{setLanguage:t,language:e,config:o}=k(),n=$u,r=o?.language||sn;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||sn),resetLanguage:()=>t(null)}}i(ko,"useLanguage");function sy(){let{activeLanguage:t,changeLanguage:e,languages:o}=ko(),n=je(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Ot.createElement(bI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Ot.createElement(wI,{value:s}),start:Ot.createElement(l,null)}});return Ot.createElement(ie,{header:{title:ay.t("Language")}},Ot.createElement(pe,null,Ot.createElement(SI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Ot.createElement(CI,{size:"8"}),Ot.createElement(vI,{value:t},Ot.createElement(kI,{type:Ot.createElement(TI,{title:ay.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(sy,"LanguagePage");import{i18n as oo}from"@lingui/core";import{Button as NI,Checkbox as BI,Image as WI,ListItemButton as MI,NotFound as LI,Typography as PI}from"@rango-dev/ui";import et,{useState as _I}from"react";import{Checkbox as II,Skeleton as cy}from"@rango-dev/ui";import Or from"react";import{styled as Qc}from"@rango-dev/ui";var Fr=Qc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Hc=Qc("div",{width:80,display:"flex",justifyContent:"flex-end"}),qc=Qc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as xI,styled as EI}from"@rango-dev/ui";var ly=EI(xI,{height:61});var AI=30;function Gc(){return Or.createElement(Fr,null,Array.from(Array(AI),(t,e)=>Or.createElement(ly,{hasDivider:!0,key:e,start:Or.createElement(cy,{variant:"circular",width:35,height:35}),title:Or.createElement(cy,{variant:"text",size:"large",width:90}),end:Or.createElement(II,{checked:!1})})))}i(Gc,"LoadingLiquiditySourceList");function Vc({sourceType:t}){let e=k().fetchStatus,o=k().swappers(),n=k().getDisabledLiquiditySources(),[r,a]=_I(""),s=k().toggleLiquiditySource,c=k().isInCampaignMode(),l=gi(o,n),p={Exchanges:oo.t("Exchanges"),Bridges:oo.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(y=>u.includes(y.type)),f=d.length===d.filter(y=>y.selected).length,h=i(()=>{d.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=d.map(y=>{let{selected:S,groupTitle:T,logo:v,id:w,...A}=y;return{id:`widget-setting-liquidity-source-${uu(w.toLowerCase())}-item-btn`,start:et.createElement(WI,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(T)},end:et.createElement(BI,{checked:S,disabled:c}),title:et.createElement(PI,{variant:"title",size:"xmedium"},oo.t(T)),selected:S,groupTitle:T,logo:v,...A}}),m=i(y=>{let S=y.target.value;a(S)},"handleSearch"),C=g;return r&&(C=g.filter(y=>Pt(y.groupTitle,r))),et.createElement(ie,{header:{title:oo.t(t),suffix:et.createElement(Hc,null,et.createElement(NI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},f?oo.t("Deselect all"):oo.t("Select all")))}},et.createElement(pe,{view:!0},et.createElement(Nt,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:oo.t("Search {sourceType}",{sourceType:p[t]}),onChange:m}),e==="loading"&&et.createElement(Gc,null),!C.length&&r?et.createElement(qc,null,et.createElement(LI,{title:oo.t("No results found"),description:oo.t("Try using different keywords")})):e==="success"&&et.createElement(Fr,{disabled:c,className:"widget-liquidity-source-list"},C.map(y=>{let{groupTitle:S,...T}=y;return et.createElement(et.Fragment,{key:y.id},et.createElement(MI,{style:{height:"61px"},...T,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Vc,"LiquiditySourcePage");import{i18n as DI}from"@lingui/core";import ba from"react";import{useNavigate as $I}from"react-router-dom";function py(){let t=$I(),e=je(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=U()(),{fetch:c,loading:l}=va({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${O.settings}`,d=`../${O.wallets}`;return ba.createElement(ie,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:DI.t("Routes"),suffix:ba.createElement(Oo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},ba.createElement(pe,null,ba.createElement(Dr,{fetch:c,loading:l,onClickOnQuote:p})))}i(py,"RoutesPage");import{i18n as yy}from"@lingui/core";import{Divider as Sy,getCategoriesCount as KI,SelectableCategoryList as jI}from"@rango-dev/ui";import no,{useState as Cy}from"react";import{useNavigate as XI}from"react-router-dom";import{i18n as Kc}from"@lingui/core";import{Divider as zI,Image as QI,ListItemButton as HI,NotFound as qI,Typography as hy}from"@rango-dev/ui";import ht,{useEffect as GI,useState as VI}from"react";var uy=i((t,e,o)=>t.filter(n=>ri(n.type,o)).filter(n=>ct(n.name,e)||ct(n.displayName,e)),"filterBlockchains");import{ImageContainer as FI,styled as dy}from"@rango-dev/ui";var my=dy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),xa=dy(bl,{padding:0,margin:0,listStyle:"none",[`& ${FI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as OI,Skeleton as fy}from"@rango-dev/ui";import Ea from"react";var UI=20;function gy(){return Ea.createElement(xa,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(UI),t=>Ea.createElement(OI,{key:t,hasDivider:!0,start:Ea.createElement(fy,{variant:"circular",width:35,height:35}),title:Ea.createElement(fy,{variant:"text",size:"large",width:90})})))}i(gy,"LoadingBlockchainList");function jc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=VI(e),{fetchStatus:l}=k();GI(()=>{c([...uy(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ht.createElement(qI,{title:Kc.t("No results found"),description:Kc.t("Try using different keywords")}):ht.createElement(xa,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ht.createElement(HI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ht.createElement(QI,{src:u.logo,size:30}),title:ht.createElement(hy,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ht.createElement(ht.Fragment,null,a&&ht.createElement(ht.Fragment,null,ht.createElement(hy,{variant:"label",size:"large"},Kc.t("Select Chain")),ht.createElement(zI,{size:4})),ht.createElement(my,null,l==="loading"&&ht.createElement(gy,null),l==="success"&&p()))}i(jc,"BlockchainList");function Ia(t){let{type:e}=t,o=je(),[n,r]=Cy(""),[a,s]=Cy("ALL"),c=U().use.setToBlockchain(),l=U().use.setFromBlockchain(),p=U().use.setToToken(),{fetchStatus:u,findNativeToken:d}=k(),f=XI(),{swapMode:h}=nt(),g=k().blockchains({type:e}),m=KI(g),C=!t.hideCategory&&m!==1,y=i(S=>{if(e==="custom-token")f(`..?blockchain=${S.name}`,{replace:!0});else{if(e==="source")l(S);else if(h==="swap")c(S);else{let T=d(S);T&&p({token:T,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return no.createElement(ie,{header:{title:yy.t("Select Chain")}},no.createElement(pe,{view:!0},C&&no.createElement(no.Fragment,null,no.createElement(jI,{setCategory:s,category:a,blockchains:g,isLoading:u==="loading"}),no.createElement(Sy,{size:24})),no.createElement(Nt,{value:n,autoFocus:!0,placeholder:yy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:S=>r(S.target.value)}),no.createElement(Sy,{size:16}),no.createElement(jc,{list:g,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:y})))}i(Ia,"SelectBlockchainPage");import{i18n as Ba}from"@lingui/core";import{Divider as Ey,Spinner as pA}from"@rango-dev/ui";import To,{useEffect as uA,useState as dA}from"react";import{useNavigate as mA}from"react-router-dom";import{i18n as Zc}from"@lingui/core";import{BlockchainsChip as Aa,Divider as vy,Image as by,Skeleton as tA,Tooltip as oA,Typography as Jc}from"@rango-dev/ui";import be from"react";import{useEffect as JI}from"react";var ky=["ETH","COSMOS","OSMOSIS"];function Xc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(YI),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(ZI(s)),r=n.splice(a)}return{list:n,more:r}}i(Xc,"prepare");function YI(t,e){let o=ky,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(YI,"sortByMostUsedBlockchains");function ZI(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(ZI,"generateSortByPreferredBlockchainsFor");function Ty(t,e){return!!e.list.find(o=>o.name===t)}i(Ty,"isInVisibleList");function Yc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=k();JI(()=>{if(e?.selected){let a=Xc(t,o,e);Ty(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Xc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Yc,"usePrepareBlockchainList");import{styled as RI}from"@rango-dev/ui";var wy=RI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var nA=6,rA=12;function Rc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=Yc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=k(),p=U().use.resetToBlockchain(),u=U().use.resetFromBlockchain(),d=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&d;return be.createElement(be.Fragment,null,!s&&be.createElement(be.Fragment,null,be.createElement(vy,{size:12}),be.createElement(Jc,{variant:"label",size:"large"},Zc.t("Select Chain"))),be.createElement(vy,{size:12}),be.createElement(wy,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?nA:rA),(m,C)=>be.createElement(tA,{key:C,variant:"rounded",height:50})),l==="success"&&be.createElement(be.Fragment,null,be.createElement(Aa,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},be.createElement(Jc,{variant:"body",size:"xsmall",color:"secondary500"},Zc.t("All"))),c.list.map(m=>be.createElement(oA,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:W()},be.createElement(Aa,{className:"widget-blockchains-section-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},be.createElement(by,{src:m.logo,size:30})))),h?be.createElement(Aa,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},be.createElement(by,{src:f.logo,size:30})):null,g?be.createElement(Aa,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},be.createElement(Jc,{variant:"body",size:"xsmall",color:"secondary500"},Zc._("More +{count}",{count:c.more.length}))):null)))}i(Rc,"BlockchainsSection");import{useCallback as aA,useRef as sA,useState as ep}from"react";function tp(){let t=k().blockchains(),e=sA(null),{customTokens:o}=k(),[n,r]=ep(!1),[a,s]=ep([]),[c,l]=ep(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await ut().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(S=>Gt(S))),C=new Set(t.map(S=>S.name)),y=g.tokens.filter(S=>C.has(S.blockchain)&&!m.has(Gt(S)));s(y),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=aA(ni((f,h)=>{e.current?.signal.aborted||p(f,h)},600),[t.length]);return{fetch:(f,h)=>{e.current=new AbortController,s([]),r(!0),u(f,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(tp,"useSearchCustomTokens");function Na(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(Na,"shouldSearchForCustomTokens");function xy(t,e,o,n,r){let a=[...t];return Na(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(xy,"prepareTokensList");function Wa(t){let{type:e}=t,o=mA(),n=je(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=U()(),{getBalanceFor:u}=k(),{fetch:d,loading:f,tokens:h,cancel:g}=tp(),[m,C]=dA(""),y=e==="source"?r:a,S=y?.name??"",T=k().blockchains({type:e}),v=k().tokens({type:e,blockchain:S,searchFor:m,getBalanceFor:u}),w=xy(v,h,m,f,y?.name),A=i(E=>{e==="source"?l(E):p(E)},"updateBlockchain"),B=i(E=>{e==="source"?s({token:E,meta:{blockchains:T}}):c({token:E,meta:{blockchains:T}})},"updateToken"),b={source:Ba.t("Source"),destination:Ba.t("Destination")};return uA(()=>(Na(v,m,y?.name)&&d(m,y?.name??void 0),()=>{g()}),[v.length,m,y?.name]),To.createElement(ie,{header:{title:Ba.t("Swap {type}",{type:b[e]})}},To.createElement(pe,null,To.createElement(Rc,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(O.blockchains),onChange:E=>{A(E)}}),To.createElement(Ey,{size:24}),To.createElement(Nt,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:Ba.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>C(""),onChange:E=>C(E.target.value),suffix:Na(v,m,y?.name)&&f?To.createElement(pA,{size:12,color:"secondary"}):void 0}),To.createElement(Ey,{size:16}),To.createElement(Ar,{list:w,selectedBlockchain:S,searchedFor:m,type:e,onChange:E=>{B(E);let x=T.find(M=>E.blockchain===M.name);x&&A(x),n()}})))}i(Wa,"SelectSwapItemsPage");import{i18n as ip}from"@lingui/core";import{Alert as UA,Button as zA,styled as QA}from"@rango-dev/ui";import Vo from"react";import{useInRouterContext as HA,useSearchParams as qA}from"react-router-dom";import{i18n as My}from"@lingui/core";import{Alert as yA,Divider as np,InfoIcon as SA,SlippageIcon as CA,TextField as kA,Tooltip as TA,Typography as Ly}from"@rango-dev/ui";import qe from"react";import{Chip as fA,styled as Ur,TextField as gA}from"@rango-dev/ui";var Iy=Ur("div",{paddingTop:"$5",padding:"$10 $5"}),Ay=Ur("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${gA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),Ny=Ur("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Ma=Ur("div",{maxWidth:"280px",padding:"$10"}),By=Ur(fA,{width:"61px",flexShrink:0});import{i18n as op}from"@lingui/core";import{Typography as hA}from"@rango-dev/ui";import zr from"react";function Wy(){return zr.createElement(Ma,null,zr.createElement(hA,{variant:"label",size:"medium",color:"neutral700"},op.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),zr.createElement("br",null),zr.createElement("br",null),zr.createElement("b",null,op.t("Warning")),":\xA0",op.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(Wy,"SlippageTooltipContent");function rp(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=k(),r=o!==null?an(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let d=u;u>Kn&&(d=Kn),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;mu(u)||(p.value=u.slice(0,-1))},"onInput");return qe.createElement(Iy,null,qe.createElement(Ny,null,qe.createElement(CA,{size:16,color:"gray"}),qe.createElement(np,{direction:"horizontal",size:4}),qe.createElement(Ly,{variant:"title",size:"xmedium"},My.t("Slippage tolerance per swap")),qe.createElement(np,{direction:"horizontal",size:4}),qe.createElement(TA,{container:W(),side:"top",sideOffset:4,content:qe.createElement(Wy,null)},qe.createElement(SA,{color:"gray"}))),qe.createElement(Ay,null,di.map((l,p)=>{let u=`slippage-${p}`;return qe.createElement(By,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),qe.createElement(kA,{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&&qe.createElement(Ly,{variant:"body",size:"small"},"%"),placeholder:My.t("Custom")})),r&&qe.createElement(qe.Fragment,null,qe.createElement(np,{size:10}),qe.createElement(yA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(rp,"Slippage");import{i18n as vt}from"@lingui/core";import{AutoThemeIcon as Py,BridgesIcon as wA,ChevronRightIcon as La,DarkModeIcon as _y,Divider as Qr,ExchangeIcon as vA,InfinityIcon as bA,InfoIcon as xA,LanguageIcon as EA,LightModeIcon as Dy,List as IA,ListItem as AA,ListItemButton as NA,Skeleton as BA,styled as WA,Switch as MA,Tabs as LA,TargetIcon as PA,Tooltip as _A,Typography as st}from"@rango-dev/ui";import F from"react";import{useNavigate as DA}from"react-router-dom";var $A=WA("div",{width:"202px",height:"$40"}),FA=[{id:"light",icon:F.createElement(Dy,{color:"black",size:24}),tooltip:F.createElement(st,{size:"xsmall",variant:"body"},vt.t("Light"))},{id:"dark",icon:F.createElement(_y,{color:"black",size:24}),tooltip:F.createElement(st,{size:"xsmall",variant:"body"},vt.t("Dark"))},{id:"auto",icon:F.createElement(Py,{color:"black",size:24}),tooltip:F.createElement(st,{size:"xsmall",variant:"body"},vt.t("Auto"))}],OA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return F.createElement(Py,{...e});case"dark":return F.createElement(_y,{...e});default:return F.createElement(Dy,{...e})}},"getThemeIcon");function $y(){let t=DA(),{theme:e}=k().config,{setTheme:o,theme:n}=k(),{activeLanguage:r,languages:a}=ko(),s=a.find(L=>L.local===r)?.label,c=k().fetchStatus,l=k().swappers(),p=k().getDisabledLiquiditySources(),{config:{features:u}}=k(),d=k().customTokens(),f=ot("theme",u),h=ot("liquiditySource",u),g=ot("language",u),m=ot("customTokens",u),C=k().infiniteApprove,y=k().toggleInfiniteApprove,S=gi(l,p),T=S.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),v=T.length,w=T.filter(L=>L.selected).length,A=S.filter(L=>L.type==="DEX"),B=A.length,b=A.filter(L=>L.selected).length,E=i((L,ee)=>{switch(c){case"loading":return F.createElement(BA,{variant:"text",size:"medium",width:50});case"failed":return F.createElement(st,{variant:"body",size:"medium",color:"$error500"},vt.t("Loading failed"));default:return F.createElement(st,{variant:"body",size:"medium"},`${L} / ${ee}`)}},"handleSwapperEndItem"),x={id:"widget-setting-bridge-item-btn",title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Bridges")),end:F.createElement(F.Fragment,null,E(w,v),F.createElement(Qr,{direction:"horizontal",size:8}),F.createElement(La,{color:"black"})),onClick:()=>t(O.bridges),start:F.createElement(wA,{color:"gray",size:16})},M={id:"widget-setting-exchange-item-btn",title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Exchanges")),end:F.createElement(F.Fragment,null,E(b,B),F.createElement(Qr,{direction:"horizontal",size:8}),F.createElement(La,{color:"black"})),start:F.createElement(vA,{color:"gray",size:16}),onClick:()=>t(O.exchanges)},I={id:"widget-setting-custom-tokens-item-btn",title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Custom Tokens")),end:F.createElement(F.Fragment,null,F.createElement(st,{variant:"body",size:"medium"},`${d.length}`),F.createElement(Qr,{direction:"horizontal",size:8}),F.createElement(La,{color:"black"})),start:F.createElement(PA,{color:"gray",size:16}),onClick:()=>t(O.customTokens)},_={id:"widget-setting-language-item-btn",title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Language")),start:F.createElement(EA,{color:"gray",size:16}),end:F.createElement(F.Fragment,null,F.createElement(st,{variant:"body",size:"medium"},s),F.createElement(Qr,{direction:"horizontal",size:8}),F.createElement(La,{color:"black"})),onClick:()=>t(O.languages)},Q={id:"widget-setting-infinite-approval-item-btn",title:F.createElement(F.Fragment,null,F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Infinite approval")),F.createElement(Qr,{direction:"horizontal",size:4}),F.createElement(_A,{side:"top",sideOffset:4,container:W(),content:F.createElement(Ma,null,F.createElement(st,{variant:"label",size:"medium",color:"neutral700"},F.createElement("b",null,vt.t("Warning")),":\xA0",vt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},F.createElement(xA,{color:"gray"}))),start:F.createElement(bA,{color:"gray",size:16}),end:F.createElement(MA,{checked:C}),onClick:y},H={id:"widget-setting-theme-item-btn",type:F.createElement(AA,null),title:F.createElement(st,{variant:"title",size:"xmedium"},vt.t("Theme")),end:F.createElement($A,null,F.createElement(LA,{container:W(),items:FA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:OA(n)},j=h?[]:[x,M];return m||j.push(I),g||j.push(_),j.push(Q),!e?.singleTheme&&!f&&j.push(H),F.createElement(IA,{type:F.createElement(NA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:j})}i($y,"SettingsLists");var GA=QA("div",{paddingLeft:"$8"});function Fy(){let{isInCampaignMode:t,updateCampaignMode:e}=k(),o=t(),[,n]=qA(),r=HA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Vo.createElement(ie,{header:{title:ip.t("Settings")}},Vo.createElement(pe,null,o&&Vo.createElement(UA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:ip.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:Vo.createElement(GA,null,Vo.createElement(zA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},ip.t("Reset")))}),Vo.createElement(rp,null),Vo.createElement($y,null)))}i(Fy,"SettingsPage");import{i18n as e0}from"@lingui/core";import{cancelSwap as t0}from"@rango-dev/queue-manager-rango-preset";import{useManager as o0}from"@rango-dev/queue-manager-react";import{Alert as n0}from"@rango-dev/ui";import Tp from"react";import{useParams as r0}from"react-router-dom";import{i18n as zt}from"@lingui/core";import{getCurrentNamespaceOfOrNull as UN,getCurrentStep as zN,getRelatedWalletOrNull as QN}from"@rango-dev/queue-manager-rango-preset";import{Button as WS,Divider as HN,QuoteCost as qN,StepDetails as GN,Typography as gp}from"@rango-dev/ui";import{useWallets as VN}from"@rango-dev/wallets-react";import MS from"bignumber.js";import{PendingSwapNetworkStatus as _n}from"rango-types";import Ce,{useEffect as hp,useRef as yp,useState as Qa}from"react";import{useNavigate as KN}from"react-router-dom";import{i18n as wo}from"@lingui/core";var VA=[wo.t("Sunday"),wo.t("Monday"),wo.t("Tuesday"),wo.t("Wednesday"),wo.t("Thursday"),wo.t("Friday"),wo.t("Saturday")];function Oy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?wo.t("Today"):`${VA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Oy,"timeSince");function Uy(t){return t.finishTime?Oy(parseInt(t.finishTime)):Oy(parseInt(t.creationTime))}i(Uy,"getSwapDate");import qr from"react";import{i18n as Pa}from"@lingui/core";import{Button as zy,Divider as ap,MessageBox as KA}from"@rango-dev/ui";import vo from"react";var Qy=i(({onCancel:t,onClose:e})=>vo.createElement(vo.Fragment,null,vo.createElement(ap,{size:20}),vo.createElement(KA,{type:"error",title:Pa.t("Cancel Swap"),description:Pa.t("Are you sure you want to cancel this swap?")}),vo.createElement(ap,{size:32}),vo.createElement(zy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Pa.t("Yes, Cancel it")),vo.createElement(ap,{size:12}),vo.createElement(zy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Pa.t("No, Continue"))),"CancelContent");import{i18n as _a}from"@lingui/core";import{Button as Hy,Divider as sp,MessageBox as jA,Typography as XA}from"@rango-dev/ui";import ro from"react";var qy=i(({onDelete:t,onClose:e})=>ro.createElement(ro.Fragment,null,ro.createElement(sp,{size:20}),ro.createElement(jA,{type:"error",title:_a.t("Delete Transaction"),description:_a.t("Are you sure you want to delete this swap?")}),ro.createElement(sp,{size:32}),ro.createElement(Hy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},_a.t("Yes, Delete it")),ro.createElement(sp,{size:12}),ro.createElement(Hy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},ro.createElement(XA,{variant:"title",size:"medium",color:"primary"},_a.t("No, Cancel")))),"DeleteContent");import{i18n as YA}from"@lingui/core";import{Button as ZA,Divider as JA,MessageBox as RA}from"@rango-dev/ui";import Ko from"react";var Gy=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Ko.createElement(Ko.Fragment,null,Ko.createElement(RA,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Ko.createElement(Ko.Fragment,null,Ko.createElement(JA,{size:"30"}),Ko.createElement(ZA,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},YA.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as hN,getCurrentStep as yN,getRelatedWalletOrNull as SN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as CN}from"@rango-dev/ui";import{useWallets as kN}from"@rango-dev/wallets-react";import Zy from"react";import{i18n as Ln}from"@lingui/core";import{Alert as Ky,Button as tN,Checkbox as oN,Divider as Fa,Image as nN,MessageBox as rN,Spinner as iN,WarningIcon as aN}from"@rango-dev/ui";import{useWallets as sN}from"@rango-dev/wallets-react";import he,{useState as lN}from"react";import{darkTheme as eN,styled as Hr}from"@rango-dev/ui";var dX=Hr("div",{display:"flex",justifyContent:"center"}),mX=Hr("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Vy=Hr("img",{width:"100%"}),Da=Hr("div",{position:"relative"}),$a=Hr("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${eN} &`]:{$$color:"$warning600"}});var jy=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=lN(null),{list:s}=xt(),c=oe.use.isActiveTab(),{state:l,connect:p}=sN(),u=s.find(w=>w.type===e.walletType),d=u?.needsNamespace?.data.find(w=>w.value===o?.namespace);if(!u)return null;let f=l(e.walletType),h=u.isHub&&o?.namespace?f.namespaces?.get(o.namespace):null,g=f.connecting||h?.connecting,m=u.isHub?h?.connected:f.connected,C=i(()=>m?Ln.t("Done"):r?Ln.t("Try again"):Ln.t("Connect"),"getButtonTitle"),y=i(()=>g?he.createElement(iN,{color:"info"}):r||m?null:he.createElement(oN,{checked:!0,disabled:!0}),"getNamespaceSuffix"),S=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(w){a(w)}},"handleConnect"),T=i(async()=>{if(m){n();return}S()},"handleClickButton"),v=i(()=>{if(!m)return null;let w=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),A=w?.[w?.length-1];return A?ao(A):null},"getAddress");return he.createElement(he.Fragment,null,he.createElement(rN,{type:"warning",title:Ln.t("Connect {wallet}",{wallet:u.title}),description:Ln.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:he.createElement(Da,null,he.createElement(nN,{src:u.image,size:45}),he.createElement($a,null,he.createElement(aN,{color:"warning",size:10})))}),m&&!d&&he.createElement(he.Fragment,null,he.createElement(Fa,{size:10}),he.createElement(Ky,{type:"success",variant:"alarm",title:Ln.t("Wallet connected successfully.")})),r&&!d&&he.createElement(he.Fragment,null,he.createElement(Fa,{size:10}),he.createElement(Ky,{type:"error",title:r?.message,variant:"alarm"})),d&&he.createElement(he.Fragment,null,he.createElement(Fa,{size:30}),he.createElement(Lo,{namespace:d,suffix:y(),error:r?.message,connected:m,address:v()})),he.createElement(Fa,{size:"40"}),he.createElement(tN,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:T,disabled:!c},C()))},"ConnectWalletContent");import{i18n as Xy}from"@lingui/core";import{Button as cN,Divider as pN,Image as uN,MessageBox as dN,WarningIcon as mN}from"@rango-dev/ui";import{useWallets as fN}from"@rango-dev/wallets-react";import{detectInstallLink as gN}from"@rango-dev/wallets-shared";import io from"react";var Yy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=fN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(gN(n.installLink),"_blank"),"handleButtonClick");return io.createElement(io.Fragment,null,io.createElement(dN,{type:"warning",title:Xy.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:io.createElement(Da,null,io.createElement(uN,{src:n.img,size:45}),io.createElement($a,null,io.createElement(mN,{color:"warning",size:10})))}),io.createElement(pN,{size:"40"}),io.createElement(cN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},Xy.t("Install")))},"InstallWalletContent");var Jy=i(t=>{let{swap:e,onClose:o}=t,{state:n}=kN(),r=yN(e),a=r?SN(e,r):null,s=a?.walletType,c=s?qn(n(s)):null,l=r?hN(e,r):null;return s?c===CN.NOT_INSTALLED?Zy.createElement(Yy,{walletType:s}):Zy.createElement(jy,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function lp(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return qr.createElement(J,{open:e,onClose:r,container:W()},o==="connectWallet"&&qr.createElement(Jy,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&qr.createElement(Gy,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&qr.createElement(qy,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&qr.createElement(Qy,{onClose:r,onCancel:()=>{r(),s()}}))}i(lp,"SwapDetailsModal");import{i18n as Gr}from"@lingui/core";import{Button as cp,Divider as Vr,MessageBox as tS,TokenAmount as TN,Typography as oS}from"@rango-dev/ui";import Se from"react";import{Link as wN,useNavigate as vN}from"react-router-dom";var Ry="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",eS="/profile";function pp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:d,diagnosisUrl:f}=t,h=vN(),{showProfileBanner:g}=oe();return Se.createElement(J,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(tt.SWAP_BOX_ID)||document.body},n==="success"?Se.createElement(tS,{type:"success",title:Gr.t("Swap Successful")},Se.createElement(TN,{direction:"vertical",tooltipContainer:W(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),Se.createElement(Vr,{size:12}),Se.createElement(oS,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Se.createElement(tS,{type:"error",title:Gr.t("Transaction Failed"),description:d}),Se.createElement(Vr,{size:30}),n==="success"&&Se.createElement(Se.Fragment,null,g&&Se.createElement(Se.Fragment,null,Se.createElement(wN,{to:eS},Se.createElement(Vy,{src:Ry,alt:"Profile Banner"})),Se.createElement(Vr,{size:30})),Se.createElement(cp,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Gr.t("Done"))),Se.createElement(Vr,{size:12}),f&&Se.createElement(Se.Fragment,null,Se.createElement(cp,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Gr.t("Diagnosis")),Se.createElement(Vr,{size:12})),Se.createElement(cp,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Se.createElement(oS,{variant:"title",size:"medium",color:"primary"},Gr.t("See Details"))))}i(pp,"SwapDetailsCompleteModal");import{i18n as za}from"@lingui/core";import{CopyIcon as _N,DoneIcon as DN,IconButton as $N,RangoExplorerIcon as FN,Tooltip as xS,Typography as ES,useCopyToClipboard as ON}from"@rango-dev/ui";import Wt from"react";import PN from"react";import{i18n as BN}from"@lingui/core";import{Alert as TS,IconButton as WN,LinkIcon as MN}from"@rango-dev/ui";import bo,{Fragment as LN}from"react";import{Alert as xN,ChevronDownIcon as EN,IconButton as IN}from"@rango-dev/ui";import Pn,{useState as AN}from"react";import{css as Kr,darkTheme as nS,styled as Ut,Typography as bN}from"@rango-dev/ui";var rS=Ut(pe,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${nS} &`]:{color:"$secondary500"}}}}}),iS=Ut("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),aS=Ut("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),sS=Ut("div",{padding:"$0 $20 $20 $20"}),hY=Ut("div",{display:"flex",flexDirection:"column",gap:"$10"}),lS=Ut("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),yY=Ut("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),jo=Kr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${nS} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),cS=Kr({padding:"$5 0"}),Oa=Kr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),pS=Kr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),uS=Kr({width:"100%",padding:"0 $20 $10"}),dS=Ut("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),mS=Ut("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ua=Ut(bN,{wordBreak:"break-word"});import{styled as up}from"@rango-dev/ui";var fS=up("div",{display:"flex",flexDirection:"column",gap:"$10"}),gS=up("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),hS=up("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function yS(t){let{message:e}=t,[o,n]=AN(!1);return Pn.createElement(xN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Pn.createElement(IN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Pn.createElement(gS,{rotated:o},Pn.createElement(EN,{size:12,color:"gray"}))),footer:Pn.createElement(hS,{open:o},Pn.createElement(Ua,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(yS,"FailedAlert");import{i18n as SS}from"@lingui/core";import{Alert as dp,Button as CS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as NN}from"rango-types";import jr from"react";function kS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?jr.createElement(dp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:jr.createElement(CS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},SS.t("Change"))}):a===NN.WaitingForConnectingWallet?jr.createElement(dp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:jr.createElement(CS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},SS.t("Connect"))}):jr.createElement(dp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(kS,"WarningAlert");function mp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=sr(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,d=u&&!c||p&&!s.explorerUrl?.length;return bo.createElement(fS,null,s.explorerUrl?.map((f,h,g)=>{let m=h+f.url,C=h===g.length-1,y=(C&&u||p)&&!d,S=C&&s.status==="failed";return bo.createElement(LN,{key:m},bo.createElement(TS,{id:"widget-swap-details-tx-alert",type:C&&(y&&"loading"||S&&"error")||"success",title:f.description?`${f.description} Tx`:BN.t("View transaction"),action:f.url&&bo.createElement(WN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},bo.createElement(MN,{size:12}))}))}),d&&bo.createElement(TS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&bo.createElement(kS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&bo.createElement(yS,{message:a}))}i(mp,"SwapDetailsAlerts");var wS=2e3;var vS=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1]?.outputAmount||t.steps[s-1]?.expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:yt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:D(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:yt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:D(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Un(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:yt(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:yt(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Un(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:PN.createElement(mp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function bS(t){if(sr(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(bS,"getStepState");function IS(t){let{requestId:e}=t,[o,n]=ON(wS);return Wt.createElement(aS,{className:jo()},Wt.createElement(ES,{variant:"label",size:"large",color:"neutral700"},za.t("Request ID")),Wt.createElement("div",{className:Oa()},Wt.createElement(ES,{variant:"label",size:"small",color:"neutral700"},e),Wt.createElement(xS,{container:W(),content:o?za.t("Copied To Clipboard"):za.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Wt.createElement($N,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Wt.createElement(DN,{size:16,color:"secondary"}):Wt.createElement(_N,{size:16,color:"gray"}))),Wt.createElement(dS,{target:"_blank",href:`${Yp}/swap/${e}`},Wt.createElement(xS,{container:W(),content:za.t("View on Rango Explorer"),side:"bottom"},Wt.createElement(FN,{size:20})))))}i(IS,"RequestIdRow");import{i18n as AS}from"@lingui/core";import{Typography as NS}from"@rango-dev/ui";import fp from"react";function BS(t){let{date:e,isFinished:o}=t;return fp.createElement("div",{className:jo()},fp.createElement(NS,{variant:"label",size:"large",color:"neutral700"},o?AS.t("Finished at"):AS.t("Created at")),fp.createElement(NS,{variant:"label",size:"small",color:"neutral700"},e))}i(BS,"SwapDateRow");var jN=3e3;function Sp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=VN(),l=k().blockchains(),p=k().swappers(),{findToken:u}=k(),d=U().use.retry(),f=KN(),h=yp(null),[g,m]=Qa(!1),[C,y]=Qa(null),[S,T]=Qa(null),[v,w]=Qa(null),A=yp(C),B=yp(S),b=Ne.use.getNotifications(),E=Ne.use.removeNotification(),x=b(),M=zN(e),I=M?.networkStatus,_=i(Pe=>{m(!0),y(Pe)},"handleChangeModalState"),Q=i(()=>{m(!1)},"handleCloseModal"),H=i(()=>{T({type:"loading",title:zt.t("Change Network"),description:`We\u2019re switching the connected network to ${R?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),j=i(()=>{T({type:"success",title:zt.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),L=i(Pe=>{T({type:"error",title:zt.t("Network Switch Failed"),description:Pe?.message||se.detailedMessage.content})},"handleShowSwitchNetworkFailed"),ee=Kd(e),R=M?UN(e,M):null,Y=M?QN(e,M):null,le=Uy(e),Ye=jd(e),ae=i(Pe=>!!c(Pe)?.mobileWallet,"checkIsMobileWallet"),ve=!!I&&[_n.WaitingForNetworkChange,_n.NetworkChangeFailed].includes(I),ze=!!Y?.walletType&&ae(Y.walletType),Ie=!!Y&&!!R&&a(Y.walletType,R.network,R),$=!!R&&ve&&(ze||Ie),N=i(()=>{$&&(H(),s(Y.walletType,[{namespace:R.namespace,network:R.network}]).then(()=>{j()}).catch(Pe=>{L(Pe)}))},"handleSwitchNetwork"),G=i(()=>{_("switchNetwork"),N()},"handleSwitchNetworkClick"),se=Vd(e,M,c),K=vS({swap:e,switchNetworkIsAvailable:$,handleSwitchNetworkClick:G,showNetworkModal:I,setNetworkModal:_,message:se,blockchains:l,swappers:p}),X=K.length,[bt,Qe]=[e.steps[0],e.steps[X-1]],Le=Qe?.outputAmount||Qe?.expectedOutputAmountHumanReadable,lt=e.steps.reduce((Pe,Lt)=>Pe+parseFloat(Lt.feeInUsd||""),0),xo=e.steps.find(Pe=>Pe.diagnosisUrl)?.diagnosisUrl,Fn=D(parseFloat(Le||"0")*(Qe?.toUsdPrice||0),4,4),Wp=D(parseFloat(e.inputAmount)*(bt?.fromUsdPrice||0),4,4),Mp=Le?new MS(Le).multipliedBy(Qe.toUsdPrice||0).toString():"",uC=new MS(e.inputAmount).multipliedBy(bt?.fromUsdPrice||0).toString(),Ra=Kt(Wp,Fn),es=se.detailedMessage.content||se.shortMessage,dC=e.status==="success"?zt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:D(Le,6,6),token:K[X-1]?.to.token.displayName,conciseAddress:ao(e.wallets[K[X-1]?.to.chain.displayName||""]?.address||""),chain:K[X-1]?.to.chain.displayName}}):Ce.createElement(mS,null,Ce.createElement(gp,{variant:"body",size:"medium",color:"neutral700",align:"center"},es?"":zt.t("Transaction was not sent."),ee?`${zt.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:ee.outputAmount,symbol:ee.symbol,blockchain:ee.blockchain}})}`:""),es&&Ce.createElement(Ua,{align:"center",variant:"body",size:"medium",color:"neutral700"},Ce.createElement("b",null,"Reason:")," ",es));return hp(()=>{x.find(Lt=>Lt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),E(e.requestId),Q()):v&&w(null))},[e.status,e.requestId]),hp(()=>{if($){if(_("switchNetwork"),I===_n.WaitingForNetworkChange){H();return}if(I===_n.NetworkChangeFailed){L();return}return}if(I===_n.WaitingForConnectingWallet){_("connectWallet");return}if(I===_n.NetworkChanged){_("switchNetwork"),j();return}C&&["connectWallet","switchNetwork"].includes(C)&&Q()},[I]),hp(()=>{if(A.current=C,B.current=S,C==="switchNetwork"&&S?.type==="success"){let Pe=setTimeout(()=>{A.current==="switchNetwork"&&B.current?.type==="success"&&Q()},jN);return()=>clearTimeout(Pe)}},[C,S]),Ce.createElement(ie,{header:{title:zt.t("Swap Details"),onCancel:e.status==="running"?()=>_("cancel"):void 0,suffix:e.status!=="running"&&Ce.createElement(uo,null,Ce.createElement(WS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>_("delete")},Ce.createElement(gp,{size:"medium",variant:"label",color:"error"},zt.t("Delete"))))},footer:Ye&&!v&&Ce.createElement(WS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Pe=Ai(e,l,u);d(Pe),setTimeout(()=>{f("../../")},0)}},zt.t("Try again"))},Ce.createElement(rS,{compact:!0,ref:h},Ce.createElement(IS,{requestId:o}),Ce.createElement(BS,{date:le,isFinished:!!e.finishTime}),Ce.createElement("div",{className:pS()},Ce.createElement(qN,{fee:D(String(lt),2,2),time:Qn(ai(e.steps)),steps:X}),Ce.createElement(Cr,{from:{price:{value:D(e.inputAmount,6,6),usdValue:Wp,realUsdValue:uC,realValue:e.inputAmount},token:{displayName:K[0]?.from.token.displayName||"",image:K[0]?.from.token.image},chain:{image:K[0]?.from.chain.image,displayName:K[0]?.from.chain.displayName||""}},to:{price:{value:D(Le,6,6),usdValue:Fn,realUsdValue:Mp,realValue:Le||""},token:{displayName:K[X-1]?.to.token.displayName||"",image:K[X-1]?.to.token.image},chain:{image:K[X-1]?.to.chain.image,displayName:K[X-1]?.to.chain.displayName||""}},percentageChange:D(Ra,2,2),warningLevel:jt(Ra??0)})),Ce.createElement("div",{className:uS()},Ce.createElement(gp,{variant:"title",size:"small"},zt.t("Swaps steps"))),Ce.createElement(HN,{size:8}),Ce.createElement(sS,null,K.map((Pe,Lt)=>{let Lp=Lt,On=e.steps[Lt]&&bS(e.steps[Lt]),mC=On==="error"||On==="in-progress"||On==="warning"||On==="completed"&&Lt===K.length-1;return Ce.createElement(GN,{className:"widget-swap-details-step-item-container",key:Lp,step:Pe,type:"swap-progress",ref:h,state:On,hasSeparator:Lt!==0,tabIndex:Lp,isFocused:mC,tooltipContainer:W()})}))),Ce.createElement(lp,{isOpen:g,state:C,switchNetworkModalState:S,onClose:Q,onCancel:r,onDelete:n,message:se.detailedMessage.content,swap:e,handleSwitchNetwork:G}),Ce.createElement(pp,{open:!!v,diagnosisUrl:xo,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:D(Le,6,6),usdValue:Fn,realUsdValue:Mp,realValue:Le||"",percentageChange:D(Ra,2,2),token:{displayName:K[X-1]?.to.token.displayName||"",image:K[X-1]?.to.token.image},chain:{image:K[X-1]?.to.chain.image},description:dC}))}i(Sp,"SwapDetails");import{i18n as qa}from"@lingui/core";import{Divider as _S,NotFound as RN,Skeleton as Yr,Typography as Ga}from"@rango-dev/ui";import Ee from"react";import{i18n as XN}from"@lingui/core";import{Divider as YN,Skeleton as ZN,Typography as JN}from"@rango-dev/ui";import xe from"react";import{css as Mt,styled as Cp}from"@rango-dev/ui";var LS=Cp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Xr=Cp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Ha=Cp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),q7=Mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),G7=Mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),V7=Mt({paddingTop:"$15",display:"flex"}),K7=Mt({padding:"$15 $0"}),j7=Mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),X7=Mt({paddingBottom:"$10"}),Y7=Mt({display:"flex",justifyContent:"start",alignItems:"center"}),Z7=Mt({paddingTop:"$5",display:"flex",alignItems:"center"}),J7=Mt({display:"flex",alignItems:"center"}),R7=Mt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),PS=Mt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function kp(){return xe.createElement(LS,null,xe.createElement(Tr,{type:"swap-preview"}),xe.createElement("div",{className:"swaps-steps"},xe.createElement(JN,{variant:"title",size:"small"},XN.t("Swaps steps"))),xe.createElement(xe.Fragment,null,xe.createElement(Xr,null,xe.createElement(Ft,{separator:!1}),xe.createElement("div",{className:PS()},xe.createElement(YN,{direction:"horizontal",size:20}),xe.createElement(ZN,{height:22,variant:"rectangular"}))),xe.createElement(Ha,null),xe.createElement(Xr,null,xe.createElement(Ft,{separator:!1})),xe.createElement(Ha,null),xe.createElement(Xr,null,xe.createElement(Ft,{separator:!1})),xe.createElement(Ha,null),xe.createElement(Xr,null,xe.createElement(Ft,{separator:!1}))))}i(kp,"LoadingSwapDetails");function DS(t){let{requestId:e,showSkeleton:o}=t;return Ee.createElement(ie,{header:{title:qa.t("Swap Details"),suffix:Ee.createElement(uo,null)}},o&&Ee.createElement(iS,null,Ee.createElement("div",{className:jo()},Ee.createElement(Ga,{variant:"label",size:"large",color:"neutral700"},`${qa.t("Request ID")}`),Ee.createElement("div",{className:Oa()},Ee.createElement(Ga,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Yr,{width:60,height:10,variant:"rounded"})),Ee.createElement(_S,{direction:"horizontal",size:4}),Ee.createElement(Yr,{width:16,height:16,variant:"rectangular"}),Ee.createElement(_S,{direction:"horizontal",size:4}),Ee.createElement(Yr,{width:16,height:16,variant:"rectangular"}))),Ee.createElement("div",{className:jo()},Ee.createElement(Ga,{className:cS(),variant:"label",size:"large",color:"neutral700"},Ee.createElement(Yr,{width:60,height:10,variant:"rounded"})),Ee.createElement(Ga,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Yr,{width:60,height:10,variant:"rounded"}))),Ee.createElement(kp,null)),!o&&Ee.createElement(lS,null,Ee.createElement(RN,{title:qa.t("Not found"),description:qa.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(DS,"SwapDetailsPlaceholder");function $S(){let{manager:t,state:e}=o0(),o=!e.loadedFromPersistor,n=wt(t),{requestId:r}=r0(),a=je(),{fetchStatus:s}=k();if(!r)return Tp.createElement(n0,{containerStyles:{margin:"20px"},type:"error",title:e0.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:f})=>f.requestId===r):void 0,p=i(()=>{if(l?.id){let f=t?.get(l.id);f&&t0(f)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),d=l?.swap;return!d||c?Tp.createElement(DS,{requestId:r,showSkeleton:c}):Tp.createElement(Sp,{swap:d,requestId:r,onCancel:p,onDelete:u})}i($S,"SwapDetailsPage");import{i18n as FS}from"@lingui/core";import{Divider as i0,getCategoriesCount as a0,SelectableCategoryList as s0,styled as US,Typography as l0,Wallet as c0,WalletState as p0}from"@rango-dev/ui";import{useWallets as u0}from"@rango-dev/wallets-react";import Qt,{useState as OS}from"react";var d0=US("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),m0=US(pe,{textAlign:"center"});function zS(){let{fetchStatus:t}=k(),[e,o]=OS("ALL"),n=k().blockchains(),{config:r}=k(),{state:a}=u0(),{checkHasDeepLink:s,getWalletLink:c}=ln(),[l,p]=OS(),u=oe.use.isActiveTab(),{list:d}=xt(),f=xu(d,n),g=a0(f)!==1,m=Eu(d,e),C=i(y=>{au(d,r.multiWallets)||p(y)},"handleWalletItemClick");return Qt.createElement(ie,{header:{title:FS.t("Connect Wallets")}},Qt.createElement(m0,null,g&&Qt.createElement(Qt.Fragment,null,Qt.createElement(s0,{setCategory:o,category:e,blockchains:f,isLoading:t==="loading"}),Qt.createElement(i0,{size:24})),Qt.createElement(l0,{variant:"title",size:"xmedium",align:"center"},FS.t("Choose a wallet to connect.")),Qt.createElement(d0,null,m.map((y,S)=>{let T=a(y.type).namespaces,v=`wallet-${S}-${y.type}`,w=ps(y,T),A=y.state;return w&&(A=p0.PARTIALLY_CONNECTED),Qt.createElement(c0,{key:v,...y,state:A,hasDeepLink:s(y.type),link:c(y.type),container:W(),onClick:()=>C(y),isLoading:t==="loading",disabled:!u})}),Qt.createElement(rr,{id:"widget-state-full-connect-modal",wallet:l,onClose:()=>{p(void 0)}}))))}i(zS,"WalletsPage");function QS(){return im(),Xs(),f0([{path:O.home,element:Ge.createElement(iy,null)},{path:O.routes,element:Ge.createElement(py,null)},{path:O.fromSwap,children:[{index:!0,element:Ge.createElement(Wa,{type:"source"})},{path:O.blockchains,element:Ge.createElement(Ia,{type:"source"})}]},{path:O.toSwap,children:[{index:!0,element:Ge.createElement(Wa,{type:"destination"})},{path:O.blockchains,element:Ge.createElement(Ia,{type:"destination"})}]},{path:O.settings,children:[{index:!0,element:Ge.createElement(Fy,null)},{path:O.languages,element:Ge.createElement(sy,null)},{path:O.exchanges,element:Ge.createElement(Vc,{sourceType:"Exchanges"})},{path:O.bridges,element:Ge.createElement(Vc,{sourceType:"Bridges"})},{path:O.customTokens,children:[{index:!0,element:Ge.createElement(ah,null)},{path:O.addCustomTokens,children:[{index:!0,element:Ge.createElement(Rm,null)},{path:O.blockchains,element:Ge.createElement(Ia,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:O.swaps,children:[{index:!0,element:Ge.createElement(Eh,null)},{path:O.swapDetails,element:Ge.createElement($S,null)}]},{path:O.wallets,element:Ge.createElement(zS,null)},{path:O.confirmSwap,element:Ge.createElement(qg,null)}])}i(QS,"AppRoutes");import{useQueueManager as W0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as M0}from"rango-sdk";import{useContext as L0,useEffect as xp,useState as eC}from"react";import{Provider as C0}from"@rango-dev/wallets-react";import Va,{createContext as k0,useEffect as KS,useMemo as T0,useRef as jS}from"react";import{useEffect as g0}from"react";function HS(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(HS,"hashProviders");function wp(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=k(),a=n();return g0(()=>{o(),r()},[HS(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(wp,"useWalletProviders");import{legacyFormatAddressWithNetwork as h0,legacyReadAccountAddress as qS}from"@rango-dev/wallets-core/legacy";import{Events as Dn}from"@rango-dev/wallets-react";import{isEvmBlockchain as y0}from"rango-sdk";function GS(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=k(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(y0).map(m=>m.name),u=i((m,C)=>{let[y,,S,T,v]=m,w={walletType:y,network:T.network??void 0,accounts:S};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let A=cs(y,S,p,C.supportedChainNames,v.isContractWallet);A.length&&e(A,v.namespace,T.derivationPath)},"onAccountsEvent"),d=i((m,C,y,S,T)=>{if(C===Dn.ACCOUNTS){let v=Gn(T.supportedBlockchains);y&&u([m,C,y,S,T],{supportedChainNames:v})}C===Dn.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),C===Dn.NAMESPACE_DISCONNECTED&&n(m,y)},"handleUpdatesForHub"),f=i((m,C,y,S,T)=>{if(C===Dn.ACCOUNTS){let v=Gn(T.supportedBlockchains),w=[],A=[];if(y?.forEach(b=>{let{network:E}=qS(b);p.includes(E)?w.push(b):A.push(b)}),r.filter(b=>b.walletType===m).map(b=>h0(b.address,b.chain)).length>0){if(w.length>0){let b=cs(m,w,p,v,T.isContractWallet);a(m,{chains:b.map(E=>E.chain)})}A.length>0&&a(m,{chains:A.map(b=>{let{network:E}=qS(b);return E})})}y?u([m,C,y,S,T],{supportedChainNames:v}):(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((m,C,y,S,T)=>{if(C===Dn.CONNECTED&&y){let v={walletType:m,network:S.network??void 0,accounts:S.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(C===Dn.NETWORK&&y){let v={walletType:m,network:y,accounts:S.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((m,C,y,S,T)=>{T.isHub?d(m,C,y,S,T):f(m,C,y,S,T),h(m,C,y,S,T)},"handler")}}i(GS,"useUpdates");import{LegacyEvents as S0}from"@rango-dev/wallets-core/legacy";function VS(t,e){let[o,n,r,a,s]=e;n!==S0.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(VS,"propagateEvents");var Ka=k0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function w0(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}=wp(s.wallets,c),p=jS(),u=jS(),{handler:d}=GS({onConnectWalletHandler:p,onDisconnectWalletHandler:u});KS(()=>{n().catch(console.log)},[]),KS(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=oe.use.isActiveTab(),h=T0(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Va.createElement(Ka.Provider,{value:h},Va.createElement(C0,{allBlockChains:a,providers:l,onUpdateState:(g,m,C,y,S)=>{let T=[g,m,C,y,S];d(...T),t.onUpdateState&&VS(t.onUpdateState,T)},autoConnect:!!f,configs:{wallets:s.wallets}},t.children))}i(w0,"Main");function ja(t){let{config:e,...o}=t;return Va.createElement(Gu,{config:e},Va.createElement(w0,{...o,config:e}))}i(ja,"WidgetWallets");import{globalCss as v0}from"@rango-dev/ui";var XS=i(()=>v0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");import{useWallets as b0}from"@rango-dev/wallets-react";import{useEffect as x0,useRef as E0}from"react";function YS(){let{connect:t,state:e}=b0(),o=E0({}),{fetchStatus:n}=k(),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(YS,"useForceAutoConnect");import{isApprovalTX as I0,RouteEventType as ZS,StepEventType as JS,StepExecutionEventStatus as A0,WidgetEvents as Xa}from"@rango-dev/queue-manager-rango-preset";import{useEffect as RS}from"react";function vp(){let t=Ne.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=k();RS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===JS.TX_EXECUTION&&s.status===A0.TX_SENT&&!I0(c)||s.type===JS.SUCCEEDED){let u=[],d=l.wallets[c?.fromBlockchain];if(d){let f=e.find(h=>h.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&h.walletType===d.walletType&&h.chain===c?.fromBlockchain);f&&u.push(f)}if(c?.fromBlockchain!==c?.toBlockchain){let f=l.wallets[c?.toBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let f=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(m=>f.some(C=>C.blockchain===m.blockchain&&C.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&C.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return ke.on(Xa.StepEvent,r),()=>ke.off(Xa.StepEvent,r)},[ke,e]),RS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===ZS.FAILED||s.type===ZS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return ke.on(Xa.RouteEvent,r),()=>ke.off(Xa.RouteEvent,r)},[ke])}i(vp,"useSubscribeToWidgetEvents");import{useManager as N0}from"@rango-dev/queue-manager-react";import{useEffect as B0}from"react";function bp(){let{isSynced:t,syncNotifications:e}=Ne(),{manager:o,state:n}=N0();B0(()=>{Ne.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(wt(o))},[Ne.persist.hasHydrated(),n.loadedFromPersistor,t])}i(bp,"useSyncNotifications");function Ep(){YS(),XS(),vp(),bp();let t=k().blockchains(),{canSwitchNetworkTo:e}=Yi(),[o,n]=eC(null),[r,a]=eC(),s=L0(Ka),c=t.filter(M0);xp(()=>()=>nm(),[]),xp(()=>()=>rm(),[]),W0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),xp(()=>(Mo.init(),Ne.persist.hasHydrated()||Ne.persist.rehydrate(),s.onConnectWallet(l=>{n(p=>{if(!p||p.walletType!==l.walletType)return l;let u={...p};return l.network&&(u.network=l.network),l.accounts&&(u.accounts=l.accounts),u})}),s.onDisconnectWallet(l=>{a(l),n(p=>l===p?.walletType?null:p)}),Mo.destroy),[])}i(Ep,"useBootstrap");import{styled as P0}from"@rango-dev/ui";var tC=P0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Xo(){Ep();let{config:t}=k(),{activeTheme:e}=po(t?.theme||{}),{activeLanguage:o}=ko();return Ip.createElement(_0,{language:o},Ip.createElement(tC,{id:"swap-container",className:e()},Ip.createElement(QS,null)))}i(Xo,"Main");import{setSolanaSignerConfig as tB}from"@rango-dev/signer-solana";import Np,{useEffect as Bp,useMemo as oB}from"react";function oC(){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(oC,"useFetchApiConfig");import{useState as D0}from"react";var $0=i(()=>{let[t,e]=D0(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=iu(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),nC=$0;import{checkWaitingForNetworkChange as F0,makeQueueDefinition as O0}from"@rango-dev/queue-manager-rango-preset";import{Provider as U0}from"@rango-dev/queue-manager-react";import{useWallets as z0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Q0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as H0}from"rango-types";import q0,{useMemo as G0}from"react";function V0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=z0(),c=G0(()=>O0({API_KEY:t.apiKey||qt("API_KEY"),BASE_URL:qt("BASE_URL"),emitter:{emit:ke.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=k(),u=l(),d={blockchains:p.map(v=>({accounts:[v],name:v.chain}))},f=i(async(v,w)=>a(v,w.network,w)?await r(v,[w]):void 0,"switchNetwork"),h=i(v=>!!s(v).mobileWallet,"isMobileWallet"),g=u.filter(v=>v.enabled).reduce((v,w)=>(v[w.name]=w,v),{}),m=u.filter(H0),C=i(v=>{let{supportedChains:w}=s(v);return Gn(w)},"getSupportedChainNames"),y=e(),S={meta:{blockchains:g,evmBasedChains:m,evmNetworkChainInfo:Q0(m),getSupportedChainNames:C},getSigners:o,wallets:d,providers:y,switchNetwork:f,canSwitchNetworkTo:a,state:n,isMobileWallet:h},T=oe.use.isActiveTab();return q0.createElement(U0,{queuesDefs:[c],context:S,onPersistedDataLoaded:v=>{F0(v)},isPaused:!T},t.children)}i(V0,"QueueManager");var rC=V0;import{useManager as Z0}from"@rango-dev/queue-manager-react";import J0,{createContext as R0,useContext as eB}from"react";function iC(){let{findToken:t}=k(),e=k().blockchains(),o=k().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=U()();return i(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:f,toToken:h,requestAmount:g}=p,m={blockchains:e,tokens:o};if(u!==void 0){let C=e.find(y=>y.name===u)??null;n(C)}if(d!==void 0){let C=d?t(d)??null:null;r({meta:m,token:C})}if(f!==void 0){let C=e.find(y=>y.name===f)??null;a(C)}if(h!==void 0){let C=h?t(h)??null:null;s({meta:m,token:C})}g!==void 0&&c(g)},"updateQuoteInputs")}i(iC,"useUpdateQuoteInputs");import{cancelSwap as K0,getCurrentNamespaceOfOrNull as j0,getCurrentStep as X0,getRelatedWalletOrNull as Y0}from"@rango-dev/queue-manager-rango-preset";var Ya=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return wt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Ai(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&K0(o)}getCurrentStepInfo(e){let o=X0(e);return{step:o,wallet:o?Y0(e,o):null,network:o?j0(e,o)?.network:null}}};var aC=R0(void 0);function Ap(t){let{manager:e}=Z0(),o=oe.use.isActiveTab(),n=U().use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=k(),l=new Ya(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=k(),u=Cu(a()),d=k().blockchains(),f=k().tokens(),h=k().swappers(),g=k().fetchStatus,m=ko().resetLanguage,C=Ne().getNotifications(),y=Ne().clearNotifications,S=iC(),{fromBlockchain:T,toBlockchain:v,fromToken:w,toToken:A,inputAmount:B}=U()(),b={isActiveTab:o,setCurrentTabAsActive:Mo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async E=>c(E)},meta:{blockchains:d,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:m,notifications:{list:C,clearAll:y},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:w?{symbol:w.symbol,blockchain:w.blockchain,address:w.address}:null,toBlockchain:v?.name??null,toToken:A?{symbol:A.symbol,blockchain:A.blockchain,address:A.address}:null,requestAmount:B},updateQuoteInputs:S}};return J0.createElement(aC.Provider,{value:b},t.children)}i(Ap,"WidgetInfo");function sC(){let t=eB(aC);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(sC,"useWidget");function $n(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=oC(),{handleLoadCustomFont:a}=nC();return Bp(()=>{r().catch(console.log)},[]),Bp(()=>{n&&a(n)},[n]),oB(()=>{Iu({API_KEY:o?.apiKey||ti,BASE_URL:o?.apiUrl||Xp})},[o.apiKey,o.apiUrl]),Bp(()=>{t.config?.signers?.customSolanaRPC&&tB("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Np.createElement(ja,{config:o,onUpdateState:e},Np.createElement(rC,{apiKey:o.apiKey},Np.createElement(Ap,null,t.children)))}i($n,"WidgetProvider");function lC(t){let e=t.config?.externalWallets;return Za.createElement(Ei,null,e?Za.createElement(Xo,null):Za.createElement($n,{config:t.config??Ro},Za.createElement(Xo,null)))}i(lC,"Refuel");import Ja from"react";function cC(t){let e=t.config?.externalWallets;return Ja.createElement(Ei,null,e?Ja.createElement(Xo,null):Ja.createElement($n,{config:t.config??Ro},Ja.createElement(Xo,null)))}i(cC,"Widget");function pC(){let{on:t,off:e}=ke;return{on:t,off:e}}i(pC,"useWidgetEvents");var jee={DerivationPath:tr,Namespaces:Jn,Detached:er,isOnDerivationPath:nr,isOnNamespace:or,isOnDetached:Eo};export{See as EventSeverity,nn as MainEvents,Aee as Networks,Wee as PendingSwapNetworkStatus,gs as QuoteEventTypes,lC as Refuel,Cee as RouteEventType,rs as SUPPORTED_FONTS,jee as StatefulConnect,kee as StepEventType,Tee as StepExecutionBlockedEventStatus,wee as StepExecutionEventStatus,Cd as SwapModeContext,tt as UI_ID,ys as UiEventTypes,hs as WalletEventTypes,Eee as WalletEvents,Nee as WalletTypes,cC as Widget,nn as WidgetEvents,$n as WidgetProvider,ja as WidgetWallets,pl as customizedThemeTokens,bee as readAccountAddress,Yo as useStatefulConnect,xt as useWalletList,Yi as useWallets,sC as useWidget,pC as useWidgetEvents,hk as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map