@rango-dev/widget-embedded 0.45.1-next.1 → 0.45.1-next.3
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/CustomDestination/CustomDestination.styles.d.ts +1 -0
- package/dist/components/CustomDestination/CustomDestination.styles.d.ts.map +1 -1
- package/dist/components/Slippage/Slippage.d.ts.map +1 -1
- package/dist/components/Slippage/Slippage.styles.d.ts +0 -162
- package/dist/components/Slippage/Slippage.styles.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +3 -3
- package/dist/store/slices/wallets.d.ts +2 -2
- package/dist/store/slices/wallets.d.ts.map +1 -1
- package/dist/types/wallets.d.ts +1 -0
- package/dist/types/wallets.d.ts.map +1 -1
- package/dist/utils/swap.d.ts +1 -0
- package/dist/utils/swap.d.ts.map +1 -1
- package/dist/widget-embedded.build.json +1 -1
- package/package.json +7 -7
- package/src/components/Slippage/Slippage.styles.ts +0 -23
- package/src/components/Slippage/Slippage.tsx +24 -26
- package/src/containers/Wallets/useUpdates.ts +1 -1
- package/src/store/slices/wallets.ts +11 -5
- package/src/types/wallets.ts +1 -0
- package/src/utils/swap.ts +6 -1
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var bS=Object.defineProperty;var i=(t,e)=>bS(t,"name",{value:e,configurable:!0});import{EventSeverity as _Z,RouteEventType as DZ,StepEventType as $Z,StepExecutionBlockedEventStatus as FZ,StepExecutionEventStatus as OZ}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as zZ}from"@rango-dev/wallets-core/legacy";import{useWallets as Fi,Events as qZ}from"@rango-dev/wallets-react";import{Networks as GZ,WalletTypes as VZ}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as jZ}from"rango-types";import{Divider as DT}from"@rango-dev/ui";import to,{useEffect as $T,useRef as FT,useState as Vu}from"react";import{WalletState as xS}from"@rango-dev/ui";import{useWallets as ES}from"@rango-dev/wallets-react";import{useReducer as IS}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}=ES(),[n,r]=IS(mp,Dr),a=i(async(u,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(u,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(u,f)=>{if(u.state===xS.DISCONNECTED){let g=!!u.isHub,m=g?u.properties?.find(y=>y.name==="namespaces")?.value:u.needsNamespace,d=g?u.properties?.find(y=>y.name==="derivationPath")?.value:u.needsDerivationPath;if(!m?.data?.length)return await a(u.type,void 0,f);if(m?.data.length&&m.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:u,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(m?.data.length===1){if(d){let y=m.data[0];return r({type:"needsDerivationPath",payload:{providerType:u.type,providerImage:u.image,namespace:y.value}}),{status:"derivation-path"}}return await a(u.type,m?.data?.map(y=>({namespace:y.value})),f)}}if(u.isHub){let g=u.properties?.find(m=>m.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:u,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await p(u.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(u,f)=>{let h=!!u.isHub,g=h?u.properties?.find(S=>S.name==="namespaces")?.value:u.needsNamespace,m=h?u.properties?.find(S=>S.name==="derivationPath")?.value:u.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:u.type,providerImage:u.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:u,selectedNamespaces:C?.map(S=>S.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async u=>{if(!u)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:u}];return await a(f,g)},"handleDerivationPath"),p=i(async u=>{let f=t(u);return f.connected||f.connecting?(await e(u),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:p,handleNamespace:c,handleDerivationPath:l,getState:()=>n,resetState:u=>{r(u==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Uo,"useStatefulConnect");import{WalletState as cs}from"@rango-dev/ui";import{useWallets as $C}from"@rango-dev/wallets-react";import{detectMobileScreens as FC,KEPLR_COMPATIBLE_WALLETS as OC,WalletTypes as On}from"@rango-dev/wallets-shared";import{useCallback as UC,useEffect as zC}from"react";import LC,{createContext as MC,useContext as PC,useEffect as _C,useRef as DC}from"react";import{create as BC}from"zustand";import{persist as WC}from"zustand/middleware";import{allProviders as AS}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 Bn(t,e){return e.find(o=>o.id===t)?.title}i(Bn,"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 Wn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=gt(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{c.has(l)||a(o.tokensMapByBlockchainName[l])})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=gt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Wn,"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"}},NS={clientUrl:void 0},BS={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 AS(o).map(a=>a())}i(kp,"generateProviders");var wp=i((t,e,o)=>{let n=kp({...Or,...t});return{config:{...Or,...t},iframe:NS,campaignMode:BS,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c}=o(),l=Wn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=Wn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});zo.set("supportedSourceTokens",l),zo.set("supportedDestinationTokens",p),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=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 GS}from"rango-sdk";import{UI_ID as WS}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",...WS};import{BlockchainCategories as FS,WalletState as it}from"@rango-dev/ui";import{legacyReadAccountAddress as OS}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as US,getCosmosExperimentalChainInfo as zS,isEvmAddress as QS,KEPLR_COMPATIBLE_WALLETS as ZN,Networks as jp}from"@rango-dev/wallets-shared";import Ho from"bignumber.js";import{isCosmosBlockchain as qS}from"rango-types";import LS from"bignumber.js";var de=new LS(0);import{WalletTypes as MS}from"@rango-dev/wallets-shared";var Co="~",Ap=[MS.LEAP];import{BlockchainCategories as Ha,WalletState as $S}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===$S.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 Ln=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),_=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new 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"),Mn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Kp(t){return Gr(t)?"0":qp(t)}i(Kp,"sanitizeInputAmount");function Pn(t){return t.connected?it.CONNECTED:t.connecting?it.CONNECTING:t.installed?it.DISCONNECTED:it.NOT_INSTALLED}i(Pn,"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(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:f,properties:h,isHub:g}=e(r),m=qo(u.map(y=>y.type)),d=Pn(t(r));return{title:a,image:s,link:US(c),state:d,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:m,needsDerivationPath:f,properties:h,isHub:g}})}i(Xp,"mapWalletTypesToWalletInfo");function _n(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(_n,"walletAndSupportedChainsNames");function ja(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(h=>h.chain===l)){let h={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(h)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=OS(l),f=c.length>0,h=c.includes(u),g=u===jp.Unknown;if(f&&!h&&!g)return;let d=u===jp.Unknown&&QS(p);if(g&&!d)return;o.includes(u)||d?r?s(u,p.toLowerCase(),r):c.filter(S=>o.includes(S)).forEach(S=>{s(S,p.toLowerCase())}):s(u,p)}),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((p,u)=>{let f=p.from.blockchain,h=p.to.blockchain,g=a===o.swaps.length-1,m=u===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 Dn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Dn,"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 HS(e.toString())},"calculateWalletUsdValue");function HS(t){let e=t.toString().split(".");return e[0]=zp(e[0]),e.join(".")}i(HS,"numberWithThousandSeparator");var Xr=i((t,e)=>{let o=zS(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===FS.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 GS(Ot("API_KEY"),Ot("BASE_URL")),Zr),"httpService");import{i18n as cu}from"@lingui/core";var Jr=[.5,1,3],Rr=1,Vo=5,$n=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<=$n?{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}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>xp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",f=zo.get(u);f?.length||(f=Wn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),zo.set(u,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(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).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=[],p=r.popularTokens,u=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:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as VS,Catalonia as KS,Chinese as mu,Denmark as jS,English as XS,Finland as YS,French as ZS,German as JS,Greece as RS,Hungary as eC,India as tC,Indonesian as oC,Italian as nC,Japanese as rC,Korea as iC,Lithuania as aC,Malay as sC,Netherlands as lC,Pakistan as cC,Philippines as pC,Poland as uC,Portuguese as dC,Russian as mC,SaudiArabia as fC,Serbia as gC,Slovakia as hC,SouthAfrica as yC,Spanish as SC,Swahili as CC,Swedish as TC,Thai as kC,Turkish as vC,Ukrainian as wC,Vietnamese as bC}from"@rango-dev/ui";var fu=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:yC},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:fC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:VS},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:KS},{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:jS},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:lC},{title:"English",label:"English",local:"en",SVGFlag:XS},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:pC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:YS},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:ZS},{title:"German",label:"Deutsch",local:"de",SVGFlag:JS},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:RS},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:tC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:eC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:oC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:nC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:rC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:iC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:aC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:sC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:uC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:dC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:mC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:gC},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:hC},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:SC},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:CC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:TC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:kC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:vC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:wC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:cC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:bC}],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,p=c<=9;return l&&p}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=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,p=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||[]},...p&&{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 xC from"mitt";var Te=xC(),EC={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 Fn(t){let[e,o,n]=t.split(Co);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Fn,"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():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(is,"createBalanceStateForNewAccount");function as(t,e){for(let o in e){let n=Fn(o),r=Ut(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(as,"updateAggregatedBalanceStateForNewAccount");function IC(t,e){let o=Fn(e),n=Ut(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(IC,"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(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=Fn(l);!!n.find(f=>Su(f.address,{address:p.address,blockchain:f.chain,symbol:p.symbol})===l)?a=IC(a,l):r[l]=s[l]}),{_balances:r,_aggregatedBalances:a}}i(ss,"computeNextStateAfterWalletBalanceRemoval");function AC(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(AC,"matchWalletDetailsWithConnectedWallet");var NC=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=>Dn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Dn(s,a))?{...a,loading:!1,error:!1,explorerUrl:AC(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Dn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n)=>{let r=e().connectedWallets,a=o.filter(s=>!r.some(c=>Dn(s,c)));if(a.length>0){let s=a.map(c=>{let l=!r.some(p=>p.chain===c.chain&&p.selected&&p.walletType!==c.walletType);return{address:c.address,chain:c.chain,isContractWallet:c.isContractWallet,explorerUrl:null,walletType:c.walletType,selected:l,namespace:n,loading:!1,error:!1}});t(c=>({connectedWallets:[...c.connectedWallets.filter(p=>!s.some(u=>u.walletType===p.walletType&&u.chain===p.chain)),...s]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=r.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address].push(...a[p.chain]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await at().getMultipleTokenBalance({assets:p.map(({symbol:f,address:h,blockchain:g})=>({symbol:f,address:h,blockchain:g})),walletAddress:l});if(u){let f=e()._balances,h=e()._aggregatedBalances;u.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(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n)=>{Te.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o,n),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,p=e()._aggregatedBalances;c.forEach(f=>{if(f.failed)return;let h={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};rs(h,f,l);let{_balances:g,_aggregatedBalances:m}=ss(h,r,{chains:[f.blockChain]});if(p=m,l=g,!e().connectedWallets.find(y=>y.walletType===r&&y.address===f.address&&y.chain===f.blockChain))return;let d=is(f,e);p=as(p,d),l={...l,...d}}),t(f=>({_balances:{...f._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){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 p=n[l],u=new ls(p.amount),f=new ls(c.amount);u.isGreaterThan(f)&&(c=p)}),c},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(Co);return p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>NC(()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,c)=>{let l=r[c],p=Fn(c);if(p.blockchain===n.chain){let u=e().findToken(p),f=l.amount?new ls(l.amount).shiftedBy(-l.decimals):de;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:f.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Tu(t){return BC()(WC((...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=MC(null);function T(){let t=PC(ku);if(_C(()=>{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=DC();return e.current||(e.current=Tu(t.config)),LC.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}=$C(),s=T().blockchains(),{handleDisconnect:c}=Uo(),l=Cp(n()),p=Xp(r,a,l,e);p=FC()?p.filter(d=>d.showOnMobile!==!1&&r(d.type).installed):p;let u=Jp(p,r),f=i(d=>!o.find(y=>y.walletType===d&&y.chain===e),"isExperimentalChainNotAdded"),h=UC(()=>{let d=p?.filter(y=>y.state===cs.CONNECTING)||[];for(let y of d)c(y.type)},[tu(p)]);zC(()=>()=>{h()},[]);let g=i(d=>{let y=d.find(S=>S.type===On.DEFAULT);return!y||y.state===cs.NOT_INSTALLED?!1:d.filter(S=>S.state!=cs.NOT_INSTALLED&&![On.DEFAULT,On.WALLET_CONNECT_2,On.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)&&!OC.includes(d)||d==On.DEFAULT&&!g(p),"shouldExcludeWallet");return{list:u.filter(d=>!m(d.type,e??"",s)),terminateConnectingWallets:h}}i(Tt,"useWalletList");import{Modal as GC}from"@rango-dev/ui";import VC from"react";import{create as HC}from"zustand";var wu="rango-widget";var Un=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(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(HC()((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 Un({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 VC.createElement(GC,{hasWatermark:e==="FULL",...t},t.children)}i(J,"WatermarkedModal");import{i18n as rn}from"@lingui/core";import{Alert as oT,Button as nT,Divider as si,Image as rT,MessageBox as iT,RadioRoot as aT}from"@rango-dev/ui";import me,{useEffect as sT,useMemo as lT,useState as cT}from"react";import{Checkbox as JC,Radio as RC,Typography as eT}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 KC,darkTheme as jC,Image as XC,styled as kt,Typography as YC}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 ",[`.${jC} &`]:{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(XC,{variants:{disabled:{true:{opacity:"0.5"}}}}),on=kt(KC,{minHeight:"$40"}),Eu=kt(YC,{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 ZC}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(ZC,{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(eT,{variant:"label",size:"large"},n.label),s&&eo.createElement(ii,{chains:a})),o==="radio"?eo.createElement(RC,{value:n.value}):eo.createElement(JC,{checked:t.value})))}i(Mu,"NamespaceListItem");import{i18n as tT}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"},tT.t("(Currently not supported)")))))}i(ai,"NamespaceUnsupportedItem");function zn(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,p]=cT([]),u=lT(()=>a?.data.filter(d=>!d.unsupported),[e?.type]),f=i(d=>{p(r?[d]:y=>y.includes(d)?y.filter(C=>C!==d):y.concat(d))},"onSelect"),h=u?.length===l.length,g=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");h?p([]):u&&p(u.map(d=>d.value))},"onSelectAll"),m=i(d=>r?me.createElement(aT,{value:l?.[0]},d):me.createElement(me.Fragment,null,d),"wrapRadioRoot");return sT(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let d=u.filter(y=>y.getSupportedChains(c).some(C=>t.value.defaultSelectedChains?.includes(C.name)));p(d.map(y=>y.value))}else p(u.map(d=>d.value))},[]),me.createElement(me.Fragment,null,me.createElement(iT,{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(rT,{src:s,size:45})}),r?me.createElement(me.Fragment,null,me.createElement(si,{size:20}),me.createElement(oT,{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(nT,{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(zn,"Namespaces");import{i18n as ds}from"@lingui/core";import{Divider as ms,Image as CT,MessageBox as TT}from"@rango-dev/ui";import st from"react";import{i18n as an}from"@lingui/core";import{Button as pT,ChevronDownIcon as uT,ChevronUpIcon as dT,Divider as mT,Spinner as fT,Typography as Qn}from"@rango-dev/ui";import{useWallets as gT}from"@rango-dev/wallets-react";import ke,{useEffect as hT,useLayoutEffect as yT,useRef as ST,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}=gT(),[p,u]=_u(null),[f,h]=_u(!1),m=l(o).namespaces?.get(n.value),d=m.accounts?.[0]?.split(":"),y=n.getSupportedChains(a),C=ST(!1);hT(()=>h(!1),[p]),yT(()=>{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){u(A)}finally{C.current=!1}},"handleConnectNamespace"),k=i(async x=>{u(null),x.connected?await c(o,[n.value]):S(o,n.value)},"handleButtonClick"),v=i(()=>m.connected?an.t("Disconnect"):p?an.t("Try again"):an.t("Connect"),"getButtonText");return ke.createElement(Ro,{hasError:!!p},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(Qn,{variant:"label",size:"large"},n.label),m.connected&&ke.createElement(Qn,{variant:"body",size:"small",color:"success500"},an.t("Connected")),!m.connected&&!!p&&ke.createElement(Qn,{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&&p&&ke.createElement(Au,{className:"widget-namespace-detached-item-error-toggle-btn",onClick:()=>h(x=>!x)},ke.createElement(Qn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},an.t("See why")),f?ke.createElement(dT,{size:12,color:"gray"}):ke.createElement(uT,{size:12,color:"gray"})),!m.connected&&!p&&y.length>1&&ke.createElement(ii,{chains:y})),m.connecting?ke.createElement(fT,{color:"info"}):ke.createElement(pT,{id:"widget-name-space-connect-btn",variant:"ghost",type:m.connected?"error":"primary",size:"small",onClick:async()=>k(m)},v())),!m.connected&&!!p&&f&&ke.createElement(ke.Fragment,null,ke.createElement(mT,{size:4}),ke.createElement(Iu,{id:"widget-namespace-item-error-div"},ke.createElement(Qn,{variant:"body",size:"small",color:"neutral700"},p.cause?.message||p.message))))},"NamespaceDetachedItem");function qn(t){let{selectedNamespaces:e,value:o}=t,{targetWallet:n}=o;return st.createElement(st.Fragment,null,st.createElement(TT,{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(CT,{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 bT,MessageBox as xT,Select as ET,TextField as IT}from"@rango-dev/ui";import ht,{useEffect as AT,useState as Ou}from"react";import{namespaces as kT}from"@rango-dev/wallets-shared";var li={id:"custom",label:"Custom",generateDerivationPath:t=>t};function fs(t){let e=t?kT[t].derivationPaths:null;return e?[...e,li]:[]}i(fs,"getDerivationPaths");import{Button as vT,styled as gs,Typography as wT}from"@rango-dev/ui";var $u=gs("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),hs=gs(wT,{paddingLeft:"$10"}),ys={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},mM=gs(vT,{minHeight:"$40"});var Uu="0";function Hn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Ou(null),[c,l]=Ou(Uu),p=a===li.id,u=fs(o),f=i(({value:g})=>{let m=u?.find(d=>d.id===g);m&&(a===li.id&&Number.isNaN(Number(c))&&l(Uu),s(m.id))},"handleDerivationPathItemClick"),h=i(()=>{let g=u.find(m=>m.id===a);if(g)e(g.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return AT(()=>{s(fs(o)[0]?.id||null)},[o]),ht.createElement(ht.Fragment,null,ht.createElement(Fu,{size:20}),ht.createElement(xT,{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(bT,{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(ET,{id:"widget-derivation-path-template-select",value:a||"",options:u.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"},p?sn.t("Enter Path"):sn.t("Enter Index")),ht.createElement(IT,{id:"widget-derivation-path-template-input",type:p?"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:!u||!a||!c},sn.t("Confirm")))}i(Hn,"DerivationPath");import{i18n as ln}from"@lingui/core";import{Image as WT,MessageBox as Ss,WalletState as LT}from"@rango-dev/ui";import{useWallets as MT}from"@rango-dev/wallets-react";import bo from"react";import{keyframes as NT,styled as ci}from"@rango-dev/ui";var bM=ci("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),zu=ci("div",{position:"relative"}),BT=NT({"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:`${BT} 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}=MT();return Pn(a(n))===LT.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(WT,{src:r,size:45})),bo.createElement(Qu,null))})}i(Cs,"ConnectStatus");import{i18n as Ts}from"@lingui/core";import{Button as PT,Divider as Hu,MessageBox as _T}from"@rango-dev/ui";import pi from"react";function ks(t){let{displayName:e,onConfirm:o,id:n}=t;return pi.createElement(_T,{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(PT,{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 Gn(t){return t().status==="namespace"}i(Gn,"isOnNamespace");function Vn(t){return t().status==="derivationPath"}i(Vn,"isOnDerivationPath");function Kn(t){return t().status==="detached"}i(Kn,"isOnDetached");var OT=3e3,UT=300;function xo(t){let e=FT(),[o,n]=Vu(!1),[r,a]=Vu(),s=i(k=>{a(k.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=Tt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:f,resetState:h}=Uo(),g=i(k=>{u(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.");p(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,OT))):I&&y()},"afterConnected");return $T(()=>{if(t.wallet){C();let k=!1,v=!0;i(()=>{setTimeout(()=>{v=!1,k||n(!0)},UT)},"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(DT,{direction:"vertical",size:32})),Gn(f)&&to.createElement(zn,{onConfirm:g,value:f().namespace}),Vn(f)&&to.createElement(Hn,{onConfirm:d,value:f().derivationPath}),Kn(f)&&to.createElement(qn,{onConfirm:m,value:f().namespace,selectedNamespaces:f().selectedNamespaces}))}i(xo,"StatefulConnectModal");import{Provider as GT}from"@rango-dev/wallets-react";import ui,{createContext as VT,useEffect as Zu,useMemo as KT,useRef as Ju}from"react";import{useEffect as zT}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 zT(()=>{o(),r()},[Ku(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(vs,"useWalletProviders");import{legacyFormatAddressWithNetwork as QT,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,p=s().filter(qT).map(d=>d.name),u=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,p,y.supportedChainNames,v.isContractWallet);I.length&&e(I,v.namespace)},"onAccountsEvent"),f=i((d,y,C,S,k)=>{if(y===cn.ACCOUNTS){let v=_n(k.supportedBlockchains);C&&u([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=_n(k.supportedBlockchains),x=[],I=[];if(C?.forEach(E=>{let{network:b}=ju(E);p.includes(b)?x.push(E):I.push(E)}),r.filter(E=>E.walletType===d).map(E=>QT(E.address,E.chain)).length>0){if(x.length>0){let E=ja(d,x,p,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?u([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 HT}from"@rango-dev/wallets-core/legacy";function Yu(t,e){let[o,n,r,a,s]=e;n!==HT.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(Yu,"propagateEvents");var di=VT({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function jT(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),p=Ju(),u=Ju(),{handler:f}=Xu({onConnectWalletHandler:p,onDisconnectWalletHandler:u});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=KT(()=>({onConnectWallet:m=>{p.current=m},onDisconnectWallet:m=>{u.current=m}}),[]);return ui.createElement(di.Provider,{value:g},ui.createElement(GT,{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(jT,"Main");function mi(t){let{config:e,...o}=t;return ui.createElement(vu,{config:e},ui.createElement(jT,{...o,config:e}))}i(mi,"WidgetWallets");import Oa from"react";import XT,{Fragment as YT}from"react";import{MemoryRouter as ZT,useInRouterContext as JT}from"react-router";function Ru({children:t}){let o=JT()?YT:ZT;return XT.createElement(o,null,t)}i(Ru,"AppRouter");import{I18nManager as S0}from"@rango-dev/ui";import lp from"react";import Oe from"react";import{useRoutes as i0}from"react-router-dom";var F={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as un,useRef as ki}from"react";import et from"bignumber.js";import{create as ok}from"zustand";import{subscribeWithSelector as nk}from"zustand/middleware";import{i18n as vt}from"@lingui/core";import{getRelatedWalletOrNull as tk,RouteEventType as f_}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 ek}from"@rango-dev/queue-manager-rango-preset";import e_ 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=ek(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),p=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),f=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:f}}i(gi,"createRetryQuote");function pn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=jn(o),s=yt(o);if(o&&a&&s){let p=zt(a.toString(),s.toString());if(!!p&&md(a,p)){let f=yi(o?.swaps,n),h=Qt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,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(p=>p.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),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,p=c.fromAmountMaxValue?new He(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0],o=e.fromAmountMinValue?new 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:p,affiliateRef:u,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:u??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:p.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},o),{})}i(bd,"getWalletsForNewSwap");function jn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(jn,"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=jn(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),p=_(new He(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=vt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=vt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=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:p,symbol:c,reason:u,currentAmount:l,blockchain:ft(s.asset.blockchain,o)}})})}i(xd,"generateBalanceWarnings");function Xn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Ci.NetworkChanged}i(Xn,"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,"")),Xn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?tk(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case Ci.WaitingForConnectingWallet:r=u?vt.t("Connect {wallet}",{wallet:u}):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)),p=c.every(f=>r.some(h=>h.chain===f)),u=o&&a?Qo(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}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(ok()(nk(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 Mn(o.inputAmount)?(e&&(n=e?.outputAmount?new et(e?.outputAmount):null,a=jn(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:p}=O(),u=T().config,f=T().fetchStatus,h=T().blockchains(),{findToken:g}=T(),{setAffiliateRef:m,setAffiliatePercent:d,setAffiliateWallets:y}=T(),C=u?.from?.tokens,S=u?.from?.blockchains,k=u?.to?.tokens,v=u?.to?.blockchains,x=ki(void 0),I=ki(void 0),A=ki(void 0),E=ki(void 0);un(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),un(()=>{if(f==="success"){r();let b=h.find(P=>P.name===u?.from?.blockchain),w=u?.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=u?.from?.blockchain,x.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.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(p,v)&&o(null)},[k,v]),un(()=>{if(f==="success"){r();let b=h.find(P=>P.name===u?.to?.blockchain),w=u?.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=u?.to?.blockchain,I.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,f]),un(()=>{m(u?.affiliate?.ref??null),d(u?.affiliate?.percent??null),y(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Ld,"useSyncStoresWithConfig");import{useEffect as Ws,useRef as rk}from"react";import{useInRouterContext as ik,useLocation as ak,useSearchParams as sk}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=ak(),[e,o]=sk(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:f,setInputAmount:h}=O(),g=T().fetchStatus,m=T().blockchains(),d=ik(),{updateIframe:y,updateCampaignMode:C}=T(),S=T().isInCampaignMode(),k=rk(),{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&&u({token:b,meta:{blockchains:m}})),w&&(p(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 Av,Button as Nv,darkTheme as Bv,Divider as pl,DoneIcon as Wv,styled as Lv,TextField as Mv,Typography as Pv}from"@rango-dev/ui";import Ve,{useState as _v}from"react";import{useNavigate as Dv,useSearchParams as $v}from"react-router-dom";import{ChevronRightIcon as lk,Divider as $d,Image as ck,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(ck,{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(lk,{size:12,color:"black"})))}i(_s,"BlockchainSelectorButton");import{i18n as Us}from"@lingui/core";import{Button as mk,Divider as Qd,MessageBox as fk}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 uk,Image as dk,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 pk,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(pk,{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(dk,{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(uk,{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 Yn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=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&&(u(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(fk,{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(mk,{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:p}))}i(Yn,"ImportCustomToken");import{useManager as vv}from"@rango-dev/queue-manager-react";import{BottomLogo as wv,Divider as km,Header as bv}from"@rango-dev/ui";import Ne,{useEffect as Wi,useLayoutEffect as xv,useRef as vm,useState as wm}from"react";import{useRef as gk}from"react";function Zn(){return window.self!==window.top}i(Zn,"isAppLoadedIntoIframe");function Qs(){let t=gk(null),{iframe:e}=T(),o=Zn()&&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 hk}from"react-router-dom";function Ge(){let t=hk();return()=>t(-1)}i(Ge,"useNavigateBack");import{useLayoutEffect as yk,useState as Jn}from"react";var Hd=480,Gd=768,Vd=1024,Kd=1200,Sk=i(()=>{let[t,e]=Jn(!1),[o,n]=Jn(!1),[r,a]=Jn(!1),[s,c]=Jn(!1),[l,p]=Jn(!1),u=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),p(window.innerWidth>Kd)},"handleResize");return yk(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),fn=Sk;import{createTheme as Xs,darkTheme as Wk,lightTheme as Lk}from"@rango-dev/ui";import{useEffect as Mk,useState as Pk}from"react";import{theme as Nk,darkColors as Bk}from"@rango-dev/ui";import Ks from"react";var wi=16,bi=255,jd=.11;function Ck(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Ck,"expandShortHexColor");function Tk(t,e){return t.padStart(e,"0")}i(Tk,"pad");function qs(t){let e=Math.min(Math.max(Math.round(t),0),bi);return Tk(e.toString(wi),2)}i(qs,"intToHex");function kk(t){return`#${qs(t.red)}${qs(t.green)}${qs(t.blue)}`}i(kk,"rgbToHex");function vk(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(vk,"hexToRGB");function wk(t,e){let o=1-jd*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(wk,"generateShade");function bk(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(bk,"generateTint");function xk(t){return Xd(t,wk)}i(xk,"calculateShades");function Ek(t){return Xd(t,bk)}i(Ek,"calculateTints");function Xd(t,e){let o=vk(t),n=[];for(let r=1;r<9;r++)n.push(kk(e(o,r)));return n}i(Xd,"calculateColors");function Hs(t,e,o){let a=Ek(t).reverse().concat(t),s=xk(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let f=100+(o?p-1-u:u)*50;l[`${e}${f}`]=c[u]}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=Ck(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"),Ik=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"),Ak=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Vs=i(t=>Ik(Ak(5381,JSON.stringify(t))>>>0),"toHash");function js(t){let e=Nk.colors,o={...e,...Bk},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]=Pk(Jd()?"dark":"light"),{theme:c}=T(),{dark:l,light:p}=js(e),u=Xs({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[u.className,Lk.className],h=[u.className,Wk.className];if(p){let m=Xs(p.id,p.tokens);f.push(m.className)}if(l){let m=Xs(l.id,l.tokens);h.push(m.className)}return Mk(()=>{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 _k,Button as Dk}from"@rango-dev/ui";import em from"react";function Ys(t){return em.createElement(_k,{action:em.createElement(Dk,{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 $k,Divider as Fk,MessageBox as Ok}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(Ok,{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(Fk,{size:20}),xi.createElement($k,{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 Qk}from"@rango-dev/ui";import lm from"react";import{css as Uk,darkTheme as tm,IconButton as zk,styled as Ao}from"@rango-dev/ui";var Lt=Ao(zk,{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=Uk({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(Qk,{color:"black",size:16}))}i(Rs,"BackButton");import{i18n as qk}from"@lingui/core";import{Button as Hk,Typography as Gk}from"@rango-dev/ui";import el from"react";function tl(t){return el.createElement(ro,null,el.createElement(Hk,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},el.createElement(Gk,{variant:"label",size:"medium",color:"error500"},qk.t("Cancel"))))}i(tl,"CancelButton");import{i18n as Vk}from"@lingui/core";import{Image as Kk,Tooltip as jk,WalletIcon as Xk}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(Kk,{src:r.image,size:14})))):Vk.t("Connect Wallet");return No.createElement(jk,{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(Xk,{size:18,color:"black"})))}i(ol,"WalletButton");import{i18n as Ii}from"@lingui/core";import{NotificationsIcon as uv,Popover as dv,SettingsIcon as mv,Tooltip as Ai,TransactionIcon as fv}from"@rango-dev/ui";import Pe from"react";import{Notifications as Rk}from"@rango-dev/ui";import ev from"react";import{useNavigate as tv}from"react-router-dom";import{create as Yk}from"zustand";import{persist as Zk,subscribeWithSelector as Jk}from"zustand/middleware";var Ae=Zo(Yk()(Zk(Jk((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=tv(),{getNotifications:e,clearNotifications:o}=Ae(),n=e(),r=T().blockchains(),{findToken:a}=T();return ev.createElement(Rk,{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 ov}from"@rango-dev/queue-manager-react";import{InProgressIcon as nv}from"@rango-dev/ui";import cm from"react";var rv=i(()=>{let{manager:t}=ov();return St(t).map(({swap:o})=>o).find(o=>o.status==="running")?cm.createElement(im,{id:"widget-header-history-badge-container"},cm.createElement(nv,{color:"info",size:6})):null},"InProgressTransactionBadge"),pm=rv;import{EventSeverity as iv}from"@rango-dev/queue-manager-rango-preset";import{Typography as av}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===iv.WARNING);return o?um.createElement(nm,{isSever:n},um.createElement(av,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(dm,"NotificationsBadge");import{RefreshProgressButton as sv}from"@rango-dev/ui";import rl,{useEffect as lv,useState as mm}from"react";var cv=1e3,fm=60,pv=100;function Ei({onClick:t}){let[e,o]=mm(0),[n,r]=mm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");lv(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===fm&&c()},cv):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(sv,{size:22,color:t?"black":"gray",progress:e/fm*pv})))}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(dv,{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(uv,{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(mv,{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(fv,{size:18,color:"black"}),Pe.createElement(pm,null))))}i(Bo,"HeaderButtons");import{i18n as il}from"@lingui/core";import{Divider as hm,MessageBox as yv,RefreshIcon as Sv}from"@rango-dev/ui";import gn from"react";import{Button as gv,styled as hv}from"@rango-dev/ui";var gm=hv(gv,{"& 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(yv,{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(Sv,{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 Tv,styled as Ni}from"@rango-dev/ui";var Bi=Tv({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__:p}}=T(),[u,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}=vv(),{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=(p?.swapBoxBanner?.routes?.length??0)===0,le=!!p?.swapBoxBanner?.routes?.some(ue=>location.pathname.endsWith(ue));k(!!p?.swapBoxBanner&&(ee||le))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),Wi(()=>(Zn()&&Q.current&&e(Q.current),()=>{o()}),[]),Wi(()=>(re.current?.addEventListener("scroll",sl),()=>{re.current?.removeEventListener("scroll",sl)}),[]),Wi(()=>{f(c==="failed")},[c]),xv(()=>{let ee=s==="auto"||!Q.current||Zn(),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(bv,{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(wv,null))),S&&Ne.createElement(Tm,null,p?.swapBoxBanner?.element),Ne.createElement(al,{open:u,onClose:()=>f(!1)}))}i(ie,"Layout");import{styled as Ev}from"@rango-dev/ui";var bm="$20 $20 $10 $20",ll=Ev("div",{padding:bm,overflowY:"auto",flexGrow:1});import{styled as Iv}from"@rango-dev/ui";var ce=Iv("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 p(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(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:f,tokenAddress:h})=>{e(!0);try{if(c.some(C=>C.address?.toLowerCase()===h.toLowerCase())){let C=p("duplicated");n(C);return}let m=await at().getCustomToken({blockchain:f,address:h});if(!m||!m.token||m.error){let C=p("not-found",f);n(C);return}let d=m.token;if(s({blockchain:d.blockchain,address:d.address,symbol:d.symbol})){let C=p("token-exist");n(C);return}return a({...d,warning:!0})}catch(g){if(g.code==="ERR_BAD_REQUEST"){let m=p("not-found",f);n(m);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(xm,"useFetchCustomToken");var Fv=Lv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${Bv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Em(){let t=Dv(),[e]=$v(),o=Ge(),n=T().blockchains(),r=e.get("blockchain")||"",a=So(r,n),[s,c]=_v(""),{fetchCustomToken:l,token:p,loading:u,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(Fv,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(Pv,{size:"large",variant:"label"},hn.t("Enter Address")),Ve.createElement(pl,{size:10}),Ve.createElement(Mv,{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(Wv,{color:"success",size:12}),onChange:y=>c(y.target.value)}),!g&&!!s&&Ve.createElement(Ve.Fragment,null,Ve.createElement(pl,{size:4}),Ve.createElement(Av,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ve.createElement(Nv,{id:"widget-add-custom-token-import-btn",disabled:m,type:"primary",variant:"contained",loading:u,size:"large",onClick:d},hn.t("Import"))),Ve.createElement(Yn,{token:p,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 vb}from"@rango-dev/queue-manager-react";import{Alert as wb,Button as bb,css as ql,Divider as Ql,IconButton as hg,styled as xb,Typography as Eb,WalletIcon as Ib}from"@rango-dev/ui";import De,{useEffect as na,useLayoutEffect as Ab,useRef as Nb,useState as dr}from"react";import{useNavigate as Bb}from"react-router-dom";import{i18n as Wo}from"@lingui/core";import{Alert as pw,BalanceErrors as uw,Button as Jm,ChevronLeftIcon as dw,Divider as Sl,MessageBox as mw,Typography as Cl}from"@rango-dev/ui";import ne,{useCallback as fw,useEffect as Rm,useMemo as gw,useState as Cn}from"react";import{useNavigate as hw}from"react-router-dom";import{i18n as fl}from"@lingui/core";import{Alert as qv,ChevronDownIcon as Hv,CloseIcon as Gv,Divider as Mm,IconButton as Pm,PasteIcon as Vv,Typography as Kv,WalletIcon as jv}from"@rango-dev/ui";import _e,{useEffect as Xv,useRef as Yv}from"react";import _i,{useRef as zv}from"react";import*as yn from"@radix-ui/react-collapsible";import{keyframes as Im,styled as Li}from"@rango-dev/ui";var ul=300,Ov=Im({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Uv=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:`${Ov} ${ul}ms ease-out`},false:{animation:`${Uv} ${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=zv(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 Qv}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(Qv,{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),p=Yv(null),u=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),p?.current?.focus()}},"handlePaste"),y=i(()=>r?_e.createElement(Pm,{id:"widget-custom-destination-close-icon-btn",onClick:m,variant:"ghost"},_e.createElement(Gv,{size:12,color:"gray"})):f?null:_e.createElement(Pm,{id:"widget-custom-destination-paste-icon-btn",onClick:d,variant:"ghost"},_e.createElement(Vv,{size:16})),"renderSuffix");return Xv(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),_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(jv,{size:18,color:"info"}),_e.createElement(Mm,{size:4,direction:"horizontal"}),_e.createElement(Kv,{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(Hv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},_e.createElement(Wm,{id:"widget-custom-destination-blockchain-address-input",ref:p,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 Zv,IconButton as Jv,SelectableWalletButton as Rv,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(Rv,{justifyContent:"center"}),Om=ao("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Um=ao(Jv,{position:"absolute",left:"$20"}),zm=ao("div",{paddingTop:"$20"}),Qm=Zv({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 rw}from"@rango-dev/logging-core";import{Divider as iw,makeInfo as aw,SelectableWallet as sw,Typography as Ym,WalletState as $i}from"@rango-dev/ui";import tt,{useEffect as Zm,useState as tr}from"react";import{Image as ow,MessageBox as nw}from"@rango-dev/ui";import er from"react";import{keyframes as ew,styled as gl}from"@rango-dev/ui";var Gm=gl("div",{position:"relative"}),tw=ew({"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:`${tw} 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 er.createElement(nw,{type:r.type,title:r.title,description:r.description,icon:a?er.createElement(Gm,null,er.createElement(Km,null,er.createElement(ow,{src:n,size:45})),er.createElement(Vm,null)):void 0})}i(Xm,"ExperimentalChainStatus");var lw=7,cw=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:p}=T(),[u,f]=tr(),[h,g]=tr(null),[m,d]=tr(!1),[y,C]=tr(null),{suggestAndConnect:S}=Fi(),{list:k}=Tt({chain:e}),[v,x]=tr(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),cw)),()=>{w&&clearTimeout(w)}},[y]),tt.createElement(tt.Fragment,null,v.slice(0,a).map(w=>{let B=Rp({connectedWallets:p,walletType:w.type,chain:e}),P=w.state===$i.CONNECTED,$=B?Go(B,lw):"",q=P&&!!w.needsNamespace&&!$,R=Xr(l(),e),K=!p.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=aw(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(iw,{direction:"vertical",size:32})),tt.createElement(sw,{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:u,options:{defaultSelectedChains:o||[e]},onClose:()=>{f(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):rw(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 yw=2;function ef(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=hw(),c=T().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,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=gw(()=>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"),$=fw(()=>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),p(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:()=>{u||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(dw,{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(mw,{title:Wo.t("Insufficient account balance"),type:"error",description:ne.createElement(uw,{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(pw,{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:yw,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 Fw}from"@lingui/core";import{Alert as Ow,Button as Uw,Divider as Tf,InfoIcon as zw}from"@rango-dev/ui";import Fe from"react";import{Alert as Tw,Button as kw,Divider as vl,NoRouteIcon as vw,RefreshIcon as ww,Typography as lf}from"@rango-dev/ui";import lt from"react";import{i18n as tf}from"@lingui/core";var Sw=24,Cw=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=Sw]="small",o[o.large=Cw]="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 or(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(vw,{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(Tw,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&<.createElement(kw,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:lt.createElement(sf,null,lt.createElement(ww,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(or,"NoResult");import{i18n as rr}from"@lingui/core";import{Button as Ew,Divider as Iw,MessageBox as Aw,Typography as Nw,WarningIcon as Bw}from"@rango-dev/ui";import qt from"react";import{Typography as mf}from"@rango-dev/ui";import bl from"react";import{Button as bw,darkTheme as xw,styled as nr}from"@rango-dev/ui";var cf=nr("div",{width:"100%"}),wl=nr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),pf=nr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${xw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),uf=nr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),df=nr(bw,{"& ._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:rr.t("Swapping"),value:_(r.inputUsdValue,4,4)},{title:rr.t("Gas cost"),value:_(r.totalFee,2,2)},{title:rr.t("Receiving"),value:_(r.outputUsdValue,4,4)},{title:rr.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(Ew,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:qt.createElement(Bw,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},qt.createElement(Aw,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),qt.createElement(wl,null,qt.createElement(Iw,{size:"4"}),qt.createElement(Nw,{size:"small",variant:"title"},rr.t("Details")),qt.createElement(wl,null,c.map((l,p)=>qt.createElement(ff,{key:p,...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 Ww,Divider as xl,MessageBox as Lw,WarningIcon as Mw}from"@rango-dev/ui";import co from"react";import{useNavigate as Pw}from"react-router-dom";function Sf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=Pw();return co.createElement(J,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},co.createElement(Lw,{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(Mw,{color:"white",size:16}),kn.t("Swap anyway")),co.createElement(xl,{size:10}),co.createElement(Ww,{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 _w,MessageBox as Dw,WarningIcon as $w}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(_w,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Ui.createElement($w,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Ui.createElement(Dw,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Cf,"UnknownPriceWarningModal");function ir(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:f,onChangeSlippage:h}=t,g={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},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 Fe.createElement(Fe.Fragment,null,m&&Fe.createElement(Fe.Fragment,null,Fe.createElement(Tf,{size:10}),Fe.createElement(or,{skipAlerts:s,error:o,fetch:c})),y&&Fe.createElement(cf,null,Fe.createElement(Tf,{size:10}),Fe.createElement(Ow,{id:"widget-quote-warning-and-errors-alert",title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:Fe.createElement(uf,{onClick:l},Fe.createElement(zw,{size:12,color:"gray"}))},...(d.action==="change-settings"||d.action==="change-slippage")&&{action:Fe.createElement(Uw,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:d.alertType,onClick:()=>C(d.action)},d.actionButtonTitle||Fw.t("Change"))}})),e&&Fe.createElement(Fe.Fragment,null,e.type===0&&Fe.createElement(gf,{...g,warning:e}),(e.type===3||e.type===2)&&Fe.createElement(Sf,{...g,warning:e}),e.type===1&&Fe.createElement(Cf,{...g,warning:e})))}i(ir,"QuoteWarningsAndErrors");import hb from"bignumber.js";import Ri from"react";import{i18n as Lo}from"@lingui/core";import{Alert as nb,Divider as wn,FullExpandedQuote as rb,InfoIcon as ib,NumericTooltip as jf,QuoteTag as ab,StepDetails as sb,TokenAmount as lb,Typography as bn}from"@rango-dev/ui";import Pl from"bignumber.js";import U,{useRef as cb,useState as pb}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 Qw,css as ar,darkTheme as Be,Image as wf,styled as Ke,Typography as qw}from"@rango-dev/ui";var Hw=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=ar({padding:"$10 $15"}),Ef=Ke(Qw,{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=ar({width:"100%",padding:"$15 $15 $10 $15"}),Nf=ar({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),vn=ar({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Bf=ar({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 ${Hw}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),sQ=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 Vw,CloseIcon as Kw,Divider as Gi,IconButton as jw,NumericTooltip as Xw,QuoteCost as Yw,Typography as bt}from"@rango-dev/ui";import Y,{useState as zf}from"react";import{css as Gw,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=Gw({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Zw=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:p,timeWarning:u,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(Yw,{onClickFee:f?C=>{C.stopPropagation(),o(!e)}:void 0,fee:y,feeWarning:p,timeWarning:u,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(jw,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement(Kw,{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(Xw,{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(Vw,{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(Zw,{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 Jw,styled as Rw}from"@rango-dev/ui";var Qf=Rw("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),qf=Jw({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function sr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return 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(sr,"QuoteSummary");import{i18n as Vf}from"@lingui/core";import{ChevronDownIcon as eb,ChevronRightIcon as tb,Divider as Ml,Image as ob,Tooltip as Yi,Typography as Ki}from"@rango-dev/ui";import z from"react";var ji=4,Xi=6,lr=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(ob,{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(),p=r.length,u=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(tb,{size:12,color:"black"}));return h||f?z.createElement(z.Fragment,{key:d},z.createElement(lr,{content:g.swapper.displayName,src:g.swapper.image??"",state:g.state,container:c}),m!==p-1&&z.createElement(z.Fragment,null,y)):z.createElement(z.Fragment,{key:d},p<=ji||p>ji&&m<ji-1?z.createElement(z.Fragment,null,z.createElement(lr,{content:g.swapper.displayName,src:g.swapper.image??"",state:g.state,container:c}),m!==p-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(lr,{content:C.swapper.displayName,src:C.swapper.image??"",state:C.state,open:!1}),S!==p-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"},"+",p-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}),u.map((g,m)=>z.createElement(z.Fragment,{key:g.displayName},u.length<=Xi||u.length>Xi&&m<Xi-1?z.createElement(Yi,{container:l,side:"bottom",content:g.displayName,sideOffset:4},z.createElement(lr,{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()},u.map((d,y)=>y>=m&&z.createElement(lr,{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"},"+",u.length-m))))),z.createElement(Ml,{direction:"horizontal",size:32}))),z.createElement(Al,{orientation:a?"up":"down"},z.createElement(eb,{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:p=!0,onClickAllRoutes:u,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]=pb(t.expanded),x=cb(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:Bn(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(nb,{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:Ln(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=!!u,ae=Vr(e?.swaps),re=Ln(ae),Q=yi(e?.swaps??[],m),ee=_(Q,2,2),le=Q.gte(new Pl(od)),ue=ae/rd>=nd;return f?U.createElement(rb,{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:p,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(ab,{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:p,steps:q}),L&&U.createElement(Ef,{onClick:se=>{se.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(bn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Lo.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:Bf()},U.createElement(_f,null,U.createElement(ib,{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(lb,{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(sr,{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(sb,{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 fb,Skeleton as gb}from"@rango-dev/ui";import Kt from"react";import{darkTheme as ub,styled as Zi}from"@rango-dev/ui";var Xf=Zi("div",{$$color:"$colors$neutral100",[`.${ub} &`]:{$$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 db,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=db({display:"flex",justifyContent:"space-between",alignItems:"center"});function cr(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(cr,"QuoteSummarySkeleton");import{ChainToken as mg,Divider as Fl,NextIcon as mb,Skeleton as Ji}from"@rango-dev/ui";import We from"react";import{styled as pr}from"@rango-dev/ui";var cg=pr("div",{display:"flex",alignItems:"start"}),pg=pr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),$l=pr("div",{display:"flex",alignItems:"center",flexGrow:1}),ug=pr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),dg=pr("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(mb,{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 ur(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Kt.createElement(Xf,{expanded:o,rounded:e!=="basic"},Kt.createElement(cr,{type:e,tagHidden:n}),Kt.createElement(Yf,null,Kt.createElement(gb,{height:15,variant:"rounded"})),o&&Kt.createElement(Zf,null,Kt.createElement(fb,{size:24}),Kt.createElement(Pt,null),Kt.createElement(Pt,null),Kt.createElement(Pt,{separator:!1})))}i(ur,"QuoteSkeleton");function Mo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:f,onClickAllRoutes:h,fullExpandedMode:g=!1,container:m}=t,{inputAmount:d,inputUsdValue:y}=O(),C=e?.outputAmount?new hb(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(ur,{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:p,warning:a,tagHidden:c,selected:u,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 Tb}from"@rango-dev/queue-manager-rango-preset";import{useEffect as kb}from"react";import{useRef as yb,useState as Sb}from"react";var Cb=2e3;function ea({request:t}){let[e,o]=Sb(!1),n=yb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,Cb)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(c,{signal:n.current.signal});return n.current=null,p}catch(p){if(l)return await a(c);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(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 p=xd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),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:p}=T(),u=T().getDisabledLiquiditySources(),f=T().blockchains(),h=T().tokens(),{findToken:g}=T(),m=p||l,{fetch:d,cancelFetch:y,loading:C}=fg();return kb(()=>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:u},P=gg({previousQuote:a??void 0,currentQuote:w,meta:{blockchains:f},selectedWallets:v,userSlippage:m,inputUsdValue:n,findToken:g});c();let $=!!P.balance,q=Tb(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 Wb=xb("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${hg}`]:{width:"$48",height:"$48"}}),Lb=ql({flexGrow:1,paddingRight:"$10"}),Mb=ql({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Pb=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=Bb(),[c,l]=dr(""),p=!n,[u,f]=dr(!1),[h,g]=dr(!1),{isActiveTab:m}=te(),d=T().getDisabledLiquiditySources(),y=Nb(d),{manager:C}=vb(),{fetch:S,loading:k,cancelFetch:v}=Ul(),[x,I]=dr({swap:null,error:null,warnings:null}),[A,E]=dr(!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(()=>{p&&v()},[p]),na(()=>{p&&f(p)},[p]),na(()=>{p||S({selectedWallets:o,customDestination:r}).then(L=>I(L)).catch(L=>console.error(L))},[]),Ab(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=x.warnings?.quote??null,R=x.error,K=[];if(c&&K.push(De.createElement(wb,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||R){let L=`../${F.settings}`;K.push(De.createElement(ir,{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(Wb,null,De.createElement("div",{className:Lb()},De.createElement(bb,{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(Ib,{size:24})))},u&&De.createElement(ef,{open:u,onClose:()=>f(!1),onCancel:v,loading:k,onCheckBalance:b}),De.createElement(ce,null,De.createElement("div",{className:Pb()},De.createElement(Eb,{variant:"title",size:"small"},zl.t("You get")),De.createElement("div",{className:Mb()},De.createElement(Ei,{onClick:!k&&!u&&!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 tx,CustomTokensZeroStateIcon as ox,DeleteIcon as nx,Divider as Sr,IconButton as rx,MessageBox as ix,NotFound as ax,styled as nc}from"@rango-dev/ui";import ye,{useState as oc}from"react";import{useNavigate as sx}from"react-router-dom";import{CloseIcon as Db,IconButton as $b,SearchIcon as Fb,TextField as Ob}from"@rango-dev/ui";import mr from"react";import{styled as _b}from"@rango-dev/ui";var Sg=_b("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:p,id:u,...f}=t,h=s.length?mr.createElement($b,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},mr.createElement(Db,{color:"gray",size:10})):null;return p&&(h=p),mr.createElement(Ob,{prefix:mr.createElement(Sg,null,mr.createElement(Fb,{color:"black"})),id:u,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 Hb,darkTheme as Bg,Divider as jt,ExternalLinkIcon as Gb,Image as Vb,ListItem as Kb,NotFound as jb,PinIcon as Xb,Skeleton as Po,Typography as hr,VirtualizedList as Yb}from"@rango-dev/ui";import M,{useState as Zb}from"react";import{useTranslation as Jb}from"react-i18next";import{Divider as Ag,ListItem as Qb,Skeleton as gr}from"@rango-dev/ui";import It from"react";import{css as xn,darkTheme as Hl,ImageContainer as Ub,ListItemButton as zb,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(zb,{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"}}),fr=ot("div",{display:"flex",alignItems:"end",flexDirection:"column"}),RH=ot("div",{display:"flex",alignItems:"center"}),wg=ot("div",{position:"relative",[`& ${Ub}`]:{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(Qb,{key:e,hasDivider:!0,start:It.createElement(gr,{variant:"circular",width:35,height:35}),end:It.createElement(fr,null,It.createElement(gr,{variant:"text",size:"large",width:70}),It.createElement(Ag,{size:4}),It.createElement(gr,{variant:"text",size:"medium",width:50})),title:It.createElement("div",null,It.createElement(gr,{variant:"text",size:"large",width:90}),It.createElement(Ag,{size:4}),It.createElement(gr,{variant:"text",size:"medium",width:90}))})))}i(Ng,"LoadingTokenList");var Rb=20,ex=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(hr,{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(Gb,{size:12}))))},"renderDesc");function yr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=T().fetchStatus,u=T().blockchains(),{getBalanceFor:f,fetchingWallets:h}=T(),{isTokenPinned:g}=T(),{setFromToken:m,setToToken:d}=O(),{t:y}=Jb(),C=Ge(),[S,k]=Zb(null),v=i(()=>{c==="source"?m({token:S,meta:{blockchains:u}}):d({token:S,meta:{blockchains:u}})},"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(hr,{variant:"body",size:"xsmall",color:"background"},y("import")))}let w=Yr(f(b));return s?s(b):h?M.createElement(fr,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(hr,{variant:"body",className:Yl(),size:"xsmall"},`$${w.usdValue}`))},"endRenderer"),A=i(()=>M.createElement(Yb,{itemContent:b=>{let w=e[b];if(w==="skeleton")return M.createElement(Kb,{hasDivider:!0,start:M.createElement(Po,{variant:"circular",width:35,height:35}),end:M.createElement(fr,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=u.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(Vb,{src:w.image===""?Ur:w.image,size:30}),t.type!=="custom-token"&&g(w,t.type)&&M.createElement(bg,null,M.createElement(Xb,{size:12,color:"gray"}))),title:P?.type==="COSMOS"||w.name||!w.name&&!B?M.createElement(Zl,null,M.createElement(hr,{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(Hb,{container:N()}))):void 0,description:typeof w!="string"&&P?.info&&B&&P.type!=="COSMOS"?ex({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,u):null;return M.createElement(M.Fragment,null,a&&M.createElement(M.Fragment,null,M.createElement(hr,{variant:"label",size:"large"},ec.t("Select Token")),M.createElement(jt,{size:4})),M.createElement(Tg,null,M.createElement(jt,{size:4}),p==="loading"&&M.createElement(Ng,{size:Rb}),p==="success"&&(e.length?M.createElement(M.Fragment,null,M.createElement(Yn,{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(jb,{title:ec.t("No results found"),description:ec.t("Try using different keywords")}))))}i(yr,"TokenList");var lx=nc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),cx=nc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),px=nc(rx,{"&: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({}),p=sx(),[u,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(lx,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(Sr,{size:16}),ye.createElement(yr,{list:y,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:S=>ye.createElement(px,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{f(!0),g(S)}},ye.createElement(nx,{size:12,color:"gray"}))})):ye.createElement(cx,null,ye.createElement(ax,{icon:d?ye.createElement(tx,{size:200}):ye.createElement(ox,{size:200}),title:Xt.t("No custom tokens"),description:Xt.t("press the button to add your custom token")})),ye.createElement(Sr,{size:20}),ye.createElement(tc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(F.addCustomTokens)},Xt.t("Add Custom Token"))),ye.createElement(J,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>f(!1),container:N()},ye.createElement(ix,{title:Xt.t("Delete Custom Token"),type:"error",description:Xt.t("Are you sure you want to Delete this Token?")},ye.createElement(Sr,{size:40}),ye.createElement(Sr,{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(Sr,{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 Bx}from"@rango-dev/queue-manager-react";import{Button as pc,darkTheme as Wx,Divider as Do,MessageBox as Lx,NotFound as Mx,styled as uc,Typography as sa}from"@rango-dev/ui";import{TransactionStatus as kr}from"rango-types";import pe,{useMemo as Yg,useState as la}from"react";import{useNavigate as Px}from"react-router-dom";import{FilterIcon as yx,Popover as Sx}from"@rango-dev/ui";import _o from"react";import{css as ux,darkTheme as ia,IconButton as dx,styled as Cr}from"@rango-dev/ui";var rc=Cr("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=Cr(dx,{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=Cr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Pg=Cr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),_g=ux({display:"flex",justifyContent:"space-between",alignItems:"center"}),Dg=Cr("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 mx,Divider as Fg,ListItemButton as fx,Radio as gx,RadioRoot as hx,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(mx,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},$g.t("Reset"))),pt.createElement(Fg,{size:10}),pt.createElement(hx,{value:e},pt.createElement(Dg,null,t.list.map((n,r)=>pt.createElement(fx,{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(gx,{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(Sx,{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(yx,{size:16,color:"black"}),!!n&&_o.createElement(Mg,null)))))}i(ic,"FilterSelector");import{i18n as kx}from"@lingui/core";import{getCurrentStep as vx}from"@rango-dev/queue-manager-rango-preset";import{Divider as Gg,GroupedVirtualizedList as wx,Skeleton as bx,SwapListItem as Vg,Typography as xx}from"@rango-dev/ui";import je,{useCallback as Kg,useEffect as Ex,useRef as Ix,useState as Ax}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 Cx,darkTheme as Tx,styled as Tr}from"@rango-dev/ui";var ac=Cx(),Qg=Tr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),sc=Tr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ac}`]:{$$color:"$colors$neutral600",[`.${Tx} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),lc=Tr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),qg=Tr("div",{gap:"$10",display:"flex",flexDirection:"column"}),Hg=Tr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var Nx=10;function cc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=Ax([]),c=Ix(0),{swaps:l,groupCounts:p,groups:u}=n(e),f=Kg(zg,[]),h=Kg(()=>{let g=e.length-c.current;g&&(c.current+=Math.min(g,Nx),s(f(p,c.current)))},[e.length]);if(Ex(()=>{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(bx,{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(wx,{endReached:()=>{c.current<e.length&&h()},groupCounts:a,groupContent:g=>je.createElement(sc,null,je.createElement(lc,null,je.createElement(xx,{variant:"label",size:"medium",className:ac()},u[g]))),itemContent:(g,m)=>{let d=l[g];if(!d)return null;let y=vx(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:u[m]===kx.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,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}i(o,"addYearsToOutput");let n=jg();t.forEach(l=>{let p=Number(l.creationTime),u=jg(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(l);else{let f=new Date(p).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 _x=uc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Dx=uc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),$x=uc("div",{"._typography":{color:"$neutral700",[`.${Wx}&`]:{color:"$neutral900"}}}),Fx=[{id:kr.SUCCESS,title:Xe.t("Complete")},{id:kr.RUNNING,title:Xe.t("Running")},{id:kr.FAILED,title:Xe.t("Failed")}],Ox=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=Px(),{manager:e,state:o}=Bx(),n=St(e).map(({swap:k})=>k),[r,a]=la(""),[s,c]=la(!1),l=!o.loadedFromPersistor,[p,u]=la(""),[f,h]=la(!1),g=i(k=>{let v=k.target.value;a(v)},"handleSearch"),m=Yg(()=>!r&&!p?n:n.filter(k=>{let{inputAmount:v,status:x,steps:I,requestId:A}=k;return(!r||Nt(v,r)||Nt(x,r)||Ox(I,r)||Nt(A,r))&&(!p||p===x)}),[n,r,p]),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===kr.SUCCESS||k.status===kr.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(Dx,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:p,open:s,onOpenChange:k=>c(k),onClickItem:k=>u(k),list:Fx})),pe.createElement(Do,{size:"16"}),pe.createElement(_x,null,d&&pe.createElement(Hg,null,pe.createElement(Do,{size:32}),pe.createElement(Mx,{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(Lx,{type:"warning",title:Xe.t("Clear Transaction History"),description:pe.createElement($x,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 TE}from"@lingui/core";import{Button as kE,Divider as xc,styled as vE,WarningIcon as wE}from"@rango-dev/ui";import bE from"bignumber.js";import Se,{useEffect as Ih,useState as Ah}from"react";import{useNavigate as xE}from"react-router-dom";import{i18n as Rg}from"@lingui/core";import{Alert as zx,Divider as dc,NoRouteIcon as Qx,Typography as qx}from"@rango-dev/ui";import $o from"react";import{styled as Ux}from"@rango-dev/ui";var Jg=Ux("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(Qx,{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(zx,{title:Rg.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(mc,"SameTokensWarning");import{Alert as Hx,Button as Gx}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(p=>{p==="reset-slippage"?(n(Rr),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?th.createElement(Hx,{title:c.title,type:c.alertType,variant:"alarm",action:th.createElement(Gx,{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 Yx}from"@lingui/core";import{IconButton as Zx,ReverseIcon as Jx,Skeleton as Rx,Tooltip as eE,Typography as vr}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,p=!!c||s?.type===2;return l?"$error500":p?"$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 jx,styled as gc,Typography as Xx}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",[`.${jx} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),hc=gc(Xx,{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:p,loading:u}=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=p?.swaps[0].from||c,k=p?.swaps[p?.swaps.length-1].to||l,v=d?S:k,x=d?k:S,I=Number(d?p?.outputAmount:p?.requestAmount),A=Number(d?p?.requestAmount:p?.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(vr,{variant:y||C?"label":"body",size:y||C?"medium":"small",color:rh({error:y,warning:C,isDarkTheme:m})},Yx.t("Slippage:")," ",f,"%"),u?ut.createElement(Rx,{height:16,width:104,variant:"rounded"}):E&&b&&ut.createElement(lh,null,ut.createElement(vr,{className:"rate-text",variant:"body",size:"small"},"1"),ut.createElement(hc,{className:"rate-text",variant:"body",size:"small"},x.symbol),ut.createElement(Zx,{id:"widget-home-page-change-rate-button",onClick:r},ut.createElement(Jx,{size:14,color:"secondary"})),ut.createElement(eE,{container:N(),side:"top",sideOffset:4,content:ut.createElement(vr,{className:"rate-text",variant:"body",size:"small"},w)},ut.createElement(vr,{className:"rate-text",variant:"body",size:"small"},B)),ut.createElement(hc,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&ut.createElement(vr,{color:"neutral600",variant:"body",size:"small"},"~",ah(Number(w),v.usdPrice))))}i(yc,"SwapMetrics");import{i18n as aE}from"@lingui/core";import{Header as sE}from"@rango-dev/ui";import po,{useEffect as lE,useState as cE}from"react";import{i18n as oE}from"@lingui/core";import{Divider as Cc,FullExpandedQuote as nE,Typography as rE}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 wr}from"@lingui/core";import{Select as tE}from"@rango-dev/ui";import dh from"react";function ua(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:wr.t("Smart Routing")},{value:"FEE",label:wr.t("Lowest Fee")},{value:"SPEED",label:wr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:wr.t("Maximum Return")},{value:"PRICE",label:wr.t("Maximum Output")}];return dh.createElement(uh,null,dh.createElement(tE,{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 br(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:f,toToken:h,sortStrategy:g,error:m}=O(),{slippage:d,customSlippage:y}=T(),{findToken:C}=T(),S=c||N(),k=!!p&&p.results.length,v=y??d,x=i(E=>{if(!f||!h||!p)return null;let b={requestAmount:p.requestAmount,validationStatus:null,...E};return pn({currentQuote:b,userSlippage:v,findToken:C})},"getQuoteWarning"),I=m?.type===0||m?.type===1,A=p?.results?hi(g,p?.results):[];return we.createElement(we.Fragment,null,a&&we.createElement(we.Fragment,null,we.createElement(ph,null,we.createElement(rE,{size:"xmedium",variant:"title"},oE.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(nE,{loading:!0}):we.createElement(ur,{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:p.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:w,fullExpandedMode:s,onClick:$=>{B||u("warning",w),u("error",B?.options||null),o($)},type:"list-item"}),!P&&we.createElement(Cc,{size:16}))}):I&&we.createElement(ch,null,we.createElement(or,{size:s?"large":"small",error:m,fetch:n}))))}i(br,"Quotes");import{darkTheme as iE,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",[`.${iE} &`]:{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 pE=100;function Tc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=cE(!1),l=s?"":"is-hidden",{config:p}=T(),u=p?.variant==="full-expanded",f=To();return lE(()=>{let h=null;return a?h=setTimeout(()=>{c(!0)},pE):(c(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),po.createElement(gh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Bi()} widget-expanded-quotes-container`,id:Qe.EXPANDED_BOX_ID},po.createElement(sE,{title:aE.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(br,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:To(),onClickOnQuote:n,fullExpandedMode:u})))}i(Tc,"ExpandedQuotes");import{i18n as wh}from"@lingui/core";import{SwapInput as bh}from"@rango-dev/ui";import fE from"bignumber.js";import xr from"react";import{ReverseIcon as mE}from"@rango-dev/ui";import vc from"react";import{keyframes as uE,styled as yh}from"@rango-dev/ui";var kc=450,dE=uE({"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:`${dE} ${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(mE,{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:p,sanitizeInputAmount:u,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 fE(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 xr.createElement(kh,null,xr.createElement(vh,null,xr.createElement(bh,{label:wh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:k,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value: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(""):"";p(w)},anyWalletConnected:y.length>0}),xr.createElement(wc,null)),xr.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 gE,useEffect as hE,useRef as yE,useState as SE}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 CE=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:p,inputAmount:u,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]=SE(!0),R=yE(u),K=v??k,ae=!l||!p||Ft(l,p)||!Mn(u),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=gE(qr(le=>{Q(le)},CE),[ae]);return hE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(ae){q(!1),(h||d||y)&&m();return}if(!Mn(u)&&f?.eq(0)){re(!1),o();return}m(),re(!0);let le=Q;return R.current&&R.current!=u&&(le=ee),R.current=u,le({inputAmount:u,fromToken:l,toToken:p,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:K,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,ae,b?.length,n,w.length,K,I,x,c,JSON.stringify(A)]),{fetch:()=>Q({inputAmount:u,fromToken:l,toToken:p,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 EE=vE("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),IE=300;function Nh(){let t=xE(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,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 bE(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)},IE)):t(X)},"onHandleNavigation"),G=i(X=>{r?.requestId!==X.requestId&&(P(!1),p(X))},"onClickOnQuote"),j=i(X=>{if(X){if(Jr.includes(X)){E(X),b(null);return}b(X)}},"onChangeSlippage");return Ih(()=>{u(),h("refetchQuote",!0)},[]),Ih(()=>{m(ae)},[ae]),Se.createElement(EE,null,Se.createElement(ie,{height:"auto",footer:Se.createElement(kE,{id:`widget-swap-${K.action}-btn`,type:"primary",size:"large",disabled:K.disabled||!w,prefix:K.action==="confirm-warning"&&Se.createElement(wE,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||TE.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(ir,{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 AE,Divider as NE,List as BE,ListItemButton as WE,Radio as LE,RadioRoot as ME,Typography as PE}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(PE,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:_t.createElement(LE,{value:s}),start:_t.createElement(l,null)}});return _t.createElement(ie,{header:{title:Bh.t("Language")}},_t.createElement(ce,null,_t.createElement(AE,{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(NE,{size:"8"}),_t.createElement(ME,{value:t},_t.createElement(BE,{type:_t.createElement(WE,{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 OE,Checkbox as UE,Image as zE,ListItemButton as QE,NotFound as qE,Typography as HE}from"@rango-dev/ui";import Ye,{useState as GE}from"react";import{Checkbox as $E,Skeleton as Mh}from"@rango-dev/ui";import Ir from"react";import{styled as Ec}from"@rango-dev/ui";var Er=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 _E,styled as DE}from"@rango-dev/ui";var Lh=DE(_E,{height:61});var FE=30;function Nc(){return Ir.createElement(Er,null,Array.from(Array(FE),(t,e)=>Ir.createElement(Lh,{hasDivider:!0,key:e,start:Ir.createElement(Mh,{variant:"circular",width:35,height:35}),title:Ir.createElement(Mh,{variant:"text",size:"large",width:90}),end:Ir.createElement($E,{checked:!1})})))}i(Nc,"LoadingLiquiditySourceList");function Bc({sourceType:t}){let e=T().fetchStatus,o=T().swappers(),n=T().getDisabledLiquiditySources(),[r,a]=GE(""),s=T().toggleLiquiditySource,c=T().isInCampaignMode(),l=ti(o,n),p={Exchanges:Yt.t("Exchanges"),Bridges:Yt.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let f=l.filter(C=>u.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(zE,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:Ye.createElement(UE,{checked:S,disabled:c}),title:Ye.createElement(HE,{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(OE,{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:p[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(Er,{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(QE,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Bc,"LiquiditySourcePage");import{i18n as VE}from"@lingui/core";import ma from"react";import{useNavigate as KE}from"react-router-dom";function Ph(){let t=KE(),e=Ge(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:c,loading:l}=da({refetchQuote:n}),p=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${F.settings}`,f=`../${F.wallets}`;return ma.createElement(ie,{header:{onWallet:()=>{t(f),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:VE.t("Routes"),suffix:ma.createElement(Bo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},ma.createElement(ce,null,ma.createElement(br,{fetch:c,loading:l,onClickOnQuote:p})))}i(Ph,"RoutesPage");import{i18n as zh}from"@lingui/core";import{Divider as Qh,getCategoriesCount as nI,SelectableCategoryList as rI}from"@rango-dev/ui";import Zt,{useState as qh}from"react";import{useNavigate as iI}from"react-router-dom";import{i18n as Wc}from"@lingui/core";import{Divider as ZE,Image as JE,ListItemButton as RE,NotFound as eI,Typography as Uh}from"@rango-dev/ui";import dt,{useEffect as tI,useState as oI}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 jE,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",[`& ${jE}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as XE,Skeleton as Fh}from"@rango-dev/ui";import ga from"react";var YE=20;function Oh(){return ga.createElement(fa,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(YE),t=>ga.createElement(XE,{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]=oI(e),{fetchStatus:l}=T();tI(()=>{c([..._h(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?dt.createElement(eI,{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(u=>dt.createElement(RE,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:dt.createElement(JE,{src:u.logo,size:30}),title:dt.createElement(Uh,{variant:"title",size:"medium"},u.displayName),id:u.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(ZE,{size:4})),dt.createElement($h,null,l==="loading"&&dt.createElement(Oh,null),l==="success"&&p()))}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:p}=T(),u=iI(),f=T().blockchains({type:e}),h=nI(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(rI,{setCategory:s,category:a,blockchains:f,isLoading:p==="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"?u(`..?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 TI}from"@rango-dev/ui";import mo,{useEffect as kI,useState as vI}from"react";import{useNavigate as wI}from"react-router-dom";import{i18n as _c}from"@lingui/core";import{BlockchainsChip as ya,Divider as Kh,Image as jh,Skeleton as uI,Tooltip as dI,Typography as Dc}from"@rango-dev/ui";import xe from"react";import{useEffect as lI}from"react";var Hh=["ETH","COSMOS","OSMOSIS"];function Mc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(aI),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let c=o.limit-e.length;for(let l=0;l<=c;l++){let p=n[l];s=s.filter(u=>p.name!==u)}}n.sort(sI(s)),r=n.splice(a)}return{list:n,more:r}}i(Mc,"prepare");function aI(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(aI,"sortByMostUsedBlockchains");function sI(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(sI,"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();lI(()=>{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 cI}from"@rango-dev/ui";var Vh=cI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var mI=6,fI=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(),p=O.use.resetToBlockchain(),u=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?mI:fI),(m,d)=>xe.createElement(uI,{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"?u():p()}},xe.createElement(Dc,{variant:"body",size:"xsmall",color:"secondary500"},_c.t("All"))),c.list.map(m=>xe.createElement(dI,{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 hI,useRef as yI,useState as Fc}from"react";function Oc(){let t=T().blockchains(),e=yI(null),{customTokens:o}=T(),[n,r]=Fc(!1),[a,s]=Fc([]),[c,l]=Fc(null),p=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"),u=hI(qr((h,g)=>{e.current?.signal.aborted||p(h,g)},600),[t.length]);return{fetch:(h,g)=>{e.current=new AbortController,s([]),r(!0),u(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=wI(),n=Ge(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=O(),{getBalanceFor:u}=T(),{fetch:f,loading:h,tokens:g,cancel:m}=Oc(),[d,y]=vI(""),C=e==="source"?r:a,S=C?.name??"",k=T().blockchains({type:e}),v=T().tokens({type:e,blockchain:S,searchFor:d,getBalanceFor:u}),x=Xh(v,g,d,h,C?.name),I=i(b=>{e==="source"?l(b):p(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 kI(()=>(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(TI,{size:12,color:"secondary"}):void 0}),mo.createElement(Yh,{size:16}),mo.createElement(yr,{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 YI,Button as ZI,styled as JI}from"@rango-dev/ui";import Fo from"react";import{useInRouterContext as RI,useSearchParams as eA}from"react-router-dom";import{i18n as ny}from"@lingui/core";import{Alert as II,Divider as zc,InfoIcon as AI,SlippageIcon as NI,TextField as BI,Tooltip as WI,Typography as ry}from"@rango-dev/ui";import $e from"react";import{Chip as bI,styled as En,TextField as xI}from"@rango-dev/ui";var Zh=En("div",{paddingTop:"$5",padding:"$10 $5"}),Jh=En("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${xI}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Rh=En("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ka=En("div",{maxWidth:"280px",padding:"$10"}),ey=En(bI,{width:"61px",flexShrink:0}),ty=En("div",{outlineWidth:1,outlineStyle:"solid",borderRadius:"$xs",flex:1,variants:{status:{safe:{outlineColor:"$secondary500"},error:{outlineColor:"$error500"},warning:{outlineColor:"$warning500"},empty:{outlineWidth:0}}}});import{i18n as Uc}from"@lingui/core";import{Typography as EI}from"@rango-dev/ui";import Ar from"react";function oy(){return Ar.createElement(ka,null,Ar.createElement(EI,{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(oy,"SlippageTooltipContent");function Qc(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=T(),r=o!==null?Xo(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let f=u;u>$n&&(f=$n),n(f)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;Hp(u)||(p.value=u.slice(0,-1))},"onInput");return $e.createElement(Zh,null,$e.createElement(Rh,null,$e.createElement(NI,{size:16,color:"gray"}),$e.createElement(zc,{direction:"horizontal",size:4}),$e.createElement(ry,{variant:"title",size:"xmedium"},ny.t("Slippage tolerance per swap")),$e.createElement(zc,{direction:"horizontal",size:4}),$e.createElement(WI,{container:N(),side:"top",sideOffset:4,content:$e.createElement(oy,null)},$e.createElement(AI,{color:"gray"}))),$e.createElement(Jh,null,Jr.map((l,p)=>{let u=`slippage-${p}`;return $e.createElement(ey,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),$e.createElement(ty,{status:r?.type||(o?"safe":"empty")},$e.createElement(BI,{type:"number",min:"0.01",max:"30",step:"0.01",id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&$e.createElement(ry,{variant:"body",size:"small"},"%"),placeholder:ny.t("Custom")}))),r&&$e.createElement($e.Fragment,null,$e.createElement(zc,{size:10}),$e.createElement(II,{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 iy,BridgesIcon as LI,ChevronRightIcon as va,DarkModeIcon as ay,Divider as Nr,ExchangeIcon as MI,InfinityIcon as PI,InfoIcon as _I,LanguageIcon as DI,LightModeIcon as sy,List as $I,ListItem as FI,ListItemButton as OI,Skeleton as UI,styled as zI,Switch as QI,Tabs as qI,TargetIcon as HI,Tooltip as GI,Typography as nt}from"@rango-dev/ui";import D from"react";import{useNavigate as VI}from"react-router-dom";var KI=zI("div",{width:"202px",height:"$40"}),jI=[{id:"light",icon:D.createElement(sy,{color:"black",size:24}),tooltip:D.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Light"))},{id:"dark",icon:D.createElement(ay,{color:"black",size:24}),tooltip:D.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Dark"))},{id:"auto",icon:D.createElement(iy,{color:"black",size:24}),tooltip:D.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Auto"))}],XI=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(iy,{...e});case"dark":return D.createElement(ay,{...e});default:return D.createElement(sy,{...e})}},"getThemeIcon");function ly(){let t=VI(),{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(),p=T().getDisabledLiquiditySources(),{config:{features:u}}=T(),f=T().customTokens(),h=Re("theme",u),g=Re("liquiditySource",u),m=Re("language",u),d=Re("customTokens",u),y=T().infiniteApprove,C=T().toggleInfiniteApprove,S=ti(l,p),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(UI,{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(LI,{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(MI,{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(HI,{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(DI,{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(GI,{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(_I,{color:"gray"}))),start:D.createElement(PI,{color:"gray",size:16}),end:D.createElement(QI,{checked:y}),onClick:C},R={id:"widget-setting-theme-item-btn",type:D.createElement(FI,null),title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Theme")),end:D.createElement(KI,null,D.createElement(qI,{container:N(),items:jI,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:XI(n)},K=g?[]:[w,B];return d||K.push(P),m||K.push($),K.push(q),!e?.singleTheme&&!h&&K.push(R),D.createElement($I,{type:D.createElement(OI,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:K})}i(ly,"SettingsLists");var tA=JI("div",{paddingLeft:"$8"});function cy(){let{isInCampaignMode:t,updateCampaignMode:e}=T(),o=t(),[,n]=eA(),r=RI(),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(YI,{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(tA,null,Fo.createElement(ZI,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},qc.t("Reset")))}),Fo.createElement(Qc,null),Fo.createElement(ly,null)))}i(cy,"SettingsPage");import{i18n as GA}from"@lingui/core";import{cancelSwap as VA}from"@rango-dev/queue-manager-rango-preset";import{useManager as KA}from"@rango-dev/queue-manager-react";import{Alert as jA}from"@rango-dev/ui";import rp from"react";import{useParams as XA}from"react-router-dom";import{i18n as mt}from"@lingui/core";import{getCurrentNamespaceOfOrNull as EA,getCurrentStep as IA,getRelatedWalletOrNull as AA}from"@rango-dev/queue-manager-rango-preset";import{Button as Gy,CopyIcon as NA,Divider as BA,DoneIcon as WA,IconButton as LA,QuoteCost as MA,RangoExplorerIcon as PA,StepDetails as _A,Tooltip as Vy,Typography as Oo,useCopyToClipboard as DA}from"@rango-dev/ui";import{useWallets as $A}from"@rango-dev/wallets-react";import Ky from"bignumber.js";import{PendingSwapNetworkStatus as Wa}from"rango-types";import Z,{useEffect as jy,useRef as FA,useState as Xy}from"react";import{useNavigate as OA}from"react-router-dom";import{i18n as fo}from"@lingui/core";var oA=[fo.t("Sunday"),fo.t("Monday"),fo.t("Tuesday"),fo.t("Wednesday"),fo.t("Thursday"),fo.t("Friday"),fo.t("Saturday")];function py(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"):`${oA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(py,"timeSince");function uy(t){return t.finishTime?py(parseInt(t.finishTime)):py(parseInt(t.creationTime))}i(uy,"getSwapDate");import{PendingSwapNetworkStatus as Ia}from"rango-types";import Aa from"react";import{i18n as wa}from"@lingui/core";import{Button as dy,Divider as Hc,MessageBox as nA}from"@rango-dev/ui";import go from"react";var my=i(({onCancel:t,onClose:e})=>go.createElement(go.Fragment,null,go.createElement(Hc,{size:20}),go.createElement(nA,{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(dy,{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(dy,{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 fy,Divider as Gc,MessageBox as rA,Typography as iA}from"@rango-dev/ui";import Jt from"react";var gy=i(({onDelete:t,onClose:e})=>Jt.createElement(Jt.Fragment,null,Jt.createElement(Gc,{size:20}),Jt.createElement(rA,{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(fy,{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(fy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Jt.createElement(iA,{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 aA}from"@rango-dev/logging-core";import{getCurrentStep as sA,getRelatedWalletOrNull as lA}from"@rango-dev/queue-manager-rango-preset";import{MessageBox as cA,Wallet as pA}from"@rango-dev/ui";import{useWallets as uA}from"@rango-dev/wallets-react";import In,{useState as dA}from"react";import{styled as Kc}from"@rango-dev/ui";var hy=Kc("div",{display:"flex",justifyContent:"center"}),Vj=Kc("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),yy=Kc("img",{width:"100%"});var Sy=i(t=>{let{type:e,title:o,swap:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[c,l]=dA(),{getWalletInfo:p,state:u}=uA(),f=sA(n),h=f?lA(n,f):null,g=f?.fromBlockchain,m=h?.walletType,d=m?Pn(u(m)):null,y=m?p(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):aA(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${v}`))}},"handleWalletItemClick");return In.createElement(In.Fragment,null,In.createElement(cA,{type:e,title:o,description:r}),C&&In.createElement(hy,null,In.createElement(pA,{container:N(),title:y.name,image:y.img,type:m,state:d,link:y.installLink,disabled:s,onClick:k})),In.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(Sy,{type:Vc[e].type,title:Vc[e].title,swap:a,message:s,walletButtonDisabled:c,showWalletButton:e!==Ia.WaitingForNetworkChange}),e==="delete"&&Aa.createElement(gy,{onClose:o,onDelete:n}),e==="cancel"&&Aa.createElement(my,{onClose:o,onCancel:r}))}i(jc,"SwapDetailsModal");import{i18n as Br}from"@lingui/core";import{Button as Xc,Divider as Wr,MessageBox as ky,TokenAmount as mA,Typography as vy}from"@rango-dev/ui";import Ce from"react";import{Link as fA,useNavigate as gA}from"react-router-dom";var Cy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Ty="/profile";function Yc(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:f,diagnosisUrl:h}=t,g=gA(),{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(ky,{type:"success",title:Br.t("Swap Successful")},Ce.createElement(mA,{direction:"vertical",tooltipContainer:N(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),Ce.createElement(Wr,{size:12}),Ce.createElement(vy,{variant:"body",size:"medium",color:"neutral700",align:"center"},f)):Ce.createElement(ky,{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(fA,{to:Ty},Ce.createElement(yy,{src:Cy,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(vy,{variant:"title",size:"medium",color:"primary"},Br.t("See Details"))))}i(Yc,"SwapDetailsCompleteModal");import xA from"react";import{i18n as kA}from"@lingui/core";import{Alert as zy,IconButton as vA,LinkIcon as wA}from"@rango-dev/ui";import ho,{Fragment as bA}from"react";import{Alert as yA,ChevronDownIcon as SA,IconButton as CA}from"@rango-dev/ui";import Nn,{useState as TA}from"react";import{css as Lr,darkTheme as wy,styled as Dt,Typography as hA}from"@rango-dev/ui";var by=Dt(ce,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${wy} &`]:{color:"$secondary500"}}}}}),xy=Dt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Ey=Dt("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),Iy=Dt("div",{padding:"$0 $20 $20 $20"}),P3=Dt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Ay=Dt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),_3=Dt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),An=Lr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${wy} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Ny=Lr({padding:"$5 0"}),Na=Lr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),By=Lr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Wy=Lr({width:"100%",padding:"0 $20 $10"}),Ly=Dt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),My=Dt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ba=Dt(hA,{wordBreak:"break-word"});import{styled as Zc}from"@rango-dev/ui";var Py=Zc("div",{display:"flex",flexDirection:"column",gap:"$10"}),_y=Zc("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Dy=Zc("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function $y(t){let{message:e}=t,[o,n]=TA(!1);return Nn.createElement(yA,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Nn.createElement(CA,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Nn.createElement(_y,{rotated:o},Nn.createElement(SA,{size:12,color:"gray"}))),footer:Nn.createElement(Dy,{open:o},Nn.createElement(Ba,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i($y,"FailedAlert");import{i18n as Fy}from"@lingui/core";import{Alert as Jc,Button as Oy}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Rc}from"rango-types";import Mr from"react";function Uy(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(Oy,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Rc.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Fy.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(Oy,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Rc.WaitingForConnectingWallet)}},Fy.t("Connect"))}):Mr.createElement(Jc,{id:"widget-swap-details-short-alert",type:"warning",title:n.shortMessage})}i(Uy,"WarningAlert");function ep(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,c=Xn(a),l=a.status==="waitingForApproval"&&!c,p=a.status==="running"&&!c,u=p&&!s||l&&!a.explorerUrl?.length;return ho.createElement(Py,null,a.explorerUrl?.map((f,h,g)=>{let m=h+f.url,d=h===g.length-1,y=(d&&p||l)&&!u,C=d&&a.status==="failed";return ho.createElement(bA,{key:m},ho.createElement(zy,{id:"widget-swap-details-tx-alert",type:d&&(y&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:kA.t("View transaction"),action:f.url&&ho.createElement(vA,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},ho.createElement(wA,{size:12}))}))}),u&&ho.createElement(zy,{id:"widget-swap-details-loading-alert",type:"loading",title:r.shortMessage}),a.status!=="failed"&&c&&ho.createElement(Uy,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&ho.createElement($y,{message:r}))}i(ep,"SwapDetailsAlerts");var Qy=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:Bn(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:Bn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:xA.createElement(ep,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Hy(t){if(Xn(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(Hy,"getStepState");function tp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=$A(),l=T().blockchains(),p=T().swappers(),{findToken:u}=T(),f=O.use.retry(),h=te.use.isActiveTab(),g=OA(),[m,d]=DA(Qy),y=FA(null),[C,S]=Xy(null),[k,v]=Xy(null),x=i(()=>{r(),S(null)},"onCancel"),I=Ae.use.getNotifications(),A=Ae.use.removeNotification(),E=I(),b=IA(e),w=b?.networkStatus;jy(()=>{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]),jy(()=>{L?S(Wa.WaitingForNetworkChange):w===Wa.WaitingForConnectingWallet||w===Wa.NetworkChanged?S(w):S(null)},[w]);let B=Id(e),P=b?EA(e,b):null,$=b?AA(e,b):null,q=uy(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:p}),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 Ky(se).multipliedBy(ue.toUsdPrice||0).toString():"",X=new Ky(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(My,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(Gy,{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(Gy,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let be=gi(e,l,u);f(be),setTimeout(()=>{g("../../")},0)}},mt.t("Try again"))},Z.createElement(by,{compact:!0,ref:y,id:"widget-swap-details-container"},Z.createElement(Ey,{className:An()},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(Vy,{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(LA,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:d.bind(null,o||"")},m?Z.createElement(WA,{size:16,color:"secondary"}):Z.createElement(NA,{size:16,color:"gray"}))),Z.createElement(Ly,{target:"_blank",href:`${Ip}/swap/${o}`},Z.createElement(Vy,{container:N(),content:mt.t("View on Rango Explorer"),side:"bottom"},Z.createElement(PA,{size:20}))))),Z.createElement("div",{className:An()},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:By()},Z.createElement(MA,{fee:_(String(Ze),2,2),time:Ln(Vr(e.steps)),steps:ee}),Z.createElement(sr,{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:Wy()},Z.createElement(Oo,{variant:"title",size:"small"},mt.t("Swaps steps"))),Z.createElement(BA,{size:8}),Z.createElement(Iy,null,Q.map((be,ze)=>{let Rt=ze,yo=Hy(e.steps[ze]),wS=yo==="error"||yo==="in-progress"||yo==="warning"||yo==="completed"&&ze===Q.length-1;return Z.createElement(_A,{className:"widget-swap-details-step-item-container",key:Rt,step:be,type:"swap-progress",ref:y,state:yo,hasSeparator:ze!==0,tabIndex:Rt,isFocused:wS,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 Jy,NotFound as HA,Skeleton as _r,Typography as Pa}from"@rango-dev/ui";import Ie from"react";import{i18n as UA}from"@lingui/core";import{Divider as zA,Skeleton as QA,Typography as qA}from"@rango-dev/ui";import Ee from"react";import{css as At,styled as op}from"@rango-dev/ui";var Yy=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"}),KX=At({display:"flex",justifyContent:"space-between",alignItems:"center"}),jX=At({display:"flex",justifyContent:"space-between",alignItems:"center"}),XX=At({paddingTop:"$15",display:"flex"}),YX=At({padding:"$15 $0"}),ZX=At({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),JX=At({paddingBottom:"$10"}),RX=At({display:"flex",justifyContent:"start",alignItems:"center"}),eY=At({paddingTop:"$5",display:"flex",alignItems:"center"}),tY=At({display:"flex",alignItems:"center"}),oY=At({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Zy=At({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function np(){return Ee.createElement(Yy,null,Ee.createElement(cr,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(qA,{variant:"title",size:"small"},UA.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1}),Ee.createElement("div",{className:Zy()},Ee.createElement(zA,{direction:"horizontal",size:20}),Ee.createElement(QA,{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 Ry(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(xy,null,Ie.createElement("div",{className:An()},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(Jy,{direction:"horizontal",size:4}),Ie.createElement(_r,{width:16,height:16,variant:"rectangular"}),Ie.createElement(Jy,{direction:"horizontal",size:4}),Ie.createElement(_r,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:An()},Ie.createElement(Pa,{className:Ny(),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(Ay,null,Ie.createElement(HA,{title:Ma.t("Not found"),description:Ma.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Ry,"SwapDetailsPlaceholder");function eS(){let{manager:t,state:e}=KA(),o=!e.loadedFromPersistor,n=St(t),{requestId:r}=XA(),a=Ge(),{fetchStatus:s}=T();if(!r)return rp.createElement(jA,{containerStyles:{margin:"20px"},type:"error",title:GA.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,p=i(()=>{if(l?.id){let h=t?.get(l.id);h&&VA(h)}},"onCancel"),u=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(Ry,{requestId:r,showSkeleton:c}):rp.createElement(tp,{swap:f,requestId:r,onCancel:p,onDelete:u})}i(eS,"SwapDetailsPage");import{i18n as tS}from"@lingui/core";import{Divider as YA,getCategoriesCount as ZA,SelectableCategoryList as JA,styled as nS,Typography as RA,Wallet as e0,WalletState as t0}from"@rango-dev/ui";import{useWallets as o0}from"@rango-dev/wallets-react";import $t,{useState as oS}from"react";var n0=nS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),r0=nS(ce,{textAlign:"center"});function rS(){let{fetchStatus:t}=T(),[e,o]=oS("ALL"),n=T().blockchains(),{config:r}=T(),{state:a}=o0(),[s,c]=oS(),l=te.use.isActiveTab(),{list:p}=Tt(),u=ou(p,n),h=ZA(u)!==1,g=nu(p,e),m=i(d=>{$p(p,r.multiWallets)||c(d)},"handleWalletItemClick");return $t.createElement(ie,{header:{title:tS.t("Connect Wallets")}},$t.createElement(r0,null,h&&$t.createElement($t.Fragment,null,$t.createElement(JA,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),$t.createElement(YA,{size:24})),$t.createElement(RA,{variant:"title",size:"xmedium",align:"center"},tS.t("Choose a wallet to connect.")),$t.createElement(n0,null,g.map((d,y)=>{let S=a(d.type).namespaces,k=`wallet-${y}-${d.type}`,v=Xa(d,S);return $t.createElement(e0,{key:k,...d,state:v?t0.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(rS,"WalletsPage");function iS(){return Ld(),Ms(),i0([{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(cy,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(eS,null)}]},{path:F.wallets,element:Oe.createElement(rS,null)},{path:F.confirmSwap,element:Oe.createElement(yg,null)}])}i(iS,"AppRoutes");import{useQueueManager as f0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as g0}from"rango-sdk";import{useContext as h0,useEffect as dS,useState as mS}from"react";import{globalCss as a0}from"@rango-dev/ui";var aS=i(()=>a0({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function sS(){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(sS,"useFetchApiConfig");import{useWallets as s0}from"@rango-dev/wallets-react";import{useEffect as l0,useRef as c0}from"react";function lS(){let{connect:t,state:e}=s0(),o=c0({}),{fetchStatus:n}=T(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);l0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(lS,"useForceAutoConnect");import{isApprovalTX as p0,RouteEventType as cS,StepEventType as pS,StepExecutionEventStatus as u0,WidgetEvents as _a}from"@rango-dev/queue-manager-rango-preset";import{useEffect as uS}from"react";function ip(){let t=Ae.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=T();uS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===pS.TX_EXECUTION&&s.status===u0.TX_SENT&&!p0(c)||s.type===pS.SUCCEEDED){let u=[],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&&u.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&&u.push(g)}}if(u.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(u,{selectedCustomTokens:m,shouldFetchCustomTokens:m.length>0})}}t(s,l)},"handleStepEvent");return Te.on(_a.StepEvent,r),()=>Te.off(_a.StepEvent,r)},[Te,e]),uS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===cS.FAILED||s.type===cS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return Te.on(_a.RouteEvent,r),()=>Te.off(_a.RouteEvent,r)},[Te])}i(ip,"useSubscribeToWidgetEvents");import{useManager as d0}from"@rango-dev/queue-manager-react";import{useEffect as m0}from"react";function ap(){let{isSynced:t,syncNotifications:e}=Ae(),{manager:o,state:n}=d0();m0(()=>{Ae.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(St(o))},[Ae.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ap,"useSyncNotifications");function sp(){lS(),aS(),ip(),ap();let t=T().blockchains(),{canSwitchNetworkTo:e}=Fi(),[o,n]=mS(null),[r,a]=mS(),s=h0(di),c=t.filter(g0),{fetchApiConfig:l}=sS();dS(()=>()=>Wd(),[]),f0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),dS(()=>(wo.init(),Ae.persist.hasHydrated()||Ae.persist.rehydrate(),s.onConnectWallet(p=>{n(u=>{if(!u||u.walletType!==p.walletType)return p;let f={...u};return p.network&&(f.network=p.network),p.accounts&&(f.accounts=p.accounts),f})}),s.onDisconnectWallet(p=>{a(p),n(u=>p===u?.walletType?null:u)}),l().catch(console.log),wo.destroy),[])}i(sp,"useBootstrap");import{styled as y0}from"@rango-dev/ui";var fS=y0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Da(){sp();let{config:t}=T(),{activeTheme:e}=no(t?.theme||{}),{activeLanguage:o}=uo();return lp.createElement(S0,{language:o},lp.createElement(fS,{id:"swap-container",className:e()},lp.createElement(iS,null)))}i(Da,"Main");import{setSolanaSignerConfig as F0}from"@rango-dev/signer-solana";import pp,{useEffect as TS,useMemo as O0}from"react";import{useState as C0}from"react";var T0=i(()=>{let[t,e]=C0(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Dp(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),gS=T0;import{checkWaitingForNetworkChange as k0,makeQueueDefinition as v0}from"@rango-dev/queue-manager-rango-preset";import{Provider as w0}from"@rango-dev/queue-manager-react";import{useWallets as b0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as x0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as E0}from"rango-types";import I0,{useMemo as A0}from"react";function N0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=b0(),c=A0(()=>v0({API_KEY:t.apiKey||Ot("API_KEY"),BASE_URL:Ot("BASE_URL"),emitter:{emit:Te.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=T(),u=l(),f={blockchains:p.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=u.filter(v=>v.enabled).reduce((v,x)=>(v[x.name]=x,v),{}),d=u.filter(E0),y=i(v=>{let{supportedChains:x}=s(v);return _n(x)},"getSupportedChainNames"),C=e(),S={meta:{blockchains:m,evmBasedChains:d,evmNetworkChainInfo:x0(d),getSupportedChainNames:y},getSigners:o,wallets:f,providers:C,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:g},k=te.use.isActiveTab();return I0.createElement(w0,{queuesDefs:[c],context:S,onPersistedDataLoaded:v=>{k0(v)},isPaused:!k},t.children)}i(N0,"QueueManager");var hS=N0;import{useManager as P0}from"@rango-dev/queue-manager-react";import _0,{createContext as D0,useContext as $0}from"react";function yS(){let{findToken:t}=T(),e=T().blockchains(),o=T().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=O();return i(p=>{let{fromBlockchain:u,fromToken:f,toBlockchain:h,toToken:g,requestAmount:m}=p,d={blockchains:e,tokens:o};if(u!==void 0){let y=e.find(C=>C.name===u)??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(yS,"useUpdateQuoteInputs");import{cancelSwap as B0,getCurrentNamespaceOfOrNull as W0,getCurrentStep as L0,getRelatedWalletOrNull as M0}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&&B0(o)}getCurrentStepInfo(e){let o=L0(e);return{step:o,wallet:o?M0(e,o):null,network:o?W0(e,o)?.network:null}}};var SS=D0(void 0);function cp(t){let{manager:e}=P0(),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:p}=T(),u=Yp(a()),f=T().blockchains(),h=T().tokens(),g=T().swappers(),m=T().fetchStatus,d=uo().resetLanguage,y=Ae().getNotifications(),C=Ae().clearNotifications,S=yS(),{fromBlockchain:k,toBlockchain:v,fromToken:x,toToken:I,inputAmount:A}=O(),E={isActiveTab:o,setCurrentTabAsActive:wo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,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 _0.createElement(SS.Provider,{value:E},t.children)}i(cp,"WidgetInfo");function CS(){let t=$0(SS);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(CS,"useWidget");function Fa(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=gS();return TS(()=>{n&&r(n)},[n]),O0(()=>{ru({API_KEY:o?.apiKey||zr,BASE_URL:o?.apiUrl||Ep})},[o.apiKey,o.apiUrl]),TS(()=>{t.config?.signers?.customSolanaRPC&&F0("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),pp.createElement(mi,{config:o,onUpdateState:e},pp.createElement(hS,{apiKey:o.apiKey},pp.createElement(cp,null,t.children)))}i(Fa,"WidgetProvider");function kS(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(kS,"Widget");function vS(){let{on:t,off:e}=Te;return{on:t,off:e}}i(vS,"useWidgetEvents");var cJ={DerivationPath:Hn,Namespaces:zn,Detached:qn,isOnDerivationPath:Vn,isOnNamespace:Gn,isOnDetached:Kn};export{_Z as EventSeverity,Ko as MainEvents,GZ as Networks,jZ as PendingSwapNetworkStatus,es as QuoteEventTypes,DZ as RouteEventType,qa as SUPPORTED_FONTS,cJ as StatefulConnect,$Z as StepEventType,FZ as StepExecutionBlockedEventStatus,OZ as StepExecutionEventStatus,Qe as UI_ID,os as UiEventTypes,ts as WalletEventTypes,qZ as WalletEvents,VZ as WalletTypes,kS as Widget,Ko as WidgetEvents,Fa as WidgetProvider,mi as WidgetWallets,js as customizedThemeTokens,zZ as readAccountAddress,Uo as useStatefulConnect,Tt as useWalletList,Fi as useWallets,CS as useWidget,vS as useWidgetEvents,EC as widgetEventEmitter};
|
|
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};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|