@rango-dev/widget-embedded 0.45.1-next.3 → 0.45.1-next.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/NamespaceItem/NamespaceItem.d.ts +4 -0
- package/dist/components/NamespaceItem/NamespaceItem.d.ts.map +1 -0
- package/dist/components/{WalletStatefulConnect/Namespaces.helpers.d.ts → NamespaceItem/NamespaceItem.helpers.d.ts} +1 -1
- package/dist/components/NamespaceItem/NamespaceItem.helpers.d.ts.map +1 -0
- package/dist/components/NamespaceItem/NamespaceItem.styles.d.ts +1450 -0
- package/dist/components/NamespaceItem/NamespaceItem.styles.d.ts.map +1 -0
- package/dist/components/NamespaceItem/NamespaceItem.types.d.ts +13 -0
- package/dist/components/NamespaceItem/NamespaceItem.types.d.ts.map +1 -0
- package/dist/components/{WalletStatefulConnect → NamespaceItem}/NamespaceUnsupportedItem.d.ts +1 -1
- package/dist/components/NamespaceItem/NamespaceUnsupportedItem.d.ts.map +1 -0
- package/dist/components/NamespaceItem/SupportedChainsList.d.ts.map +1 -0
- package/dist/components/NamespaceItem/SupportedChainsList.styles.d.ts.map +1 -0
- package/dist/components/NamespaceItem/SupportedChainsList.types.d.ts.map +1 -0
- package/dist/components/NamespaceItem/index.d.ts +2 -0
- package/dist/components/NamespaceItem/index.d.ts.map +1 -0
- package/dist/components/SwapDetails/RequestIdRow.d.ts +4 -0
- package/dist/components/SwapDetails/RequestIdRow.d.ts.map +1 -0
- package/dist/components/SwapDetails/SwapDateRow.d.ts +4 -0
- package/dist/components/SwapDetails/SwapDateRow.d.ts.map +1 -0
- package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.types.d.ts +7 -0
- package/dist/components/SwapDetails/SwapDetails.types.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.ConnectWallet.d.ts +4 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.ConnectWallet.d.ts.map +1 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.InstallWallet.d.ts +4 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.InstallWallet.d.ts.map +1 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.NetworkState.d.ts +4 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.NetworkState.d.ts.map +1 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.styles.d.ts +320 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.styles.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts +29 -10
- package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/Detached.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/NamespaceDetachedItem.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/NamespaceListItem.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/Namespaces.styles.d.ts +281 -1730
- package/dist/components/WalletStatefulConnect/Namespaces.styles.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts +0 -3
- package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +4 -4
- package/dist/widget-embedded.build.json +1 -1
- package/package.json +3 -3
- package/src/components/{WalletStatefulConnect/Namespaces.helpers.ts → NamespaceItem/NamespaceItem.helpers.ts} +1 -1
- package/src/components/NamespaceItem/NamespaceItem.styles.ts +93 -0
- package/src/components/NamespaceItem/NamespaceItem.tsx +117 -0
- package/src/components/NamespaceItem/NamespaceItem.types.ts +14 -0
- package/src/components/{WalletStatefulConnect → NamespaceItem}/NamespaceUnsupportedItem.tsx +3 -3
- package/src/components/NamespaceItem/index.ts +1 -0
- package/src/components/SwapDetails/RequestIdRow.tsx +73 -0
- package/src/components/SwapDetails/SwapDateRow.tsx +21 -0
- package/src/components/SwapDetails/SwapDetails.tsx +39 -83
- package/src/components/SwapDetails/SwapDetails.types.ts +7 -0
- package/src/components/SwapDetailsModal/SwapDetailsModal.ConnectWallet.tsx +177 -0
- package/src/components/SwapDetailsModal/SwapDetailsModal.InstallWallet.tsx +52 -0
- package/src/components/SwapDetailsModal/SwapDetailsModal.NetworkState.tsx +17 -0
- package/src/components/SwapDetailsModal/SwapDetailsModal.WalletState.tsx +22 -62
- package/src/components/SwapDetailsModal/SwapDetailsModal.styles.ts +20 -1
- package/src/components/SwapDetailsModal/SwapDetailsModal.tsx +24 -35
- package/src/components/SwapDetailsModal/SwapDetailsModal.types.ts +31 -10
- package/src/components/WalletStatefulConnect/Detached.tsx +2 -1
- package/src/components/WalletStatefulConnect/NamespaceDetachedItem.tsx +19 -105
- package/src/components/WalletStatefulConnect/NamespaceListItem.tsx +9 -34
- package/src/components/WalletStatefulConnect/Namespaces.styles.ts +1 -93
- package/src/components/WalletStatefulConnect/Namespaces.tsx +1 -1
- package/src/components/WalletStatefulConnect/Namespaces.types.tsx +0 -4
- package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts +0 -4
- package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts.map +0 -1
- package/dist/components/WalletStatefulConnect/NamespaceUnsupportedItem.d.ts.map +0 -1
- package/dist/components/WalletStatefulConnect/Namespaces.helpers.d.ts.map +0 -1
- package/dist/components/WalletStatefulConnect/SupportedChainsList.d.ts.map +0 -1
- package/dist/components/WalletStatefulConnect/SupportedChainsList.styles.d.ts.map +0 -1
- package/dist/components/WalletStatefulConnect/SupportedChainsList.types.d.ts.map +0 -1
- package/src/components/SwapDetailsModal/SwapDetailsModal.helpers.tsx +0 -26
- /package/dist/components/{WalletStatefulConnect → NamespaceItem}/SupportedChainsList.d.ts +0 -0
- /package/dist/components/{WalletStatefulConnect → NamespaceItem}/SupportedChainsList.styles.d.ts +0 -0
- /package/dist/components/{WalletStatefulConnect → NamespaceItem}/SupportedChainsList.types.d.ts +0 -0
- /package/src/components/{WalletStatefulConnect → NamespaceItem}/SupportedChainsList.styles.ts +0 -0
- /package/src/components/{WalletStatefulConnect → NamespaceItem}/SupportedChainsList.tsx +0 -0
- /package/src/components/{WalletStatefulConnect → NamespaceItem}/SupportedChainsList.types.ts +0 -0
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var wS=Object.defineProperty;var i=(t,e)=>wS(t,"name",{value:e,configurable:!0});import{EventSeverity as PZ,RouteEventType as _Z,StepEventType as DZ,StepExecutionBlockedEventStatus as $Z,StepExecutionEventStatus as FZ}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as UZ}from"@rango-dev/wallets-core/legacy";import{useWallets as Fi,Events as QZ}from"@rango-dev/wallets-react";import{Networks as HZ,WalletTypes as GZ}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as KZ}from"rango-types";import{Divider as _T}from"@rango-dev/ui";import to,{useEffect as DT,useRef as $T,useState as Vu}from"react";import{WalletState as bS}from"@rango-dev/ui";import{useWallets as xS}from"@rango-dev/wallets-react";import{useReducer as ES}from"react";function up(t){return!!t.derivationPath}i(up,"isStateOnDerivationPathStep");function dp(t){return!!t.namespace}i(dp,"isStateOnNamespace");var Dr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function mp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return Dr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Dr;default:throw new Error("Action hasn't been defined.")}}i(mp,"reducer");function Uo(){let{state:t,disconnect:e,connect:o}=xS(),[n,r]=ES(mp,Dr),a=i(async(p,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(p,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(p,f)=>{if(p.state===bS.DISCONNECTED){let g=!!p.isHub,m=g?p.properties?.find(y=>y.name==="namespaces")?.value:p.needsNamespace,d=g?p.properties?.find(y=>y.name==="derivationPath")?.value:p.needsDerivationPath;if(!m?.data?.length)return await a(p.type,void 0,f);if(m?.data.length&&m.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:p,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(m?.data.length===1){if(d){let y=m.data[0];return r({type:"needsDerivationPath",payload:{providerType:p.type,providerImage:p.image,namespace:y.value}}),{status:"derivation-path"}}return await a(p.type,m?.data?.map(y=>({namespace:y.value})),f)}}if(p.isHub){let g=p.properties?.find(m=>m.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:p,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(p.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(p,f)=>{let h=!!p.isHub,g=h?p.properties?.find(S=>S.name==="namespaces")?.value:p.needsNamespace,m=h?p.properties?.find(S=>S.name==="derivationPath")?.value:p.needsDerivationPath,d=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(d&&m)return r({type:"needsDerivationPath",payload:{providerType:p.type,providerImage:p.image,namespace:y}}),{status:"derivation-path"};if(!dp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=f.map(S=>({namespace:S}));return r({type:"detached",payload:{targetWallet:p,selectedNamespaces:C?.map(S=>S.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async p=>{if(!p)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!up(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let f=n.derivationPath.providerType,g=[{namespace:n.derivationPath.namespace,derivationPath:p}];return await a(f,g)},"handleDerivationPath"),u=i(async p=>{let f=t(p);return f.connected||f.connecting?(await e(p),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:()=>n,resetState:p=>{r(p==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Uo,"useStatefulConnect");import{WalletState as cs}from"@rango-dev/ui";import{useWallets as DC}from"@rango-dev/wallets-react";import{detectMobileScreens as $C,KEPLR_COMPATIBLE_WALLETS as FC,WalletTypes as Fn}from"@rango-dev/wallets-shared";import{useCallback as OC,useEffect as UC}from"react";import WC,{createContext as LC,useContext as MC,useEffect as PC,useRef as _C}from"react";import{create as NC}from"zustand";import{persist as BC}from"zustand/middleware";import{allProviders as IS}from"@rango-dev/provider-all";var Ua=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},zo=new Ua;import{defineVersions as gp,pickVersion as hp,Provider as za}from"@rango-dev/wallets-core";function yp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=Sp(a);return s instanceof za?s.id===n:s.config.type===n});r?o.push(r):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else n instanceof za?o.push(gp().version("1.0.0",n).build()):o.push(gp().version("0.0.0",n).build())}),o}return t}i(yp,"matchAndGenerateProviders");function Sp(t){try{return hp(t,"1.0.0")[1]}catch{return hp(t,"0.0.0")[1]}}i(Sp,"pickProviderVersionWithFallbackToLegacy");function Cp(t){return t.map(o=>Sp(o)).map(o=>o instanceof za?o.id:o.config.type)}i(Cp,"configWalletsToWalletName");function $r(t,e){return e.find(o=>o.name===t)?.displayName}i($r,"getBlockchainDisplayNameFor");function ft(t,e){return e.find(o=>o.name===t)?.shortName}i(ft,"getBlockchainShortNameFor");function Tp(t,e){return e.find(o=>o.name===t)?.logo}i(Tp,"getBlockchainImage");function Nn(t,e){return e.find(o=>o.id===t)?.title}i(Nn,"getSwapperDisplayName");function So(t,e){return e.find(o=>o.name===t)??null}i(So,"findBlockchain");function Qa(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Qa,"isTokenNative");function gt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(gt,"createTokenHash");function Qo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Qo,"isValidTokenAddress");function Bn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=gt(l));let u=o.tokensMapByTokenHash.get(l);u&&(n[l]=u)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{c.has(l)||a(o.tokensMapByBlockchainName[l])})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(u=>{let p=gt(u);delete n[p]})):a(l.tokens))}),Object.values(n)}i(Bn,"matchTokensFromConfigWithMeta");function Fr(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(Fr,"getSupportedBlockchainsFromConfig");function vp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(vp,"makeProvidersOptionsFromConfig");var Or={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/manifests/tonconnect-manifest.json"}},AS={clientUrl:void 0},NS={liquiditySources:void 0};function kp(t){let e=vp(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return IS(o).map(a=>a())}i(kp,"generateProviders");var wp=i((t,e,o)=>{let n=kp({...Or,...t});return{config:{...Or,...t},iframe:AS,campaignMode:NS,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=Bn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),u=Bn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});zo.set("supportedSourceTokens",l),zo.set("supportedDestinationTokens",u),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=kp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=vp(a);return yp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as bp}from"rango-types";var xp=[bp.EVM,bp.SOLANA],Ur="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as HS}from"rango-sdk";import{UI_ID as BS}from"@rango-dev/ui";var zr="c6381a79-2817-4602-83bf-6a641a409e32",Ep="https://api.rango.exchange",Ip="https://explorer.rango.exchange",Qe={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...BS};import{BlockchainCategories as $S,WalletState as it}from"@rango-dev/ui";import{legacyReadAccountAddress as FS}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as OS,getCosmosExperimentalChainInfo as US,isEvmAddress as zS,KEPLR_COMPATIBLE_WALLETS as YN,Networks as jp}from"@rango-dev/wallets-shared";import Ho from"bignumber.js";import{isCosmosBlockchain as QS}from"rango-types";import WS from"bignumber.js";var de=new WS(0);import{WalletTypes as LS}from"@rango-dev/wallets-shared";var Co="~",Ap=[LS.LEAP];import{BlockchainCategories as Ha,WalletState as DS}from"@rango-dev/ui";import{TransactionType as Qr}from"rango-sdk";var Np="Roboto",qa=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];function qo(t){return Array.from(new Set(t))}i(qo,"removeDuplicateFrom");function qr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(qr,"debounce");function rt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(rt,"containsText");function Lp(t,e){return t.toLowerCase()===e.toLowerCase()}i(Lp,"exactText");function Mp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Mp,"startWithText");var N=i(()=>document.getElementById(Qe.SWAP_BOX_ID),"getContainer"),To=i(()=>document.getElementById(Qe.EXPANDED_BOX_ID),"getExpanded");function Pp(t,e,o){let n=!!e&&Lp(e,t),r=!!o&&Lp(o,t);return n!==r?n?-1:1:0}i(Pp,"compareExactMatchText");function Ga(t,e,o){let n=!!e&&rt(e,t),r=!!o&&rt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ga,"compareContainsText");function Va(t,e,o){let n=!!e&&Mp(e,t),r=!!o&&Mp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Va,"compareStartWithText");function _p(t,e,o){if(!o)return 0;let n=Pp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Pp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Va(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ga(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Va(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ga(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Va(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ga(o,t.address,e.address);if(r!==0)return r}return 0}i(_p,"compareWithSearchFor");var Hr=i((t,e)=>{switch(e){case Ha.ALL:return!0;case Ha.UTXO:return t===Qr.TRANSFER;case Ha.OTHER:return t!==Qr.TRANSFER&&t!==Qr.COSMOS&&t!==Qr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Dp=i(t=>qa.find(o=>o.value===t)?.url,"getFontUrlByName");function $p(t,e){let o=!!t.find(n=>n.state===DS.CONNECTED);return e===!1&&o}i($p,"isSingleWalletActive");function Fp(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(Fp,"memoizedResult");import{BigNumber as Vp}from"bignumber.js";function Op(t){return t.replace(/^0+(?=\d)/g,"")}i(Op,"removeLeadingZeros");function Up(t){return t.replace(/^\.(\d+)/,"0.$1")}i(Up,"ensureLeadingZeroForDecimal");function zp(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(zp,"formatThousandsWithCommas");function Qp(t){return t.replace(/\s+/g,"-")}i(Qp,"replaceSpacesWithDash");function qp(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(qp,"stripTrailingZeros");function Gr(t){return/^0+(?:\.0+)?$/.test(t)}i(Gr,"isZeroValue");function Hp(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(Hp,"isValidCurrencyFormat");function Gp(t){return/\d+$/.test(t)}i(Gp,"isColorKeyOverridden");var Wn=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),_=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Vp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Vp(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Vr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Nt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Ln=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Kp(t){return Gr(t)?"0":qp(t)}i(Kp,"sanitizeInputAmount");function Mn(t){return t.connected?it.CONNECTED:t.connecting?it.CONNECTING:t.installed?it.DISCONNECTED:it.NOT_INSTALLED}i(Mn,"mapStatusToWalletState");function Xp(t,e,o,n){return o.filter(r=>!Ap.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(p=>p.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:u,supportedChains:p,needsDerivationPath:f,properties:h,isHub:g}=e(r),m=qo(p.map(y=>y.type)),d=Mn(t(r));return{title:a,image:s,link:OS(c),state:d,type:r,showOnMobile:l,needsNamespace:u,blockchainTypes:m,needsDerivationPath:f,properties:h,isHub:g}})}i(Xp,"mapWalletTypesToWalletInfo");function Pn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Pn,"walletAndSupportedChainsNames");function ja(t,e,o,n,r){let a=[];function s(l,u,p){if(!!!a.find(h=>h.chain===l)){let h={address:u,chain:l,walletType:t,isContractWallet:p??!1};a.push(h)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:u,network:p}=FS(l),f=c.length>0,h=c.includes(p),g=p===jp.Unknown;if(f&&!h&&!g)return;let d=p===jp.Unknown&&zS(u);if(g&&!d)return;o.includes(p)||d?r?s(p,u.toLowerCase(),r):c.filter(S=>o.includes(S)).forEach(S=>{s(S,u.toLowerCase())}):s(p,u)}),a}i(ja,"prepareAccountsForWalletStore");function ko(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((u,p)=>{let f=u.from.blockchain,h=u.to.blockchain,g=a===o.swaps.length-1,m=p===l.length-1;(!g&&!m||g&&c!==f||e==="all")&&n.add(f),e==="all"&&n.add(h)})}e==="all"&&n.add(c)}),Array.from(n)}i(ko,"getQuoteChains");function _n(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(_n,"isAccountAndWalletMatched");var Yp=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?Ka(n.usdValue,n.decimals):de.toFixed();return o.plus(r)},new Ho(de));return qS(e.toString())},"calculateWalletUsdValue");function qS(t){let e=t.toString().split(".");return e[0]=zp(e[0]),e.join(".")}i(qS,"numberWithThousandSeparator");var Xr=i((t,e)=>{let o=US(Object.entries(t).map(([,n])=>n).filter(QS));return o&&o[e]?.experimental},"isExperimentalChain");function Ka(t,e){return new Ho(t).shiftedBy(-e).toFixed()}i(Ka,"representAmountInNumber");function Yr(t){if(!t)return null;let e=Ka(t.amount,t.decimals),o=t.usdValue?Ka(t.usdValue,t.decimals):null,n=_(e,8,8),r=o?_(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(Yr,"formatBalance");function Zp(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Ho(t.usdValue).shiftedBy(-t.decimals):de,n=e&&e.usdValue?new Ho(e.usdValue).shiftedBy(-e.decimals):de;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Ho(t.amount).shiftedBy(-t.decimals):de,n=e&&e.amount?new Ho(e.amount).shiftedBy(-e.decimals):de;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Zp,"compareTokenBalance");function Ft(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Ft,"areTokensEqual");function Jp(t,e){return t.map(o=>({isPartiallyConnected:Xa(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===it.CONNECTED&&!n.isPartiallyConnected)-+(o.state===it.CONNECTED&&!o.isPartiallyConnected)||+(n.state===it.CONNECTED)-+(o.state===it.CONNECTED)||+(n.state===it.DISCONNECTED||n.state===it.CONNECTING)-+(o.state===it.DISCONNECTED||o.state===it.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(Jp,"sortWalletsBasedOnConnectionState");function Go(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(Go,"getConciseAddress");function Rp({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Rp,"getAddress");var eu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function tu(t){return t.map(e=>e.state).join("-")}i(tu,"hashWalletsState");function ou(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(ou,"filterBlockchainsByWalletTypes");function nu(t,e){return e===$S.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Hr(n,e))return!0;return!1})}i(nu,"filterWalletsByCategory");function Xa(t,e){return!t.isHub||!t.needsNamespace||t.state!==it.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(Xa,"checkIsWalletPartiallyConnected");var Ya={API_KEY:zr};function Ot(t){return Ya[t]||""}i(Ot,"getConfig");function ru(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ya=e,Ya}i(ru,"initConfig");var iu=20,au=25,Za="theme-widget",Ja=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Ft(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Ft(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Ra=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),su=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Zr,at=i(()=>Zr||(Zr=new HS(Ot("API_KEY"),Ot("BASE_URL")),Zr),"httpService");import{i18n as cu}from"@lingui/core";var Jr=[.5,1,3],Rr=1,Vo=5,Dn=30,ei=0;import{WidgetEvents as lu}from"@rango-dev/queue-manager-rango-preset";var es=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(es||{}),ts=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(ts||{}),os=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(os||{}),Ko=(a=>(a[a.RouteEvent=lu.RouteEvent]="RouteEvent",a[a.StepEvent=lu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Ko||{});function ti(t,e){let o=t.map(a=>a.swapperGroup),n=[];return qo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(c=>c.swapperGroup===a);if(s){let c=!0;o&&(c=o.some(l=>l===s.swapperGroup)),c&&s.types.map(l=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:l,selected:!e.includes(s.swapperGroup)})})}}),n}i(ti,"getUniqueSwappersGroups");function pu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(pu,"sortLiquiditySourcesByGroupTitle");function Re(t,e){return e?.[t]==="hidden"}i(Re,"isFeatureHidden");function jo(t,e){return e?.[t]==="enabled"}i(jo,"isRoutingEnabled");var uu=i((t,e,o)=>Re("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function Xo(t){return t==ei?{type:"error",message:cu.t("Slippage must be greater than or equal to 0.01")}:t>Vo&&t<=Dn?{type:"warning",message:cu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(Xo,"getSlippageValidation");var du=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let l=Fr({config:a}),u=r;return l.length>0&&(u=u.filter(p=>l.includes(p.name))),u.filter(p=>xp.includes(p.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 u=o.type==="source"?"from":"to",p=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",f=zo.get(p);f?.length||(f=Bn({type:o.type,config:{blockchains:a[u]?.blockchains,tokens:a[u]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),zo.set(p,f)),f=uu(f,s,a.features);let h=e().blockchains({type:o.type});return f.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!h.some(d=>d.name===m.blockchain)?!1:o.searchFor?!!(rt(m.symbol,o.searchFor)||rt(m.address||"",o.searchFor)||rt(m.name||"",o.searchFor)):!0).sort((m,d)=>{let y=e().isTokenPinned(m,o.type),C=e().isTokenPinned(d,o.type);if(y!==C)return y?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(m),A=o.getBalanceFor(d),E=Zp(I,A);if(E!==0)return E}let S=l.get(m.blockchain),k=l.get(d.blockchain),v=Qa(m,S),x=Qa(d,k);if(v!==x)return v?-1:1;if(m.isPopular!==d.isPopular)return m.isPopular?-1:1;if(o.searchFor){let I=_p(m,d,o.searchFor);if(I)return I}return m.isSecondaryCoin!==d.isSecondaryCoin?m.isSecondaryCoin?1:-1:S&&k?S.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=gt(o),s=n.get(a);return s||(s=r.find(c=>gt(c)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Ft(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let p=a?.includes(u.swapperGroup);return s||!a||a.length===0?!p:p}).sort(pu)},fetch:async()=>{try{let{routing:o}=e().config,n=jo("enableCentralizedSwappers",o),r=await at().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],u=r.popularTokens,p=r.swappers.filter(g=>g.enabled),f=new Set;r.tokens.forEach(g=>{f.add(g.blockchain),l.push(g)}),r.blockchains.sort((g,m)=>g.sort-m.sort).forEach(g=>{g.enabled&&f.has(g.name)&&a.set(g.name,g)}),l.forEach(g=>{let m=gt(g);c[g.blockchain]||(c[g.blockchain]=[]),s.set(m,g),c[g.blockchain].push(m)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:u,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as GS,Catalonia as VS,Chinese as mu,Denmark as KS,English as jS,Finland as XS,French as YS,German as ZS,Greece as JS,Hungary as RS,India as eC,Indonesian as tC,Italian as oC,Japanese as nC,Korea as rC,Lithuania as iC,Malay as aC,Netherlands as sC,Pakistan as lC,Philippines as cC,Poland as pC,Portuguese as uC,Russian as dC,SaudiArabia as mC,Serbia as fC,Slovakia as gC,SouthAfrica as hC,Spanish as yC,Swahili as SC,Swedish as CC,Thai as TC,Turkish as kC,Ukrainian as vC,Vietnamese as wC}from"@rango-dev/ui";var fu=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:hC},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:mC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:GS},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:VS},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:mu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:mu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:KS},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:sC},{title:"English",label:"English",local:"en",SVGFlag:jS},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:cC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:XS},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:YS},{title:"German",label:"Deutsch",local:"de",SVGFlag:ZS},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:JS},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:eC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:RS},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:tC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:oC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:nC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:rC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:iC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:aC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:pC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:uC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:dC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:fC},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:gC},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:yC},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:SC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:CC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:TC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:kC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:vC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:lC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:wC}],Yo="en";var gu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Rr,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],quoteTokensRate:"default",changeQuoteTokensRate:()=>t(o=>({quoteTokensRate:o.quoteTokensRate==="default"?"reversed":"default"})),addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,c)=>{let l=s===o,u=c<=9;return l&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=qo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Re("theme",n),s=Re("language",n),c=Re("liquiditySource",n),l=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Yo},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||Yo}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=Fr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import ls from"bignumber.js";import bC from"mitt";var Te=bC(),xC={on:Te.on,off:Te.off};var hu=i(t=>(e,o,n)=>t(i((...a)=>{let[s,...c]=a;e(l=>({...typeof s=="function"?s(l):s,lastUpdatedAt:+new Date}),...c)},"modifedSet"),o,n),"keepLastUpdated");import yu from"bignumber.js";function Ut(t){return`${t.blockchain}${Co}${t.address}${Co}${t.symbol}`}i(Ut,"createAssetKey");function Su(t,e){return`${Ut(e)}${Co}${t}`}i(Su,"createBalanceKey");function $n(t){let[e,o,n]=t.split(Co);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i($n,"extractAssetFromBalanceKey");function rs(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Ut(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new yu(r??de).multipliedBy(o[s].amount).toString():""})})}),o}i(rs,"computeNextBalancesWithNewPrices");function is(t,e){let o={};return t.balances?.forEach(n=>{let r=Su(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new yu(c??de).multipliedBy(a).toString():"",u={amount:a,decimals:s,usdValue:l};o[r]=u}),o}i(is,"createBalanceStateForNewAccount");function as(t,e){for(let o in e){let n=$n(o),r=Ut(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(as,"updateAggregatedBalanceStateForNewAccount");function EC(t,e){let o=$n(e),n=Ut(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(EC,"removeBalanceFromAggregatedBalance");function ss(t,e,o){let n=t.connectedWallets.filter(l=>l.walletType===e);t.connectedWallets.forEach(l=>{l.walletType!==e&&(n=n.filter(u=>!(u.chain===l.chain&&u.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 u=$n(l);!!n.find(f=>Su(f.address,{address:u.address,blockchain:f.chain,symbol:u.symbol})===l)?a=EC(a,l):r[l]=s[l]}),{_balances:r,_aggregatedBalances:a}}i(ss,"computeNextStateAfterWalletBalanceRemoval");function IC(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(IC,"matchWalletDetailsWithConnectedWallet");var AC=Fp(),Cu=hu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>_n(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>_n(s,a))?{...a,loading:!1,error:!1,explorerUrl:IC(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>_n(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>_n(c,l)));if(s.length>0){let c=s.map(l=>{let u=!a.some(p=>p.chain===l.chain&&p.selected&&p.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:u,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(p=>!c.some(f=>f.walletType===p.walletType&&f.chain===p.chain)),...c]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,u)=>((l[u.blockchain]||=[]).push(u),l),{}),s=new Set,c=r.reduce((l,u)=>{let p=`${u.address}-${u.chain}`;return s.has(p)||(s.add(p),a[u.chain]&&(l[u.address]||(l[u.address]=[]),l[u.address].push(...a[u.chain]))),l},{});Object.entries(c).forEach(async([l,u])=>{try{let{balances:p}=await at().getMultipleTokenBalance({assets:u.map(({symbol:f,address:h,blockchain:g})=>({symbol:f,address:h,blockchain:g})),walletAddress:l});if(p){let f=e()._balances,h=e()._aggregatedBalances;p.forEach(g=>{if(parseFloat(g.amount.amount)===0)return;let m={blockChain:g.asset.blockchain,balances:[g],address:l},d={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};rs(d,m,f);let y=is(m,e);h=as(h,y),f={...f,...y}}),t(g=>({_balances:{...g._balances,...f},_aggregatedBalances:h}))}}catch(p){console.error(p)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{Te.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=ss(r,o,n);t({_balances:a,_aggregatedBalances:s})},disconnectNamespaces:(o,n)=>{if(e().connectedWallets.find(a=>a.walletType===o)){e().removeBalancesForWallet(o,{namespaces:n}),e()._changeSelectedWalletIfNeededOnRemove(o,{namespaces:n});let a=e().connectedWallets.filter(s=>s.namespace?!(s.walletType===o&&n.includes(s.namespace)):!0);t({connectedWallets:a})}},disconnectWallet:o=>{let n=e().connectedWallets.find(r=>r.walletType===o);if(Te.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0)return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await at().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,u=e()._aggregatedBalances;c.forEach(f=>{if(f.failed)return;let h={_balances:l,_aggregatedBalances:u,connectedWallets:e().connectedWallets,findToken:e().findToken};rs(h,f,l);let{_balances:g,_aggregatedBalances:m}=ss(h,r,{chains:[f.blockChain]});if(u=m,l=g,!e().connectedWallets.find(y=>y.walletType===r&&y.address===f.address&&y.chain===f.blockChain))return;let d=is(f,e);u=as(u,d),l={...l,...d}}),t(f=>({_balances:{...f._balances,...l},_aggregatedBalances:u})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:p=!0}=n||{};if(p){let f=c.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.address}));f.length>0&&await e().fetchMainTokensBalances(f,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=Ut(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let l=a[0];return n[l]}let c=n[a[0]];return a.forEach(l=>{let u=n[l],p=new ls(u.amount),f=new ls(c.amount);p.isGreaterThan(f)&&(c=u)}),c},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,u]=c.split(Co);return u===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>AC(()=>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],u=$n(c);if(u.blockchain===n.chain){let p=e().findToken(u),f=l.amount?new ls(l.amount).shiftedBy(-l.decimals):de;s.push({chain:n.chain,symbol:u.symbol,ticker:u.symbol,address:u.address,rawAmount:l.amount,decimal:l.decimals,amount:f.toString(),isSupported:!!p,logo:p?.image||null,usdPrice:p?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Tu(t){return NC()(BC((...e)=>({...Cu(...e),...du(...e),...gu(...e),...wp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i(Tu,"createAppStore");var ku=LC(null);function T(){let t=MC(ku);if(PC(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(T,"useAppStore");function vu(t){let e=_C();return e.current||(e.current=Tu(t.config)),WC.createElement(ku.Provider,{value:e.current},t.children)}i(vu,"AppStoreProvider");function Tt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=T(),{state:r,getWalletInfo:a}=DC(),s=T().blockchains(),{handleDisconnect:c}=Uo(),l=Cp(n()),u=Xp(r,a,l,e);u=$C()?u.filter(d=>d.showOnMobile!==!1&&r(d.type).installed):u;let p=Jp(u,r),f=i(d=>!o.find(y=>y.walletType===d&&y.chain===e),"isExperimentalChainNotAdded"),h=OC(()=>{let d=u?.filter(y=>y.state===cs.CONNECTING)||[];for(let y of d)c(y.type)},[tu(u)]);UC(()=>()=>{h()},[]);let g=i(d=>{let y=d.find(S=>S.type===Fn.DEFAULT);return!y||y.state===cs.NOT_INSTALLED?!1:d.filter(S=>S.state!=cs.NOT_INSTALLED&&![Fn.DEFAULT,Fn.WALLET_CONNECT_2,Fn.LEDGER].includes(S.type)&&a(S.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),m=i((d,y,C)=>Xr(C,y)&&f(d)&&!FC.includes(d)||d==Fn.DEFAULT&&!g(u),"shouldExcludeWallet");return{list:p.filter(d=>!m(d.type,e??"",s)),terminateConnectingWallets:h}}i(Tt,"useWalletList");import{Modal as HC}from"@rango-dev/ui";import GC from"react";import{create as qC}from"zustand";var wu="rango-widget";var On=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(wu),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var QC=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Zo=QC;var te=Zo(qC()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),wo=new On({onInit:()=>te.setState({tabManagerInitiated:!0}),onClaim:()=>te.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>te.setState({isActiveTab:!1})});function J(t){let{watermark:e}=te();return GC.createElement(HC,{hasWatermark:e==="FULL",...t},t.children)}i(J,"WatermarkedModal");import{i18n as rn}from"@lingui/core";import{Alert as tT,Button as oT,Divider as si,Image as nT,MessageBox as rT,RadioRoot as iT}from"@rango-dev/ui";import me,{useEffect as aT,useMemo as sT,useState as lT}from"react";import{Checkbox as ZC,Radio as JC,Typography as RC}from"@rango-dev/ui";import eo from"react";function Jo(t,e){return t.find(o=>o.name===e)?.logo}i(Jo,"getBlockchainLogo");import{Button as VC,darkTheme as KC,Image as jC,styled as kt,Typography as XC}from"@rango-dev/ui";var oi=kt("ul",{padding:0,paddingTop:"$10",paddingBottom:"$20",margin:0}),Ro=kt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100 ",[`.${KC} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),en=kt("div",{display:"flex",gap:"$8",alignItems:"center"}),ni=kt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),xu=kt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),tn=kt(jC,{variants:{disabled:{true:{opacity:"0.5"}}}}),on=kt(VC,{minHeight:"$40"}),Eu=kt(XC,{maxWidth:"100px"}),Iu=kt("div",{paddingLeft:"48px"}),Au=kt("div",{display:"flex",gap:"2px",cursor:"pointer",alignItems:"center",width:"fit-content"}),Nu=kt("div",{display:"flex",gap:"6px",alignItems:"center"});import{Image as Wu,Tooltip as Lu,Typography as YC}from"@rango-dev/ui";import Bt from"react";import{styled as Bu}from"@rango-dev/ui";var ps=Bu("div",{display:"flex",alignItems:"center",padding:0,margin:0}),ri=Bu("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var us=3;function ii(t){let{chains:e}=t;return Bt.createElement(ps,{id:"widget-supported-chains-container"},e.slice(0,us).map((o,n)=>Bt.createElement(Lu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Bt.createElement(ri,{firstItem:n===0},Bt.createElement(Wu,{src:o.logo,size:15})))),e.length>us&&Bt.createElement(Lu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Bt.createElement(ps,null,e.map((o,n)=>Bt.createElement(ri,{key:o.name,firstItem:n===0},Bt.createElement(Wu,{src:o.logo,size:15}))))},Bt.createElement(ri,null,Bt.createElement(YC,{variant:"body",size:"xsmall"},"+",e.length-us))))}i(ii,"SupportedChainsList");function Mu(t){let{onClick:e,type:o,namespace:n}=t,r=T().blockchains(),a=n.getSupportedChains(r),s=a.length>1;return eo.createElement(Ro,{onClick:e,clickable:!0,className:"widget-namespace-list-item"},eo.createElement(en,null,eo.createElement(tn,{src:Jo(r,n.id),size:40}),eo.createElement(ni,{showSupportedChains:s},eo.createElement(RC,{variant:"label",size:"large"},n.label),s&&eo.createElement(ii,{chains:a})),o==="radio"?eo.createElement(JC,{value:n.value}):eo.createElement(ZC,{checked:t.value})))}i(Mu,"NamespaceListItem");import{i18n as eT}from"@lingui/core";import{Typography as Pu}from"@rango-dev/ui";import nn from"react";function ai(t){let{namespace:e}=t,o=T().blockchains();return nn.createElement(Ro,{unsupported:!0},nn.createElement(en,null,nn.createElement(tn,{src:Jo(o,e.id),size:40,disabled:!0}),nn.createElement(xu,null,nn.createElement(Pu,{variant:"label",size:"large"},e.label),nn.createElement(Pu,{variant:"body",size:"xsmall"},eT.t("(Currently not supported)")))))}i(ai,"NamespaceUnsupportedItem");function Un(t){let{targetWallet:e}=t.value,o=e.properties?.find(d=>d.name==="namespaces"),n=e.isHub,r=e.isHub?o?.value.selection==="single":e.needsNamespace?.selection==="single",a=n?o?.value:e.needsNamespace,s=e.image,c=T().blockchains(),[l,u]=lT([]),p=sT(()=>a?.data.filter(d=>!d.unsupported),[e?.type]),f=i(d=>{u(r?[d]:y=>y.includes(d)?y.filter(C=>C!==d):y.concat(d))},"onSelect"),h=p?.length===l.length,g=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");h?u([]):p&&u(p.map(d=>d.value))},"onSelectAll"),m=i(d=>r?me.createElement(iT,{value:l?.[0]},d):me.createElement(me.Fragment,null,d),"wrapRadioRoot");return aT(()=>{if(!r&&p)if(t.value.defaultSelectedChains?.length){let d=p.filter(y=>y.getSupportedChains(c).some(C=>t.value.defaultSelectedChains?.includes(C.name)));u(d.map(y=>y.value))}else u(p.map(d=>d.value))},[]),me.createElement(me.Fragment,null,me.createElement(rT,{type:"info",title:rn.t("Connect {wallet}",{wallet:e.title}),description:rn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:me.createElement(nT,{src:s,size:45})}),r?me.createElement(me.Fragment,null,me.createElement(si,{size:20}),me.createElement(tT,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:rn.t("This wallet can only connect to one chain at a time. ")})):me.createElement(me.Fragment,null,me.createElement(si,{size:30}),me.createElement(oT,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:g},h?rn.t("Deselect all"):rn.t("Select all"))),me.createElement(oi,null,m(me.createElement(me.Fragment,null,a?.data.map((d,y,C)=>me.createElement(me.Fragment,{key:d.id},d.unsupported?me.createElement(ai,{namespace:d}):me.createElement(Mu,{value:l.includes(d.value),namespace:d,type:r?"radio":"checkbox",onClick:()=>f(d.value)}),y!==C.length-1&&me.createElement(si,{size:10})))))),me.createElement(si,{size:20}),me.createElement(on,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},rn.t("Connect")))}i(Un,"Namespaces");import{i18n as ds}from"@lingui/core";import{Divider as ms,Image as ST,MessageBox as CT}from"@rango-dev/ui";import st from"react";import{i18n as an}from"@lingui/core";import{Button as cT,ChevronDownIcon as pT,ChevronUpIcon as uT,Divider as dT,Spinner as mT,Typography as zn}from"@rango-dev/ui";import{useWallets as fT}from"@rango-dev/wallets-react";import ke,{useEffect as gT,useLayoutEffect as hT,useRef as yT,useState as _u}from"react";var Du=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,a=T().blockchains(),{connect:s,disconnect:c,state:l}=fT(),[u,p]=_u(null),[f,h]=_u(!1),m=l(o).namespaces?.get(n.value),d=m.accounts?.[0]?.split(":"),y=n.getSupportedChains(a),C=yT(!1);gT(()=>h(!1),[u]),hT(()=>{r&&!C.current&&S(o,n.value)},[]);let S=i(async(x,I)=>{try{C.current=!0,await s(x,[{namespace:I,network:""}])}catch(A){p(A)}finally{C.current=!1}},"handleConnectNamespace"),k=i(async x=>{p(null),x.connected?await c(o,[n.value]):S(o,n.value)},"handleButtonClick"),v=i(()=>m.connected?an.t("Disconnect"):u?an.t("Try again"):an.t("Connect"),"getButtonText");return ke.createElement(Ro,{hasError:!!u},ke.createElement(en,null,ke.createElement(tn,{src:Jo(a,n.id),size:40}),ke.createElement(ni,null,ke.createElement(Nu,{className:"widget-namespace-detached-item-info-div"},ke.createElement(zn,{variant:"label",size:"large"},n.label),m.connected&&ke.createElement(zn,{variant:"body",size:"small",color:"success500"},an.t("Connected")),!m.connected&&!!u&&ke.createElement(zn,{variant:"body",size:"small",color:"error500"},an.t("Connection failed"))),m.connected&&ke.createElement(Eu,{variant:"body",size:"small",color:"neutral700"},Go(d?.[d?.length-1])),!m.connected&&u&&ke.createElement(Au,{className:"widget-namespace-detached-item-error-toggle-btn",onClick:()=>h(x=>!x)},ke.createElement(zn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},an.t("See why")),f?ke.createElement(uT,{size:12,color:"gray"}):ke.createElement(pT,{size:12,color:"gray"})),!m.connected&&!u&&y.length>1&&ke.createElement(ii,{chains:y})),m.connecting?ke.createElement(mT,{color:"info"}):ke.createElement(cT,{id:"widget-name-space-connect-btn",variant:"ghost",type:m.connected?"error":"primary",size:"small",onClick:async()=>k(m)},v())),!m.connected&&!!u&&f&&ke.createElement(ke.Fragment,null,ke.createElement(dT,{size:4}),ke.createElement(Iu,{id:"widget-namespace-item-error-div"},ke.createElement(zn,{variant:"body",size:"small",color:"neutral700"},u.cause?.message||u.message))))},"NamespaceDetachedItem");function Qn(t){let{selectedNamespaces:e,value:o}=t,{targetWallet:n}=o;return st.createElement(st.Fragment,null,st.createElement(CT,{type:"info",title:ds.t("Connect {wallet}",{wallet:n.type}),description:ds.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:st.createElement(ST,{src:n.image,size:45})}),st.createElement(ms,{size:20}),st.createElement(oi,{id:"widget-detached-namespace-list",as:"ul"},n.needsNamespace?.data.map((r,a,s)=>st.createElement(st.Fragment,{key:r.id},r.unsupported?st.createElement(ai,{namespace:r}):st.createElement(Du,{walletType:n.type,namespace:r,initialConnect:e?.includes(r.value)}),a!==s.length-1&&st.createElement(ms,{size:10})))),st.createElement(ms,{size:20}),st.createElement(on,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},ds.t("Done")))}i(Qn,"Detached");import{i18n as sn}from"@lingui/core";import{Divider as Fu,Image as wT,MessageBox as bT,Select as xT,TextField as ET}from"@rango-dev/ui";import ht,{useEffect as IT,useState as Ou}from"react";import{namespaces as TT}from"@rango-dev/wallets-shared";var li={id:"custom",label:"Custom",generateDerivationPath:t=>t};function fs(t){let e=t?TT[t].derivationPaths:null;return e?[...e,li]:[]}i(fs,"getDerivationPaths");import{Button as kT,styled as gs,Typography as vT}from"@rango-dev/ui";var $u=gs("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),hs=gs(vT,{paddingLeft:"$10"}),ys={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},dM=gs(kT,{minHeight:"$40"});var Uu="0";function qn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Ou(null),[c,l]=Ou(Uu),u=a===li.id,p=fs(o),f=i(({value:g})=>{let m=p?.find(d=>d.id===g);m&&(a===li.id&&Number.isNaN(Number(c))&&l(Uu),s(m.id))},"handleDerivationPathItemClick"),h=i(()=>{let g=p.find(m=>m.id===a);if(g)e(g.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return IT(()=>{s(fs(o)[0]?.id||null)},[o]),ht.createElement(ht.Fragment,null,ht.createElement(Fu,{size:20}),ht.createElement(bT,{type:"info",title:sn.t("Select Derivation Path"),description:sn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:ht.createElement(wT,{src:n,size:45})}),ht.createElement($u,null,ht.createElement(hs,{variant:"body",size:"xsmall",color:"$neutral600"},sn.t("Choose Derivation Path Template")),ht.createElement(xT,{id:"widget-derivation-path-template-select",value:a||"",options:p.map(g=>({value:g.id,label:g.label})),variant:"filled",handleItemClick:f,styles:{trigger:ys}}),ht.createElement(Fu,{size:20}),ht.createElement(hs,{variant:"body",size:"xsmall",color:"$neutral600"},u?sn.t("Enter Path"):sn.t("Enter Index")),ht.createElement(ET,{id:"widget-derivation-path-template-input",type:u?"text":"number",variant:"contained",value:c,onChange:g=>l(g.target.value),style:ys})),ht.createElement(on,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!p||!a||!c},sn.t("Confirm")))}i(qn,"DerivationPath");import{i18n as ln}from"@lingui/core";import{Image as BT,MessageBox as Ss,WalletState as WT}from"@rango-dev/ui";import{useWallets as LT}from"@rango-dev/wallets-react";import bo from"react";import{keyframes as AT,styled as ci}from"@rango-dev/ui";var wM=ci("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),zu=ci("div",{position:"relative"}),NT=AT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Qu=ci("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${NT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),qu=ci("div",{"& img":{borderRadius:"50%"}});function Cs(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=LT();return Mn(a(n))===WT.CONNECTED?bo.createElement(Ss,{type:"success",title:ln.t("Wallet Connected"),description:ln.t("Your wallet is connected, you can use it to swap.")}):o?bo.createElement(Ss,{type:"error",title:ln.t("Failed to Connect"),description:o||ln.t("Your wallet is not connected. Please try again.")}):bo.createElement(Ss,{type:"loading",title:ln.t("Connecting to your wallet"),description:ln.t("Click connect in your wallet popup."),icon:bo.createElement(zu,null,bo.createElement(qu,null,bo.createElement(BT,{src:r,size:45})),bo.createElement(Qu,null))})}i(Cs,"ConnectStatus");import{i18n as Ts}from"@lingui/core";import{Button as MT,Divider as Hu,MessageBox as PT}from"@rango-dev/ui";import pi from"react";function ks(t){let{displayName:e,onConfirm:o,id:n}=t;return pi.createElement(PT,{id:n,title:Ts.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Ts.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},pi.createElement(Hu,{size:18}),pi.createElement(Hu,{size:32}),pi.createElement(MT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Ts.t("Confirm")))}i(ks,"ExperimentalChain");function Gu(t,e){return t().status==="init"&&!!e}i(Gu,"isOnStatus");function Hn(t){return t().status==="namespace"}i(Hn,"isOnNamespace");function Gn(t){return t().status==="derivationPath"}i(Gn,"isOnDerivationPath");function Vn(t){return t().status==="detached"}i(Vn,"isOnDetached");var FT=3e3,OT=300;function xo(t){let e=$T(),[o,n]=Vu(!1),[r,a]=Vu(),s=i(k=>{a(k.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=Tt(),{handleConnect:l,handleDerivationPath:u,handleNamespace:p,getState:f,resetState:h}=Uo(),g=i(k=>{p(t.wallet,k).then(S).catch(s)},"handleConfirmNamespaces"),m=i(()=>{y()},"handleDetachedConfirm"),d=i(k=>{if(!k)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");u(k).then(S).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),S=i((k,v)=>{let x=k.status==="connected",I=["disconnected","disconnected-unhandled"].includes(k.status);x?(t.onConnect?.(),v||(e.current=setTimeout(y,FT))):I&&y()},"afterConnected");return DT(()=>{if(t.wallet){C();let k=!1,v=!0;i(()=>{setTimeout(()=>{v=!1,k||n(!0)},OT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(I=>{["namespace","Detached","derivation-path"].includes(I.status)||(k=!0),S(I,v)}).catch(s)}},[t.wallet]),to.createElement(J,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},Gu(f,t.wallet)&&to.createElement(to.Fragment,null,to.createElement(Cs,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),to.createElement(_T,{direction:"vertical",size:32})),Hn(f)&&to.createElement(Un,{onConfirm:g,value:f().namespace}),Gn(f)&&to.createElement(qn,{onConfirm:d,value:f().derivationPath}),Vn(f)&&to.createElement(Qn,{onConfirm:m,value:f().namespace,selectedNamespaces:f().selectedNamespaces}))}i(xo,"StatefulConnectModal");import{Provider as HT}from"@rango-dev/wallets-react";import ui,{createContext as GT,useEffect as Zu,useMemo as VT,useRef as Ju}from"react";import{useEffect as UT}from"react";function Ku(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Ku,"hashProviders");function vs(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=T(),a=n();return UT(()=>{o(),r()},[Ku(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(vs,"useWalletProviders");import{legacyFormatAddressWithNetwork as zT,legacyReadAccountAddress as ju}from"@rango-dev/wallets-core/legacy";import{Events as cn}from"@rango-dev/wallets-react";import{isEvmBlockchain as QT}from"rango-sdk";function Xu(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=T(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,u=s().filter(QT).map(d=>d.name),p=i((d,y)=>{let[C,,S,k,v]=d,x={walletType:C,network:k.network??void 0,accounts:S};c.current?c.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let I=ja(C,S,u,y.supportedChainNames,v.isContractWallet);I.length&&e(I,v.namespace,k.derivationPath)},"onAccountsEvent"),f=i((d,y,C,S,k)=>{if(y===cn.ACCOUNTS){let v=Pn(k.supportedBlockchains);C&&p([d,y,C,S,k],{supportedChainNames:v})}y===cn.PROVIDER_DISCONNECTED&&(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),y===cn.NAMESPACE_DISCONNECTED&&n(d,C)},"handleUpdatesForHub"),h=i((d,y,C,S,k)=>{if(y===cn.ACCOUNTS){let v=Pn(k.supportedBlockchains),x=[],I=[];if(C?.forEach(E=>{let{network:b}=ju(E);u.includes(b)?x.push(E):I.push(E)}),r.filter(E=>E.walletType===d).map(E=>zT(E.address,E.chain)).length>0){if(x.length>0){let E=ja(d,x,u,v,k.isContractWallet);a(d,{chains:E.map(b=>b.chain)})}I.length>0&&a(d,{chains:I.map(E=>{let{network:b}=ju(E);return b})})}C?p([d,y,C,S,k],{supportedChainNames:v}):(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),g=i((d,y,C,S,k)=>{if(y===cn.CONNECTED&&C){let v={walletType:d,network:S.network??void 0,accounts:S.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(y===cn.NETWORK&&C){let v={walletType:d,network:C,accounts:S.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((d,y,C,S,k)=>{k.isHub?f(d,y,C,S,k):h(d,y,C,S,k),g(d,y,C,S,k)},"handler")}}i(Xu,"useUpdates");import{LegacyEvents as qT}from"@rango-dev/wallets-core/legacy";function Yu(t,e){let[o,n,r,a,s]=e;n!==qT.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(Yu,"propagateEvents");var di=GT({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function KT(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=T(),a=T().blockchains(),s=T().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=vs(s.wallets,c),u=Ju(),p=Ju(),{handler:f}=Xu({onConnectWalletHandler:u,onDisconnectWalletHandler:p});Zu(()=>{n().catch(console.log)},[]),Zu(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let h=te.use.isActiveTab(),g=VT(()=>({onConnectWallet:m=>{u.current=m},onDisconnectWallet:m=>{p.current=m}}),[]);return ui.createElement(di.Provider,{value:g},ui.createElement(HT,{allBlockChains:a,providers:l,onUpdateState:(m,d,y,C,S)=>{let k=[m,d,y,C,S];f(...k),t.onUpdateState&&Yu(t.onUpdateState,k)},autoConnect:!!h,configs:{wallets:s.wallets}},t.children))}i(KT,"Main");function mi(t){let{config:e,...o}=t;return ui.createElement(vu,{config:e},ui.createElement(KT,{...o,config:e}))}i(mi,"WidgetWallets");import Oa from"react";import jT,{Fragment as XT}from"react";import{MemoryRouter as YT,useInRouterContext as ZT}from"react-router";function Ru({children:t}){let o=ZT()?XT:YT;return jT.createElement(o,null,t)}i(Ru,"AppRouter");import{I18nManager as y0}from"@rango-dev/ui";import lp from"react";import Oe from"react";import{useRoutes as r0}from"react-router-dom";var F={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as un,useRef as ki}from"react";import et from"bignumber.js";import{create as tk}from"zustand";import{subscribeWithSelector as ok}from"zustand/middleware";import{i18n as vt}from"@lingui/core";import{getRelatedWalletOrNull as ek,RouteEventType as m_}from"@rango-dev/queue-manager-rango-preset";import He from"bignumber.js";import{PendingSwapNetworkStatus as Ci}from"rango-types";import{i18n as qe}from"@lingui/core";var oe=i(()=>({genericServerError:qe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:qe.t("Please reset your liquidity sources."),description:qe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:qe.t("No Routes Found."),description:qe.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:qe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:qe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:qe.t("High Price Impact"),title:qe.t("Price impact is too high!"),description:qe.t("The price impact is significantly higher than the allowed amount."),confirmMessage:qe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:qe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:qe.t("USD Price Unknown"),title:qe.t("USD Price Unknown, Cannot calculate Price Impact."),description:qe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:qe.t("Confirm USD Price Unknown")}}),"errorMessages");function ed(t){return t.type===0?t.diagnosisMessage??oe().noResultError.title:t.type===1?t.diagnosisMessage??oe().genericServerError:""}i(ed,"getQuoteErrorMessage");import{i18n as fi}from"@lingui/core";var Eo=i(()=>({connectWallet:fi.t("Connect Wallet"),swap:fi.t("Swap"),swapAnyway:fi.t("Swap anyway"),ethWarning:fi.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function ws(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(ws,"getFeeLabel");var bs=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],td=100,od=30,nd=15,rd=60;var id=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],ad=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as RT}from"@rango-dev/queue-manager-rango-preset";import RP from"bignumber.js";function ld(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(ld,"getRequiredBalanceOfWallet");function Qt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Qt,"getPriceImpactLevel");function gi(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=RT(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=So(a?a.toBlockchain:n.fromBlockchain,e),l=So(r.toBlockchain,e),u=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),p=o(s),f=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:u,toBlockchain:l,toToken:p,inputAmount:f}}i(gi,"createRetryQuote");function pn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=Kn(o),s=yt(o);if(o&&a&&s){let u=zt(a.toString(),s.toString());if(!!u&&md(a,u)){let f=yi(o?.swaps,n),h=Qt(u);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:u,totalFee:f,warningLevel:h}}}if(e&&hd(e,o))return{type:4,usdValueChange:_(yt(o)?.minus(yt(e)??0).toString()??"0",null,2),percentageChange:_(zt(yt(e)??"1",yt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=Si(o.swaps),l=r>Vo;if(gd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:fd(o,r),minRequiredSlippage:c};return null}i(pn,"generateQuoteWarnings");function cd(t){return![4].includes(t.type)}i(cd,"isQuoteWarningConfirmationRequired");function zt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:xs(t.toString(),e.toString());return n&&n<0?n:null}i(zt,"getPriceImpact");var pd=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),hi=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(p=>p.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),ud=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(c=>c.swapperId));return Array.from(n).every(c=>s.has(c))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),dd=i(t=>{let e=i((o,n)=>{let r=bs.indexOf(o.value),a=bs.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function md(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return id.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new He(r)))}i(md,"hasHighValueLoss");function yd(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new He(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new He(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(yd,"hasLimitError");function Sd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new He(c.fromAmountMinValue):null,u=c.fromAmountMaxValue?new He(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||u?.lte(c.fromAmount):l?.gt(c.fromAmount)||u?.lt(c.fromAmount)})[0],o=e.fromAmountMinValue?new He(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new He(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=vt.t({id:"Required: >= {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=vt.t({id:"Required: > {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=vt.t({id:"Required: <= {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=vt.t({id:"Required: < {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Sd,"getLimitErrorMessage");function Cd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Eo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Eo().swap,action:"confirm-swap",disabled:!0}:s?{title:Eo().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Eo().ethWarning,action:"confirm-warning",disabled:!1}:{title:Eo().swap,action:"confirm-swap",disabled:!1}:{title:Eo().connectWallet,action:"connect-wallet",disabled:!1}}i(Cd,"getSwapButtonState");function Es(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(de))&&e&&e!=="0"&&n!==0)}i(Es,"canComputePriceImpact");function Is(t,e){let o=de;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new He(r.amount).multipliedBy(a||0))}return o}i(Is,"getUsdFeeOfStep");function yi(t,e){return t.reduce((o,n)=>o.plus(Is(n,e)),de)}i(yi,"getTotalFeeInUsd");function As(t){let e=de,o=new He(t.price||0);return e=e.plus(new He(t.amount).multipliedBy(o)),e}i(As,"getUsdFee");function Td(t){return t.reduce((e,o)=>e.plus(As(o)),de)}i(Td,"getTotalFeesInUsd");function kd(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(kd,"getFeesGroup");function vd(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(vd,"checkSlippageErrors");function fd(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(fd,"checkSlippageWarnings");function Si(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(Si,"getMinRequiredSlippage");function gd(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(gd,"hasProperSlippage");function wd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:u,affiliateRef:p,affiliatePercent:f,affiliateWallets:h,destination:g,contractCall:m}=t,d=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),y=[];return r?.forEach(S=>{y.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:p??void 0,affiliatePercent:f??void 0,affiliateWallets:h??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:y,selectedWallets:d??{},slippage:u.toString(),contractCall:m,...g&&{destination:g},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(wd,"createQuoteRequestBody");function bd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(bd,"getWalletsForNewSwap");function Kn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(Kn,"getUsdInputFrom");function yt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(yt,"getUsdOutputFrom");function xs(t,e){return new He(e).div(new He(t)).minus(1).multipliedBy(td).toNumber()}i(xs,"getPercentageChange");function hd(t,e){let o=Kn(t),n=yt(t),r=yt(e);if(!o||!n||!r)return!1;let a=xs(n.toString(),r.toString());return ad.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(hd,"isOutputAmountChangedExcessively");function xd(t,e,o){let n=t.validationStatus,r=ko({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>ld(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=_(new He(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=_(new He(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),p="";return s.reason==="FEE"&&(p=vt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(p=vt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(p=vt.t(" for input and network fee")),vt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:c,reason:p,currentAmount:l,blockchain:ft(s.asset.blockchain,o)}})})}i(xd,"generateBalanceWarnings");function jn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Ci.NetworkChanged}i(jn,"isNetworkStatusInWarningState");function Ed(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),jn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let u=(e?ek(t,e):null)?.walletType,p=u?o?.(u)?.name:null;switch(e?.networkStatus){case Ci.WaitingForConnectingWallet:r=p?vt.t("Connect {wallet}",{wallet:p}):r;break;case Ci.WaitingForQueue:r=r||vt.t("Waiting for other running tasks to be finished");break;case Ci.WaitingForNetworkChange:r=r||vt.t("Waiting for changing wallet network");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(Ed,"getSwapMessages");function Id(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(Id,"getLastConvertedTokenInFailedSwap");function Ad(t){return t.status==="failed"}i(Ad,"shouldRetrySwap");function Nd(t,e,o,n,r,a){if(!n||t)return!0;let s=ko({filter:"all",quote:n}),c=ko({filter:"required",quote:n}),l=s.every(f=>r.some(h=>h.chain===f)),u=c.every(f=>r.some(h=>h.chain===f)),p=o&&a?Qo(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!p||!u)}i(Nd,"isConfirmSwapDisabled");function Bd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Bd,"isTokensIdentical");var Ti=i((t,e)=>t?.usdPrice?new et(e||de).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Zo(tk()(ok(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new et(0),outputUsdValue:new et(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=de,a=o.inputUsdValue;return Ln(o.inputAmount)?(e&&(n=e?.outputAmount?new et(e?.outputAmount):null,a=Kn(e)??de,r=yt(e)??de),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new et(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new et(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new et(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:Ti(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new et(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),sanitizeInputAmount:e=>{let o=Kp(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;Gr(e)||(o=Op(o),o=Up(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new et(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Ti(n.fromToken,o)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:Ti(n??null,s),outputUsdValue:new et(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?Ti(e.toToken,e.outputAmount?.toString()||""):new et(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new et(0),inputUsdValue:new et(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new et(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),Wd=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Te.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&Te.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function Ld(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:u}=O(),p=T().config,f=T().fetchStatus,h=T().blockchains(),{findToken:g}=T(),{setAffiliateRef:m,setAffiliatePercent:d,setAffiliateWallets:y}=T(),C=p?.from?.tokens,S=p?.from?.blockchains,k=p?.to?.tokens,v=p?.to?.blockchains,x=ki(void 0),I=ki(void 0),A=ki(void 0),E=ki(void 0);un(()=>{typeof p.amount<"u"&&t(p.amount.toString())},[p?.amount]),un(()=>{if(f==="success"){r();let b=h.find(P=>P.name===p?.from?.blockchain),w=p?.from?.token,B=w&&g(w);(b||!b&&A.current)&&n(b??null),B?a({token:B,meta:{blockchains:h}}):!B&&x.current&&a({token:null}),A.current=p?.from?.blockchain,x.current=p?.from?.token}},[p?.from?.token?.symbol,p?.from?.token?.address,p?.from?.token?.blockchain,p?.from?.blockchain,f]),un(()=>{Ja(s,C)&&a({token:null}),Ra(l,S)&&n(null)},[C,S]),un(()=>{Ja(c,k)&&a({token:null}),Ra(u,v)&&o(null)},[k,v]),un(()=>{if(f==="success"){r();let b=h.find(P=>P.name===p?.to?.blockchain),w=p?.to?.token,B=w&&g(w);(b||!b&&E.current)&&o(b??null),B?e({token:B,meta:{blockchains:h}}):!B&&I.current&&e({token:null}),E.current=p?.to?.blockchain,I.current=p?.to?.token}},[p?.to?.token?.symbol,p?.to?.token?.address,p?.to?.token?.blockchain,p?.to?.blockchain,f]),un(()=>{m(p?.affiliate?.ref??null),d(p?.affiliate?.percent??null),y(p?.affiliate?.wallets??null)},[p?.affiliate?.ref,p?.affiliate?.percent,p?.affiliate?.wallets])}i(Ld,"useSyncStoresWithConfig");import{useEffect as Ws,useRef as nk}from"react";import{useInRouterContext as rk,useLocation as ik,useSearchParams as ak}from"react-router-dom";function Ns(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Ns,"convertTokenSearchParamToAsset");function Bs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Bs,"tokenToSearchParam");function Ms(){let t=ik(),[e,o]=ak(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:u,setFromToken:p,setToToken:f,setInputAmount:h}=O(),g=T().fetchStatus,m=T().blockchains(),d=rk(),{updateIframe:y,updateCampaignMode:C}=T(),S=T().isInCampaignMode(),k=nk(),{findToken:v}=T(),x=i(()=>{let A={};for(let[L,ae]of e.entries())L.startsWith("utm_")&&(A[L]=ae);let E=e.get("fromAmount"),b=e.get("fromBlockchain"),w=e.get("fromToken"),B=e.get("toBlockchain"),P=e.get("toToken"),$=e.get("autoConnect"),q=e.get("clientUrl"),R=e.get("liquiditySources"),K=e.get("blockchain");return{fromAmount:E,fromBlockchain:b,fromToken:w,toBlockchain:B,toToken:P,autoConnect:$,clientUrl:q,liquiditySources:R,utmQueryParams:A,blockchain:K}},"getUrlSearchParams"),I=i(A=>{for(let E in A)A[E]||delete A[E];o(A,{replace:!0})},"updateUrlSearchParams");Ws(()=>{let{autoConnect:A,clientUrl:E,utmQueryParams:b,blockchain:w}=x();d&&g==="success"&&I({fromBlockchain:n?.name,fromToken:Bs(a),toBlockchain:r?.name,toToken:Bs(s),fromAmount:c,autoConnect:A??void 0,clientUrl:E??void 0,blockchain:w??void 0,liquiditySources:S?k.current:void 0,...b})},[t.pathname,c,n,a,r,s,S,g]),Ws(()=>{if(!d)return;let A=x();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&h(A.fromAmount),g==="success"){let E=m.find(P=>P.name===A.fromBlockchain),b=A.fromToken&&E?v(Ns(A.fromToken,E)):void 0,w=m.find(P=>P.name===A.toBlockchain),B=A.toToken&&w?v(Ns(A.toToken,w)):void 0;E&&(l(E),b&&p({token:b,meta:{blockchains:m}})),w&&(u(w),B&&f({token:B,meta:{blockchains:m}}))}},[g]),Ws(()=>{let{clientUrl:A,liquiditySources:E}=x();y("clientUrl",A||void 0),C("liquiditySources",E?.split(",")??void 0)},[])}i(Ms,"useSyncUrlAndStore");import{i18n as hn}from"@lingui/core";import{Alert as Iv,Button as Av,darkTheme as Nv,Divider as pl,DoneIcon as Bv,styled as Wv,TextField as Lv,Typography as Mv}from"@rango-dev/ui";import Ve,{useState as Pv}from"react";import{useNavigate as _v,useSearchParams as Dv}from"react-router-dom";import{ChevronRightIcon as sk,Divider as $d,Image as lk,Typography as Fd}from"@rango-dev/ui";import wt from"react";import{darkTheme as Md,styled as Ps}from"@rango-dev/ui";var Pd=Ps("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Md} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Md} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),_d=Ps("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),Dd=Ps("div",{display:"flex"});function _s(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return wt.createElement(_d,null,wt.createElement(Fd,{size:"large",variant:"label"},n),wt.createElement($d,{size:10}),wt.createElement(Pd,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},wt.createElement(Dd,null,r&&wt.createElement(wt.Fragment,null,wt.createElement(lk,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),wt.createElement($d,{size:4,direction:"horizontal"})),wt.createElement(Fd,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),wt.createElement(sk,{size:12,color:"black"})))}i(_s,"BlockchainSelectorButton");import{i18n as Us}from"@lingui/core";import{Button as dk,Divider as Qd,MessageBox as mk}from"@rango-dev/ui";import oo,{useEffect as qd,useState as zs}from"react";import{i18n as vi}from"@lingui/core";import{Divider as Io,ExternalLinkIcon as pk,Image as uk,Typography as mn}from"@rango-dev/ui";import ve from"react";var Od="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function Ud(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Ud,"generateExplorerLink");import{Button as ck,darkTheme as dn,styled as Ds}from"@rango-dev/ui";var $s=Ds("a",{textDecoration:"none",color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${dn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${dn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),zd=Ds("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${dn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"}}}),Fs=Ds(ck,{minHeight:"$40"});function Os(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=Ud(n.address,s),l=i(()=>window.open(Od,"_blank"),"onClickLearnMore");return ve.createElement(J,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},ve.createElement(zd,null,ve.createElement(uk,{src:n.image===""?Ur:n.image,size:45,type:"circular"}),ve.createElement(Io,{size:4}),ve.createElement(mn,{variant:"title",size:"medium"},n.symbol),ve.createElement(mn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),ve.createElement(Io,{size:4}),ve.createElement(mn,{variant:"body",size:"medium"},c?ve.createElement($s,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,ve.createElement(pk,{size:12,color:"gray"})):ve.createElement($s,null,n.address)),ve.createElement(Io,{size:4}),n.coinSource&&ve.createElement(mn,{className:"_coin-source",variant:"body",size:"xsmall"},vi.t("via")," ",ve.createElement(mn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),ve.createElement(Io,{size:"32"}),ve.createElement(mn,{size:"medium",variant:"body",className:"_custom-token-description"},vi.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),ve.createElement(Io,{size:40}),ve.createElement(Io,{size:10}),ve.createElement(Fs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},vi.t("Import Anyway")),ve.createElement(Io,{size:10}),ve.createElement(Fs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},vi.t("Learn More")))}i(Os,"CustomTokenModal");function Xn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:u}=t,{setCustomToken:p}=T(),[f,h]=zs(!1),[g,m]=zs(!1),[d,y]=zs(!1),C=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),S=i(()=>{n?.type!=="network-error"&&s?.(),h(!1)},"closeErrorModal"),k=i(()=>{y(!0),S()},"handleErrorModalButtonClick"),v=i(()=>{d&&n?.type==="network-error"&&(y(!1),C()),l()},"handleExit"),x=i(()=>{e&&(p(e),c())},"handleSubmit");return qd(()=>{n&&h(!0)},[n]),qd(()=>{o&&e&&m(!0)},[o,e]),oo.createElement(oo.Fragment,null,oo.createElement(J,{open:f,dismissible:!0,id:"widget-add-custom-token-modal",onClose:S,onExit:v,container:N()},oo.createElement(mk,{title:n?.title??"",type:"error",description:n?.message||Us.t("Failed Network, Please retry.")},oo.createElement(Qd,{size:40}),oo.createElement(Qd,{size:10}),oo.createElement(dk,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:k},n?.type==="network-error"?Us.t("Retry"):Us.t("Add another custom token")))),o&&e&&oo.createElement(Os,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>m(!1),open:g,onExit:u}))}i(Xn,"ImportCustomToken");import{useManager as kv}from"@rango-dev/queue-manager-react";import{BottomLogo as vv,Divider as km,Header as wv}from"@rango-dev/ui";import Ne,{useEffect as Wi,useLayoutEffect as bv,useRef as vm,useState as wm}from"react";import{useRef as fk}from"react";function Yn(){return window.self!==window.top}i(Yn,"isAppLoadedIntoIframe");function Qs(){let t=fk(null),{iframe:e}=T(),o=Yn()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Qs,"useIframe");import{useNavigate as gk}from"react-router-dom";function Ge(){let t=gk();return()=>t(-1)}i(Ge,"useNavigateBack");import{useLayoutEffect as hk,useState as Zn}from"react";var Hd=480,Gd=768,Vd=1024,Kd=1200,yk=i(()=>{let[t,e]=Zn(!1),[o,n]=Zn(!1),[r,a]=Zn(!1),[s,c]=Zn(!1),[l,u]=Zn(!1),p=i(()=>{e(window.innerWidth<=Hd),n(window.innerWidth>Hd&&window.innerWidth<=Gd),a(window.innerWidth>Gd&&window.innerWidth<=Vd),c(window.innerWidth>Vd&&window.innerWidth<=Kd),u(window.innerWidth>Kd)},"handleResize");return hk(()=>(p(),window.addEventListener("resize",p),()=>window.removeEventListener("resize",p)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),fn=yk;import{createTheme as Xs,darkTheme as Bk,lightTheme as Wk}from"@rango-dev/ui";import{useEffect as Lk,useState as Mk}from"react";import{theme as Ak,darkColors as Nk}from"@rango-dev/ui";import Ks from"react";var wi=16,bi=255,jd=.11;function Sk(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Sk,"expandShortHexColor");function Ck(t,e){return t.padStart(e,"0")}i(Ck,"pad");function qs(t){let e=Math.min(Math.max(Math.round(t),0),bi);return Ck(e.toString(wi),2)}i(qs,"intToHex");function Tk(t){return`#${qs(t.red)}${qs(t.green)}${qs(t.blue)}`}i(Tk,"rgbToHex");function kk(t){let e=parseInt(t.slice(1,3),wi),o=parseInt(t.slice(3,5),wi),n=parseInt(t.slice(5,7),wi);return{red:e,green:o,blue:n}}i(kk,"hexToRGB");function vk(t,e){let o=1-jd*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(vk,"generateShade");function wk(t,e){let o=jd*e;return{red:t.red+(bi-t.red)*o,green:t.green+(bi-t.green)*o,blue:t.blue+(bi-t.blue)*o}}i(wk,"generateTint");function bk(t){return Xd(t,vk)}i(bk,"calculateShades");function xk(t){return Xd(t,wk)}i(xk,"calculateTints");function Xd(t,e){let o=kk(t),n=[];for(let r=1;r<9;r++)n.push(Tk(e(o,r)));return n}i(Xd,"calculateColors");function Hs(t,e,o){let a=xk(t).reverse().concat(t),s=bk(t),c=a.concat(s),l={},u=c.length;for(let p=0;p<u;p++){let f=100+(o?u-1-p:p)*50;l[`${e}${f}`]=c[p]}return l}i(Hs,"createTintsAndShades");function Gs(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!Gp(r)){let l=Sk(a);Object.assign(n,Hs(l,r,s))}}return{...n,...e}}i(Gs,"expandToGenerateThemeColors");var Yd=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Ek=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Yd(o%52)+e;return Yd(o%52)+e},"toAlphabeticName"),Ik=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Vs=i(t=>Ek(Ik(5381,JSON.stringify(t))>>>0),"toHash");function js(t){let e=Ak.colors,o={...e,...Nk},n,r;if(t?.light){let s={colors:Gs(e,t.light)};n={id:`${Za}-light-${Vs(s)}`,tokens:s}}if(t?.dark){let s={colors:Gs(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Za}-dark-${Vs(s)}`,tokens:s}}return{light:n,dark:r}}i(js,"customizedThemeTokens");function Zd(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ks.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ks.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(Ks.cloneElement(e,{key:c}))}}),o}i(Zd,"joinList");function Jd(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Jd,"doesWindowPreferDarkColorScheme");function no(t){let{colors:e,fontFamily:o=Np,borderRadius:n=iu,secondaryBorderRadius:r=au}=t,[a,s]=Mk(Jd()?"dark":"light"),{theme:c}=T(),{dark:l,light:u}=js(e),p=Xs({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[p.className,Wk.className],h=[p.className,Bk.className];if(u){let m=Xs(u.id,u.tokens);f.push(m.className)}if(l){let m=Xs(l.id,l.tokens);h.push(m.className)}return Lk(()=>{let m=i(d=>{d.matches?s("dark"):s("light")},"switchThemeListener");return Jd()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",m),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",m)}},[]),{activeTheme:i(()=>{let m=f.join(" "),d=h.join(" ");return c==="auto"?a==="dark"?d:m:c==="dark"?d:m},"getActiveTheme"),mode:c==="auto"?a:c}}i(no,"useTheme");var St=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Rd}from"@lingui/core";import{Alert as Pk,Button as _k}from"@rango-dev/ui";import em from"react";function Ys(t){return em.createElement(Pk,{action:em.createElement(_k,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Rd.t("Activate this tab")),type:"warning",variant:"alarm",title:Rd.t("Another tab is open and handles transactions.")})}i(Ys,"ActivateTabAlert");import{i18n as Zs}from"@lingui/core";import{Button as Dk,Divider as $k,MessageBox as Fk}from"@rango-dev/ui";import xi from"react";function Js(t){let{open:e,onClose:o,onConfirm:n}=t;return xi.createElement(J,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},xi.createElement(Fk,{title:Zs.t("Activate current tab"),type:"warning",description:Zs.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},xi.createElement($k,{size:20}),xi.createElement(Dk,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Zs.t("Confirm"))))}i(Js,"ActivateTabModal");import{ChevronLeftIcon as zk}from"@rango-dev/ui";import lm from"react";import{css as Ok,darkTheme as tm,IconButton as Uk,styled as Ao}from"@rango-dev/ui";var Lt=Ao(Uk,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${tm} &`]:{backgroundColor:"$neutral"}}}),om=Ao("div",{position:"absolute",background:"$secondary500",[`.${tm} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),ro=Ao("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),nm=Ao("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),rm=Ao("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),im=Ao("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),am=Ok({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),sm=Ao("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function Rs(t){return lm.createElement(Lt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},lm.createElement(zk,{color:"black",size:16}))}i(Rs,"BackButton");import{i18n as Qk}from"@lingui/core";import{Button as qk,Typography as Hk}from"@rango-dev/ui";import el from"react";function tl(t){return el.createElement(ro,null,el.createElement(qk,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},el.createElement(Hk,{variant:"label",size:"medium",color:"error500"},Qk.t("Cancel"))))}i(tl,"CancelButton");import{i18n as Gk}from"@lingui/core";import{Image as Vk,Tooltip as Kk,WalletIcon as jk}from"@rango-dev/ui";import No from"react";function ol(t){let{list:e}=Tt(),o=e.filter(r=>r.state==="connected"),n=o.length?No.createElement("div",{className:am()},o.map(r=>No.createElement(sm,{key:r.title},No.createElement(Vk,{src:r.image,size:14})))):Gk.t("Connect Wallet");return No.createElement(Kk,{container:t.container,side:"bottom",content:n},No.createElement(Lt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&No.createElement(om,null),No.createElement(jk,{size:18,color:"black"})))}i(ol,"WalletButton");import{i18n as Ii}from"@lingui/core";import{NotificationsIcon as pv,Popover as uv,SettingsIcon as dv,Tooltip as Ai,TransactionIcon as mv}from"@rango-dev/ui";import Pe from"react";import{Notifications as Jk}from"@rango-dev/ui";import Rk from"react";import{useNavigate as ev}from"react-router-dom";import{create as Xk}from"zustand";import{persist as Yk,subscribeWithSelector as Zk}from"zustand/middleware";var Ae=Zo(Xk()(Yk(Zk((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function nl(){let t=ev(),{getNotifications:e,clearNotifications:o}=Ae(),n=e(),r=T().blockchains(),{findToken:a}=T();return Rk.createElement(Jk,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Tp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${F.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(nl,"NotificationContent");import{useManager as tv}from"@rango-dev/queue-manager-react";import{InProgressIcon as ov}from"@rango-dev/ui";import cm from"react";var nv=i(()=>{let{manager:t}=tv();return St(t).map(({swap:o})=>o).find(o=>o.status==="running")?cm.createElement(im,{id:"widget-header-history-badge-container"},cm.createElement(ov,{color:"info",size:6})):null},"InProgressTransactionBadge"),pm=nv;import{EventSeverity as rv}from"@rango-dev/queue-manager-rango-preset";import{Typography as iv}from"@rango-dev/ui";import um from"react";function dm(){let{getNotifications:t}=Ae(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===rv.WARNING);return o?um.createElement(nm,{isSever:n},um.createElement(iv,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(dm,"NotificationsBadge");import{RefreshProgressButton as av}from"@rango-dev/ui";import rl,{useEffect as sv,useState as mm}from"react";var lv=1e3,fm=60,cv=100;function Ei({onClick:t}){let[e,o]=mm(0),[n,r]=mm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");sv(()=>{let l;return t?l=window.setInterval(()=>{o(u=>u+1),e===fm&&c()},lv):s(l),document.addEventListener("visibilitychange",()=>a(l)),()=>{document.removeEventListener("visibilitychange",()=>a(l)),l&&clearInterval(l)}},[e,t]);let s=i(l=>{l&&clearInterval(l),o(0)},"clearTimeout"),c=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return rl.createElement(Lt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},rl.createElement(rm,{onTransitionEnd:()=>r(!1),isRefetched:n},rl.createElement(av,{size:22,color:t?"black":"gray",progress:e/fm*cv})))}i(Ei,"RefreshButton");function Bo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=T(),c=Re("notification",s)||r.includes("notifications");return Pe.createElement(Pe.Fragment,null,!r.includes("refresh")&&Pe.createElement(Ai,{container:a||N(),side:"top",content:Ii.t("Refresh")},Pe.createElement(Ei,{onClick:e})),!c&&Pe.createElement(uv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:Pe.createElement(nl,null)},Pe.createElement("div",null,Pe.createElement(Ai,{container:N(),side:"top",content:Ii.t("Notifications")},Pe.createElement(Lt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Pe.createElement(pv,{size:18,color:"black"}),Pe.createElement(dm,null))))),!r.includes("settings")&&Pe.createElement(Ai,{container:N(),side:"top",content:Ii.t("Settings")},Pe.createElement(Lt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Pe.createElement(dv,{size:18,color:"black"}))),!r.includes("history")&&Pe.createElement(Ai,{container:N(),side:"top",content:Ii.t("History")},Pe.createElement(Lt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Pe.createElement(mv,{size:18,color:"black"}),Pe.createElement(pm,null))))}i(Bo,"HeaderButtons");import{i18n as il}from"@lingui/core";import{Divider as hm,MessageBox as hv,RefreshIcon as yv}from"@rango-dev/ui";import gn from"react";import{Button as fv,styled as gv}from"@rango-dev/ui";var gm=gv(fv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function al(t){let{open:e,onClose:o}=t;return gn.createElement(J,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},gn.createElement(hv,{title:il.t("Something went wrong"),type:"error",description:il.t("Something went wrong. Please refresh the app.")},gn.createElement(hm,{size:30}),gn.createElement(gm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},gn.createElement(yv,{size:20,color:"primary"}),gn.createElement(hm,{size:4,direction:"horizontal"}),il.t("Refresh"))))}i(al,"RefreshModal");function sl(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(sl,"onScrollContentAttachStatusToContainer");import{css as Cv,styled as Ni}from"@rango-dev/ui";var Bi=Cv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),ym=Ni("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:700},fixed:{minHeight:425,maxHeight:700,height:700}},showBanner:{true:{overflow:"visible"}}}}),Sm=Ni("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Cm=Ni("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}}),Tm=Ni("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Qs(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:u}}=T(),[p,f]=wm(!1),{config:{features:h,theme:g}}=T(),{watermark:m,setShowCompactTokenSelector:d}=te(),y=m==="FULL",{activeTheme:C}=no(g||{}),[S,k]=wm(!1),v=Re("connectWalletButton",h),{isActiveTab:x,tabManagerInitiated:I,showActivateTabModal:A,setShowActivateTabModal:E,activateCurrentTab:b}=te(),w=Ge(),{manager:B}=kv(),{isTablet:P,isMobile:$}=fn(),R=St(B).map(({swap:ee})=>ee).some(ee=>ee.status==="running"),K=i(()=>b(wo.forceClaim,R),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),ae=typeof r.hasBackButton>"u"||r.hasBackButton,re=vm(null),Q=vm(null);return Wi(()=>{let ee=(u?.swapBoxBanner?.routes?.length??0)===0,le=!!u?.swapBoxBanner?.routes?.some(ue=>location.pathname.endsWith(ue));k(!!u?.swapBoxBanner&&(ee||le))},[u?.swapBoxBanner?.routes?.toString(),location.pathname]),Wi(()=>(Yn()&&Q.current&&e(Q.current),()=>{o()}),[]),Wi(()=>(re.current?.addEventListener("scroll",sl),()=>{re.current?.removeEventListener("scroll",sl)}),[]),Wi(()=>{f(c==="failed")},[c]),bv(()=>{let ee=s==="auto"||!Q.current||Yn(),le=$||P,ue=i(()=>{ee||(le?Q.current.style.height=`${window.innerHeight-Q.current.offsetTop}px`:Q.current.style.height=`${700}px`,d(parseFloat(Q.current.style.height)<640))},"handler");return ue(),window.addEventListener("resize",ue),()=>window.removeEventListener("resize",ue)},[s,$,P]),Ne.createElement(ym,{height:s,id:Qe.SWAP_BOX_ID,className:`${C()} ${Bi()}`,ref:Q,showBanner:S},Ne.createElement(wv,{prefix:ae?Ne.createElement(Rs,{onClick:()=>{w(),r.onBack?.()}}):null,title:r.title,suffix:Ne.createElement(Ne.Fragment,null,r.suffix,r.onWallet&&!v&&Ne.createElement(ol,{container:N(),onClick:L,isConnected:!!l?.length}),r.onCancel&&Ne.createElement(tl,{onClick:r.onCancel}))}),Ne.createElement(Sm,{ref:re},n),Ne.createElement(Js,{open:A,onClose:()=>E(!1),onConfirm:K}),Ne.createElement(Cm,null,Ne.createElement("div",{className:"footer__content"},I&&!x&&Ne.createElement("div",{className:"footer__alert"},Ne.createElement(Ys,{onActivateTab:K}),Ne.createElement(km,{size:10})),a),Ne.createElement(km,{size:12}),Ne.createElement("div",{className:`footer__logo ${y?"logo__show":"logo__hidden"}`},Ne.createElement(vv,null))),S&&Ne.createElement(Tm,null,u?.swapBoxBanner?.element),Ne.createElement(al,{open:p,onClose:()=>f(!1)}))}i(ie,"Layout");import{styled as xv}from"@rango-dev/ui";var bm="$20 $20 $10 $20",ll=xv("div",{padding:bm,overflowY:"auto",flexGrow:1});import{styled as Ev}from"@rango-dev/ui";var ce=Ev("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as io}from"@lingui/core";import{useState as cl}from"react";function xm(){let[t,e]=cl(!1),[o,n]=cl(null),[r,a]=cl(null),{findToken:s}=T(),c=T().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function u(f,h){switch(f){case"duplicated":return{type:f,title:io.t("Duplicate Token"),message:io.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:f,title:io.t("Token Already Exists"),message:io.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:f,title:io.t("Token Not Found"),message:io.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:h}})};case"network-error":return{type:f,title:io.t("Network error"),message:io.t("An error occurred while retrieving token data.")}}}return i(u,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:f,tokenAddress:h})=>{e(!0);try{if(c.some(C=>C.address?.toLowerCase()===h.toLowerCase())){let C=u("duplicated");n(C);return}let m=await at().getCustomToken({blockchain:f,address:h});if(!m||!m.token||m.error){let C=u("not-found",f);n(C);return}let d=m.token;if(s({blockchain:d.blockchain,address:d.address,symbol:d.symbol})){let C=u("token-exist");n(C);return}return a({...d,warning:!0})}catch(g){if(g.code==="ERR_BAD_REQUEST"){let m=u("not-found",f);n(m);return}n(u("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(xm,"useFetchCustomToken");var $v=Wv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${Nv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Em(){let t=_v(),[e]=Dv(),o=Ge(),n=T().blockchains(),r=e.get("blockchain")||"",a=So(r,n),[s,c]=Pv(""),{fetchCustomToken:l,token:u,loading:p,error:f,resetState:h}=xm(),g=!!a&&Qo(a,s),m=!a||!s||!g,d=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ve.createElement(ie,{header:{title:hn.t("Add Custom Token")}},Ve.createElement(ce,null,Ve.createElement($v,null,Ve.createElement("div",null,Ve.createElement(_s,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:hn.t("Select chain"),placeholder:hn.t("Select chain")}),Ve.createElement(pl,{size:"24"}),Ve.createElement(Mv,{size:"large",variant:"label"},hn.t("Enter Address")),Ve.createElement(pl,{size:10}),Ve.createElement(Lv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:hn.t("Enter token address"),size:"large",value:s,suffix:!!s&&g&&Ve.createElement(Bv,{color:"success",size:12}),onChange:y=>c(y.target.value)}),!g&&!!s&&Ve.createElement(Ve.Fragment,null,Ve.createElement(pl,{size:4}),Ve.createElement(Iv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ve.createElement(Av,{id:"widget-add-custom-token-import-btn",disabled:m,type:"primary",variant:"contained",loading:p,size:"large",onClick:d},hn.t("Import"))),Ve.createElement(Xn,{token:u,blockchain:a??void 0,address:s,error:f??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{f?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:h,onExitImportModal:h})))}i(Em,"AddCustomTokenPage");import{i18n as zl}from"@lingui/core";import{useManager as kb}from"@rango-dev/queue-manager-react";import{Alert as vb,Button as wb,css as ql,Divider as Ql,IconButton as hg,styled as bb,Typography as xb,WalletIcon as Eb}from"@rango-dev/ui";import De,{useEffect as na,useLayoutEffect as Ib,useRef as Ab,useState as ur}from"react";import{useNavigate as Nb}from"react-router-dom";import{i18n as Wo}from"@lingui/core";import{Alert as cw,BalanceErrors as pw,Button as Jm,ChevronLeftIcon as uw,Divider as Sl,MessageBox as dw,Typography as Cl}from"@rango-dev/ui";import ne,{useCallback as mw,useEffect as Rm,useMemo as fw,useState as Cn}from"react";import{useNavigate as gw}from"react-router-dom";import{i18n as fl}from"@lingui/core";import{Alert as Qv,ChevronDownIcon as qv,CloseIcon as Hv,Divider as Mm,IconButton as Pm,PasteIcon as Gv,Typography as Vv,WalletIcon as Kv}from"@rango-dev/ui";import _e,{useEffect as jv,useRef as Xv}from"react";import _i,{useRef as Uv}from"react";import*as yn from"@radix-ui/react-collapsible";import{keyframes as Im,styled as Li}from"@rango-dev/ui";var ul=300,Fv=Im({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Ov=Im({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Am=Li(yn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),dl=Li(yn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Mi=Li(yn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Fv} ${ul}ms ease-out`},false:{animation:`${Ov} ${ul}ms ease-out`}}}}),Pi=Li("div",{transition:`all ${ul}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Di(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Uv(null);return _i.createElement(Am,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&_i.createElement(dl,{className:"collapsible_trigger",onClick:a},s),_i.createElement(Mi,{className:"collapsible_content",open:e},r),c==="bottom"&&_i.createElement(dl,{className:"collapsible_trigger",onClick:a},s))}i(Di,"CustomCollapsible");import{darkTheme as Nm,styled as ml,TextField as zv}from"@rango-dev/ui";var Bm=ml("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Wm=ml(zv,{backgroundColor:"$neutral100",padding:"$15"}),Lm=ml("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Nm} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Nm} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function _m(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=T(),c=T().blockchains(),l=$r(e.name,c),u=Xv(null),p=s?.defaultCustomDestinations?.[e.name],f=navigator?.userAgent.includes("Firefox"),g=n&&!!r&&e&&!Qo(e,r),m=i(()=>{a("")},"handleClear"),d=i(async C=>{if(C.preventDefault(),navigator.clipboard!==void 0){let S=await navigator.clipboard.readText();a(S),u?.current?.focus()}},"handlePaste"),y=i(()=>r?_e.createElement(Pm,{id:"widget-custom-destination-close-icon-btn",onClick:m,variant:"ghost"},_e.createElement(Hv,{size:12,color:"gray"})):f?null:_e.createElement(Pm,{id:"widget-custom-destination-paste-icon-btn",onClick:d,variant:"ghost"},_e.createElement(Gv,{size:16})),"renderSuffix");return jv(()=>{!!p&&r===null&&(a(p),o(!0))},[p]),_e.createElement(Bm,null,_e.createElement(Di,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:_e.createElement(Lm,{id:"widget-custom-destination-collapsible-btn"},_e.createElement("div",{className:"button__content"},_e.createElement(Kv,{size:18,color:"info"}),_e.createElement(Mm,{size:4,direction:"horizontal"}),_e.createElement(Vv,{variant:"label",size:"medium",color:n?"$neutral600":void 0},fl.t("Send to a different address"))),_e.createElement(Pi,{orientation:n?"up":"down"},_e.createElement(qv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},_e.createElement(Wm,{id:"widget-custom-destination-blockchain-address-input",ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:fl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:y(),onChange:C=>{let S=C.target.value;a(S)}})),g&&_e.createElement(_e.Fragment,null,_e.createElement(Mm,{size:4}),_e.createElement(Qv,{variant:"alarm",type:"error",title:fl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(_m,"CustomDestination");import{css as Yv,IconButton as Zv,SelectableWalletButton as Jv,styled as ao}from"@rango-dev/ui";var Dm=ao("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),$m=ao("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Fm=ao(Jv,{justifyContent:"center"}),Om=ao("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Um=ao(Zv,{position:"absolute",left:"$20"}),zm=ao("div",{paddingTop:"$20"}),Qm=Yv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),qm=ao("div",{display:"flex"}),Hm=ao("div",{overflow:"visible",width:"100%"});import{i18n as hl}from"@lingui/core";import{warn as nw}from"@rango-dev/logging-core";import{Divider as rw,makeInfo as iw,SelectableWallet as aw,Typography as Ym,WalletState as $i}from"@rango-dev/ui";import tt,{useEffect as Zm,useState as er}from"react";import{Image as tw,MessageBox as ow}from"@rango-dev/ui";import Rn from"react";import{keyframes as Rv,styled as gl}from"@rango-dev/ui";var Gm=gl("div",{position:"relative"}),ew=Rv({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Vm=gl("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ew} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Km=gl("div",{"& img":{borderRadius:"50%"}});import{i18n as Sn}from"@lingui/core";function jm(t,e){switch(t){case"in-progress":return{type:"loading",title:Sn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Sn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Sn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Sn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Sn.t("Request Rejected"),description:Sn.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(jm,"generateMessageByStatus");function Xm(t){let{status:e,displayName:o,image:n}=t,r=jm(e,o),a=e=="in-progress";return Rn.createElement(ow,{type:r.type,title:r.title,description:r.description,icon:a?Rn.createElement(Gm,null,Rn.createElement(Km,null,Rn.createElement(tw,{src:n,size:45})),Rn.createElement(Vm,null)):void 0})}i(Xm,"ExperimentalChainStatus");var sw=7,lw=3e3;function yl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=te.use.isActiveTab(),{blockchains:l,connectedWallets:u}=T(),[p,f]=er(),[h,g]=er(null),[m,d]=er(!1),[y,C]=er(null),{suggestAndConnect:S}=Fi(),{list:k}=Tt({chain:e}),[v,x]=er(k),I=k.length,A=a&&I-a>0,E=i(async w=>{d(!1),C("in-progress");try{await S(w.walletType,w.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");Zm(()=>{x(w=>{let B=k.findIndex(P=>n(P.type,e));return A&&B>1?[k[B]].concat(k.filter((P,$)=>$!==B)):w.map(P=>k.find($=>$.type===P.type)??P)})},[JSON.stringify(k)]);let b=document.getElementById(Qe.SWAP_BOX_ID);return Zm(()=>{let w=null;return(y==="completed"||y==="rejected")&&(w=setTimeout(()=>C(null),lw)),()=>{w&&clearTimeout(w)}},[y]),tt.createElement(tt.Fragment,null,v.slice(0,a).map(w=>{let B=Rp({connectedWallets:u,walletType:w.type,chain:e}),P=w.state===$i.CONNECTED,$=B?Go(B,sw):"",q=P&&!!w.needsNamespace&&!$,R=Xr(l(),e),K=!u.find(ue=>ue.walletType===w.type&&ue.chain===e),L=R&&K&&w.state===$i.CONNECTED,ae=i(async()=>{w.state===$i.DISCONNECTED||q?f(w):L?(g({walletType:w.type,chain:e,address:B??""}),d(!0)):r({walletType:w.type,chain:e,address:B??""})},"onSelectableWalletClick"),re=iw(w.state),Q=i(()=>L?hl.t({id:"Add {chain} chain",values:{chain:e}}):q?hl.t("Chain not connected"):$||re.description,"getWalletDescription"),ee=i(()=>w.state===$i.CONNECTED?q?"neutral600":"neutral700":re.color,"getWalletDescriptionColor"),le=h?.chain?$r(h.chain,l()):void 0;return tt.createElement(tt.Fragment,{key:`${w.title}_${le}`},!!h&&tt.createElement(J,{id:"widget-wallets-list-watermarked-modal",open:!!h&&m,container:b,onClose:()=>{g(null)}},tt.createElement(ks,{id:"widget-wallets-list-experimental-chain-container",displayName:le,onConfirm:()=>{E(h)}})),y&&tt.createElement(J,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!y,onClose:C.bind(null,null),container:b},tt.createElement(Xm,{status:y,displayName:le,image:w.image}),tt.createElement(rw,{direction:"vertical",size:32})),tt.createElement(aw,{key:w.type,id:"widget-wallets-list-selectable-wallet-btn",description:Q(),descriptionColor:ee(),onClick:ae,selected:n(w.type,e),disabled:!c,...w}))}),tt.createElement(xo,{id:"widget-wallets-list-stateful-connect-modal",wallet:p,options:{defaultSelectedChains:o||[e]},onClose:()=>{f(void 0)},onConnect:()=>{t.onConnect&&(p?.type?t.onConnect(p.type):nw(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),A&&tt.createElement(Fm,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},tt.createElement(Ym,{variant:"label",size:"medium"},hl.t("Show more wallets"),tt.createElement(Ym,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(a??0)))))}i(yl,"WalletList");var hw=2;function ef(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=gw(),c=T().blockchains(),{selectedQuote:l,setSelectedWallets:u,quoteWalletsConfirmed:p,setQuoteWalletConfirmed:f,customDestination:h,setCustomDestination:g}=O(),{config:m,connectedWallets:d,setWalletsAsSelected:y}=T(),[C,S]=Cn(""),[k,v]=Cn([]),[x,I]=Cn(""),[A,E]=Cn(!!h),b=fw(()=>ko({filter:"all",quote:l}),[l]),w=ko({filter:"required",quote:l}),B=c.find(W=>W.name===l?.swaps[l?.swaps.length-1].to.blockchain),P=i(W=>w.includes(W),"isWalletRequiredFor"),$=mw(()=>d.filter(W=>W.selected&&b.includes(W.chain)),[d,b]),[q,R]=Cn($()),[K,L]=Cn([]),ae=i((W,G)=>L(j=>j.concat({blockchain:W,walletType:G})),"addNextSelectedWallets"),re=k.length>0,Q=i((W,G)=>!!q.find(j=>j.walletType===W&&j.chain===G&&j.selected&&(P(G)||!P(G)&&!h)),"isSelected"),ee=i((W,G,j)=>{let X=!1;return W.map(fe=>{if(fe.chain===G){let Ue=fe.selected;return!X&&j?(X=!0,Ue=!0):j||(Ue=!1),{...fe,selected:Ue}}return fe})},"updateSelectableWallets"),le=i(W=>{E(W),W?P(B?.name??"")||R(G=>ee(G,B?.name||"",!1)):(g(""),R(G=>ee(G,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),ue=i(W=>{if(C&&S(""),Q(W.walletType,W.chain))return;let j=d.find(X=>X.walletType===W.walletType&&X.chain===W.chain);j&&(n(),W.chain===B?.name&&A&&!P(B.name)&&(E(!1),g(null)),R(X=>X.filter(fe=>fe.chain!==W.chain).concat({...j,selected:!0})))},"onChange"),se=i(()=>{let W=q.filter(G=>G.selected);y(W),u(W),f(!0),o()},"onConfirmBalance"),Ze=i(async()=>{v([]),I("");let W=await r?.({selectedWallets:q.filter(j=>j.selected),customDestination:h}),G=W.warnings;G?.balance?.messages&&v(G.balance.messages),W.error&&I(ed(W.error)),!W.error&&!G?.balance?.messages.length?se():v(G?.balance?.messages??[])},"onConfirmWallets");Rm(()=>{R(W=>{let G=[];return W.forEach(j=>{!d.some(fe=>fe.chain===j.chain&&fe.walletType===j.walletType&&fe.address===j.address)||G.push(j)}),G=G.concat(d.filter(j=>!!!G.find(fe=>fe.chain===j.chain)&&j.selected&&b.includes(j.chain))),G})},[d,b]),Rm(()=>{let W=[];K.length>0&&(K.forEach(G=>{let j=d.find(X=>X.chain===G.blockchain&&X.walletType===G.walletType);j?ue(j):W.push(G)}),L(W))},[d,K]);let H=document.getElementById(Qe.SWAP_BOX_ID);return ne.createElement(J,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{p||s("../",{replace:!0}),o()},dismissible:!C,container:H,...!C&&{styles:{container:{height:"100%"}},footer:ne.createElement(qm,null,ne.createElement(Jm,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Nd(a,A,h,l,q,B),onClick:Ze,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Wo.t("Confirm")))},...C&&{styles:{container:{height:"100%",padding:"$0"}},header:ne.createElement(Om,null,ne.createElement(Um,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:S.bind(null,"")},ne.createElement(uw,{size:16})),ne.createElement(Cl,{variant:"headline",size:"small"},Wo.t({id:"Your {blockchainName} wallets",values:{blockchainName:ft(C,c)}})))},anchor:"center"},ne.createElement(J,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:re,onClose:v.bind(null,[]),container:H},ne.createElement(dw,{title:Wo.t("Insufficient account balance"),type:"error",description:ne.createElement(pw,{messages:k??[]})},ne.createElement(Jm,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:se},Wo.t("Proceed anyway")))),C&&ne.createElement(zm,null,ne.createElement("div",{className:Qm()},ne.createElement(yl,{chain:C,quoteChains:b,isSelected:Q,selectWallet:ue,onShowMore:()=>S(C),onConnect:W=>{ae(C,W)}}))),!C&&ne.createElement(ne.Fragment,null,x&&ne.createElement(ne.Fragment,null,ne.createElement(cw,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Wo.t(x)}),ne.createElement(Sl,{size:12})),ne.createElement(Hm,null,b.map((W,G)=>{let j=c.find(Je=>Je.name===W),X=`wallet-${G}`,fe=G===b.length-1,Ue=fe&&B&&m?.customDestination!==!1;return ne.createElement("div",{key:X},ne.createElement(Dm,null,ne.createElement(Cl,{variant:"title",size:"xmedium"},Wo.t({id:"Your {blockchainName} wallets",values:{blockchainName:j?.shortName}})),ne.createElement(Cl,{variant:"label",color:"$neutral700",size:"medium"},Wo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:j?.shortName}}))),ne.createElement(Sl,{size:24}),ne.createElement($m,null,ne.createElement(yl,{chain:W,quoteChains:b,isSelected:Q,selectWallet:ue,limit:hw,onShowMore:()=>S(j?.name??""),onConnect:Je=>{ae(W,Je)}})),!fe&&ne.createElement(Sl,{size:32}),Ue&&ne.createElement(_m,{blockchain:B,open:A,handleOpenChange:le}))}))))}i(ef,"ConfirmWalletsModal");import{i18n as $w}from"@lingui/core";import{Alert as Fw,Button as Ow,Divider as Tf,InfoIcon as Uw}from"@rango-dev/ui";import $e from"react";import{Alert as Cw,Button as Tw,Divider as vl,NoRouteIcon as kw,RefreshIcon as vw,Typography as lf}from"@rango-dev/ui";import lt from"react";import{i18n as tf}from"@lingui/core";var yw=24,Sw=60;function of(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:tf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:tf.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(of,"makeInfo");var Tl=(o=>(o[o.small=yw]="small",o[o.large=Sw]="large",o))(Tl||{}),kl=(o=>(o.small="small",o.large="medium",o))(kl||{});import{styled as Oi}from"@rango-dev/ui";var nf=Oi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),rf=Oi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),af=Oi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),sf=Oi("div",{padding:"$6 $0"});function tr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=T().getDisabledLiquiditySources(),s=T().toggleAllLiquiditySources,c=T().swappers(),l=of(o,a,()=>s(c,!0),e);return r&&(l.alert=null),lt.createElement(nf,{id:"widget-no-result-container"},lt.createElement(kw,{size:Tl[n],color:"gray"}),lt.createElement(vl,{size:4}),lt.createElement(lf,{variant:"title",size:kl[n]},oe().noResultError.title),n==="large"&<.createElement(vl,{size:4}),!!l.description&<.createElement(rf,{size:n},lt.createElement(lf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),lt.createElement(vl,{size:n==="large"?"24":"4"}),!!l.alert&<.createElement(af,{size:n},lt.createElement(Cw,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&<.createElement(Tw,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:lt.createElement(sf,null,lt.createElement(vw,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(tr,"NoResult");import{i18n as nr}from"@lingui/core";import{Button as xw,Divider as Ew,MessageBox as Iw,Typography as Aw,WarningIcon as Nw}from"@rango-dev/ui";import qt from"react";import{Typography as mf}from"@rango-dev/ui";import bl from"react";import{Button as ww,darkTheme as bw,styled as or}from"@rango-dev/ui";var cf=or("div",{width:"100%"}),wl=or("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),pf=or("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${bw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),uf=or("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),df=or(ww,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function ff(t){let{title:e,value:o,valueColor:n}=t;return bl.createElement(pf,null,bl.createElement(mf,{size:"medium",variant:"label",className:"_title"},e),bl.createElement(mf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(ff,"QuoteErrorsModalItem");function gf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:nr.t("Swapping"),value:_(r.inputUsdValue,4,4)},{title:nr.t("Gas cost"),value:_(r.totalFee,2,2)},{title:nr.t("Receiving"),value:_(r.outputUsdValue,4,4)},{title:nr.t("Price impact"),value:_(r.priceImpact,2,2),valueColor:`${s}500`}];return qt.createElement(J,{id:"widget-high-value-loss-warning-modal",footer:qt.createElement(xw,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:qt.createElement(Nw,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},qt.createElement(Iw,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),qt.createElement(wl,null,qt.createElement(Ew,{size:"4"}),qt.createElement(Aw,{size:"small",variant:"title"},nr.t("Details")),qt.createElement(wl,null,c.map((l,u)=>qt.createElement(ff,{key:u,...l})))))}i(gf,"HighValueLossWarningModal");import{i18n as Tn}from"@lingui/core";function hf(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Tn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Tn.t("Increase")),o;if(t){switch(t.type){case 0:{Qt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title;break}case 4:{o.title=Tn.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=oe().unknownPriceError.title;break}case 2:{o.title=Tn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Tn.t("Increase");break}case 3:{o.title=Tn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(hf,"makeAlerts");function yf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(yf,"getRequiredSlippage");import{i18n as kn}from"@lingui/core";import{Button as Bw,Divider as xl,MessageBox as Ww,WarningIcon as Lw}from"@rango-dev/ui";import co from"react";import{useNavigate as Mw}from"react-router-dom";function Sf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=Mw();return co.createElement(J,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},co.createElement(Ww,{type:"warning",title:r.type===3?kn.t("High slippage"):kn.t("Low slippage"),description:r.type===3?kn.t("Caution, your slippage is high. Your trade may be front run."):kn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},co.createElement(xl,{size:18}),co.createElement(xl,{size:32}),co.createElement(df,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},co.createElement(Lw,{color:"white",size:16}),kn.t("Swap anyway")),co.createElement(xl,{size:10}),co.createElement(Bw,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+F.settings)},kn.t("Change Slippage"))))}i(Sf,"SlippageWarningModal");import{Button as Pw,MessageBox as _w,WarningIcon as Dw}from"@rango-dev/ui";import Ui from"react";function Cf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ui.createElement(J,{id:"widget-unknown-price-warning-modal",footer:Ui.createElement(Pw,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Ui.createElement(Dw,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Ui.createElement(_w,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Cf,"UnknownPriceWarningModal");function rr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:u,onConfirmWarningModal:p,onChangeSettings:f,onChangeSlippage:h}=t,g={confirmationDisabled:a,open:r,onClose:u,onConfirm:p},m=o?.type===0||o?.type===1,d=hf(e,o?.type===3||o?.type===4?o:null);d&&!n&&(d.action=null);let y=!!d&&!s,C=i(S=>{if(S==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,v=yf(e,k);h?.(v)}else S==="change-settings"&&f()},"onclickActionButton");return $e.createElement($e.Fragment,null,m&&$e.createElement($e.Fragment,null,$e.createElement(Tf,{size:10}),$e.createElement(tr,{skipAlerts:s,error:o,fetch:c})),y&&$e.createElement(cf,null,$e.createElement(Tf,{size:10}),$e.createElement(Fw,{id:"widget-quote-warning-and-errors-alert",title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:$e.createElement(uf,{onClick:l},$e.createElement(Uw,{size:12,color:"gray"}))},...(d.action==="change-settings"||d.action==="change-slippage")&&{action:$e.createElement(Ow,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:d.alertType,onClick:()=>C(d.action)},d.actionButtonTitle||$w.t("Change"))}})),e&&$e.createElement($e.Fragment,null,e.type===0&&$e.createElement(gf,{...g,warning:e}),(e.type===3||e.type===2)&&$e.createElement(Sf,{...g,warning:e}),e.type===1&&$e.createElement(Cf,{...g,warning:e})))}i(rr,"QuoteWarningsAndErrors");import gb from"bignumber.js";import Ri from"react";import{i18n as Lo}from"@lingui/core";import{Alert as ob,Divider as wn,FullExpandedQuote as nb,InfoIcon as rb,NumericTooltip as jf,QuoteTag as ib,StepDetails as ab,TokenAmount as sb,Typography as bn}from"@rango-dev/ui";import Pl from"bignumber.js";import U,{useRef as lb,useState as cb}from"react";import{styled as El}from"@rango-dev/ui";var Il=El("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),kf=El("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),vf=El("div",{width:"100%",display:"flex"});import*as zi from"@radix-ui/react-collapsible";import{Button as zw,css as ir,darkTheme as Be,Image as wf,styled as Ke,Typography as Qw}from"@rango-dev/ui";var qw=300,bf=Ke(zi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),xf=ir({padding:"$10 $15"}),Ef=Ke(zw,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Be} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Be} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Be} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),If=Ke("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${Be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Be} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Be} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Be} &`]:{backgroundColor:"$neutral400"}}}}]}),Af=ir({width:"100%",padding:"$15 $15 $10 $15"}),Nf=ir({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),vn=ir({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Bf=ir({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Be} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wf=Ke(zi.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${wf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${wf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Lf=Ke("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Mf=Ke(Mi,{width:"100%",background:"inherit"}),Al=Ke("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${qw}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),aQ=Ke("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Pf=Ke("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Be} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),_f=Ke("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Nl=Ke(Qw,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Df=Ke("div",{display:"flex",flexWrap:"wrap"}),Bl=Ke("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),$f=Ke("div",{display:"flex"}),Qi=Ke("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Be} &`]:{borderTopColor:"$neutral800"}});import{i18n as Mt}from"@lingui/core";import{ChevronDownIcon as Gw,CloseIcon as Vw,Divider as Gi,IconButton as Kw,NumericTooltip as jw,QuoteCost as Xw,Typography as bt}from"@rango-dev/ui";import Y,{useState as zf}from"react";import{css as Hw,styled as qi}from"@rango-dev/ui";var Hi=qi("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Wl=qi("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Ff=qi("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Of=qi("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Uf=Hw({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Yw=i(t=>t.fee.isZero()?null:Y.createElement(Hi,null,Y.createElement(bt,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(bt,{variant:"label",size:"medium"},"$",_(t.fee,4,4))),"NonPayableFee");function Ll(t){let[e,o]=zf(!1),[n,r]=zf(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:u,timeWarning:p,showModalFee:f,fullExpandedMode:h=!1}=t,g=s?.swaps??[],m=h?To():N(),d=kd(g),y=_(c,2,2);return Y.createElement(Y.Fragment,null,Y.createElement(Xw,{onClickFee:f?C=>{C.stopPropagation(),o(!e)}:void 0,fee:y,feeWarning:u,timeWarning:p,time:l,steps:a,tooltipGas:f?Mt.t("View more info"):void 0,tooltipContainer:m}),Y.createElement(J,{id:"widget-quote-cost-explanation-modal",container:m,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:Y.createElement(Of,{style:{textAlign:h?"left":"center"}},Y.createElement(bt,{variant:"title",size:"medium"},Mt.t("Gas & Fee Explanation")),Y.createElement(Kw,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement(Vw,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(Ff,null,Y.createElement(bt,{variant:"title",size:"small"},Mt.t("Details")),Y.createElement(Gi,{size:10}),Object.entries(d.payable).flatMap(([C,S])=>S.map((k,v)=>{let x=`payable-fee-${v}`,I=As(k);return Y.createElement(Hi,{key:x},Y.createElement(bt,{variant:"label",size:"medium",color:"neutral600"},ws(C,Mt.t)),Y.createElement(jw,{content:k.amount,container:m},Y.createElement(bt,{variant:"label",size:"medium"},_(k.amount,2,2),k.asset.symbol," ($",_(I,4,4),")")))})),Y.createElement(Hi,{className:"total_payable_fee"},Y.createElement(bt,{variant:"label",size:"medium"},Mt.t("Total Payable Fee")),Y.createElement(bt,{variant:"label",size:"medium"},"$",_(c,4,4))),Y.createElement(Wl,null),!!Object.keys(d.nonePayable).length&&Y.createElement(Di,{triggerAnchor:"bottom",onClickTrigger:()=>r(C=>!C),trigger:Y.createElement("div",{className:Uf()},Y.createElement(bt,{size:"small",variant:"body",color:"neutral700"},n?Mt.t("Hide non-payable fees"):Mt.t("Show non-payable fees")),Y.createElement(Gi,{size:4,direction:"horizontal"}),Y.createElement(Pi,{orientation:n?"up":"down"},Y.createElement(Gw,{size:12,color:"gray"}))),open:n},Y.createElement(bt,{size:"small",variant:"title"},Mt.t("Description")),Y.createElement(Gi,{size:4}),Y.createElement(bt,{size:"small",variant:"body",color:"neutral700"},Mt.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),Y.createElement(Gi,{size:10}),Object.entries(d.nonePayable).map(([C,S],k)=>{let v=Td(S),x=ws(C,Mt.t),I=`non-payable-fee-${k}`;return Y.createElement(Yw,{key:I,fee:v,label:x})}),Y.createElement(Wl,null)))))}i(Ll,"QuoteCostDetails");import{i18n as Hf}from"@lingui/core";import{TokenAmount as Gf}from"@rango-dev/ui";import Vi from"react";import{css as Zw,styled as Jw}from"@rango-dev/ui";var Qf=Jw("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),qf=Zw({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function ar(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Vi.createElement(Qf,null,Vi.createElement(Gf,{direction:"horizontal",label:Hf.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Vi.createElement("div",{className:qf()}),Vi.createElement(Gf,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:Hf.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(ar,"QuoteSummary");import{i18n as Vf}from"@lingui/core";import{ChevronDownIcon as Rw,ChevronRightIcon as eb,Divider as Ml,Image as tb,Tooltip as Yi,Typography as Ki}from"@rango-dev/ui";import z from"react";var ji=4,Xi=6,sr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return z.createElement(Yi,{container:c,side:"bottom",sideOffset:4,open:r,content:e},z.createElement(Lf,{className:n,state:a},z.createElement(tb,{src:o,size:16})))},"ImageComponent");function Kf(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),u=r.length,p=pd(r),{isTablet:f,isMobile:h}=fn();return z.createElement(Wf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:g=>e.current=g,selected:o,onClick:g=>{g.stopPropagation(),n(m=>!m)}},z.createElement("div",{className:vn()},z.createElement(Ki,{variant:"body",size:"xsmall"},Vf.t("Via:")),z.createElement(Ml,{direction:"horizontal",size:4}),r.map((g,m)=>{let d=`item-${m}`,y=z.createElement(Al,null,z.createElement(eb,{size:12,color:"black"}));return h||f?z.createElement(z.Fragment,{key:d},z.createElement(sr,{content:g.swapper.displayName,src:g.swapper.image??"",state:g.state,container:c}),m!==u-1&&z.createElement(z.Fragment,null,y)):z.createElement(z.Fragment,{key:d},u<=ji||u>ji&&m<ji-1?z.createElement(z.Fragment,null,z.createElement(sr,{content:g.swapper.displayName,src:g.swapper.image??"",state:g.state,container:c}),m!==u-1&&z.createElement(z.Fragment,null,y)):m===ji-1&&z.createElement(Yi,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:vn()},y,r.map((C,S)=>{let k=`image-${S}`;return S>=m&&z.createElement(z.Fragment,{key:k},z.createElement(sr,{content:C.swapper.displayName,src:C.swapper.image??"",state:C.state,open:!1}),S!==u-1&&z.createElement(z.Fragment,null,y))}))},z.createElement(Bl,{state:r.find((C,S)=>S>=m&&(C.state==="error"||C.state==="warning"))?.state},z.createElement(Ki,{size:"xsmall",variant:"body"},"+",u-m))))})),z.createElement("div",{className:vn()},z.createElement("div",{className:"blockchains_section"},z.createElement("div",{className:vn()},z.createElement(Ki,{variant:"body",size:"xsmall"},Vf.t("Chains:")),z.createElement(Ml,{direction:"horizontal",size:4}),p.map((g,m)=>z.createElement(z.Fragment,{key:g.displayName},p.length<=Xi||p.length>Xi&&m<Xi-1?z.createElement(Yi,{container:l,side:"bottom",content:g.displayName,sideOffset:4},z.createElement(sr,{content:"",src:g.image??"",open:!1,className:m!==0?"blockchainImage":""})):m===Xi-1&&z.createElement(Yi,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:vn()},p.map((d,y)=>y>=m&&z.createElement(sr,{key:d.displayName,content:"",src:d.image??"",open:!1,className:y>m?"blockchainImage":"",container:c})))},z.createElement(Bl,{className:"blockchainImage"},z.createElement(Ki,{size:"xsmall",variant:"body"},"+",p.length-m))))),z.createElement(Ml,{direction:"horizontal",size:32}))),z.createElement(Al,{orientation:a?"up":"down"},z.createElement(Rw,{size:12,color:"black"}))))}i(Kf,"QuoteTrigger");function _l(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:u=!0,onClickAllRoutes:p,fullExpandedMode:f=!1,container:h}=t,g=T().blockchains(),{findToken:m}=T(),d=T().swappers(),{customSlippage:y,slippage:C}=T(),S=y||C,[k,v]=cb(t.expanded),x=lb(null),I=_(o.value,6,6),A=_(n.value,6,6),E=n.usdValue?_(n.usdValue,4,4):"",b=zt(o.usdValue,n.usdValue??null),w=_(b,2,2),B=Qt(b??0),P=i((se,Ze)=>se.map((H,W)=>{let G,j=r?.type===3&&r.swap.swapperId===H.swapperId,X=r?.type===4&&r.recommendedSlippages?.has(W),fe=a?.type===2&&a.recommendedSlippages?.has(W),Ue=j||X,Je=fe;Ue?G="error":Je&&(G="warning");let be=Ue?Lo.t("Slippage Error"):Lo.t("Slippage Warning");return j&&(be=Lo.t("Bridge Limit Error")),{swapper:{displayName:Nn(H.swapperId,d)??"",image:H.swapperLogo},from:{token:{displayName:H.from.symbol,image:H.from.logo},chain:{displayName:ft(H.from.blockchain,g)??"",image:H.from.blockchainLogo},price:{value:W===0&&!Ze?_(o.value,6,6):_(H.fromAmount,6,6),usdValue:_((H.from.usdPrice??0)*parseFloat(H.fromAmount),4,4),realValue:W===0?o.value:H.fromAmount,realUsdValue:new Pl(H.from.usdPrice??0).multipliedBy(H.fromAmount).toString()}},to:{token:{displayName:H.to.symbol,image:H.to.logo},chain:{displayName:ft(H.to.blockchain,g)||"",image:H.to.blockchainLogo},price:{value:_(H.toAmount,6,6),usdValue:_((H.to.usdPrice??0)*parseFloat(H.toAmount),4,4),realValue:H.toAmount,realUsdValue:new Pl(H.to.usdPrice??0).multipliedBy(H.toAmount).toString()}},state:G,alerts:Ue||Je?U.createElement(kf,{dense:f},U.createElement(ob,{variant:"alarm",type:Ue?"error":"warning",title:be,id:"widget-quote-footer-step-alarm-alert",footer:U.createElement(vf,null,j&&U.createElement("div",null,U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(wn,{direction:"vertical",size:2}),U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},Lo.t({id:"Yours: {amount} {symbol}",values:{amount:_(H.fromAmount,6,6),symbol:H?.from.symbol}}))),(X||fe)&&!j&&U.createElement("div",null,U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},Lo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(W)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(W)}}})),U.createElement(wn,{direction:"vertical",size:2}),U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},Lo.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Wn(H.estimatedTimeInSeconds),fee:_(Is(H,m),2,2),internalSwaps:H.internalSwaps?P(H.internalSwaps):void 0}}),"getQuoteSteps"),$=P(e?.swaps??[]),q=$.length,R=h||N(),K=dd(t.quote.tags||[]),L=!!p,ae=Vr(e?.swaps),re=Wn(ae),Q=yi(e?.swaps??[],m),ee=_(Q,2,2),le=Q.gte(new Pl(od)),ue=ae/rd>=nd;return f?U.createElement(nb,{selected:c,fee:ee,time:re,tooltipContainer:To(),steps:$,tags:K,id:"widget-quote-full-expanded-quote-container",quoteCost:U.createElement(Ll,{quote:e,fullExpandedMode:!0,time:re,fee:Q,feeWarning:le,timeWarning:ue,showModalFee:u,steps:q}),percentageChange:w,warningLevel:B,outputPrice:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):U.createElement(If,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},U.createElement("div",{className:Af()},!l&&K.length?U.createElement(U.Fragment,null,U.createElement($f,null,K.map((se,Ze)=>{let H=`${se.value}_${Ze}`;return U.createElement(U.Fragment,{key:H},U.createElement(ib,{label:se.label,value:se.value}),U.createElement(wn,{size:4,direction:"horizontal"}))})),U.createElement(Qi,null),!L&&U.createElement(wn,{size:4})):null,U.createElement("div",{id:"portal-root",className:Nf()},U.createElement(Ll,{quote:e,time:re,fee:Q,feeWarning:le,timeWarning:ue,showModalFee:u,steps:q}),L&&U.createElement(Ef,{onClick:se=>{se.stopPropagation(),p()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(bn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Lo.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:Bf()},U.createElement(_f,null,U.createElement(rb,{size:12,color:"gray"})),U.createElement(Df,null,U.createElement(Nl,{size:"small",variant:"body"},`${I} ${$[0].from.token.displayName} = `),U.createElement(jf,{content:n.value,container:R,open:n.value?void 0:!1},U.createElement(Nl,{size:"small",variant:"body"},"\xA0",`${A} ${$[$.length-1].to.token.displayName}`))),U.createElement(jf,{content:n.usdValue,container:R},U.createElement(wn,{size:2,direction:"horizontal"}),U.createElement(bn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&U.createElement(sb,{id:"widget-quote-token-amount-container",tooltipContainer:R,type:"output",direction:"vertical",price:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:$[q-1].to.token.displayName,image:$[q-1].to.token.image},chain:{image:$[q-1].to.chain.image},percentageChange:w,warningLevel:B}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(ar,{from:$[0].from,to:$[q-1].to,percentageChange:w,warningLevel:B}),U.createElement(wn,{size:4}))),U.createElement(bf,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},U.createElement(Kf,{type:s,quoteRef:x,selected:c,setExpanded:v,container:R,expanded:k,steps:$}),U.createElement(Mf,{open:k},U.createElement(Pf,null),U.createElement("div",{className:xf()},$.map((se,Ze)=>{let H=`item-${Ze}`;return U.createElement(ab,{type:"quote-details",className:"widget-quote-step-details-container",key:H,tooltipContainer:R,step:se,hasSeparator:Ze!==$.length-1,state:se.state})})))))}i(_l,"Quote");import{Divider as mb,Skeleton as fb}from"@rango-dev/ui";import Kt from"react";import{darkTheme as pb,styled as Zi}from"@rango-dev/ui";var Xf=Zi("div",{$$color:"$colors$neutral100",[`.${pb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Yf=Zi("div",{paddingTop:"$2"}),Zf=Zi("div",{paddingLeft:"$8"}),Jf=Zi("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as lg,Divider as xt,Skeleton as ct}from"@rango-dev/ui";import V from"react";import{css as ub,styled as Vt}from"@rango-dev/ui";var Dl=Vt("div",{display:"flex"}),Rf=Vt("div",{padding:"$10 $0 $20"}),eg=Vt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),tg=Vt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),og=Vt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),ng=Vt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),rg=Vt("div",{width:"65%",display:"flex",justifyContent:"start"}),ig=Vt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),ag=Vt("div",{padding:"$15 $0 $15 $0"}),sg=ub({display:"flex",justifyContent:"space-between",alignItems:"center"});function lr(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(og,null,V.createElement(rg,null,V.createElement(lg,{loading:!0,size:"medium"}),V.createElement(xt,{size:8,direction:"horizontal"}),V.createElement(ig,null,V.createElement(ct,{height:10,width:60,variant:"rounded"}),V.createElement(xt,{size:4}),V.createElement(ct,{height:15,variant:"rounded"}))),V.createElement(ct,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(Dl,null,V.createElement(ct,{width:65,height:20,variant:"rounded"}),V.createElement(xt,{size:4,direction:"horizontal"}),V.createElement(ct,{width:65,height:20,variant:"rounded"}),V.createElement(xt,{size:4,direction:"horizontal"}),V.createElement(ct,{width:65,height:20,variant:"rounded"})),V.createElement(Qi,null),!r&&V.createElement(xt,{size:4})),V.createElement("div",{className:sg()},V.createElement(Dl,null,V.createElement(ct,{width:60,height:10,variant:"rounded"}),V.createElement(xt,{size:4,direction:"horizontal"}),V.createElement(ct,{width:60,height:10,variant:"rounded"}),V.createElement(xt,{size:4,direction:"horizontal"}),V.createElement(ct,{width:60,height:10,variant:"rounded"})),r&&V.createElement(ct,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(Rf,null,V.createElement(ct,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(eg,null,V.createElement(tg,null,V.createElement(lg,{loading:!0,size:"medium"}),V.createElement(xt,{direction:"horizontal",size:4}),V.createElement(ct,{height:15,width:150,variant:"rounded"})),V.createElement(xt,{size:10}),V.createElement(ct,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(xt,{size:4}),V.createElement(ag,null,n,V.createElement(ng,null),n),V.createElement(xt,{size:12})))}i(lr,"QuoteSummarySkeleton");import{ChainToken as mg,Divider as Fl,NextIcon as db,Skeleton as Ji}from"@rango-dev/ui";import We from"react";import{styled as cr}from"@rango-dev/ui";var cg=cr("div",{display:"flex",alignItems:"start"}),pg=cr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),$l=cr("div",{display:"flex",alignItems:"center",flexGrow:1}),ug=cr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),dg=cr("div",{display:"flex",alignItems:"center"});function Pt(t){let{separator:e=!0}=t;return We.createElement(We.Fragment,null,We.createElement(dg,null,We.createElement(Ji,{height:22,width:22,variant:"circular"}),We.createElement(Fl,{direction:"horizontal",size:8}),We.createElement(Ji,{height:15,width:148,variant:"rounded"})),We.createElement(cg,null,We.createElement(Jf,{hideSeparator:!e}),We.createElement(pg,{extraSpace:e},We.createElement($l,null,We.createElement(mg,{size:"small",loading:!0}),We.createElement(Fl,{direction:"horizontal",size:8}),We.createElement(Ji,{height:12,variant:"rounded"})),We.createElement(ug,null,We.createElement(db,{color:"gray",size:16})),We.createElement($l,null,We.createElement(mg,{size:"small",loading:!0}),We.createElement(Fl,{direction:"horizontal",size:8}),We.createElement(Ji,{height:12,variant:"rounded"})))))}i(Pt,"StepSkeleton");function pr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Kt.createElement(Xf,{expanded:o,rounded:e!=="basic"},Kt.createElement(lr,{type:e,tagHidden:n}),Kt.createElement(Yf,null,Kt.createElement(fb,{height:15,variant:"rounded"})),o&&Kt.createElement(Zf,null,Kt.createElement(mb,{size:24}),Kt.createElement(Pt,null),Kt.createElement(Pt,null),Kt.createElement(Pt,{separator:!1})))}i(pr,"QuoteSkeleton");function Mo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:u,selected:p,id:f,onClickAllRoutes:h,fullExpandedMode:g=!1,container:m}=t,{inputAmount:d,inputUsdValue:y}=O(),C=e?.outputAmount?new gb(e?.outputAmount):null,S=e?yt(e):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Ri.createElement(Il,null,Ri.createElement(pr,{tagHidden:c,type:o,expanded:s})):v?Ri.createElement(Il,{onClick:()=>l?.(e),id:f},Ri.createElement(_l,{quote:e,error:r,container:m,showModalFee:u,warning:a,tagHidden:c,selected:p,type:o,expanded:s,onClickAllRoutes:h,fullExpandedMode:g,input:{value:d,usdValue:y?.toString()??""},output:{value:C?.toString()??"",usdValue:S?.toString()??""}})):null}i(Mo,"QuoteInfo");import{calculatePendingSwap as Cb}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Tb}from"react";import{useRef as hb,useState as yb}from"react";var Sb=2e3;function ea({request:t}){let[e,o]=yb(!1),n=hb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,Sb)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(c,{signal:n.current.signal});return n.current=null,u}catch(u){if(l)return await a(c);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(ea,"useFetch");function fg(){let{fetch:t,loading:e,cancelFetch:o}=ea({request:async(n,r)=>await at().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(fg,"useFetchConfirmQuote");function ta(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Ol(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ta,"throwErrorIfResponseIsNotValid");function Ol(t){if(yd(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Sd(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=vd(t);if(o){let n=Si(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Ol,"getQuoteError");function gg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=pn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let u=xd(e,r,n.blockchains);return u.length===0||(c.balance={messages:u}),c}i(gg,"generateWarnings");function oa(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:t?.code==="ERR_BAD_REQUEST"?{swap:null,error:{type:0,diagnosisMessage:t.response.data.error},warnings:null}:{swap:null,error:{type:1,diagnosisMessage:t.message},warnings:null}}i(oa,"handleQuoteErrors");function Ul(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=O(),{slippage:l,customSlippage:u}=T(),p=T().getDisabledLiquiditySources(),f=T().blockchains(),h=T().tokens(),{findToken:g}=T(),m=u||l,{fetch:d,cancelFetch:y,loading:C}=fg();return Tb(()=>y,[]),{loading:C,fetch:i(async k=>{let v=k.selectedWallets,x=k?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=v.reduce((E,b)=>(E[b.chain]=b.address,E),{}),A={requestId:a?.requestId||"",selectedWallets:I,destination:x||void 0};try{return await d(A,!0).then(E=>{let{result:b}=E;if(!b)throw new Error(E.error??"Error fetching updated quote");ta({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let w={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};r(w);let B={slippage:m.toString(),disabledSwappersGroups:p},P=gg({previousQuote:a??void 0,currentQuote:w,meta:{blockchains:f},selectedWallets:v,userSlippage:m,inputUsdValue:n,findToken:g});c();let $=!!P.balance,q=Cb(o.toString(),b,bd(v),B,!$,{blockchains:f,tokens:h});return{quote:w,swap:q,error:null,warnings:P}})}catch(E){return oa(E)}},"fetch"),cancelFetch:y}}i(Ul,"useConfirmSwap");var Bb=bb("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${hg}`]:{width:"$48",height:"$48"}}),Wb=ql({flexGrow:1,paddingRight:"$10"}),Lb=ql({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Mb=ql({display:"flex",justifyContent:"space-between",alignItems:"center"});function yg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=Nb(),[c,l]=ur(""),u=!n,[p,f]=ur(!1),[h,g]=ur(!1),{isActiveTab:m}=te(),d=T().getDisabledLiquiditySources(),y=Ab(d),{manager:C}=kb(),{fetch:S,loading:k,cancelFetch:v}=Ul(),[x,I]=ur({swap:null,error:null,warnings:null}),[A,E]=ur(!1),b=i(async({selectedWallets:L,customDestination:ae})=>{let re=await S?.({selectedWallets:L,customDestination:ae});return I(re),re},"onConfirmSwap"),w=i(async()=>{if(x.swap&&n)try{await C?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let L=`../${F.swaps}/${x.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{g(!0),await w(),g(!1)},"onConfirm"),P=i(async()=>{x.warnings?.quote&&cd(x.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),$=i(async()=>{I({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(L=>{I(L)}).catch(L=>console.error(L))},"onRefresh");na(()=>{!!y.current.length&&!d.length&&$(),y.current=d},[d.length]),na(()=>{u&&v()},[u]),na(()=>{u&&f(u)},[u]),na(()=>{u||S({selectedWallets:o,customDestination:r}).then(L=>I(L)).catch(L=>console.error(L))},[]),Ib(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=x.warnings?.quote??null,R=x.error,K=[];if(c&&K.push(De.createElement(vb,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||R){let L=`../${F.settings}`;K.push(De.createElement(rr,{warning:q,error:R,couldChangeSettings:!1,refetchQuote:$,skipAlerts:R?.type===4||q?.type===2,showWarningModal:A,confirmationDisabled:!m,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await w()},onChangeSettings:()=>s(L)}))}return De.createElement(ie,{header:{title:zl.t("Confirm Swap"),onWallet:()=>{let L=`../${F.wallets}`;s(L)}},footer:De.createElement(Bb,null,De.createElement("div",{className:Wb()},De.createElement(wb,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||h,disabled:!!x.error||!m,onClick:P},zl.t("Start Swap"))),De.createElement(hg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||h,disabled:!m,onClick:f.bind(null,!0)},De.createElement(Eb,{size:24})))},p&&De.createElement(ef,{open:p,onClose:()=>f(!1),onCancel:v,loading:k,onCheckBalance:b}),De.createElement(ce,null,De.createElement("div",{className:Mb()},De.createElement(xb,{variant:"title",size:"small"},zl.t("You get")),De.createElement("div",{className:Lb()},De.createElement(Ei,{onClick:!k&&!p&&!A?$:void 0}))),De.createElement(Ql,{size:"12"}),Zd(K.map((L,ae)=>({element:L,key:`alert-${ae}`})),De.createElement(Ql,{size:10})),K.length>0?De.createElement(Ql,{size:10}):null,De.createElement(Mo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:x.error,loading:k,warning:x.warnings?.quote??null})))}i(yg,"ConfirmSwapPage");import{i18n as Xt}from"@lingui/core";import{Button as tc,CustomTokensZeroStateDarkIcon as ex,CustomTokensZeroStateIcon as tx,DeleteIcon as ox,Divider as yr,IconButton as nx,MessageBox as rx,NotFound as ix,styled as nc}from"@rango-dev/ui";import ye,{useState as oc}from"react";import{useNavigate as ax}from"react-router-dom";import{CloseIcon as _b,IconButton as Db,SearchIcon as $b,TextField as Fb}from"@rango-dev/ui";import dr from"react";import{styled as Pb}from"@rango-dev/ui";var Sg=Pb("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Et(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:u,id:p,...f}=t,h=s.length?dr.createElement(Db,{id:`${p}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},dr.createElement(_b,{color:"gray",size:10})):null;return u&&(h=u),dr.createElement(Fb,{prefix:dr.createElement(Sg,null,dr.createElement($b,{color:"black"})),id:p,suffix:h,fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...f})}i(Et,"SearchInput");import{i18n as ec}from"@lingui/core";import{Button as Qb,CustomTokenWarning as qb,darkTheme as Bg,Divider as jt,ExternalLinkIcon as Hb,Image as Gb,ListItem as Vb,NotFound as Kb,PinIcon as jb,Skeleton as Po,Typography as gr,VirtualizedList as Xb}from"@rango-dev/ui";import M,{useState as Yb}from"react";import{useTranslation as Zb}from"react-i18next";import{Divider as Ag,ListItem as zb,Skeleton as fr}from"@rango-dev/ui";import It from"react";import{css as xn,darkTheme as Hl,ImageContainer as Ob,ListItemButton as Ub,styled as ot,Typography as Cg}from"@rango-dev/ui";var Gl=xn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Vl=xn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Kl=xn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),jl=xn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Hl} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Xl=xn({}),Yl=xn(),Tg=ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),Zl=ot("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ra=ot("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Vl}`]:{[`& .${jl}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Xl}`]:{bottom:"-15px"},[`& .${Gl}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Kl}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),kg=ot(Ub,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),Jl=ot("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Rl=ot(Cg,{}),vg=ot("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Yl}`]:{$$color:"$colors$neutral600",[`.${Hl} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),mr=ot("div",{display:"flex",alignItems:"end",flexDirection:"column"}),JH=ot("div",{display:"flex",alignItems:"center"}),wg=ot("div",{position:"relative",[`& ${Ob}`]:{borderRadius:"$xm",overflow:"hidden"}}),bg=ot("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),xg=ot(Cg,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Eg=ot("a",{"& svg:hover":{color:"$colors$info"}}),Ig=ot("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${Hl} &`]:{color:"$foreground"}}}});function Ng(t){return It.createElement(ra,null,Array.from(Array(t.size),e=>It.createElement(zb,{key:e,hasDivider:!0,start:It.createElement(fr,{variant:"circular",width:35,height:35}),end:It.createElement(mr,null,It.createElement(fr,{variant:"text",size:"large",width:70}),It.createElement(Ag,{size:4}),It.createElement(fr,{variant:"text",size:"medium",width:50})),title:It.createElement("div",null,It.createElement(fr,{variant:"text",size:"large",width:90}),It.createElement(Ag,{size:4}),It.createElement(fr,{variant:"text",size:"medium",width:90}))})))}i(Ng,"LoadingTokenList");var Jb=20,Rb=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return M.createElement("div",{className:Vl()},o?M.createElement("div",{className:Gl()},o):M.createElement(Zl,{className:Kl()},M.createElement(gr,{variant:"title",size:"xmedium"},r.symbol),M.createElement(jt,{direction:"horizontal",size:4}),M.createElement(Jl,{css:a},M.createElement(Rl,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&M.createElement("div",{className:`${jl()} ${!o&&Xl()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",M.createElement(jt,{size:4,direction:"horizontal"}),M.createElement(Eg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},M.createElement(Hb,{size:12}))))},"renderDesc");function hr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,u=T().fetchStatus,p=T().blockchains(),{getBalanceFor:f,fetchingWallets:h}=T(),{isTokenPinned:g}=T(),{setFromToken:m,setToToken:d}=O(),{t:y}=Zb(),C=Ge(),[S,k]=Yb(null),v=i(()=>{c==="source"?m({token:S,meta:{blockchains:p}}):d({token:S,meta:{blockchains:p}})},"updateToken"),x=i(()=>{v(),C()},"handleImportToken"),I=i(b=>{if(b.customToken){let{customToken:B,...P}=b;return M.createElement(Qb,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),k({...P,warning:!0})},"handleClick")},M.createElement(gr,{variant:"body",size:"xsmall",color:"background"},y("import")))}let w=Yr(f(b));return s?s(b):h?M.createElement(mr,null,M.createElement(Po,{variant:"text",size:"large",width:70}),M.createElement(jt,{size:4}),M.createElement(Po,{variant:"text",size:"medium",width:50})):w&&M.createElement(vg,null,M.createElement(xg,{variant:"title",size:"small"},w.amount),M.createElement("div",null),w.usdValue&&M.createElement(gr,{variant:"body",className:Yl(),size:"xsmall"},`$${w.usdValue}`))},"endRenderer"),A=i(()=>M.createElement(Xb,{itemContent:b=>{let w=e[b];if(w==="skeleton")return M.createElement(Vb,{hasDivider:!0,start:M.createElement(Po,{variant:"circular",width:35,height:35}),end:M.createElement(mr,null,M.createElement(Po,{variant:"text",size:"large",width:70}),M.createElement(jt,{size:4}),M.createElement(Po,{variant:"text",size:"medium",width:50})),title:M.createElement("div",null,M.createElement(Po,{variant:"text",size:"large",width:90}),M.createElement(jt,{size:4}),M.createElement(Po,{variant:"text",size:"medium",width:90}))});let B=w.address||"",P=p.find(L=>L.name===w.blockchain);if(!P)return null;let $=Hs(P.color,"main"),q={$$color:$.main150,[`.${Bg} &`]:{$$color:$.main750},backgroundColor:"$$color"},R={$$color:$.main750,[`.${Bg} &`]:{$$color:$.main150},color:"$$color"},K=i(()=>{typeof w!="string"&&!w.customToken&&n?.(w)},"handleClick");return M.createElement(Ig,null,M.createElement(kg,{"tab-index":b,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:w.customToken,onClick:K,start:M.createElement(wg,null,M.createElement(Gb,{src:w.image===""?Ur:w.image,size:30}),t.type!=="custom-token"&&g(w,t.type)&&M.createElement(bg,null,M.createElement(jb,{size:12,color:"gray"}))),title:P?.type==="COSMOS"||w.name||!w.name&&!B?M.createElement(Zl,null,M.createElement(gr,{variant:"title",size:"xmedium"},w.symbol),M.createElement(jt,{direction:"horizontal",size:4}),M.createElement(Jl,{css:q},M.createElement(Rl,{variant:"body",size:"xsmall",css:R},w.blockchain)),l&&w.warning&&M.createElement(M.Fragment,null,M.createElement(jt,{direction:"horizontal",size:4}),M.createElement(qb,{container:N()}))):void 0,description:typeof w!="string"&&P?.info&&B&&P.type!=="COSMOS"?Rb({address:B,token:w,customCssForTag:q,customCssForTagTitle:R,name:w.name,url:P.info.addressUrl.split("{wallet}").join(B)}):w.name||void 0,end:I(w)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=S?So(S?.blockchain,p):null;return M.createElement(M.Fragment,null,a&&M.createElement(M.Fragment,null,M.createElement(gr,{variant:"label",size:"large"},ec.t("Select Token")),M.createElement(jt,{size:4})),M.createElement(Tg,null,M.createElement(jt,{size:4}),u==="loading"&&M.createElement(Ng,{size:Jb}),u==="success"&&(e.length?M.createElement(M.Fragment,null,M.createElement(Xn,{token:S,address:S?.address??"",blockchain:E??void 0,onImport:x,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),M.createElement(ra,{as:"ul"},A())):!!o&&M.createElement(Kb,{title:ec.t("No results found"),description:ec.t("Try using different keywords")}))))}i(hr,"TokenList");var sx=nc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),lx=nc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),cx=nc(nx,{"&:hover":{"& svg":{color:"$secondary550"}}});function Wg(){let[t,e]=oc(""),{deleteCustomToken:o}=T(),n=T().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=O(),{mode:l}=no({}),u=ax(),[p,f]=oc(!1),[h,g]=oc(),m=i(S=>{let k=S.target.value;e(k)},"handleSearch"),d=l==="dark",y=n.filter(S=>rt(S.symbol,t)||rt(S.address||"",t)||rt(S.name||"",t)),C=i(()=>{if(h){let S=a?gt(a):null,k=r?gt(r):null,v=gt(h);S===v?c({token:null}):k===v&&s({token:null}),o(h)}f(!1)},"handleDeleteCustomToken");return ye.createElement(ie,{header:{title:Xt.t("Custom Tokens")}},ye.createElement(ce,null,ye.createElement(sx,null,n.length?ye.createElement(ye.Fragment,null,ye.createElement(Et,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Xt.t("Search Token"),onChange:m}),ye.createElement(yr,{size:16}),ye.createElement(hr,{list:y,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:S=>ye.createElement(cx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{f(!0),g(S)}},ye.createElement(ox,{size:12,color:"gray"}))})):ye.createElement(lx,null,ye.createElement(ix,{icon:d?ye.createElement(ex,{size:200}):ye.createElement(tx,{size:200}),title:Xt.t("No custom tokens"),description:Xt.t("press the button to add your custom token")})),ye.createElement(yr,{size:20}),ye.createElement(tc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>u(F.addCustomTokens)},Xt.t("Add Custom Token"))),ye.createElement(J,{open:p,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>f(!1),container:N()},ye.createElement(rx,{title:Xt.t("Delete Custom Token"),type:"error",description:Xt.t("Are you sure you want to Delete this Token?")},ye.createElement(yr,{size:40}),ye.createElement(yr,{size:10}),ye.createElement(tc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},Xt.t("Yes, Delete it")),ye.createElement(yr,{size:12}),ye.createElement(tc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>f(!1)},Xt.t("No, Continue"))))))}i(Wg,"CustomTokensPage");import{i18n as Xe}from"@lingui/core";import{useManager as Nx}from"@rango-dev/queue-manager-react";import{Button as pc,darkTheme as Bx,Divider as Do,MessageBox as Wx,NotFound as Lx,styled as uc,Typography as sa}from"@rango-dev/ui";import{TransactionStatus as Tr}from"rango-types";import pe,{useMemo as Yg,useState as la}from"react";import{useNavigate as Mx}from"react-router-dom";import{FilterIcon as hx,Popover as yx}from"@rango-dev/ui";import _o from"react";import{css as px,darkTheme as ia,IconButton as ux,styled as Sr}from"@rango-dev/ui";var rc=Sr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ia} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),Lg=Sr(ux,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ia} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ia} &`]:{backgroundColor:"$neutral"},[`& ${rc}::before`]:{backgroundColor:"$secondary100",[`.${ia} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Mg=Sr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Pg=Sr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),_g=px({display:"flex",justifyContent:"space-between",alignItems:"center"}),Dg=Sr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as $g}from"@lingui/core";import{Button as dx,Divider as Fg,ListItemButton as mx,Radio as fx,RadioRoot as gx,Typography as Og}from"@rango-dev/ui";import pt from"react";function Ug(t){let{filterBy:e,onClickItem:o}=t;return pt.createElement(Pg,null,pt.createElement("div",{className:_g()},pt.createElement(Og,{size:"small",variant:"body"},$g.t("Status")),pt.createElement(dx,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},$g.t("Reset"))),pt.createElement(Fg,{size:10}),pt.createElement(gx,{value:e},pt.createElement(Dg,null,t.list.map((n,r)=>pt.createElement(mx,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:pt.createElement(pt.Fragment,null,pt.createElement(Fg,{direction:"horizontal",size:4}),pt.createElement(Og,{size:"medium",variant:"body"},n.title)),start:pt.createElement(fx,{value:n.id}),onClick:o})))))}i(Ug,"FilterSelectorContent");function ic(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return _o.createElement("div",null,_o.createElement(yx,{open:a,align:"end",onOpenChange:o,container:N(),content:_o.createElement(Ug,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},_o.createElement(Lg,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},_o.createElement(rc,{isSelect:!!n},_o.createElement(hx,{size:16,color:"black"}),!!n&&_o.createElement(Mg,null)))))}i(ic,"FilterSelector");import{i18n as Tx}from"@lingui/core";import{getCurrentStep as kx}from"@rango-dev/queue-manager-rango-preset";import{Divider as Gg,GroupedVirtualizedList as vx,Skeleton as wx,SwapListItem as Vg,Typography as bx}from"@rango-dev/ui";import je,{useCallback as Kg,useEffect as xx,useRef as Ex,useState as Ix}from"react";function zg(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(zg,"calculateGroupsSoFar");import{css as Sx,darkTheme as Cx,styled as Cr}from"@rango-dev/ui";var ac=Sx(),Qg=Cr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),sc=Cr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ac}`]:{$$color:"$colors$neutral600",[`.${Cx} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),lc=Cr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),qg=Cr("div",{gap:"$10",display:"flex",flexDirection:"column"}),Hg=Cr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var Ax=10;function cc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=Ix([]),c=Ex(0),{swaps:l,groupCounts:u,groups:p}=n(e),f=Kg(zg,[]),h=Kg(()=>{let g=e.length-c.current;g&&(c.current+=Math.min(g,Ax),s(f(u,c.current)))},[e.length]);if(xx(()=>{r||h()},[r,h]),r){let g=[1,2];return je.createElement(je.Fragment,null,[g,g].map((d,y)=>je.createElement(sc,{key:y},je.createElement(lc,null,je.createElement(wx,{variant:"text",width:60,size:"small"}),je.createElement(Gg,{size:16})),je.createElement(Gg,{size:4}),je.createElement(qg,null,d.map((S,k)=>je.createElement(Vg,{isLoading:!0,key:k}))))))}return je.createElement(vx,{endReached:()=>{c.current<e.length&&h()},groupCounts:a,groupContent:g=>je.createElement(sc,null,je.createElement(lc,null,je.createElement(bx,{variant:"label",size:"medium",className:ac()},p[g]))),itemContent:(g,m)=>{let d=l[g];if(!d)return null;let y=kx(d),C=d.steps[0],S=d.steps[d.steps.length-1];return je.createElement(Qg,{key:d.requestId},je.createElement(Vg,{className:"widget-history-group-list-swap-item-btn",requestId:d.requestId,creationTime:d.creationTime,status:d.status,onClick:o,currentStep:y,tooltipContainer:N(),onlyShowTime:p[m]===Tx.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:_(d.inputAmount,6,6),realAmount:d.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:_(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(cc,"HistoryGroupedList");import{i18n as aa}from"@lingui/core";import jg from"dayjs";var Xg=i(t=>{let e=new Map([["today",{title:aa.t("Today"),swaps:[]}],["week",{title:aa.t("This week"),swaps:[]}],["month",{title:aa.t("This month"),swaps:[]}],["year",{title:aa.t("This year"),swaps:[]}]]);function o(l,u){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(u)}i(o,"addYearsToOutput");let n=jg();t.forEach(l=>{let u=Number(l.creationTime),p=jg(u);if(n.isSame(p,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(p,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(p,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(p,"year"))e.get("year")?.swaps.push(l);else{let f=new Date(u).getFullYear().toString();o(f,l)}});let r=Array.from(e.values()).filter(l=>l.swaps.length>0),a=r.flatMap(l=>l.swaps),s=r.map(l=>l.swaps.length),c=r.map(l=>l.title);return{swaps:a,groupCounts:s,groups:c}},"groupSwapsByDate");var Px=uc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),_x=uc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),Dx=uc("div",{"._typography":{color:"$neutral700",[`.${Bx}&`]:{color:"$neutral900"}}}),$x=[{id:Tr.SUCCESS,title:Xe.t("Complete")},{id:Tr.RUNNING,title:Xe.t("Running")},{id:Tr.FAILED,title:Xe.t("Failed")}],Fx=i((t,e)=>t?.length?t.filter(o=>Nt(o.fromBlockchain,e)||Nt(o.toBlockchain,e)||Nt(o.toSymbol,e)||Nt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Zg(){let t=Mx(),{manager:e,state:o}=Nx(),n=St(e).map(({swap:k})=>k),[r,a]=la(""),[s,c]=la(!1),l=!o.loadedFromPersistor,[u,p]=la(""),[f,h]=la(!1),g=i(k=>{let v=k.target.value;a(v)},"handleSearch"),m=Yg(()=>!r&&!u?n:n.filter(k=>{let{inputAmount:v,status:x,steps:I,requestId:A}=k;return(!r||Nt(v,r)||Nt(x,r)||Fx(I,r)||Nt(A,r))&&(!u||u===x)}),[n,r,u]),d=!m?.length&&!l,y=i(()=>h(!1),"onCloseModal"),C=i(async()=>{try{await e?.clearQueue(),h(!1)}catch(k){console.log(k)}},"onClear"),S=Yg(()=>!n.some(k=>k.status===Tr.SUCCESS||k.status===Tr.FAILED),[n]);return pe.createElement(ie,{header:{title:Xe.t("History"),suffix:pe.createElement(ro,null,pe.createElement(pc,{id:"widget-history-clear-btn",disabled:S,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},pe.createElement(sa,{size:"medium",variant:"label",color:"error"},Xe.t("Clear"))))}},pe.createElement(ce,null,pe.createElement(_x,null,pe.createElement(Et,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Xe.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:g,style:{height:36},value:r}),pe.createElement(Do,{size:10,direction:"horizontal"}),pe.createElement(ic,{filterBy:u,open:s,onOpenChange:k=>c(k),onClickItem:k=>p(k),list:$x})),pe.createElement(Do,{size:"16"}),pe.createElement(Px,null,d&&pe.createElement(Hg,null,pe.createElement(Do,{size:32}),pe.createElement(Lx,{title:r?Xe.t("No results found"):Xe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Xe.t("Try using different keywords"):Xe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!d&&pe.createElement(cc,{list:m,onSwapClick:t,groupBy:Xg,isLoading:l}))),pe.createElement(J,{open:f,onClose:y,id:"widget-history-clear-modal",container:N()},pe.createElement(Do,{size:20}),pe.createElement(Wx,{type:"warning",title:Xe.t("Clear Transaction History"),description:pe.createElement(Dx,null,pe.createElement(sa,{variant:"body",size:"medium"},Xe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),pe.createElement(Do,{size:"24"}),pe.createElement(sa,{variant:"body",size:"small"},Xe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),pe.createElement(Do,{size:30}),pe.createElement(pc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},Xe.t("Yes, Clear the history")),pe.createElement(Do,{size:10}),pe.createElement(pc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:y},pe.createElement(sa,{variant:"title",size:"medium",color:"primary"},Xe.t("No, Cancel")))))}i(Zg,"HistoryPage");import{i18n as CE}from"@lingui/core";import{Button as TE,Divider as xc,styled as kE,WarningIcon as vE}from"@rango-dev/ui";import wE from"bignumber.js";import Se,{useEffect as Ih,useState as Ah}from"react";import{useNavigate as bE}from"react-router-dom";import{i18n as Rg}from"@lingui/core";import{Alert as Ux,Divider as dc,NoRouteIcon as zx,Typography as Qx}from"@rango-dev/ui";import $o from"react";import{styled as Ox}from"@rango-dev/ui";var Jg=Ox("div",{display:"flex",flexDirection:"column",alignItems:"center"});function mc(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Ft(t,e)?$o.createElement(Jg,null,$o.createElement(dc,{size:10}),$o.createElement(zx,{size:24,color:"gray"}),$o.createElement(dc,{size:4}),$o.createElement(Qx,{variant:"title",size:"small"},Rg.t("No Routes Found")),$o.createElement(dc,{size:4}),$o.createElement(Ux,{title:Rg.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(mc,"SameTokensWarning");import{Alert as qx,Button as Hx}from"@rango-dev/ui";import th from"react";import{i18n as ca}from"@lingui/core";function eh(t){let e=null;return t===ei?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ca.t("Reset"),title:ca.t("Slippage cannot be set lower than 0.01%.")},e):t>Vo?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ca.t("Change"),title:ca.t("Caution, your slippage is high!")},e):null}i(eh,"makeAlerts");function oh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=T(),{onChangeSettings:a}=t,c=eh(o!==null?o:e),l=i(u=>{u==="reset-slippage"?(n(Rr),r(null)):u==="change-settings"&&a()},"onClickActionButton");return c?th.createElement(qx,{title:c.title,type:c.alertType,variant:"alarm",action:th.createElement(Hx,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(oh,"SlippageWarningsAndErrors");import{i18n as Xx}from"@lingui/core";import{IconButton as Yx,ReverseIcon as Zx,Skeleton as Jx,Tooltip as Rx,Typography as kr}from"@rango-dev/ui";import ut from"react";import pa from"bignumber.js";function rh(t){let{error:e,isDarkTheme:o,warning:n}=t,{quoteError:r,slippageError:a}=e,{quoteWarning:s,slippageWarning:c}=n,l=!!a||r?.type===4,u=!!c||s?.type===2;return l?"$error500":u?"$warning500":o?"$neutral600":"$neutral700"}i(rh,"getSlippageColor");function ih(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new pa(e),r=new pa(o),a=n.dividedBy(r),s;return a.isLessThan(1)?s=a.toFixed(14).replace(/\.?0+$/,""):a.toFixed(0).length>10?s=a.toFixed(0).slice(0,10):s=a.toFixed(2),{displayValue:s,rawValue:a.toFixed()}}i(ih,"getUsdExchangeRate");function ah(t,e){let o=new pa(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,pa.ROUND_DOWN).toFormat(2)}`}i(ah,"formatTokenValueInUsd");import{darkTheme as Kx,styled as gc,Typography as jx}from"@rango-dev/ui";var sh=gc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),lh=gc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${Kx} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),hc=gc(jx,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function yc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=T(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:u,loading:p}=t,f=o!==null?o:e,{mode:h}=no({}),g=Xo(f),m=h==="dark",d=n==="default",y={quoteError:a,slippageError:g?.type==="error"?g.message:null},C={quoteWarning:s,slippageWarning:g?.type==="warning"?g.message:null},S=u?.swaps[0].from||c,k=u?.swaps[u?.swaps.length-1].to||l,v=d?S:k,x=d?k:S,I=Number(d?u?.outputAmount:u?.requestAmount),A=Number(d?u?.requestAmount:u?.outputAmount),E=I||v.usdPrice,b=A||x.usdPrice,{rawValue:w,displayValue:B}=ih({toTokenUsdPrice:b,fromTokenUsdPrice:E});return ut.createElement(sh,null,ut.createElement(kr,{variant:y||C?"label":"body",size:y||C?"medium":"small",color:rh({error:y,warning:C,isDarkTheme:m})},Xx.t("Slippage:")," ",f,"%"),p?ut.createElement(Jx,{height:16,width:104,variant:"rounded"}):E&&b&&ut.createElement(lh,null,ut.createElement(kr,{className:"rate-text",variant:"body",size:"small"},"1"),ut.createElement(hc,{className:"rate-text",variant:"body",size:"small"},x.symbol),ut.createElement(Yx,{id:"widget-home-page-change-rate-button",onClick:r},ut.createElement(Zx,{size:14,color:"secondary"})),ut.createElement(Rx,{container:N(),side:"top",sideOffset:4,content:ut.createElement(kr,{className:"rate-text",variant:"body",size:"small"},w)},ut.createElement(kr,{className:"rate-text",variant:"body",size:"small"},B)),ut.createElement(hc,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&ut.createElement(kr,{color:"neutral600",variant:"body",size:"small"},"~",ah(Number(w),v.usdPrice))))}i(yc,"SwapMetrics");import{i18n as iE}from"@lingui/core";import{Header as aE}from"@rango-dev/ui";import po,{useEffect as sE,useState as lE}from"react";import{i18n as tE}from"@lingui/core";import{Divider as Cc,FullExpandedQuote as oE,Typography as nE}from"@rango-dev/ui";import we from"react";import{styled as Sc}from"@rango-dev/ui";var ch=Sc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),ph=Sc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),uh=Sc("div",{width:"146px"});import{i18n as vr}from"@lingui/core";import{Select as eE}from"@rango-dev/ui";import dh from"react";function ua(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:vr.t("Smart Routing")},{value:"FEE",label:vr.t("Lowest Fee")},{value:"SPEED",label:vr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:vr.t("Maximum Return")},{value:"PRICE",label:vr.t("Maximum Output")}];return dh.createElement(uh,null,dh.createElement(eE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ua,"SelectStrategy");var mh=3;function wr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:u,updateQuotePartialState:p,fromToken:f,toToken:h,sortStrategy:g,error:m}=O(),{slippage:d,customSlippage:y}=T(),{findToken:C}=T(),S=c||N(),k=!!u&&u.results.length,v=y??d,x=i(E=>{if(!f||!h||!u)return null;let b={requestAmount:u.requestAmount,validationStatus:null,...E};return pn({currentQuote:b,userSlippage:v,findToken:C})},"getQuoteWarning"),I=m?.type===0||m?.type===1,A=u?.results?hi(g,u?.results):[];return we.createElement(we.Fragment,null,a&&we.createElement(we.Fragment,null,we.createElement(ph,null,we.createElement(nE,{size:"xmedium",variant:"title"},tE.t("Sort by")),we.createElement(ua,{container:S})),we.createElement(Cc,{size:"10"})),e&&Array.from({length:mh},(E,b)=>we.createElement(we.Fragment,{key:b},s?we.createElement(oE,{loading:!0}):we.createElement(pr,{tagHidden:!1,type:"list-item",expanded:!1}),b!==mh-1&&we.createElement(Cc,{size:16}))),!e&&we.createElement(we.Fragment,null,k?A.map((E,b)=>{let w=x(E),B=Ol(E.swaps),P=A.length-1===b;return we.createElement(we.Fragment,{key:E.requestId},we.createElement(Mo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:S,selected:l?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:u.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:w,fullExpandedMode:s,onClick:$=>{B||p("warning",w),p("error",B?.options||null),o($)},type:"list-item"}),!P&&we.createElement(Cc,{size:16}))}):I&&we.createElement(ch,null,we.createElement(tr,{size:s?"large":"small",error:m,fetch:n}))))}i(wr,"Quotes");import{darkTheme as rE,styled as fh}from"@rango-dev/ui";var gh=fh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${rE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),hh=fh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var cE=100;function Tc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=lE(!1),l=s?"":"is-hidden",{config:u}=T(),p=u?.variant==="full-expanded",f=To();return sE(()=>{let h=null;return a?h=setTimeout(()=>{c(!0)},cE):(c(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),po.createElement(gh,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${l} ${Bi()} widget-expanded-quotes-container`,id:Qe.EXPANDED_BOX_ID},po.createElement(aE,{title:iE.t("Routes"),suffix:po.createElement(po.Fragment,null,po.createElement(ua,{container:f}),po.createElement(Bo,{container:f,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),po.createElement(hh,null,po.createElement(wr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:To(),onClickOnQuote:n,fullExpandedMode:p})))}i(Tc,"ExpandedQuotes");import{i18n as wh}from"@lingui/core";import{SwapInput as bh}from"@rango-dev/ui";import mE from"bignumber.js";import br from"react";import{ReverseIcon as dE}from"@rango-dev/ui";import vc from"react";import{keyframes as pE,styled as yh}from"@rango-dev/ui";var kc=450,uE=pE({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Sh=yh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Ch=yh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${uE} ${kc}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function wc(){let t=O.use.switchFromAndTo();return vc.createElement(Sh,null,vc.createElement(Ch,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},kc),t()}},vc.createElement(dE,{size:12})))}i(wc,"SwitchFromAndToButton");import{styled as Th}from"@rango-dev/ui";var kh=Th("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),vh=Th("div",{position:"relative"});function bc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:u,sanitizeInputAmount:p,inputAmount:f,inputUsdValue:h,outputAmount:g,outputUsdValue:m,selectedQuote:d}=O(),{connectedWallets:y,getBalanceFor:C}=T(),S=a?C(a):null,k=Yr(S)?.amount??"0",v=S?new mE(S.amount).shiftedBy(-S.decimals):de,x=!!s&&eu(y,s.name),I=!Es(d,f,h),A=!Es(d,f,m),E=!h||!m||!m.gt(0)?null:zt(h.toString(),m.toString());return br.createElement(kh,null,br.createElement(vh,null,br.createElement(bh,{label:wh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:u,onInputBlur:p,balance:k,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:f,usdValue:I?void 0:_(h,4,4),realUsdValue:I?void 0:h?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:N(),onSelectMaxBalance:()=>{let b=_(v,S?.decimals),w=S?.amount?b.split(",").join(""):"";u(w)},anyWalletConnected:y.length>0}),br.createElement(wc,null)),br.createElement(bh,{sharpBottomStyle:!r&&(!!d||e),label:wh.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:_(zt(h,m),2,2),warningLevel:Qt(E??0),price:{value:_(g,6,6),usdValue:A?void 0:_(m,4,4),realValue:g?.toString(),realUsdValue:A?void 0:m?.toString(),error:A?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(bc,"Inputs");import{useCallback as fE,useEffect as gE,useRef as hE,useState as yE}from"react";function xh(){let{fetch:t,loading:e,cancelFetch:o}=ea({request:async(n,r)=>await at().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(xh,"useFetchAllQuotes");var SE=600;function da({refetchQuote:t}){let{fetch:e,cancelFetch:o}=xh(),{excludeLiquiditySources:n,routing:r}=T().config,{connectedWallets:a}=T(),c=a.some(le=>le.isContractWallet),{fromToken:l,toToken:u,inputAmount:p,inputUsdValue:f,selectedQuote:h,sortStrategy:g,resetQuote:m,error:d,warning:y,setSelectedQuote:C,updateQuotePartialState:S}=O(),{slippage:k,customSlippage:v,affiliatePercent:x,affiliateRef:I,affiliateWallets:A,fetchStatus:E}=T(),b=T().getLiquiditySources(),w=T().getDisabledLiquiditySources(),B=T().excludeLiquiditySources(),{findToken:P}=T(),[$,q]=yE(!0),R=hE(p),K=v??k,ae=!l||!u||Ft(l,u)||!Ln(p),re=i(le=>{q(le)},"resetState"),Q=i(le=>{let{fromToken:ue,toToken:se,inputAmount:Ze,liquiditySources:H,excludeLiquiditySources:W,disabledLiquiditySources:G,slippage:j,affiliateRef:X,affiliatePercent:fe,affiliateWallets:Ue}=le;if($||re(!0),!ae&&ue&&se){m();let Je=wd({fromToken:ue,toToken:se,inputAmount:Ze,liquiditySources:H,excludeLiquiditySources:W,disabledLiquiditySources:G,wallets:a,slippage:j,affiliateRef:X,affiliatePercent:fe,affiliateWallets:Ue,contractCall:c});jo("experimental",r)&&(Je.experimental=!0),jo("avoidNativeFee",r)&&(Je.avoidNativeFee=!0),jo("enableCentralizedSwappers",r)&&(Je.enableCentralizedSwappers=!0),r?.maxLength&&(Je.maxLength=r.maxLength),e(Je).then(be=>{let ze=hi(g,be.results),Rt=ud(h,ze,be.requestAmount);q(!1),S("quotes",be),C(Rt),ta({diagnosisMessages:be.diagnosisMessages,requestId:Rt?.requestId||"",swaps:Rt?.swaps});let yo=Rt&&pn({currentQuote:Rt,userSlippage:K,findToken:P});S("warning",yo)}).catch(be=>{let{error:ze}=oa(be);(ze?.type===0||ze?.type===1)&&m(),ze?.type!==2&&(S("error",ze),q(!1))})}},"fetch"),ee=fE(qr(le=>{Q(le)},SE),[ae]);return gE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(ae){q(!1),(h||d||y)&&m();return}if(!Ln(p)&&f?.eq(0)){re(!1),o();return}m(),re(!0);let le=Q;return R.current&&R.current!=p&&(le=ee),R.current=p,le({inputAmount:p,fromToken:l,toToken:u,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:K,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),o},[E,p,l?.symbol,l?.address,l?.blockchain,u?.symbol,u?.address,u?.blockchain,ae,b?.length,n,w.length,K,I,x,c,JSON.stringify(A)]),{fetch:()=>Q({inputAmount:p,fromToken:l,toToken:u,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:K,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),loading:$}}i(da,"useSwapInput");function Eh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Te.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Eh,"emitPreventableEvent");var xE=kE("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),EE=300;function Nh(){let t=bE(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:u,resetQuoteWallets:p,setQuoteWarningsConfirmed:f,updateQuotePartialState:h}=O(),[g,m]=Ah(!1),{isLargeScreen:d,isExtraLargeScreen:y}=fn(),{fetch:C,loading:S}=da({refetchQuote:a}),{config:k,fetchStatus:v,connectedWallets:x,customSlippage:I,slippage:A,setSlippage:E,setCustomSlippage:b}=T(),{isActiveTab:w}=te(),[B,P]=Ah(!1),q=Xo(I!==null?I:A),K=Cd({fetchMetaStatus:v,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),L=su(d,y,k?.variant),ae=!!n&&!!e&&!!o&&new wE(n).gt(0)&&!Bd(e,o),re=ae&&v==="success"&&S,Q=q?.quoteValidation||c,ue=(!L||L&&l?.results.length)&&(Q||s),se=!!e&&!!o,Ze=se&&!!q,H=(r||s)&&!B?C:void 0,W=i(X=>{L&&g?(m(!1),setTimeout(()=>{t(X)},EE)):t(X)},"onHandleNavigation"),G=i(X=>{r?.requestId!==X.requestId&&(P(!1),u(X))},"onClickOnQuote"),j=i(X=>{if(X){if(Jr.includes(X)){E(X),b(null);return}b(X)}},"onChangeSlippage");return Ih(()=>{p(),h("refetchQuote",!0)},[]),Ih(()=>{m(ae)},[ae]),Se.createElement(xE,null,Se.createElement(ie,{height:"auto",footer:Se.createElement(TE,{id:`widget-swap-${K.action}-btn`,type:"primary",size:"large",disabled:K.disabled||!w,prefix:K.action==="confirm-warning"&&Se.createElement(vE,null),fullWidth:!0,onClick:()=>{K.action==="connect-wallet"?Eh({type:"clickConnectWallet"},()=>W(F.wallets)):K.action==="confirm-warning"?P(!0):W(F.confirmSwap)}},K.title),header:{onWallet:()=>{W(F.wallets)},hasBackButton:!1,title:k.title||CE.t("Swap"),suffix:Se.createElement(Bo,{hidden:L?["refresh"]:void 0,onClickRefresh:H,onClickHistory:()=>W(F.swaps),onClickSettings:()=>{W(F.settings)}})}},Se.createElement(ce,null,Se.createElement(bc,{fetchingQuote:re,fetchMetaStatus:v,isExpandable:L,onClickToken:X=>{W(X==="from"?F.fromSwap:F.toSwap)}}),Se.createElement(xc,{size:"2"}),L?null:Se.createElement(Mo,{quote:r,loading:re,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:Q,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{h("refetchQuote",!1),W(F.routes)}:void 0}),se&&Se.createElement(Se.Fragment,null,Se.createElement(xc,{size:8}),Se.createElement(yc,{quoteError:s,quoteWarning:Q,fromToken:e,toToken:o,quote:r,loading:re})),ue?Se.createElement(Se.Fragment,null,Se.createElement(rr,{warning:Q,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:C,showWarningModal:B,confirmationDisabled:!w,onOpenWarningModal:()=>P(!0),onCloseWarningModal:()=>P(!1),onChangeSlippage:j,onConfirmWarningModal:()=>{P(!1),f(!0),W(F.confirmSwap)},onChangeSettings:()=>W(F.settings)})):null,Ze&&Se.createElement(Se.Fragment,null,Se.createElement(xc,{size:"10"}),Se.createElement(oh,{onChangeSettings:()=>W(F.settings)})),Se.createElement(mc,null))),L?Se.createElement(Tc,{loading:re,onClickOnQuote:G,fetch:C,onClickRefresh:H,isVisible:g}):null)}i(Nh,"Home");import{i18n as Bh}from"@lingui/core";import{Alert as IE,Divider as AE,List as NE,ListItemButton as BE,Radio as WE,RadioRoot as LE,Typography as ME}from"@rango-dev/ui";import _t from"react";function uo(){let{setLanguage:t,language:e,config:o}=T(),n=fu,r=o?.language||Yo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Yo),resetLanguage:()=>t(null)}}i(uo,"useLanguage");function Wh(){let{activeLanguage:t,changeLanguage:e,languages:o}=uo(),n=Ge(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:_t.createElement(ME,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:_t.createElement(WE,{value:s}),start:_t.createElement(l,null)}});return _t.createElement(ie,{header:{title:Bh.t("Language")}},_t.createElement(ce,null,_t.createElement(IE,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),_t.createElement(AE,{size:"8"}),_t.createElement(LE,{value:t},_t.createElement(NE,{type:_t.createElement(BE,{title:Bh.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(Wh,"LanguagePage");import{i18n as Yt}from"@lingui/core";import{Button as FE,Checkbox as OE,Image as UE,ListItemButton as zE,NotFound as QE,Typography as qE}from"@rango-dev/ui";import Ye,{useState as HE}from"react";import{Checkbox as DE,Skeleton as Mh}from"@rango-dev/ui";import Er from"react";import{styled as Ec}from"@rango-dev/ui";var xr=Ec("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Ic=Ec("div",{width:80,display:"flex",justifyContent:"flex-end"}),Ac=Ec("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as PE,styled as _E}from"@rango-dev/ui";var Lh=_E(PE,{height:61});var $E=30;function Nc(){return Er.createElement(xr,null,Array.from(Array($E),(t,e)=>Er.createElement(Lh,{hasDivider:!0,key:e,start:Er.createElement(Mh,{variant:"circular",width:35,height:35}),title:Er.createElement(Mh,{variant:"text",size:"large",width:90}),end:Er.createElement(DE,{checked:!1})})))}i(Nc,"LoadingLiquiditySourceList");function Bc({sourceType:t}){let e=T().fetchStatus,o=T().swappers(),n=T().getDisabledLiquiditySources(),[r,a]=HE(""),s=T().toggleLiquiditySource,c=T().isInCampaignMode(),l=ti(o,n),u={Exchanges:Yt.t("Exchanges"),Bridges:Yt.t("Bridges")},p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&p.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let f=l.filter(C=>p.includes(C.type)),h=f.length===f.filter(C=>C.selected).length,g=i(()=>{f.forEach(C=>{h?s(C.groupTitle):C.selected||s(C.groupTitle)})},"toggleAllSources"),m=f.map(C=>{let{selected:S,groupTitle:k,logo:v,id:x,...I}=C;return{id:`widget-setting-liquidity-source-${Qp(x.toLowerCase())}-item-btn`,start:Ye.createElement(UE,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:Ye.createElement(OE,{checked:S,disabled:c}),title:Ye.createElement(qE,{variant:"title",size:"xmedium"},Yt.t(k)),selected:S,groupTitle:k,logo:v,...I}}),d=i(C=>{let S=C.target.value;a(S)},"handleSearch"),y=m;return r&&(y=m.filter(C=>Nt(C.groupTitle,r))),Ye.createElement(ie,{header:{title:Yt.t(t),suffix:Ye.createElement(Ic,null,Ye.createElement(FE,{id:`widget-liquidity-source-${h?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:g},h?Yt.t("Deselect all"):Yt.t("Select all")))}},Ye.createElement(ce,{view:!0},Ye.createElement(Et,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:Yt.t("Search {sourceType}",{sourceType:u[t]}),onChange:d}),e==="loading"&&Ye.createElement(Nc,null),!y.length&&r?Ye.createElement(Ac,null,Ye.createElement(QE,{title:Yt.t("No results found"),description:Yt.t("Try using different keywords")})):e==="success"&&Ye.createElement(xr,{disabled:c,className:"widget-liquidity-source-list"},y.map(C=>{let{groupTitle:S,...k}=C;return Ye.createElement(Ye.Fragment,{key:C.id},Ye.createElement(zE,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Bc,"LiquiditySourcePage");import{i18n as GE}from"@lingui/core";import ma from"react";import{useNavigate as VE}from"react-router-dom";function Ph(){let t=VE(),e=Ge(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:c,loading:l}=da({refetchQuote:n}),u=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),p=`../${F.settings}`,f=`../${F.wallets}`;return ma.createElement(ie,{header:{onWallet:()=>{t(f),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:GE.t("Routes"),suffix:ma.createElement(Bo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(p),a("refetchQuote",!0)}})}},ma.createElement(ce,null,ma.createElement(wr,{fetch:c,loading:l,onClickOnQuote:u})))}i(Ph,"RoutesPage");import{i18n as zh}from"@lingui/core";import{Divider as Qh,getCategoriesCount as oI,SelectableCategoryList as nI}from"@rango-dev/ui";import Zt,{useState as qh}from"react";import{useNavigate as rI}from"react-router-dom";import{i18n as Wc}from"@lingui/core";import{Divider as YE,Image as ZE,ListItemButton as JE,NotFound as RE,Typography as Uh}from"@rango-dev/ui";import dt,{useEffect as eI,useState as tI}from"react";var _h=i((t,e,o)=>t.filter(n=>Hr(n.type,o)).filter(n=>rt(n.name,e)||rt(n.displayName,e)),"filterBlockchains");import{ImageContainer as KE,styled as Dh}from"@rango-dev/ui";var $h=Dh("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),fa=Dh(ll,{padding:0,margin:0,listStyle:"none",[`& ${KE}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as jE,Skeleton as Fh}from"@rango-dev/ui";import ga from"react";var XE=20;function Oh(){return ga.createElement(fa,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(XE),t=>ga.createElement(jE,{key:t,hasDivider:!0,start:ga.createElement(Fh,{variant:"circular",width:35,height:35}),title:ga.createElement(Fh,{variant:"text",size:"large",width:90})})))}i(Oh,"LoadingBlockchainList");function Lc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=tI(e),{fetchStatus:l}=T();eI(()=>{c([..._h(e,o,r)])},[e,o,r]);let u=i(()=>!s.length&&o?dt.createElement(RE,{title:Wc.t("No results found"),description:Wc.t("Try using different keywords")}):dt.createElement(fa,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(p=>dt.createElement(JE,{key:`${p.name}-${p.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(p),start:dt.createElement(ZE,{src:p.logo,size:30}),title:dt.createElement(Uh,{variant:"title",size:"medium"},p.displayName),id:p.name}))),"renderList");return dt.createElement(dt.Fragment,null,a&&dt.createElement(dt.Fragment,null,dt.createElement(Uh,{variant:"label",size:"large"},Wc.t("Select Chain")),dt.createElement(YE,{size:4})),dt.createElement($h,null,l==="loading"&&dt.createElement(Oh,null),l==="success"&&u()))}i(Lc,"BlockchainList");function ha(t){let{type:e}=t,o=Ge(),[n,r]=qh(""),[a,s]=qh("ALL"),c=O.use.setToBlockchain(),l=O.use.setFromBlockchain(),{fetchStatus:u}=T(),p=rI(),f=T().blockchains({type:e}),h=oI(f),g=!t.hideCategory&&h!==1;return Zt.createElement(ie,{header:{title:zh.t("Select Chain")}},Zt.createElement(ce,{view:!0},g&&Zt.createElement(Zt.Fragment,null,Zt.createElement(nI,{setCategory:s,category:a,blockchains:f,isLoading:u==="loading"}),Zt.createElement(Qh,{size:24})),Zt.createElement(Et,{value:n,autoFocus:!0,placeholder:zh.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Zt.createElement(Qh,{size:16}),Zt.createElement(Lc,{list:f,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:m=>{e==="custom-token"?p(`..?blockchain=${m.name}`,{replace:!0}):(e==="source"?l(m):c(m),o())}})))}i(ha,"SelectBlockchainPage");import{i18n as Ca}from"@lingui/core";import{Divider as Yh,Spinner as CI}from"@rango-dev/ui";import mo,{useEffect as TI,useState as kI}from"react";import{useNavigate as vI}from"react-router-dom";import{i18n as _c}from"@lingui/core";import{BlockchainsChip as ya,Divider as Kh,Image as jh,Skeleton as pI,Tooltip as uI,Typography as Dc}from"@rango-dev/ui";import xe from"react";import{useEffect as sI}from"react";var Hh=["ETH","COSMOS","OSMOSIS"];function Mc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(iI),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 u=n[l];s=s.filter(p=>u.name!==p)}}n.sort(aI(s)),r=n.splice(a)}return{list:n,more:r}}i(Mc,"prepare");function iI(t,e){let o=Hh,n=o.findIndex(c=>c===t.name),r=o.findIndex(c=>c===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(iI,"sortByMostUsedBlockchains");function aI(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(aI,"generateSortByPreferredBlockchainsFor");function Gh(t,e){return!!e.list.find(o=>o.name===t)}i(Gh,"isInVisibleList");function Pc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=T();sI(()=>{if(e?.selected){let a=Mc(t,o,e);Gh(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Mc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Pc,"usePrepareBlockchainList");import{styled as lI}from"@rango-dev/ui";var Vh=lI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var dI=6,mI=12;function $c(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=te(),c=Pc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=T(),u=O.use.resetToBlockchain(),p=O.use.resetFromBlockchain(),f=c.more.length>0,h=c.more.length===1,g=!h&&f;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(Kh,{size:12}),xe.createElement(Dc,{variant:"label",size:"large"},_c.t("Select Chain"))),xe.createElement(Kh,{size:12}),xe.createElement(Vh,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?dI:mI),(m,d)=>xe.createElement(pI,{key:d,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(ya,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?p():u()}},xe.createElement(Dc,{variant:"body",size:"xsmall",color:"secondary500"},_c.t("All"))),c.list.map(m=>xe.createElement(uI,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:N()},xe.createElement(ya,{className:"widget-blockchains-section-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},xe.createElement(jh,{src:m.logo,size:30})))),h?xe.createElement(ya,{className:"widget-blockchains-section-only-item-btn",key:c.more[0].name,selected:!!n&&n.name===c.more[0].name,onClick:()=>r(c.more[0])},xe.createElement(jh,{src:c.more[0].logo,size:30})):null,g?xe.createElement(ya,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(Dc,{variant:"body",size:"xsmall",color:"secondary500"},_c._("More +{count}",{count:c.more.length}))):null)))}i($c,"BlockchainsSection");import{useCallback as gI,useRef as hI,useState as Fc}from"react";function Oc(){let t=T().blockchains(),e=hI(null),{customTokens:o}=T(),[n,r]=Fc(!1),[a,s]=Fc([]),[c,l]=Fc(null),u=i(async(h,g)=>{l(null),r(!0),s([]);try{let m=await at().searchCustomTokens({query:h,blockchain:g},{signal:e.current?.signal}),d=new Set(o().map(S=>Ut(S))),y=new Set(t.map(S=>S.name)),C=m.tokens.filter(S=>y.has(S.blockchain)&&!d.has(Ut(S)));s(C),r(!1)}catch(m){l(m instanceof Error?m.message:"something went wrong"),s([]),m?.name!=="CanceledError"&&r(!1)}},"fetch"),p=gI(qr((h,g)=>{e.current?.signal.aborted||u(h,g)},600),[t.length]);return{fetch:(h,g)=>{e.current=new AbortController,s([]),r(!0),p(h,g)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Oc,"useSearchCustomTokens");function Sa(t,e,o){return o&&t.length===1&&t[0].address===e?!1:t.length<20&&e.trim().length>=3}i(Sa,"shouldSearchForCustomTokens");function Xh(t,e,o,n,r){let a=[...t];return Sa(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(Xh,"prepareTokensList");function Ta(t){let{type:e}=t,o=vI(),n=Ge(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:u}=O(),{getBalanceFor:p}=T(),{fetch:f,loading:h,tokens:g,cancel:m}=Oc(),[d,y]=kI(""),C=e==="source"?r:a,S=C?.name??"",k=T().blockchains({type:e}),v=T().tokens({type:e,blockchain:S,searchFor:d,getBalanceFor:p}),x=Xh(v,g,d,h,C?.name),I=i(b=>{e==="source"?l(b):u(b)},"updateBlockchain"),A=i(b=>{e==="source"?s({token:b,meta:{blockchains:k}}):c({token:b,meta:{blockchains:k}})},"updateToken"),E={source:Ca.t("Source"),destination:Ca.t("Destination")};return TI(()=>(Sa(v,d,C?.name)&&f(d,C?.name??void 0),()=>{m()}),[v.length,d,C?.name]),mo.createElement(ie,{header:{title:Ca.t("Swap {type}",{type:E[e]})}},mo.createElement(ce,null,mo.createElement($c,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:b=>{I(b)}}),mo.createElement(Yh,{size:24}),mo.createElement(Et,{value:d,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:Ca.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>y(""),onChange:b=>y(b.target.value),suffix:Sa(v,d,C?.name)&&h?mo.createElement(CI,{size:12,color:"secondary"}):void 0}),mo.createElement(Yh,{size:16}),mo.createElement(hr,{list:x,selectedBlockchain:S,searchedFor:d,type:e,onChange:b=>{A(b);let w=k.find(B=>b.blockchain===B.name);w&&I(w),n()}})))}i(Ta,"SelectSwapItemsPage");import{i18n as qc}from"@lingui/core";import{Alert as XI,Button as YI,styled as ZI}from"@rango-dev/ui";import Fo from"react";import{useInRouterContext as JI,useSearchParams as RI}from"react-router-dom";import{i18n as oy}from"@lingui/core";import{Alert as EI,Divider as zc,InfoIcon as II,SlippageIcon as AI,TextField as NI,Tooltip as BI,Typography as ny}from"@rango-dev/ui";import Fe from"react";import{Chip as wI,styled as Ir,TextField as bI}from"@rango-dev/ui";var Zh=Ir("div",{paddingTop:"$5",padding:"$10 $5"}),Jh=Ir("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${bI}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Rh=Ir("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ka=Ir("div",{maxWidth:"280px",padding:"$10"}),ey=Ir(wI,{width:"61px",flexShrink:0});import{i18n as Uc}from"@lingui/core";import{Typography as xI}from"@rango-dev/ui";import Ar from"react";function ty(){return Ar.createElement(ka,null,Ar.createElement(xI,{variant:"label",size:"medium",color:"neutral700"},Uc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Ar.createElement("br",null),Ar.createElement("br",null),Ar.createElement("b",null,Uc.t("Warning")),":\xA0",Uc.t("This setting is applied to each step (e.g. 1Inch, Thorchain, etc.), meaning only that specific step will be reverted, not the entire route.")))}i(ty,"SlippageTooltipContent");function Qc(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=T(),r=o!==null?Xo(o):null,a=i(l=>{let u=l.target.value,p=parseFloat(u);if(isNaN(p))return n(null);let f=p;p>Dn&&(f=Dn),n(f)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let u=l.target,p=u.value;Hp(p)||(u.value=p.slice(0,-1))},"onInput");return Fe.createElement(Zh,null,Fe.createElement(Rh,null,Fe.createElement(AI,{size:16,color:"gray"}),Fe.createElement(zc,{direction:"horizontal",size:4}),Fe.createElement(ny,{variant:"title",size:"xmedium"},oy.t("Slippage tolerance per swap")),Fe.createElement(zc,{direction:"horizontal",size:4}),Fe.createElement(BI,{container:N(),side:"top",sideOffset:4,content:Fe.createElement(ty,null)},Fe.createElement(II,{color:"gray"}))),Fe.createElement(Jh,null,Jr.map((l,u)=>{let p=`slippage-${u}`;return Fe.createElement(ey,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:p,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),Fe.createElement(NI,{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&&Fe.createElement(ny,{variant:"body",size:"small"},"%"),placeholder:oy.t("Custom")})),r&&Fe.createElement(Fe.Fragment,null,Fe.createElement(zc,{size:10}),Fe.createElement(EI,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(Qc,"Slippage");import{i18n as Ct}from"@lingui/core";import{AutoThemeIcon as ry,BridgesIcon as WI,ChevronRightIcon as va,DarkModeIcon as iy,Divider as Nr,ExchangeIcon as LI,InfinityIcon as MI,InfoIcon as PI,LanguageIcon as _I,LightModeIcon as ay,List as DI,ListItem as $I,ListItemButton as FI,Skeleton as OI,styled as UI,Switch as zI,Tabs as QI,TargetIcon as qI,Tooltip as HI,Typography as nt}from"@rango-dev/ui";import D from"react";import{useNavigate as GI}from"react-router-dom";var VI=UI("div",{width:"202px",height:"$40"}),KI=[{id:"light",icon:D.createElement(ay,{color:"black",size:24}),tooltip:D.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Light"))},{id:"dark",icon:D.createElement(iy,{color:"black",size:24}),tooltip:D.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Dark"))},{id:"auto",icon:D.createElement(ry,{color:"black",size:24}),tooltip:D.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Auto"))}],jI=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(ry,{...e});case"dark":return D.createElement(iy,{...e});default:return D.createElement(ay,{...e})}},"getThemeIcon");function sy(){let t=GI(),{theme:e}=T().config,{setTheme:o,theme:n}=T(),{activeLanguage:r,languages:a}=uo(),s=a.find(L=>L.local===r)?.label,c=T().fetchStatus,l=T().swappers(),u=T().getDisabledLiquiditySources(),{config:{features:p}}=T(),f=T().customTokens(),h=Re("theme",p),g=Re("liquiditySource",p),m=Re("language",p),d=Re("customTokens",p),y=T().infiniteApprove,C=T().toggleInfiniteApprove,S=ti(l,u),k=S.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),v=k.length,x=k.filter(L=>L.selected).length,I=S.filter(L=>L.type==="DEX"),A=I.length,E=I.filter(L=>L.selected).length,b=i((L,ae)=>{switch(c){case"loading":return D.createElement(OI,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(nt,{variant:"body",size:"medium",color:"$error500"},Ct.t("Loading failed"));default:return D.createElement(nt,{variant:"body",size:"medium"},`${L} / ${ae}`)}},"handleSwapperEndItem"),w={id:"widget-setting-bridge-item-btn",title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Bridges")),end:D.createElement(D.Fragment,null,b(x,v),D.createElement(Nr,{direction:"horizontal",size:8}),D.createElement(va,{color:"black"})),onClick:()=>t(F.bridges),start:D.createElement(WI,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Exchanges")),end:D.createElement(D.Fragment,null,b(E,A),D.createElement(Nr,{direction:"horizontal",size:8}),D.createElement(va,{color:"black"})),start:D.createElement(LI,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},P={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(nt,{variant:"body",size:"medium"},`${f.length}`),D.createElement(Nr,{direction:"horizontal",size:8}),D.createElement(va,{color:"black"})),start:D.createElement(qI,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},$={id:"widget-setting-language-item-btn",title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Language")),start:D.createElement(_I,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(nt,{variant:"body",size:"medium"},s),D.createElement(Nr,{direction:"horizontal",size:8}),D.createElement(va,{color:"black"})),onClick:()=>t(F.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Infinite approval")),D.createElement(Nr,{direction:"horizontal",size:4}),D.createElement(HI,{side:"top",sideOffset:4,container:N(),content:D.createElement(ka,null,D.createElement(nt,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,Ct.t("Warning")),":\xA0",Ct.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(PI,{color:"gray"}))),start:D.createElement(MI,{color:"gray",size:16}),end:D.createElement(zI,{checked:y}),onClick:C},R={id:"widget-setting-theme-item-btn",type:D.createElement($I,null),title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Theme")),end:D.createElement(VI,null,D.createElement(QI,{container:N(),items:KI,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:jI(n)},K=g?[]:[w,B];return d||K.push(P),m||K.push($),K.push(q),!e?.singleTheme&&!h&&K.push(R),D.createElement(DI,{type:D.createElement(FI,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:K})}i(sy,"SettingsLists");var eA=ZI("div",{paddingLeft:"$8"});function ly(){let{isInCampaignMode:t,updateCampaignMode:e}=T(),o=t(),[,n]=RI(),r=JI(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Fo.createElement(ie,{header:{title:qc.t("Settings")}},Fo.createElement(ce,null,o&&Fo.createElement(XI,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:qc.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:Fo.createElement(eA,null,Fo.createElement(YI,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},qc.t("Reset")))}),Fo.createElement(Qc,null),Fo.createElement(sy,null)))}i(ly,"SettingsPage");import{i18n as HA}from"@lingui/core";import{cancelSwap as GA}from"@rango-dev/queue-manager-rango-preset";import{useManager as VA}from"@rango-dev/queue-manager-react";import{Alert as KA}from"@rango-dev/ui";import rp from"react";import{useParams as jA}from"react-router-dom";import{i18n as mt}from"@lingui/core";import{getCurrentNamespaceOfOrNull as xA,getCurrentStep as EA,getRelatedWalletOrNull as IA}from"@rango-dev/queue-manager-rango-preset";import{Button as Hy,CopyIcon as AA,Divider as NA,DoneIcon as BA,IconButton as WA,QuoteCost as LA,RangoExplorerIcon as MA,StepDetails as PA,Tooltip as Gy,Typography as Oo,useCopyToClipboard as _A}from"@rango-dev/ui";import{useWallets as DA}from"@rango-dev/wallets-react";import Vy from"bignumber.js";import{PendingSwapNetworkStatus as Wa}from"rango-types";import Z,{useEffect as Ky,useRef as $A,useState as jy}from"react";import{useNavigate as FA}from"react-router-dom";import{i18n as fo}from"@lingui/core";var tA=[fo.t("Sunday"),fo.t("Monday"),fo.t("Tuesday"),fo.t("Wednesday"),fo.t("Thursday"),fo.t("Friday"),fo.t("Saturday")];function cy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?fo.t("Today"):`${tA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(cy,"timeSince");function py(t){return t.finishTime?cy(parseInt(t.finishTime)):cy(parseInt(t.creationTime))}i(py,"getSwapDate");import{PendingSwapNetworkStatus as Ia}from"rango-types";import Aa from"react";import{i18n as wa}from"@lingui/core";import{Button as uy,Divider as Hc,MessageBox as oA}from"@rango-dev/ui";import go from"react";var dy=i(({onCancel:t,onClose:e})=>go.createElement(go.Fragment,null,go.createElement(Hc,{size:20}),go.createElement(oA,{type:"error",title:wa.t("Cancel Swap"),description:wa.t("Are you sure you want to cancel this swap?")}),go.createElement(Hc,{size:32}),go.createElement(uy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},wa.t("Yes, Cancel it")),go.createElement(Hc,{size:12}),go.createElement(uy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},wa.t("No, Continue"))),"CancelContent");import{i18n as ba}from"@lingui/core";import{Button as my,Divider as Gc,MessageBox as nA,Typography as rA}from"@rango-dev/ui";import Jt from"react";var fy=i(({onDelete:t,onClose:e})=>Jt.createElement(Jt.Fragment,null,Jt.createElement(Gc,{size:20}),Jt.createElement(nA,{type:"error",title:ba.t("Delete Transaction"),description:ba.t("Are you sure you want to delete this swap?")}),Jt.createElement(Gc,{size:32}),Jt.createElement(my,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},ba.t("Yes, Delete it")),Jt.createElement(Gc,{size:12}),Jt.createElement(my,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Jt.createElement(rA,{variant:"title",size:"medium",color:"primary"},ba.t("No, Cancel")))),"DeleteContent");import{i18n as xa}from"@lingui/core";import{PendingSwapNetworkStatus as Ea}from"rango-types";var Vc={[Ea.WaitingForNetworkChange]:{type:"loading",title:xa.t("Change Network")},[Ea.WaitingForConnectingWallet]:{type:"warning",title:xa.t("Connect Wallet")},[Ea.NetworkChanged]:{type:"success",title:xa.t("Network Changed")},[Ea.NetworkChangeFailed]:{type:"warning",title:xa.t("Network Change Failed")}};import{warn as iA}from"@rango-dev/logging-core";import{getCurrentStep as aA,getRelatedWalletOrNull as sA}from"@rango-dev/queue-manager-rango-preset";import{MessageBox as lA,Wallet as cA}from"@rango-dev/ui";import{useWallets as pA}from"@rango-dev/wallets-react";import En,{useState as uA}from"react";import{styled as Kc}from"@rango-dev/ui";var gy=Kc("div",{display:"flex",justifyContent:"center"}),Gj=Kc("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),hy=Kc("img",{width:"100%"});var yy=i(t=>{let{type:e,title:o,swap:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[c,l]=uA(),{getWalletInfo:u,state:p}=pA(),f=aA(n),h=f?sA(n,f):null,g=f?.fromBlockchain,m=h?.walletType,d=m?Mn(p(m)):null,y=m?u(m):null,C=a&&!!m&&!!d&&!!y,{list:S}=Tt(),k=i(()=>{if(m){let v=S.find(x=>x.type===m);v?l(v):iA(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${v}`))}},"handleWalletItemClick");return En.createElement(En.Fragment,null,En.createElement(lA,{type:e,title:o,description:r}),C&&En.createElement(gy,null,En.createElement(cA,{container:N(),title:y.name,image:y.img,type:m,state:d,link:y.installLink,disabled:s,onClick:k})),En.createElement(xo,{id:"widget-swap-details-modal",wallet:c,onClose:()=>{l(void 0)},options:{defaultSelectedChains:g?[g]:void 0}}))},"WalletStateContent");function jc(t){let{state:e,onClose:o,onDelete:n,onCancel:r,swap:a,message:s,walletButtonDisabled:c}=t,l=e===Ia.WaitingForNetworkChange||e===Ia.WaitingForConnectingWallet||e===Ia.NetworkChanged;return Aa.createElement(J,{id:"widget-swap-details-modal",open:!!e,onClose:o,container:document.getElementById(Qe.SWAP_BOX_ID)||document.body},l&&Aa.createElement(yy,{type:Vc[e].type,title:Vc[e].title,swap:a,message:s,walletButtonDisabled:c,showWalletButton:e!==Ia.WaitingForNetworkChange}),e==="delete"&&Aa.createElement(fy,{onClose:o,onDelete:n}),e==="cancel"&&Aa.createElement(dy,{onClose:o,onCancel:r}))}i(jc,"SwapDetailsModal");import{i18n as Br}from"@lingui/core";import{Button as Xc,Divider as Wr,MessageBox as Ty,TokenAmount as dA,Typography as ky}from"@rango-dev/ui";import Ce from"react";import{Link as mA,useNavigate as fA}from"react-router-dom";var Sy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Cy="/profile";function Yc(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:u,percentageChange:p,description:f,diagnosisUrl:h}=t,g=fA(),{showProfileBanner:m}=te();return Ce.createElement(J,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(Qe.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement(Ty,{type:"success",title:Br.t("Swap Successful")},Ce.createElement(dA,{direction:"vertical",tooltipContainer:N(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:u,percentageChange:p}),Ce.createElement(Wr,{size:12}),Ce.createElement(ky,{variant:"body",size:"medium",color:"neutral700",align:"center"},f)):Ce.createElement(Ty,{type:"error",title:Br.t("Transaction Failed"),description:f}),Ce.createElement(Wr,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,m&&Ce.createElement(Ce.Fragment,null,Ce.createElement(mA,{to:Cy},Ce.createElement(hy,{src:Sy,alt:"Profile Banner"})),Ce.createElement(Wr,{size:30})),Ce.createElement(Xc,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{g("../../")}},Br.t("Done"))),Ce.createElement(Wr,{size:12}),h&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Xc,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},Br.t("Diagnosis")),Ce.createElement(Wr,{size:12})),Ce.createElement(Xc,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement(ky,{variant:"title",size:"medium",color:"primary"},Br.t("See Details"))))}i(Yc,"SwapDetailsCompleteModal");import bA from"react";import{i18n as TA}from"@lingui/core";import{Alert as Uy,IconButton as kA,LinkIcon as vA}from"@rango-dev/ui";import ho,{Fragment as wA}from"react";import{Alert as hA,ChevronDownIcon as yA,IconButton as SA}from"@rango-dev/ui";import An,{useState as CA}from"react";import{css as Lr,darkTheme as vy,styled as Dt,Typography as gA}from"@rango-dev/ui";var wy=Dt(ce,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${vy} &`]:{color:"$secondary500"}}}}}),by=Dt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),xy=Dt("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),Ey=Dt("div",{padding:"$0 $20 $20 $20"}),M3=Dt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Iy=Dt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),P3=Dt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),In=Lr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${vy} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Ay=Lr({padding:"$5 0"}),Na=Lr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Ny=Lr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),By=Lr({width:"100%",padding:"0 $20 $10"}),Wy=Dt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Ly=Dt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ba=Dt(gA,{wordBreak:"break-word"});import{styled as Zc}from"@rango-dev/ui";var My=Zc("div",{display:"flex",flexDirection:"column",gap:"$10"}),Py=Zc("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),_y=Zc("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Dy(t){let{message:e}=t,[o,n]=CA(!1);return An.createElement(hA,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&An.createElement(SA,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},An.createElement(Py,{rotated:o},An.createElement(yA,{size:12,color:"gray"}))),footer:An.createElement(_y,{open:o},An.createElement(Ba,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Dy,"FailedAlert");import{i18n as $y}from"@lingui/core";import{Alert as Jc,Button as Fy}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Rc}from"rango-types";import Mr from"react";function Oy(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Mr.createElement(Jc,{type:"warning",id:"widget-swap-details-change-network-alert",title:n.shortMessage,action:Mr.createElement(Fy,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Rc.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},$y.t("Change"))}):r===Rc.WaitingForConnectingWallet?Mr.createElement(Jc,{type:"warning",title:n.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Mr.createElement(Fy,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Rc.WaitingForConnectingWallet)}},$y.t("Connect"))}):Mr.createElement(Jc,{id:"widget-swap-details-short-alert",type:"warning",title:n.shortMessage})}i(Oy,"WarningAlert");function ep(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,c=jn(a),l=a.status==="waitingForApproval"&&!c,u=a.status==="running"&&!c,p=u&&!s||l&&!a.explorerUrl?.length;return ho.createElement(My,null,a.explorerUrl?.map((f,h,g)=>{let m=h+f.url,d=h===g.length-1,y=(d&&u||l)&&!p,C=d&&a.status==="failed";return ho.createElement(wA,{key:m},ho.createElement(Uy,{id:"widget-swap-details-tx-alert",type:d&&(y&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:TA.t("View transaction"),action:f.url&&ho.createElement(kA,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},ho.createElement(vA,{size:12}))}))}),p&&ho.createElement(Uy,{id:"widget-swap-details-loading-alert",type:"loading",title:r.shortMessage}),a.status!=="failed"&&c&&ho.createElement(Oy,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&ho.createElement(Dy,{message:r}))}i(ep,"SwapDetailsAlerts");var zy=2e3;var Qy=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:ft(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:_(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ft(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:_(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Nn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:ft(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:ft(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Nn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:bA.createElement(ep,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function qy(t){if(jn(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(qy,"getStepState");function tp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=DA(),l=T().blockchains(),u=T().swappers(),{findToken:p}=T(),f=O.use.retry(),h=te.use.isActiveTab(),g=FA(),[m,d]=_A(zy),y=$A(null),[C,S]=jy(null),[k,v]=jy(null),x=i(()=>{r(),S(null)},"onCancel"),I=Ae.use.getNotifications(),A=Ae.use.removeNotification(),E=I(),b=EA(e),w=b?.networkStatus;Ky(()=>{E.find(ze=>ze.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),A(e.requestId)):k&&v(null))},[e.status,e.requestId]),Ky(()=>{L?S(Wa.WaitingForNetworkChange):w===Wa.WaitingForConnectingWallet||w===Wa.NetworkChanged?S(w):S(null)},[w]);let B=Id(e),P=b?xA(e,b):null,$=b?IA(e,b):null,q=py(e),R=Ad(e),K=i(be=>!!c(be)?.mobileWallet,"isMobileWallet"),L=w===Wa.WaitingForNetworkChange&&!!P&&!!$?.walletType&&(K($.walletType)||a($.walletType,P.network)),ae=L?s.bind(null,$.walletType,[{namespace:P.namespace,network:P.network}]):void 0,re=Ed(e,b,c),Q=Qy({swap:e,switchNetwork:ae,showNetworkModal:w,setNetworkModal:S,message:re,blockchains:l,swappers:u}),ee=Q.length,[le,ue]=[e.steps[0],e.steps[ee-1]],se=ue.outputAmount||ue.expectedOutputAmountHumanReadable,Ze=e.steps.reduce((be,ze)=>be+parseFloat(ze.feeInUsd||""),0),H=e.steps.find(be=>be.diagnosisUrl)?.diagnosisUrl,W=_(parseFloat(se||"0")*(ue.toUsdPrice||0),4,4),G=_(parseFloat(e.inputAmount)*(le.fromUsdPrice||0),4,4),j=se?new Vy(se).multipliedBy(ue.toUsdPrice||0).toString():"",X=new Vy(e.inputAmount).multipliedBy(le.fromUsdPrice||0).toString(),fe=zt(G,W),Ue=re.detailedMessage.content||re.shortMessage,Je=e.status==="success"?mt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:_(se,6,6),token:Q[ee-1].to.token.displayName,conciseAddress:Go(e.wallets[Q[ee-1].to.chain.displayName]?.address||""),chain:Q[ee-1].to.chain.displayName}}):Z.createElement(Ly,null,Z.createElement(Oo,{variant:"body",size:"medium",color:"neutral700",align:"center"},Ue?"":mt.t("Transaction was not sent."),B?`${mt.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),Ue&&Z.createElement(Ba,{align:"center",variant:"body",size:"medium",color:"neutral700"},Z.createElement("b",null,"Reason:")," ",Ue));return Z.createElement(ie,{header:{title:mt.t("Swap Details"),onCancel:e.status==="running"?()=>S("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(ro,null,Z.createElement(Hy,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>S("delete")},Z.createElement(Oo,{size:"medium",variant:"label",color:"error"},mt.t("Delete"))))},footer:R&&!k&&Z.createElement(Hy,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let be=gi(e,l,p);f(be),setTimeout(()=>{g("../../")},0)}},mt.t("Try again"))},Z.createElement(wy,{compact:!0,ref:y,id:"widget-swap-details-container"},Z.createElement(xy,{className:In()},Z.createElement(Oo,{variant:"label",size:"large",color:"neutral700"},`${mt.t("Request ID")}`),Z.createElement("div",{className:Na()},Z.createElement(Oo,{variant:"label",size:"small",color:"neutral700"},o),Z.createElement(Gy,{container:N(),content:m?mt.t("Copied To Clipboard"):mt.t("Copy Request ID"),open:m||void 0,side:"bottom",alignOffset:-16,align:"end"},Z.createElement(WA,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:d.bind(null,o||"")},m?Z.createElement(BA,{size:16,color:"secondary"}):Z.createElement(AA,{size:16,color:"gray"}))),Z.createElement(Wy,{target:"_blank",href:`${Ip}/swap/${o}`},Z.createElement(Gy,{container:N(),content:mt.t("View on Rango Explorer"),side:"bottom"},Z.createElement(MA,{size:20}))))),Z.createElement("div",{className:In()},Z.createElement(Oo,{variant:"label",size:"large",color:"neutral700"},e.finishTime?mt.t("Finished at"):mt.t("Created at")),Z.createElement(Oo,{variant:"label",size:"small",color:"neutral700"},q)),Z.createElement("div",{className:Ny()},Z.createElement(LA,{fee:_(String(Ze),2,2),time:Wn(Vr(e.steps)),steps:ee}),Z.createElement(ar,{from:{price:{value:_(e.inputAmount,6,6),usdValue:G,realUsdValue:X,realValue:e.inputAmount},token:{displayName:Q[0].from.token.displayName,image:Q[0].from.token.image},chain:{image:Q[0].from.chain.image,displayName:Q[0].from.chain.displayName}},to:{price:{value:_(se,6,6),usdValue:W,realUsdValue:j,realValue:se||""},token:{displayName:Q[ee-1].to.token.displayName,image:Q[ee-1].to.token.image},chain:{image:Q[ee-1].to.chain.image,displayName:Q[ee-1].to.chain.displayName}},percentageChange:_(fe,2,2),warningLevel:Qt(fe??0)})),Z.createElement("div",{className:By()},Z.createElement(Oo,{variant:"title",size:"small"},mt.t("Swaps steps"))),Z.createElement(NA,{size:8}),Z.createElement(Ey,null,Q.map((be,ze)=>{let Rt=ze,yo=qy(e.steps[ze]),vS=yo==="error"||yo==="in-progress"||yo==="warning"||yo==="completed"&&ze===Q.length-1;return Z.createElement(PA,{className:"widget-swap-details-step-item-container",key:Rt,step:be,type:"swap-progress",ref:y,state:yo,hasSeparator:ze!==0,tabIndex:Rt,isFocused:vS,tooltipContainer:N()})}))),Z.createElement(jc,{state:C,onClose:()=>S(null),onCancel:x,onDelete:n,message:re.detailedMessage.content,swap:e,walletButtonDisabled:!h}),Z.createElement(Yc,{open:!!k,diagnosisUrl:H,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:_(se,6,6),usdValue:W,realUsdValue:j,realValue:se||"",percentageChange:_(fe,2,2),token:{displayName:Q[ee-1].to.token.displayName,image:Q[ee-1].to.token.image},chain:{image:Q[ee-1].to.chain.image},description:Je}))}i(tp,"SwapDetails");import{i18n as Ma}from"@lingui/core";import{Divider as Zy,NotFound as qA,Skeleton as _r,Typography as Pa}from"@rango-dev/ui";import Ie from"react";import{i18n as OA}from"@lingui/core";import{Divider as UA,Skeleton as zA,Typography as QA}from"@rango-dev/ui";import Ee from"react";import{css as At,styled as op}from"@rango-dev/ui";var Xy=op("div",{width:"100%",height:"100%",padding:"$10 $20"}),Pr=op("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),La=op("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),VX=At({display:"flex",justifyContent:"space-between",alignItems:"center"}),KX=At({display:"flex",justifyContent:"space-between",alignItems:"center"}),jX=At({paddingTop:"$15",display:"flex"}),XX=At({padding:"$15 $0"}),YX=At({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),ZX=At({paddingBottom:"$10"}),JX=At({display:"flex",justifyContent:"start",alignItems:"center"}),RX=At({paddingTop:"$5",display:"flex",alignItems:"center"}),eY=At({display:"flex",alignItems:"center"}),tY=At({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Yy=At({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function np(){return Ee.createElement(Xy,null,Ee.createElement(lr,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(QA,{variant:"title",size:"small"},OA.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1}),Ee.createElement("div",{className:Yy()},Ee.createElement(UA,{direction:"horizontal",size:20}),Ee.createElement(zA,{height:22,variant:"rectangular"}))),Ee.createElement(La,null),Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1})),Ee.createElement(La,null),Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1})),Ee.createElement(La,null),Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1}))))}i(np,"LoadingSwapDetails");function Jy(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(ie,{header:{title:Ma.t("Swap Details"),suffix:Ie.createElement(ro,null)}},o&&Ie.createElement(by,null,Ie.createElement("div",{className:In()},Ie.createElement(Pa,{variant:"label",size:"large",color:"neutral700"},`${Ma.t("Request ID")}`),Ie.createElement("div",{className:Na()},Ie.createElement(Pa,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"})),Ie.createElement(Zy,{direction:"horizontal",size:4}),Ie.createElement(_r,{width:16,height:16,variant:"rectangular"}),Ie.createElement(Zy,{direction:"horizontal",size:4}),Ie.createElement(_r,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:In()},Ie.createElement(Pa,{className:Ay(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"})),Ie.createElement(Pa,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"}))),Ie.createElement(np,null)),!o&&Ie.createElement(Iy,null,Ie.createElement(qA,{title:Ma.t("Not found"),description:Ma.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Jy,"SwapDetailsPlaceholder");function Ry(){let{manager:t,state:e}=VA(),o=!e.loadedFromPersistor,n=St(t),{requestId:r}=jA(),a=Ge(),{fetchStatus:s}=T();if(!r)return rp.createElement(KA,{containerStyles:{margin:"20px"},type:"error",title:HA.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:h})=>h.requestId===r):void 0,u=i(()=>{if(l?.id){let h=t?.get(l.id);h&&GA(h)}},"onCancel"),p=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(h){console.log(h)}},"onDelete"),f=l?.swap;return!f||c?rp.createElement(Jy,{requestId:r,showSkeleton:c}):rp.createElement(tp,{swap:f,requestId:r,onCancel:u,onDelete:p})}i(Ry,"SwapDetailsPage");import{i18n as eS}from"@lingui/core";import{Divider as XA,getCategoriesCount as YA,SelectableCategoryList as ZA,styled as oS,Typography as JA,Wallet as RA,WalletState as e0}from"@rango-dev/ui";import{useWallets as t0}from"@rango-dev/wallets-react";import $t,{useState as tS}from"react";var o0=oS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),n0=oS(ce,{textAlign:"center"});function nS(){let{fetchStatus:t}=T(),[e,o]=tS("ALL"),n=T().blockchains(),{config:r}=T(),{state:a}=t0(),[s,c]=tS(),l=te.use.isActiveTab(),{list:u}=Tt(),p=ou(u,n),h=YA(p)!==1,g=nu(u,e),m=i(d=>{$p(u,r.multiWallets)||c(d)},"handleWalletItemClick");return $t.createElement(ie,{header:{title:eS.t("Connect Wallets")}},$t.createElement(n0,null,h&&$t.createElement($t.Fragment,null,$t.createElement(ZA,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),$t.createElement(XA,{size:24})),$t.createElement(JA,{variant:"title",size:"xmedium",align:"center"},eS.t("Choose a wallet to connect.")),$t.createElement(o0,null,g.map((d,y)=>{let S=a(d.type).namespaces,k=`wallet-${y}-${d.type}`,v=Xa(d,S);return $t.createElement(RA,{key:k,...d,state:v?e0.PARTIALLY_CONNECTED:d.state,container:N(),onClick:()=>m(d),isLoading:t==="loading",disabled:!l})}),$t.createElement(xo,{id:"widget-state-full-connect-modal",wallet:s,onClose:()=>{c(void 0)}}))))}i(nS,"WalletsPage");function rS(){return Ld(),Ms(),r0([{path:F.home,element:Oe.createElement(Nh,null)},{path:F.routes,element:Oe.createElement(Ph,null)},{path:F.fromSwap,children:[{index:!0,element:Oe.createElement(Ta,{type:"source"})},{path:F.blockchains,element:Oe.createElement(ha,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:Oe.createElement(Ta,{type:"destination"})},{path:F.blockchains,element:Oe.createElement(ha,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:Oe.createElement(ly,null)},{path:F.languages,element:Oe.createElement(Wh,null)},{path:F.exchanges,element:Oe.createElement(Bc,{sourceType:"Exchanges"})},{path:F.bridges,element:Oe.createElement(Bc,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:Oe.createElement(Wg,null)},{path:F.addCustomTokens,children:[{index:!0,element:Oe.createElement(Em,null)},{path:F.blockchains,element:Oe.createElement(ha,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:Oe.createElement(Zg,null)},{path:F.swapDetails,element:Oe.createElement(Ry,null)}]},{path:F.wallets,element:Oe.createElement(nS,null)},{path:F.confirmSwap,element:Oe.createElement(yg,null)}])}i(rS,"AppRoutes");import{useQueueManager as m0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as f0}from"rango-sdk";import{useContext as g0,useEffect as uS,useState as dS}from"react";import{globalCss as i0}from"@rango-dev/ui";var iS=i(()=>i0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function aS(){let{setWatermark:t,setShowProfileBanner:e}=te();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Ot("BASE_URL")}/meta/dapp/config?apiKey=${Ot("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(aS,"useFetchApiConfig");import{useWallets as a0}from"@rango-dev/wallets-react";import{useEffect as s0,useRef as l0}from"react";function sS(){let{connect:t,state:e}=a0(),o=l0({}),{fetchStatus:n}=T(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);s0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(sS,"useForceAutoConnect");import{isApprovalTX as c0,RouteEventType as lS,StepEventType as cS,StepExecutionEventStatus as p0,WidgetEvents as _a}from"@rango-dev/queue-manager-rango-preset";import{useEffect as pS}from"react";function ip(){let t=Ae.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=T();pS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===cS.TX_EXECUTION&&s.status===p0.TX_SENT&&!c0(c)||s.type===cS.SUCCEEDED){let p=[],f=l.wallets[c?.fromBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.fromBlockchain);h&&p.push(h)}if(c?.fromBlockchain!==c?.toBlockchain){let h=l.wallets[c?.toBlockchain];if(h){let g=e.find(m=>m.address?.toLocaleLowerCase()===h.address?.toLocaleLowerCase()&&m.walletType===h.walletType&&m.chain===c?.toBlockchain);g&&p.push(g)}}if(p.length>0){let h=n(),m=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(d=>h.some(y=>y.blockchain===d.blockchain&&y.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&y.symbol?.toLocaleLowerCase()===d.symbol?.toLocaleLowerCase()));o(p,{selectedCustomTokens:m,shouldFetchCustomTokens:m.length>0})}}t(s,l)},"handleStepEvent");return Te.on(_a.StepEvent,r),()=>Te.off(_a.StepEvent,r)},[Te,e]),pS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===lS.FAILED||s.type===lS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return Te.on(_a.RouteEvent,r),()=>Te.off(_a.RouteEvent,r)},[Te])}i(ip,"useSubscribeToWidgetEvents");import{useManager as u0}from"@rango-dev/queue-manager-react";import{useEffect as d0}from"react";function ap(){let{isSynced:t,syncNotifications:e}=Ae(),{manager:o,state:n}=u0();d0(()=>{Ae.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(St(o))},[Ae.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ap,"useSyncNotifications");function sp(){sS(),iS(),ip(),ap();let t=T().blockchains(),{canSwitchNetworkTo:e}=Fi(),[o,n]=dS(null),[r,a]=dS(),s=g0(di),c=t.filter(f0),{fetchApiConfig:l}=aS();uS(()=>()=>Wd(),[]),m0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),uS(()=>(wo.init(),Ae.persist.hasHydrated()||Ae.persist.rehydrate(),s.onConnectWallet(u=>{n(p=>{if(!p||p.walletType!==u.walletType)return u;let f={...p};return u.network&&(f.network=u.network),u.accounts&&(f.accounts=u.accounts),f})}),s.onDisconnectWallet(u=>{a(u),n(p=>u===p?.walletType?null:p)}),l().catch(console.log),wo.destroy),[])}i(sp,"useBootstrap");import{styled as h0}from"@rango-dev/ui";var mS=h0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Da(){sp();let{config:t}=T(),{activeTheme:e}=no(t?.theme||{}),{activeLanguage:o}=uo();return lp.createElement(y0,{language:o},lp.createElement(mS,{id:"swap-container",className:e()},lp.createElement(rS,null)))}i(Da,"Main");import{setSolanaSignerConfig as $0}from"@rango-dev/signer-solana";import pp,{useEffect as CS,useMemo as F0}from"react";import{useState as S0}from"react";var C0=i(()=>{let[t,e]=S0(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Dp(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),fS=C0;import{checkWaitingForNetworkChange as T0,makeQueueDefinition as k0}from"@rango-dev/queue-manager-rango-preset";import{Provider as v0}from"@rango-dev/queue-manager-react";import{useWallets as w0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as b0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as x0}from"rango-types";import E0,{useMemo as I0}from"react";function A0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=w0(),c=I0(()=>k0({API_KEY:t.apiKey||Ot("API_KEY"),BASE_URL:Ot("BASE_URL"),emitter:{emit:Te.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:u}=T(),p=l(),f={blockchains:u.map(v=>({accounts:[v],name:v.chain}))},h=i(async(v,x)=>a(v,x.network)?await r(v,[x]):void 0,"switchNetwork"),g=i(v=>!!s(v).mobileWallet,"isMobileWallet"),m=p.filter(v=>v.enabled).reduce((v,x)=>(v[x.name]=x,v),{}),d=p.filter(x0),y=i(v=>{let{supportedChains:x}=s(v);return Pn(x)},"getSupportedChainNames"),C=e(),S={meta:{blockchains:m,evmBasedChains:d,evmNetworkChainInfo:b0(d),getSupportedChainNames:y},getSigners:o,wallets:f,providers:C,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:g},k=te.use.isActiveTab();return E0.createElement(v0,{queuesDefs:[c],context:S,onPersistedDataLoaded:v=>{T0(v)},isPaused:!k},t.children)}i(A0,"QueueManager");var gS=A0;import{useManager as M0}from"@rango-dev/queue-manager-react";import P0,{createContext as _0,useContext as D0}from"react";function hS(){let{findToken:t}=T(),e=T().blockchains(),o=T().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=O();return i(u=>{let{fromBlockchain:p,fromToken:f,toBlockchain:h,toToken:g,requestAmount:m}=u,d={blockchains:e,tokens:o};if(p!==void 0){let y=e.find(C=>C.name===p)??null;n(y)}if(f!==void 0){let y=f?t(f)??null:null;r({meta:d,token:y})}if(h!==void 0){let y=e.find(C=>C.name===h)??null;a(y)}if(g!==void 0){let y=g?t(g)??null:null;s({meta:d,token:y})}m!==void 0&&c(m)},"updateQuoteInputs")}i(hS,"useUpdateQuoteInputs");import{cancelSwap as N0,getCurrentNamespaceOfOrNull as B0,getCurrentStep as W0,getRelatedWalletOrNull as L0}from"@rango-dev/queue-manager-rango-preset";var $a=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return St(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=gi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&N0(o)}getCurrentStepInfo(e){let o=W0(e);return{step:o,wallet:o?L0(e,o):null,network:o?B0(e,o)?.network:null}}};var yS=_0(void 0);function cp(t){let{manager:e}=M0(),o=te.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=T(),l=new $a(e,{retrySwap:n,findToken:r}),{fetchingWallets:u}=T(),p=Yp(a()),f=T().blockchains(),h=T().tokens(),g=T().swappers(),m=T().fetchStatus,d=uo().resetLanguage,y=Ae().getNotifications(),C=Ae().clearNotifications,S=hS(),{fromBlockchain:k,toBlockchain:v,fromToken:x,toToken:I,inputAmount:A}=O(),E={isActiveTab:o,setCurrentTabAsActive:wo.forceClaim,history:l,wallets:{isLoading:u,details:s(),totalBalance:p,refetch:async b=>c(b)},meta:{blockchains:f,tokens:h,swappers:g,loadingStatus:m,findToken:r},resetLanguage:d,notifications:{list:y,clearAll:C},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:v?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:A},updateQuoteInputs:S}};return P0.createElement(yS.Provider,{value:E},t.children)}i(cp,"WidgetInfo");function SS(){let t=D0(yS);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(SS,"useWidget");function Fa(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=fS();return CS(()=>{n&&r(n)},[n]),F0(()=>{ru({API_KEY:o?.apiKey||zr,BASE_URL:o?.apiUrl||Ep})},[o.apiKey,o.apiUrl]),CS(()=>{t.config?.signers?.customSolanaRPC&&$0("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),pp.createElement(mi,{config:o,onUpdateState:e},pp.createElement(gS,{apiKey:o.apiKey},pp.createElement(cp,null,t.children)))}i(Fa,"WidgetProvider");function TS(t){let e=t.config?.externalWallets;return Oa.createElement(Ru,null,e?Oa.createElement(Da,null):Oa.createElement(Fa,{config:t.config??Or},Oa.createElement(Da,null)))}i(TS,"Widget");function kS(){let{on:t,off:e}=Te;return{on:t,off:e}}i(kS,"useWidgetEvents");var lJ={DerivationPath:qn,Namespaces:Un,Detached:Qn,isOnDerivationPath:Gn,isOnNamespace:Hn,isOnDetached:Vn};export{PZ as EventSeverity,Ko as MainEvents,HZ as Networks,KZ as PendingSwapNetworkStatus,es as QuoteEventTypes,_Z as RouteEventType,qa as SUPPORTED_FONTS,lJ as StatefulConnect,DZ as StepEventType,$Z as StepExecutionBlockedEventStatus,FZ as StepExecutionEventStatus,Qe as UI_ID,os as UiEventTypes,ts as WalletEventTypes,QZ as WalletEvents,GZ as WalletTypes,TS as Widget,Ko as WidgetEvents,Fa as WidgetProvider,mi as WidgetWallets,js as customizedThemeTokens,UZ as readAccountAddress,Uo as useStatefulConnect,Tt as useWalletList,Fi as useWallets,SS as useWidget,kS as useWidgetEvents,xC as widgetEventEmitter};
|
|
1
|
+
var QS=Object.defineProperty;var i=(t,e)=>QS(t,"name",{value:e,configurable:!0});import{EventSeverity as oR,RouteEventType as nR,StepEventType as rR,StepExecutionBlockedEventStatus as iR,StepExecutionEventStatus as aR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as lR}from"@rango-dev/wallets-core/legacy";import{useWallets as zi,Events as pR}from"@rango-dev/wallets-react";import{Networks as mR,WalletTypes as dR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as gR}from"rango-types";import{Divider as ok}from"@rango-dev/ui";import no,{useEffect as nk,useRef as rk,useState as tm}from"react";import{WalletState as HS}from"@rango-dev/ui";import{useWallets as GS}from"@rango-dev/wallets-react";import{useReducer as VS}from"react";function Sp(t){return!!t.derivationPath}i(Sp,"isStateOnDerivationPathStep");function Cp(t){return!!t.namespace}i(Cp,"isStateOnNamespace");var $r={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Tp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return $r;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:$r;default:throw new Error("Action hasn't been defined.")}}i(Tp,"reducer");function qo(){let{state:t,disconnect:e,connect:o}=GS(),[n,r]=VS(Tp,$r),a=i(async(p,d,h)=>{r({type:"reset"});try{let g=d?.map(f=>({...f,network:void 0}));return await o(p,g),{status:"connected"}}catch(g){let f=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(f,{cause:g})}},"runConnect"),s=i(async(p,d)=>{if(p.state===HS.DISCONNECTED){let g=!!p.isHub,f=g?p.properties?.find(y=>y.name==="namespaces")?.value:p.needsNamespace,m=g?p.properties?.find(y=>y.name==="derivationPath")?.value:p.needsDerivationPath;if(!f?.data?.length)return await a(p.type,void 0,d);if(f?.data.length&&f.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:p,defaultSelectedChains:d?.defaultSelectedChains}}),{status:"namespace"};if(f?.data.length===1){if(m){let y=f.data[0];return r({type:"needsDerivationPath",payload:{providerType:p.type,providerImage:p.image,namespace:y.value}}),{status:"derivation-path"}}return await a(p.type,f?.data?.map(y=>({namespace:y.value})),d)}}if(p.isHub){let g=p.properties?.find(f=>f.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:p,selectedNamespaces:null}}),{status:"Detached"}}return d?.disconnectIfConnected?(await u(p.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(p,d)=>{let h=!!p.isHub,g=h?p.properties?.find(S=>S.name==="namespaces")?.value:p.needsNamespace,f=h?p.properties?.find(S=>S.name==="derivationPath")?.value:p.needsDerivationPath,m=g?.selection==="single",y=d[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(m&&f)return r({type:"needsDerivationPath",payload:{providerType:p.type,providerImage:p.image,namespace:y}}),{status:"derivation-path"};if(!Cp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=d.map(S=>({namespace:S}));return r({type:"detached",payload:{targetWallet:p,selectedNamespaces:C?.map(S=>S.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async p=>{if(!p)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Sp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let d=n.derivationPath.providerType,g=[{namespace:n.derivationPath.namespace,derivationPath:p}];return await a(d,g)},"handleDerivationPath"),u=i(async p=>{let d=t(p);return d.connected||d.connecting?(await e(p),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:()=>n,resetState:p=>{r(p==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(qo,"useStatefulConnect");import{WalletState as us}from"@rango-dev/ui";import{useWallets as oT}from"@rango-dev/wallets-react";import{detectMobileScreens as nT,KEPLR_COMPATIBLE_WALLETS as rT,WalletTypes as _n}from"@rango-dev/wallets-shared";import{useCallback as iT,useEffect as aT}from"react";import ZC,{createContext as JC,useContext as RC,useEffect as eT,useRef as tT}from"react";import{create as XC}from"zustand";import{persist as YC}from"zustand/middleware";import{allProviders as KS}from"@rango-dev/provider-all";var qa=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},Qo=new qa;import{defineVersions as vp,pickVersion as wp,Provider as Qa}from"@rango-dev/wallets-core";function bp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=xp(a);return s instanceof Qa?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 Qa?o.push(vp().version("1.0.0",n).build()):o.push(vp().version("0.0.0",n).build())}),o}return t}i(bp,"matchAndGenerateProviders");function xp(t){try{return wp(t,"1.0.0")[1]}catch{return wp(t,"0.0.0")[1]}}i(xp,"pickProviderVersionWithFallbackToLegacy");function Ep(t){return t.map(o=>xp(o)).map(o=>o instanceof Qa?o.id:o.config.type)}i(Ep,"configWalletsToWalletName");function Fr(t,e){return e.find(o=>o.name===t)?.displayName}i(Fr,"getBlockchainDisplayNameFor");function ft(t,e){return e.find(o=>o.name===t)?.shortName}i(ft,"getBlockchainShortNameFor");function Ip(t,e){return e.find(o=>o.name===t)?.logo}i(Ip,"getBlockchainImage");function En(t,e){return e.find(o=>o.id===t)?.title}i(En,"getSwapperDisplayName");function Co(t,e){return e.find(o=>o.name===t)??null}i(Co,"findBlockchain");function Ha(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(Ha,"isTokenNative");function gt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(gt,"createTokenHash");function Ho(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Ho,"isValidTokenAddress");function In(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=gt(l));let u=o.tokensMapByTokenHash.get(l);u&&(n[l]=u)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{c.has(l)||a(o.tokensMapByBlockchainName[l])})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(u=>{let p=gt(u);delete n[p]})):a(l.tokens))}),Object.values(n)}i(In,"matchTokensFromConfigWithMeta");function Or(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(Or,"getSupportedBlockchainsFromConfig");function Np(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Np,"makeProvidersOptionsFromConfig");var Ur={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/manifests/tonconnect-manifest.json"}},jS={clientUrl:void 0},XS={liquiditySources:void 0};function Ap(t){let e=Np(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return KS(o).map(a=>a())}i(Ap,"generateProviders");var Bp=i((t,e,o)=>{let n=Ap({...Ur,...t});return{config:{...Ur,...t},iframe:jS,campaignMode:XS,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=In({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),u=In({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});Qo.set("supportedSourceTokens",l),Qo.set("supportedDestinationTokens",u),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=Ap(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Np(a);return bp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Wp}from"rango-types";var Lp=[Wp.EVM,Wp.SOLANA],zr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as pC}from"rango-sdk";import{UI_ID as YS}from"@rango-dev/ui";var qr="c6381a79-2817-4602-83bf-6a641a409e32",Pp="https://api.rango.exchange",Mp="https://explorer.rango.exchange",Re={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...YS};import{BlockchainCategories as nC,WalletState as at}from"@rango-dev/ui";import{legacyReadAccountAddress as rC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as iC,getCosmosExperimentalChainInfo as aC,isEvmAddress as sC,KEPLR_COMPATIBLE_WALLETS as LB,Networks as tu}from"@rango-dev/wallets-shared";import Vo from"bignumber.js";import{isCosmosBlockchain as lC}from"rango-types";import ZS from"bignumber.js";var ce=new ZS(0);import{WalletTypes as JS}from"@rango-dev/wallets-shared";var To="~",_p=[JS.LEAP];import{BlockchainCategories as Va,WalletState as oC}from"@rango-dev/ui";import{TransactionType as Qr}from"rango-sdk";var Dp="Roboto",Ga=[{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 Go(t){return Array.from(new Set(t))}i(Go,"removeDuplicateFrom");function Hr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Hr,"debounce");function it(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(it,"containsText");function Op(t,e){return t.toLowerCase()===e.toLowerCase()}i(Op,"exactText");function Up(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Up,"startWithText");var N=i(()=>document.getElementById(Re.SWAP_BOX_ID),"getContainer"),ko=i(()=>document.getElementById(Re.EXPANDED_BOX_ID),"getExpanded");function zp(t,e,o){let n=!!e&&Op(e,t),r=!!o&&Op(o,t);return n!==r?n?-1:1:0}i(zp,"compareExactMatchText");function Ka(t,e,o){let n=!!e&&it(e,t),r=!!o&&it(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ka,"compareContainsText");function ja(t,e,o){let n=!!e&&Up(e,t),r=!!o&&Up(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ja,"compareStartWithText");function qp(t,e,o){if(!o)return 0;let n=zp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=zp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ja(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ka(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ja(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ka(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ja(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ka(o,t.address,e.address);if(r!==0)return r}return 0}i(qp,"compareWithSearchFor");var Gr=i((t,e)=>{switch(e){case Va.ALL:return!0;case Va.UTXO:return t===Qr.TRANSFER;case Va.OTHER:return t!==Qr.TRANSFER&&t!==Qr.COSMOS&&t!==Qr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Qp=i(t=>Ga.find(o=>o.value===t)?.url,"getFontUrlByName");function Hp(t,e){let o=!!t.find(n=>n.state===oC.CONNECTED);return e===!1&&o}i(Hp,"isSingleWalletActive");function Gp(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(Gp,"memoizedResult");import{BigNumber as Rp}from"bignumber.js";function Vp(t){return t.replace(/^0+(?=\d)/g,"")}i(Vp,"removeLeadingZeros");function Kp(t){return t.replace(/^\.(\d+)/,"0.$1")}i(Kp,"ensureLeadingZeroForDecimal");function jp(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(jp,"formatThousandsWithCommas");function Xp(t){return t.replace(/\s+/g,"-")}i(Xp,"replaceSpacesWithDash");function Yp(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(Yp,"stripTrailingZeros");function Vr(t){return/^0+(?:\.0+)?$/.test(t)}i(Vr,"isZeroValue");function Zp(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(Zp,"isValidCurrencyFormat");function Jp(t){return/\d+$/.test(t)}i(Jp,"isColorKeyOverridden");var An=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),_=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Rp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Rp(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Kr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Bt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Nn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function eu(t){return Vr(t)?"0":Yp(t)}i(eu,"sanitizeInputAmount");function Bn(t){return t.connected?at.CONNECTED:t.connecting?at.CONNECTING:t.installed?at.DISCONNECTED:at.NOT_INSTALLED}i(Bn,"mapStatusToWalletState");function ou(t,e,o,n){return o.filter(r=>!_p.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(p=>p.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:u,supportedChains:p,needsDerivationPath:d,properties:h,isHub:g}=e(r),f=Go(p.map(y=>y.type)),m=Bn(t(r));return{title:a,image:s,link:iC(c),state:m,type:r,showOnMobile:l,needsNamespace:u,blockchainTypes:f,needsDerivationPath:d,properties:h,isHub:g}})}i(ou,"mapWalletTypesToWalletInfo");function Wn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Wn,"walletAndSupportedChainsNames");function Ya(t,e,o,n,r){let a=[];function s(l,u,p){if(!!!a.find(h=>h.chain===l)){let h={address:u,chain:l,walletType:t,isContractWallet:p??!1};a.push(h)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:u,network:p}=rC(l),d=c.length>0,h=c.includes(p),g=p===tu.Unknown;if(d&&!h&&!g)return;let m=p===tu.Unknown&&sC(u);if(g&&!m)return;o.includes(p)||m?r?s(p,u.toLowerCase(),r):c.filter(S=>o.includes(S)).forEach(S=>{s(S,u.toLowerCase())}):s(p,u)}),a}i(Ya,"prepareAccountsForWalletStore");function vo(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((u,p)=>{let d=u.from.blockchain,h=u.to.blockchain,g=a===o.swaps.length-1,f=p===l.length-1;(!g&&!f||g&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(h)})}e==="all"&&n.add(c)}),Array.from(n)}i(vo,"getQuoteChains");function Ln(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Ln,"isAccountAndWalletMatched");var nu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?Xa(n.usdValue,n.decimals):ce.toFixed();return o.plus(r)},new Vo(ce));return cC(e.toString())},"calculateWalletUsdValue");function cC(t){let e=t.toString().split(".");return e[0]=jp(e[0]),e.join(".")}i(cC,"numberWithThousandSeparator");var Yr=i((t,e)=>{let o=aC(Object.entries(t).map(([,n])=>n).filter(lC));return o&&o[e]?.experimental},"isExperimentalChain");function Xa(t,e){return new Vo(t).shiftedBy(-e).toFixed()}i(Xa,"representAmountInNumber");function Zr(t){if(!t)return null;let e=Xa(t.amount,t.decimals),o=t.usdValue?Xa(t.usdValue,t.decimals):null,n=_(e,8,8),r=o?_(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(Zr,"formatBalance");function ru(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Vo(t.usdValue).shiftedBy(-t.decimals):ce,n=e&&e.usdValue?new Vo(e.usdValue).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Vo(t.amount).shiftedBy(-t.decimals):ce,n=e&&e.amount?new Vo(e.amount).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(ru,"compareTokenBalance");function Ot(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Ot,"areTokensEqual");function iu(t,e){return t.map(o=>({isPartiallyConnected:Za(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===at.CONNECTED&&!n.isPartiallyConnected)-+(o.state===at.CONNECTED&&!o.isPartiallyConnected)||+(n.state===at.CONNECTED)-+(o.state===at.CONNECTED)||+(n.state===at.DISCONNECTED||n.state===at.CONNECTING)-+(o.state===at.DISCONNECTED||o.state===at.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(iu,"sortWalletsBasedOnConnectionState");function oo(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(oo,"getConciseAddress");function au({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(au,"getAddress");var su=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function lu(t){return t.map(e=>e.state).join("-")}i(lu,"hashWalletsState");function cu(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(cu,"filterBlockchainsByWalletTypes");function pu(t,e){return e===nC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Gr(n,e))return!0;return!1})}i(pu,"filterWalletsByCategory");function Za(t,e){return!t.isHub||!t.needsNamespace||t.state!==at.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(Za,"checkIsWalletPartiallyConnected");var Ja={API_KEY:qr};function Ut(t){return Ja[t]||""}i(Ut,"getConfig");function uu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ja=e,Ja}i(uu,"initConfig");var mu=20,du=25,Ra="theme-widget",es=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Ot(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Ot(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),ts=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),fu=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Jr,st=i(()=>Jr||(Jr=new pC(Ut("API_KEY"),Ut("BASE_URL")),Jr),"httpService");import{i18n as hu}from"@lingui/core";var Rr=[.5,1,3],ei=1,Ko=5,Pn=30,ti=0;import{WidgetEvents as gu}from"@rango-dev/queue-manager-rango-preset";var os=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(os||{}),ns=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(ns||{}),rs=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(rs||{}),jo=(a=>(a[a.RouteEvent=gu.RouteEvent]="RouteEvent",a[a.StepEvent=gu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(jo||{});function oi(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Go(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(c=>c.swapperGroup===a);if(s){let c=!0;o&&(c=o.some(l=>l===s.swapperGroup)),c&&s.types.map(l=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:l,selected:!e.includes(s.swapperGroup)})})}}),n}i(oi,"getUniqueSwappersGroups");function yu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(yu,"sortLiquiditySourcesByGroupTitle");function et(t,e){return e?.[t]==="hidden"}i(et,"isFeatureHidden");function Xo(t,e){return e?.[t]==="enabled"}i(Xo,"isRoutingEnabled");var Su=i((t,e,o)=>et("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function Yo(t){return t==ti?{type:"error",message:hu.t("Slippage must be greater than or equal to 0.01")}:t>Ko&&t<=Pn?{type:"warning",message:hu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(Yo,"getSlippageValidation");var Cu=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let l=Or({config:a}),u=r;return l.length>0&&(u=u.filter(p=>l.includes(p.name))),u.filter(p=>Lp.includes(p.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 u=o.type==="source"?"from":"to",p=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",d=Qo.get(p);d?.length||(d=In({type:o.type,config:{blockchains:a[u]?.blockchains,tokens:a[u]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Qo.set(p,d)),d=Su(d,s,a.features);let h=e().blockchains({type:o.type});return d.filter(f=>o.blockchain&&f.blockchain!==o.blockchain||!h.some(m=>m.name===f.blockchain)?!1:o.searchFor?!!(it(f.symbol,o.searchFor)||it(f.address||"",o.searchFor)||it(f.name||"",o.searchFor)):!0).sort((f,m)=>{let y=e().isTokenPinned(f,o.type),C=e().isTokenPinned(m,o.type);if(y!==C)return y?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(f),A=o.getBalanceFor(m),E=ru(I,A);if(E!==0)return E}let S=l.get(f.blockchain),k=l.get(m.blockchain),v=Ha(f,S),x=Ha(m,k);if(v!==x)return v?-1:1;if(f.isPopular!==m.isPopular)return f.isPopular?-1:1;if(o.searchFor){let I=qp(f,m,o.searchFor);if(I)return I}return f.isSecondaryCoin!==m.isSecondaryCoin?f.isSecondaryCoin?1:-1:S&&k?S.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=gt(o),s=n.get(a);return s||(s=r.find(c=>gt(c)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Ot(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let p=a?.includes(u.swapperGroup);return s||!a||a.length===0?!p:p}).sort(yu)},fetch:async()=>{try{let{routing:o}=e().config,n=Xo("enableCentralizedSwappers",o),r=await st().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],u=r.popularTokens,p=r.swappers.filter(g=>g.enabled),d=new Set;r.tokens.forEach(g=>{d.add(g.blockchain),l.push(g)}),r.blockchains.sort((g,f)=>g.sort-f.sort).forEach(g=>{g.enabled&&d.has(g.name)&&a.set(g.name,g)}),l.forEach(g=>{let f=gt(g);c[g.blockchain]||(c[g.blockchain]=[]),s.set(f,g),c[g.blockchain].push(f)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:u,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as uC,Catalonia as mC,Chinese as Tu,Denmark as dC,English as fC,Finland as gC,French as hC,German as yC,Greece as SC,Hungary as CC,India as TC,Indonesian as kC,Italian as vC,Japanese as wC,Korea as bC,Lithuania as xC,Malay as EC,Netherlands as IC,Pakistan as AC,Philippines as NC,Poland as BC,Portuguese as WC,Russian as LC,SaudiArabia as PC,Serbia as MC,Slovakia as _C,SouthAfrica as DC,Spanish as $C,Swahili as FC,Swedish as OC,Thai as UC,Turkish as zC,Ukrainian as qC,Vietnamese as QC}from"@rango-dev/ui";var ku=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:DC},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:PC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:uC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:mC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Tu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Tu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:dC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:IC},{title:"English",label:"English",local:"en",SVGFlag:fC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:NC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:gC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:hC},{title:"German",label:"Deutsch",local:"de",SVGFlag:yC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:SC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:TC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:CC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:kC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:vC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:wC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:bC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:xC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:EC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:BC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:WC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:LC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:MC},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:_C},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:$C},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:FC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:OC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:UC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:zC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:qC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:AC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:QC}],Zo="en";var vu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:ei,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],quoteTokensRate:"default",changeQuoteTokensRate:()=>t(o=>({quoteTokensRate:o.quoteTokensRate==="default"?"reversed":"default"})),addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,c)=>{let l=s===o,u=c<=9;return l&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=Go(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=et("theme",n),s=et("language",n),c=et("liquiditySource",n),l=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Zo},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||Zo}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=Or({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import ps from"bignumber.js";import HC from"mitt";var ve=HC(),GC={on:ve.on,off:ve.off};var wu=i(t=>(e,o,n)=>t(i((...a)=>{let[s,...c]=a;e(l=>({...typeof s=="function"?s(l):s,lastUpdatedAt:+new Date}),...c)},"modifedSet"),o,n),"keepLastUpdated");import bu from"bignumber.js";function zt(t){return`${t.blockchain}${To}${t.address}${To}${t.symbol}`}i(zt,"createAssetKey");function xu(t,e){return`${zt(e)}${To}${t}`}i(xu,"createBalanceKey");function Mn(t){let[e,o,n]=t.split(To);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Mn,"extractAssetFromBalanceKey");function as(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[zt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new bu(r??ce).multipliedBy(o[s].amount).toString():""})})}),o}i(as,"computeNextBalancesWithNewPrices");function ss(t,e){let o={};return t.balances?.forEach(n=>{let r=xu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new bu(c??ce).multipliedBy(a).toString():"",u={amount:a,decimals:s,usdValue:l};o[r]=u}),o}i(ss,"createBalanceStateForNewAccount");function ls(t,e){for(let o in e){let n=Mn(o),r=zt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(ls,"updateAggregatedBalanceStateForNewAccount");function VC(t,e){let o=Mn(e),n=zt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(VC,"removeBalanceFromAggregatedBalance");function cs(t,e,o){let n=t.connectedWallets.filter(l=>l.walletType===e);t.connectedWallets.forEach(l=>{l.walletType!==e&&(n=n.filter(u=>!(u.chain===l.chain&&u.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 u=Mn(l);!!n.find(d=>xu(d.address,{address:u.address,blockchain:d.chain,symbol:u.symbol})===l)?a=VC(a,l):r[l]=s[l]}),{_balances:r,_aggregatedBalances:a}}i(cs,"computeNextStateAfterWalletBalanceRemoval");function KC(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(KC,"matchWalletDetailsWithConnectedWallet");var jC=Gp(),Eu=wu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Ln(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Ln(s,a))?{...a,loading:!1,error:!1,explorerUrl:KC(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Ln(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Ln(c,l)));if(s.length>0){let c=s.map(l=>{let u=!a.some(p=>p.chain===l.chain&&p.selected&&p.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:u,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(p=>!c.some(d=>d.walletType===p.walletType&&d.chain===p.chain)),...c]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,u)=>((l[u.blockchain]||=[]).push(u),l),{}),s=new Set,c=r.reduce((l,u)=>{let p=`${u.address}-${u.chain}`;return s.has(p)||(s.add(p),a[u.chain]&&(l[u.address]||(l[u.address]=[]),l[u.address].push(...a[u.chain]))),l},{});Object.entries(c).forEach(async([l,u])=>{try{let{balances:p}=await st().getMultipleTokenBalance({assets:u.map(({symbol:d,address:h,blockchain:g})=>({symbol:d,address:h,blockchain:g})),walletAddress:l});if(p){let d=e()._balances,h=e()._aggregatedBalances;p.forEach(g=>{if(parseFloat(g.amount.amount)===0)return;let f={blockChain:g.asset.blockchain,balances:[g],address:l},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};as(m,f,d);let y=ss(f,e);h=ls(h,y),d={...d,...y}}),t(g=>({_balances:{...g._balances,...d},_aggregatedBalances:h}))}}catch(p){console.error(p)}})},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)=>{ve.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=cs(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(ve.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0)return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await st().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,u=e()._aggregatedBalances;c.forEach(d=>{if(d.failed)return;let h={_balances:l,_aggregatedBalances:u,connectedWallets:e().connectedWallets,findToken:e().findToken};as(h,d,l);let{_balances:g,_aggregatedBalances:f}=cs(h,r,{chains:[d.blockChain]});if(u=f,l=g,!e().connectedWallets.find(y=>y.walletType===r&&y.address===d.address&&y.chain===d.blockChain))return;let m=ss(d,e);u=ls(u,m),l={...l,...m}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:u})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:p=!0}=n||{};if(p){let d=c.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.address}));d.length>0&&await e().fetchMainTokensBalances(d,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=zt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let l=a[0];return n[l]}let c=n[a[0]];return a.forEach(l=>{let u=n[l],p=new ps(u.amount),d=new ps(c.amount);p.isGreaterThan(d)&&(c=u)}),c},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,u]=c.split(To);return u===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>jC(()=>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],u=Mn(c);if(u.blockchain===n.chain){let p=e().findToken(u),d=l.amount?new ps(l.amount).shiftedBy(-l.decimals):ce;s.push({chain:n.chain,symbol:u.symbol,ticker:u.symbol,address:u.address,rawAmount:l.amount,decimal:l.decimals,amount:d.toString(),isSupported:!!p,logo:p?.image||null,usdPrice:p?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Iu(t){return XC()(YC((...e)=>({...Eu(...e),...Cu(...e),...vu(...e),...Bp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i(Iu,"createAppStore");var Au=JC(null);function T(){let t=RC(Au);if(eT(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(T,"useAppStore");function Nu(t){let e=tT();return e.current||(e.current=Iu(t.config)),ZC.createElement(Au.Provider,{value:e.current},t.children)}i(Nu,"AppStoreProvider");function kt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=T(),{state:r,getWalletInfo:a}=oT(),s=T().blockchains(),{handleDisconnect:c}=qo(),l=Ep(n()),u=ou(r,a,l,e);u=nT()?u.filter(m=>m.showOnMobile!==!1&&r(m.type).installed):u;let p=iu(u,r),d=i(m=>!o.find(y=>y.walletType===m&&y.chain===e),"isExperimentalChainNotAdded"),h=iT(()=>{let m=u?.filter(y=>y.state===us.CONNECTING)||[];for(let y of m)c(y.type)},[lu(u)]);aT(()=>()=>{h()},[]);let g=i(m=>{let y=m.find(S=>S.type===_n.DEFAULT);return!y||y.state===us.NOT_INSTALLED?!1:m.filter(S=>S.state!=us.NOT_INSTALLED&&![_n.DEFAULT,_n.WALLET_CONNECT_2,_n.LEDGER].includes(S.type)&&a(S.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),f=i((m,y,C)=>Yr(C,y)&&d(m)&&!rT.includes(m)||m==_n.DEFAULT&&!g(u),"shouldExcludeWallet");return{list:p.filter(m=>!f(m.type,e??"",s)),terminateConnectingWallets:h}}i(kt,"useWalletList");import{Modal as pT}from"@rango-dev/ui";import uT from"react";import{create as cT}from"zustand";var Bu="rango-widget";var Dn=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(Bu),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var lT=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"),Jo=lT;var oe=Jo(cT()((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})}}))),bo=new Dn({onInit:()=>oe.setState({tabManagerInitiated:!0}),onClaim:()=>oe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>oe.setState({isActiveTab:!1})});function R(t){let{watermark:e}=oe();return uT.createElement(pT,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as tn}from"@lingui/core";import{Alert as xT,Button as ET,Divider as pi,Image as IT,MessageBox as AT,RadioRoot as NT}from"@rango-dev/ui";import pe,{useEffect as BT,useMemo as WT,useState as LT}from"react";import{i18n as gT}from"@lingui/core";import{Typography as Fu}from"@rango-dev/ui";import Ro from"react";function ni(t,e){return t.find(o=>o.name===e)?.logo}i(ni,"getBlockchainLogo");import{darkTheme as mT,Image as dT,styled as qt,Typography as fT}from"@rango-dev/ui";var ri=qt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${mT} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),ii=qt("div",{display:"flex",gap:"$8",alignItems:"center"}),Lu=qt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Pu=qt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Mu=qt("div",{display:"flex",gap:"$6",alignItems:"center"}),_u=qt("div",{paddingLeft:"48px"}),Du=qt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),$u=qt(fT,{maxWidth:"100px"}),ai=qt(dT,{variants:{disabled:{true:{opacity:"0.5"}}}});function si(t){let{namespace:e}=t,o=T().blockchains();return Ro.createElement(ri,{unsupported:!0},Ro.createElement(ii,null,Ro.createElement(ai,{src:ni(o,e.id),size:40,disabled:!0}),Ro.createElement(Pu,null,Ro.createElement(Fu,{variant:"label",size:"large"},e.label),Ro.createElement(Fu,{variant:"body",size:"xsmall"},gT.t("(Currently not supported)")))))}i(si,"NamespaceUnsupportedItem");import{Checkbox as vT,Radio as wT}from"@rango-dev/ui";import gs from"react";import{i18n as fs}from"@lingui/core";import{ChevronDownIcon as yT,ChevronUpIcon as ST,Divider as CT,Typography as $n}from"@rango-dev/ui";import Ne,{useEffect as TT,useState as kT}from"react";import{Image as Uu,Tooltip as zu,Typography as hT}from"@rango-dev/ui";import Wt from"react";import{styled as Ou}from"@rango-dev/ui";var ms=Ou("div",{display:"flex",alignItems:"center",padding:0,margin:0}),li=Ou("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var ds=3;function qu(t){let{chains:e}=t;return Wt.createElement(ms,{id:"widget-supported-chains-container"},e.slice(0,ds).map((o,n)=>Wt.createElement(zu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Wt.createElement(li,{firstItem:n===0},Wt.createElement(Uu,{src:o.logo,size:15})))),e.length>ds&&Wt.createElement(zu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Wt.createElement(ms,null,e.map((o,n)=>Wt.createElement(li,{key:o.name,firstItem:n===0},Wt.createElement(Uu,{src:o.logo,size:15}))))},Wt.createElement(li,null,Wt.createElement(hT,{variant:"body",size:"xsmall"},"+",e.length-ds))))}i(qu,"SupportedChainsList");function xo(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=kT(!1),u=T().blockchains();TT(()=>l(!1),[o]);let p=e.getSupportedChains(u),d=!o&&!r&&p.length>1;return Ne.createElement(ri,{hasError:!!o,clickable:!!s,onClick:s},Ne.createElement(ii,null,Ne.createElement(ai,{src:ni(u,e.id),size:40}),Ne.createElement(Lu,{showSupportedChains:d||r||!!o},Ne.createElement(Mu,null,Ne.createElement($n,{variant:"label",size:"large"},e.label),r&&Ne.createElement($n,{variant:"body",size:"small",color:"success500"},fs.t("Connected")),!!o&&Ne.createElement($n,{variant:"body",size:"small",color:"error500"},fs.t("Connection failed"))),d&&Ne.createElement(qu,{chains:p}),r&&Ne.createElement($u,{variant:"body",size:"small",color:"neutral700"},a),o&&Ne.createElement(Du,{onClick:()=>l(h=>!h)},Ne.createElement($n,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},fs.t("See why")),c?Ne.createElement(ST,{size:12,color:"gray"}):Ne.createElement(yT,{size:12,color:"gray"}))),n),!!o&&c&&Ne.createElement(Ne.Fragment,null,Ne.createElement(CT,{size:4}),Ne.createElement(_u,null,Ne.createElement($n,{variant:"body",size:"small",color:"neutral700"},o))))}i(xo,"NamespaceItem");function Qu(t){let{onClick:e,type:o,namespace:n}=t;return gs.createElement(xo,{namespace:n,onClick:e,suffix:o==="radio"?gs.createElement(wT,{value:n.value}):gs.createElement(vT,{checked:t.value})})}i(Qu,"NamespaceListItem");import{Button as bT,styled as Hu}from"@rango-dev/ui";var ci=Hu("ul",{padding:0,paddingTop:"$10",paddingBottom:"$20",margin:0}),en=Hu(bT,{minHeight:"$40"});function Fn(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=T().blockchains(),[l,u]=LT([]),p=WT(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{u(r?[m]:y=>y.includes(m)?y.filter(C=>C!==m):y.concat(m))},"onSelect"),h=p?.length===l.length,g=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");h?u([]):p&&u(p.map(m=>m.value))},"onSelectAll"),f=i(m=>r?pe.createElement(NT,{value:l?.[0]},m):pe.createElement(pe.Fragment,null,m),"wrapRadioRoot");return BT(()=>{if(!r&&p)if(t.value.defaultSelectedChains?.length){let m=p.filter(y=>y.getSupportedChains(c).some(C=>t.value.defaultSelectedChains?.includes(C.name)));u(m.map(y=>y.value))}else u(p.map(m=>m.value))},[]),pe.createElement(pe.Fragment,null,pe.createElement(AT,{type:"info",title:tn.t("Connect {wallet}",{wallet:e.title}),description:tn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:pe.createElement(IT,{src:s,size:45})}),r?pe.createElement(pe.Fragment,null,pe.createElement(pi,{size:20}),pe.createElement(xT,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:tn.t("This wallet can only connect to one chain at a time. ")})):pe.createElement(pe.Fragment,null,pe.createElement(pi,{size:30}),pe.createElement(ET,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:g},h?tn.t("Deselect all"):tn.t("Select all"))),pe.createElement(ci,null,f(pe.createElement(pe.Fragment,null,a?.data.map((m,y,C)=>pe.createElement(pe.Fragment,{key:m.id},m.unsupported?pe.createElement(si,{namespace:m}):pe.createElement(Qu,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),y!==C.length-1&&pe.createElement(pi,{size:10})))))),pe.createElement(pi,{size:20}),pe.createElement(en,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},tn.t("Connect")))}i(Fn,"Namespaces");import{i18n as Ss}from"@lingui/core";import{Divider as Cs,Image as OT,MessageBox as UT}from"@rango-dev/ui";import lt from"react";import{i18n as hs}from"@lingui/core";import{Button as PT,Spinner as MT}from"@rango-dev/ui";import{useWallets as _T}from"@rango-dev/wallets-react";import ys,{useLayoutEffect as DT,useRef as $T,useState as FT}from"react";var Gu=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,{connect:a,disconnect:s,state:c}=_T(),[l,u]=FT(null),d=c(o).namespaces?.get(n.value),h=d.accounts?.[0]?.split(":"),g=$T(!1);DT(()=>{r&&!g.current&&f(o,n.value)},[]);let f=i(async(C,S)=>{try{g.current=!0,await a(C,[{namespace:S,network:""}])}catch(k){u(k)}finally{g.current=!1}},"handleConnectNamespace"),m=i(async C=>{u(null),C.connected?await s(o,[n.value]):f(o,n.value)},"handleButtonClick"),y=i(()=>d.connected?hs.t("Disconnect"):l?hs.t("Try again"):hs.t("Connect"),"getButtonText");return ys.createElement(xo,{namespace:n,connected:d.connected,error:l?.message,address:d.connected?oo(h?.[h?.length-1]):"",suffix:d.connecting?ys.createElement(MT,{color:"info"}):ys.createElement(PT,{id:"widget-name-space-connect-btn",variant:"ghost",type:d.connected?"error":"primary",size:"small",onClick:async()=>m(d)},y())})},"NamespaceDetachedItem");function On(t){let{selectedNamespaces:e,value:o}=t,{targetWallet:n}=o;return lt.createElement(lt.Fragment,null,lt.createElement(UT,{type:"info",title:Ss.t("Connect {wallet}",{wallet:n.type}),description:Ss.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:lt.createElement(OT,{src:n.image,size:45})}),lt.createElement(Cs,{size:20}),lt.createElement(ci,{id:"widget-detached-namespace-list",as:"ul"},n.needsNamespace?.data.map((r,a,s)=>lt.createElement(lt.Fragment,{key:r.id},r.unsupported?lt.createElement(si,{namespace:r}):lt.createElement(Gu,{walletType:n.type,namespace:r,initialConnect:e?.includes(r.value)}),a!==s.length-1&<.createElement(Cs,{size:10})))),lt.createElement(Cs,{size:20}),lt.createElement(en,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},Ss.t("Done")))}i(On,"Detached");import{i18n as on}from"@lingui/core";import{Divider as Ku,Image as HT,MessageBox as GT,Select as VT,TextField as KT}from"@rango-dev/ui";import ht,{useEffect as jT,useState as ju}from"react";import{namespaces as zT}from"@rango-dev/wallets-shared";var ui={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ts(t){let e=t?zT[t].derivationPaths:null;return e?[...e,ui]:[]}i(Ts,"getDerivationPaths");import{Button as qT,styled as ks,Typography as QT}from"@rango-dev/ui";var Vu=ks("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),vs=ks(QT,{paddingLeft:"$10"}),ws={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},tM=ks(qT,{minHeight:"$40"});var Xu="0";function Un(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=ju(null),[c,l]=ju(Xu),u=a===ui.id,p=Ts(o),d=i(({value:g})=>{let f=p?.find(m=>m.id===g);f&&(a===ui.id&&Number.isNaN(Number(c))&&l(Xu),s(f.id))},"handleDerivationPathItemClick"),h=i(()=>{let g=p.find(f=>f.id===a);if(g)e(g.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return jT(()=>{s(Ts(o)[0]?.id||null)},[o]),ht.createElement(ht.Fragment,null,ht.createElement(Ku,{size:20}),ht.createElement(GT,{type:"info",title:on.t("Select Derivation Path"),description:on.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:ht.createElement(HT,{src:n,size:45})}),ht.createElement(Vu,null,ht.createElement(vs,{variant:"body",size:"xsmall",color:"$neutral600"},on.t("Choose Derivation Path Template")),ht.createElement(VT,{id:"widget-derivation-path-template-select",value:a||"",options:p.map(g=>({value:g.id,label:g.label})),variant:"filled",handleItemClick:d,styles:{trigger:ws}}),ht.createElement(Ku,{size:20}),ht.createElement(vs,{variant:"body",size:"xsmall",color:"$neutral600"},u?on.t("Enter Path"):on.t("Enter Index")),ht.createElement(KT,{id:"widget-derivation-path-template-input",type:u?"text":"number",variant:"contained",value:c,onChange:g=>l(g.target.value),style:ws})),ht.createElement(en,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!p||!a||!c},on.t("Confirm")))}i(Un,"DerivationPath");import{i18n as nn}from"@lingui/core";import{Image as ZT,MessageBox as bs,WalletState as JT}from"@rango-dev/ui";import{useWallets as RT}from"@rango-dev/wallets-react";import Eo from"react";import{keyframes as XT,styled as mi}from"@rango-dev/ui";var mM=mi("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Yu=mi("div",{position:"relative"}),YT=XT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Zu=mi("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${YT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Ju=mi("div",{"& img":{borderRadius:"50%"}});function xs(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=RT();return Bn(a(n))===JT.CONNECTED?Eo.createElement(bs,{type:"success",title:nn.t("Wallet Connected"),description:nn.t("Your wallet is connected, you can use it to swap.")}):o?Eo.createElement(bs,{type:"error",title:nn.t("Failed to Connect"),description:o||nn.t("Your wallet is not connected. Please try again.")}):Eo.createElement(bs,{type:"loading",title:nn.t("Connecting to your wallet"),description:nn.t("Click connect in your wallet popup."),icon:Eo.createElement(Yu,null,Eo.createElement(Ju,null,Eo.createElement(ZT,{src:r,size:45})),Eo.createElement(Zu,null))})}i(xs,"ConnectStatus");import{i18n as Es}from"@lingui/core";import{Button as ek,Divider as Ru,MessageBox as tk}from"@rango-dev/ui";import di from"react";function Is(t){let{displayName:e,onConfirm:o,id:n}=t;return di.createElement(tk,{id:n,title:Es.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Es.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},di.createElement(Ru,{size:18}),di.createElement(Ru,{size:32}),di.createElement(ek,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Es.t("Confirm")))}i(Is,"ExperimentalChain");function em(t,e){return t().status==="init"&&!!e}i(em,"isOnStatus");function zn(t){return t().status==="namespace"}i(zn,"isOnNamespace");function qn(t){return t().status==="derivationPath"}i(qn,"isOnDerivationPath");function Qn(t){return t().status==="detached"}i(Qn,"isOnDetached");var ik=3e3,ak=300;function Hn(t){let e=rk(),[o,n]=tm(!1),[r,a]=tm(),s=i(k=>{a(k.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=kt(),{handleConnect:l,handleDerivationPath:u,handleNamespace:p,getState:d,resetState:h}=qo(),g=i(k=>{p(t.wallet,k).then(S).catch(s)},"handleConfirmNamespaces"),f=i(()=>{y()},"handleDetachedConfirm"),m=i(k=>{if(!k)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");u(k).then(S).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),S=i((k,v)=>{let x=k.status==="connected",I=["disconnected","disconnected-unhandled"].includes(k.status);x?(t.onConnect?.(),v||(e.current=setTimeout(y,ik))):I&&y()},"afterConnected");return nk(()=>{if(t.wallet){C();let k=!1,v=!0;i(()=>{setTimeout(()=>{v=!1,k||n(!0)},ak)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(I=>{["namespace","Detached","derivation-path"].includes(I.status)||(k=!0),S(I,v)}).catch(s)}},[t.wallet]),no.createElement(R,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},em(d,t.wallet)&&no.createElement(no.Fragment,null,no.createElement(xs,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),no.createElement(ok,{direction:"vertical",size:32})),zn(d)&&no.createElement(Fn,{onConfirm:g,value:d().namespace}),qn(d)&&no.createElement(Un,{onConfirm:m,value:d().derivationPath}),Qn(d)&&no.createElement(On,{onConfirm:f,value:d().namespace,selectedNamespaces:d().selectedNamespaces}))}i(Hn,"StatefulConnectModal");import{Provider as uk}from"@rango-dev/wallets-react";import fi,{createContext as mk,useEffect as am,useMemo as dk,useRef as sm}from"react";import{useEffect as sk}from"react";function om(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(om,"hashProviders");function As(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=T(),a=n();return sk(()=>{o(),r()},[om(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(As,"useWalletProviders");import{legacyFormatAddressWithNetwork as lk,legacyReadAccountAddress as nm}from"@rango-dev/wallets-core/legacy";import{Events as rn}from"@rango-dev/wallets-react";import{isEvmBlockchain as ck}from"rango-sdk";function rm(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=T(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,u=s().filter(ck).map(m=>m.name),p=i((m,y)=>{let[C,,S,k,v]=m,x={walletType:C,network:k.network??void 0,accounts:S};c.current?c.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let I=Ya(C,S,u,y.supportedChainNames,v.isContractWallet);I.length&&e(I,v.namespace,k.derivationPath)},"onAccountsEvent"),d=i((m,y,C,S,k)=>{if(y===rn.ACCOUNTS){let v=Wn(k.supportedBlockchains);C&&p([m,y,C,S,k],{supportedChainNames:v})}y===rn.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),y===rn.NAMESPACE_DISCONNECTED&&n(m,C)},"handleUpdatesForHub"),h=i((m,y,C,S,k)=>{if(y===rn.ACCOUNTS){let v=Wn(k.supportedBlockchains),x=[],I=[];if(C?.forEach(E=>{let{network:b}=nm(E);u.includes(b)?x.push(E):I.push(E)}),r.filter(E=>E.walletType===m).map(E=>lk(E.address,E.chain)).length>0){if(x.length>0){let E=Ya(m,x,u,v,k.isContractWallet);a(m,{chains:E.map(b=>b.chain)})}I.length>0&&a(m,{chains:I.map(E=>{let{network:b}=nm(E);return b})})}C?p([m,y,C,S,k],{supportedChainNames:v}):(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),g=i((m,y,C,S,k)=>{if(y===rn.CONNECTED&&C){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(y===rn.NETWORK&&C){let v={walletType:m,network:C,accounts:S.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((m,y,C,S,k)=>{k.isHub?d(m,y,C,S,k):h(m,y,C,S,k),g(m,y,C,S,k)},"handler")}}i(rm,"useUpdates");import{LegacyEvents as pk}from"@rango-dev/wallets-core/legacy";function im(t,e){let[o,n,r,a,s]=e;n!==pk.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(im,"propagateEvents");var gi=mk({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function fk(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=T(),a=T().blockchains(),s=T().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=As(s.wallets,c),u=sm(),p=sm(),{handler:d}=rm({onConnectWalletHandler:u,onDisconnectWalletHandler:p});am(()=>{n().catch(console.log)},[]),am(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let h=oe.use.isActiveTab(),g=dk(()=>({onConnectWallet:f=>{u.current=f},onDisconnectWallet:f=>{p.current=f}}),[]);return fi.createElement(gi.Provider,{value:g},fi.createElement(uk,{allBlockChains:a,providers:l,onUpdateState:(f,m,y,C,S)=>{let k=[f,m,y,C,S];d(...k),t.onUpdateState&&im(t.onUpdateState,k)},autoConnect:!!h,configs:{wallets:s.wallets}},t.children))}i(fk,"Main");function hi(t){let{config:e,...o}=t;return fi.createElement(Nu,{config:e},fi.createElement(fk,{...o,config:e}))}i(hi,"WidgetWallets");import za from"react";import gk,{Fragment as hk}from"react";import{MemoryRouter as yk,useInRouterContext as Sk}from"react-router";function lm({children:t}){let o=Sk()?hk:yk;return gk.createElement(o,null,t)}i(lm,"AppRouter");import{I18nManager as R0}from"@rango-dev/ui";import gp from"react";import ze from"react";import{useRoutes as U0}from"react-router-dom";var F={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as sn,useRef as bi}from"react";import tt from"bignumber.js";import{create as vk}from"zustand";import{subscribeWithSelector as wk}from"zustand/middleware";import{i18n as vt}from"@lingui/core";import{getRelatedWalletOrNull as kk,RouteEventType as oD}from"@rango-dev/queue-manager-rango-preset";import Ge from"bignumber.js";import{PendingSwapNetworkStatus as vi}from"rango-types";import{i18n as He}from"@lingui/core";var ne=i(()=>({genericServerError:He.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:He.t("Please reset your liquidity sources."),description:He.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:He.t("No Routes Found."),description:He.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:He.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:He.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:He.t("High Price Impact"),title:He.t("Price impact is too high!"),description:He.t("The price impact is significantly higher than the allowed amount."),confirmMessage:He.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:He.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:He.t("USD Price Unknown"),title:He.t("USD Price Unknown, Cannot calculate Price Impact."),description:He.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:He.t("Confirm USD Price Unknown")}}),"errorMessages");function cm(t){return t.type===0?t.diagnosisMessage??ne().noResultError.title:t.type===1?t.diagnosisMessage??ne().genericServerError:""}i(cm,"getQuoteErrorMessage");import{i18n as yi}from"@lingui/core";var Io=i(()=>({connectWallet:yi.t("Connect Wallet"),swap:yi.t("Swap"),swapAnyway:yi.t("Swap anyway"),ethWarning:yi.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ns(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Ns,"getFeeLabel");var Bs=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],pm=100,um=30,mm=15,dm=60;var fm=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],gm=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as Tk}from"@rango-dev/queue-manager-rango-preset";import q_ from"bignumber.js";function ym(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(ym,"getRequiredBalanceOfWallet");function Ht(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Ht,"getPriceImpactLevel");function Si(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Tk(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=Co(a?a.toBlockchain:n.fromBlockchain,e),l=Co(r.toBlockchain,e),u=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),p=o(s),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:u,toBlockchain:l,toToken:p,inputAmount:d}}i(Si,"createRetryQuote");function an(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=Gn(o),s=yt(o);if(o&&a&&s){let u=Qt(a.toString(),s.toString());if(!!u&&vm(a,u)){let d=Ti(o?.swaps,n),h=Ht(u);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:u,totalFee:d,warningLevel:h}}}if(e&&xm(e,o))return{type:4,usdValueChange:_(yt(o)?.minus(yt(e)??0).toString()??"0",null,2),percentageChange:_(Qt(yt(e)??"1",yt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=ki(o.swaps),l=r>Ko;if(bm(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:wm(o,r),minRequiredSlippage:c};return null}i(an,"generateQuoteWarnings");function Sm(t){return![4].includes(t.type)}i(Sm,"isQuoteWarningConfirmationRequired");function Qt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ws(t.toString(),e.toString());return n&&n<0?n:null}i(Qt,"getPriceImpact");var Cm=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"),Ci=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(p=>p.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),Tm=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(c=>c.swapperId));return Array.from(n).every(c=>s.has(c))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),km=i(t=>{let e=i((o,n)=>{let r=Bs.indexOf(o.value),a=Bs.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function vm(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return fm.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ge(r)))}i(vm,"hasHighValueLoss");function Em(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(Em,"hasLimitError");function Im(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new Ge(c.fromAmountMinValue):null,u=c.fromAmountMaxValue?new Ge(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||u?.lte(c.fromAmount):l?.gt(c.fromAmount)||u?.lt(c.fromAmount)})[0],o=e.fromAmountMinValue?new Ge(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ge(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=vt.t({id:"Required: >= {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=vt.t({id:"Required: > {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=vt.t({id:"Required: <= {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=vt.t({id:"Required: < {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Im,"getLimitErrorMessage");function Am(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Io().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Io().swap,action:"confirm-swap",disabled:!0}:s?{title:Io().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Io().ethWarning,action:"confirm-warning",disabled:!1}:{title:Io().swap,action:"confirm-swap",disabled:!1}:{title:Io().connectWallet,action:"connect-wallet",disabled:!1}}i(Am,"getSwapButtonState");function Ls(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ce))&&e&&e!=="0"&&n!==0)}i(Ls,"canComputePriceImpact");function Ps(t,e){let o=ce;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ge(r.amount).multipliedBy(a||0))}return o}i(Ps,"getUsdFeeOfStep");function Ti(t,e){return t.reduce((o,n)=>o.plus(Ps(n,e)),ce)}i(Ti,"getTotalFeeInUsd");function Ms(t){let e=ce,o=new Ge(t.price||0);return e=e.plus(new Ge(t.amount).multipliedBy(o)),e}i(Ms,"getUsdFee");function Nm(t){return t.reduce((e,o)=>e.plus(Ms(o)),ce)}i(Nm,"getTotalFeesInUsd");function Bm(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(Bm,"getFeesGroup");function Wm(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(Wm,"checkSlippageErrors");function wm(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(wm,"checkSlippageWarnings");function ki(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(ki,"getMinRequiredSlippage");function bm(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(bm,"hasProperSlippage");function Lm(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:u,affiliateRef:p,affiliatePercent:d,affiliateWallets:h,destination:g,contractCall:f}=t,m=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),y=[];return r?.forEach(S=>{y.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:p??void 0,affiliatePercent:d??void 0,affiliateWallets:h??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:y,selectedWallets:m??{},slippage:u.toString(),contractCall:f,...g&&{destination:g},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(Lm,"createQuoteRequestBody");function Pm(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Pm,"getWalletsForNewSwap");function Gn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}i(Gn,"getUsdInputFrom");function yt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new Ge(e).multipliedBy(o)}i(yt,"getUsdOutputFrom");function Ws(t,e){return new Ge(e).div(new Ge(t)).minus(1).multipliedBy(pm).toNumber()}i(Ws,"getPercentageChange");function xm(t,e){let o=Gn(t),n=yt(t),r=yt(e);if(!o||!n||!r)return!1;let a=Ws(n.toString(),r.toString());return gm.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(xm,"isOutputAmountChangedExcessively");function Mm(t,e,o){let n=t.validationStatus,r=vo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>ym(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=_(new Ge(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=_(new Ge(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),p="";return s.reason==="FEE"&&(p=vt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(p=vt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(p=vt.t(" for input and network fee")),vt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:c,reason:p,currentAmount:l,blockchain:ft(s.asset.blockchain,o)}})})}i(Mm,"generateBalanceWarnings");function Vn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==vi.NetworkChanged}i(Vn,"isNetworkStatusInWarningState");function _m(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),Vn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let u=(e?kk(t,e):null)?.walletType,p=u?o?.(u)?.name:null;switch(e?.networkStatus){case vi.WaitingForConnectingWallet:r=p?vt.t("Connect {wallet}",{wallet:p}):r;break;case vi.WaitingForQueue:r=r||vt.t("Waiting for other running tasks to be finished");break;case vi.WaitingForNetworkChange:r=r||vt.t("Waiting for changing wallet network");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(_m,"getSwapMessages");function Dm(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(Dm,"getLastConvertedTokenInFailedSwap");function $m(t){return t.status==="failed"}i($m,"shouldRetrySwap");function Fm(t,e,o,n,r,a){if(!n||t)return!0;let s=vo({filter:"all",quote:n}),c=vo({filter:"required",quote:n}),l=s.every(d=>r.some(h=>h.chain===d)),u=c.every(d=>r.some(h=>h.chain===d)),p=o&&a?Ho(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!p||!u)}i(Fm,"isConfirmSwapDisabled");function Om(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Om,"isTokensIdentical");var wi=i((t,e)=>t?.usdPrice?new tt(e||ce).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Jo(vk()(wk(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new tt(0),outputUsdValue:new tt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=ce,a=o.inputUsdValue;return Nn(o.inputAmount)?(e&&(n=e?.outputAmount?new tt(e?.outputAmount):null,a=Gn(e)??ce,r=yt(e)??ce),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new tt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new tt(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new tt(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 tt(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),sanitizeInputAmount:e=>{let o=eu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;Vr(e)||(o=Vp(o),o=Kp(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new tt(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 tt(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 tt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new tt(0),inputUsdValue:new tt(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new tt(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})})))),Um=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ve.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&&ve.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function zm(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:u}=O(),p=T().config,d=T().fetchStatus,h=T().blockchains(),{findToken:g}=T(),{setAffiliateRef:f,setAffiliatePercent:m,setAffiliateWallets:y}=T(),C=p?.from?.tokens,S=p?.from?.blockchains,k=p?.to?.tokens,v=p?.to?.blockchains,x=bi(void 0),I=bi(void 0),A=bi(void 0),E=bi(void 0);sn(()=>{typeof p.amount<"u"&&t(p.amount.toString())},[p?.amount]),sn(()=>{if(d==="success"){r();let b=h.find(M=>M.name===p?.from?.blockchain),w=p?.from?.token,B=w&&g(w);(b||!b&&A.current)&&n(b??null),B?a({token:B,meta:{blockchains:h}}):!B&&x.current&&a({token:null}),A.current=p?.from?.blockchain,x.current=p?.from?.token}},[p?.from?.token?.symbol,p?.from?.token?.address,p?.from?.token?.blockchain,p?.from?.blockchain,d]),sn(()=>{es(s,C)&&a({token:null}),ts(l,S)&&n(null)},[C,S]),sn(()=>{es(c,k)&&a({token:null}),ts(u,v)&&o(null)},[k,v]),sn(()=>{if(d==="success"){r();let b=h.find(M=>M.name===p?.to?.blockchain),w=p?.to?.token,B=w&&g(w);(b||!b&&E.current)&&o(b??null),B?e({token:B,meta:{blockchains:h}}):!B&&I.current&&e({token:null}),E.current=p?.to?.blockchain,I.current=p?.to?.token}},[p?.to?.token?.symbol,p?.to?.token?.address,p?.to?.token?.blockchain,p?.to?.blockchain,d]),sn(()=>{f(p?.affiliate?.ref??null),m(p?.affiliate?.percent??null),y(p?.affiliate?.wallets??null)},[p?.affiliate?.ref,p?.affiliate?.percent,p?.affiliate?.wallets])}i(zm,"useSyncStoresWithConfig");import{useEffect as $s,useRef as bk}from"react";import{useInRouterContext as xk,useLocation as Ek,useSearchParams as Ik}from"react-router-dom";function _s(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(_s,"convertTokenSearchParamToAsset");function Ds(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ds,"tokenToSearchParam");function Os(){let t=Ek(),[e,o]=Ik(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:u,setFromToken:p,setToToken:d,setInputAmount:h}=O(),g=T().fetchStatus,f=T().blockchains(),m=xk(),{updateIframe:y,updateCampaignMode:C}=T(),S=T().isInCampaignMode(),k=bk(),{findToken:v}=T(),x=i(()=>{let A={};for(let[L,te]of e.entries())L.startsWith("utm_")&&(A[L]=te);let E=e.get("fromAmount"),b=e.get("fromBlockchain"),w=e.get("fromToken"),B=e.get("toBlockchain"),M=e.get("toToken"),$=e.get("autoConnect"),q=e.get("clientUrl"),ee=e.get("liquiditySources"),V=e.get("blockchain");return{fromAmount:E,fromBlockchain:b,fromToken:w,toBlockchain:B,toToken:M,autoConnect:$,clientUrl:q,liquiditySources:ee,utmQueryParams:A,blockchain:V}},"getUrlSearchParams"),I=i(A=>{for(let E in A)A[E]||delete A[E];o(A,{replace:!0})},"updateUrlSearchParams");$s(()=>{let{autoConnect:A,clientUrl:E,utmQueryParams:b,blockchain:w}=x();m&&g==="success"&&I({fromBlockchain:n?.name,fromToken:Ds(a),toBlockchain:r?.name,toToken:Ds(s),fromAmount:c,autoConnect:A??void 0,clientUrl:E??void 0,blockchain:w??void 0,liquiditySources:S?k.current:void 0,...b})},[t.pathname,c,n,a,r,s,S,g]),$s(()=>{if(!m)return;let A=x();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&h(A.fromAmount),g==="success"){let E=f.find(M=>M.name===A.fromBlockchain),b=A.fromToken&&E?v(_s(A.fromToken,E)):void 0,w=f.find(M=>M.name===A.toBlockchain),B=A.toToken&&w?v(_s(A.toToken,w)):void 0;E&&(l(E),b&&p({token:b,meta:{blockchains:f}})),w&&(u(w),B&&d({token:B,meta:{blockchains:f}}))}},[g]),$s(()=>{let{clientUrl:A,liquiditySources:E}=x();y("clientUrl",A||void 0),C("liquiditySources",E?.split(",")??void 0)},[])}i(Os,"useSyncUrlAndStore");import{i18n as mn}from"@lingui/core";import{Alert as jv,Button as Xv,darkTheme as Yv,Divider as hl,DoneIcon as Zv,styled as Jv,TextField as Rv,Typography as ew}from"@rango-dev/ui";import Ke,{useState as tw}from"react";import{useNavigate as ow,useSearchParams as nw}from"react-router-dom";import{ChevronRightIcon as Ak,Divider as Vm,Image as Nk,Typography as Km}from"@rango-dev/ui";import wt from"react";import{darkTheme as qm,styled as Us}from"@rango-dev/ui";var Qm=Us("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${qm} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${qm} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),Hm=Us("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),Gm=Us("div",{display:"flex"});function zs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return wt.createElement(Hm,null,wt.createElement(Km,{size:"large",variant:"label"},n),wt.createElement(Vm,{size:10}),wt.createElement(Qm,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},wt.createElement(Gm,null,r&&wt.createElement(wt.Fragment,null,wt.createElement(Nk,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),wt.createElement(Vm,{size:4,direction:"horizontal"})),wt.createElement(Km,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),wt.createElement(Ak,{size:12,color:"black"})))}i(zs,"BlockchainSelectorButton");import{i18n as Vs}from"@lingui/core";import{Button as Pk,Divider as Zm,MessageBox as Mk}from"@rango-dev/ui";import ro,{useEffect as Jm,useState as Ks}from"react";import{i18n as xi}from"@lingui/core";import{Divider as Ao,ExternalLinkIcon as Wk,Image as Lk,Typography as cn}from"@rango-dev/ui";import we from"react";var jm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function Xm(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Xm,"generateExplorerLink");import{Button as Bk,darkTheme as ln,styled as qs}from"@rango-dev/ui";var Qs=qs("a",{textDecoration:"none",color:"$colors$neutral700",[`.${ln} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${ln} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${ln} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${ln} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),Ym=qs("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${ln} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${ln} &`]:{color:"$colors$neutral900"}}}),Hs=qs(Bk,{minHeight:"$40"});function Gs(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=Xm(n.address,s),l=i(()=>window.open(jm,"_blank"),"onClickLearnMore");return we.createElement(R,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},we.createElement(Ym,null,we.createElement(Lk,{src:n.image===""?zr:n.image,size:45,type:"circular"}),we.createElement(Ao,{size:4}),we.createElement(cn,{variant:"title",size:"medium"},n.symbol),we.createElement(cn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),we.createElement(Ao,{size:4}),we.createElement(cn,{variant:"body",size:"medium"},c?we.createElement(Qs,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,we.createElement(Wk,{size:12,color:"gray"})):we.createElement(Qs,null,n.address)),we.createElement(Ao,{size:4}),n.coinSource&&we.createElement(cn,{className:"_coin-source",variant:"body",size:"xsmall"},xi.t("via")," ",we.createElement(cn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),we.createElement(Ao,{size:"32"}),we.createElement(cn,{size:"medium",variant:"body",className:"_custom-token-description"},xi.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),we.createElement(Ao,{size:40}),we.createElement(Ao,{size:10}),we.createElement(Hs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},xi.t("Import Anyway")),we.createElement(Ao,{size:10}),we.createElement(Hs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},xi.t("Learn More")))}i(Gs,"CustomTokenModal");function Kn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:u}=t,{setCustomToken:p}=T(),[d,h]=Ks(!1),[g,f]=Ks(!1),[m,y]=Ks(!1),C=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),S=i(()=>{n?.type!=="network-error"&&s?.(),h(!1)},"closeErrorModal"),k=i(()=>{y(!0),S()},"handleErrorModalButtonClick"),v=i(()=>{m&&n?.type==="network-error"&&(y(!1),C()),l()},"handleExit"),x=i(()=>{e&&(p(e),c())},"handleSubmit");return Jm(()=>{n&&h(!0)},[n]),Jm(()=>{o&&e&&f(!0)},[o,e]),ro.createElement(ro.Fragment,null,ro.createElement(R,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:S,onExit:v,container:N()},ro.createElement(Mk,{title:n?.title??"",type:"error",description:n?.message||Vs.t("Failed Network, Please retry.")},ro.createElement(Zm,{size:40}),ro.createElement(Zm,{size:10}),ro.createElement(Pk,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:k},n?.type==="network-error"?Vs.t("Retry"):Vs.t("Add another custom token")))),o&&e&&ro.createElement(Gs,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>f(!1),open:g,onExit:u}))}i(Kn,"ImportCustomToken");import{useManager as qv}from"@rango-dev/queue-manager-react";import{BottomLogo as Qv,Divider as Bd,Header as Hv}from"@rango-dev/ui";import We,{useEffect as Mi,useLayoutEffect as Gv,useRef as Wd,useState as Ld}from"react";import{useRef as _k}from"react";function jn(){return window.self!==window.top}i(jn,"isAppLoadedIntoIframe");function js(){let t=_k(null),{iframe:e}=T(),o=jn()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(js,"useIframe");import{useNavigate as Dk}from"react-router-dom";function Ve(){let t=Dk();return()=>t(-1)}i(Ve,"useNavigateBack");import{useLayoutEffect as $k,useState as Xn}from"react";var Rm=480,ed=768,td=1024,od=1200,Fk=i(()=>{let[t,e]=Xn(!1),[o,n]=Xn(!1),[r,a]=Xn(!1),[s,c]=Xn(!1),[l,u]=Xn(!1),p=i(()=>{e(window.innerWidth<=Rm),n(window.innerWidth>Rm&&window.innerWidth<=ed),a(window.innerWidth>ed&&window.innerWidth<=td),c(window.innerWidth>td&&window.innerWidth<=od),u(window.innerWidth>od)},"handleResize");return $k(()=>(p(),window.addEventListener("resize",p),()=>window.removeEventListener("resize",p)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),pn=Fk;import{createTheme as tl,darkTheme as Zk,lightTheme as Jk}from"@rango-dev/ui";import{useEffect as Rk,useState as ev}from"react";import{theme as Xk,darkColors as Yk}from"@rango-dev/ui";import Rs from"react";var Ei=16,Ii=255,nd=.11;function Ok(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Ok,"expandShortHexColor");function Uk(t,e){return t.padStart(e,"0")}i(Uk,"pad");function Xs(t){let e=Math.min(Math.max(Math.round(t),0),Ii);return Uk(e.toString(Ei),2)}i(Xs,"intToHex");function zk(t){return`#${Xs(t.red)}${Xs(t.green)}${Xs(t.blue)}`}i(zk,"rgbToHex");function qk(t){let e=parseInt(t.slice(1,3),Ei),o=parseInt(t.slice(3,5),Ei),n=parseInt(t.slice(5,7),Ei);return{red:e,green:o,blue:n}}i(qk,"hexToRGB");function Qk(t,e){let o=1-nd*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Qk,"generateShade");function Hk(t,e){let o=nd*e;return{red:t.red+(Ii-t.red)*o,green:t.green+(Ii-t.green)*o,blue:t.blue+(Ii-t.blue)*o}}i(Hk,"generateTint");function Gk(t){return rd(t,Qk)}i(Gk,"calculateShades");function Vk(t){return rd(t,Hk)}i(Vk,"calculateTints");function rd(t,e){let o=qk(t),n=[];for(let r=1;r<9;r++)n.push(zk(e(o,r)));return n}i(rd,"calculateColors");function Ys(t,e,o){let a=Vk(t).reverse().concat(t),s=Gk(t),c=a.concat(s),l={},u=c.length;for(let p=0;p<u;p++){let d=100+(o?u-1-p:p)*50;l[`${e}${d}`]=c[p]}return l}i(Ys,"createTintsAndShades");function Zs(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!Jp(r)){let l=Ok(a);Object.assign(n,Ys(l,r,s))}}return{...n,...e}}i(Zs,"expandToGenerateThemeColors");var id=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Kk=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=id(o%52)+e;return id(o%52)+e},"toAlphabeticName"),jk=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Js=i(t=>Kk(jk(5381,JSON.stringify(t))>>>0),"toHash");function el(t){let e=Xk.colors,o={...e,...Yk},n,r;if(t?.light){let s={colors:Zs(e,t.light)};n={id:`${Ra}-light-${Js(s)}`,tokens:s}}if(t?.dark){let s={colors:Zs(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Ra}-dark-${Js(s)}`,tokens:s}}return{light:n,dark:r}}i(el,"customizedThemeTokens");function ad(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Rs.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Rs.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(Rs.cloneElement(e,{key:c}))}}),o}i(ad,"joinList");function sd(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(sd,"doesWindowPreferDarkColorScheme");function io(t){let{colors:e,fontFamily:o=Dp,borderRadius:n=mu,secondaryBorderRadius:r=du}=t,[a,s]=ev(sd()?"dark":"light"),{theme:c}=T(),{dark:l,light:u}=el(e),p=tl({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[p.className,Jk.className],h=[p.className,Zk.className];if(u){let f=tl(u.id,u.tokens);d.push(f.className)}if(l){let f=tl(l.id,l.tokens);h.push(f.className)}return Rk(()=>{let f=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return sd()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=d.join(" "),m=h.join(" ");return c==="auto"?a==="dark"?m:f:c==="dark"?m:f},"getActiveTheme"),mode:c==="auto"?a:c}}i(io,"useTheme");var St=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as ld}from"@lingui/core";import{Alert as tv,Button as ov}from"@rango-dev/ui";import cd from"react";function ol(t){return cd.createElement(tv,{action:cd.createElement(ov,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},ld.t("Activate this tab")),type:"warning",variant:"alarm",title:ld.t("Another tab is open and handles transactions.")})}i(ol,"ActivateTabAlert");import{i18n as nl}from"@lingui/core";import{Button as nv,Divider as rv,MessageBox as iv}from"@rango-dev/ui";import Ai from"react";function rl(t){let{open:e,onClose:o,onConfirm:n}=t;return Ai.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},Ai.createElement(iv,{title:nl.t("Activate current tab"),type:"warning",description:nl.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},Ai.createElement(rv,{size:20}),Ai.createElement(nv,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},nl.t("Confirm"))))}i(rl,"ActivateTabModal");import{ChevronLeftIcon as lv}from"@rango-dev/ui";import yd from"react";import{css as av,darkTheme as pd,IconButton as sv,styled as No}from"@rango-dev/ui";var Pt=No(sv,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${pd} &`]:{backgroundColor:"$neutral"}}}),ud=No("div",{position:"absolute",background:"$secondary500",[`.${pd} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),ao=No("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),md=No("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"}}}}),dd=No("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),fd=No("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),gd=av({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),hd=No("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function il(t){return yd.createElement(Pt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},yd.createElement(lv,{color:"black",size:16}))}i(il,"BackButton");import{i18n as cv}from"@lingui/core";import{Button as pv,Typography as uv}from"@rango-dev/ui";import al from"react";function sl(t){return al.createElement(ao,null,al.createElement(pv,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},al.createElement(uv,{variant:"label",size:"medium",color:"error500"},cv.t("Cancel"))))}i(sl,"CancelButton");import{i18n as mv}from"@lingui/core";import{Image as dv,Tooltip as fv,WalletIcon as gv}from"@rango-dev/ui";import Bo from"react";function ll(t){let{list:e}=kt(),o=e.filter(r=>r.state==="connected"),n=o.length?Bo.createElement("div",{className:gd()},o.map(r=>Bo.createElement(hd,{key:r.title},Bo.createElement(dv,{src:r.image,size:14})))):mv.t("Connect Wallet");return Bo.createElement(fv,{container:t.container,side:"bottom",content:n},Bo.createElement(Pt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Bo.createElement(ud,null),Bo.createElement(gv,{size:18,color:"black"})))}i(ll,"WalletButton");import{i18n as Bi}from"@lingui/core";import{NotificationsIcon as Wv,Popover as Lv,SettingsIcon as Pv,Tooltip as Wi,TransactionIcon as Mv}from"@rango-dev/ui";import De from"react";import{Notifications as Cv}from"@rango-dev/ui";import Tv from"react";import{useNavigate as kv}from"react-router-dom";import{create as hv}from"zustand";import{persist as yv,subscribeWithSelector as Sv}from"zustand/middleware";var Be=Jo(hv()(yv(Sv((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function cl(){let t=kv(),{getNotifications:e,clearNotifications:o}=Be(),n=e(),r=T().blockchains(),{findToken:a}=T();return Tv.createElement(Cv,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Ip(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${F.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(cl,"NotificationContent");import{useManager as vv}from"@rango-dev/queue-manager-react";import{InProgressIcon as wv}from"@rango-dev/ui";import Sd from"react";var bv=i(()=>{let{manager:t}=vv();return St(t).map(({swap:o})=>o).find(o=>o.status==="running")?Sd.createElement(fd,{id:"widget-header-history-badge-container"},Sd.createElement(wv,{color:"info",size:6})):null},"InProgressTransactionBadge"),Cd=bv;import{EventSeverity as xv}from"@rango-dev/queue-manager-rango-preset";import{Typography as Ev}from"@rango-dev/ui";import Td from"react";function kd(){let{getNotifications:t}=Be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===xv.WARNING);return o?Td.createElement(md,{isSever:n},Td.createElement(Ev,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(kd,"NotificationsBadge");import{RefreshProgressButton as Iv}from"@rango-dev/ui";import pl,{useEffect as Av,useState as vd}from"react";var Nv=1e3,wd=60,Bv=100;function Ni({onClick:t}){let[e,o]=vd(0),[n,r]=vd(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Av(()=>{let l;return t?l=window.setInterval(()=>{o(u=>u+1),e===wd&&c()},Nv):s(l),document.addEventListener("visibilitychange",()=>a(l)),()=>{document.removeEventListener("visibilitychange",()=>a(l)),l&&clearInterval(l)}},[e,t]);let s=i(l=>{l&&clearInterval(l),o(0)},"clearTimeout"),c=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return pl.createElement(Pt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},pl.createElement(dd,{onTransitionEnd:()=>r(!1),isRefetched:n},pl.createElement(Iv,{size:22,color:t?"black":"gray",progress:e/wd*Bv})))}i(Ni,"RefreshButton");function Wo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=T(),c=et("notification",s)||r.includes("notifications");return De.createElement(De.Fragment,null,!r.includes("refresh")&&De.createElement(Wi,{container:a||N(),side:"top",content:Bi.t("Refresh")},De.createElement(Ni,{onClick:e})),!c&&De.createElement(Lv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:De.createElement(cl,null)},De.createElement("div",null,De.createElement(Wi,{container:N(),side:"top",content:Bi.t("Notifications")},De.createElement(Pt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},De.createElement(Wv,{size:18,color:"black"}),De.createElement(kd,null))))),!r.includes("settings")&&De.createElement(Wi,{container:N(),side:"top",content:Bi.t("Settings")},De.createElement(Pt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},De.createElement(Pv,{size:18,color:"black"}))),!r.includes("history")&&De.createElement(Wi,{container:N(),side:"top",content:Bi.t("History")},De.createElement(Pt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},De.createElement(Mv,{size:18,color:"black"}),De.createElement(Cd,null))))}i(Wo,"HeaderButtons");import{i18n as ul}from"@lingui/core";import{Divider as xd,MessageBox as $v,RefreshIcon as Fv}from"@rango-dev/ui";import un from"react";import{Button as _v,styled as Dv}from"@rango-dev/ui";var bd=Dv(_v,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ml(t){let{open:e,onClose:o}=t;return un.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},un.createElement($v,{title:ul.t("Something went wrong"),type:"error",description:ul.t("Something went wrong. Please refresh the app.")},un.createElement(xd,{size:30}),un.createElement(bd,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},un.createElement(Fv,{size:20,color:"primary"}),un.createElement(xd,{size:4,direction:"horizontal"}),ul.t("Refresh"))))}i(ml,"RefreshModal");function dl(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(dl,"onScrollContentAttachStatusToContainer");import{css as Uv,styled as Li}from"@rango-dev/ui";var Pi=Uv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Ed=Li("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"}}}}),Id=Li("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Ad=Li("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"}}}),Nd=Li("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=js(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:u}}=T(),[p,d]=Ld(!1),{config:{features:h,theme:g}}=T(),{watermark:f,setShowCompactTokenSelector:m}=oe(),y=f==="FULL",{activeTheme:C}=io(g||{}),[S,k]=Ld(!1),v=et("connectWalletButton",h),{isActiveTab:x,tabManagerInitiated:I,showActivateTabModal:A,setShowActivateTabModal:E,activateCurrentTab:b}=oe(),w=Ve(),{manager:B}=qv(),{isTablet:M,isMobile:$}=pn(),ee=St(B).map(({swap:X})=>X).some(X=>X.status==="running"),V=i(()=>b(bo.forceClaim,ee),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),te=typeof r.hasBackButton>"u"||r.hasBackButton,le=Wd(null),J=Wd(null);return Mi(()=>{let X=(u?.swapBoxBanner?.routes?.length??0)===0,j=!!u?.swapBoxBanner?.routes?.some(ue=>location.pathname.endsWith(ue));k(!!u?.swapBoxBanner&&(X||j))},[u?.swapBoxBanner?.routes?.toString(),location.pathname]),Mi(()=>(jn()&&J.current&&e(J.current),()=>{o()}),[]),Mi(()=>(le.current?.addEventListener("scroll",dl),()=>{le.current?.removeEventListener("scroll",dl)}),[]),Mi(()=>{d(c==="failed")},[c]),Gv(()=>{let X=s==="auto"||!J.current||jn(),j=$||M,ue=i(()=>{X||(j?J.current.style.height=`${window.innerHeight-J.current.offsetTop}px`:J.current.style.height=`${700}px`,m(parseFloat(J.current.style.height)<640))},"handler");return ue(),window.addEventListener("resize",ue),()=>window.removeEventListener("resize",ue)},[s,$,M]),We.createElement(Ed,{height:s,id:Re.SWAP_BOX_ID,className:`${C()} ${Pi()}`,ref:J,showBanner:S},We.createElement(Hv,{prefix:te?We.createElement(il,{onClick:()=>{w(),r.onBack?.()}}):null,title:r.title,suffix:We.createElement(We.Fragment,null,r.suffix,r.onWallet&&!v&&We.createElement(ll,{container:N(),onClick:L,isConnected:!!l?.length}),r.onCancel&&We.createElement(sl,{onClick:r.onCancel}))}),We.createElement(Id,{ref:le},n),We.createElement(rl,{open:A,onClose:()=>E(!1),onConfirm:V}),We.createElement(Ad,null,We.createElement("div",{className:"footer__content"},I&&!x&&We.createElement("div",{className:"footer__alert"},We.createElement(ol,{onActivateTab:V}),We.createElement(Bd,{size:10})),a),We.createElement(Bd,{size:12}),We.createElement("div",{className:`footer__logo ${y?"logo__show":"logo__hidden"}`},We.createElement(Qv,null))),S&&We.createElement(Nd,null,u?.swapBoxBanner?.element),We.createElement(ml,{open:p,onClose:()=>d(!1)}))}i(ie,"Layout");import{styled as Vv}from"@rango-dev/ui";var Pd="$20 $20 $10 $20",fl=Vv("div",{padding:Pd,overflowY:"auto",flexGrow:1});import{styled as Kv}from"@rango-dev/ui";var ae=Kv("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as so}from"@lingui/core";import{useState as gl}from"react";function Md(){let[t,e]=gl(!1),[o,n]=gl(null),[r,a]=gl(null),{findToken:s}=T(),c=T().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function u(d,h){switch(d){case"duplicated":return{type:d,title:so.t("Duplicate Token"),message:so.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:so.t("Token Already Exists"),message:so.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:d,title:so.t("Token Not Found"),message:so.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:h}})};case"network-error":return{type:d,title:so.t("Network error"),message:so.t("An error occurred while retrieving token data.")}}}return i(u,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:h})=>{e(!0);try{if(c.some(C=>C.address?.toLowerCase()===h.toLowerCase())){let C=u("duplicated");n(C);return}let f=await st().getCustomToken({blockchain:d,address:h});if(!f||!f.token||f.error){let C=u("not-found",d);n(C);return}let m=f.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let C=u("token-exist");n(C);return}return a({...m,warning:!0})}catch(g){if(g.code==="ERR_BAD_REQUEST"){let f=u("not-found",d);n(f);return}n(u("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(Md,"useFetchCustomToken");var rw=Jv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${Yv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function _d(){let t=ow(),[e]=nw(),o=Ve(),n=T().blockchains(),r=e.get("blockchain")||"",a=Co(r,n),[s,c]=tw(""),{fetchCustomToken:l,token:u,loading:p,error:d,resetState:h}=Md(),g=!!a&&Ho(a,s),f=!a||!s||!g,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ke.createElement(ie,{header:{title:mn.t("Add Custom Token")}},Ke.createElement(ae,null,Ke.createElement(rw,null,Ke.createElement("div",null,Ke.createElement(zs,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:mn.t("Select chain"),placeholder:mn.t("Select chain")}),Ke.createElement(hl,{size:"24"}),Ke.createElement(ew,{size:"large",variant:"label"},mn.t("Enter Address")),Ke.createElement(hl,{size:10}),Ke.createElement(Rv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:mn.t("Enter token address"),size:"large",value:s,suffix:!!s&&g&&Ke.createElement(Zv,{color:"success",size:12}),onChange:y=>c(y.target.value)}),!g&&!!s&&Ke.createElement(Ke.Fragment,null,Ke.createElement(hl,{size:4}),Ke.createElement(jv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ke.createElement(Xv,{id:"widget-add-custom-token-import-btn",disabled:f,type:"primary",variant:"contained",loading:p,size:"large",onClick:m},mn.t("Import"))),Ke.createElement(Kn,{token:u,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:h,onExitImportModal:h})))}i(_d,"AddCustomTokenPage");import{i18n as Kl}from"@lingui/core";import{useManager as qb}from"@rango-dev/queue-manager-react";import{Alert as Qb,Button as Hb,css as Xl,Divider as jl,IconButton as xg,styled as Gb,Typography as Vb,WalletIcon as Kb}from"@rango-dev/ui";import Fe,{useEffect as aa,useLayoutEffect as jb,useRef as Xb,useState as cr}from"react";import{useNavigate as Yb}from"react-router-dom";import{i18n as Lo}from"@lingui/core";import{Alert as Bw,BalanceErrors as Ww,Button as lf,ChevronLeftIcon as Lw,Divider as bl,MessageBox as Pw,Typography as xl}from"@rango-dev/ui";import re,{useCallback as Mw,useEffect as cf,useMemo as _w,useState as gn}from"react";import{useNavigate as Dw}from"react-router-dom";import{i18n as Tl}from"@lingui/core";import{Alert as cw,ChevronDownIcon as pw,CloseIcon as uw,Divider as qd,IconButton as Qd,PasteIcon as mw,Typography as dw,WalletIcon as fw}from"@rango-dev/ui";import $e,{useEffect as gw,useRef as hw}from"react";import Fi,{useRef as sw}from"react";import*as dn from"@radix-ui/react-collapsible";import{keyframes as Dd,styled as _i}from"@rango-dev/ui";var yl=300,iw=Dd({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),aw=Dd({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),$d=_i(dn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Sl=_i(dn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Di=_i(dn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${iw} ${yl}ms ease-out`},false:{animation:`${aw} ${yl}ms ease-out`}}}}),$i=_i("div",{transition:`all ${yl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Oi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=sw(null);return Fi.createElement($d,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&Fi.createElement(Sl,{className:"collapsible_trigger",onClick:a},s),Fi.createElement(Di,{className:"collapsible_content",open:e},r),c==="bottom"&&Fi.createElement(Sl,{className:"collapsible_trigger",onClick:a},s))}i(Oi,"CustomCollapsible");import{darkTheme as Fd,styled as Cl,TextField as lw}from"@rango-dev/ui";var Od=Cl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Ud=Cl(lw,{backgroundColor:"$neutral100",padding:"$15"}),zd=Cl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Fd} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Fd} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function Hd(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=T(),c=T().blockchains(),l=Fr(e.name,c),u=hw(null),p=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),g=n&&!!r&&e&&!Ho(e,r),f=i(()=>{a("")},"handleClear"),m=i(async C=>{if(C.preventDefault(),navigator.clipboard!==void 0){let S=await navigator.clipboard.readText();a(S),u?.current?.focus()}},"handlePaste"),y=i(()=>r?$e.createElement(Qd,{id:"widget-custom-destination-close-icon-btn",onClick:f,variant:"ghost"},$e.createElement(uw,{size:12,color:"gray"})):d?null:$e.createElement(Qd,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},$e.createElement(mw,{size:16})),"renderSuffix");return gw(()=>{!!p&&r===null&&(a(p),o(!0))},[p]),$e.createElement(Od,null,$e.createElement(Oi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:$e.createElement(zd,{id:"widget-custom-destination-collapsible-btn"},$e.createElement("div",{className:"button__content"},$e.createElement(fw,{size:18,color:"info"}),$e.createElement(qd,{size:4,direction:"horizontal"}),$e.createElement(dw,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Tl.t("Send to a different address"))),$e.createElement($i,{orientation:n?"up":"down"},$e.createElement(pw,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},$e.createElement(Ud,{id:"widget-custom-destination-blockchain-address-input",ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Tl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:y(),onChange:C=>{let S=C.target.value;a(S)}})),g&&$e.createElement($e.Fragment,null,$e.createElement(qd,{size:4}),$e.createElement(cw,{variant:"alarm",type:"error",title:Tl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(Hd,"CustomDestination");import{css as yw,IconButton as Sw,SelectableWalletButton as Cw,styled as lo}from"@rango-dev/ui";var Gd=lo("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Vd=lo("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Kd=lo(Cw,{justifyContent:"center"}),jd=lo("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Xd=lo(Sw,{position:"absolute",left:"$20"}),Yd=lo("div",{paddingTop:"$20"}),Zd=yw({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Jd=lo("div",{display:"flex"}),Rd=lo("div",{overflow:"visible",width:"100%"});import{i18n as vl}from"@lingui/core";import{warn as bw}from"@rango-dev/logging-core";import{Divider as xw,makeInfo as Ew,SelectableWallet as Iw,Typography as af,WalletState as Ui}from"@rango-dev/ui";import ot,{useEffect as sf,useState as Jn}from"react";import{Image as vw,MessageBox as ww}from"@rango-dev/ui";import Zn from"react";import{keyframes as Tw,styled as kl}from"@rango-dev/ui";var ef=kl("div",{position:"relative"}),kw=Tw({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),tf=kl("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${kw} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),of=kl("div",{"& img":{borderRadius:"50%"}});import{i18n as fn}from"@lingui/core";function nf(t,e){switch(t){case"in-progress":return{type:"loading",title:fn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:fn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:fn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:fn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:fn.t("Request Rejected"),description:fn.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(nf,"generateMessageByStatus");function rf(t){let{status:e,displayName:o,image:n}=t,r=nf(e,o),a=e=="in-progress";return Zn.createElement(ww,{type:r.type,title:r.title,description:r.description,icon:a?Zn.createElement(ef,null,Zn.createElement(of,null,Zn.createElement(vw,{src:n,size:45})),Zn.createElement(tf,null)):void 0})}i(rf,"ExperimentalChainStatus");var Aw=7,Nw=3e3;function wl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{blockchains:l,connectedWallets:u}=T(),[p,d]=Jn(),[h,g]=Jn(null),[f,m]=Jn(!1),[y,C]=Jn(null),{suggestAndConnect:S}=zi(),{list:k}=kt({chain:e}),[v,x]=Jn(k),I=k.length,A=a&&I-a>0,E=i(async w=>{m(!1),C("in-progress");try{await S(w.walletType,w.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");sf(()=>{x(w=>{let B=k.findIndex(M=>n(M.type,e));return A&&B>1?[k[B]].concat(k.filter((M,$)=>$!==B)):w.map(M=>k.find($=>$.type===M.type)??M)})},[JSON.stringify(k)]);let b=document.getElementById(Re.SWAP_BOX_ID);return sf(()=>{let w=null;return(y==="completed"||y==="rejected")&&(w=setTimeout(()=>C(null),Nw)),()=>{w&&clearTimeout(w)}},[y]),ot.createElement(ot.Fragment,null,v.slice(0,a).map(w=>{let B=au({connectedWallets:u,walletType:w.type,chain:e}),M=w.state===Ui.CONNECTED,$=B?oo(B,Aw):"",q=M&&!!w.needsNamespace&&!$,ee=Yr(l(),e),V=!u.find(ue=>ue.walletType===w.type&&ue.chain===e),L=ee&&V&&w.state===Ui.CONNECTED,te=i(async()=>{w.state===Ui.DISCONNECTED||q?d(w):L?(g({walletType:w.type,chain:e,address:B??""}),m(!0)):r({walletType:w.type,chain:e,address:B??""})},"onSelectableWalletClick"),le=Ew(w.state),J=i(()=>L?vl.t({id:"Add {chain} chain",values:{chain:e}}):q?vl.t("Chain not connected"):$||le.description,"getWalletDescription"),X=i(()=>w.state===Ui.CONNECTED?q?"neutral600":"neutral700":le.color,"getWalletDescriptionColor"),j=h?.chain?Fr(h.chain,l()):void 0;return ot.createElement(ot.Fragment,{key:`${w.title}_${j}`},!!h&&ot.createElement(R,{id:"widget-wallets-list-watermarked-modal",open:!!h&&f,container:b,onClose:()=>{g(null)}},ot.createElement(Is,{id:"widget-wallets-list-experimental-chain-container",displayName:j,onConfirm:()=>{E(h)}})),y&&ot.createElement(R,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!y,onClose:C.bind(null,null),container:b},ot.createElement(rf,{status:y,displayName:j,image:w.image}),ot.createElement(xw,{direction:"vertical",size:32})),ot.createElement(Iw,{key:w.type,id:"widget-wallets-list-selectable-wallet-btn",description:J(),descriptionColor:X(),onClick:te,selected:n(w.type,e),disabled:!c,...w}))}),ot.createElement(Hn,{id:"widget-wallets-list-stateful-connect-modal",wallet:p,options:{defaultSelectedChains:o||[e]},onClose:()=>{d(void 0)},onConnect:()=>{t.onConnect&&(p?.type?t.onConnect(p.type):bw(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),A&&ot.createElement(Kd,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},ot.createElement(af,{variant:"label",size:"medium"},vl.t("Show more wallets"),ot.createElement(af,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(a??0)))))}i(wl,"WalletList");var $w=2;function pf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Dw(),c=T().blockchains(),{selectedQuote:l,setSelectedWallets:u,quoteWalletsConfirmed:p,setQuoteWalletConfirmed:d,customDestination:h,setCustomDestination:g}=O(),{config:f,connectedWallets:m,setWalletsAsSelected:y}=T(),[C,S]=gn(""),[k,v]=gn([]),[x,I]=gn(""),[A,E]=gn(!!h),b=_w(()=>vo({filter:"all",quote:l}),[l]),w=vo({filter:"required",quote:l}),B=c.find(W=>W.name===l?.swaps[l?.swaps.length-1].to.blockchain),M=i(W=>w.includes(W),"isWalletRequiredFor"),$=Mw(()=>m.filter(W=>W.selected&&b.includes(W.chain)),[m,b]),[q,ee]=gn($()),[V,L]=gn([]),te=i((W,Q)=>L(K=>K.concat({blockchain:W,walletType:Q})),"addNextSelectedWallets"),le=k.length>0,J=i((W,Q)=>!!q.find(K=>K.walletType===W&&K.chain===Q&&K.selected&&(M(Q)||!M(Q)&&!h)),"isSelected"),X=i((W,Q,K)=>{let Y=!1;return W.map(ye=>{if(ye.chain===Q){let qe=ye.selected;return!Y&&K?(Y=!0,qe=!0):K||(qe=!1),{...ye,selected:qe}}return ye})},"updateSelectableWallets"),j=i(W=>{E(W),W?M(B?.name??"")||ee(Q=>X(Q,B?.name||"",!1)):(g(""),ee(Q=>X(Q,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),ue=i(W=>{if(C&&S(""),J(W.walletType,W.chain))return;let K=m.find(Y=>Y.walletType===W.walletType&&Y.chain===W.chain);K&&(n(),W.chain===B?.name&&A&&!M(B.name)&&(E(!1),g(null)),ee(Y=>Y.filter(ye=>ye.chain!==W.chain).concat({...K,selected:!0})))},"onChange"),me=i(()=>{let W=q.filter(Q=>Q.selected);y(W),u(W),d(!0),o()},"onConfirmBalance"),ke=i(async()=>{v([]),I("");let W=await r?.({selectedWallets:q.filter(K=>K.selected),customDestination:h}),Q=W.warnings;Q?.balance?.messages&&v(Q.balance.messages),W.error&&I(cm(W.error)),!W.error&&!Q?.balance?.messages.length?me():v(Q?.balance?.messages??[])},"onConfirmWallets");cf(()=>{ee(W=>{let Q=[];return W.forEach(K=>{!m.some(ye=>ye.chain===K.chain&&ye.walletType===K.walletType&&ye.address===K.address)||Q.push(K)}),Q=Q.concat(m.filter(K=>!!!Q.find(ye=>ye.chain===K.chain)&&K.selected&&b.includes(K.chain))),Q})},[m,b]),cf(()=>{let W=[];V.length>0&&(V.forEach(Q=>{let K=m.find(Y=>Y.chain===Q.blockchain&&Y.walletType===Q.walletType);K?ue(K):W.push(Q)}),L(W))},[m,V]);let H=document.getElementById(Re.SWAP_BOX_ID);return re.createElement(R,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{p||s("../",{replace:!0}),o()},dismissible:!C,container:H,...!C&&{styles:{container:{height:"100%"}},footer:re.createElement(Jd,null,re.createElement(lf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Fm(a,A,h,l,q,B),onClick:ke,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Lo.t("Confirm")))},...C&&{styles:{container:{height:"100%",padding:"$0"}},header:re.createElement(jd,null,re.createElement(Xd,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:S.bind(null,"")},re.createElement(Lw,{size:16})),re.createElement(xl,{variant:"headline",size:"small"},Lo.t({id:"Your {blockchainName} wallets",values:{blockchainName:ft(C,c)}})))},anchor:"center"},re.createElement(R,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:le,onClose:v.bind(null,[]),container:H},re.createElement(Pw,{title:Lo.t("Insufficient account balance"),type:"error",description:re.createElement(Ww,{messages:k??[]})},re.createElement(lf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:me},Lo.t("Proceed anyway")))),C&&re.createElement(Yd,null,re.createElement("div",{className:Zd()},re.createElement(wl,{chain:C,quoteChains:b,isSelected:J,selectWallet:ue,onShowMore:()=>S(C),onConnect:W=>{te(C,W)}}))),!C&&re.createElement(re.Fragment,null,x&&re.createElement(re.Fragment,null,re.createElement(Bw,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Lo.t(x)}),re.createElement(bl,{size:12})),re.createElement(Rd,null,b.map((W,Q)=>{let K=c.find(Qe=>Qe.name===W),Y=`wallet-${Q}`,ye=Q===b.length-1,qe=ye&&B&&f?.customDestination!==!1;return re.createElement("div",{key:Y},re.createElement(Gd,null,re.createElement(xl,{variant:"title",size:"xmedium"},Lo.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),re.createElement(xl,{variant:"label",color:"$neutral700",size:"medium"},Lo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),re.createElement(bl,{size:24}),re.createElement(Vd,null,re.createElement(wl,{chain:W,quoteChains:b,isSelected:J,selectWallet:ue,limit:$w,onShowMore:()=>S(K?.name??""),onConnect:Qe=>{te(W,Qe)}})),!ye&&re.createElement(bl,{size:32}),qe&&re.createElement(Hd,{blockchain:B,open:A,handleOpenChange:j}))}))))}i(pf,"ConfirmWalletsModal");import{i18n as rb}from"@lingui/core";import{Alert as ib,Button as ab,Divider as Nf,InfoIcon as sb}from"@rango-dev/ui";import Oe from"react";import{Alert as Uw,Button as zw,Divider as Al,NoRouteIcon as qw,RefreshIcon as Qw,Typography as yf}from"@rango-dev/ui";import ct from"react";import{i18n as uf}from"@lingui/core";var Fw=24,Ow=60;function mf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ne().genericServerError,action:{onClick:n,title:uf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ne().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:uf.t("Reset")}},description:ne().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ne().noResultError.description}}i(mf,"makeInfo");var El=(o=>(o[o.small=Fw]="small",o[o.large=Ow]="large",o))(El||{}),Il=(o=>(o.small="small",o.large="medium",o))(Il||{});import{styled as qi}from"@rango-dev/ui";var df=qi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),ff=qi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),gf=qi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),hf=qi("div",{padding:"$6 $0"});function Rn(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=T().getDisabledLiquiditySources(),s=T().toggleAllLiquiditySources,c=T().swappers(),l=mf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),ct.createElement(df,{id:"widget-no-result-container"},ct.createElement(qw,{size:El[n],color:"gray"}),ct.createElement(Al,{size:4}),ct.createElement(yf,{variant:"title",size:Il[n]},ne().noResultError.title),n==="large"&&ct.createElement(Al,{size:4}),!!l.description&&ct.createElement(ff,{size:n},ct.createElement(yf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),ct.createElement(Al,{size:n==="large"?"24":"4"}),!!l.alert&&ct.createElement(gf,{size:n},ct.createElement(Uw,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&ct.createElement(zw,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:ct.createElement(hf,null,ct.createElement(Qw,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Rn,"NoResult");import{i18n as tr}from"@lingui/core";import{Button as Vw,Divider as Kw,MessageBox as jw,Typography as Xw,WarningIcon as Yw}from"@rango-dev/ui";import Gt from"react";import{Typography as vf}from"@rango-dev/ui";import Bl from"react";import{Button as Hw,darkTheme as Gw,styled as er}from"@rango-dev/ui";var Sf=er("div",{width:"100%"}),Nl=er("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Cf=er("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Gw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Tf=er("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),kf=er(Hw,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function wf(t){let{title:e,value:o,valueColor:n}=t;return Bl.createElement(Cf,null,Bl.createElement(vf,{size:"medium",variant:"label",className:"_title"},e),Bl.createElement(vf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(wf,"QuoteErrorsModalItem");function bf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:tr.t("Swapping"),value:_(r.inputUsdValue,4,4)},{title:tr.t("Gas cost"),value:_(r.totalFee,2,2)},{title:tr.t("Receiving"),value:_(r.outputUsdValue,4,4)},{title:tr.t("Price impact"),value:_(r.priceImpact,2,2),valueColor:`${s}500`}];return Gt.createElement(R,{id:"widget-high-value-loss-warning-modal",footer:Gt.createElement(Vw,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Gt.createElement(Yw,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},Gt.createElement(jw,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Gt.createElement(Nl,null,Gt.createElement(Kw,{size:"4"}),Gt.createElement(Xw,{size:"small",variant:"title"},tr.t("Details")),Gt.createElement(Nl,null,c.map((l,u)=>Gt.createElement(wf,{key:u,...l})))))}i(bf,"HighValueLossWarningModal");import{i18n as hn}from"@lingui/core";function xf(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=hn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=hn.t("Increase")),o;if(t){switch(t.type){case 0:{Ht(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().highValueLossError.title;break}case 4:{o.title=hn.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=hn.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=hn.t("Increase");break}case 3:{o.title=hn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(xf,"makeAlerts");function Ef(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(Ef,"getRequiredSlippage");import{i18n as yn}from"@lingui/core";import{Button as Zw,Divider as Wl,MessageBox as Jw,WarningIcon as Rw}from"@rango-dev/ui";import uo from"react";import{useNavigate as eb}from"react-router-dom";function If(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=eb();return uo.createElement(R,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},uo.createElement(Jw,{type:"warning",title:r.type===3?yn.t("High slippage"):yn.t("Low slippage"),description:r.type===3?yn.t("Caution, your slippage is high. Your trade may be front run."):yn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},uo.createElement(Wl,{size:18}),uo.createElement(Wl,{size:32}),uo.createElement(kf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},uo.createElement(Rw,{color:"white",size:16}),yn.t("Swap anyway")),uo.createElement(Wl,{size:10}),uo.createElement(Zw,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+F.settings)},yn.t("Change Slippage"))))}i(If,"SlippageWarningModal");import{Button as tb,MessageBox as ob,WarningIcon as nb}from"@rango-dev/ui";import Qi from"react";function Af(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Qi.createElement(R,{id:"widget-unknown-price-warning-modal",footer:Qi.createElement(tb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Qi.createElement(nb,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Qi.createElement(ob,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(Af,"UnknownPriceWarningModal");function or(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:u,onConfirmWarningModal:p,onChangeSettings:d,onChangeSlippage:h}=t,g={confirmationDisabled:a,open:r,onClose:u,onConfirm:p},f=o?.type===0||o?.type===1,m=xf(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let y=!!m&&!s,C=i(S=>{if(S==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,v=Ef(e,k);h?.(v)}else S==="change-settings"&&d()},"onclickActionButton");return Oe.createElement(Oe.Fragment,null,f&&Oe.createElement(Oe.Fragment,null,Oe.createElement(Nf,{size:10}),Oe.createElement(Rn,{skipAlerts:s,error:o,fetch:c})),y&&Oe.createElement(Sf,null,Oe.createElement(Nf,{size:10}),Oe.createElement(ib,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Oe.createElement(Tf,{onClick:l},Oe.createElement(sb,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Oe.createElement(ab,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>C(m.action)},m.actionButtonTitle||rb.t("Change"))}})),e&&Oe.createElement(Oe.Fragment,null,e.type===0&&Oe.createElement(bf,{...g,warning:e}),(e.type===3||e.type===2)&&Oe.createElement(If,{...g,warning:e}),e.type===1&&Oe.createElement(Af,{...g,warning:e})))}i(or,"QuoteWarningsAndErrors");import Db from"bignumber.js";import oa from"react";import{i18n as Po}from"@lingui/core";import{Alert as wb,Divider as Cn,FullExpandedQuote as bb,InfoIcon as xb,NumericTooltip as ng,QuoteTag as Eb,StepDetails as Ib,TokenAmount as Ab,Typography as Tn}from"@rango-dev/ui";import Ul from"bignumber.js";import U,{useRef as Nb,useState as Bb}from"react";import{styled as Ll}from"@rango-dev/ui";var Pl=Ll("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Bf=Ll("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Wf=Ll("div",{width:"100%",display:"flex"});import*as Hi from"@radix-ui/react-collapsible";import{Button as lb,css as nr,darkTheme as Le,Image as Lf,styled as Xe,Typography as cb}from"@rango-dev/ui";var pb=300,Pf=Xe(Hi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Le} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Mf=nr({padding:"$10 $15"}),_f=Xe(lb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Le} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Le} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Le} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Df=Xe("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${Le} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Le} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Le} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Le} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Le} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Le} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Le} &`]:{backgroundColor:"$neutral400"}}}}]}),$f=nr({width:"100%",padding:"$15 $15 $10 $15"}),Ff=nr({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Sn=nr({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Of=nr({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Le} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Uf=Xe(Hi.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:{[`& ${Lf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Lf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Le} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Le} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),zf=Xe("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),qf=Xe(Di,{width:"100%",background:"inherit"}),Ml=Xe("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${pb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),Xq=Xe("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Qf=Xe("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Le} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Hf=Xe("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),_l=Xe(cb,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Gf=Xe("div",{display:"flex",flexWrap:"wrap"}),Dl=Xe("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"}}}}),Vf=Xe("div",{display:"flex"}),Gi=Xe("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Le} &`]:{borderTopColor:"$neutral800"}});import{i18n as Mt}from"@lingui/core";import{ChevronDownIcon as mb,CloseIcon as db,Divider as ji,IconButton as fb,NumericTooltip as gb,QuoteCost as hb,Typography as bt}from"@rango-dev/ui";import Z,{useState as Yf}from"react";import{css as ub,styled as Vi}from"@rango-dev/ui";var Ki=Vi("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),$l=Vi("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Kf=Vi("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),jf=Vi("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Xf=ub({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var yb=i(t=>t.fee.isZero()?null:Z.createElement(Ki,null,Z.createElement(bt,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(bt,{variant:"label",size:"medium"},"$",_(t.fee,4,4))),"NonPayableFee");function Fl(t){let[e,o]=Yf(!1),[n,r]=Yf(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:u,timeWarning:p,showModalFee:d,fullExpandedMode:h=!1}=t,g=s?.swaps??[],f=h?ko():N(),m=Bm(g),y=_(c,2,2);return Z.createElement(Z.Fragment,null,Z.createElement(hb,{onClickFee:d?C=>{C.stopPropagation(),o(!e)}:void 0,fee:y,feeWarning:u,timeWarning:p,time:l,steps:a,tooltipGas:d?Mt.t("View more info"):void 0,tooltipContainer:f}),Z.createElement(R,{id:"widget-quote-cost-explanation-modal",container:f,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:Z.createElement(jf,{style:{textAlign:h?"left":"center"}},Z.createElement(bt,{variant:"title",size:"medium"},Mt.t("Gas & Fee Explanation")),Z.createElement(fb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Z.createElement(db,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(Kf,null,Z.createElement(bt,{variant:"title",size:"small"},Mt.t("Details")),Z.createElement(ji,{size:10}),Object.entries(m.payable).flatMap(([C,S])=>S.map((k,v)=>{let x=`payable-fee-${v}`,I=Ms(k);return Z.createElement(Ki,{key:x},Z.createElement(bt,{variant:"label",size:"medium",color:"neutral600"},Ns(C,Mt.t)),Z.createElement(gb,{content:k.amount,container:f},Z.createElement(bt,{variant:"label",size:"medium"},_(k.amount,2,2),k.asset.symbol," ($",_(I,4,4),")")))})),Z.createElement(Ki,{className:"total_payable_fee"},Z.createElement(bt,{variant:"label",size:"medium"},Mt.t("Total Payable Fee")),Z.createElement(bt,{variant:"label",size:"medium"},"$",_(c,4,4))),Z.createElement($l,null),!!Object.keys(m.nonePayable).length&&Z.createElement(Oi,{triggerAnchor:"bottom",onClickTrigger:()=>r(C=>!C),trigger:Z.createElement("div",{className:Xf()},Z.createElement(bt,{size:"small",variant:"body",color:"neutral700"},n?Mt.t("Hide non-payable fees"):Mt.t("Show non-payable fees")),Z.createElement(ji,{size:4,direction:"horizontal"}),Z.createElement($i,{orientation:n?"up":"down"},Z.createElement(mb,{size:12,color:"gray"}))),open:n},Z.createElement(bt,{size:"small",variant:"title"},Mt.t("Description")),Z.createElement(ji,{size:4}),Z.createElement(bt,{size:"small",variant:"body",color:"neutral700"},Mt.t(`The following fees are considered in the transaction output and
|
|
2
|
+
you won\u2019t need to pay extra gas for them.`)),Z.createElement(ji,{size:10}),Object.entries(m.nonePayable).map(([C,S],k)=>{let v=Nm(S),x=Ns(C,Mt.t),I=`non-payable-fee-${k}`;return Z.createElement(yb,{key:I,fee:v,label:x})}),Z.createElement($l,null)))))}i(Fl,"QuoteCostDetails");import{i18n as Rf}from"@lingui/core";import{TokenAmount as eg}from"@rango-dev/ui";import Xi from"react";import{css as Sb,styled as Cb}from"@rango-dev/ui";var Zf=Cb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Jf=Sb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function rr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Xi.createElement(Zf,null,Xi.createElement(eg,{direction:"horizontal",label:Rf.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Xi.createElement("div",{className:Jf()}),Xi.createElement(eg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:Rf.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(rr,"QuoteSummary");import{i18n as tg}from"@lingui/core";import{ChevronDownIcon as Tb,ChevronRightIcon as kb,Divider as Ol,Image as vb,Tooltip as Ri,Typography as Yi}from"@rango-dev/ui";import z from"react";var Zi=4,Ji=6,ir=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return z.createElement(Ri,{container:c,side:"bottom",sideOffset:4,open:r,content:e},z.createElement(zf,{className:n,state:a},z.createElement(vb,{src:o,size:16})))},"ImageComponent");function og(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),u=r.length,p=Cm(r),{isTablet:d,isMobile:h}=pn();return z.createElement(Uf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:g=>e.current=g,selected:o,onClick:g=>{g.stopPropagation(),n(f=>!f)}},z.createElement("div",{className:Sn()},z.createElement(Yi,{variant:"body",size:"xsmall"},tg.t("Via:")),z.createElement(Ol,{direction:"horizontal",size:4}),r.map((g,f)=>{let m=`item-${f}`,y=z.createElement(Ml,null,z.createElement(kb,{size:12,color:"black"}));return h||d?z.createElement(z.Fragment,{key:m},z.createElement(ir,{content:g.swapper.displayName,src:g.swapper.image??"",state:g.state,container:c}),f!==u-1&&z.createElement(z.Fragment,null,y)):z.createElement(z.Fragment,{key:m},u<=Zi||u>Zi&&f<Zi-1?z.createElement(z.Fragment,null,z.createElement(ir,{content:g.swapper.displayName,src:g.swapper.image??"",state:g.state,container:c}),f!==u-1&&z.createElement(z.Fragment,null,y)):f===Zi-1&&z.createElement(Ri,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:Sn()},y,r.map((C,S)=>{let k=`image-${S}`;return S>=f&&z.createElement(z.Fragment,{key:k},z.createElement(ir,{content:C.swapper.displayName,src:C.swapper.image??"",state:C.state,open:!1}),S!==u-1&&z.createElement(z.Fragment,null,y))}))},z.createElement(Dl,{state:r.find((C,S)=>S>=f&&(C.state==="error"||C.state==="warning"))?.state},z.createElement(Yi,{size:"xsmall",variant:"body"},"+",u-f))))})),z.createElement("div",{className:Sn()},z.createElement("div",{className:"blockchains_section"},z.createElement("div",{className:Sn()},z.createElement(Yi,{variant:"body",size:"xsmall"},tg.t("Chains:")),z.createElement(Ol,{direction:"horizontal",size:4}),p.map((g,f)=>z.createElement(z.Fragment,{key:g.displayName},p.length<=Ji||p.length>Ji&&f<Ji-1?z.createElement(Ri,{container:l,side:"bottom",content:g.displayName,sideOffset:4},z.createElement(ir,{content:"",src:g.image??"",open:!1,className:f!==0?"blockchainImage":""})):f===Ji-1&&z.createElement(Ri,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:Sn()},p.map((m,y)=>y>=f&&z.createElement(ir,{key:m.displayName,content:"",src:m.image??"",open:!1,className:y>f?"blockchainImage":"",container:c})))},z.createElement(Dl,{className:"blockchainImage"},z.createElement(Yi,{size:"xsmall",variant:"body"},"+",p.length-f))))),z.createElement(Ol,{direction:"horizontal",size:32}))),z.createElement(Ml,{orientation:a?"up":"down"},z.createElement(Tb,{size:12,color:"black"}))))}i(og,"QuoteTrigger");function zl(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:u=!0,onClickAllRoutes:p,fullExpandedMode:d=!1,container:h}=t,g=T().blockchains(),{findToken:f}=T(),m=T().swappers(),{customSlippage:y,slippage:C}=T(),S=y||C,[k,v]=Bb(t.expanded),x=Nb(null),I=_(o.value,6,6),A=_(n.value,6,6),E=n.usdValue?_(n.usdValue,4,4):"",b=Qt(o.usdValue,n.usdValue??null),w=_(b,2,2),B=Ht(b??0),M=i((me,ke)=>me.map((H,W)=>{let Q,K=r?.type===3&&r.swap.swapperId===H.swapperId,Y=r?.type===4&&r.recommendedSlippages?.has(W),ye=a?.type===2&&a.recommendedSlippages?.has(W),qe=K||Y,Qe=ye;qe?Q="error":Qe&&(Q="warning");let Tt=qe?Po.t("Slippage Error"):Po.t("Slippage Warning");return K&&(Tt=Po.t("Bridge Limit Error")),{swapper:{displayName:En(H.swapperId,m)??"",image:H.swapperLogo},from:{token:{displayName:H.from.symbol,image:H.from.logo},chain:{displayName:ft(H.from.blockchain,g)??"",image:H.from.blockchainLogo},price:{value:W===0&&!ke?_(o.value,6,6):_(H.fromAmount,6,6),usdValue:_((H.from.usdPrice??0)*parseFloat(H.fromAmount),4,4),realValue:W===0?o.value:H.fromAmount,realUsdValue:new Ul(H.from.usdPrice??0).multipliedBy(H.fromAmount).toString()}},to:{token:{displayName:H.to.symbol,image:H.to.logo},chain:{displayName:ft(H.to.blockchain,g)||"",image:H.to.blockchainLogo},price:{value:_(H.toAmount,6,6),usdValue:_((H.to.usdPrice??0)*parseFloat(H.toAmount),4,4),realValue:H.toAmount,realUsdValue:new Ul(H.to.usdPrice??0).multipliedBy(H.toAmount).toString()}},state:Q,alerts:qe||Qe?U.createElement(Bf,{dense:d},U.createElement(wb,{variant:"alarm",type:qe?"error":"warning",title:Tt,id:"widget-quote-footer-step-alarm-alert",footer:U.createElement(Wf,null,K&&U.createElement("div",null,U.createElement(Tn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(Cn,{direction:"vertical",size:2}),U.createElement(Tn,{size:"xsmall",variant:"body",color:"neutral900"},Po.t({id:"Yours: {amount} {symbol}",values:{amount:_(H.fromAmount,6,6),symbol:H?.from.symbol}}))),(Y||ye)&&!K&&U.createElement("div",null,U.createElement(Tn,{size:"xsmall",variant:"body",color:"neutral900"},Po.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(W)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(W)}}})),U.createElement(Cn,{direction:"vertical",size:2}),U.createElement(Tn,{size:"xsmall",variant:"body",color:"neutral900"},Po.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:An(H.estimatedTimeInSeconds),fee:_(Ps(H,f),2,2),internalSwaps:H.internalSwaps?M(H.internalSwaps):void 0}}),"getQuoteSteps"),$=M(e?.swaps??[]),q=$.length,ee=h||N(),V=km(t.quote.tags||[]),L=!!p,te=Kr(e?.swaps),le=An(te),J=Ti(e?.swaps??[],f),X=_(J,2,2),j=J.gte(new Ul(um)),ue=te/dm>=mm;return d?U.createElement(bb,{selected:c,fee:X,time:le,tooltipContainer:ko(),steps:$,tags:V,id:"widget-quote-full-expanded-quote-container",quoteCost:U.createElement(Fl,{quote:e,fullExpandedMode:!0,time:le,fee:J,feeWarning:j,timeWarning:ue,showModalFee:u,steps:q}),percentageChange:w,warningLevel:B,outputPrice:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):U.createElement(Df,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},U.createElement("div",{className:$f()},!l&&V.length?U.createElement(U.Fragment,null,U.createElement(Vf,null,V.map((me,ke)=>{let H=`${me.value}_${ke}`;return U.createElement(U.Fragment,{key:H},U.createElement(Eb,{label:me.label,value:me.value}),U.createElement(Cn,{size:4,direction:"horizontal"}))})),U.createElement(Gi,null),!L&&U.createElement(Cn,{size:4})):null,U.createElement("div",{id:"portal-root",className:Ff()},U.createElement(Fl,{quote:e,time:le,fee:J,feeWarning:j,timeWarning:ue,showModalFee:u,steps:q}),L&&U.createElement(_f,{onClick:me=>{me.stopPropagation(),p()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(Tn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Po.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:Of()},U.createElement(Hf,null,U.createElement(xb,{size:12,color:"gray"})),U.createElement(Gf,null,U.createElement(_l,{size:"small",variant:"body"},`${I} ${$[0].from.token.displayName} = `),U.createElement(ng,{content:n.value,container:ee,open:n.value?void 0:!1},U.createElement(_l,{size:"small",variant:"body"},"\xA0",`${A} ${$[$.length-1].to.token.displayName}`))),U.createElement(ng,{content:n.usdValue,container:ee},U.createElement(Cn,{size:2,direction:"horizontal"}),U.createElement(Tn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&U.createElement(Ab,{id:"widget-quote-token-amount-container",tooltipContainer:ee,type:"output",direction:"vertical",price:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:$[q-1].to.token.displayName,image:$[q-1].to.token.image},chain:{image:$[q-1].to.chain.image},percentageChange:w,warningLevel:B}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(rr,{from:$[0].from,to:$[q-1].to,percentageChange:w,warningLevel:B}),U.createElement(Cn,{size:4}))),U.createElement(Pf,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},U.createElement(og,{type:s,quoteRef:x,selected:c,setExpanded:v,container:ee,expanded:k,steps:$}),U.createElement(qf,{open:k},U.createElement(Qf,null),U.createElement("div",{className:Mf()},$.map((me,ke)=>{let H=`item-${ke}`;return U.createElement(Ib,{type:"quote-details",className:"widget-quote-step-details-container",key:H,tooltipContainer:ee,step:me,hasSeparator:ke!==$.length-1,state:me.state})})))))}i(zl,"Quote");import{Divider as Mb,Skeleton as _b}from"@rango-dev/ui";import Xt from"react";import{darkTheme as Wb,styled as ea}from"@rango-dev/ui";var rg=ea("div",{$$color:"$colors$neutral100",[`.${Wb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),ig=ea("div",{paddingTop:"$2"}),ag=ea("div",{paddingLeft:"$8"}),sg=ea("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as yg,Divider as xt,Skeleton as pt}from"@rango-dev/ui";import G from"react";import{css as Lb,styled as jt}from"@rango-dev/ui";var ql=jt("div",{display:"flex"}),lg=jt("div",{padding:"$10 $0 $20"}),cg=jt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),pg=jt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),ug=jt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),mg=jt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),dg=jt("div",{width:"65%",display:"flex",justifyContent:"start"}),fg=jt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),gg=jt("div",{padding:"$15 $0 $15 $0"}),hg=Lb({display:"flex",justifyContent:"space-between",alignItems:"center"});function ar(t){let{type:e,tagHidden:o=!0}=t,n=G.createElement(ug,null,G.createElement(dg,null,G.createElement(yg,{loading:!0,size:"medium"}),G.createElement(xt,{size:8,direction:"horizontal"}),G.createElement(fg,null,G.createElement(pt,{height:10,width:60,variant:"rounded"}),G.createElement(xt,{size:4}),G.createElement(pt,{height:15,variant:"rounded"}))),G.createElement(pt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return G.createElement("div",null,!o&&G.createElement(G.Fragment,null,G.createElement(ql,null,G.createElement(pt,{width:65,height:20,variant:"rounded"}),G.createElement(xt,{size:4,direction:"horizontal"}),G.createElement(pt,{width:65,height:20,variant:"rounded"}),G.createElement(xt,{size:4,direction:"horizontal"}),G.createElement(pt,{width:65,height:20,variant:"rounded"})),G.createElement(Gi,null),!r&&G.createElement(xt,{size:4})),G.createElement("div",{className:hg()},G.createElement(ql,null,G.createElement(pt,{width:60,height:10,variant:"rounded"}),G.createElement(xt,{size:4,direction:"horizontal"}),G.createElement(pt,{width:60,height:10,variant:"rounded"}),G.createElement(xt,{size:4,direction:"horizontal"}),G.createElement(pt,{width:60,height:10,variant:"rounded"})),r&&G.createElement(pt,{width:85,height:24,variant:"rounded"})),e==="basic"&&G.createElement(lg,null,G.createElement(pt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(cg,null,G.createElement(pg,null,G.createElement(yg,{loading:!0,size:"medium"}),G.createElement(xt,{direction:"horizontal",size:4}),G.createElement(pt,{height:15,width:150,variant:"rounded"})),G.createElement(xt,{size:10}),G.createElement(pt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(xt,{size:4}),G.createElement(gg,null,n,G.createElement(mg,null),n),G.createElement(xt,{size:12})))}i(ar,"QuoteSummarySkeleton");import{ChainToken as vg,Divider as Hl,NextIcon as Pb,Skeleton as ta}from"@rango-dev/ui";import Pe from"react";import{styled as sr}from"@rango-dev/ui";var Sg=sr("div",{display:"flex",alignItems:"start"}),Cg=sr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ql=sr("div",{display:"flex",alignItems:"center",flexGrow:1}),Tg=sr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),kg=sr("div",{display:"flex",alignItems:"center"});function _t(t){let{separator:e=!0}=t;return Pe.createElement(Pe.Fragment,null,Pe.createElement(kg,null,Pe.createElement(ta,{height:22,width:22,variant:"circular"}),Pe.createElement(Hl,{direction:"horizontal",size:8}),Pe.createElement(ta,{height:15,width:148,variant:"rounded"})),Pe.createElement(Sg,null,Pe.createElement(sg,{hideSeparator:!e}),Pe.createElement(Cg,{extraSpace:e},Pe.createElement(Ql,null,Pe.createElement(vg,{size:"small",loading:!0}),Pe.createElement(Hl,{direction:"horizontal",size:8}),Pe.createElement(ta,{height:12,variant:"rounded"})),Pe.createElement(Tg,null,Pe.createElement(Pb,{color:"gray",size:16})),Pe.createElement(Ql,null,Pe.createElement(vg,{size:"small",loading:!0}),Pe.createElement(Hl,{direction:"horizontal",size:8}),Pe.createElement(ta,{height:12,variant:"rounded"})))))}i(_t,"StepSkeleton");function lr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Xt.createElement(rg,{expanded:o,rounded:e!=="basic"},Xt.createElement(ar,{type:e,tagHidden:n}),Xt.createElement(ig,null,Xt.createElement(_b,{height:15,variant:"rounded"})),o&&Xt.createElement(ag,null,Xt.createElement(Mb,{size:24}),Xt.createElement(_t,null),Xt.createElement(_t,null),Xt.createElement(_t,{separator:!1})))}i(lr,"QuoteSkeleton");function Mo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:u,selected:p,id:d,onClickAllRoutes:h,fullExpandedMode:g=!1,container:f}=t,{inputAmount:m,inputUsdValue:y}=O(),C=e?.outputAmount?new Db(e?.outputAmount):null,S=e?yt(e):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?oa.createElement(Pl,null,oa.createElement(lr,{tagHidden:c,type:o,expanded:s})):v?oa.createElement(Pl,{onClick:()=>l?.(e),id:d},oa.createElement(zl,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:c,selected:p,type:o,expanded:s,onClickAllRoutes:h,fullExpandedMode:g,input:{value:m,usdValue:y?.toString()??""},output:{value:C?.toString()??"",usdValue:S?.toString()??""}})):null}i(Mo,"QuoteInfo");import{calculatePendingSwap as Ub}from"@rango-dev/queue-manager-rango-preset";import{useEffect as zb}from"react";import{useRef as $b,useState as Fb}from"react";var Ob=2e3;function na({request:t}){let[e,o]=Fb(!1),n=$b(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,Ob)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(c,{signal:n.current.signal});return n.current=null,u}catch(u){if(l)return await a(c);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(na,"useFetch");function wg(){let{fetch:t,loading:e,cancelFetch:o}=na({request:async(n,r)=>await st().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(wg,"useFetchConfirmQuote");function ra(t){if(!t.swaps)throw new Error(ne().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Gl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ra,"throwErrorIfResponseIsNotValid");function Gl(t){if(Em(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Im(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=Wm(t);if(o){let n=ki(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Gl,"getQuoteError");function bg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=an({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let u=Mm(e,r,n.blockchains);return u.length===0||(c.balance={messages:u}),c}i(bg,"generateWarnings");function ia(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:t?.code==="ERR_BAD_REQUEST"?{swap:null,error:{type:0,diagnosisMessage:t.response.data.error},warnings:null}:{swap:null,error:{type:1,diagnosisMessage:t.message},warnings:null}}i(ia,"handleQuoteErrors");function Vl(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=O(),{slippage:l,customSlippage:u}=T(),p=T().getDisabledLiquiditySources(),d=T().blockchains(),h=T().tokens(),{findToken:g}=T(),f=u||l,{fetch:m,cancelFetch:y,loading:C}=wg();return zb(()=>y,[]),{loading:C,fetch:i(async k=>{let v=k.selectedWallets,x=k?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=v.reduce((E,b)=>(E[b.chain]=b.address,E),{}),A={requestId:a?.requestId||"",selectedWallets:I,destination:x||void 0};try{return await m(A,!0).then(E=>{let{result:b}=E;if(!b)throw new Error(E.error??"Error fetching updated quote");ra({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let w={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};r(w);let B={slippage:f.toString(),disabledSwappersGroups:p},M=bg({previousQuote:a??void 0,currentQuote:w,meta:{blockchains:d},selectedWallets:v,userSlippage:f,inputUsdValue:n,findToken:g});c();let $=!!M.balance,q=Ub(o.toString(),b,Pm(v),B,!$,{blockchains:d,tokens:h});return{quote:w,swap:q,error:null,warnings:M}})}catch(E){return ia(E)}},"fetch"),cancelFetch:y}}i(Vl,"useConfirmSwap");var Zb=Gb("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${xg}`]:{width:"$48",height:"$48"}}),Jb=Xl({flexGrow:1,paddingRight:"$10"}),Rb=Xl({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),ex=Xl({display:"flex",justifyContent:"space-between",alignItems:"center"});function Eg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=Yb(),[c,l]=cr(""),u=!n,[p,d]=cr(!1),[h,g]=cr(!1),{isActiveTab:f}=oe(),m=T().getDisabledLiquiditySources(),y=Xb(m),{manager:C}=qb(),{fetch:S,loading:k,cancelFetch:v}=Vl(),[x,I]=cr({swap:null,error:null,warnings:null}),[A,E]=cr(!1),b=i(async({selectedWallets:L,customDestination:te})=>{let le=await S?.({selectedWallets:L,customDestination:te});return I(le),le},"onConfirmSwap"),w=i(async()=>{if(x.swap&&n)try{await C?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let L=`../${F.swaps}/${x.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{g(!0),await w(),g(!1)},"onConfirm"),M=i(async()=>{x.warnings?.quote&&Sm(x.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),$=i(async()=>{I({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(L=>{I(L)}).catch(L=>console.error(L))},"onRefresh");aa(()=>{!!y.current.length&&!m.length&&$(),y.current=m},[m.length]),aa(()=>{u&&v()},[u]),aa(()=>{u&&d(u)},[u]),aa(()=>{u||S({selectedWallets:o,customDestination:r}).then(L=>I(L)).catch(L=>console.error(L))},[]),jb(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=x.warnings?.quote??null,ee=x.error,V=[];if(c&&V.push(Fe.createElement(Qb,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||ee){let L=`../${F.settings}`;V.push(Fe.createElement(or,{warning:q,error:ee,couldChangeSettings:!1,refetchQuote:$,skipAlerts:ee?.type===4||q?.type===2,showWarningModal:A,confirmationDisabled:!f,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await w()},onChangeSettings:()=>s(L)}))}return Fe.createElement(ie,{header:{title:Kl.t("Confirm Swap"),onWallet:()=>{let L=`../${F.wallets}`;s(L)}},footer:Fe.createElement(Zb,null,Fe.createElement("div",{className:Jb()},Fe.createElement(Hb,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||h,disabled:!!x.error||!f,onClick:M},Kl.t("Start Swap"))),Fe.createElement(xg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||h,disabled:!f,onClick:d.bind(null,!0)},Fe.createElement(Kb,{size:24})))},p&&Fe.createElement(pf,{open:p,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:b}),Fe.createElement(ae,null,Fe.createElement("div",{className:ex()},Fe.createElement(Vb,{variant:"title",size:"small"},Kl.t("You get")),Fe.createElement("div",{className:Rb()},Fe.createElement(Ni,{onClick:!k&&!p&&!A?$:void 0}))),Fe.createElement(jl,{size:"12"}),ad(V.map((L,te)=>({element:L,key:`alert-${te}`})),Fe.createElement(jl,{size:10})),V.length>0?Fe.createElement(jl,{size:10}):null,Fe.createElement(Mo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:x.error,loading:k,warning:x.warnings?.quote??null})))}i(Eg,"ConfirmSwapPage");import{i18n as Zt}from"@lingui/core";import{Button as sc,CustomTokensZeroStateDarkIcon as kx,CustomTokensZeroStateIcon as vx,DeleteIcon as wx,Divider as gr,IconButton as bx,MessageBox as xx,NotFound as Ex,styled as cc}from"@rango-dev/ui";import ge,{useState as lc}from"react";import{useNavigate as Ix}from"react-router-dom";import{CloseIcon as ox,IconButton as nx,SearchIcon as rx,TextField as ix}from"@rango-dev/ui";import pr from"react";import{styled as tx}from"@rango-dev/ui";var Ig=tx("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Et(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:u,id:p,...d}=t,h=s.length?pr.createElement(nx,{id:`${p}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},pr.createElement(ox,{color:"gray",size:10})):null;return u&&(h=u),pr.createElement(ix,{prefix:pr.createElement(Ig,null,pr.createElement(rx,{color:"black"})),id:p,suffix:h,fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d})}i(Et,"SearchInput");import{i18n as ac}from"@lingui/core";import{Button as cx,CustomTokenWarning as px,darkTheme as Og,Divider as Yt,ExternalLinkIcon as ux,Image as mx,ListItem as dx,NotFound as fx,PinIcon as gx,Skeleton as _o,Typography as dr,VirtualizedList as hx}from"@rango-dev/ui";import P,{useState as yx}from"react";import{useTranslation as Sx}from"react-i18next";import{Divider as $g,ListItem as lx,Skeleton as mr}from"@rango-dev/ui";import It from"react";import{css as kn,darkTheme as Yl,ImageContainer as ax,ListItemButton as sx,styled as nt,Typography as Ag}from"@rango-dev/ui";var Zl=kn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Jl=kn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Rl=kn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),ec=kn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Yl} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),tc=kn({}),oc=kn(),Ng=nt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),nc=nt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),sa=nt("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Jl}`]:{[`& .${ec}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${tc}`]:{bottom:"-15px"},[`& .${Zl}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Rl}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Bg=nt(sx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),rc=nt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),ic=nt(Ag,{}),Wg=nt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${oc}`]:{$$color:"$colors$neutral600",[`.${Yl} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ur=nt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),zG=nt("div",{display:"flex",alignItems:"center"}),Lg=nt("div",{position:"relative",[`& ${ax}`]:{borderRadius:"$xm",overflow:"hidden"}}),Pg=nt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Mg=nt(Ag,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),_g=nt("a",{"& svg:hover":{color:"$colors$info"}}),Dg=nt("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${Yl} &`]:{color:"$foreground"}}}});function Fg(t){return It.createElement(sa,null,Array.from(Array(t.size),e=>It.createElement(lx,{key:e,hasDivider:!0,start:It.createElement(mr,{variant:"circular",width:35,height:35}),end:It.createElement(ur,null,It.createElement(mr,{variant:"text",size:"large",width:70}),It.createElement($g,{size:4}),It.createElement(mr,{variant:"text",size:"medium",width:50})),title:It.createElement("div",null,It.createElement(mr,{variant:"text",size:"large",width:90}),It.createElement($g,{size:4}),It.createElement(mr,{variant:"text",size:"medium",width:90}))})))}i(Fg,"LoadingTokenList");var Cx=20,Tx=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return P.createElement("div",{className:Jl()},o?P.createElement("div",{className:Zl()},o):P.createElement(nc,{className:Rl()},P.createElement(dr,{variant:"title",size:"xmedium"},r.symbol),P.createElement(Yt,{direction:"horizontal",size:4}),P.createElement(rc,{css:a},P.createElement(ic,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&P.createElement("div",{className:`${ec()} ${!o&&tc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",P.createElement(Yt,{size:4,direction:"horizontal"}),P.createElement(_g,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},P.createElement(ux,{size:12}))))},"renderDesc");function fr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,u=T().fetchStatus,p=T().blockchains(),{getBalanceFor:d,fetchingWallets:h}=T(),{isTokenPinned:g}=T(),{setFromToken:f,setToToken:m}=O(),{t:y}=Sx(),C=Ve(),[S,k]=yx(null),v=i(()=>{c==="source"?f({token:S,meta:{blockchains:p}}):m({token:S,meta:{blockchains:p}})},"updateToken"),x=i(()=>{v(),C()},"handleImportToken"),I=i(b=>{if(b.customToken){let{customToken:B,...M}=b;return P.createElement(cx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),k({...M,warning:!0})},"handleClick")},P.createElement(dr,{variant:"body",size:"xsmall",color:"background"},y("import")))}let w=Zr(d(b));return s?s(b):h?P.createElement(ur,null,P.createElement(_o,{variant:"text",size:"large",width:70}),P.createElement(Yt,{size:4}),P.createElement(_o,{variant:"text",size:"medium",width:50})):w&&P.createElement(Wg,null,P.createElement(Mg,{variant:"title",size:"small"},w.amount),P.createElement("div",null),w.usdValue&&P.createElement(dr,{variant:"body",className:oc(),size:"xsmall"},`$${w.usdValue}`))},"endRenderer"),A=i(()=>P.createElement(hx,{itemContent:b=>{let w=e[b];if(w==="skeleton")return P.createElement(dx,{hasDivider:!0,start:P.createElement(_o,{variant:"circular",width:35,height:35}),end:P.createElement(ur,null,P.createElement(_o,{variant:"text",size:"large",width:70}),P.createElement(Yt,{size:4}),P.createElement(_o,{variant:"text",size:"medium",width:50})),title:P.createElement("div",null,P.createElement(_o,{variant:"text",size:"large",width:90}),P.createElement(Yt,{size:4}),P.createElement(_o,{variant:"text",size:"medium",width:90}))});let B=w.address||"",M=p.find(L=>L.name===w.blockchain);if(!M)return null;let $=Ys(M.color,"main"),q={$$color:$.main150,[`.${Og} &`]:{$$color:$.main750},backgroundColor:"$$color"},ee={$$color:$.main750,[`.${Og} &`]:{$$color:$.main150},color:"$$color"},V=i(()=>{typeof w!="string"&&!w.customToken&&n?.(w)},"handleClick");return P.createElement(Dg,null,P.createElement(Bg,{"tab-index":b,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:w.customToken,onClick:V,start:P.createElement(Lg,null,P.createElement(mx,{src:w.image===""?zr:w.image,size:30}),t.type!=="custom-token"&&g(w,t.type)&&P.createElement(Pg,null,P.createElement(gx,{size:12,color:"gray"}))),title:M?.type==="COSMOS"||w.name||!w.name&&!B?P.createElement(nc,null,P.createElement(dr,{variant:"title",size:"xmedium"},w.symbol),P.createElement(Yt,{direction:"horizontal",size:4}),P.createElement(rc,{css:q},P.createElement(ic,{variant:"body",size:"xsmall",css:ee},w.blockchain)),l&&w.warning&&P.createElement(P.Fragment,null,P.createElement(Yt,{direction:"horizontal",size:4}),P.createElement(px,{container:N()}))):void 0,description:typeof w!="string"&&M?.info&&B&&M.type!=="COSMOS"?Tx({address:B,token:w,customCssForTag:q,customCssForTagTitle:ee,name:w.name,url:M.info.addressUrl.split("{wallet}").join(B)}):w.name||void 0,end:I(w)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=S?Co(S?.blockchain,p):null;return P.createElement(P.Fragment,null,a&&P.createElement(P.Fragment,null,P.createElement(dr,{variant:"label",size:"large"},ac.t("Select Token")),P.createElement(Yt,{size:4})),P.createElement(Ng,null,P.createElement(Yt,{size:4}),u==="loading"&&P.createElement(Fg,{size:Cx}),u==="success"&&(e.length?P.createElement(P.Fragment,null,P.createElement(Kn,{token:S,address:S?.address??"",blockchain:E??void 0,onImport:x,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),P.createElement(sa,{as:"ul"},A())):!!o&&P.createElement(fx,{title:ac.t("No results found"),description:ac.t("Try using different keywords")}))))}i(fr,"TokenList");var Ax=cc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Nx=cc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Bx=cc(bx,{"&:hover":{"& svg":{color:"$secondary550"}}});function Ug(){let[t,e]=lc(""),{deleteCustomToken:o}=T(),n=T().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=O(),{mode:l}=io({}),u=Ix(),[p,d]=lc(!1),[h,g]=lc(),f=i(S=>{let k=S.target.value;e(k)},"handleSearch"),m=l==="dark",y=n.filter(S=>it(S.symbol,t)||it(S.address||"",t)||it(S.name||"",t)),C=i(()=>{if(h){let S=a?gt(a):null,k=r?gt(r):null,v=gt(h);S===v?c({token:null}):k===v&&s({token:null}),o(h)}d(!1)},"handleDeleteCustomToken");return ge.createElement(ie,{header:{title:Zt.t("Custom Tokens")}},ge.createElement(ae,null,ge.createElement(Ax,null,n.length?ge.createElement(ge.Fragment,null,ge.createElement(Et,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Zt.t("Search Token"),onChange:f}),ge.createElement(gr,{size:16}),ge.createElement(fr,{list:y,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:S=>ge.createElement(Bx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),g(S)}},ge.createElement(wx,{size:12,color:"gray"}))})):ge.createElement(Nx,null,ge.createElement(Ex,{icon:m?ge.createElement(kx,{size:200}):ge.createElement(vx,{size:200}),title:Zt.t("No custom tokens"),description:Zt.t("press the button to add your custom token")})),ge.createElement(gr,{size:20}),ge.createElement(sc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>u(F.addCustomTokens)},Zt.t("Add Custom Token"))),ge.createElement(R,{open:p,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:N()},ge.createElement(xx,{title:Zt.t("Delete Custom Token"),type:"error",description:Zt.t("Are you sure you want to Delete this Token?")},ge.createElement(gr,{size:40}),ge.createElement(gr,{size:10}),ge.createElement(sc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},Zt.t("Yes, Delete it")),ge.createElement(gr,{size:12}),ge.createElement(sc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},Zt.t("No, Continue"))))))}i(Ug,"CustomTokensPage");import{i18n as Ze}from"@lingui/core";import{useManager as Yx}from"@rango-dev/queue-manager-react";import{Button as hc,darkTheme as Zx,Divider as $o,MessageBox as Jx,NotFound as Rx,styled as yc,Typography as pa}from"@rango-dev/ui";import{TransactionStatus as Sr}from"rango-types";import se,{useMemo as ih,useState as ua}from"react";import{useNavigate as eE}from"react-router-dom";import{FilterIcon as $x,Popover as Fx}from"@rango-dev/ui";import Do from"react";import{css as Wx,darkTheme as la,IconButton as Lx,styled as hr}from"@rango-dev/ui";var pc=hr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${la} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),zg=hr(Lx,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${la} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${la} &`]:{backgroundColor:"$neutral"},[`& ${pc}::before`]:{backgroundColor:"$secondary100",[`.${la} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),qg=hr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Qg=hr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),Hg=Wx({display:"flex",justifyContent:"space-between",alignItems:"center"}),Gg=hr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as Vg}from"@lingui/core";import{Button as Px,Divider as Kg,ListItemButton as Mx,Radio as _x,RadioRoot as Dx,Typography as jg}from"@rango-dev/ui";import ut from"react";function Xg(t){let{filterBy:e,onClickItem:o}=t;return ut.createElement(Qg,null,ut.createElement("div",{className:Hg()},ut.createElement(jg,{size:"small",variant:"body"},Vg.t("Status")),ut.createElement(Px,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},Vg.t("Reset"))),ut.createElement(Kg,{size:10}),ut.createElement(Dx,{value:e},ut.createElement(Gg,null,t.list.map((n,r)=>ut.createElement(Mx,{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:ut.createElement(ut.Fragment,null,ut.createElement(Kg,{direction:"horizontal",size:4}),ut.createElement(jg,{size:"medium",variant:"body"},n.title)),start:ut.createElement(_x,{value:n.id}),onClick:o})))))}i(Xg,"FilterSelectorContent");function uc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Do.createElement("div",null,Do.createElement(Fx,{open:a,align:"end",onOpenChange:o,container:N(),content:Do.createElement(Xg,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Do.createElement(zg,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Do.createElement(pc,{isSelect:!!n},Do.createElement($x,{size:16,color:"black"}),!!n&&Do.createElement(qg,null)))))}i(uc,"FilterSelector");import{i18n as zx}from"@lingui/core";import{getCurrentStep as qx}from"@rango-dev/queue-manager-rango-preset";import{Divider as eh,GroupedVirtualizedList as Qx,Skeleton as Hx,SwapListItem as th,Typography as Gx}from"@rango-dev/ui";import Ye,{useCallback as oh,useEffect as Vx,useRef as Kx,useState as jx}from"react";function Yg(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(Yg,"calculateGroupsSoFar");import{css as Ox,darkTheme as Ux,styled as yr}from"@rango-dev/ui";var mc=Ox(),Zg=yr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),dc=yr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${mc}`]:{$$color:"$colors$neutral600",[`.${Ux} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),fc=yr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Jg=yr("div",{gap:"$10",display:"flex",flexDirection:"column"}),Rg=yr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var Xx=10;function gc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=jx([]),c=Kx(0),{swaps:l,groupCounts:u,groups:p}=n(e),d=oh(Yg,[]),h=oh(()=>{let g=e.length-c.current;g&&(c.current+=Math.min(g,Xx),s(d(u,c.current)))},[e.length]);if(Vx(()=>{r||h()},[r,h]),r){let g=[1,2];return Ye.createElement(Ye.Fragment,null,[g,g].map((m,y)=>Ye.createElement(dc,{key:y},Ye.createElement(fc,null,Ye.createElement(Hx,{variant:"text",width:60,size:"small"}),Ye.createElement(eh,{size:16})),Ye.createElement(eh,{size:4}),Ye.createElement(Jg,null,m.map((S,k)=>Ye.createElement(th,{isLoading:!0,key:k}))))))}return Ye.createElement(Qx,{endReached:()=>{c.current<e.length&&h()},groupCounts:a,groupContent:g=>Ye.createElement(dc,null,Ye.createElement(fc,null,Ye.createElement(Gx,{variant:"label",size:"medium",className:mc()},p[g]))),itemContent:(g,f)=>{let m=l[g];if(!m)return null;let y=qx(m),C=m.steps[0],S=m.steps[m.steps.length-1];return Ye.createElement(Zg,{key:m.requestId},Ye.createElement(th,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:y,tooltipContainer:N(),onlyShowTime:p[f]===zx.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:_(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:_(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(gc,"HistoryGroupedList");import{i18n as ca}from"@lingui/core";import nh from"dayjs";var rh=i(t=>{let e=new Map([["today",{title:ca.t("Today"),swaps:[]}],["week",{title:ca.t("This week"),swaps:[]}],["month",{title:ca.t("This month"),swaps:[]}],["year",{title:ca.t("This year"),swaps:[]}]]);function o(l,u){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(u)}i(o,"addYearsToOutput");let n=nh();t.forEach(l=>{let u=Number(l.creationTime),p=nh(u);if(n.isSame(p,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(p,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(p,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(p,"year"))e.get("year")?.swaps.push(l);else{let d=new Date(u).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 tE=yc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),oE=yc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),nE=yc("div",{"._typography":{color:"$neutral700",[`.${Zx}&`]:{color:"$neutral900"}}}),rE=[{id:Sr.SUCCESS,title:Ze.t("Complete")},{id:Sr.RUNNING,title:Ze.t("Running")},{id:Sr.FAILED,title:Ze.t("Failed")}],iE=i((t,e)=>t?.length?t.filter(o=>Bt(o.fromBlockchain,e)||Bt(o.toBlockchain,e)||Bt(o.toSymbol,e)||Bt(o.fromSymbol,e)).length:!1,"isStepContainsText");function ah(){let t=eE(),{manager:e,state:o}=Yx(),n=St(e).map(({swap:k})=>k),[r,a]=ua(""),[s,c]=ua(!1),l=!o.loadedFromPersistor,[u,p]=ua(""),[d,h]=ua(!1),g=i(k=>{let v=k.target.value;a(v)},"handleSearch"),f=ih(()=>!r&&!u?n:n.filter(k=>{let{inputAmount:v,status:x,steps:I,requestId:A}=k;return(!r||Bt(v,r)||Bt(x,r)||iE(I,r)||Bt(A,r))&&(!u||u===x)}),[n,r,u]),m=!f?.length&&!l,y=i(()=>h(!1),"onCloseModal"),C=i(async()=>{try{await e?.clearQueue(),h(!1)}catch(k){console.log(k)}},"onClear"),S=ih(()=>!n.some(k=>k.status===Sr.SUCCESS||k.status===Sr.FAILED),[n]);return se.createElement(ie,{header:{title:Ze.t("History"),suffix:se.createElement(ao,null,se.createElement(hc,{id:"widget-history-clear-btn",disabled:S,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},se.createElement(pa,{size:"medium",variant:"label",color:"error"},Ze.t("Clear"))))}},se.createElement(ae,null,se.createElement(oE,null,se.createElement(Et,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Ze.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:g,style:{height:36},value:r}),se.createElement($o,{size:10,direction:"horizontal"}),se.createElement(uc,{filterBy:u,open:s,onOpenChange:k=>c(k),onClickItem:k=>p(k),list:rE})),se.createElement($o,{size:"16"}),se.createElement(tE,null,m&&se.createElement(Rg,null,se.createElement($o,{size:32}),se.createElement(Rx,{title:r?Ze.t("No results found"):Ze.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Ze.t("Try using different keywords"):Ze.t("Your transaction history is stored locally and will appear here after you start a swap")})),!m&&se.createElement(gc,{list:f,onSwapClick:t,groupBy:rh,isLoading:l}))),se.createElement(R,{open:d,onClose:y,id:"widget-history-clear-modal",container:N()},se.createElement($o,{size:20}),se.createElement(Jx,{type:"warning",title:Ze.t("Clear Transaction History"),description:se.createElement(nE,null,se.createElement(pa,{variant:"body",size:"medium"},Ze.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),se.createElement($o,{size:"24"}),se.createElement(pa,{variant:"body",size:"small"},Ze.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),se.createElement($o,{size:30}),se.createElement(hc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},Ze.t("Yes, Clear the history")),se.createElement($o,{size:10}),se.createElement(hc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:y},se.createElement(pa,{variant:"title",size:"medium",color:"primary"},Ze.t("No, Cancel")))))}i(ah,"HistoryPage");import{i18n as UE}from"@lingui/core";import{Button as zE,Divider as Wc,styled as qE,WarningIcon as QE}from"@rango-dev/ui";import HE from"bignumber.js";import Se,{useEffect as Dh,useState as $h}from"react";import{useNavigate as GE}from"react-router-dom";import{i18n as lh}from"@lingui/core";import{Alert as sE,Divider as Sc,NoRouteIcon as lE,Typography as cE}from"@rango-dev/ui";import Fo from"react";import{styled as aE}from"@rango-dev/ui";var sh=aE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Cc(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Ot(t,e)?Fo.createElement(sh,null,Fo.createElement(Sc,{size:10}),Fo.createElement(lE,{size:24,color:"gray"}),Fo.createElement(Sc,{size:4}),Fo.createElement(cE,{variant:"title",size:"small"},lh.t("No Routes Found")),Fo.createElement(Sc,{size:4}),Fo.createElement(sE,{title:lh.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Cc,"SameTokensWarning");import{Alert as pE,Button as uE}from"@rango-dev/ui";import ph from"react";import{i18n as ma}from"@lingui/core";function ch(t){let e=null;return t===ti?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ma.t("Reset"),title:ma.t("Slippage cannot be set lower than 0.01%.")},e):t>Ko?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ma.t("Change"),title:ma.t("Caution, your slippage is high!")},e):null}i(ch,"makeAlerts");function uh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=T(),{onChangeSettings:a}=t,c=ch(o!==null?o:e),l=i(u=>{u==="reset-slippage"?(n(ei),r(null)):u==="change-settings"&&a()},"onClickActionButton");return c?ph.createElement(pE,{title:c.title,type:c.alertType,variant:"alarm",action:ph.createElement(uE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(uh,"SlippageWarningsAndErrors");import{i18n as hE}from"@lingui/core";import{IconButton as yE,ReverseIcon as SE,Skeleton as CE,Tooltip as TE,Typography as Cr}from"@rango-dev/ui";import mt from"react";import da from"bignumber.js";function dh(t){let{error:e,isDarkTheme:o,warning:n}=t,{quoteError:r,slippageError:a}=e,{quoteWarning:s,slippageWarning:c}=n,l=!!a||r?.type===4,u=!!c||s?.type===2;return l?"$error500":u?"$warning500":o?"$neutral600":"$neutral700"}i(dh,"getSlippageColor");function fh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new da(e),r=new da(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(fh,"getUsdExchangeRate");function gh(t,e){let o=new da(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,da.ROUND_DOWN).toFormat(2)}`}i(gh,"formatTokenValueInUsd");import{darkTheme as fE,styled as kc,Typography as gE}from"@rango-dev/ui";var hh=kc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),yh=kc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${fE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),vc=kc(gE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function wc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=T(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:u,loading:p}=t,d=o!==null?o:e,{mode:h}=io({}),g=Yo(d),f=h==="dark",m=n==="default",y={quoteError:a,slippageError:g?.type==="error"?g.message:null},C={quoteWarning:s,slippageWarning:g?.type==="warning"?g.message:null},S=u?.swaps[0].from||c,k=u?.swaps[u?.swaps.length-1].to||l,v=m?S:k,x=m?k:S,I=Number(m?u?.outputAmount:u?.requestAmount),A=Number(m?u?.requestAmount:u?.outputAmount),E=I||v.usdPrice,b=A||x.usdPrice,{rawValue:w,displayValue:B}=fh({toTokenUsdPrice:b,fromTokenUsdPrice:E});return mt.createElement(hh,null,mt.createElement(Cr,{variant:y||C?"label":"body",size:y||C?"medium":"small",color:dh({error:y,warning:C,isDarkTheme:f})},hE.t("Slippage:")," ",d,"%"),p?mt.createElement(CE,{height:16,width:104,variant:"rounded"}):E&&b&&mt.createElement(yh,null,mt.createElement(Cr,{className:"rate-text",variant:"body",size:"small"},"1"),mt.createElement(vc,{className:"rate-text",variant:"body",size:"small"},x.symbol),mt.createElement(yE,{id:"widget-home-page-change-rate-button",onClick:r},mt.createElement(SE,{size:14,color:"secondary"})),mt.createElement(TE,{container:N(),side:"top",sideOffset:4,content:mt.createElement(Cr,{className:"rate-text",variant:"body",size:"small"},w)},mt.createElement(Cr,{className:"rate-text",variant:"body",size:"small"},B)),mt.createElement(vc,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&mt.createElement(Cr,{color:"neutral600",variant:"body",size:"small"},"~",gh(Number(w),v.usdPrice))))}i(wc,"SwapMetrics");import{i18n as EE}from"@lingui/core";import{Header as IE}from"@rango-dev/ui";import mo,{useEffect as AE,useState as NE}from"react";import{i18n as vE}from"@lingui/core";import{Divider as xc,FullExpandedQuote as wE,Typography as bE}from"@rango-dev/ui";import be from"react";import{styled as bc}from"@rango-dev/ui";var Sh=bc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Ch=bc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Th=bc("div",{width:"146px"});import{i18n as Tr}from"@lingui/core";import{Select as kE}from"@rango-dev/ui";import kh from"react";function fa(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:Tr.t("Smart Routing")},{value:"FEE",label:Tr.t("Lowest Fee")},{value:"SPEED",label:Tr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Tr.t("Maximum Return")},{value:"PRICE",label:Tr.t("Maximum Output")}];return kh.createElement(Th,null,kh.createElement(kE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(fa,"SelectStrategy");var vh=3;function kr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:u,updateQuotePartialState:p,fromToken:d,toToken:h,sortStrategy:g,error:f}=O(),{slippage:m,customSlippage:y}=T(),{findToken:C}=T(),S=c||N(),k=!!u&&u.results.length,v=y??m,x=i(E=>{if(!d||!h||!u)return null;let b={requestAmount:u.requestAmount,validationStatus:null,...E};return an({currentQuote:b,userSlippage:v,findToken:C})},"getQuoteWarning"),I=f?.type===0||f?.type===1,A=u?.results?Ci(g,u?.results):[];return be.createElement(be.Fragment,null,a&&be.createElement(be.Fragment,null,be.createElement(Ch,null,be.createElement(bE,{size:"xmedium",variant:"title"},vE.t("Sort by")),be.createElement(fa,{container:S})),be.createElement(xc,{size:"10"})),e&&Array.from({length:vh},(E,b)=>be.createElement(be.Fragment,{key:b},s?be.createElement(wE,{loading:!0}):be.createElement(lr,{tagHidden:!1,type:"list-item",expanded:!1}),b!==vh-1&&be.createElement(xc,{size:16}))),!e&&be.createElement(be.Fragment,null,k?A.map((E,b)=>{let w=x(E),B=Gl(E.swaps),M=A.length-1===b;return be.createElement(be.Fragment,{key:E.requestId},be.createElement(Mo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:S,selected:l?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:u.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:w,fullExpandedMode:s,onClick:$=>{B||p("warning",w),p("error",B?.options||null),o($)},type:"list-item"}),!M&&be.createElement(xc,{size:16}))}):I&&be.createElement(Sh,null,be.createElement(Rn,{size:s?"large":"small",error:f,fetch:n}))))}i(kr,"Quotes");import{darkTheme as xE,styled as wh}from"@rango-dev/ui";var bh=wh("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}}),xh=wh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var BE=100;function Ec(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=NE(!1),l=s?"":"is-hidden",{config:u}=T(),p=u?.variant==="full-expanded",d=ko();return AE(()=>{let h=null;return a?h=setTimeout(()=>{c(!0)},BE):(c(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),mo.createElement(bh,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${l} ${Pi()} widget-expanded-quotes-container`,id:Re.EXPANDED_BOX_ID},mo.createElement(IE,{title:EE.t("Routes"),suffix:mo.createElement(mo.Fragment,null,mo.createElement(fa,{container:d}),mo.createElement(Wo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),mo.createElement(xh,null,mo.createElement(kr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:ko(),onClickOnQuote:n,fullExpandedMode:p})))}i(Ec,"ExpandedQuotes");import{i18n as Lh}from"@lingui/core";import{SwapInput as Ph}from"@rango-dev/ui";import ME from"bignumber.js";import vr from"react";import{ReverseIcon as PE}from"@rango-dev/ui";import Ac from"react";import{keyframes as WE,styled as Eh}from"@rango-dev/ui";var Ic=450,LE=WE({"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)"}}),Ih=Eh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Ah=Eh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${LE} ${Ic}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function Nc(){let t=O.use.switchFromAndTo();return Ac.createElement(Ih,null,Ac.createElement(Ah,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Ic),t()}},Ac.createElement(PE,{size:12})))}i(Nc,"SwitchFromAndToButton");import{styled as Nh}from"@rango-dev/ui";var Bh=Nh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Wh=Nh("div",{position:"relative"});function Bc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:u,sanitizeInputAmount:p,inputAmount:d,inputUsdValue:h,outputAmount:g,outputUsdValue:f,selectedQuote:m}=O(),{connectedWallets:y,getBalanceFor:C}=T(),S=a?C(a):null,k=Zr(S)?.amount??"0",v=S?new ME(S.amount).shiftedBy(-S.decimals):ce,x=!!s&&su(y,s.name),I=!Ls(m,d,h),A=!Ls(m,d,f),E=!h||!f||!f.gt(0)?null:Qt(h.toString(),f.toString());return vr.createElement(Bh,null,vr.createElement(Wh,null,vr.createElement(Ph,{label:Lh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:u,onInputBlur:p,balance:k,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:I?void 0:_(h,4,4),realUsdValue:I?void 0:h?.toString(),error:I?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:N(),onSelectMaxBalance:()=>{let b=_(v,S?.decimals),w=S?.amount?b.split(",").join(""):"";u(w)},anyWalletConnected:y.length>0}),vr.createElement(Nc,null)),vr.createElement(Ph,{sharpBottomStyle:!r&&(!!m||e),label:Lh.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:_(Qt(h,f),2,2),warningLevel:Ht(E??0),price:{value:_(g,6,6),usdValue:A?void 0:_(f,4,4),realValue:g?.toString(),realUsdValue:A?void 0:f?.toString(),error:A?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(Bc,"Inputs");import{useCallback as _E,useEffect as DE,useRef as $E,useState as FE}from"react";function Mh(){let{fetch:t,loading:e,cancelFetch:o}=na({request:async(n,r)=>await st().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Mh,"useFetchAllQuotes");var OE=600;function ga({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Mh(),{excludeLiquiditySources:n,routing:r}=T().config,{connectedWallets:a}=T(),c=a.some(j=>j.isContractWallet),{fromToken:l,toToken:u,inputAmount:p,inputUsdValue:d,selectedQuote:h,sortStrategy:g,resetQuote:f,error:m,warning:y,setSelectedQuote:C,updateQuotePartialState:S}=O(),{slippage:k,customSlippage:v,affiliatePercent:x,affiliateRef:I,affiliateWallets:A,fetchStatus:E}=T(),b=T().getLiquiditySources(),w=T().getDisabledLiquiditySources(),B=T().excludeLiquiditySources(),{findToken:M}=T(),[$,q]=FE(!0),ee=$E(p),V=v??k,te=!l||!u||Ot(l,u)||!Nn(p),le=i(j=>{q(j)},"resetState"),J=i(j=>{let{fromToken:ue,toToken:me,inputAmount:ke,liquiditySources:H,excludeLiquiditySources:W,disabledLiquiditySources:Q,slippage:K,affiliateRef:Y,affiliatePercent:ye,affiliateWallets:qe}=j;if($||le(!0),!te&&ue&&me){f();let Qe=Lm({fromToken:ue,toToken:me,inputAmount:ke,liquiditySources:H,excludeLiquiditySources:W,disabledLiquiditySources:Q,wallets:a,slippage:K,affiliateRef:Y,affiliatePercent:ye,affiliateWallets:qe,contractCall:c});Xo("experimental",r)&&(Qe.experimental=!0),Xo("avoidNativeFee",r)&&(Qe.avoidNativeFee=!0),Xo("enableCentralizedSwappers",r)&&(Qe.enableCentralizedSwappers=!0),r?.maxLength&&(Qe.maxLength=r.maxLength),e(Qe).then(Tt=>{let Ae=Ci(g,Tt.results),je=Tm(h,Ae,Tt.requestAmount);q(!1),S("quotes",Tt),C(je),ra({diagnosisMessages:Tt.diagnosisMessages,requestId:je?.requestId||"",swaps:je?.swaps});let Dr=je&&an({currentQuote:je,userSlippage:V,findToken:M});S("warning",Dr)}).catch(Tt=>{let{error:Ae}=ia(Tt);(Ae?.type===0||Ae?.type===1)&&f(),Ae?.type!==2&&(S("error",Ae),q(!1))})}},"fetch"),X=_E(Hr(j=>{J(j)},OE),[te]);return DE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(te){q(!1),(h||m||y)&&f();return}if(!Nn(p)&&d?.eq(0)){le(!1),o();return}f(),le(!0);let j=J;return ee.current&&ee.current!=p&&(j=X),ee.current=p,j({inputAmount:p,fromToken:l,toToken:u,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:V,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),o},[E,p,l?.symbol,l?.address,l?.blockchain,u?.symbol,u?.address,u?.blockchain,te,b?.length,n,w.length,V,I,x,c,JSON.stringify(A)]),{fetch:()=>J({inputAmount:p,fromToken:l,toToken:u,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:V,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),loading:$}}i(ga,"useSwapInput");function _h(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};ve.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(_h,"emitPreventableEvent");var VE=qE("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),KE=300;function Fh(){let t=GE(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:u,resetQuoteWallets:p,setQuoteWarningsConfirmed:d,updateQuotePartialState:h}=O(),[g,f]=$h(!1),{isLargeScreen:m,isExtraLargeScreen:y}=pn(),{fetch:C,loading:S}=ga({refetchQuote:a}),{config:k,fetchStatus:v,connectedWallets:x,customSlippage:I,slippage:A,setSlippage:E,setCustomSlippage:b}=T(),{isActiveTab:w}=oe(),[B,M]=$h(!1),q=Yo(I!==null?I:A),V=Am({fetchMetaStatus:v,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),L=fu(m,y,k?.variant),te=!!n&&!!e&&!!o&&new HE(n).gt(0)&&!Om(e,o),le=te&&v==="success"&&S,J=q?.quoteValidation||c,ue=(!L||L&&l?.results.length)&&(J||s),me=!!e&&!!o,ke=me&&!!q,H=(r||s)&&!B?C:void 0,W=i(Y=>{L&&g?(f(!1),setTimeout(()=>{t(Y)},KE)):t(Y)},"onHandleNavigation"),Q=i(Y=>{r?.requestId!==Y.requestId&&(M(!1),u(Y))},"onClickOnQuote"),K=i(Y=>{if(Y){if(Rr.includes(Y)){E(Y),b(null);return}b(Y)}},"onChangeSlippage");return Dh(()=>{p(),h("refetchQuote",!0)},[]),Dh(()=>{f(te)},[te]),Se.createElement(VE,null,Se.createElement(ie,{height:"auto",footer:Se.createElement(zE,{id:`widget-swap-${V.action}-btn`,type:"primary",size:"large",disabled:V.disabled||!w,prefix:V.action==="confirm-warning"&&Se.createElement(QE,null),fullWidth:!0,onClick:()=>{V.action==="connect-wallet"?_h({type:"clickConnectWallet"},()=>W(F.wallets)):V.action==="confirm-warning"?M(!0):W(F.confirmSwap)}},V.title),header:{onWallet:()=>{W(F.wallets)},hasBackButton:!1,title:k.title||UE.t("Swap"),suffix:Se.createElement(Wo,{hidden:L?["refresh"]:void 0,onClickRefresh:H,onClickHistory:()=>W(F.swaps),onClickSettings:()=>{W(F.settings)}})}},Se.createElement(ae,null,Se.createElement(Bc,{fetchingQuote:le,fetchMetaStatus:v,isExpandable:L,onClickToken:Y=>{W(Y==="from"?F.fromSwap:F.toSwap)}}),Se.createElement(Wc,{size:"2"}),L?null:Se.createElement(Mo,{quote:r,loading:le,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:J,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{h("refetchQuote",!1),W(F.routes)}:void 0}),me&&Se.createElement(Se.Fragment,null,Se.createElement(Wc,{size:8}),Se.createElement(wc,{quoteError:s,quoteWarning:J,fromToken:e,toToken:o,quote:r,loading:le})),ue?Se.createElement(Se.Fragment,null,Se.createElement(or,{warning:J,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:C,showWarningModal:B,confirmationDisabled:!w,onOpenWarningModal:()=>M(!0),onCloseWarningModal:()=>M(!1),onChangeSlippage:K,onConfirmWarningModal:()=>{M(!1),d(!0),W(F.confirmSwap)},onChangeSettings:()=>W(F.settings)})):null,ke&&Se.createElement(Se.Fragment,null,Se.createElement(Wc,{size:"10"}),Se.createElement(uh,{onChangeSettings:()=>W(F.settings)})),Se.createElement(Cc,null))),L?Se.createElement(Ec,{loading:le,onClickOnQuote:Q,fetch:C,onClickRefresh:H,isVisible:g}):null)}i(Fh,"Home");import{i18n as Oh}from"@lingui/core";import{Alert as jE,Divider as XE,List as YE,ListItemButton as ZE,Radio as JE,RadioRoot as RE,Typography as eI}from"@rango-dev/ui";import Dt from"react";function fo(){let{setLanguage:t,language:e,config:o}=T(),n=ku,r=o?.language||Zo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Zo),resetLanguage:()=>t(null)}}i(fo,"useLanguage");function Uh(){let{activeLanguage:t,changeLanguage:e,languages:o}=fo(),n=Ve(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Dt.createElement(eI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Dt.createElement(JE,{value:s}),start:Dt.createElement(l,null)}});return Dt.createElement(ie,{header:{title:Oh.t("Language")}},Dt.createElement(ae,null,Dt.createElement(jE,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Dt.createElement(XE,{size:"8"}),Dt.createElement(RE,{value:t},Dt.createElement(YE,{type:Dt.createElement(ZE,{title:Oh.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(Uh,"LanguagePage");import{i18n as Jt}from"@lingui/core";import{Button as iI,Checkbox as aI,Image as sI,ListItemButton as lI,NotFound as cI,Typography as pI}from"@rango-dev/ui";import Je,{useState as uI}from"react";import{Checkbox as nI,Skeleton as qh}from"@rango-dev/ui";import br from"react";import{styled as Lc}from"@rango-dev/ui";var wr=Lc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Pc=Lc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Mc=Lc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as tI,styled as oI}from"@rango-dev/ui";var zh=oI(tI,{height:61});var rI=30;function _c(){return br.createElement(wr,null,Array.from(Array(rI),(t,e)=>br.createElement(zh,{hasDivider:!0,key:e,start:br.createElement(qh,{variant:"circular",width:35,height:35}),title:br.createElement(qh,{variant:"text",size:"large",width:90}),end:br.createElement(nI,{checked:!1})})))}i(_c,"LoadingLiquiditySourceList");function Dc({sourceType:t}){let e=T().fetchStatus,o=T().swappers(),n=T().getDisabledLiquiditySources(),[r,a]=uI(""),s=T().toggleLiquiditySource,c=T().isInCampaignMode(),l=oi(o,n),u={Exchanges:Jt.t("Exchanges"),Bridges:Jt.t("Bridges")},p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&p.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(C=>p.includes(C.type)),h=d.length===d.filter(C=>C.selected).length,g=i(()=>{d.forEach(C=>{h?s(C.groupTitle):C.selected||s(C.groupTitle)})},"toggleAllSources"),f=d.map(C=>{let{selected:S,groupTitle:k,logo:v,id:x,...I}=C;return{id:`widget-setting-liquidity-source-${Xp(x.toLowerCase())}-item-btn`,start:Je.createElement(sI,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:Je.createElement(aI,{checked:S,disabled:c}),title:Je.createElement(pI,{variant:"title",size:"xmedium"},Jt.t(k)),selected:S,groupTitle:k,logo:v,...I}}),m=i(C=>{let S=C.target.value;a(S)},"handleSearch"),y=f;return r&&(y=f.filter(C=>Bt(C.groupTitle,r))),Je.createElement(ie,{header:{title:Jt.t(t),suffix:Je.createElement(Pc,null,Je.createElement(iI,{id:`widget-liquidity-source-${h?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:g},h?Jt.t("Deselect all"):Jt.t("Select all")))}},Je.createElement(ae,{view:!0},Je.createElement(Et,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:Jt.t("Search {sourceType}",{sourceType:u[t]}),onChange:m}),e==="loading"&&Je.createElement(_c,null),!y.length&&r?Je.createElement(Mc,null,Je.createElement(cI,{title:Jt.t("No results found"),description:Jt.t("Try using different keywords")})):e==="success"&&Je.createElement(wr,{disabled:c,className:"widget-liquidity-source-list"},y.map(C=>{let{groupTitle:S,...k}=C;return Je.createElement(Je.Fragment,{key:C.id},Je.createElement(lI,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Dc,"LiquiditySourcePage");import{i18n as mI}from"@lingui/core";import ha from"react";import{useNavigate as dI}from"react-router-dom";function Qh(){let t=dI(),e=Ve(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:c,loading:l}=ga({refetchQuote:n}),u=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),p=`../${F.settings}`,d=`../${F.wallets}`;return ha.createElement(ie,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:mI.t("Routes"),suffix:ha.createElement(Wo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(p),a("refetchQuote",!0)}})}},ha.createElement(ae,null,ha.createElement(kr,{fetch:c,loading:l,onClickOnQuote:u})))}i(Qh,"RoutesPage");import{i18n as Yh}from"@lingui/core";import{Divider as Zh,getCategoriesCount as wI,SelectableCategoryList as bI}from"@rango-dev/ui";import Rt,{useState as Jh}from"react";import{useNavigate as xI}from"react-router-dom";import{i18n as $c}from"@lingui/core";import{Divider as yI,Image as SI,ListItemButton as CI,NotFound as TI,Typography as Xh}from"@rango-dev/ui";import dt,{useEffect as kI,useState as vI}from"react";var Hh=i((t,e,o)=>t.filter(n=>Gr(n.type,o)).filter(n=>it(n.name,e)||it(n.displayName,e)),"filterBlockchains");import{ImageContainer as fI,styled as Gh}from"@rango-dev/ui";var Vh=Gh("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),ya=Gh(fl,{padding:0,margin:0,listStyle:"none",[`& ${fI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as gI,Skeleton as Kh}from"@rango-dev/ui";import Sa from"react";var hI=20;function jh(){return Sa.createElement(ya,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(hI),t=>Sa.createElement(gI,{key:t,hasDivider:!0,start:Sa.createElement(Kh,{variant:"circular",width:35,height:35}),title:Sa.createElement(Kh,{variant:"text",size:"large",width:90})})))}i(jh,"LoadingBlockchainList");function Fc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=vI(e),{fetchStatus:l}=T();kI(()=>{c([...Hh(e,o,r)])},[e,o,r]);let u=i(()=>!s.length&&o?dt.createElement(TI,{title:$c.t("No results found"),description:$c.t("Try using different keywords")}):dt.createElement(ya,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(p=>dt.createElement(CI,{key:`${p.name}-${p.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(p),start:dt.createElement(SI,{src:p.logo,size:30}),title:dt.createElement(Xh,{variant:"title",size:"medium"},p.displayName),id:p.name}))),"renderList");return dt.createElement(dt.Fragment,null,a&&dt.createElement(dt.Fragment,null,dt.createElement(Xh,{variant:"label",size:"large"},$c.t("Select Chain")),dt.createElement(yI,{size:4})),dt.createElement(Vh,null,l==="loading"&&dt.createElement(jh,null),l==="success"&&u()))}i(Fc,"BlockchainList");function Ca(t){let{type:e}=t,o=Ve(),[n,r]=Jh(""),[a,s]=Jh("ALL"),c=O.use.setToBlockchain(),l=O.use.setFromBlockchain(),{fetchStatus:u}=T(),p=xI(),d=T().blockchains({type:e}),h=wI(d),g=!t.hideCategory&&h!==1;return Rt.createElement(ie,{header:{title:Yh.t("Select Chain")}},Rt.createElement(ae,{view:!0},g&&Rt.createElement(Rt.Fragment,null,Rt.createElement(bI,{setCategory:s,category:a,blockchains:d,isLoading:u==="loading"}),Rt.createElement(Zh,{size:24})),Rt.createElement(Et,{value:n,autoFocus:!0,placeholder:Yh.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Rt.createElement(Zh,{size:16}),Rt.createElement(Fc,{list:d,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:f=>{e==="custom-token"?p(`..?blockchain=${f.name}`,{replace:!0}):(e==="source"?l(f):c(f),o())}})))}i(Ca,"SelectBlockchainPage");import{i18n as va}from"@lingui/core";import{Divider as iy,Spinner as UI}from"@rango-dev/ui";import go,{useEffect as zI,useState as qI}from"react";import{useNavigate as QI}from"react-router-dom";import{i18n as zc}from"@lingui/core";import{BlockchainsChip as Ta,Divider as oy,Image as ny,Skeleton as WI,Tooltip as LI,Typography as qc}from"@rango-dev/ui";import xe from"react";import{useEffect as AI}from"react";var Rh=["ETH","COSMOS","OSMOSIS"];function Oc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(EI),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 u=n[l];s=s.filter(p=>u.name!==p)}}n.sort(II(s)),r=n.splice(a)}return{list:n,more:r}}i(Oc,"prepare");function EI(t,e){let o=Rh,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(EI,"sortByMostUsedBlockchains");function II(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(II,"generateSortByPreferredBlockchainsFor");function ey(t,e){return!!e.list.find(o=>o.name===t)}i(ey,"isInVisibleList");function Uc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=T();AI(()=>{if(e?.selected){let a=Oc(t,o,e);ey(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Oc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Uc,"usePrepareBlockchainList");import{styled as NI}from"@rango-dev/ui";var ty=NI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var PI=6,MI=12;function Qc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=Uc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=T(),u=O.use.resetToBlockchain(),p=O.use.resetFromBlockchain(),d=c.more.length>0,h=c.more.length===1,g=!h&&d;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(oy,{size:12}),xe.createElement(qc,{variant:"label",size:"large"},zc.t("Select Chain"))),xe.createElement(oy,{size:12}),xe.createElement(ty,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?PI:MI),(f,m)=>xe.createElement(WI,{key:m,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(Ta,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?p():u()}},xe.createElement(qc,{variant:"body",size:"xsmall",color:"secondary500"},zc.t("All"))),c.list.map(f=>xe.createElement(LI,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:N()},xe.createElement(Ta,{className:"widget-blockchains-section-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(ny,{src:f.logo,size:30})))),h?xe.createElement(Ta,{className:"widget-blockchains-section-only-item-btn",key:c.more[0].name,selected:!!n&&n.name===c.more[0].name,onClick:()=>r(c.more[0])},xe.createElement(ny,{src:c.more[0].logo,size:30})):null,g?xe.createElement(Ta,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(qc,{variant:"body",size:"xsmall",color:"secondary500"},zc._("More +{count}",{count:c.more.length}))):null)))}i(Qc,"BlockchainsSection");import{useCallback as DI,useRef as $I,useState as Hc}from"react";function Gc(){let t=T().blockchains(),e=$I(null),{customTokens:o}=T(),[n,r]=Hc(!1),[a,s]=Hc([]),[c,l]=Hc(null),u=i(async(h,g)=>{l(null),r(!0),s([]);try{let f=await st().searchCustomTokens({query:h,blockchain:g},{signal:e.current?.signal}),m=new Set(o().map(S=>zt(S))),y=new Set(t.map(S=>S.name)),C=f.tokens.filter(S=>y.has(S.blockchain)&&!m.has(zt(S)));s(C),r(!1)}catch(f){l(f instanceof Error?f.message:"something went wrong"),s([]),f?.name!=="CanceledError"&&r(!1)}},"fetch"),p=DI(Hr((h,g)=>{e.current?.signal.aborted||u(h,g)},600),[t.length]);return{fetch:(h,g)=>{e.current=new AbortController,s([]),r(!0),p(h,g)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Gc,"useSearchCustomTokens");function ka(t,e,o){return o&&t.length===1&&t[0].address===e?!1:t.length<20&&e.trim().length>=3}i(ka,"shouldSearchForCustomTokens");function ry(t,e,o,n,r){let a=[...t];return ka(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(ry,"prepareTokensList");function wa(t){let{type:e}=t,o=QI(),n=Ve(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:u}=O(),{getBalanceFor:p}=T(),{fetch:d,loading:h,tokens:g,cancel:f}=Gc(),[m,y]=qI(""),C=e==="source"?r:a,S=C?.name??"",k=T().blockchains({type:e}),v=T().tokens({type:e,blockchain:S,searchFor:m,getBalanceFor:p}),x=ry(v,g,m,h,C?.name),I=i(b=>{e==="source"?l(b):u(b)},"updateBlockchain"),A=i(b=>{e==="source"?s({token:b,meta:{blockchains:k}}):c({token:b,meta:{blockchains:k}})},"updateToken"),E={source:va.t("Source"),destination:va.t("Destination")};return zI(()=>(ka(v,m,C?.name)&&d(m,C?.name??void 0),()=>{f()}),[v.length,m,C?.name]),go.createElement(ie,{header:{title:va.t("Swap {type}",{type:E[e]})}},go.createElement(ae,null,go.createElement(Qc,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:b=>{I(b)}}),go.createElement(iy,{size:24}),go.createElement(Et,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:va.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>y(""),onChange:b=>y(b.target.value),suffix:ka(v,m,C?.name)&&h?go.createElement(UI,{size:12,color:"secondary"}):void 0}),go.createElement(iy,{size:16}),go.createElement(fr,{list:x,selectedBlockchain:S,searchedFor:m,type:e,onChange:b=>{A(b);let w=k.find(B=>b.blockchain===B.name);w&&I(w),n()}})))}i(wa,"SelectSwapItemsPage");import{i18n as Xc}from"@lingui/core";import{Alert as hA,Button as yA,styled as SA}from"@rango-dev/ui";import Oo from"react";import{useInRouterContext as CA,useSearchParams as TA}from"react-router-dom";import{i18n as uy}from"@lingui/core";import{Alert as KI,Divider as Kc,InfoIcon as jI,SlippageIcon as XI,TextField as YI,Tooltip as ZI,Typography as my}from"@rango-dev/ui";import Ue from"react";import{Chip as HI,styled as xr,TextField as GI}from"@rango-dev/ui";var ay=xr("div",{paddingTop:"$5",padding:"$10 $5"}),sy=xr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${GI}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),ly=xr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ba=xr("div",{maxWidth:"280px",padding:"$10"}),cy=xr(HI,{width:"61px",flexShrink:0});import{i18n as Vc}from"@lingui/core";import{Typography as VI}from"@rango-dev/ui";import Er from"react";function py(){return Er.createElement(ba,null,Er.createElement(VI,{variant:"label",size:"medium",color:"neutral700"},Vc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Er.createElement("br",null),Er.createElement("br",null),Er.createElement("b",null,Vc.t("Warning")),":\xA0",Vc.t("This setting is applied to each step (e.g. 1Inch, Thorchain, etc.), meaning only that specific step will be reverted, not the entire route.")))}i(py,"SlippageTooltipContent");function jc(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=T(),r=o!==null?Yo(o):null,a=i(l=>{let u=l.target.value,p=parseFloat(u);if(isNaN(p))return n(null);let d=p;p>Pn&&(d=Pn),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let u=l.target,p=u.value;Zp(p)||(u.value=p.slice(0,-1))},"onInput");return Ue.createElement(ay,null,Ue.createElement(ly,null,Ue.createElement(XI,{size:16,color:"gray"}),Ue.createElement(Kc,{direction:"horizontal",size:4}),Ue.createElement(my,{variant:"title",size:"xmedium"},uy.t("Slippage tolerance per swap")),Ue.createElement(Kc,{direction:"horizontal",size:4}),Ue.createElement(ZI,{container:N(),side:"top",sideOffset:4,content:Ue.createElement(py,null)},Ue.createElement(jI,{color:"gray"}))),Ue.createElement(sy,null,Rr.map((l,u)=>{let p=`slippage-${u}`;return Ue.createElement(cy,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:p,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),Ue.createElement(YI,{type:"number",min:"0.01",max:"30",step:"0.01",status:r?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&Ue.createElement(my,{variant:"body",size:"small"},"%"),placeholder:uy.t("Custom")})),r&&Ue.createElement(Ue.Fragment,null,Ue.createElement(Kc,{size:10}),Ue.createElement(KI,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(jc,"Slippage");import{i18n as Ct}from"@lingui/core";import{AutoThemeIcon as dy,BridgesIcon as JI,ChevronRightIcon as xa,DarkModeIcon as fy,Divider as Ir,ExchangeIcon as RI,InfinityIcon as eA,InfoIcon as tA,LanguageIcon as oA,LightModeIcon as gy,List as nA,ListItem as rA,ListItemButton as iA,Skeleton as aA,styled as sA,Switch as lA,Tabs as cA,TargetIcon as pA,Tooltip as uA,Typography as rt}from"@rango-dev/ui";import D from"react";import{useNavigate as mA}from"react-router-dom";var dA=sA("div",{width:"202px",height:"$40"}),fA=[{id:"light",icon:D.createElement(gy,{color:"black",size:24}),tooltip:D.createElement(rt,{size:"xsmall",variant:"body"},Ct.t("Light"))},{id:"dark",icon:D.createElement(fy,{color:"black",size:24}),tooltip:D.createElement(rt,{size:"xsmall",variant:"body"},Ct.t("Dark"))},{id:"auto",icon:D.createElement(dy,{color:"black",size:24}),tooltip:D.createElement(rt,{size:"xsmall",variant:"body"},Ct.t("Auto"))}],gA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(dy,{...e});case"dark":return D.createElement(fy,{...e});default:return D.createElement(gy,{...e})}},"getThemeIcon");function hy(){let t=mA(),{theme:e}=T().config,{setTheme:o,theme:n}=T(),{activeLanguage:r,languages:a}=fo(),s=a.find(L=>L.local===r)?.label,c=T().fetchStatus,l=T().swappers(),u=T().getDisabledLiquiditySources(),{config:{features:p}}=T(),d=T().customTokens(),h=et("theme",p),g=et("liquiditySource",p),f=et("language",p),m=et("customTokens",p),y=T().infiniteApprove,C=T().toggleInfiniteApprove,S=oi(l,u),k=S.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),v=k.length,x=k.filter(L=>L.selected).length,I=S.filter(L=>L.type==="DEX"),A=I.length,E=I.filter(L=>L.selected).length,b=i((L,te)=>{switch(c){case"loading":return D.createElement(aA,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(rt,{variant:"body",size:"medium",color:"$error500"},Ct.t("Loading failed"));default:return D.createElement(rt,{variant:"body",size:"medium"},`${L} / ${te}`)}},"handleSwapperEndItem"),w={id:"widget-setting-bridge-item-btn",title:D.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Bridges")),end:D.createElement(D.Fragment,null,b(x,v),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(xa,{color:"black"})),onClick:()=>t(F.bridges),start:D.createElement(JI,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:D.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Exchanges")),end:D.createElement(D.Fragment,null,b(E,A),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(xa,{color:"black"})),start:D.createElement(RI,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},M={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(rt,{variant:"body",size:"medium"},`${d.length}`),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(xa,{color:"black"})),start:D.createElement(pA,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},$={id:"widget-setting-language-item-btn",title:D.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Language")),start:D.createElement(oA,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(rt,{variant:"body",size:"medium"},s),D.createElement(Ir,{direction:"horizontal",size:8}),D.createElement(xa,{color:"black"})),onClick:()=>t(F.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Infinite approval")),D.createElement(Ir,{direction:"horizontal",size:4}),D.createElement(uA,{side:"top",sideOffset:4,container:N(),content:D.createElement(ba,null,D.createElement(rt,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,Ct.t("Warning")),":\xA0",Ct.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(tA,{color:"gray"}))),start:D.createElement(eA,{color:"gray",size:16}),end:D.createElement(lA,{checked:y}),onClick:C},ee={id:"widget-setting-theme-item-btn",type:D.createElement(rA,null),title:D.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Theme")),end:D.createElement(dA,null,D.createElement(cA,{container:N(),items:fA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:gA(n)},V=g?[]:[w,B];return m||V.push(M),f||V.push($),V.push(q),!e?.singleTheme&&!h&&V.push(ee),D.createElement(nA,{type:D.createElement(iA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:V})}i(hy,"SettingsLists");var kA=SA("div",{paddingLeft:"$8"});function yy(){let{isInCampaignMode:t,updateCampaignMode:e}=T(),o=t(),[,n]=TA(),r=CA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Oo.createElement(ie,{header:{title:Xc.t("Settings")}},Oo.createElement(ae,null,o&&Oo.createElement(hA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:Xc.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:Oo.createElement(kA,null,Oo.createElement(yA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Xc.t("Reset")))}),Oo.createElement(jc,null),Oo.createElement(hy,null)))}i(yy,"SettingsPage");import{i18n as E0}from"@lingui/core";import{cancelSwap as I0}from"@rango-dev/queue-manager-rango-preset";import{useManager as A0}from"@rango-dev/queue-manager-react";import{Alert as N0}from"@rango-dev/ui";import up from"react";import{useParams as B0}from"react-router-dom";import{i18n as zo}from"@lingui/core";import{getCurrentNamespaceOfOrNull as d0,getCurrentStep as f0,getRelatedWalletOrNull as g0}from"@rango-dev/queue-manager-rango-preset";import{Button as uS,Divider as h0,QuoteCost as y0,StepDetails as S0,Typography as ap}from"@rango-dev/ui";import{useWallets as C0}from"@rango-dev/wallets-react";import mS from"bignumber.js";import{PendingSwapNetworkStatus as bn}from"rango-types";import Te,{useEffect as dS,useRef as fS,useState as sp}from"react";import{useNavigate as T0}from"react-router-dom";import{i18n as ho}from"@lingui/core";var vA=[ho.t("Sunday"),ho.t("Monday"),ho.t("Tuesday"),ho.t("Wednesday"),ho.t("Thursday"),ho.t("Friday"),ho.t("Saturday")];function Sy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?ho.t("Today"):`${vA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Sy,"timeSince");function Cy(t){return t.finishTime?Sy(parseInt(t.finishTime)):Sy(parseInt(t.creationTime))}i(Cy,"getSwapDate");import Nr from"react";import{i18n as Ea}from"@lingui/core";import{Button as Ty,Divider as Yc,MessageBox as wA}from"@rango-dev/ui";import yo from"react";var ky=i(({onCancel:t,onClose:e})=>yo.createElement(yo.Fragment,null,yo.createElement(Yc,{size:20}),yo.createElement(wA,{type:"error",title:Ea.t("Cancel Swap"),description:Ea.t("Are you sure you want to cancel this swap?")}),yo.createElement(Yc,{size:32}),yo.createElement(Ty,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Ea.t("Yes, Cancel it")),yo.createElement(Yc,{size:12}),yo.createElement(Ty,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Ea.t("No, Continue"))),"CancelContent");import{i18n as Ia}from"@lingui/core";import{Button as vy,Divider as Zc,MessageBox as bA,Typography as xA}from"@rango-dev/ui";import eo from"react";var wy=i(({onDelete:t,onClose:e})=>eo.createElement(eo.Fragment,null,eo.createElement(Zc,{size:20}),eo.createElement(bA,{type:"error",title:Ia.t("Delete Transaction"),description:Ia.t("Are you sure you want to delete this swap?")}),eo.createElement(Zc,{size:32}),eo.createElement(vy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Ia.t("Yes, Delete it")),eo.createElement(Zc,{size:12}),eo.createElement(vy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},eo.createElement(xA,{variant:"title",size:"medium",color:"primary"},Ia.t("No, Cancel")))),"DeleteContent");import{i18n as by}from"@lingui/core";import{MessageBox as EA}from"@rango-dev/ui";import IA from"react";var xy=i(t=>{let{status:e,message:o}=t,n=e==="waitingForNetworkChange"?"loading":"success",r=e==="waitingForNetworkChange"?by.t("Change Network"):by.t("Network Changed");return IA.createElement(EA,{type:n,title:r,description:o})},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as HA,getCurrentStep as GA,getRelatedWalletOrNull as VA}from"@rango-dev/queue-manager-rango-preset";import{WalletState as KA}from"@rango-dev/ui";import{useWallets as jA}from"@rango-dev/wallets-react";import Wy from"react";import{i18n as vn}from"@lingui/core";import{Alert as Iy,Button as NA,Checkbox as BA,Divider as Ba,Image as WA,MessageBox as LA,Spinner as PA,WarningIcon as MA}from"@rango-dev/ui";import{useWallets as _A}from"@rango-dev/wallets-react";import he,{useState as DA}from"react";import{darkTheme as AA,styled as Ar}from"@rango-dev/ui";var D3=Ar("div",{display:"flex",justifyContent:"center"}),$3=Ar("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Ey=Ar("img",{width:"100%"}),Aa=Ar("div",{position:"relative"}),Na=Ar("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${AA} &`]:{$$color:"$warning600"}});var Ay=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=DA(null),{list:s}=kt(),c=oe.use.isActiveTab(),{state:l,connect:u}=_A(),p=s.find(x=>x.type===e.walletType),d=p?.needsNamespace?.data.find(x=>x.value===o?.namespace);if(!p)return null;let h=l(e.walletType),g=p.isHub&&o?.namespace?h.namespaces?.get(o.namespace):null,f=h.connecting||g?.connecting,m=p.isHub?g?.connected:h.connected,y=i(()=>m?vn.t("Done"):r?vn.t("Try again"):vn.t("Connect"),"getButtonTitle"),C=i(()=>f?he.createElement(PA,{color:"info"}):r||m?null:he.createElement(BA,{checked:!0,disabled:!0}),"getNamespaceSuffix"),S=i(async()=>{try{a(null),await u(p.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(x){a(x)}},"handleConnect"),k=i(async()=>{if(m){n();return}S()},"handleClickButton"),v=i(()=>{if(!m)return null;let x=p?.isHub?g?.accounts?.[0]?.split(":"):h?.accounts?.[0]?.split(":"),I=x?.[x?.length-1];return I?oo(I):null},"getAddress");return he.createElement(he.Fragment,null,he.createElement(LA,{type:"warning",title:vn.t("Connect {wallet}",{wallet:p.title}),description:vn.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:he.createElement(Aa,null,he.createElement(WA,{src:p.image,size:45}),he.createElement(Na,null,he.createElement(MA,{color:"warning",size:10})))}),m&&!d&&he.createElement(he.Fragment,null,he.createElement(Ba,{size:10}),he.createElement(Iy,{type:"success",variant:"alarm",title:vn.t("Wallet connected successfully.")})),r&&!d&&he.createElement(he.Fragment,null,he.createElement(Ba,{size:10}),he.createElement(Iy,{type:"error",title:r?.message,variant:"alarm"})),d&&he.createElement(he.Fragment,null,he.createElement(Ba,{size:30}),he.createElement(xo,{namespace:d,suffix:C(),error:r?.message,connected:m,address:v()})),he.createElement(Ba,{size:"40"}),he.createElement(NA,{loading:f,type:"primary",id:"widget-connect-wallet-btn",onClick:k,disabled:!c},y()))},"ConnectWalletContent");import{i18n as Ny}from"@lingui/core";import{Button as $A,Divider as FA,Image as OA,MessageBox as UA,WarningIcon as zA}from"@rango-dev/ui";import{useWallets as qA}from"@rango-dev/wallets-react";import{detectInstallLink as QA}from"@rango-dev/wallets-shared";import to from"react";var By=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=qA(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(QA(n.installLink),"_blank"),"handleButtonClick");return to.createElement(to.Fragment,null,to.createElement(UA,{type:"warning",title:Ny.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:to.createElement(Aa,null,to.createElement(OA,{src:n.img,size:45}),to.createElement(Na,null,to.createElement(zA,{color:"warning",size:10})))}),to.createElement(FA,{size:"40"}),to.createElement($A,{type:"primary",id:"widget-install-wallet-btn",onClick:r},Ny.t("Install")))},"InstallWalletContent");var Ly=i(t=>{let{swap:e,onClose:o}=t,{state:n}=jA(),r=GA(e),a=r?VA(e,r):null,s=a?.walletType,c=s?Bn(n(s)):null,l=r?HA(e,r):null;return s?c===KA.NOT_INSTALLED?Wy.createElement(By,{walletType:s}):Wy.createElement(Ay,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function Jc(t){let{isOpen:e,state:o,onClose:n,onDelete:r,onCancel:a,swap:s,message:c}=t;return Nr.createElement(R,{open:e,onClose:n,container:N()},o==="waitingForConnectingWallet"&&Nr.createElement(Ly,{swap:s,message:c,onClose:n}),(o==="waitingForNetworkChange"||o==="networkChanged")&&Nr.createElement(xy,{message:c,status:o}),o==="delete"&&Nr.createElement(wy,{onClose:n,onDelete:()=>{n(),r()}}),o==="cancel"&&Nr.createElement(ky,{onClose:n,onCancel:()=>{n(),a()}}))}i(Jc,"SwapDetailsModal");import{i18n as Br}from"@lingui/core";import{Button as Rc,Divider as Wr,MessageBox as _y,TokenAmount as XA,Typography as Dy}from"@rango-dev/ui";import Ce from"react";import{Link as YA,useNavigate as ZA}from"react-router-dom";var Py="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",My="/profile";function ep(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:u,percentageChange:p,description:d,diagnosisUrl:h}=t,g=ZA(),{showProfileBanner:f}=oe();return Ce.createElement(R,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(Re.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement(_y,{type:"success",title:Br.t("Swap Successful")},Ce.createElement(XA,{direction:"vertical",tooltipContainer:N(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:u,percentageChange:p}),Ce.createElement(Wr,{size:12}),Ce.createElement(Dy,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Ce.createElement(_y,{type:"error",title:Br.t("Transaction Failed"),description:d}),Ce.createElement(Wr,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,f&&Ce.createElement(Ce.Fragment,null,Ce.createElement(YA,{to:My},Ce.createElement(Ey,{src:Py,alt:"Profile Banner"})),Ce.createElement(Wr,{size:30})),Ce.createElement(Rc,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{g("../../")}},Br.t("Done"))),Ce.createElement(Wr,{size:12}),h&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Rc,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},Br.t("Diagnosis")),Ce.createElement(Wr,{size:12})),Ce.createElement(Rc,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement(Dy,{variant:"title",size:"medium",color:"primary"},Br.t("See Details"))))}i(ep,"SwapDetailsCompleteModal");import{i18n as Pa}from"@lingui/core";import{CopyIcon as l0,DoneIcon as c0,IconButton as p0,RangoExplorerIcon as u0,Tooltip as iS,Typography as aS,useCopyToClipboard as m0}from"@rango-dev/ui";import At from"react";import s0 from"react";import{i18n as n0}from"@lingui/core";import{Alert as tS,IconButton as r0,LinkIcon as i0}from"@rango-dev/ui";import So,{Fragment as a0}from"react";import{Alert as RA,ChevronDownIcon as e0,IconButton as t0}from"@rango-dev/ui";import wn,{useState as o0}from"react";import{css as Lr,darkTheme as $y,styled as $t,Typography as JA}from"@rango-dev/ui";var Fy=$t(ae,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${$y} &`]:{color:"$secondary500"}}}}}),Oy=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Uy=$t("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),zy=$t("div",{padding:"$0 $20 $20 $20"}),UX=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),qy=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),zX=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Uo=Lr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${$y} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Qy=Lr({padding:"$5 0"}),Wa=Lr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Hy=Lr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Gy=Lr({width:"100%",padding:"0 $20 $10"}),Vy=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Ky=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),La=$t(JA,{wordBreak:"break-word"});import{styled as tp}from"@rango-dev/ui";var jy=tp("div",{display:"flex",flexDirection:"column",gap:"$10"}),Xy=tp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Yy=tp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Zy(t){let{message:e}=t,[o,n]=o0(!1);return wn.createElement(RA,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&wn.createElement(t0,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},wn.createElement(Xy,{rotated:o},wn.createElement(e0,{size:12,color:"gray"}))),footer:wn.createElement(Yy,{open:o},wn.createElement(La,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Zy,"FailedAlert");import{i18n as Jy}from"@lingui/core";import{Alert as op,Button as Ry}from"@rango-dev/ui";import{PendingSwapNetworkStatus as np}from"rango-types";import Pr from"react";function eS(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Pr.createElement(op,{type:"warning",id:"widget-swap-details-change-network-alert",title:n.shortMessage,action:Pr.createElement(Ry,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(np.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Jy.t("Change"))}):r===np.WaitingForConnectingWallet?Pr.createElement(op,{type:"warning",title:n.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Pr.createElement(Ry,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(np.WaitingForConnectingWallet)}},Jy.t("Connect"))}):Pr.createElement(op,{id:"widget-swap-details-short-alert",type:"warning",title:n.shortMessage})}i(eS,"WarningAlert");function rp(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,c=Vn(a),l=a.status==="waitingForApproval"&&!c,u=a.status==="running"&&!c,p=u&&!s||l&&!a.explorerUrl?.length;return So.createElement(jy,null,a.explorerUrl?.map((d,h,g)=>{let f=h+d.url,m=h===g.length-1,y=(m&&u||l)&&!p,C=m&&a.status==="failed";return So.createElement(a0,{key:f},So.createElement(tS,{id:"widget-swap-details-tx-alert",type:m&&(y&&"loading"||C&&"error")||"success",title:d.description?`${d.description} Tx`:n0.t("View transaction"),action:d.url&&So.createElement(r0,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},So.createElement(i0,{size:12}))}))}),p&&So.createElement(tS,{id:"widget-swap-details-loading-alert",type:"loading",title:r.shortMessage}),a.status!=="failed"&&c&&So.createElement(eS,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&So.createElement(Zy,{message:r}))}i(rp,"SwapDetailsAlerts");var oS=2e3;var nS=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:ft(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:_(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ft(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:_(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:En(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:ft(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:ft(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:En(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:s0.createElement(rp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function rS(t){if(Vn(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(rS,"getStepState");function sS(t){let{requestId:e}=t,[o,n]=m0(oS);return At.createElement(Uy,{className:Uo()},At.createElement(aS,{variant:"label",size:"large",color:"neutral700"},Pa.t("Request ID")),At.createElement("div",{className:Wa()},At.createElement(aS,{variant:"label",size:"small",color:"neutral700"},e),At.createElement(iS,{container:N(),content:o?Pa.t("Copied To Clipboard"):Pa.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},At.createElement(p0,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?At.createElement(c0,{size:16,color:"secondary"}):At.createElement(l0,{size:16,color:"gray"}))),At.createElement(Vy,{target:"_blank",href:`${Mp}/swap/${e}`},At.createElement(iS,{container:N(),content:Pa.t("View on Rango Explorer"),side:"bottom"},At.createElement(u0,{size:20})))))}i(sS,"RequestIdRow");import{i18n as lS}from"@lingui/core";import{Typography as cS}from"@rango-dev/ui";import ip from"react";function pS(t){let{date:e,isFinished:o}=t;return ip.createElement("div",{className:Uo()},ip.createElement(cS,{variant:"label",size:"large",color:"neutral700"},o?lS.t("Finished at"):lS.t("Created at")),ip.createElement(cS,{variant:"label",size:"small",color:"neutral700"},e))}i(pS,"SwapDateRow");function lp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=C0(),l=T().blockchains(),u=T().swappers(),{findToken:p}=T(),d=O.use.retry(),h=T0(),g=fS(null),[f,m]=sp(!1),[y,C]=sp(null),[S,k]=sp(null),v=fS(!1),x=Be.use.getNotifications(),I=Be.use.removeNotification(),A=x(),E=f0(e),b=E?.networkStatus,w=i(Ae=>{m(!0),C(Ae)},"handleChangeModalState"),B=i(()=>{m(!1)},"handleCloseModal");dS(()=>{A.find(je=>je.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(k(e.status),I(e.requestId),B()):S&&k(null))},[e.status,e.requestId]),dS(()=>{te?w(bn.WaitingForNetworkChange):b===bn.WaitingForConnectingWallet?w(bn.WaitingForConnectingWallet):b===bn.NetworkChanged&&w(bn.NetworkChanged),!te&&v.current&&B(),v.current=te},[b]);let M=Dm(e),$=E?d0(e,E):null,q=E?g0(e,E):null,ee=Cy(e),V=$m(e),L=i(Ae=>!!c(Ae)?.mobileWallet,"isMobileWallet"),te=b===bn.WaitingForNetworkChange&&!!$&&!!q?.walletType&&(L(q.walletType)||a(q.walletType,$.network)),le=te?s.bind(null,q.walletType,[{namespace:$.namespace,network:$.network}]):void 0,J=_m(e,E,c),X=nS({swap:e,switchNetwork:le,showNetworkModal:b,setNetworkModal:w,message:J,blockchains:l,swappers:u}),j=X.length,[ue,me]=[e.steps[0],e.steps[j-1]],ke=me.outputAmount||me.expectedOutputAmountHumanReadable,H=e.steps.reduce((Ae,je)=>Ae+parseFloat(je.feeInUsd||""),0),W=e.steps.find(Ae=>Ae.diagnosisUrl)?.diagnosisUrl,Q=_(parseFloat(ke||"0")*(me.toUsdPrice||0),4,4),K=_(parseFloat(e.inputAmount)*(ue.fromUsdPrice||0),4,4),Y=ke?new mS(ke).multipliedBy(me.toUsdPrice||0).toString():"",ye=new mS(e.inputAmount).multipliedBy(ue.fromUsdPrice||0).toString(),qe=Qt(K,Q),Qe=J.detailedMessage.content||J.shortMessage,Tt=e.status==="success"?zo.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:_(ke,6,6),token:X[j-1].to.token.displayName,conciseAddress:oo(e.wallets[X[j-1].to.chain.displayName]?.address||""),chain:X[j-1].to.chain.displayName}}):Te.createElement(Ky,null,Te.createElement(ap,{variant:"body",size:"medium",color:"neutral700",align:"center"},Qe?"":zo.t("Transaction was not sent."),M?`${zo.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:M.outputAmount,symbol:M.symbol,blockchain:M.blockchain}})}`:""),Qe&&Te.createElement(La,{align:"center",variant:"body",size:"medium",color:"neutral700"},Te.createElement("b",null,"Reason:")," ",Qe));return Te.createElement(ie,{header:{title:zo.t("Swap Details"),onCancel:e.status==="running"?()=>w("cancel"):void 0,suffix:e.status!=="running"&&Te.createElement(ao,null,Te.createElement(uS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>w("delete")},Te.createElement(ap,{size:"medium",variant:"label",color:"error"},zo.t("Delete"))))},footer:V&&!S&&Te.createElement(uS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Ae=Si(e,l,p);d(Ae),setTimeout(()=>{h("../../")},0)}},zo.t("Try again"))},Te.createElement(Fy,{compact:!0,ref:g},Te.createElement(sS,{requestId:o}),Te.createElement(pS,{date:ee,isFinished:!!e.finishTime}),Te.createElement("div",{className:Hy()},Te.createElement(y0,{fee:_(String(H),2,2),time:An(Kr(e.steps)),steps:j}),Te.createElement(rr,{from:{price:{value:_(e.inputAmount,6,6),usdValue:K,realUsdValue:ye,realValue:e.inputAmount},token:{displayName:X[0].from.token.displayName,image:X[0].from.token.image},chain:{image:X[0].from.chain.image,displayName:X[0].from.chain.displayName}},to:{price:{value:_(ke,6,6),usdValue:Q,realUsdValue:Y,realValue:ke||""},token:{displayName:X[j-1].to.token.displayName,image:X[j-1].to.token.image},chain:{image:X[j-1].to.chain.image,displayName:X[j-1].to.chain.displayName}},percentageChange:_(qe,2,2),warningLevel:Ht(qe??0)})),Te.createElement("div",{className:Gy()},Te.createElement(ap,{variant:"title",size:"small"},zo.t("Swaps steps"))),Te.createElement(h0,{size:8}),Te.createElement(zy,null,X.map((Ae,je)=>{let Dr=je,xn=rS(e.steps[je]),qS=xn==="error"||xn==="in-progress"||xn==="warning"||xn==="completed"&&je===X.length-1;return Te.createElement(S0,{className:"widget-swap-details-step-item-container",key:Dr,step:Ae,type:"swap-progress",ref:g,state:xn,hasSeparator:je!==0,tabIndex:Dr,isFocused:qS,tooltipContainer:N()})}))),Te.createElement(Jc,{isOpen:f,state:y,onClose:B,onCancel:r,onDelete:n,message:J.detailedMessage.content,swap:e}),Te.createElement(ep,{open:!!S,diagnosisUrl:W,onClose:()=>k(null),status:e.status==="success"?"success":"failed",priceValue:_(ke,6,6),usdValue:Q,realUsdValue:Y,realValue:ke||"",percentageChange:_(qe,2,2),token:{displayName:X[j-1].to.token.displayName,image:X[j-1].to.token.image},chain:{image:X[j-1].to.chain.image},description:Tt}))}i(lp,"SwapDetails");import{i18n as _a}from"@lingui/core";import{Divider as yS,NotFound as x0,Skeleton as _r,Typography as Da}from"@rango-dev/ui";import Ie from"react";import{i18n as k0}from"@lingui/core";import{Divider as v0,Skeleton as w0,Typography as b0}from"@rango-dev/ui";import Ee from"react";import{css as Nt,styled as cp}from"@rango-dev/ui";var gS=cp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Mr=cp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Ma=cp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),f7=Nt({display:"flex",justifyContent:"space-between",alignItems:"center"}),g7=Nt({display:"flex",justifyContent:"space-between",alignItems:"center"}),h7=Nt({paddingTop:"$15",display:"flex"}),y7=Nt({padding:"$15 $0"}),S7=Nt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),C7=Nt({paddingBottom:"$10"}),T7=Nt({display:"flex",justifyContent:"start",alignItems:"center"}),k7=Nt({paddingTop:"$5",display:"flex",alignItems:"center"}),v7=Nt({display:"flex",alignItems:"center"}),w7=Nt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),hS=Nt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function pp(){return Ee.createElement(gS,null,Ee.createElement(ar,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(b0,{variant:"title",size:"small"},k0.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Mr,null,Ee.createElement(_t,{separator:!1}),Ee.createElement("div",{className:hS()},Ee.createElement(v0,{direction:"horizontal",size:20}),Ee.createElement(w0,{height:22,variant:"rectangular"}))),Ee.createElement(Ma,null),Ee.createElement(Mr,null,Ee.createElement(_t,{separator:!1})),Ee.createElement(Ma,null),Ee.createElement(Mr,null,Ee.createElement(_t,{separator:!1})),Ee.createElement(Ma,null),Ee.createElement(Mr,null,Ee.createElement(_t,{separator:!1}))))}i(pp,"LoadingSwapDetails");function SS(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(ie,{header:{title:_a.t("Swap Details"),suffix:Ie.createElement(ao,null)}},o&&Ie.createElement(Oy,null,Ie.createElement("div",{className:Uo()},Ie.createElement(Da,{variant:"label",size:"large",color:"neutral700"},`${_a.t("Request ID")}`),Ie.createElement("div",{className:Wa()},Ie.createElement(Da,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"})),Ie.createElement(yS,{direction:"horizontal",size:4}),Ie.createElement(_r,{width:16,height:16,variant:"rectangular"}),Ie.createElement(yS,{direction:"horizontal",size:4}),Ie.createElement(_r,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:Uo()},Ie.createElement(Da,{className:Qy(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"})),Ie.createElement(Da,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"}))),Ie.createElement(pp,null)),!o&&Ie.createElement(qy,null,Ie.createElement(x0,{title:_a.t("Not found"),description:_a.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(SS,"SwapDetailsPlaceholder");function CS(){let{manager:t,state:e}=A0(),o=!e.loadedFromPersistor,n=St(t),{requestId:r}=B0(),a=Ve(),{fetchStatus:s}=T();if(!r)return up.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:h})=>h.requestId===r):void 0,u=i(()=>{if(l?.id){let h=t?.get(l.id);h&&I0(h)}},"onCancel"),p=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(h){console.log(h)}},"onDelete"),d=l?.swap;return!d||c?up.createElement(SS,{requestId:r,showSkeleton:c}):up.createElement(lp,{swap:d,requestId:r,onCancel:u,onDelete:p})}i(CS,"SwapDetailsPage");import{i18n as TS}from"@lingui/core";import{Divider as W0,getCategoriesCount as L0,SelectableCategoryList as P0,styled as vS,Typography as M0,Wallet as _0,WalletState as D0}from"@rango-dev/ui";import{useWallets as $0}from"@rango-dev/wallets-react";import Ft,{useState as kS}from"react";var F0=vS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),O0=vS(ae,{textAlign:"center"});function wS(){let{fetchStatus:t}=T(),[e,o]=kS("ALL"),n=T().blockchains(),{config:r}=T(),{state:a}=$0(),[s,c]=kS(),l=oe.use.isActiveTab(),{list:u}=kt(),p=cu(u,n),h=L0(p)!==1,g=pu(u,e),f=i(m=>{Hp(u,r.multiWallets)||c(m)},"handleWalletItemClick");return Ft.createElement(ie,{header:{title:TS.t("Connect Wallets")}},Ft.createElement(O0,null,h&&Ft.createElement(Ft.Fragment,null,Ft.createElement(P0,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),Ft.createElement(W0,{size:24})),Ft.createElement(M0,{variant:"title",size:"xmedium",align:"center"},TS.t("Choose a wallet to connect.")),Ft.createElement(F0,null,g.map((m,y)=>{let S=a(m.type).namespaces,k=`wallet-${y}-${m.type}`,v=Za(m,S);return Ft.createElement(_0,{key:k,...m,state:v?D0.PARTIALLY_CONNECTED:m.state,container:N(),onClick:()=>f(m),isLoading:t==="loading",disabled:!l})}),Ft.createElement(Hn,{id:"widget-state-full-connect-modal",wallet:s,onClose:()=>{c(void 0)}}))))}i(wS,"WalletsPage");function bS(){return zm(),Os(),U0([{path:F.home,element:ze.createElement(Fh,null)},{path:F.routes,element:ze.createElement(Qh,null)},{path:F.fromSwap,children:[{index:!0,element:ze.createElement(wa,{type:"source"})},{path:F.blockchains,element:ze.createElement(Ca,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:ze.createElement(wa,{type:"destination"})},{path:F.blockchains,element:ze.createElement(Ca,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:ze.createElement(yy,null)},{path:F.languages,element:ze.createElement(Uh,null)},{path:F.exchanges,element:ze.createElement(Dc,{sourceType:"Exchanges"})},{path:F.bridges,element:ze.createElement(Dc,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:ze.createElement(Ug,null)},{path:F.addCustomTokens,children:[{index:!0,element:ze.createElement(_d,null)},{path:F.blockchains,element:ze.createElement(Ca,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:ze.createElement(ah,null)},{path:F.swapDetails,element:ze.createElement(CS,null)}]},{path:F.wallets,element:ze.createElement(wS,null)},{path:F.confirmSwap,element:ze.createElement(Eg,null)}])}i(bS,"AppRoutes");import{useQueueManager as X0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as Y0}from"rango-sdk";import{useContext as Z0,useEffect as WS,useState as LS}from"react";import{globalCss as z0}from"@rango-dev/ui";var xS=i(()=>z0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function ES(){let{setWatermark:t,setShowProfileBanner:e}=oe();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Ut("BASE_URL")}/meta/dapp/config?apiKey=${Ut("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(ES,"useFetchApiConfig");import{useWallets as q0}from"@rango-dev/wallets-react";import{useEffect as Q0,useRef as H0}from"react";function IS(){let{connect:t,state:e}=q0(),o=H0({}),{fetchStatus:n}=T(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Q0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(IS,"useForceAutoConnect");import{isApprovalTX as G0,RouteEventType as AS,StepEventType as NS,StepExecutionEventStatus as V0,WidgetEvents as $a}from"@rango-dev/queue-manager-rango-preset";import{useEffect as BS}from"react";function mp(){let t=Be.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=T();BS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===NS.TX_EXECUTION&&s.status===V0.TX_SENT&&!G0(c)||s.type===NS.SUCCEEDED){let p=[],d=l.wallets[c?.fromBlockchain];if(d){let h=e.find(g=>g.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&g.walletType===d.walletType&&g.chain===c?.fromBlockchain);h&&p.push(h)}if(c?.fromBlockchain!==c?.toBlockchain){let h=l.wallets[c?.toBlockchain];if(h){let g=e.find(f=>f.address?.toLocaleLowerCase()===h.address?.toLocaleLowerCase()&&f.walletType===h.walletType&&f.chain===c?.toBlockchain);g&&p.push(g)}}if(p.length>0){let h=n(),f=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(m=>h.some(y=>y.blockchain===m.blockchain&&y.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&y.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(p,{selectedCustomTokens:f,shouldFetchCustomTokens:f.length>0})}}t(s,l)},"handleStepEvent");return ve.on($a.StepEvent,r),()=>ve.off($a.StepEvent,r)},[ve,e]),BS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===AS.FAILED||s.type===AS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return ve.on($a.RouteEvent,r),()=>ve.off($a.RouteEvent,r)},[ve])}i(mp,"useSubscribeToWidgetEvents");import{useManager as K0}from"@rango-dev/queue-manager-react";import{useEffect as j0}from"react";function dp(){let{isSynced:t,syncNotifications:e}=Be(),{manager:o,state:n}=K0();j0(()=>{Be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(St(o))},[Be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(dp,"useSyncNotifications");function fp(){IS(),xS(),mp(),dp();let t=T().blockchains(),{canSwitchNetworkTo:e}=zi(),[o,n]=LS(null),[r,a]=LS(),s=Z0(gi),c=t.filter(Y0),{fetchApiConfig:l}=ES();WS(()=>()=>Um(),[]),X0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),WS(()=>(bo.init(),Be.persist.hasHydrated()||Be.persist.rehydrate(),s.onConnectWallet(u=>{n(p=>{if(!p||p.walletType!==u.walletType)return u;let d={...p};return u.network&&(d.network=u.network),u.accounts&&(d.accounts=u.accounts),d})}),s.onDisconnectWallet(u=>{a(u),n(p=>u===p?.walletType?null:p)}),l().catch(console.log),bo.destroy),[])}i(fp,"useBootstrap");import{styled as J0}from"@rango-dev/ui";var PS=J0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Fa(){fp();let{config:t}=T(),{activeTheme:e}=io(t?.theme||{}),{activeLanguage:o}=fo();return gp.createElement(R0,{language:o},gp.createElement(PS,{id:"swap-container",className:e()},gp.createElement(bS,null)))}i(Fa,"Main");import{setSolanaSignerConfig as CN}from"@rango-dev/signer-solana";import yp,{useEffect as OS,useMemo as TN}from"react";import{useState as eN}from"react";var tN=i(()=>{let[t,e]=eN(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Qp(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),MS=tN;import{checkWaitingForNetworkChange as oN,makeQueueDefinition as nN}from"@rango-dev/queue-manager-rango-preset";import{Provider as rN}from"@rango-dev/queue-manager-react";import{useWallets as iN}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as aN}from"@rango-dev/wallets-shared";import{isEvmBlockchain as sN}from"rango-types";import lN,{useMemo as cN}from"react";function pN(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=iN(),c=cN(()=>nN({API_KEY:t.apiKey||Ut("API_KEY"),BASE_URL:Ut("BASE_URL"),emitter:{emit:ve.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:u}=T(),p=l(),d={blockchains:u.map(v=>({accounts:[v],name:v.chain}))},h=i(async(v,x)=>a(v,x.network)?await r(v,[x]):void 0,"switchNetwork"),g=i(v=>!!s(v).mobileWallet,"isMobileWallet"),f=p.filter(v=>v.enabled).reduce((v,x)=>(v[x.name]=x,v),{}),m=p.filter(sN),y=i(v=>{let{supportedChains:x}=s(v);return Wn(x)},"getSupportedChainNames"),C=e(),S={meta:{blockchains:f,evmBasedChains:m,evmNetworkChainInfo:aN(m),getSupportedChainNames:y},getSigners:o,wallets:d,providers:C,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:g},k=oe.use.isActiveTab();return lN.createElement(rN,{queuesDefs:[c],context:S,onPersistedDataLoaded:v=>{oN(v)},isPaused:!k},t.children)}i(pN,"QueueManager");var _S=pN;import{useManager as gN}from"@rango-dev/queue-manager-react";import hN,{createContext as yN,useContext as SN}from"react";function DS(){let{findToken:t}=T(),e=T().blockchains(),o=T().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=O();return i(u=>{let{fromBlockchain:p,fromToken:d,toBlockchain:h,toToken:g,requestAmount:f}=u,m={blockchains:e,tokens:o};if(p!==void 0){let y=e.find(C=>C.name===p)??null;n(y)}if(d!==void 0){let y=d?t(d)??null:null;r({meta:m,token:y})}if(h!==void 0){let y=e.find(C=>C.name===h)??null;a(y)}if(g!==void 0){let y=g?t(g)??null:null;s({meta:m,token:y})}f!==void 0&&c(f)},"updateQuoteInputs")}i(DS,"useUpdateQuoteInputs");import{cancelSwap as uN,getCurrentNamespaceOfOrNull as mN,getCurrentStep as dN,getRelatedWalletOrNull as fN}from"@rango-dev/queue-manager-rango-preset";var Oa=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return St(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Si(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&uN(o)}getCurrentStepInfo(e){let o=dN(e);return{step:o,wallet:o?fN(e,o):null,network:o?mN(e,o)?.network:null}}};var $S=yN(void 0);function hp(t){let{manager:e}=gN(),o=oe.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=T(),l=new Oa(e,{retrySwap:n,findToken:r}),{fetchingWallets:u}=T(),p=nu(a()),d=T().blockchains(),h=T().tokens(),g=T().swappers(),f=T().fetchStatus,m=fo().resetLanguage,y=Be().getNotifications(),C=Be().clearNotifications,S=DS(),{fromBlockchain:k,toBlockchain:v,fromToken:x,toToken:I,inputAmount:A}=O(),E={isActiveTab:o,setCurrentTabAsActive:bo.forceClaim,history:l,wallets:{isLoading:u,details:s(),totalBalance:p,refetch:async b=>c(b)},meta:{blockchains:d,tokens:h,swappers:g,loadingStatus:f,findToken:r},resetLanguage:m,notifications:{list:y,clearAll:C},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:v?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:A},updateQuoteInputs:S}};return hN.createElement($S.Provider,{value:E},t.children)}i(hp,"WidgetInfo");function FS(){let t=SN($S);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(FS,"useWidget");function Ua(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=MS();return OS(()=>{n&&r(n)},[n]),TN(()=>{uu({API_KEY:o?.apiKey||qr,BASE_URL:o?.apiUrl||Pp})},[o.apiKey,o.apiUrl]),OS(()=>{t.config?.signers?.customSolanaRPC&&CN("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),yp.createElement(hi,{config:o,onUpdateState:e},yp.createElement(_S,{apiKey:o.apiKey},yp.createElement(hp,null,t.children)))}i(Ua,"WidgetProvider");function US(t){let e=t.config?.externalWallets;return za.createElement(lm,null,e?za.createElement(Fa,null):za.createElement(Ua,{config:t.config??Ur},za.createElement(Fa,null)))}i(US,"Widget");function zS(){let{on:t,off:e}=ve;return{on:t,off:e}}i(zS,"useWidgetEvents");var BR={DerivationPath:Un,Namespaces:Fn,Detached:On,isOnDerivationPath:qn,isOnNamespace:zn,isOnDetached:Qn};export{oR as EventSeverity,jo as MainEvents,mR as Networks,gR as PendingSwapNetworkStatus,os as QuoteEventTypes,nR as RouteEventType,Ga as SUPPORTED_FONTS,BR as StatefulConnect,rR as StepEventType,iR as StepExecutionBlockedEventStatus,aR as StepExecutionEventStatus,Re as UI_ID,rs as UiEventTypes,ns as WalletEventTypes,pR as WalletEvents,dR as WalletTypes,US as Widget,jo as WidgetEvents,Ua as WidgetProvider,hi as WidgetWallets,el as customizedThemeTokens,lR as readAccountAddress,qo as useStatefulConnect,kt as useWalletList,zi as useWallets,FS as useWidget,zS as useWidgetEvents,GC as widgetEventEmitter};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|