@rango-dev/widget-embedded 0.5.1-next.6 → 0.5.1-next.8

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.
@@ -0,0 +1,13 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ import './i18n';
3
+ import { WidgetConfig } from './types';
4
+ type OnConnectHandler = (key: string) => void;
5
+ interface WidgetContextInterface {
6
+ onConnectWallet(handler: OnConnectHandler): void;
7
+ }
8
+ export declare const WidgetContext: React.Context<WidgetContextInterface>;
9
+ export declare function WidgetWallets(props: PropsWithChildren<{
10
+ providers: WidgetConfig['wallets'];
11
+ }>): JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=Wallets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Wallets.d.ts","sourceRoot":"","sources":["../src/Wallets.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAWjD,OAAO,QAAQ,CAAC;AAEhB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,KAAK,gBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;AAC9C,UAAU,sBAAsB;IAC9B,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAClD;AAED,eAAO,MAAM,aAAa,uCAIxB,CAAC;AAEH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,iBAAiB,CAAC;IACvB,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;CACpC,CAAC,eAqEH"}
package/dist/Widget.d.ts CHANGED
@@ -1,8 +1,9 @@
1
- import React from 'react';
1
+ import { PropsWithChildren } from 'react';
2
2
  import { WidgetConfig } from './types';
3
3
  import './i18n';
4
4
  export type WidgetProps = {
5
5
  config?: WidgetConfig;
6
6
  };
7
- export declare const Widget: React.FC<WidgetProps>;
7
+ export declare function Main(props: PropsWithChildren<WidgetProps>): JSX.Element;
8
+ export declare function Widget(props: PropsWithChildren<WidgetProps>): JSX.Element;
8
9
  //# sourceMappingURL=Widget.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Widget.d.ts","sourceRoot":"","sources":["../src/Widget.tsx"],"names":[],"mappings":"AACA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAgB5D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,QAAQ,CAAC;AAahB,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAmGxC,CAAC"}
1
+ {"version":3,"file":"Widget.d.ts","sourceRoot":"","sources":["../src/Widget.tsx"],"names":[],"mappings":"AACA,OAAc,EACZ,iBAAiB,EAKlB,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,QAAQ,CAAC;AAchB,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,wBAAgB,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,eA4CzD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,eAS3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSelectLanguage.d.ts","sourceRoot":"","sources":["../../src/hooks/useSelectLanguage.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,iBAAiB;4BAIR,MAAM;;EAQtC"}
1
+ {"version":3,"file":"useSelectLanguage.d.ts","sourceRoot":"","sources":["../../src/hooks/useSelectLanguage.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,iBAAiB;4BAKR,MAAM;;EAStC"}
@@ -0,0 +1,6 @@
1
+ import { ProviderInterface } from '@rango-dev/wallets-core';
2
+ import { WidgetConfig } from '../types';
3
+ export declare function useWalletProviders(providers: WidgetConfig['wallets']): {
4
+ providers: ProviderInterface[];
5
+ };
6
+ //# sourceMappingURL=useWalletProviders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWalletProviders.d.ts","sourceRoot":"","sources":["../../src/hooks/useWalletProviders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC;;EAapE"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import { WidgetTheme, WidgetConfig, WidgetColors, BlockchainAndTokenConfig } from './types';
2
2
  import { WidgetProps, Widget } from './Widget';
3
3
  import { WalletType } from '@rango-dev/wallets-shared';
4
+ import { WidgetWallets } from './Wallets';
5
+ import { useWallets } from '@rango-dev/wallets-core';
4
6
  export type { WidgetConfig, WalletType, WidgetTheme, WidgetColors, BlockchainAndTokenConfig, WidgetProps, };
5
- export { Widget };
7
+ export { Widget, WidgetWallets };
8
+ export { useWallets };
6
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,YAAY,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,wBAAwB,EACxB,WAAW,GACZ,CAAC;AACF,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,YAAY,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,wBAAwB,EACxB,WAAW,GACZ,CAAC;AACF,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var In=Object.defineProperty;var i=(t,e)=>In(t,"name",{value:e,configurable:!0});import{SwapContainer as ta,styled as oa}from"@rango-dev/ui";import he,{useEffect as Wn,useMemo as na,useState as An}from"react";import _e,{Fragment as pr}from"react";import{MemoryRouter as mr,useInRouterContext as dr}from"react-router";import{useQueueManager as fr}from"@rango-dev/queue-manager-rango-preset";import{useEffect as rt,useRef as st}from"react";import{createSearchParams as lr,useLocation as ur,useSearchParams as cr}from"react-router-dom";import{create as nr}from"zustand";import ne from"bignumber.js";import Rn from"bignumber.js";var D=new Rn(0);import Sa from"bignumber.js";function G(t){return Array.from(new Set(t))}i(G,"removeDuplicateFrom");function Ke(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ke,"areEqual");function It(t,e){let o;return n;function n(...s){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...s)},e)}}i(It,"debounce");import{BigNumber as Rt}from"bignumber.js";var Mt=i(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),A=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Rt(t),s=1,r=1e3;for(let a=0;a<60;a++)if(new Rt(n.toFixed(a,s)).eq(n)){r=a;break}if(n.gte(1e4))return n.toFormat(0,s);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,1))),s);if(n.gte(1))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,2))),s);if(n.gte(.01))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,4))),s);for(let a=e||4;a<17;a++)if(n.gte(Math.pow(10,-a)))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,a))),s);return n.isEqualTo(0)?"0":n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,8))),s)},"numberToString");var Ft=i(t=>t?.result?.swaps?.reduce((e,o)=>e+o.estimatedTimeInSeconds,0)||0,"totalArrivalTime");var Ae=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function je(t,e,o){return o&&t.find(n=>{let s=e?.split("--");return s?.length===1?n.symbol===s[0]&&n.address===null&&n.blockchain===o.name:n.symbol===s?.[0]&&n.address===s?.[1]&&n.blockchain===o.name})||null}i(je,"searchParamsToToken");function Ot(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(Ot,"getBestRouteToTokenUsdPrice");function Qe(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}i(Qe,"isNumberOfSwapsChanged");function Ye(t,e){let o=t.result?.swaps.map(s=>s.swapperId)||[],n=e.result?.swaps.map(s=>s.swapperId)||[];return!Ke(o,n)}i(Ye,"isRouteSwappersUpdated");function Ze(t,e){let o=t.result?.swaps.map(s=>s.to.symbol)||[],n=e.result?.swaps.map(s=>s.to.symbol)||[];return!Ke(o,n)}i(Ze,"isRouteInternalCoinsUpdated");function Lt(t,e){return Qe(t,e)||Ye(t,e)||Ze(t,e)}i(Lt,"isRouteChanged");function Ut(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(Ut,"getRequiredBalanceOfWallet");function Xe(t){if(t.store==="bestRoute"){let{prevState:e,currentState:o}=t;return!!o.fromToken&&!!o.toToken&&(e.fromChain?.name!==o.fromChain?.name||e.toChain?.name!==o.toChain?.name||e.fromToken?.symbol!==o.fromToken?.symbol||e.toToken?.symbol!==o.toToken?.symbol||e.fromToken?.blockchain!==e.fromToken?.blockchain||e.toToken?.blockchain!==o.toToken?.blockchain||e.fromToken?.address!==o.fromToken?.address||e.toToken?.address!==o.toToken?.address||e.inputAmount!==o.inputAmount)}else if(t.store==="settings"){let{prevState:e,currentState:o}=t;return e.slippage!==o.slippage||e.customSlippage!==o.customSlippage||e.disabledLiquiditySources?.length!==o.disabledLiquiditySources?.length||e.infiniteApprove||o.infiniteApprove}return!1}i(Xe,"isRouteParametersChanged");function Dt(t){if(!t)return null;let e=(t.result?.swaps||[]).map(o=>({...o,fromAmount:A(o.fromAmount,6,6),toAmount:A(o.toAmount,6,6)}));return{...t,...t.result&&{result:{...t.result,swaps:e}}}}i(Dt,"getFormatedBestRoute");function _t(t){let e=t.steps.map(o=>({...o,feeInUsd:A(o.feeInUsd,4,4),outputAmount:A(o.outputAmount,6,6),expectedOutputAmountHumanReadable:A(o.expectedOutputAmountHumanReadable,6,6)}));return{...t,inputAmount:A(t.inputAmount,6,6),steps:e}}i(_t,"getFormatedPendingSwap");var qt=i((t,e)=>t?"loading":e?"failed":"success","getBestRouteStatus");var Mn=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"),Z=Mn;import{subscribeWithSelector as rr}from"zustand/middleware";import{RangoClient as On}from"rango-sdk";var Fn="c6381a79-2817-4602-83bf-6a641a409e32",Je={API_KEY:Fn};function xe(t){return Je[t]}i(xe,"getConfig");function $t(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Je=e,Je}i($t,"initConfig");var Be,se=i(()=>Be||(Be=new On(xe("API_KEY")),Be),"httpService");import{create as Un}from"zustand";import{persist as Dn,subscribeWithSelector as _n}from"zustand/middleware";var Vt=[.5,1,3,5,8,13,20],Ht=1,Gt=5,zt=100,Kt=0;import{create as Ln}from"zustand";var k=Z(Ln()(t=>({meta:{blockchains:[],popularTokens:[],swappers:[],tokens:[]},loadingStatus:"loading",fetchMeta:async()=>{try{let e=await se().getAllMetadata(),o=G(e.tokens.map(s=>s.blockchain)),n=e.blockchains.filter(s=>s.enabled&&o.includes(s.name));e.blockchains=n.sort((s,r)=>s.sort-r.sort),t({meta:e,loadingStatus:"success"})}catch{t({loadingStatus:"failed"})}}})));var E=Z(Un()(Dn(_n(t=>({slippage:Ht,customSlippage:null,infiniteApprove:!1,affiliateRef:null,disabledLiquiditySources:[],theme:"auto",setSlippage:e=>t(()=>({slippage:e})),setCustomSlippage:e=>t(()=>({customSlippage:e})),setAffiliateRef:e=>t(()=>({affiliateRef:e})),toggleAllLiquiditySources:()=>t(e=>{let{swappers:o}=k.getState().meta,n=G(o.map(s=>s.swapperGroup));return n.length===e.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:n}}),toggleInfiniteApprove:()=>t(e=>({infiniteApprove:!e.infiniteApprove})),toggleLiquiditySource:e=>t(o=>o.disabledLiquiditySources.includes(e)?{disabledLiquiditySources:o.disabledLiquiditySources.filter(n=>n!=e)}:{disabledLiquiditySources:o.disabledLiquiditySources.concat(e)}),setTheme:e=>t(()=>({theme:e}))})),{name:"user-settings"})));import $ from"bignumber.js";import{getCosmosExperimentalChainInfo as qn,isEvmAddress as $n,KEPLR_COMPATIBLE_WALLETS as Vn,detectInstallLink as Hn,WalletTypes as Gn,Networks as jt}from"@rango-dev/wallets-shared";import{WalletState as X}from"@rango-dev/ui";import{isCosmosBlockchain as zn}from"rango-types";import{readAccountAddress as Kn}from"@rango-dev/wallets-core";import ve from"bignumber.js";function jn(t){switch(!0){case t.connected:return X.CONNECTED;case t.connecting:return X.CONNECTING;case!t.installed:return X.NOT_INSTALLED;default:return X.DISCONNECTED}}i(jn,"getStateWallet");var Qn=[Gn.LEAP];function Qt(t,e,o){return o.filter(n=>!Qn.includes(n)).map(n=>{let{name:s,img:r,installLink:a,showOnMobile:l}=e(n),u=jn(t(n));return{name:s,image:r,installLink:Hn(a),state:u,type:n,showOnMobile:!(typeof l>"u")}})}i(Qt,"getlistWallet");function Ee(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Ee,"walletAndSupportedChainsNames");function Yt(t,e,o,n){let s=[];function r(l,u){if(!!!s.find(S=>S.chain===l)){let S={address:u,chain:l,walletType:t};s.push(S)}}i(r,"addAccount");let a=n||[];return e.forEach(l=>{let{address:u,network:c}=Kn(l),S=a.length>0,W=a.includes(c),b=c===jt.Unknown;if(S&&!W&&!b)return;let y=c===jt.Unknown&&$n(u);if(b&&!y)return;o.includes(c)||y?a.filter(d=>o.includes(d)).forEach(d=>{r(d,u.toLowerCase())}):r(c,u)}),s}i(Yt,"prepareAccountsForWalletStore");function fe(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,s=o.to.blockchain,r=e[e.length-1];n!=r&&e.push(n),r=e[e.length-1],s!=r&&e.push(s)}),e}i(fe,"getRequiredChains");function Pe(t,e,o,n){return t.map(r=>({address:r.address,walletType:r.walletType,chain:r.chain,image:o(r.walletType).img,name:o(r.walletType).name,selected:n===r.chain?!1:!!e.find(a=>a.chain===r.chain&&a.walletType===r.walletType)}))}i(Pe,"getSelectableWallets");function de(t,e,o,n){if(t.length===0)return null;let s=t.filter(r=>r.chain===e);return s.length===0?null:s.map(r=>r.balances?.find(a=>n!==null&&a.address===n||n===null&&a.address===n&&a.symbol===o)||null).filter(r=>r!==null).sort((r,a)=>parseFloat(a?.amount||"0")-parseFloat(r?.amount||"1")).find(()=>!0)||null}i(de,"getBalanceFromWallet");function Ne(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Ne,"isAccountAndWalletMatched");function Zt(t,e,o){let{address:n,blockChain:s,explorerUrl:r,balances:a=[]}=e;return{address:n,chain:s,loading:!1,error:!1,explorerUrl:r,walletType:t.walletType,balances:a?.map(l=>({chain:s,symbol:l.asset.symbol,ticker:l.asset.symbol,address:l.asset.address||null,rawAmount:l.amount.amount,decimal:l.amount.decimals,amount:new ve(l.amount.amount).shiftedBy(-l.amount.decimals).toFixed(),logo:"",usdPrice:Zn(s,l.asset.symbol,l.asset.address,o)||null}))||[]}}i(Zt,"makeBalanceFor");function Xt(t){return{...t,loading:!1,error:!0}}i(Xt,"resetConnectedWalletState");var Jt=i(t=>{let e=new Set,n=t?.reduce((r,a)=>r.findIndex(l=>l.address===a.address&&l.chain===a.chain)===-1?[...r,a]:r,[])?.map(r=>{let a={name:r.chain,accounts:[]};return e.has(r.address)||e.add(r.address),e.forEach(l=>{r.address===l&&a.accounts.push(r)}),a}),s=A(n?.flatMap(r=>r.accounts)?.flatMap(r=>r?.balances)?.map(r=>new ve(r?.amount||D).multipliedBy(r?.usdPrice||0))?.reduce((r,a)=>r.plus(a),D)||D).toString();return Yn(s)},"calculateWalletUsdValue");function Yn(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Yn,"numberWithThousandSeperator");var Ie=i(t=>!t.some(o=>o.balance)?t.filter(o=>!o.address).concat(t.filter(o=>o.address&&!o.isSecondaryCoin),t.filter(o=>o.isSecondaryCoin)):t.filter(o=>!!o.balance).sort((o,n)=>parseFloat(n.balance?.usdValue||"0")-parseFloat(o.balance?.usdValue||"0")).concat(t.filter(o=>!o.balance&&!o.isSecondaryCoin),t.filter(o=>!o.balance&&o.isSecondaryCoin)),"sortTokens"),Zn=i((t,e,o,n)=>n?.find(r=>r.blockchain===t&&r.symbol?.toUpperCase()===e?.toUpperCase()&&r.address===o)?.usdPrice||null,"getUsdPrice"),eo=i((t,e)=>{let o=qn(Object.entries(t).map(([,n])=>n).filter(zn));return o&&!!o[e]},"isExperimentalChain"),et=i(t=>{let e=new Set(t.map(o=>o.walletType));return Vn.filter(o=>e.has(o))},"getKeplrCompatibleConnectedWallets");function Re(t,e){return t.map(({balance:o,...n})=>{let s=A(new ve(de(e,n.blockchain,n.symbol,n.address)?.amount||D)),r="";return n.usdPrice&&(r=A(new ve(de(e,n.blockchain,n.symbol,n.address)?.amount||D).multipliedBy(n.usdPrice))),{...n,...s!=="0"&&{balance:{amount:s,usdValue:r}}}})}i(Re,"getTokensWithBalance");function Se(t,e,o,n){if(t?.name===n[0]?.name)return n;let r=e.filter(a=>a.blockchain===t?.name);return Ie(Re(r,o))}i(Se,"getSortedTokens");function j(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(j,"tokensAreEqual");function tt(t,e){let o,n=t[0],s=t[1];return t.length===1?o=n:j(n,e)?o=s:o=n,o}i(tt,"getDefaultToken");function to(t){return t.sort((e,o)=>+(o.state===X.CONNECTED)-+(e.state===X.CONNECTED)||+(o.state===X.DISCONNECTED||o.state===X.CONNECTING)-+(e.state===X.DISCONNECTED||e.state===X.CONNECTING))}i(to,"sortWalletsBasedOnState");import{PendingSwapNetworkStatus as Me}from"@rango-dev/queue-manager-rango-preset";function Fe(t,e){return t.lte(D)||e.lte(D)?0:e.div(t).minus(1).multipliedBy(100)}i(Fe,"getOutputRatio");function Oe(t,e){return parseInt(e.toFixed(2)||"0")<=-10&&t.gte(new $(400))||parseInt(e.toFixed(2)||"0")<=-5&&t.gte(new $(1e3))}i(Oe,"outputRatioHasWarning");function Le(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new $(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new $(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(Le,"hasLimitError");function no(t){if(!t)return{swap:null,fromAmountRangeError:"",recommendation:""};let e=(t?.result?.swaps||[]).filter(l=>{let u=l.fromAmountMinValue?new $(l.fromAmountMinValue):null,c=l.fromAmountMaxValue?new $(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?u?.gte(l.fromAmount)||c?.lte(l.fromAmount):u?.gt(l.fromAmount)||c?.lt(l.fromAmount)})[0];if(!e)return{swap:null,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new $(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new $(e.fromAmountMaxValue):null,s=e.fromAmountRestrictionType==="EXCLUSIVE",r="",a="";return!s&&o&&o.gt(e.fromAmount)?(r=`Required: >= ${A(o)} ${e.from.symbol}`,a="Increase your swap amount"):s&&o&&o.gte(e.fromAmount)&&(r=`Required: > ${A(o)} ${e.from.symbol}`,a="Increase your swap amount"),!s&&n&&n.lt(e.fromAmount)?(r=`Required: <= ${A(n)} ${e.from.symbol}`,a="Decrease your swap amount"):s&&n&&n.lte(e.fromAmount)&&(r=`Required: < ${A(n)} ${e.from.symbol}`,a="Decrease your swap amount"),{swap:e,fromAmountRangeError:r,recommendation:a}}i(no,"LimitErrorMessage");function ro(t,e,o,n,s,r,a,l,u){return t!=="success"?{title:"Connect Wallet",disabled:!0}:e.length==0?{title:"Connect Wallet",disabled:!1}:o?{title:"Finding Best Route...",disabled:!0}:!u||u==="0"?{title:"Enter an amount",disabled:!0}:!n||!n.result?{title:"Swap",disabled:!0}:s?{title:"Limit Error",disabled:!0}:r?{title:"Price impact is too high!",disabled:!0}:a?{title:"USD price is unknown, price impact might be high!",disabled:!1,hasWarning:!0}:l?{title:"The route goes through Ethereum. Continue?",disabled:!1,hasWarning:!0}:{title:"Swap",disabled:!1}}i(ro,"getSwapButtonState");function so(t,e,o,n){return!((o.lte(D)||n.lte(D))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}i(so,"canComputePriceImpact");function oo(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,s=o.to.blockchain,r=e[e.length-1];n!=r&&e.push(n),r=e[e.length-1],s!=r&&e.push(s)}),e}i(oo,"requiredWallets");var Xn=i((t,e,o,n)=>n?.find(r=>r.blockchain===t&&r.symbol?.toUpperCase()===e?.toUpperCase()&&r.address===o)?.usdPrice||null,"getUsdPrice");function Jn(t,e){let o=D;for(let n=0;n<t.fee.length;n++){let s=t.fee[n];if(s.expenseType==="DECREASE_FROM_OUTPUT")continue;let r=Xn(s.asset.blockchain,s.asset.symbol,s.asset.address,e);o=o.plus(new $(s.amount).multipliedBy(r||0))}return o}i(Jn,"getUsdFeeOfStep");function Ue(t,e){return t?.result?.swaps.reduce((o,n)=>o.plus(Jn(n,e)),D)||null}i(Ue,"getTotalFeeInUsd");function io(t){return t?!t.lt(new $(30)):!1}i(io,"hasHighFee");function ao(t){return t.result?.swaps.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(ao,"getMinRequiredSlippage");function lo(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(lo,"hasProperSlippage");function De(t,e,o,n,s,r,a,l,u,c){let S=s.reduce((m,g)=>(m[g.chain]=g.address,m),{}),W=[];n.forEach(m=>{let g=W.find(d=>d.blockchain===m.chain);g?g.addresses.push(m.address):W.push({blockchain:m.chain,addresses:[m.address]})});let b=!!u,T=G((u?.result?.swaps||[]).reduce((m,g)=>(m.push(g.from.blockchain,g.to.blockchain),m),[]));return{amount:o.toString(),affiliateRef:l,checkPrerequisites:b,from:{address:t.address,blockchain:t.blockchain,symbol:t.symbol},to:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},connectedWallets:W,destination:c||void 0,selectedWallets:S,swapperGroups:r,swappersGroupsExclude:!0,slippage:a.toString(),...b&&{blockchains:T}}}i(De,"createBestRouteRequestBody");function ot(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(ot,"getWalletsForNewSwap");function ge(t){return t?.result?.outputAmount||null}i(ge,"getRouteOutputAmount");function Te(t,e){return!t||!e?null:new $(e).div(new $(t)).minus(1).multipliedBy(100)}i(Te,"getPercentageChange");function uo(t,e){let o=ge(t),n=ge(e);if(!o||!n)return!1;let s=Te(o,n);return s?s.toNumber()<=-1:!0}i(uo,"isOutputAmountChangedALot");function co(t,e){let o=t.validationStatus,n=fe(t);return e.sort((r,a)=>n.indexOf(r.chain)-n.indexOf(a.chain)).flatMap(r=>Ut(r,o)||[]).filter(r=>!r.ok).map(r=>{let a=r.asset.symbol,l=A(new $(r.currentAmount.amount).shiftedBy(-r.currentAmount.decimals),8),u=A(new $(r.requiredAmount.amount).shiftedBy(-r.requiredAmount.decimals),8),c="";return r.reason==="FEE"&&(c=" for network fee"),r.reason==="INPUT_ASSET"&&(c=" for swap"),r.reason==="FEE_AND_INPUT_ASSET"&&(c=" for input and network fee"),`Needs \u2248 ${u} ${a}${c}, but you have ${l} ${a} in your ${r.asset.blockchain} wallet.`})}i(co,"getBalanceWarnings");function po(t,e){return(t?new $(t):D).multipliedBy(e||0)}i(po,"calcOutputUsdValue");function nt(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Me.NetworkChanged}i(nt,"isNetworkStatusInWarningState");function mo(t,e){let o="bellow button or",n=t.extraMessage,s=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),nt(e))switch(n=t.networkStatusExtraMessage||"",s=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Me.WaitingForConnectingWallet:n=n||"Waiting for connecting wallet";break;case Me.WaitingForQueue:n=n||"Waiting for other running tasks to be finished";break;case Me.WaitingForNetworkChange:n=n||"Waiting for changing wallet network";break}s=s||"",n=n||"";let a=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:s,long:a}}}i(mo,"getSwapMessages");function fo(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(fo,"getLastConvertedTokenInFailedSwap");function go(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}i(go,"shouldRetrySwap");function ho(t,e){return(k.getState().meta.blockchains.find(s=>s.name===t)?.addressPatterns||[]).filter(s=>new RegExp(s).test(e)).length>0}i(ho,"isValidCustomDestination");function So(t,e,o,n,s){return t||!e&&!oo(n).every(r=>s.map(a=>a.chain).includes(r))||!!e&&!o||!!e&&!!o&&!oo(n).filter(r=>r!==e).every(r=>s.map(a=>a.chain).includes(r))}i(So,"confirmSwapDisabled");import{create as er}from"zustand";import{subscribeWithSelector as tr}from"zustand/middleware";import{shallow as or}from"zustand/shallow";var P=Z(er()(tr((t,e)=>({connectedWallets:[],selectedWallets:[],customDestination:"",connectWallet:o=>{let n=e().getOneOfWalletsDetails;t(s=>({connectedWallets:s.connectedWallets.filter(r=>r.walletType!==o[0].walletType).concat(o.map(r=>({balances:[],address:r.address,chain:r.chain,loading:!0,walletType:r.walletType,error:!1,explorerUrl:null})))})),o.forEach(async s=>n(s))},disconnectWallet:o=>{t(n=>({connectedWallets:n.connectedWallets.filter(s=>s.walletType!==o),selectedWallets:n.selectedWallets.filter(s=>s.walletType!=o)}))},initSelectedWallets:()=>t(o=>{let n=fe(p.getState().bestRoute),s=o.connectedWallets,r=[];return n.forEach(a=>{if(!!!o.selectedWallets.find(u=>u.chain===a)){let u=s.find(c=>c.chain===a);u&&r.push({address:u.address,chain:u.chain,walletType:u.walletType})}}),{selectedWallets:o.selectedWallets.concat(r)}}),setSelectedWallet:o=>t(n=>({selectedWallets:n.selectedWallets.filter(s=>s.chain!==o.chain).concat({chain:o.chain,address:o.address,walletType:o.walletType})})),setCustomDestination:o=>t(()=>({customDestination:o})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getOneOfWalletsDetails:async o=>{let n=k.getState().meta.tokens;t(s=>({connectedWallets:s.connectedWallets.map(r=>Ne(o,r)?{...r,loading:!0}:r)}));try{let r=(await se().getWalletsDetails([{address:o.address,blockchain:o.chain}])).wallets[0];if(r)t(a=>({connectedWallets:a.connectedWallets.map(l=>Ne(o,l)?Zt(o,r,n):l)}));else throw new Error("Wallet not found")}catch{t(r=>({connectedWallets:r.connectedWallets.map(a=>Ne(o,a)?Xt(a):a)}))}}}))));P.subscribe(t=>t.connectedWallets,t=>{p.setState(({sourceTokens:e,destinationTokens:o})=>{let n=Re(e,t),s=Re(o,t);return{sourceTokens:Ie(n),destinationTokens:Ie(s)}})},{equalityFn:or});var To=i(t=>!!t.connectedWallets.find(e=>e.loading),"fetchingBalanceSelector");var ye=i((t,e)=>new ne(e||D).multipliedBy(t?.usdPrice||0),"getUsdValue"),p=Z(nr()(rr(t=>({fromChain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new ne(0),outputUsdValue:new ne(0),toChain:null,toToken:null,bestRoute:null,loading:!1,error:"",sourceTokens:[],destinationTokens:[],setBestRoute:e=>t(o=>{let n=null,s=D;return Ae(o.inputAmount)?(e&&(n=e.result?.outputAmount?new ne(e.result?.outputAmount):null,s=po(e.result?.outputAmount,Ot(e)||o.toToken?.usdPrice)),{bestRoute:e,...!!e&&{outputAmount:n,outputUsdValue:s}}):{}}),resetRoute:()=>t(()=>({loading:!0,error:"",bestRoute:null,outputAmount:null,outputUsdValue:new ne(0)})),setFromChain:(e,o)=>{t(n=>{if(n.fromChain?.name===e?.name)return{};let s=k.getState().meta.tokens,r=P.getState().connectedWallets,a=Se(e,s,r,n.destinationTokens),l=tt(a,n.toToken);return{fromChain:e,sourceTokens:a,...o&&{fromToken:l},...!!n.inputAmount&&{inputUsdValue:ye(l,n.inputAmount)}}})},setFromToken:e=>t(o=>({fromToken:e,...!!o.inputAmount&&{inputUsdValue:ye(e,o.inputAmount)}})),setToChain:(e,o)=>{t(n=>{if(n.toChain?.name===e?.name)return{};let s=k.getState().meta.tokens,r=P.getState().connectedWallets,a=Se(e,s,r,n.destinationTokens);return{toChain:e,destinationTokens:a,...o&&{toToken:tt(a,n.fromToken)}}})},setToToken:e=>t(()=>({toToken:e})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new ne(0),outputUsdValue:new ne(0),bestRoute:null,error:""},...!!o.fromToken&&{inputUsdValue:ye(o.fromToken,e)}}))},retry:e=>{let{tokens:o,blockchains:n}=k.getState().meta,s=P.getState().connectedWallets,r=e.status==="failed"?e.steps.findIndex(m=>m.status==="failed"):null;if(r===null||r<0)return;let a=e.steps[0],l=e.steps[e.steps.length-1],u=n.find(m=>m.name===a.fromBlockchain)||null,c=n.find(m=>m.name===l.toBlockchain)||null,S=o.find(m=>j(m,{blockchain:a.fromBlockchain,symbol:a.fromSymbol,address:a.fromSymbolAddress})),W=o.find(m=>j(m,{blockchain:l.toBlockchain,symbol:l.toSymbol,address:l.toSymbolAddress})),b=Se(u,o,s,[]),T=Se(c,o,s,[]),y=e.inputAmount;t({fromChain:u,fromToken:S,inputAmount:y,outputAmount:null,inputUsdValue:ye(S||null,y),outputUsdValue:new ne(0),toChain:c,toToken:W,bestRoute:null,loading:!1,error:"",sourceTokens:b,destinationTokens:T})},switchFromAndTo:()=>t(e=>({fromChain:e.toChain,fromToken:e.toToken,toChain:e.fromChain,toToken:e.fromToken,sourceTokens:e.destinationTokens,destinationTokens:e.sourceTokens,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:ye(e.toToken,e.outputAmount?.toString()||"")}))})))),sr=i((t,e)=>{let o=null,n=i(()=>{let{fromToken:a,toToken:l,inputAmount:u,resetRoute:c}=t.getState(),{slippage:S,customSlippage:W,disabledLiquiditySources:b,affiliateRef:T}=e.getState();if(!a||!l||!Ae(u))return;o?.abort(),o=new AbortController;let m=De(a,l,u,[],[],b,W||S,T);t.getState().loading||c(),se().getBestRoute(m,{signal:o.signal}).then(g=>{let{setBestRoute:d}=t.getState();d(g),t.setState({loading:!1}),o=null}).catch(g=>{g.code!=="ERR_CANCELED"&&t.setState({error:g.message,loading:!1})})},"fetchBestRoute"),s=It(n,600),r=i(()=>{let{fromToken:a,toToken:l,inputAmount:u,inputUsdValue:c,resetRoute:S}=p.getState();if(!Ae(u)||c.eq(0))return t.setState({loading:!1});if(j(a,l))return t.setState({loading:!1,bestRoute:null,outputAmount:new ne(u),outputUsdValue:c});t.getState().loading||S(),s()},"bestRouteParamsListener");return p.subscribe(a=>({fromChain:a.fromChain,fromToken:a.fromToken,toChain:a.toChain,toToken:a.toToken,inputAmount:a.inputAmount}),r,{equalityFn:(a,l)=>!Xe({store:"bestRoute",prevState:a,currentState:l})}),E.subscribe(a=>({slippage:a.slippage,customSlippage:a.customSlippage,disabledLiquiditySources:a.disabledLiquiditySources,infiniteApprove:a.infiniteApprove}),r,{equalityFn:(a,l)=>!Xe({store:"settings",prevState:a,currentState:l})}),{fetchBestRoute:n}},"bestRoute"),{fetchBestRoute:yo}=sr(p,E);var f={home:"/",fromChain:"from-chain",fromToken:"from-token",toChain:"to-chain",toToken:"to-token",settings:"settings",liquiditySources:"/settings/liquidity-sources",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:"swaps/:requestId"};import{create as ir}from"zustand";var _=Z(ir()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",toggleConnectWalletsButton:()=>t(e=>({connectWalletsButtonDisabled:!e.connectWalletsButtonDisabled})),setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function wo(){let t=st(!0),[e,o]=cr(),n=ur(),s=st(n.search),r=st({}),a=p.use.fromChain(),l=p.use.toChain(),u=p.use.fromToken(),c=p.use.toToken(),S=p.use.setFromChain(),W=p.use.setFromToken(),b=p.use.setToChain(),T=p.use.setToToken(),y=p.use.inputAmount(),m=p.use.setInputAmount(),g=k.use.loadingStatus(),{blockchains:d,tokens:w}=k.use.meta(),x=_.use.setSelectedSwap();return rt(()=>{let h={};lr(s.current).forEach((F,I)=>{h[I]=F}),r.current=h;let C=n.pathname.split(f.swaps+"/")[1]||null;C&&x(C)},[]),rt(()=>{if(!t.current){let h="",C="",F="",I="",O="";if(g!=="success")h=r.current["fromChain"],C=r.current["fromToken"],F=r.current["toChain"],I=r.current["toToken"],O=r.current["fromAmount"]||y;else{if(n.state==="redirect")return;h=a?.name||"",C=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),F=l?.name||"",I=(c?.symbol||"")+(c?.address?`--${c?.address}`:""),O=y}o({...h&&{["fromChain"]:h},...C&&{["fromToken"]:C},...F&&{["toChain"]:F},...I&&{["toToken"]:I},...O&&{["fromAmount"]:O.toString()}},{replace:!0})}t.current=!1},[n.pathname,y,a,u,l,c]),rt(()=>{if(g==="success"){let h=e.get("fromChain"),C=e.get("fromToken"),F=e.get("toChain"),I=e.get("toToken"),O=e.get("fromAmount"),V=d.find(K=>K.name===h),B=je(w,C,V||null),N=d.find(K=>K.name===F),L=je(w,I,N||null);V&&(S(V),B&&W(B)),N&&(b(N),L&&T(L)),O&&m(O)}},[g]),null}i(wo,"UpdateUrl");import{useWallets as gr}from"@rango-dev/wallets-core";import{isEvmBlockchain as hr}from"rango-types";function ko({children:t,...e}){let o=dr(),n=o?pr:mr,{blockchains:s}=k.use.meta(),{canSwitchNetworkTo:r}=gr(),a=s.filter(hr);return fr({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,notifier:()=>{},canSwitchNetworkTo:r}),_e.createElement(_e.Fragment,null,_e.createElement(n,null,t),o&&_e.createElement(wo,null))}i(ko,"AppRouter");import{Events as Et,Provider as ra}from"@rango-dev/wallets-core";import{allProviders as Pt}from"@rango-dev/provider-all";import{Button as Ci,AddWalletIcon as bi,Typography as Wi,styled as xt,Spinner as Ai,Image as xi}from"@rango-dev/ui";import z,{useEffect as Ge}from"react";import{useNavigate as Bi}from"react-router-dom";import{useWallets as vi}from"@rango-dev/wallets-core";import Q from"react";import{useRoutes as wi}from"react-router-dom";import H,{useEffect as Gr,useState as Lo}from"react";import{useNavigate as zr}from"react-router-dom";import{useWallets as Kr}from"@rango-dev/wallets-core";import{useInRouterContext as Sr,useNavigate as Tr}from"react-router-dom";function q(){let t=Sr(),e=Tr();return f,{navigateBackFrom:i(n=>{if(n===f.swapDetails)return e("/"+f.swaps,{replace:!0});!t||window.history.state&&window.history.state.idx>0?e(-1):[f.fromChain,f.fromToken,f.toChain,f.toToken,f.settings,f.wallets,f.swaps,f.confirmSwap].includes(n)?e(f.home,{replace:!0}):n===f.liquiditySources&&e("/"+f.settings,{replace:!0})},"navigateBackFrom")}}i(q,"useNavigateBack");import M from"react";import{Button as Co,InfoCircleIcon as yr,styled as qe,Typography as it,Divider as bo,Image as Wo}from"@rango-dev/ui";import{useTranslation as wr}from"react-i18next";var kr=qe("div",{display:"flex",flexDirection:"column",width:"100%",overflow:"hidden"}),Cr=qe("div",{boxSizing:"border-box",borderRadius:"$5",padding:"$8 $16 $16 $16",variants:{type:{filled:{backgroundColor:"$neutral100"},outlined:{border:"1px solid $neutral100"}}},defaultVariants:{type:"filled"},".head":{display:"flex",justifyContent:"space-between",alignItems:"center",minHeight:"32px",".usd-value":{paddingLeft:"$8"}},".form":{display:"flex",width:"100%",padding:"$2 0",".selectors":{width:"35%","._text":{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},".amount":{width:"30%"}}}),Ao=qe("span",{width:"24px",height:"24px",backgroundColor:"$neutral100",borderRadius:"99999px"}),br=qe("div",{windth:"100%",height:"$48",borderRadius:"$5",backgroundColor:"$surface",border:"1px solid transparent",position:"relative",display:"flex",alignItems:"center",paddingLeft:"$8",paddingRight:"$8"});function at(t){let{chain:e,token:o,loadingStatus:n,percentageChange:s}=t,{t:r}=wr(),a=M.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"}},n==="failed"&&M.createElement(yr,{color:"error",size:24}));return M.createElement(kr,null,M.createElement(Cr,{type:"outlined"},M.createElement("div",{className:"head"},M.createElement(it,{variant:"body2",color:"neutral800"},t.label),M.createElement("div",null,s,t.usdValue&&M.createElement(it,{variant:"caption",color:"neutral600",className:"usd-value"},`$${A(t.usdValue)}`))),M.createElement("div",{className:"form"},M.createElement(Co,{className:"selectors",variant:"outlined",loading:n==="loading",prefix:n==="success"&&e?M.createElement(Wo,{src:e.logo,size:24}):M.createElement(Ao,null),suffix:a,align:"start",size:"large"},n==="success"&&e?e.displayName:r("Chain")),M.createElement(bo,{size:12,direction:"horizontal"}),M.createElement(Co,{className:"selectors",variant:"outlined",loading:n==="loading",prefix:n==="success"&&o?M.createElement(Wo,{src:o.image,size:24}):M.createElement(Ao,null),suffix:a,size:"large",align:"start"},n==="success"&&o?o.symbol:r("Token")),M.createElement(bo,{size:12,direction:"horizontal"}),M.createElement("div",{className:"amount"},M.createElement(br,null,M.createElement(it,{variant:"h4"},t.amount))))))}i(at,"TokenPreview");import{t as Uo}from"i18next";import{Divider as Do,ConfirmSwap as jr,LoadingFailedAlert as Qr}from"@rango-dev/ui";import J from"react";import{styled as Wr,ChevronRightIcon as Ar,GasIcon as xr,Divider as Br}from"@rango-dev/ui";var vr=Wr("div",{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"$8",borderRadius:"$5",backgroundColor:"$neutral100",color:"$neutral800",fontSize:"$12",".routes":{display:"flex",alignItems:"center"},".fee":{display:"flex",alignItems:"center"}});function Er(t){if(!t.routes)return null;let e=t.routes.result?.swaps;return J.createElement(vr,null,J.createElement("div",{className:"routes"},e?.map((o,n)=>{let s=n+1==e.length;return J.createElement(J.Fragment,{key:n},J.createElement("div",{className:"route"},o.from.symbol),J.createElement(Ar,{size:12}),s?J.createElement("div",{className:"route"},o.to.symbol):null)})),t.totalFee?J.createElement("div",{className:"fee"},J.createElement(xr,{size:12}),J.createElement(Br,{size:4,direction:"horizontal"}),"$",t.totalFee):null)}i(Er,"RoutesOverview");var xo=Er;import{useManager as Yr}from"@rango-dev/queue-manager-react";import{useEffect as Nr,useRef as lt,useState as ut}from"react";import ct from"bignumber.js";import{calculatePendingSwap as Bo}from"@rango-dev/queue-manager-rango-preset";function Eo(){let t=p.use.fromToken(),e=p.use.toToken(),o=p.use.inputAmount(),n=p.use.bestRoute(),s=p.use.setBestRoute(),r=p.use.inputUsdValue(),a=E.use.affiliateRef(),l=P.use.connectedWallets(),u=P.use.customDestination(),c=P.use.selectedWallets(),S=k.use.meta(),W=E.use.customSlippage(),b=E.use.slippage(),T=E.use.disabledLiquiditySources(),y=W||b,m=lt(!1),g=lt(null),d=lt(null),[w,x]=ut(!1),[h,C]=ut([]),[F,I]=ut([]);return Nr(()=>()=>d.current?.abort(),[]),!t||!e||!o||!n?{loading:!1,warnings:[],errors:[],confirmSwap:null}:{loading:w,warnings:F,errors:h,confirmSwap:i(async()=>{if(m.current){let B={slippage:y.toString(),disabledSwappersGroups:T};return h.length>0&&C([]),F.length>0&&I([]),m.current=!1,g.current?Bo(o.toString(),g.current,ot(c),B,!1,S):void 0}d.current=new AbortController,x(!0);let V=De(t,e,o,l,c,T,y,a,n,u);try{let B=await se().getBestRoute(V,{signal:d.current?.signal});if(d.current=null,x(!1),!B.result||!new ct(B.requestAmount).isEqualTo(new ct(o||"-1"))){C(le=>le.concat({type:0}));return}let N={errors:[],warnings:[]};if(Lt(n,B)){s(B);let le=new ct(B.result?.outputAmount||"0").multipliedBy(e.usdPrice||0),re=Fe(r,le);Oe(r,re)?N.errors.push({type:1}):uo(n,B)?N.warnings.push({type:3,newOutputAmount:A(ge(B)),percentageChange:A(Te(ge(n),ge(B)),null,2)}):Ze(n,B)?N.warnings.push({type:2}):Qe(n,B)?N.warnings.push({type:0}):Ye(n,B)&&N.warnings.push({type:1})}let K=co(B,c);K.length===0||N.errors.push({type:4,messages:K});let ie=ao(n);lo(y.toString(),ie)||N.errors.push({type:3,minRequiredSlippage:ie});let ae=N.errors.length===0,pe=N.warnings.length===0;if((ae||!ae&&m.current)&&(pe||!pe&&m.current)){let le={slippage:y.toString(),disabledSwappersGroups:T};return Bo(o.toString(),B,ot(c),le,!1,S)}else m.current||(m.current=!0,C(N.errors),I(N.warnings),g.current=B);return}catch(B){if(B?.code==="ERR_CANCELED")return;let N=B?.response?.status;x(!1),C([{type:2,status:N}]);return}},"confirmSwap")}}i(Eo,"useConfirmSwap");import Ro from"react";import{Divider as Fr,Typography as Or,styled as Lr}from"@rango-dev/ui";import pt from"react";import Ir from"react";import{Button as Rr}from"@rango-dev/ui";import{useNavigate as Mr}from"react-router-dom";function $e(){let t=Mr();return Ir.createElement(Rr,{type:"primary",variant:"outlined",size:"small",onClick:()=>t("/"+f.settings)},"Change Slippage")}i($e,"ChangeSlippageButton");var Ur=Lr(Or,{color:"$error500 !important"});function Po({minRequiredSlippage:t}){return pt.createElement(Ur,{variant:"body2"},"We recommend you to increase slippage to at least \xA0",t,"\xA0 for this route.",pt.createElement(Fr,{size:8}),pt.createElement($e,null))}i(Po,"MinRequiredSlippage");import{Divider as Dr,styled as mt,Typography as No}from"@rango-dev/ui";import ue from"react";var _r=mt("ul",{padding:0,margin:0,variants:{showListStyle:{true:{paddingLeft:"$24"}}}}),qr=mt("li",{variants:{showListStyle:{true:{listStyleType:"disc",listStylePosition:"outside"}}}}),$r=mt(No,{display:"block"});function Io({messages:t}){let e=t.length>1;return ue.createElement(ue.Fragment,null,ue.createElement(No,{className:"title",variant:"title",color:"error"},"Insufficent Balance:"),ue.createElement(Dr,{size:8}),ue.createElement(_r,{showListStyle:e},t.map((o,n)=>ue.createElement(qr,{showListStyle:e,key:n},ue.createElement($r,{variant:"body2"},o)))))}i(Io,"BalanceErrors");function dt(t){return t.flatMap(e=>{switch(e.type){case 0:return"No routes found. Please try again later.";case 2:return`Failed to confirm swap ${e.status?`'status': ${e.status})`:""}, please try again.`;case 1:return"Route updated and price impact is too high, try again later!";case 3:return Ro.createElement(Po,{minRequiredSlippage:e.minRequiredSlippage});case 4:return Ro.createElement(Io,{messages:e.messages});default:return[]}})}i(dt,"ConfirmSwapErrors");function ft(t){return t.flatMap(e=>{switch(e.type){case 0:return"Route has been updated.";case 3:return`Output amount changed to ${e.newOutputAmount} (${e.percentageChange}% change).`;case 1:return"Route swappers has been updated.";case 2:return"Route internal coins has been updated.";default:return[]}})}i(ft,"ConfirmSwapWarnings");import gt from"react";import{Alert as Vr}from"@rango-dev/ui";import Mo from"react";function Fo(t){let{selectedSlippage:e}=t;return Mo.createElement(Vr,{type:"warning",footer:Mo.createElement($e,null)},"Caution, your slippage is high (=",e,"). Your trade may be front run.")}i(Fo,"HighSlippageWarning");function Oo(t){let{selectedSlippage:e}=t,o=e>=Gt;return gt.createElement(gt.Fragment,null,o&&gt.createElement(Fo,{selectedSlippage:e}))}i(Oo,"ConfirmSwapExtraMessages");import ht from"react";import{Typography as Hr}from"@rango-dev/ui";function Ve(t){let{inputUsdValue:e,outputUsdValue:o}=t;if(!e||!o||!o.gt(0))return null;let n=Te(e.toNumber(),o.toNumber()),s=n?.lt(0);return ht.createElement(ht.Fragment,null,s&&ht.createElement(Hr,{variant:"caption",color:"$error500"},`(${A(n,0,2)}%)`))}i(Ve,"PercentageChange");function _o({customDestinationEnabled:t}){let e=zr(),{navigateBackFrom:o}=q(),n=p.use.bestRoute(),s=p.use.loading(),r=p.use.error(),a=_.use.setSelectedSwap(),{blockchains:l,tokens:u}=k.use.meta(),c=k.use.loadingStatus(),S=P.use.connectedWallets(),W=P.use.selectedWallets(),b=P.use.customDestination(),T=P.use.setCustomDestination(),y=P.use.initSelectedWallets(),m=P.use.setSelectedWallet(),g=E.use.slippage(),d=E.use.customSlippage(),w=p.use.inputUsdValue(),x=p.use.outputUsdValue(),h=p.use.setInputAmount(),[C,F]=Lo(""),I=qt(s,!!r),[O,V]=Lo(""),{manager:B}=Yr(),{loading:N,errors:L,warnings:K,confirmSwap:ce}=Eo(),ie=d||g,ae=!L.find(U=>U.type===3),{getWalletInfo:pe,connect:le}=Kr(),re=n?.result?.swaps[0],me=n?.result?.swaps[n?.result?.swaps.length-1],xn=A(re?.fromAmount,4,6),Bn=A(me?.toAmount,4,6);Gr(()=>{y(),b&&T("")},[]);let vn=n?.result?.swaps[n?.result?.swaps.length-1].to.blockchain,Nt=!!n?.result?.swaps.find(U=>U.from.blockchain===vn),We=Pe(S,W,pe,Nt?"":O),En=i(U=>{let ze=U;et(We).forEach(Nn=>le?.(Nn,ze))},"handleConnectChain"),Pn=Ue(n,u);return H.createElement(jr,{requiredWallets:fe(n),selectableWallets:We,setCustomDestination:T,customDestination:b,customDestinationEnabled:t,isValidCustomDestination:ho,checkedDestination:!!O,setDestinationChain:V,onBack:o.bind(null,f.confirmSwap),onConfirm:async()=>{ce?.().then(async U=>{if(U)try{await B?.create("swap",{swapDetails:U},{id:U.requestId}),a(U.requestId),e("/"+f.swaps+`/${U.requestId}`,{replace:!0}),setTimeout(()=>{h("")},0)}catch(ze){F("Error: "+ze?.message)}})},isWalletRequired:Nt,onChange:U=>m(U),confirmDisabled:c!=="success"||So(s,O,b,n,We),handleConnectChain:U=>En(U),isExperimentalChain:U=>et(We).length>0?eo(l,U):!1,previewInputs:H.createElement(H.Fragment,null,H.createElement(at,{chain:{displayName:re?.from.blockchain||"",logo:re?.from.blockchainLogo||""},token:{symbol:re?.from.symbol||"",image:re?.from.logo||""},usdValue:w,amount:xn,label:Uo("From"),loadingStatus:c!=="success"?c:I}),H.createElement(Do,{size:12}),H.createElement(at,{chain:{displayName:me?.to.blockchain||"",logo:me?.to.blockchainLogo||""},token:{symbol:me?.to.symbol||"",image:me?.to.logo||""},usdValue:x,amount:Bn,label:Uo("To"),loadingStatus:c!=="success"?c:I,percentageChange:H.createElement(Ve,{inputUsdValue:w,outputUsdValue:x})})),previewRoutes:H.createElement(xo,{routes:n,totalFee:A(Pn,0,2)}),loading:N,errors:C?[C,...dt(L)]:dt(L),warnings:ft(K),extraMessages:H.createElement(H.Fragment,null,c==="failed"&&H.createElement(Qr,null),c==="failed"&&ae&&H.createElement(Do,null),ae&&H.createElement(Oo,{selectedSlippage:ie})),confirmButtonTitle:K.length>0||L.length>0?"Proceed anyway!":"Confirm swap!"})}i(_o,"ConfirmSwapPage");import{History as Zr}from"@rango-dev/ui";import{useManager as Xr}from"@rango-dev/queue-manager-react";import Jr from"react";import{useNavigate as es}from"react-router-dom";var He=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let s=o.list.getStorage();s?.swapDetails&&e.push({id:n,swap:s?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import qo from"dayjs";var $o=i(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["week",{title:"This week",swaps:[]}],["month",{title:"This month",swaps:[]}],["year",{title:"This year",swaps:[]}],["history",{title:"History",swaps:[]}]]),o=qo();return t.forEach(n=>{let s=qo(Number(n.creationTime));o.isSame(s,"day")?e.get("today")?.swaps.push(n):o.isSame(s,"week")?e.get("week")?.swaps.push(n):o.isSame(s,"month")?e.get("month")?.swaps.push(n):o.isSame(s,"year")?e.get("year")?.swaps.push(n):e.get("history")?.swaps.push(n)}),Array.from(e.values())},"groupSwapsByDate");function Vo(){let t=_.use.setSelectedSwap(),e=es(),{navigateBackFrom:o}=q(),{manager:n,state:s}=Xr(),r=He(n).map(({swap:l})=>l),a=!s.loadedFromPersistor;return Jr.createElement(Zr,{list:r,groupBy:$o,loading:a,onSwapClick:l=>{t(l),e(`${l}`,{replace:!0})},onBack:o.bind(null,f.swaps)})}i(Vo,"HistoryPage");import{Alert as Xo,BestRoute as Ws,Button as Jo,styled as Ce,Typography as en,VerticalSwapIcon as As,Header as xs}from"@rango-dev/ui";import R,{useEffect as Bs,useState as vs}from"react";import{useInRouterContext as Es,useNavigate as Ps}from"react-router-dom";import v from"react";import{AngleDownIcon as ts,Button as St,InfoCircleIcon as os,styled as ke,TextField as ns,Typography as we,Image as Ho,Divider as Tt}from"@rango-dev/ui";import{useNavigate as rs}from"react-router-dom";import{useTranslation as ss}from"react-i18next";var is=ke("div",{display:"flex",flexDirection:"column",width:"100%",overflow:"hidden"}),as=ke("div",{boxSizing:"border-box",borderRadius:"$5",padding:"$8 $16 $16 $16",variants:{type:{filled:{backgroundColor:"$neutral100"},outlined:{border:"1px solid $neutral100",backgroundColor:"$surface"}}},defaultVariants:{type:"filled"},".head":{display:"flex",justifyContent:"space-between",alignItems:"center",minHeight:"32px"},".form":{display:"flex",width:"100%",padding:"$2 0",".selectors":{width:"35%","._text":{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},".amount":{width:"30%"}},".output-usd":{display:"flex",div:{display:"flex",paddingLeft:"$8"}}}),ls=ke("div",{display:"flex",justifyContent:"flex-end",".balance":{display:"flex",alignItems:"center"}}),Go=ke("span",{width:"24px",height:"24px",backgroundColor:"$neutral100",borderRadius:"99999px"}),us=ke("div",{windth:"100%",height:"$48",borderRadius:"$5",backgroundColor:"$surface",border:"1px solid transparent",position:"relative",display:"flex",alignItems:"center",paddingLeft:"$8",paddingRight:"$8"});function yt(t){let{type:e,chain:o,token:n}=t,s=k.use.loadingStatus(),r=p.use.fromChain(),a=p.use.toChain(),l=p.use.inputUsdValue(),u=p.use.fromToken(),c=p.use.setInputAmount(),S=p.use.bestRoute(),W=p.use.inputAmount(),b=P.use.connectedWallets(),T=p.use.loading(),y=rs(),{t:m}=ss(),g=r&&u?A(de(b,r?.name,u?.symbol,u?.address)?.amount||"0",8):"0",d=r&&u?A(de(b,r?.name,u?.symbol,u?.address)?.amount||"0",de(b,r?.name,u?.symbol,u?.address)?.decimal):"0",w=v.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"}},s==="failed"&&v.createElement(os,{color:"error",size:24}),v.createElement(ts,null));return v.createElement(is,null,v.createElement(as,{type:t.type==="From"?"filled":"outlined"},v.createElement("div",{className:"head"},v.createElement(we,{variant:"body2",color:"neutral800"},m(e)),t.type==="From"?v.createElement(ls,null,v.createElement("div",{className:"balance",onClick:()=>{g!=="0"&&c(d.split(",").join(""))}},v.createElement(we,{variant:"body3",color:"neutral600"},`${m("Balance")}: ${g} ${u?.symbol||""}`),v.createElement(Tt,{size:4}),v.createElement(St,{type:"primary",variant:"ghost",size:"compact"},m("Max")))):v.createElement("div",{className:"output-usd"},v.createElement(Ve,{inputUsdValue:l,outputUsdValue:t.outputUsdValue}),v.createElement("div",null,v.createElement(we,{variant:"caption",color:"neutral600"},`$${A(t.outputUsdValue)}`)))),v.createElement("div",{className:"form"},v.createElement(St,{className:"selectors",onClick:()=>{y(`${t.type.toLowerCase()}-chain`)},variant:"outlined",disabled:s==="failed",loading:s==="loading",prefix:s==="success"&&o?v.createElement(Ho,{src:o.logo,size:24}):v.createElement(Go,null),suffix:w,align:"start",size:"large"},s==="success"&&o?o.displayName:m("Chain")),v.createElement(Tt,{size:12,direction:"horizontal"}),v.createElement(St,{className:"selectors",onClick:()=>{y(`${t.type.toLowerCase()}-token`)},variant:"outlined",disabled:s==="failed"||e==="From"&&!r||e==="To"&&!a,loading:s==="loading",prefix:s==="success"&&n?v.createElement(Ho,{src:n.image,size:24}):v.createElement(Go,null),suffix:w,size:"large",align:"start"},s==="success"&&n?n.symbol:m("Token")),v.createElement(Tt,{size:12,direction:"horizontal"}),v.createElement("div",{className:"amount"},t.type==="From"?v.createElement(ns,{type:"number",size:"large",autoFocus:!0,placeholder:"0",style:{position:"relative",backgroundColor:"$background !important"},suffix:v.createElement("span",{style:{position:"absolute",right:"4px",bottom:"2px"}},v.createElement(we,{variant:"caption",color:"neutral800"},`$${A(l)}`)),value:t.inputAmount||"",min:0,onChange:t.type==="From"?x=>{t.onAmountChange(x.target.value)}:void 0}):v.createElement(us,null,v.createElement(we,{variant:"h4"},T&&"?",!!S?.result&&`\u2248 ${A(t.outputAmount)}`,(!W||W==="0")&&"0"))))))}i(yt,"TokenInfo");import ee from"react";import{styled as wt}from"@rango-dev/ui";import{Typography as zo}from"@rango-dev/ui";import{useTranslation as cs}from"react-i18next";var ps=wt("div",{display:"flex",width:"100%",justifyContent:"end",alignItems:"center",paddingTop:"$16"}),ms=wt("svg",{fill:"$foreground",width:"$24",margin:"0 $8 0 $16"}),ds=wt("a",{display:"flex",justifyContent:"center",alignItems:"center",textDecoration:"none"});function Ko(){let{t}=cs();return ee.createElement(ps,null,ee.createElement(zo,{variant:"caption",color:"$neutral600"},t("Powered By")),ee.createElement(ds,{href:"https://rango.exchange",target:"_blank"},ee.createElement(ms,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 33.68 29"},ee.createElement("defs",null),ee.createElement("g",{id:"Layer_2","data-name":"Layer 2"},ee.createElement("g",{id:"Layer_1-2","data-name":"Layer 1"},ee.createElement("path",{d:"M33.68,18.05A17.93,17.93,0,0,0,28.34,5.29,18.31,18.31,0,0,0,15.45,0H13.54V7.41L6.07,0H.69L9.83,9.07H0V11A17.93,17.93,0,0,0,5.34,23.71,18.32,18.32,0,0,0,18.24,29h1.9V21.59l7.38,7.31h5.39l-9-9h9.82ZM17.37,16.16H12.49a1.93,1.93,0,0,0-1.35.55,1.89,1.89,0,0,0-.56,1.34,1.85,1.85,0,0,0,.56,1.33,1.93,1.93,0,0,0,1.35.55h3.84V25.1A14.43,14.43,0,0,1,8,21a14.21,14.21,0,0,1-4.1-8.2H21.2a1.86,1.86,0,0,0,.74-.13,1.92,1.92,0,0,0,.64-.4,2,2,0,0,0,.43-.62,1.88,1.88,0,0,0,0-1.47,2,2,0,0,0-.43-.62,1.92,1.92,0,0,0-.64-.4,1.86,1.86,0,0,0-.74-.13H17.35V3.9A14.43,14.43,0,0,1,25.64,8a14.19,14.19,0,0,1,4.11,8.2Zm2.12-5.27a1.43,1.43,0,0,1,.26-.83,1.52,1.52,0,0,1,.67-.56,1.55,1.55,0,0,1,.88-.08,1.51,1.51,0,0,1,.77.4,1.54,1.54,0,0,1,.42.77,1.41,1.41,0,0,1-.09.86,1.47,1.47,0,0,1-.55.68,1.56,1.56,0,0,1-.84.25,1.52,1.52,0,0,1-1.52-1.49Z"}),ee.createElement("path",{d:"M21.7,11.57a.68.68,0,0,0-.12-.38.64.64,0,0,0-.31-.25.68.68,0,0,0-.75.15.61.61,0,0,0-.19.35.62.62,0,0,0,0,.4.67.67,0,0,0,.25.3.69.69,0,0,0,.39.12.7.7,0,0,0,.49-.2A.68.68,0,0,0,21.7,11.57Z"})))),ee.createElement(zo,{variant:"body2"},"RANGO")))}i(Ko,"BottomLogo");import{useEffect as fs,useRef as gs}from"react";import{useSearchParams as hs}from"react-router-dom";function jo({count:t}){let e=gs(!0),[o,n]=hs(),s=p.use.outputAmount();return fs(()=>{if(e.current)e.current=!1;else{let r=o.get("fromChain"),a=o.get("fromToken"),l=o.get("toChain"),u=o.get("toToken");n({...l&&{["fromChain"]:l},...u&&{["fromToken"]:u},...r&&{["toChain"]:r},...a&&{["toToken"]:a},...s&&{["fromAmount"]:s.toString()}})}},[t]),null}i(jo,"SwithFromAndTo");import{styled as Ss}from"@rango-dev/ui";var Qo=Ss("div",{display:"flex",flexDirection:"column",width:"100%",paddingTop:"$16"});var Yo={genericServerError:"Error connecting server, please reload the app and try again"};import tn from"bignumber.js";import te from"react";import{SettingsIcon as Ts,Tooltip as kt,styled as ys,Button as Ct,HistoryIcon as ws,RetryIcon as ks}from"@rango-dev/ui";import{useNavigate as Cs}from"react-router-dom";var bs=ys("div",{display:"flex"});function Zo(t){let{onClickRefresh:e}=t,o=Cs();return te.createElement(bs,null,te.createElement(kt,{content:"Refresh"},te.createElement(Ct,{variant:"ghost",onClick:e,disabled:!e},te.createElement(ks,{size:24,disabled:!e}))),te.createElement(kt,{content:"Transactions History"},te.createElement(Ct,{variant:"ghost",onClick:()=>o(f.swaps)},te.createElement(ws,{size:24}))),te.createElement(kt,{content:"Settings"},te.createElement(Ct,{variant:"ghost",onClick:()=>o(f.settings)},te.createElement(Ts,{size:24}))))}i(Zo,"HeaderButtons");var Ns=Ce("div",{display:"flex",flexDirection:"column"}),Is=Ce("div",{position:"relative",paddingBottom:"$12"}),Rs=Ce("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)"}),Ms=Ce("div",{width:"100%",paddingTop:"$16"}),Fs=Ce("div",{width:"100%",paddingTop:"$16"});function on(){let t=Es(),e=Ps(),[o,n]=vs(0),s=p.use.fromChain(),r=p.use.fromToken(),a=p.use.toChain(),l=p.use.toToken(),u=p.use.setInputAmount(),c=p.use.inputUsdValue(),S=p.use.inputAmount(),W=p.use.outputAmount(),b=p.use.outputUsdValue(),T=p.use.bestRoute(),y=k.use.meta().tokens,m=p.use.loading(),g=p.use.error(),d=k.use.loadingStatus(),w=P.use.connectedWallets(),x=_.use.setCurrentPage(),h=p.use.switchFromAndTo(),C=d==="failed"?Yo.genericServerError:g,F=!1,I=S&&(!!T||m||g),O=Fe(c,b),V=Oe(c,O),{fromAmountRangeError:B,recommendation:N,swap:L}=no(T),K=!so(T,S,c,b),ce=ro(d,w,m,T,Le(T),V,K,F,S),ie=Ue(T,y),ae=io(ie);return Bs(()=>(x(f.home),x.bind(null,"")),[]),R.createElement(Ns,null,R.createElement(xs,{title:"SWAP",suffix:R.createElement(Zo,{onClickRefresh:T||g?yo:void 0})}),R.createElement(Is,null,R.createElement(yt,{type:"From",chain:s,token:r,onAmountChange:u,inputAmount:S}),R.createElement(Rs,null,R.createElement(Jo,{variant:"ghost",onClick:()=>{h(),n(pe=>pe+1)}},R.createElement(As,{size:32}),t&&R.createElement(jo,{count:o})))),R.createElement(yt,{type:"To",chain:a,token:l,outputAmount:W?new tn(W):new tn(0),outputUsdValue:b}),I&&R.createElement(Ms,null,R.createElement(Ws,{error:g,loading:m,data:Dt(T),totalFee:A(ie,0,2),feeWarning:ae,totalTime:Mt(Ft(T))})),(C||Le(T))&&R.createElement(Fs,null,C&&R.createElement(Xo,{type:"error"},C),Le(T)&&R.createElement(Xo,{type:"error",title:`${L?.swapperId} Limit`},R.createElement(R.Fragment,null,R.createElement(en,{variant:"body2"},`${B}, Yours: ${A(L?.fromAmount||null)} ${L?.from.symbol}`),R.createElement(en,{variant:"body2"},N)))),R.createElement(Qo,null,R.createElement(Jo,{type:"primary",align:"grow",size:"large",disabled:ce.disabled,onClick:()=>{ce.title==="Connect Wallet"?e(f.wallets):e(f.confirmSwap,{replace:!0})}},ce.title),R.createElement(Ko,null)))}i(on,"Home");import{LiquiditySourcesSelector as Os}from"@rango-dev/ui";import Ls from"react";function nn({supportedSwappers:t}){let e=k.use.meta().swappers,o=k.use.loadingStatus(),n=E.use.toggleLiquiditySource(),s=E.use.disabledLiquiditySources(),r=E.use.toggleAllLiquiditySources(),{navigateBackFrom:a}=q(),l=[];return G(e.map(u=>u.swapperGroup)).map(u=>e.find(c=>c.swapperGroup===u)).find(u=>{if(u)for(let c of u.types)l.push({title:u.swapperGroup,logo:u.logo,type:c,selected:!s.includes(u.swapperGroup)})}),Ls.createElement(Os,{toggleAll:r,list:t?l.filter(u=>t.filter(c=>c===u.title).length>0):l,onChange:u=>n(u.title),onBack:a.bind(null,f.liquiditySources),loadingStatus:o})}i(nn,"LiquiditySourcePage");import Us from"react";import{BlockchainSelector as Ds}from"@rango-dev/ui";function bt(t){let{type:e,supportedChains:o}=t,n=o?k.use.meta().blockchains.filter(S=>o.includes(S.name)):k.use.meta().blockchains,s=k.use.loadingStatus(),r=p.use.fromChain(),a=p.use.toChain(),l=p.use.setFromChain(),u=p.use.setToChain(),{navigateBackFrom:c}=q();return Us.createElement(Ds,{type:e==="from"?"Source":"Destination",list:n,selected:e==="from"?r:a,loadingStatus:s,onChange:S=>{e==="from"?l(S,!0):u(S,!0),c(f.fromChain)},onBack:c.bind(null,f.fromChain)})}i(bt,"SelectChainPage");import _s from"react";import{TokenSelector as qs}from"@rango-dev/ui";function Wt(t){let{navigateBackFrom:e}=q(),{type:o,supportedTokens:n}=t,s=p.use.sourceTokens(),r=p.use.destinationTokens(),a=n?s.filter(T=>n.some(y=>j(y,T))):s,l=n?r.filter(T=>n.some(y=>j(y,T))):r,u=p.use.fromToken(),c=p.use.toToken(),S=p.use.setFromToken(),W=p.use.setToToken(),b=k.use.loadingStatus();return _s.createElement(qs,{type:o==="from"?"Source":"Destination",list:o=="from"?a:l,selected:o==="from"?u:c,onChange:T=>{o==="from"?S(T):W(T),e(f.fromToken)},onBack:e.bind(null,f.fromToken),loadingStatus:b})}i(Wt,"SelectTokenPage");import $s from"react";import{Settings as Vs}from"@rango-dev/ui";import{useNavigate as Hs}from"react-router-dom";function rn({supportedSwappers:t,singleTheme:e}){let o=E.use.slippage(),n=E.use.setSlippage(),s=E.use.disabledLiquiditySources(),r=E.use.customSlippage(),a=E.use.setCustomSlippage(),l=E.use.theme(),u=E.use.setTheme(),c=k.use.meta().swappers,S=Hs(),{navigateBackFrom:W}=q(),b=E.use.infiniteApprove(),T=E.use.toggleInfiniteApprove(),y=k.use.loadingStatus(),m=[];G(c.map(d=>d.swapperGroup)).map(d=>c.find(w=>w.swapperGroup===d)).find(d=>{if(d)for(let w of d.types)m.push({title:d.swapperGroup,logo:d.logo,type:w,selected:!s.includes(d.swapperGroup)})}),t&&m.filter(d=>t.filter(w=>w===d.title).length>0);let g=t?m.filter(d=>t.filter(w=>w===d.title).length>0):m;return $s.createElement(Vs,{slippages:Vt,selectedSlippage:o,onSlippageChange:d=>n(d),onLiquiditySourcesClick:()=>S(f.liquiditySources),onBack:W.bind(null,f.settings),liquiditySources:g,selectedLiquiditySources:g.filter(d=>d.selected),singleTheme:e,customSlippage:r,onCustomSlippageChange:a,minSlippage:Kt,maxSlippage:zt,selectedTheme:l,onThemeChange:u,infiniteApprove:b,toggleInfiniteApprove:T,loadingStatus:y})}i(rn,"SettingsPage");import{Alert as Gs,SecondaryPage as zs,styled as At,Wallet as Ks,WalletState as sn}from"@rango-dev/ui";import oe,{useEffect as an,useRef as js,useState as Qs}from"react";import{WalletTypes as Ys,detectMobileScreens as Zs}from"@rango-dev/wallets-shared";import{useWallets as Xs}from"@rango-dev/wallets-core";import{useTranslation as Js}from"react-i18next";import{Spinner as ei}from"@rango-dev/ui";import{LoadingFailedAlert as ti}from"@rango-dev/ui";var oi=At("div",{display:"grid",gap:".5rem",gridTemplateColumns:" repeat(2, minmax(0, 1fr))",alignContent:"baseline",padding:"0.5rem",overflowY:"auto"}),ni=At("div",{display:"flex",justifyContent:"center",width:"100%",position:"absolute",top:"50%"}),ri=At("div",{paddingBottom:"$16"});function ln({supportedWallets:t,multiWallets:e}){let{navigateBackFrom:o}=q(),{state:n,disconnect:s,getWalletInfo:r,connect:a}=Xs(),l=Qt(n,r,t||Object.values(Ys)),u=js(),c=Zs()?l.filter(d=>d.showOnMobile):l;c=to(c);let[S,W]=Qs(""),b=_.use.toggleConnectWalletsButton(),T=k.use.loadingStatus(),{t:y}=Js(),m=i(async d=>{let w=n(d);try{if(S&&W(""),w.connected)await s(d);else{if(!e&&l.find(x=>x.state===sn.CONNECTED))return;await a(d)}}catch(x){W("Error: "+x?.message)}},"onSelectWallet"),g=i(()=>{let d=u.current?.filter(w=>w.state===sn.CONNECTING)||[];for(let w of d)s(w.type)},"disconnectConnectingWallets");return an(()=>(b(),()=>{g(),b()}),[]),an(()=>{u.current=l},[l]),oe.createElement(zs,{title:y("Select Wallet")||"",textField:!1,onBack:o.bind(null,f.wallets)},oe.createElement(oe.Fragment,null,S&&oe.createElement(ri,null,oe.createElement(Gs,{type:"error",title:S})),T==="loading"&&oe.createElement(ni,{className:"loader"},oe.createElement(ei,{size:24})),T==="failed"&&oe.createElement(ti,null),oe.createElement(oi,null,T==="success"&&c.map((d,w)=>oe.createElement(Ks,{...d,key:`${w}-${d.type}`,onClick:m})))))}i(ln,"WalletsPage");import dn from"react";import{useManager as ci}from"@rango-dev/queue-manager-react";import{SwapHistory as pi,useCopyToClipboard as mi}from"@rango-dev/ui";import{cancelSwap as di,PendingSwapNetworkStatus as fi}from"@rango-dev/queue-manager-rango-preset";import{useWallets as gi}from"@rango-dev/wallets-core";import{getCurrentBlockchainOfOrNull as hi,getCurrentStep as Si,getRelatedWalletOrNull as Ti}from"@rango-dev/queue-manager-rango-preset";function un(t){let e=Math.floor((new Date().getTime()-t)/1e3),o,n=Math.floor(e/31536e3);return n>=1?o="year":(n=Math.floor(e/2592e3),n>=1?o="month":(n=Math.floor(e/86400),n>=1?o="day":(n=Math.floor(e/3600),n>=1?o="hour":(n=Math.floor(e/60),n>=1?o="minute":(n=e,o="second"))))),(n>1||n===0)&&(o+="s"),n+" "+o}i(un,"timeSince");function cn(t){return t.finishTime?`${un(parseInt(t.finishTime))} ago`:`${un(parseInt(t.creationTime))} ago`}i(cn,"getSwapDate");import{useNavigate as yi}from"react-router-dom";import be from"react";import{SecondaryPage as si,Spinner as ii,Alert as ai,styled as pn}from"@rango-dev/ui";var li=pn("div",{height:"450px"}),ui=pn("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1});function mn(t){let{requestId:e,loading:o,onBack:n}=t;return be.createElement(si,{title:"Swap Details",textField:!1,onBack:n},be.createElement(li,null,o?be.createElement(ui,null,be.createElement(ii,{size:24})):be.createElement(ai,{type:"secondary",title:`Swap with request ID = ${e} not found.`})))}i(mn,"SwapDetailsPlaceholder");function fn(){let t=_.use.selectedSwapRequestId(),{canSwitchNetworkTo:e,connect:o,getWalletInfo:n}=gi(),s=p.use.retry(),r=yi(),{navigateBackFrom:a}=q(),[l,u]=mi(2e3),{manager:c,state:S}=ci(),b=He(c).find(({swap:L})=>L.requestId===t),T=i(()=>{let L=c?.get(b?.id);L&&di(L)},"onCancel"),y=b?.swap,m=!S.loadedFromPersistor;if(!y)return dn.createElement(mn,{requestId:t||"",loading:m,onBack:a.bind(null,f.swapDetails)});let g=Si(y),d=g?hi(y,g):null,w=g?Ti(y,g):null,x=g?.networkStatus,h=mo(y,g),C=nt(g),F=cn(y),I=go(y),O=i(L=>!!n(L)?.mobileWallet,"isMobileWallet"),B=x===fi.WaitingForNetworkChange&&!!d&&!!w?.walletType&&(O(w.walletType)||e(w.walletType,d))?o.bind(null,w.walletType,d):void 0,N=fo(y);return dn.createElement(pi,{onBack:a.bind(null,f.swapDetails),pendingSwap:_t(y),onCopy:u,isCopied:l,onCancel:T,shortMessage:h.shortMessage,detailedMessage:h.detailedMessage,currentStepBlockchain:d||"",switchNetwork:B,type:C?"warning":y.extraMessageSeverity||void 0,date:F,...I&&{onRetry:()=>{s(y),setTimeout(()=>{r(f.home)},0)}},...N&&{lastConvertedTokenInFailedSwap:{blockchain:N.blockchain,outputAmount:N.outputAmount||"",symbol:N.symbol}}})}i(fn,"SwapDetailsPage");var ki=i(t=>t.replace("/",""),"getAbsolutePath");function gn(t){let{config:e}=t;return wi([{path:f.home,element:Q.createElement(on,null)},{path:f.fromChain,element:Q.createElement(bt,{type:"from",supportedChains:e?.from?.blockchains})},{path:f.toChain,element:Q.createElement(bt,{type:"to",supportedChains:e?.to?.blockchains})},{path:f.fromToken,element:Q.createElement(Wt,{type:"from",supportedTokens:e?.from?.tokens})},{path:f.toToken,element:Q.createElement(Wt,{type:"to",supportedTokens:e?.to?.tokens})},{path:f.settings,element:Q.createElement(rn,{singleTheme:e?.theme?.singleTheme,supportedSwappers:e?.liquiditySources})},{path:f.liquiditySources,element:Q.createElement(nn,{supportedSwappers:e?.liquiditySources})},{path:f.swaps,element:Q.createElement(Vo,null)},{path:f.swapDetails,element:Q.createElement(fn,null)},{path:f.wallets,element:Q.createElement(ln,{supportedWallets:e?.wallets,multiWallets:typeof e?.multiWallets>"u"?!0:e.multiWallets})},{path:ki(f.confirmSwap),element:Q.createElement(_o,{customDestinationEnabled:e?.customDestination})}])}i(gn,"AppRoutes");import{useTranslation as Ei}from"react-i18next";var Pi=xt("div",{display:"flex",width:"100%",justifyContent:"end",".balance":{display:"flex"}}),Ni=xt("div",{display:"flex",paddingLeft:"12px"}),Ii=xt("div",{marginLeft:-15,marginRight:"$6","& img":{borderRadius:"50%"}});function hn({config:t}){let e=Bi(),{connectedWallets:o,selectedWallets:n}=P(),{getWalletInfo:s}=vi(),r=G(Pe(o,n,s).map(x=>x.image)),{blockchains:a,tokens:l}=k.use.meta(),u=p.use.setFromChain(),c=p.use.setFromToken(),S=p.use.setToChain(),W=p.use.setToToken(),b=p.use.setInputAmount(),T=E.use.setAffiliateRef(),y=Jt(o),m=_.use.connectWalletsButtonDisabled(),g=k.use.loadingStatus(),d=P(To),{t:w}=Ei();return Ge(()=>{if(g==="success"){let x=a.find(C=>C.name===t?.to?.blockchain),h=l.find(C=>j(C,t?.to?.token||null));S(x||null),W(h||null)}},[t?.to?.token,t?.to?.blockchain,g]),Ge(()=>{b(t?.amount?.toString()||"")},[t?.amount]),Ge(()=>{if(g==="success"){let x=a.find(C=>C.name===t?.from?.blockchain),h=l.find(C=>j(C,t?.from?.token||null));u(x||null),c(h||null)}},[t?.from?.token,t?.from?.blockchain,g]),Ge(()=>{T(t?.affiliateRef||null)},[t?.affiliateRef]),z.createElement(z.Fragment,null,z.createElement(Pi,null,z.createElement(Ci,{size:"small",suffix:z.createElement(bi,{size:20}),variant:"ghost",flexContent:!0,loading:g==="loading",disabled:g==="failed",onClick:()=>{m||e(f.wallets)},prefix:r?.length?z.createElement(Ni,null,r.map((x,h)=>z.createElement(Ii,{key:h},z.createElement(xi,{src:x,size:24})))):null},z.createElement("div",{className:"balance"},z.createElement(Wi,{variant:"body2"},o?.length?`$${y||0}`:w("Connect Wallet")),d&&z.createElement(Ai,null)))),z.createElement(gn,{config:t}))}i(hn,"Layout");import{globalCss as Ri}from"@rango-dev/ui";var Sn=i(t=>Ri({"@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')","url('https://fonts.cdnfonts.com/css/times-new-roman')"],body:{fontFamily:t}})(),"globalFont");import{createTheme as Tn,generateRangeColors as Y}from"@rango-dev/ui";import{useState as Oi,useEffect as yn,useLayoutEffect as Li}from"react";import{useEffect as Mi,useRef as Fi}from"react";function Bt(t){let e=Fi();return Mi(()=>{e.current=t},[t]),e.current}i(Bt,"usePrevious");function wn({colors:t,fontFamily:e="Roboto",borderRadius:o=8,mode:n="auto"}){let s=E.use.theme(),r=k.use.fetchMeta(),a=E.use.setTheme(),l=t?.light,u=t?.dark,c=l?.neutral||"#fafafa",S=l?.background||"#fff",W=l?.foreground||"#000",b={...Y("primary","dark",u?.primary),...Y("error","dark",u?.error),...Y("warning","dark",u?.warning),...Y("success","dark",u?.success),...Y("neutral","dark",u?.neutral),surface:u?.surface,background:u?.background,foreground:u?.foreground},T={surface:l?.surface||"#fff",...Y("primary","light",l?.primary||"#5FA425"),...Y("error","light",l?.error||"#FF0000"),...Y("warning","light",l?.warning||"#F5A623"),...Y("success","light",l?.success||"#0070F3"),...Y("neutral","light",c),background:S,foreground:W},y=Tn({colors:T,radii:{5:`${o}px`},shadows:{s:`0px 3px 5px 3px ${l?.neutral||"#f0f2f5"} ,0px 6px 10px 3px ${l?.neutral||"#f0f2f5"}, 0px 1px 18px 3px ${l?.neutral||"#f0f2f5"}`}}),m=Tn({colors:{...T,...Y("neutral","dark","#111111"),foreground:S,background:W,surface:"#000",...JSON.parse(JSON.stringify(b))},radii:{5:`${o}px`},shadows:{s:`0px 3px 5px 3px ${u?.neutral||"#222"}, 0px 6px 10px 3px ${u?.neutral||"#222"}, 0px 1px 18px 3px ${u?.neutral||"#222"}`}}),[g,d]=Oi("light");yn(()=>{(async()=>await r())();let h=i(C=>{C.matches?d("dark"):d("light")},"switchTheme");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&d("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",h),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",h)}},[]),yn(()=>{n!=="auto"&&a(n)},[n]);let w=Bt(e);return Li(()=>{let{classList:h}=document.body;w&&h.remove(`font_${w.replace(/ /g,"")}`),h.add(`font_${e.replace(/ /g,"")}`)},[e]),{activeTheme:i(()=>s==="auto"?g==="dark"?m:y:s==="dark"?m:y,"getActiveTheme")()}}i(wn,"useTheme");import{isEvmBlockchain as sa}from"rango-sdk";import{useTranslation as Ui}from"react-i18next";function vt(){let{i18n:t}=Ui(),e=t?.language||"en";return{changeLanguage:i(n=>{e!==n&&t.changeLanguage(n)},"changeLanguage"),currentLanguage:e}}i(vt,"useSelectLanguage");import qi from"i18next";import{initReactI18next as $i}from"react-i18next";var kn={swap:"SWAP","Connect Wallet":"Connect Wallet","Powered By":"Powered By",From:"You sell",To:"You receive",Balance:"Balance",Max:"Max",Chain:"Chain",Token:"Token",Source:"Source",Destination:"Destination","Select Wallet":"Connect Your Wallet"};var Cn={swap:"TAKAS","Select Wallet":"C\xFCzdan Se\xE7","Powered By":"Taraf\u0131ndan desteklenmektedir","Connect Wallet":"C\xFCzdan\u0131 Ba\u011Fla",From:"\u0130tibaren",To:"\u0130le",Max:"maks.",Chain:"Zincir",Token:"Jeton"};import Vi from"i18next-http-backend";import Hi from"i18next-browser-languagedetector";var Gi=["en","tr"];qi.use(Vi).use(Hi).use($i).init({resources:{en:{translation:kn},tr:{translation:Cn}},fallbackLng:"en",debug:!0,whitelist:Gi});import zi,{useMemo as Ki}from"react";import{Provider as ji}from"@rango-dev/queue-manager-react";import{makeQueueDefinition as Qi,checkWaitingForNetworkChange as Yi}from"@rango-dev/queue-manager-rango-preset";import{useWallets as Zi}from"@rango-dev/wallets-core";import{convertEvmBlockchainMetaToEvmChainInfo as Xi}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Ji}from"rango-types";function ea(t){let{providers:e,getSigners:o,state:n,connect:s,canSwitchNetworkTo:r,getWalletInfo:a}=Zi(),l=Ki(()=>Qi({API_KEY:xe("API_KEY")}),[]),u=P.use.getOneOfWalletsDetails(),{blockchains:c}=k.use.meta(),S=P.use.connectedWallets(),W={blockchains:S.map(h=>({accounts:[h],name:h.chain}))},b=i((h,C)=>{if(r(h,C))return s(h,C)},"switchNetwork"),T=i(h=>!!a(h).mobileWallet,"isMobileWallet"),y=c.filter(h=>h.enabled).reduce((h,C)=>(h[C.name]=C,h),{}),m=c.filter(Ji),g=i(h=>{let{supportedChains:C}=a(h);return Ee(C)},"getSupportedChainNames"),d=e(),w=i(h=>{let C=h.swap?.steps[h.swap.steps.length-1],F=h.step?.outputAmount||"",I=h.step||C;if(h.eventType==="task_completed"||h.eventType==="step_completed_with_output"&&C?.id!==h.step?.id||F){let O=S.find(B=>B.chain===I?.fromBlockchain),V=I?.fromBlockchain!==I?.toBlockchain&&S.find(B=>B.chain===I?.toBlockchain);O&&u(O),V&&u(V)}},"notifier"),x={meta:{blockchains:y,evmBasedChains:m,evmNetworkChainInfo:Xi(m),getSupportedChainNames:g},getSigners:o,wallets:W,providers:d,switchNetwork:b,canSwitchNetworkTo:r,connect:s,state:n,isMobileWallet:T,notifier:w};return zi.createElement(ji,{queuesDefs:[l],context:x,onPersistedDataLoaded:h=>{Yi(h)},isPaused:!1},t.children)}i(ea,"QueueManager");var bn=ea;var ia=oa("div",{width:"100%",display:"flex",justifyContent:"center",alignItems:"center"}),aa=i(({config:t})=>{Sn(t?.theme?.fontFamily||"Roboto");let{activeTheme:e}=wn({...t?.theme}),{blockchains:o}=k.use.meta(),n=P.use.disconnectWallet(),s=P.use.connectWallet(),{changeLanguage:r}=vt(),a=P.use.clearConnectedWallet(),[l,u]=An(""),[c,S]=An(),W=_.use.currentPage(),b=o.filter(sa).map(m=>m.name);na(()=>{t?.apiKey&&$t({API_KEY:t?.apiKey})},[t]);let T=i((m,g,d,w,x)=>{if(g===Et.ACCOUNTS)if(d){let h=Ee(x),C=Yt(m,d,b,h);s(C)}else n(m);if(g===Et.ACCOUNTS&&w.connected){let h=`${m}-${w.network}-${d}`;w.connected&&u(h)}if(g===Et.NETWORK&&w.network){let h=`${m}-${w.network}`;u(h)}},"onUpdateState"),y=Pt();return Wn(()=>{let m=t?.wallets;a(),y=m?Pt().filter(g=>{let d=g.config.type;return m.find(w=>w===d)}):Pt()},[t?.wallets]),Wn(()=>{r(t?.language||"en")},[t?.language]),he.createElement(ra,{allBlockChains:o,providers:y,onUpdateState:T},he.createElement(ia,{id:"swap-container",className:e},he.createElement(bn,null,he.createElement(ta,{fixedHeight:W!==f.home},he.createElement(ko,{lastConnectedWallet:l,disconnectedWallet:c,clearDisconnectedWallet:()=>{S(void 0)}},he.createElement(hn,{config:t}))))))},"Widget");export{aa as Widget};
1
+ var Un=Object.defineProperty;var i=(t,e)=>Un(t,"name",{value:e,configurable:!0});import{SwapContainer as fa,styled as ga}from"@rango-dev/ui";import ie,{useContext as ha,useEffect as En,useMemo as Sa,useState as Pn}from"react";import _e,{Fragment as Sr}from"react";import{MemoryRouter as Tr,useInRouterContext as yr}from"react-router";import{useQueueManager as Cr}from"@rango-dev/queue-manager-rango-preset";import{useEffect as st,useRef as it}from"react";import{createSearchParams as fr,useLocation as gr,useSearchParams as hr}from"react-router-dom";import{create as ur}from"zustand";import ne from"bignumber.js";import Dn from"bignumber.js";var D=new Dn(0);import Ea from"bignumber.js";function G(t){return Array.from(new Set(t))}i(G,"removeDuplicateFrom");function je(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(je,"areEqual");function Mt(t,e){let o;return n;function n(...s){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...s)},e)}}i(Mt,"debounce");import{BigNumber as Ft}from"bignumber.js";var Ot=i(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),A=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Ft(t),s=1,r=1e3;for(let a=0;a<60;a++)if(new Ft(n.toFixed(a,s)).eq(n)){r=a;break}if(n.gte(1e4))return n.toFormat(0,s);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,1))),s);if(n.gte(1))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,2))),s);if(n.gte(.01))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,4))),s);for(let a=e||4;a<17;a++)if(n.gte(Math.pow(10,-a)))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,a))),s);return n.isEqualTo(0)?"0":n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,8))),s)},"numberToString");var Lt=i(t=>t?.result?.swaps?.reduce((e,o)=>e+o.estimatedTimeInSeconds,0)||0,"totalArrivalTime");var Ae=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Qe(t,e,o){return o&&t.find(n=>{let s=e?.split("--");return s?.length===1?n.symbol===s[0]&&n.address===null&&n.blockchain===o.name:n.symbol===s?.[0]&&n.address===s?.[1]&&n.blockchain===o.name})||null}i(Qe,"searchParamsToToken");function Ut(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(Ut,"getBestRouteToTokenUsdPrice");function Ye(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}i(Ye,"isNumberOfSwapsChanged");function Ze(t,e){let o=t.result?.swaps.map(s=>s.swapperId)||[],n=e.result?.swaps.map(s=>s.swapperId)||[];return!je(o,n)}i(Ze,"isRouteSwappersUpdated");function Xe(t,e){let o=t.result?.swaps.map(s=>s.to.symbol)||[],n=e.result?.swaps.map(s=>s.to.symbol)||[];return!je(o,n)}i(Xe,"isRouteInternalCoinsUpdated");function Dt(t,e){return Ye(t,e)||Ze(t,e)||Xe(t,e)}i(Dt,"isRouteChanged");function _t(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(_t,"getRequiredBalanceOfWallet");function Je(t){if(t.store==="bestRoute"){let{prevState:e,currentState:o}=t;return!!o.fromToken&&!!o.toToken&&(e.fromChain?.name!==o.fromChain?.name||e.toChain?.name!==o.toChain?.name||e.fromToken?.symbol!==o.fromToken?.symbol||e.toToken?.symbol!==o.toToken?.symbol||e.fromToken?.blockchain!==e.fromToken?.blockchain||e.toToken?.blockchain!==o.toToken?.blockchain||e.fromToken?.address!==o.fromToken?.address||e.toToken?.address!==o.toToken?.address||e.inputAmount!==o.inputAmount)}else if(t.store==="settings"){let{prevState:e,currentState:o}=t;return e.slippage!==o.slippage||e.customSlippage!==o.customSlippage||e.disabledLiquiditySources?.length!==o.disabledLiquiditySources?.length||e.infiniteApprove||o.infiniteApprove}return!1}i(Je,"isRouteParametersChanged");function qt(t){if(!t)return null;let e=(t.result?.swaps||[]).map(o=>({...o,fromAmount:A(o.fromAmount,6,6),toAmount:A(o.toAmount,6,6)}));return{...t,...t.result&&{result:{...t.result,swaps:e}}}}i(qt,"getFormatedBestRoute");function $t(t){let e=t.steps.map(o=>({...o,feeInUsd:A(o.feeInUsd,4,4),outputAmount:A(o.outputAmount,6,6),expectedOutputAmountHumanReadable:A(o.expectedOutputAmountHumanReadable,6,6)}));return{...t,inputAmount:A(t.inputAmount,6,6),steps:e}}i($t,"getFormatedPendingSwap");var Vt=i((t,e)=>t?"loading":e?"failed":"success","getBestRouteStatus");var _n=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"),Z=_n;import{subscribeWithSelector as cr}from"zustand/middleware";import{RangoClient as $n}from"rango-sdk";var qn="c6381a79-2817-4602-83bf-6a641a409e32",et={API_KEY:qn};function xe(t){return et[t]}i(xe,"getConfig");function Ht(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),et=e,et}i(Ht,"initConfig");var Be,se=i(()=>Be||(Be=new $n(xe("API_KEY")),Be),"httpService");import{create as Hn}from"zustand";import{persist as Gn,subscribeWithSelector as zn}from"zustand/middleware";var Gt=[.5,1,3,5,8,13,20],zt=1,Kt=5,jt=100,Qt=0;import{create as Vn}from"zustand";var C=Z(Vn()(t=>({meta:{blockchains:[],popularTokens:[],swappers:[],tokens:[]},loadingStatus:"loading",fetchMeta:async()=>{try{let e=await se().getAllMetadata(),o=G(e.tokens.map(s=>s.blockchain)),n=e.blockchains.filter(s=>s.enabled&&o.includes(s.name));e.blockchains=n.sort((s,r)=>s.sort-r.sort),t({meta:e,loadingStatus:"success"})}catch{t({loadingStatus:"failed"})}}})));var P=Z(Hn()(Gn(zn(t=>({slippage:zt,customSlippage:null,infiniteApprove:!1,affiliateRef:null,disabledLiquiditySources:[],theme:"auto",setSlippage:e=>t(()=>({slippage:e})),setCustomSlippage:e=>t(()=>({customSlippage:e})),setAffiliateRef:e=>t(()=>({affiliateRef:e})),toggleAllLiquiditySources:()=>t(e=>{let{swappers:o}=C.getState().meta,n=G(o.map(s=>s.swapperGroup));return n.length===e.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:n}}),toggleInfiniteApprove:()=>t(e=>({infiniteApprove:!e.infiniteApprove})),toggleLiquiditySource:e=>t(o=>o.disabledLiquiditySources.includes(e)?{disabledLiquiditySources:o.disabledLiquiditySources.filter(n=>n!=e)}:{disabledLiquiditySources:o.disabledLiquiditySources.concat(e)}),setTheme:e=>t(()=>({theme:e}))})),{name:"user-settings"})));import $ from"bignumber.js";import{getCosmosExperimentalChainInfo as Kn,isEvmAddress as jn,KEPLR_COMPATIBLE_WALLETS as Qn,detectInstallLink as Yn,WalletTypes as Zn,Networks as Yt}from"@rango-dev/wallets-shared";import{WalletState as X}from"@rango-dev/ui";import{isCosmosBlockchain as Xn}from"rango-types";import{readAccountAddress as Jn}from"@rango-dev/wallets-core";import ve from"bignumber.js";function er(t){switch(!0){case t.connected:return X.CONNECTED;case t.connecting:return X.CONNECTING;case!t.installed:return X.NOT_INSTALLED;default:return X.DISCONNECTED}}i(er,"getStateWallet");var tr=[Zn.LEAP];function Zt(t,e,o){return o.filter(n=>!tr.includes(n)).map(n=>{let{name:s,img:r,installLink:a,showOnMobile:l}=e(n),u=er(t(n));return{name:s,image:r,installLink:Yn(a),state:u,type:n,showOnMobile:!(typeof l>"u")}})}i(Zt,"getlistWallet");function Ee(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Ee,"walletAndSupportedChainsNames");function Xt(t,e,o,n){let s=[];function r(l,u){if(!!!s.find(g=>g.chain===l)){let g={address:u,chain:l,walletType:t};s.push(g)}}i(r,"addAccount");let a=n||[];return e.forEach(l=>{let{address:u,network:c}=Jn(l),g=a.length>0,k=a.includes(c),b=c===Yt.Unknown;if(g&&!k&&!b)return;let y=c===Yt.Unknown&&jn(u);if(b&&!y)return;o.includes(c)||y?a.filter(m=>o.includes(m)).forEach(m=>{r(m,u.toLowerCase())}):r(c,u)}),s}i(Xt,"prepareAccountsForWalletStore");function ge(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,s=o.to.blockchain,r=e[e.length-1];n!=r&&e.push(n),r=e[e.length-1],s!=r&&e.push(s)}),e}i(ge,"getRequiredChains");function Pe(t,e,o,n){return t.map(r=>({address:r.address,walletType:r.walletType,chain:r.chain,image:o(r.walletType).img,name:o(r.walletType).name,selected:n===r.chain?!1:!!e.find(a=>a.chain===r.chain&&a.walletType===r.walletType)}))}i(Pe,"getSelectableWallets");function fe(t,e,o,n){if(t.length===0)return null;let s=t.filter(r=>r.chain===e);return s.length===0?null:s.map(r=>r.balances?.find(a=>n!==null&&a.address===n||n===null&&a.address===n&&a.symbol===o)||null).filter(r=>r!==null).sort((r,a)=>parseFloat(a?.amount||"0")-parseFloat(r?.amount||"1")).find(()=>!0)||null}i(fe,"getBalanceFromWallet");function Ie(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Ie,"isAccountAndWalletMatched");function Jt(t,e,o){let{address:n,blockChain:s,explorerUrl:r,balances:a=[]}=e;return{address:n,chain:s,loading:!1,error:!1,explorerUrl:r,walletType:t.walletType,balances:a?.map(l=>({chain:s,symbol:l.asset.symbol,ticker:l.asset.symbol,address:l.asset.address||null,rawAmount:l.amount.amount,decimal:l.amount.decimals,amount:new ve(l.amount.amount).shiftedBy(-l.amount.decimals).toFixed(),logo:"",usdPrice:nr(s,l.asset.symbol,l.asset.address,o)||null}))||[]}}i(Jt,"makeBalanceFor");function eo(t){return{...t,loading:!1,error:!0}}i(eo,"resetConnectedWalletState");var to=i(t=>{let e=new Set,n=t?.reduce((r,a)=>r.findIndex(l=>l.address===a.address&&l.chain===a.chain)===-1?[...r,a]:r,[])?.map(r=>{let a={name:r.chain,accounts:[]};return e.has(r.address)||e.add(r.address),e.forEach(l=>{r.address===l&&a.accounts.push(r)}),a}),s=A(n?.flatMap(r=>r.accounts)?.flatMap(r=>r?.balances)?.map(r=>new ve(r?.amount||D).multipliedBy(r?.usdPrice||0))?.reduce((r,a)=>r.plus(a),D)||D).toString();return or(s)},"calculateWalletUsdValue");function or(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(or,"numberWithThousandSeperator");var Ne=i(t=>!t.some(o=>o.balance)?t.filter(o=>!o.address).concat(t.filter(o=>o.address&&!o.isSecondaryCoin),t.filter(o=>o.isSecondaryCoin)):t.filter(o=>!!o.balance).sort((o,n)=>parseFloat(n.balance?.usdValue||"0")-parseFloat(o.balance?.usdValue||"0")).concat(t.filter(o=>!o.balance&&!o.isSecondaryCoin),t.filter(o=>!o.balance&&o.isSecondaryCoin)),"sortTokens"),nr=i((t,e,o,n)=>n?.find(r=>r.blockchain===t&&r.symbol?.toUpperCase()===e?.toUpperCase()&&r.address===o)?.usdPrice||null,"getUsdPrice"),oo=i((t,e)=>{let o=Kn(Object.entries(t).map(([,n])=>n).filter(Xn));return o&&!!o[e]},"isExperimentalChain"),tt=i(t=>{let e=new Set(t.map(o=>o.walletType));return Qn.filter(o=>e.has(o))},"getKeplrCompatibleConnectedWallets");function Re(t,e){return t.map(({balance:o,...n})=>{let s=A(new ve(fe(e,n.blockchain,n.symbol,n.address)?.amount||D)),r="";return n.usdPrice&&(r=A(new ve(fe(e,n.blockchain,n.symbol,n.address)?.amount||D).multipliedBy(n.usdPrice))),{...n,...s!=="0"&&{balance:{amount:s,usdValue:r}}}})}i(Re,"getTokensWithBalance");function Se(t,e,o,n){if(t?.name===n[0]?.name)return n;let r=e.filter(a=>a.blockchain===t?.name);return Ne(Re(r,o))}i(Se,"getSortedTokens");function j(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(j,"tokensAreEqual");function ot(t,e){let o,n=t[0],s=t[1];return t.length===1?o=n:j(n,e)?o=s:o=n,o}i(ot,"getDefaultToken");function no(t){return t.sort((e,o)=>+(o.state===X.CONNECTED)-+(e.state===X.CONNECTED)||+(o.state===X.DISCONNECTED||o.state===X.CONNECTING)-+(e.state===X.DISCONNECTED||e.state===X.CONNECTING))}i(no,"sortWalletsBasedOnState");import{PendingSwapNetworkStatus as Me}from"@rango-dev/queue-manager-rango-preset";function Fe(t,e){return t.lte(D)||e.lte(D)?0:e.div(t).minus(1).multipliedBy(100)}i(Fe,"getOutputRatio");function Oe(t,e){return parseInt(e.toFixed(2)||"0")<=-10&&t.gte(new $(400))||parseInt(e.toFixed(2)||"0")<=-5&&t.gte(new $(1e3))}i(Oe,"outputRatioHasWarning");function Le(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new $(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new $(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(Le,"hasLimitError");function so(t){if(!t)return{swap:null,fromAmountRangeError:"",recommendation:""};let e=(t?.result?.swaps||[]).filter(l=>{let u=l.fromAmountMinValue?new $(l.fromAmountMinValue):null,c=l.fromAmountMaxValue?new $(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?u?.gte(l.fromAmount)||c?.lte(l.fromAmount):u?.gt(l.fromAmount)||c?.lt(l.fromAmount)})[0];if(!e)return{swap:null,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new $(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new $(e.fromAmountMaxValue):null,s=e.fromAmountRestrictionType==="EXCLUSIVE",r="",a="";return!s&&o&&o.gt(e.fromAmount)?(r=`Required: >= ${A(o)} ${e.from.symbol}`,a="Increase your swap amount"):s&&o&&o.gte(e.fromAmount)&&(r=`Required: > ${A(o)} ${e.from.symbol}`,a="Increase your swap amount"),!s&&n&&n.lt(e.fromAmount)?(r=`Required: <= ${A(n)} ${e.from.symbol}`,a="Decrease your swap amount"):s&&n&&n.lte(e.fromAmount)&&(r=`Required: < ${A(n)} ${e.from.symbol}`,a="Decrease your swap amount"),{swap:e,fromAmountRangeError:r,recommendation:a}}i(so,"LimitErrorMessage");function io(t,e,o,n,s,r,a,l,u){return t!=="success"?{title:"Connect Wallet",disabled:!0}:e.length==0?{title:"Connect Wallet",disabled:!1}:o?{title:"Finding Best Route...",disabled:!0}:!u||u==="0"?{title:"Enter an amount",disabled:!0}:!n||!n.result?{title:"Swap",disabled:!0}:s?{title:"Limit Error",disabled:!0}:r?{title:"Price impact is too high!",disabled:!0}:a?{title:"USD price is unknown, price impact might be high!",disabled:!1,hasWarning:!0}:l?{title:"The route goes through Ethereum. Continue?",disabled:!1,hasWarning:!0}:{title:"Swap",disabled:!1}}i(io,"getSwapButtonState");function ao(t,e,o,n){return!((o.lte(D)||n.lte(D))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}i(ao,"canComputePriceImpact");function ro(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,s=o.to.blockchain,r=e[e.length-1];n!=r&&e.push(n),r=e[e.length-1],s!=r&&e.push(s)}),e}i(ro,"requiredWallets");var rr=i((t,e,o,n)=>n?.find(r=>r.blockchain===t&&r.symbol?.toUpperCase()===e?.toUpperCase()&&r.address===o)?.usdPrice||null,"getUsdPrice");function sr(t,e){let o=D;for(let n=0;n<t.fee.length;n++){let s=t.fee[n];if(s.expenseType==="DECREASE_FROM_OUTPUT")continue;let r=rr(s.asset.blockchain,s.asset.symbol,s.asset.address,e);o=o.plus(new $(s.amount).multipliedBy(r||0))}return o}i(sr,"getUsdFeeOfStep");function Ue(t,e){return t?.result?.swaps.reduce((o,n)=>o.plus(sr(n,e)),D)||null}i(Ue,"getTotalFeeInUsd");function lo(t){return t?!t.lt(new $(30)):!1}i(lo,"hasHighFee");function uo(t){return t.result?.swaps.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(uo,"getMinRequiredSlippage");function co(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(co,"hasProperSlippage");function De(t,e,o,n,s,r,a,l,u,c){let g=s.reduce((f,S)=>(f[S.chain]=S.address,f),{}),k=[];n.forEach(f=>{let S=k.find(m=>m.blockchain===f.chain);S?S.addresses.push(f.address):k.push({blockchain:f.chain,addresses:[f.address]})});let b=!!u,h=G((u?.result?.swaps||[]).reduce((f,S)=>(f.push(S.from.blockchain,S.to.blockchain),f),[]));return{amount:o.toString(),affiliateRef:l,checkPrerequisites:b,from:{address:t.address,blockchain:t.blockchain,symbol:t.symbol},to:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},connectedWallets:k,destination:c||void 0,selectedWallets:g,swapperGroups:r,swappersGroupsExclude:!0,slippage:a.toString(),...b&&{blockchains:h}}}i(De,"createBestRouteRequestBody");function nt(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(nt,"getWalletsForNewSwap");function he(t){return t?.result?.outputAmount||null}i(he,"getRouteOutputAmount");function Te(t,e){return!t||!e?null:new $(e).div(new $(t)).minus(1).multipliedBy(100)}i(Te,"getPercentageChange");function po(t,e){let o=he(t),n=he(e);if(!o||!n)return!1;let s=Te(o,n);return s?s.toNumber()<=-1:!0}i(po,"isOutputAmountChangedALot");function mo(t,e){let o=t.validationStatus,n=ge(t);return e.sort((r,a)=>n.indexOf(r.chain)-n.indexOf(a.chain)).flatMap(r=>_t(r,o)||[]).filter(r=>!r.ok).map(r=>{let a=r.asset.symbol,l=A(new $(r.currentAmount.amount).shiftedBy(-r.currentAmount.decimals),8),u=A(new $(r.requiredAmount.amount).shiftedBy(-r.requiredAmount.decimals),8),c="";return r.reason==="FEE"&&(c=" for network fee"),r.reason==="INPUT_ASSET"&&(c=" for swap"),r.reason==="FEE_AND_INPUT_ASSET"&&(c=" for input and network fee"),`Needs \u2248 ${u} ${a}${c}, but you have ${l} ${a} in your ${r.asset.blockchain} wallet.`})}i(mo,"getBalanceWarnings");function fo(t,e){return(t?new $(t):D).multipliedBy(e||0)}i(fo,"calcOutputUsdValue");function rt(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Me.NetworkChanged}i(rt,"isNetworkStatusInWarningState");function go(t,e){let o="bellow button or",n=t.extraMessage,s=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),rt(e))switch(n=t.networkStatusExtraMessage||"",s=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Me.WaitingForConnectingWallet:n=n||"Waiting for connecting wallet";break;case Me.WaitingForQueue:n=n||"Waiting for other running tasks to be finished";break;case Me.WaitingForNetworkChange:n=n||"Waiting for changing wallet network";break}s=s||"",n=n||"";let a=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:s,long:a}}}i(go,"getSwapMessages");function ho(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(ho,"getLastConvertedTokenInFailedSwap");function So(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}i(So,"shouldRetrySwap");function To(t,e){return(C.getState().meta.blockchains.find(s=>s.name===t)?.addressPatterns||[]).filter(s=>new RegExp(s).test(e)).length>0}i(To,"isValidCustomDestination");function yo(t,e,o,n,s){return t||!e&&!ro(n).every(r=>s.map(a=>a.chain).includes(r))||!!e&&!o||!!e&&!!o&&!ro(n).filter(r=>r!==e).every(r=>s.map(a=>a.chain).includes(r))}i(yo,"confirmSwapDisabled");import{create as ir}from"zustand";import{subscribeWithSelector as ar}from"zustand/middleware";import{shallow as lr}from"zustand/shallow";var B=Z(ir()(ar((t,e)=>({connectedWallets:[],selectedWallets:[],customDestination:"",connectWallet:o=>{let n=e().getOneOfWalletsDetails;t(s=>({connectedWallets:s.connectedWallets.filter(r=>r.walletType!==o[0].walletType).concat(o.map(r=>({balances:[],address:r.address,chain:r.chain,loading:!0,walletType:r.walletType,error:!1,explorerUrl:null})))})),o.forEach(async s=>n(s))},disconnectWallet:o=>{t(n=>({connectedWallets:n.connectedWallets.filter(s=>s.walletType!==o),selectedWallets:n.selectedWallets.filter(s=>s.walletType!=o)}))},initSelectedWallets:()=>t(o=>{let n=ge(p.getState().bestRoute),s=o.connectedWallets,r=[];return n.forEach(a=>{if(!!!o.selectedWallets.find(u=>u.chain===a)){let u=s.find(c=>c.chain===a);u&&r.push({address:u.address,chain:u.chain,walletType:u.walletType})}}),{selectedWallets:o.selectedWallets.concat(r)}}),setSelectedWallet:o=>t(n=>({selectedWallets:n.selectedWallets.filter(s=>s.chain!==o.chain).concat({chain:o.chain,address:o.address,walletType:o.walletType})})),setCustomDestination:o=>t(()=>({customDestination:o})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getOneOfWalletsDetails:async o=>{let n=C.getState().meta.tokens;t(s=>({connectedWallets:s.connectedWallets.map(r=>Ie(o,r)?{...r,loading:!0}:r)}));try{let r=(await se().getWalletsDetails([{address:o.address,blockchain:o.chain}])).wallets[0];if(r)t(a=>({connectedWallets:a.connectedWallets.map(l=>Ie(o,l)?Jt(o,r,n):l)}));else throw new Error("Wallet not found")}catch{t(r=>({connectedWallets:r.connectedWallets.map(a=>Ie(o,a)?eo(a):a)}))}}}))));B.subscribe(t=>t.connectedWallets,t=>{p.setState(({sourceTokens:e,destinationTokens:o})=>{let n=Re(e,t),s=Re(o,t);return{sourceTokens:Ne(n),destinationTokens:Ne(s)}})},{equalityFn:lr});var Co=i(t=>!!t.connectedWallets.find(e=>e.loading),"fetchingBalanceSelector");var ye=i((t,e)=>new ne(e||D).multipliedBy(t?.usdPrice||0),"getUsdValue"),p=Z(ur()(cr(t=>({fromChain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new ne(0),outputUsdValue:new ne(0),toChain:null,toToken:null,bestRoute:null,loading:!1,error:"",sourceTokens:[],destinationTokens:[],setBestRoute:e=>t(o=>{let n=null,s=D;return Ae(o.inputAmount)?(e&&(n=e.result?.outputAmount?new ne(e.result?.outputAmount):null,s=fo(e.result?.outputAmount,Ut(e)||o.toToken?.usdPrice)),{bestRoute:e,...!!e&&{outputAmount:n,outputUsdValue:s}}):{}}),resetRoute:()=>t(()=>({loading:!0,error:"",bestRoute:null,outputAmount:null,outputUsdValue:new ne(0)})),setFromChain:(e,o)=>{t(n=>{if(n.fromChain?.name===e?.name)return{};let s=C.getState().meta.tokens,r=B.getState().connectedWallets,a=Se(e,s,r,n.destinationTokens),l=ot(a,n.toToken);return{fromChain:e,sourceTokens:a,...o&&{fromToken:l},...!!n.inputAmount&&{inputUsdValue:ye(l,n.inputAmount)}}})},setFromToken:e=>t(o=>({fromToken:e,...!!o.inputAmount&&{inputUsdValue:ye(e,o.inputAmount)}})),setToChain:(e,o)=>{t(n=>{if(n.toChain?.name===e?.name)return{};let s=C.getState().meta.tokens,r=B.getState().connectedWallets,a=Se(e,s,r,n.destinationTokens);return{toChain:e,destinationTokens:a,...o&&{toToken:ot(a,n.fromToken)}}})},setToToken:e=>t(()=>({toToken:e})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new ne(0),outputUsdValue:new ne(0),bestRoute:null,error:""},...!!o.fromToken&&{inputUsdValue:ye(o.fromToken,e)}}))},retry:e=>{let{tokens:o,blockchains:n}=C.getState().meta,s=B.getState().connectedWallets,r=e.status==="failed"?e.steps.findIndex(f=>f.status==="failed"):null;if(r===null||r<0)return;let a=e.steps[0],l=e.steps[e.steps.length-1],u=n.find(f=>f.name===a.fromBlockchain)||null,c=n.find(f=>f.name===l.toBlockchain)||null,g=o.find(f=>j(f,{blockchain:a.fromBlockchain,symbol:a.fromSymbol,address:a.fromSymbolAddress})),k=o.find(f=>j(f,{blockchain:l.toBlockchain,symbol:l.toSymbol,address:l.toSymbolAddress})),b=Se(u,o,s,[]),h=Se(c,o,s,[]),y=e.inputAmount;t({fromChain:u,fromToken:g,inputAmount:y,outputAmount:null,inputUsdValue:ye(g||null,y),outputUsdValue:new ne(0),toChain:c,toToken:k,bestRoute:null,loading:!1,error:"",sourceTokens:b,destinationTokens:h})},switchFromAndTo:()=>t(e=>({fromChain:e.toChain,fromToken:e.toToken,toChain:e.fromChain,toToken:e.fromToken,sourceTokens:e.destinationTokens,destinationTokens:e.sourceTokens,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:ye(e.toToken,e.outputAmount?.toString()||"")}))})))),pr=i((t,e)=>{let o=null,n=i(()=>{let{fromToken:a,toToken:l,inputAmount:u,resetRoute:c}=t.getState(),{slippage:g,customSlippage:k,disabledLiquiditySources:b,affiliateRef:h}=e.getState();if(!a||!l||!Ae(u))return;o?.abort(),o=new AbortController;let f=De(a,l,u,[],[],b,k||g,h);t.getState().loading||c(),se().getBestRoute(f,{signal:o.signal}).then(S=>{let{setBestRoute:m}=t.getState();m(S),t.setState({loading:!1}),o=null}).catch(S=>{S.code!=="ERR_CANCELED"&&t.setState({error:S.message,loading:!1})})},"fetchBestRoute"),s=Mt(n,600),r=i(()=>{let{fromToken:a,toToken:l,inputAmount:u,inputUsdValue:c,resetRoute:g}=p.getState();if(!Ae(u)||c.eq(0))return t.setState({loading:!1});if(j(a,l))return t.setState({loading:!1,bestRoute:null,outputAmount:new ne(u),outputUsdValue:c});t.getState().loading||g(),s()},"bestRouteParamsListener");return p.subscribe(a=>({fromChain:a.fromChain,fromToken:a.fromToken,toChain:a.toChain,toToken:a.toToken,inputAmount:a.inputAmount}),r,{equalityFn:(a,l)=>!Je({store:"bestRoute",prevState:a,currentState:l})}),P.subscribe(a=>({slippage:a.slippage,customSlippage:a.customSlippage,disabledLiquiditySources:a.disabledLiquiditySources,infiniteApprove:a.infiniteApprove}),r,{equalityFn:(a,l)=>!Je({store:"settings",prevState:a,currentState:l})}),{fetchBestRoute:n}},"bestRoute"),{fetchBestRoute:wo}=pr(p,P);var d={home:"/",fromChain:"from-chain",fromToken:"from-token",toChain:"to-chain",toToken:"to-token",settings:"settings",liquiditySources:"/settings/liquidity-sources",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:"swaps/:requestId"};import{create as mr}from"zustand";var _=Z(mr()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",toggleConnectWalletsButton:()=>t(e=>({connectWalletsButtonDisabled:!e.connectWalletsButtonDisabled})),setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function ko(){let t=it(!0),[e,o]=hr(),n=gr(),s=it(n.search),r=it({}),a=p.use.fromChain(),l=p.use.toChain(),u=p.use.fromToken(),c=p.use.toToken(),g=p.use.setFromChain(),k=p.use.setFromToken(),b=p.use.setToChain(),h=p.use.setToToken(),y=p.use.inputAmount(),f=p.use.setInputAmount(),S=C.use.loadingStatus(),{blockchains:m,tokens:W}=C.use.meta(),E=_.use.setSelectedSwap();return st(()=>{let T={};fr(s.current).forEach((F,N)=>{T[N]=F}),r.current=T;let w=n.pathname.split(d.swaps+"/")[1]||null;w&&E(w)},[]),st(()=>{if(!t.current){let T="",w="",F="",N="",O="";if(S!=="success")T=r.current["fromChain"],w=r.current["fromToken"],F=r.current["toChain"],N=r.current["toToken"],O=r.current["fromAmount"]||y;else{if(n.state==="redirect")return;T=a?.name||"",w=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),F=l?.name||"",N=(c?.symbol||"")+(c?.address?`--${c?.address}`:""),O=y}o({...T&&{["fromChain"]:T},...w&&{["fromToken"]:w},...F&&{["toChain"]:F},...N&&{["toToken"]:N},...O&&{["fromAmount"]:O.toString()}},{replace:!0})}t.current=!1},[n.pathname,y,a,u,l,c]),st(()=>{if(S==="success"){let T=e.get("fromChain"),w=e.get("fromToken"),F=e.get("toChain"),N=e.get("toToken"),O=e.get("fromAmount"),V=m.find(K=>K.name===T),x=Qe(W,w,V||null),I=m.find(K=>K.name===F),L=Qe(W,N,I||null);V&&(g(V),x&&k(x)),I&&(b(I),L&&h(L)),O&&f(O)}},[S]),null}i(ko,"UpdateUrl");import{useWallets as wr}from"@rango-dev/wallets-core";import{isEvmBlockchain as kr}from"rango-types";function bo({children:t,...e}){let o=yr(),n=o?Sr:Tr,{blockchains:s}=C.use.meta(),{canSwitchNetworkTo:r}=wr(),a=s.filter(kr);return Cr({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,notifier:()=>{},canSwitchNetworkTo:r}),_e.createElement(_e.Fragment,null,_e.createElement(n,null,t),o&&_e.createElement(ko,null))}i(bo,"AppRouter");import{Button as Pi,AddWalletIcon as Ii,Typography as Ni,styled as Bt,Spinner as Ri,Image as Mi}from"@rango-dev/ui";import z,{useEffect as ze}from"react";import{useNavigate as Fi}from"react-router-dom";import{useWallets as Oi}from"@rango-dev/wallets-core";import Q from"react";import{useRoutes as vi}from"react-router-dom";import H,{useEffect as Zr,useState as Do}from"react";import{useNavigate as Xr}from"react-router-dom";import{useWallets as Jr}from"@rango-dev/wallets-core";import{useInRouterContext as br,useNavigate as Wr}from"react-router-dom";function q(){let t=br(),e=Wr();return d,{navigateBackFrom:i(n=>{if(n===d.swapDetails)return e("/"+d.swaps,{replace:!0});!t||window.history.state&&window.history.state.idx>0?e(-1):[d.fromChain,d.fromToken,d.toChain,d.toToken,d.settings,d.wallets,d.swaps,d.confirmSwap].includes(n)?e(d.home,{replace:!0}):n===d.liquiditySources&&e("/"+d.settings,{replace:!0})},"navigateBackFrom")}}i(q,"useNavigateBack");import M from"react";import{Button as Wo,InfoCircleIcon as Ar,styled as qe,Typography as at,Divider as Ao,Image as xo}from"@rango-dev/ui";import{useTranslation as xr}from"react-i18next";var Br=qe("div",{display:"flex",flexDirection:"column",width:"100%",overflow:"hidden"}),vr=qe("div",{boxSizing:"border-box",borderRadius:"$5",padding:"$8 $16 $16 $16",variants:{type:{filled:{backgroundColor:"$neutral100"},outlined:{border:"1px solid $neutral100"}}},defaultVariants:{type:"filled"},".head":{display:"flex",justifyContent:"space-between",alignItems:"center",minHeight:"32px",".usd-value":{paddingLeft:"$8"}},".form":{display:"flex",width:"100%",padding:"$2 0",".selectors":{width:"35%","._text":{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},".amount":{width:"30%"}}}),Bo=qe("span",{width:"24px",height:"24px",backgroundColor:"$neutral100",borderRadius:"99999px"}),Er=qe("div",{windth:"100%",height:"$48",borderRadius:"$5",backgroundColor:"$surface",border:"1px solid transparent",position:"relative",display:"flex",alignItems:"center",paddingLeft:"$8",paddingRight:"$8"});function lt(t){let{chain:e,token:o,loadingStatus:n,percentageChange:s}=t,{t:r}=xr(),a=M.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"}},n==="failed"&&M.createElement(Ar,{color:"error",size:24}));return M.createElement(Br,null,M.createElement(vr,{type:"outlined"},M.createElement("div",{className:"head"},M.createElement(at,{variant:"body2",color:"neutral800"},t.label),M.createElement("div",null,s,t.usdValue&&M.createElement(at,{variant:"caption",color:"neutral600",className:"usd-value"},`$${A(t.usdValue)}`))),M.createElement("div",{className:"form"},M.createElement(Wo,{className:"selectors",variant:"outlined",loading:n==="loading",prefix:n==="success"&&e?M.createElement(xo,{src:e.logo,size:24}):M.createElement(Bo,null),suffix:a,align:"start",size:"large"},n==="success"&&e?e.displayName:r("Chain")),M.createElement(Ao,{size:12,direction:"horizontal"}),M.createElement(Wo,{className:"selectors",variant:"outlined",loading:n==="loading",prefix:n==="success"&&o?M.createElement(xo,{src:o.image,size:24}):M.createElement(Bo,null),suffix:a,size:"large",align:"start"},n==="success"&&o?o.symbol:r("Token")),M.createElement(Ao,{size:12,direction:"horizontal"}),M.createElement("div",{className:"amount"},M.createElement(Er,null,M.createElement(at,{variant:"h4"},t.amount))))))}i(lt,"TokenPreview");import{t as _o}from"i18next";import{Divider as qo,ConfirmSwap as es,LoadingFailedAlert as ts}from"@rango-dev/ui";import J from"react";import{styled as Pr,ChevronRightIcon as Ir,GasIcon as Nr,Divider as Rr}from"@rango-dev/ui";var Mr=Pr("div",{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"$8",borderRadius:"$5",backgroundColor:"$neutral100",color:"$neutral800",fontSize:"$12",".routes":{display:"flex",alignItems:"center"},".fee":{display:"flex",alignItems:"center"}});function Fr(t){if(!t.routes)return null;let e=t.routes.result?.swaps;return J.createElement(Mr,null,J.createElement("div",{className:"routes"},e?.map((o,n)=>{let s=n+1==e.length;return J.createElement(J.Fragment,{key:n},J.createElement("div",{className:"route"},o.from.symbol),J.createElement(Ir,{size:12}),s?J.createElement("div",{className:"route"},o.to.symbol):null)})),t.totalFee?J.createElement("div",{className:"fee"},J.createElement(Nr,{size:12}),J.createElement(Rr,{size:4,direction:"horizontal"}),"$",t.totalFee):null)}i(Fr,"RoutesOverview");var vo=Fr;import{useManager as os}from"@rango-dev/queue-manager-react";import{useEffect as Lr,useRef as ut,useState as ct}from"react";import pt from"bignumber.js";import{calculatePendingSwap as Eo}from"@rango-dev/queue-manager-rango-preset";function Io(){let t=p.use.fromToken(),e=p.use.toToken(),o=p.use.inputAmount(),n=p.use.bestRoute(),s=p.use.setBestRoute(),r=p.use.inputUsdValue(),a=P.use.affiliateRef(),l=B.use.connectedWallets(),u=B.use.customDestination(),c=B.use.selectedWallets(),g=C.use.meta(),k=P.use.customSlippage(),b=P.use.slippage(),h=P.use.disabledLiquiditySources(),y=k||b,f=ut(!1),S=ut(null),m=ut(null),[W,E]=ct(!1),[T,w]=ct([]),[F,N]=ct([]);return Lr(()=>()=>m.current?.abort(),[]),!t||!e||!o||!n?{loading:!1,warnings:[],errors:[],confirmSwap:null}:{loading:W,warnings:F,errors:T,confirmSwap:i(async()=>{if(f.current){let x={slippage:y.toString(),disabledSwappersGroups:h};return T.length>0&&w([]),F.length>0&&N([]),f.current=!1,S.current?Eo(o.toString(),S.current,nt(c),x,!1,g):void 0}m.current=new AbortController,E(!0);let V=De(t,e,o,l,c,h,y,a,n,u);try{let x=await se().getBestRoute(V,{signal:m.current?.signal});if(m.current=null,E(!1),!x.result||!new pt(x.requestAmount).isEqualTo(new pt(o||"-1"))){w(ue=>ue.concat({type:0}));return}let I={errors:[],warnings:[]};if(Dt(n,x)){s(x);let ue=new pt(x.result?.outputAmount||"0").multipliedBy(e.usdPrice||0),re=Fe(r,ue);Oe(r,re)?I.errors.push({type:1}):po(n,x)?I.warnings.push({type:3,newOutputAmount:A(he(x)),percentageChange:A(Te(he(n),he(x)),null,2)}):Xe(n,x)?I.warnings.push({type:2}):Ye(n,x)?I.warnings.push({type:0}):Ze(n,x)&&I.warnings.push({type:1})}let K=mo(x,c);K.length===0||I.errors.push({type:4,messages:K});let ae=uo(n);co(y.toString(),ae)||I.errors.push({type:3,minRequiredSlippage:ae});let le=I.errors.length===0,me=I.warnings.length===0;if((le||!le&&f.current)&&(me||!me&&f.current)){let ue={slippage:y.toString(),disabledSwappersGroups:h};return Eo(o.toString(),x,nt(c),ue,!1,g)}else f.current||(f.current=!0,w(I.errors),N(I.warnings),S.current=x);return}catch(x){if(x?.code==="ERR_CANCELED")return;let I=x?.response?.status;E(!1),w([{type:2,status:I}]);return}},"confirmSwap")}}i(Io,"useConfirmSwap");import Fo from"react";import{Divider as qr,Typography as $r,styled as Vr}from"@rango-dev/ui";import mt from"react";import Ur from"react";import{Button as Dr}from"@rango-dev/ui";import{useNavigate as _r}from"react-router-dom";function $e(){let t=_r();return Ur.createElement(Dr,{type:"primary",variant:"outlined",size:"small",onClick:()=>t("/"+d.settings)},"Change Slippage")}i($e,"ChangeSlippageButton");var Hr=Vr($r,{color:"$error500 !important"});function No({minRequiredSlippage:t}){return mt.createElement(Hr,{variant:"body2"},"We recommend you to increase slippage to at least \xA0",t,"\xA0 for this route.",mt.createElement(qr,{size:8}),mt.createElement($e,null))}i(No,"MinRequiredSlippage");import{Divider as Gr,styled as dt,Typography as Ro}from"@rango-dev/ui";import ce from"react";var zr=dt("ul",{padding:0,margin:0,variants:{showListStyle:{true:{paddingLeft:"$24"}}}}),Kr=dt("li",{variants:{showListStyle:{true:{listStyleType:"disc",listStylePosition:"outside"}}}}),jr=dt(Ro,{display:"block"});function Mo({messages:t}){let e=t.length>1;return ce.createElement(ce.Fragment,null,ce.createElement(Ro,{className:"title",variant:"title",color:"error"},"Insufficent Balance:"),ce.createElement(Gr,{size:8}),ce.createElement(zr,{showListStyle:e},t.map((o,n)=>ce.createElement(Kr,{showListStyle:e,key:n},ce.createElement(jr,{variant:"body2"},o)))))}i(Mo,"BalanceErrors");function ft(t){return t.flatMap(e=>{switch(e.type){case 0:return"No routes found. Please try again later.";case 2:return`Failed to confirm swap ${e.status?`'status': ${e.status})`:""}, please try again.`;case 1:return"Route updated and price impact is too high, try again later!";case 3:return Fo.createElement(No,{minRequiredSlippage:e.minRequiredSlippage});case 4:return Fo.createElement(Mo,{messages:e.messages});default:return[]}})}i(ft,"ConfirmSwapErrors");function gt(t){return t.flatMap(e=>{switch(e.type){case 0:return"Route has been updated.";case 3:return`Output amount changed to ${e.newOutputAmount} (${e.percentageChange}% change).`;case 1:return"Route swappers has been updated.";case 2:return"Route internal coins has been updated.";default:return[]}})}i(gt,"ConfirmSwapWarnings");import ht from"react";import{Alert as Qr}from"@rango-dev/ui";import Oo from"react";function Lo(t){let{selectedSlippage:e}=t;return Oo.createElement(Qr,{type:"warning",footer:Oo.createElement($e,null)},"Caution, your slippage is high (=",e,"). Your trade may be front run.")}i(Lo,"HighSlippageWarning");function Uo(t){let{selectedSlippage:e}=t,o=e>=Kt;return ht.createElement(ht.Fragment,null,o&&ht.createElement(Lo,{selectedSlippage:e}))}i(Uo,"ConfirmSwapExtraMessages");import St from"react";import{Typography as Yr}from"@rango-dev/ui";function Ve(t){let{inputUsdValue:e,outputUsdValue:o}=t;if(!e||!o||!o.gt(0))return null;let n=Te(e.toNumber(),o.toNumber()),s=n?.lt(0);return St.createElement(St.Fragment,null,s&&St.createElement(Yr,{variant:"caption",color:"$error500"},`(${A(n,0,2)}%)`))}i(Ve,"PercentageChange");function $o({customDestinationEnabled:t}){let e=Xr(),{navigateBackFrom:o}=q(),n=p.use.bestRoute(),s=p.use.loading(),r=p.use.error(),a=_.use.setSelectedSwap(),{blockchains:l,tokens:u}=C.use.meta(),c=C.use.loadingStatus(),g=B.use.connectedWallets(),k=B.use.selectedWallets(),b=B.use.customDestination(),h=B.use.setCustomDestination(),y=B.use.initSelectedWallets(),f=B.use.setSelectedWallet(),S=P.use.slippage(),m=P.use.customSlippage(),W=p.use.inputUsdValue(),E=p.use.outputUsdValue(),T=p.use.setInputAmount(),[w,F]=Do(""),N=Vt(s,!!r),[O,V]=Do(""),{manager:x}=os(),{loading:I,errors:L,warnings:K,confirmSwap:pe}=Io(),ae=m||S,le=!L.find(U=>U.type===3),{getWalletInfo:me,connect:ue}=Jr(),re=n?.result?.swaps[0],de=n?.result?.swaps[n?.result?.swaps.length-1],Nn=A(re?.fromAmount,4,6),Rn=A(de?.toAmount,4,6);Zr(()=>{y(),b&&h("")},[]);let Mn=n?.result?.swaps[n?.result?.swaps.length-1].to.blockchain,Rt=!!n?.result?.swaps.find(U=>U.from.blockchain===Mn),We=Pe(g,k,me,Rt?"":O),Fn=i(U=>{let Ke=U;tt(We).forEach(Ln=>ue?.(Ln,Ke))},"handleConnectChain"),On=Ue(n,u);return H.createElement(es,{requiredWallets:ge(n),selectableWallets:We,setCustomDestination:h,customDestination:b,customDestinationEnabled:t,isValidCustomDestination:To,checkedDestination:!!O,setDestinationChain:V,onBack:o.bind(null,d.confirmSwap),onConfirm:async()=>{pe?.().then(async U=>{if(U)try{await x?.create("swap",{swapDetails:U},{id:U.requestId}),a(U.requestId),e("/"+d.swaps+`/${U.requestId}`,{replace:!0}),setTimeout(()=>{T("")},0)}catch(Ke){F("Error: "+Ke?.message)}})},isWalletRequired:Rt,onChange:U=>f(U),confirmDisabled:c!=="success"||yo(s,O,b,n,We),handleConnectChain:U=>Fn(U),isExperimentalChain:U=>tt(We).length>0?oo(l,U):!1,previewInputs:H.createElement(H.Fragment,null,H.createElement(lt,{chain:{displayName:re?.from.blockchain||"",logo:re?.from.blockchainLogo||""},token:{symbol:re?.from.symbol||"",image:re?.from.logo||""},usdValue:W,amount:Nn,label:_o("From"),loadingStatus:c!=="success"?c:N}),H.createElement(qo,{size:12}),H.createElement(lt,{chain:{displayName:de?.to.blockchain||"",logo:de?.to.blockchainLogo||""},token:{symbol:de?.to.symbol||"",image:de?.to.logo||""},usdValue:E,amount:Rn,label:_o("To"),loadingStatus:c!=="success"?c:N,percentageChange:H.createElement(Ve,{inputUsdValue:W,outputUsdValue:E})})),previewRoutes:H.createElement(vo,{routes:n,totalFee:A(On,0,2)}),loading:I,errors:w?[w,...ft(L)]:ft(L),warnings:gt(K),extraMessages:H.createElement(H.Fragment,null,c==="failed"&&H.createElement(ts,null),c==="failed"&&le&&H.createElement(qo,null),le&&H.createElement(Uo,{selectedSlippage:ae})),confirmButtonTitle:K.length>0||L.length>0?"Proceed anyway!":"Confirm swap!"})}i($o,"ConfirmSwapPage");import{History as ns}from"@rango-dev/ui";import{useManager as rs}from"@rango-dev/queue-manager-react";import ss from"react";import{useNavigate as is}from"react-router-dom";var He=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let s=o.list.getStorage();s?.swapDetails&&e.push({id:n,swap:s?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import Vo from"dayjs";var Ho=i(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["week",{title:"This week",swaps:[]}],["month",{title:"This month",swaps:[]}],["year",{title:"This year",swaps:[]}],["history",{title:"History",swaps:[]}]]),o=Vo();return t.forEach(n=>{let s=Vo(Number(n.creationTime));o.isSame(s,"day")?e.get("today")?.swaps.push(n):o.isSame(s,"week")?e.get("week")?.swaps.push(n):o.isSame(s,"month")?e.get("month")?.swaps.push(n):o.isSame(s,"year")?e.get("year")?.swaps.push(n):e.get("history")?.swaps.push(n)}),Array.from(e.values())},"groupSwapsByDate");function Go(){let t=_.use.setSelectedSwap(),e=is(),{navigateBackFrom:o}=q(),{manager:n,state:s}=rs(),r=He(n).map(({swap:l})=>l),a=!s.loadedFromPersistor;return ss.createElement(ns,{list:r,groupBy:Ho,loading:a,onSwapClick:l=>{t(l),e(`${l}`,{replace:!0})},onBack:o.bind(null,d.swaps)})}i(Go,"HistoryPage");import{Alert as en,BestRoute as Ps,Button as tn,styled as ke,Typography as on,VerticalSwapIcon as Is,Header as Ns}from"@rango-dev/ui";import R,{useEffect as Rs,useState as Ms}from"react";import{useInRouterContext as Fs,useNavigate as Os}from"react-router-dom";import v from"react";import{AngleDownIcon as as,Button as Tt,InfoCircleIcon as ls,styled as we,TextField as us,Typography as Ce,Image as zo,Divider as yt}from"@rango-dev/ui";import{useNavigate as cs}from"react-router-dom";import{useTranslation as ps}from"react-i18next";var ms=we("div",{display:"flex",flexDirection:"column",width:"100%",overflow:"hidden"}),ds=we("div",{boxSizing:"border-box",borderRadius:"$5",padding:"$8 $16 $16 $16",variants:{type:{filled:{backgroundColor:"$neutral100"},outlined:{border:"1px solid $neutral100",backgroundColor:"$surface"}}},defaultVariants:{type:"filled"},".head":{display:"flex",justifyContent:"space-between",alignItems:"center",minHeight:"32px"},".form":{display:"flex",width:"100%",padding:"$2 0",".selectors":{width:"35%","._text":{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},".amount":{width:"30%"}},".output-usd":{display:"flex",div:{display:"flex",paddingLeft:"$8"}}}),fs=we("div",{display:"flex",justifyContent:"flex-end",".balance":{display:"flex",alignItems:"center"}}),Ko=we("span",{width:"24px",height:"24px",backgroundColor:"$neutral100",borderRadius:"99999px"}),gs=we("div",{windth:"100%",height:"$48",borderRadius:"$5",backgroundColor:"$surface",border:"1px solid transparent",position:"relative",display:"flex",alignItems:"center",paddingLeft:"$8",paddingRight:"$8"});function Ct(t){let{type:e,chain:o,token:n}=t,s=C.use.loadingStatus(),r=p.use.fromChain(),a=p.use.toChain(),l=p.use.inputUsdValue(),u=p.use.fromToken(),c=p.use.setInputAmount(),g=p.use.bestRoute(),k=p.use.inputAmount(),b=B.use.connectedWallets(),h=p.use.loading(),y=cs(),{t:f}=ps(),S=r&&u?A(fe(b,r?.name,u?.symbol,u?.address)?.amount||"0",8):"0",m=r&&u?A(fe(b,r?.name,u?.symbol,u?.address)?.amount||"0",fe(b,r?.name,u?.symbol,u?.address)?.decimal):"0",W=v.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"}},s==="failed"&&v.createElement(ls,{color:"error",size:24}),v.createElement(as,null));return v.createElement(ms,null,v.createElement(ds,{type:t.type==="From"?"filled":"outlined"},v.createElement("div",{className:"head"},v.createElement(Ce,{variant:"body2",color:"neutral800"},f(e)),t.type==="From"?v.createElement(fs,null,v.createElement("div",{className:"balance",onClick:()=>{S!=="0"&&c(m.split(",").join(""))}},v.createElement(Ce,{variant:"body3",color:"neutral600"},`${f("Balance")}: ${S} ${u?.symbol||""}`),v.createElement(yt,{size:4}),v.createElement(Tt,{type:"primary",variant:"ghost",size:"compact"},f("Max")))):v.createElement("div",{className:"output-usd"},v.createElement(Ve,{inputUsdValue:l,outputUsdValue:t.outputUsdValue}),v.createElement("div",null,v.createElement(Ce,{variant:"caption",color:"neutral600"},`$${A(t.outputUsdValue)}`)))),v.createElement("div",{className:"form"},v.createElement(Tt,{className:"selectors",onClick:()=>{y(`${t.type.toLowerCase()}-chain`)},variant:"outlined",disabled:s==="failed",loading:s==="loading",prefix:s==="success"&&o?v.createElement(zo,{src:o.logo,size:24}):v.createElement(Ko,null),suffix:W,align:"start",size:"large"},s==="success"&&o?o.displayName:f("Chain")),v.createElement(yt,{size:12,direction:"horizontal"}),v.createElement(Tt,{className:"selectors",onClick:()=>{y(`${t.type.toLowerCase()}-token`)},variant:"outlined",disabled:s==="failed"||e==="From"&&!r||e==="To"&&!a,loading:s==="loading",prefix:s==="success"&&n?v.createElement(zo,{src:n.image,size:24}):v.createElement(Ko,null),suffix:W,size:"large",align:"start"},s==="success"&&n?n.symbol:f("Token")),v.createElement(yt,{size:12,direction:"horizontal"}),v.createElement("div",{className:"amount"},t.type==="From"?v.createElement(us,{type:"number",size:"large",autoFocus:!0,placeholder:"0",style:{position:"relative",backgroundColor:"$background !important"},suffix:v.createElement("span",{style:{position:"absolute",right:"4px",bottom:"2px"}},v.createElement(Ce,{variant:"caption",color:"neutral800"},`$${A(l)}`)),value:t.inputAmount||"",min:0,onChange:t.type==="From"?E=>{t.onAmountChange(E.target.value)}:void 0}):v.createElement(gs,null,v.createElement(Ce,{variant:"h4"},h&&"?",!!g?.result&&`\u2248 ${A(t.outputAmount)}`,(!k||k==="0")&&"0"))))))}i(Ct,"TokenInfo");import ee from"react";import{styled as wt}from"@rango-dev/ui";import{Typography as jo}from"@rango-dev/ui";import{useTranslation as hs}from"react-i18next";var Ss=wt("div",{display:"flex",width:"100%",justifyContent:"end",alignItems:"center",paddingTop:"$16"}),Ts=wt("svg",{fill:"$foreground",width:"$24",margin:"0 $8 0 $16"}),ys=wt("a",{display:"flex",justifyContent:"center",alignItems:"center",textDecoration:"none"});function Qo(){let{t}=hs();return ee.createElement(Ss,null,ee.createElement(jo,{variant:"caption",color:"$neutral600"},t("Powered By")),ee.createElement(ys,{href:"https://rango.exchange",target:"_blank"},ee.createElement(Ts,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 33.68 29"},ee.createElement("defs",null),ee.createElement("g",{id:"Layer_2","data-name":"Layer 2"},ee.createElement("g",{id:"Layer_1-2","data-name":"Layer 1"},ee.createElement("path",{d:"M33.68,18.05A17.93,17.93,0,0,0,28.34,5.29,18.31,18.31,0,0,0,15.45,0H13.54V7.41L6.07,0H.69L9.83,9.07H0V11A17.93,17.93,0,0,0,5.34,23.71,18.32,18.32,0,0,0,18.24,29h1.9V21.59l7.38,7.31h5.39l-9-9h9.82ZM17.37,16.16H12.49a1.93,1.93,0,0,0-1.35.55,1.89,1.89,0,0,0-.56,1.34,1.85,1.85,0,0,0,.56,1.33,1.93,1.93,0,0,0,1.35.55h3.84V25.1A14.43,14.43,0,0,1,8,21a14.21,14.21,0,0,1-4.1-8.2H21.2a1.86,1.86,0,0,0,.74-.13,1.92,1.92,0,0,0,.64-.4,2,2,0,0,0,.43-.62,1.88,1.88,0,0,0,0-1.47,2,2,0,0,0-.43-.62,1.92,1.92,0,0,0-.64-.4,1.86,1.86,0,0,0-.74-.13H17.35V3.9A14.43,14.43,0,0,1,25.64,8a14.19,14.19,0,0,1,4.11,8.2Zm2.12-5.27a1.43,1.43,0,0,1,.26-.83,1.52,1.52,0,0,1,.67-.56,1.55,1.55,0,0,1,.88-.08,1.51,1.51,0,0,1,.77.4,1.54,1.54,0,0,1,.42.77,1.41,1.41,0,0,1-.09.86,1.47,1.47,0,0,1-.55.68,1.56,1.56,0,0,1-.84.25,1.52,1.52,0,0,1-1.52-1.49Z"}),ee.createElement("path",{d:"M21.7,11.57a.68.68,0,0,0-.12-.38.64.64,0,0,0-.31-.25.68.68,0,0,0-.75.15.61.61,0,0,0-.19.35.62.62,0,0,0,0,.4.67.67,0,0,0,.25.3.69.69,0,0,0,.39.12.7.7,0,0,0,.49-.2A.68.68,0,0,0,21.7,11.57Z"})))),ee.createElement(jo,{variant:"body2"},"RANGO")))}i(Qo,"BottomLogo");import{useEffect as Cs,useRef as ws}from"react";import{useSearchParams as ks}from"react-router-dom";function Yo({count:t}){let e=ws(!0),[o,n]=ks(),s=p.use.outputAmount();return Cs(()=>{if(e.current)e.current=!1;else{let r=o.get("fromChain"),a=o.get("fromToken"),l=o.get("toChain"),u=o.get("toToken");n({...l&&{["fromChain"]:l},...u&&{["fromToken"]:u},...r&&{["toChain"]:r},...a&&{["toToken"]:a},...s&&{["fromAmount"]:s.toString()}})}},[t]),null}i(Yo,"SwithFromAndTo");import{styled as bs}from"@rango-dev/ui";var Zo=bs("div",{display:"flex",flexDirection:"column",width:"100%",paddingTop:"$16"});var Xo={genericServerError:"Error connecting server, please reload the app and try again"};import nn from"bignumber.js";import te from"react";import{SettingsIcon as Ws,Tooltip as kt,styled as As,Button as bt,HistoryIcon as xs,RetryIcon as Bs}from"@rango-dev/ui";import{useNavigate as vs}from"react-router-dom";var Es=As("div",{display:"flex"});function Jo(t){let{onClickRefresh:e}=t,o=vs();return te.createElement(Es,null,te.createElement(kt,{content:"Refresh"},te.createElement(bt,{variant:"ghost",onClick:e,disabled:!e},te.createElement(Bs,{size:24,disabled:!e}))),te.createElement(kt,{content:"Transactions History"},te.createElement(bt,{variant:"ghost",onClick:()=>o(d.swaps)},te.createElement(xs,{size:24}))),te.createElement(kt,{content:"Settings"},te.createElement(bt,{variant:"ghost",onClick:()=>o(d.settings)},te.createElement(Ws,{size:24}))))}i(Jo,"HeaderButtons");var Ls=ke("div",{display:"flex",flexDirection:"column"}),Us=ke("div",{position:"relative",paddingBottom:"$12"}),Ds=ke("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)"}),_s=ke("div",{width:"100%",paddingTop:"$16"}),qs=ke("div",{width:"100%",paddingTop:"$16"});function rn(){let t=Fs(),e=Os(),[o,n]=Ms(0),s=p.use.fromChain(),r=p.use.fromToken(),a=p.use.toChain(),l=p.use.toToken(),u=p.use.setInputAmount(),c=p.use.inputUsdValue(),g=p.use.inputAmount(),k=p.use.outputAmount(),b=p.use.outputUsdValue(),h=p.use.bestRoute(),y=C.use.meta().tokens,f=p.use.loading(),S=p.use.error(),m=C.use.loadingStatus(),W=B.use.connectedWallets(),E=_.use.setCurrentPage(),T=p.use.switchFromAndTo(),w=m==="failed"?Xo.genericServerError:S,F=!1,N=g&&(!!h||f||S),O=Fe(c,b),V=Oe(c,O),{fromAmountRangeError:x,recommendation:I,swap:L}=so(h),K=!ao(h,g,c,b),pe=io(m,W,f,h,Le(h),V,K,F,g),ae=Ue(h,y),le=lo(ae);return Rs(()=>(E(d.home),E.bind(null,"")),[]),R.createElement(Ls,null,R.createElement(Ns,{title:"SWAP",suffix:R.createElement(Jo,{onClickRefresh:h||S?wo:void 0})}),R.createElement(Us,null,R.createElement(Ct,{type:"From",chain:s,token:r,onAmountChange:u,inputAmount:g}),R.createElement(Ds,null,R.createElement(tn,{variant:"ghost",onClick:()=>{T(),n(me=>me+1)}},R.createElement(Is,{size:32}),t&&R.createElement(Yo,{count:o})))),R.createElement(Ct,{type:"To",chain:a,token:l,outputAmount:k?new nn(k):new nn(0),outputUsdValue:b}),N&&R.createElement(_s,null,R.createElement(Ps,{error:S,loading:f,data:qt(h),totalFee:A(ae,0,2),feeWarning:le,totalTime:Ot(Lt(h))})),(w||Le(h))&&R.createElement(qs,null,w&&R.createElement(en,{type:"error"},w),Le(h)&&R.createElement(en,{type:"error",title:`${L?.swapperId} Limit`},R.createElement(R.Fragment,null,R.createElement(on,{variant:"body2"},`${x}, Yours: ${A(L?.fromAmount||null)} ${L?.from.symbol}`),R.createElement(on,{variant:"body2"},I)))),R.createElement(Zo,null,R.createElement(tn,{type:"primary",align:"grow",size:"large",disabled:pe.disabled,onClick:()=>{pe.title==="Connect Wallet"?e(d.wallets):e(d.confirmSwap,{replace:!0})}},pe.title),R.createElement(Qo,null)))}i(rn,"Home");import{LiquiditySourcesSelector as $s}from"@rango-dev/ui";import Vs from"react";function sn({supportedSwappers:t}){let e=C.use.meta().swappers,o=C.use.loadingStatus(),n=P.use.toggleLiquiditySource(),s=P.use.disabledLiquiditySources(),r=P.use.toggleAllLiquiditySources(),{navigateBackFrom:a}=q(),l=[];return G(e.map(u=>u.swapperGroup)).map(u=>e.find(c=>c.swapperGroup===u)).find(u=>{if(u)for(let c of u.types)l.push({title:u.swapperGroup,logo:u.logo,type:c,selected:!s.includes(u.swapperGroup)})}),Vs.createElement($s,{toggleAll:r,list:t?l.filter(u=>t.filter(c=>c===u.title).length>0):l,onChange:u=>n(u.title),onBack:a.bind(null,d.liquiditySources),loadingStatus:o})}i(sn,"LiquiditySourcePage");import Hs from"react";import{BlockchainSelector as Gs}from"@rango-dev/ui";function Wt(t){let{type:e,supportedChains:o}=t,n=o?C.use.meta().blockchains.filter(g=>o.includes(g.name)):C.use.meta().blockchains,s=C.use.loadingStatus(),r=p.use.fromChain(),a=p.use.toChain(),l=p.use.setFromChain(),u=p.use.setToChain(),{navigateBackFrom:c}=q();return Hs.createElement(Gs,{type:e==="from"?"Source":"Destination",list:n,selected:e==="from"?r:a,loadingStatus:s,onChange:g=>{e==="from"?l(g,!0):u(g,!0),c(d.fromChain)},onBack:c.bind(null,d.fromChain)})}i(Wt,"SelectChainPage");import zs from"react";import{TokenSelector as Ks}from"@rango-dev/ui";function At(t){let{navigateBackFrom:e}=q(),{type:o,supportedTokens:n}=t,s=p.use.sourceTokens(),r=p.use.destinationTokens(),a=n?s.filter(h=>n.some(y=>j(y,h))):s,l=n?r.filter(h=>n.some(y=>j(y,h))):r,u=p.use.fromToken(),c=p.use.toToken(),g=p.use.setFromToken(),k=p.use.setToToken(),b=C.use.loadingStatus();return zs.createElement(Ks,{type:o==="from"?"Source":"Destination",list:o=="from"?a:l,selected:o==="from"?u:c,onChange:h=>{o==="from"?g(h):k(h),e(d.fromToken)},onBack:e.bind(null,d.fromToken),loadingStatus:b})}i(At,"SelectTokenPage");import js from"react";import{Settings as Qs}from"@rango-dev/ui";import{useNavigate as Ys}from"react-router-dom";function an({supportedSwappers:t,singleTheme:e}){let o=P.use.slippage(),n=P.use.setSlippage(),s=P.use.disabledLiquiditySources(),r=P.use.customSlippage(),a=P.use.setCustomSlippage(),l=P.use.theme(),u=P.use.setTheme(),c=C.use.meta().swappers,g=Ys(),{navigateBackFrom:k}=q(),b=P.use.infiniteApprove(),h=P.use.toggleInfiniteApprove(),y=C.use.loadingStatus(),f=[];G(c.map(m=>m.swapperGroup)).map(m=>c.find(W=>W.swapperGroup===m)).find(m=>{if(m)for(let W of m.types)f.push({title:m.swapperGroup,logo:m.logo,type:W,selected:!s.includes(m.swapperGroup)})}),t&&f.filter(m=>t.filter(W=>W===m.title).length>0);let S=t?f.filter(m=>t.filter(W=>W===m.title).length>0):f;return js.createElement(Qs,{slippages:Gt,selectedSlippage:o,onSlippageChange:m=>n(m),onLiquiditySourcesClick:()=>g(d.liquiditySources),onBack:k.bind(null,d.settings),liquiditySources:S,selectedLiquiditySources:S.filter(m=>m.selected),singleTheme:e,customSlippage:r,onCustomSlippageChange:a,minSlippage:Qt,maxSlippage:jt,selectedTheme:l,onThemeChange:u,infiniteApprove:b,toggleInfiniteApprove:h,loadingStatus:y})}i(an,"SettingsPage");import{Alert as Xs,SecondaryPage as Js,styled as xt,Wallet as ei,WalletState as un}from"@rango-dev/ui";import oe,{useEffect as cn,useRef as ti,useState as oi}from"react";import{WalletTypes as ni,detectMobileScreens as ri}from"@rango-dev/wallets-shared";import{useWallets as si}from"@rango-dev/wallets-core";import{useTranslation as ii}from"react-i18next";import{Spinner as ai}from"@rango-dev/ui";import{LoadingFailedAlert as li}from"@rango-dev/ui";import{allProviders as Zs}from"@rango-dev/provider-all";function Ge(t){let e=Zs();if(t){let o=[];return t.forEach(n=>{if(typeof n=="string"){let s=e.find(r=>r.config.type===n);s?o.push(s):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else o.push(n)}),o}return e}i(Ge,"matchAndGenerateProviders");function ln(t){return Ge(t).map(n=>n.config.type)}i(ln,"configWalletsToWalletName");var ui=xt("div",{display:"grid",gap:".5rem",gridTemplateColumns:" repeat(2, minmax(0, 1fr))",alignContent:"baseline",padding:"0.5rem",overflowY:"auto"}),ci=xt("div",{display:"flex",justifyContent:"center",width:"100%",position:"absolute",top:"50%"}),pi=xt("div",{paddingBottom:"$16"}),mi=Object.values(ni);function pn({supportedWallets:t,multiWallets:e}){let{navigateBackFrom:o}=q(),{state:n,disconnect:s,getWalletInfo:r,connect:a}=si(),l=Zt(n,r,ln(t)||mi),u=ti(),c=ri()?l.filter(m=>m.showOnMobile):l;c=no(c);let[g,k]=oi(""),b=_.use.toggleConnectWalletsButton(),h=C.use.loadingStatus(),{t:y}=ii(),f=i(async m=>{let W=n(m);try{if(g&&k(""),W.connected)await s(m);else{if(!e&&l.find(E=>E.state===un.CONNECTED))return;await a(m)}}catch(E){k("Error: "+E?.message)}},"onSelectWallet"),S=i(()=>{let m=u.current?.filter(W=>W.state===un.CONNECTING)||[];for(let W of m)s(W.type)},"disconnectConnectingWallets");return cn(()=>(b(),()=>{S(),b()}),[]),cn(()=>{u.current=l},[l]),oe.createElement(Js,{title:y("Select Wallet")||"",textField:!1,onBack:o.bind(null,d.wallets)},oe.createElement(oe.Fragment,null,g&&oe.createElement(pi,null,oe.createElement(Xs,{type:"error",title:g})),h==="loading"&&oe.createElement(ci,{className:"loader"},oe.createElement(ai,{size:24})),h==="failed"&&oe.createElement(li,null),oe.createElement(ui,null,h==="success"&&c.map((m,W)=>oe.createElement(ei,{...m,key:`${W}-${m.type}`,onClick:f})))))}i(pn,"WalletsPage");import hn from"react";import{useManager as Ti}from"@rango-dev/queue-manager-react";import{SwapHistory as yi,useCopyToClipboard as Ci}from"@rango-dev/ui";import{cancelSwap as wi,PendingSwapNetworkStatus as ki}from"@rango-dev/queue-manager-rango-preset";import{useWallets as bi}from"@rango-dev/wallets-core";import{getCurrentBlockchainOfOrNull as Wi,getCurrentStep as Ai,getRelatedWalletOrNull as xi}from"@rango-dev/queue-manager-rango-preset";function mn(t){let e=Math.floor((new Date().getTime()-t)/1e3),o,n=Math.floor(e/31536e3);return n>=1?o="year":(n=Math.floor(e/2592e3),n>=1?o="month":(n=Math.floor(e/86400),n>=1?o="day":(n=Math.floor(e/3600),n>=1?o="hour":(n=Math.floor(e/60),n>=1?o="minute":(n=e,o="second"))))),(n>1||n===0)&&(o+="s"),n+" "+o}i(mn,"timeSince");function dn(t){return t.finishTime?`${mn(parseInt(t.finishTime))} ago`:`${mn(parseInt(t.creationTime))} ago`}i(dn,"getSwapDate");import{useNavigate as Bi}from"react-router-dom";import be from"react";import{SecondaryPage as di,Spinner as fi,Alert as gi,styled as fn}from"@rango-dev/ui";var hi=fn("div",{height:"450px"}),Si=fn("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1});function gn(t){let{requestId:e,loading:o,onBack:n}=t;return be.createElement(di,{title:"Swap Details",textField:!1,onBack:n},be.createElement(hi,null,o?be.createElement(Si,null,be.createElement(fi,{size:24})):be.createElement(gi,{type:"secondary",title:`Swap with request ID = ${e} not found.`})))}i(gn,"SwapDetailsPlaceholder");function Sn(){let t=_.use.selectedSwapRequestId(),{canSwitchNetworkTo:e,connect:o,getWalletInfo:n}=bi(),s=p.use.retry(),r=Bi(),{navigateBackFrom:a}=q(),[l,u]=Ci(2e3),{manager:c,state:g}=Ti(),b=He(c).find(({swap:L})=>L.requestId===t),h=i(()=>{let L=c?.get(b?.id);L&&wi(L)},"onCancel"),y=b?.swap,f=!g.loadedFromPersistor;if(!y)return hn.createElement(gn,{requestId:t||"",loading:f,onBack:a.bind(null,d.swapDetails)});let S=Ai(y),m=S?Wi(y,S):null,W=S?xi(y,S):null,E=S?.networkStatus,T=go(y,S),w=rt(S),F=dn(y),N=So(y),O=i(L=>!!n(L)?.mobileWallet,"isMobileWallet"),x=E===ki.WaitingForNetworkChange&&!!m&&!!W?.walletType&&(O(W.walletType)||e(W.walletType,m))?o.bind(null,W.walletType,m):void 0,I=ho(y);return hn.createElement(yi,{onBack:a.bind(null,d.swapDetails),pendingSwap:$t(y),onCopy:u,isCopied:l,onCancel:h,shortMessage:T.shortMessage,detailedMessage:T.detailedMessage,currentStepBlockchain:m||"",switchNetwork:x,type:w?"warning":y.extraMessageSeverity||void 0,date:F,...N&&{onRetry:()=>{s(y),setTimeout(()=>{r(d.home)},0)}},...I&&{lastConvertedTokenInFailedSwap:{blockchain:I.blockchain,outputAmount:I.outputAmount||"",symbol:I.symbol}}})}i(Sn,"SwapDetailsPage");var Ei=i(t=>t.replace("/",""),"getAbsolutePath");function Tn(t){let{config:e}=t;return vi([{path:d.home,element:Q.createElement(rn,null)},{path:d.fromChain,element:Q.createElement(Wt,{type:"from",supportedChains:e?.from?.blockchains})},{path:d.toChain,element:Q.createElement(Wt,{type:"to",supportedChains:e?.to?.blockchains})},{path:d.fromToken,element:Q.createElement(At,{type:"from",supportedTokens:e?.from?.tokens})},{path:d.toToken,element:Q.createElement(At,{type:"to",supportedTokens:e?.to?.tokens})},{path:d.settings,element:Q.createElement(an,{singleTheme:e?.theme?.singleTheme,supportedSwappers:e?.liquiditySources})},{path:d.liquiditySources,element:Q.createElement(sn,{supportedSwappers:e?.liquiditySources})},{path:d.swaps,element:Q.createElement(Go,null)},{path:d.swapDetails,element:Q.createElement(Sn,null)},{path:d.wallets,element:Q.createElement(pn,{supportedWallets:e?.wallets,multiWallets:typeof e?.multiWallets>"u"?!0:e.multiWallets})},{path:Ei(d.confirmSwap),element:Q.createElement($o,{customDestinationEnabled:e?.customDestination})}])}i(Tn,"AppRoutes");import{useTranslation as Li}from"react-i18next";var Ui=Bt("div",{display:"flex",width:"100%",justifyContent:"end",".balance":{display:"flex"}}),Di=Bt("div",{display:"flex",paddingLeft:"12px"}),_i=Bt("div",{marginLeft:-15,marginRight:"$6","& img":{borderRadius:"50%"}});function yn({config:t}){let e=Fi(),{connectedWallets:o,selectedWallets:n}=B(),{getWalletInfo:s}=Oi(),r=G(Pe(o,n,s).map(E=>E.image)),{blockchains:a,tokens:l}=C.use.meta(),u=p.use.setFromChain(),c=p.use.setFromToken(),g=p.use.setToChain(),k=p.use.setToToken(),b=p.use.setInputAmount(),h=P.use.setAffiliateRef(),y=to(o),f=_.use.connectWalletsButtonDisabled(),S=C.use.loadingStatus(),m=B(Co),{t:W}=Li();return ze(()=>{if(S==="success"){let E=a.find(w=>w.name===t?.to?.blockchain),T=l.find(w=>j(w,t?.to?.token||null));g(E||null),k(T||null)}},[t?.to?.token,t?.to?.blockchain,S]),ze(()=>{b(t?.amount?.toString()||"")},[t?.amount]),ze(()=>{if(S==="success"){let E=a.find(w=>w.name===t?.from?.blockchain),T=l.find(w=>j(w,t?.from?.token||null));u(E||null),c(T||null)}},[t?.from?.token,t?.from?.blockchain,S]),ze(()=>{h(t?.affiliateRef||null)},[t?.affiliateRef]),z.createElement(z.Fragment,null,z.createElement(Ui,null,z.createElement(Pi,{size:"small",suffix:z.createElement(Ii,{size:20}),variant:"ghost",flexContent:!0,loading:S==="loading",disabled:S==="failed",onClick:()=>{f||e(d.wallets)},prefix:r?.length?z.createElement(Di,null,r.map((E,T)=>z.createElement(_i,{key:T},z.createElement(Mi,{src:E,size:24})))):null},z.createElement("div",{className:"balance"},z.createElement(Ni,{variant:"body2"},o?.length?`$${y||0}`:W("Connect Wallet")),m&&z.createElement(Ri,null)))),z.createElement(Tn,{config:t}))}i(yn,"Layout");import{globalCss as qi}from"@rango-dev/ui";var Cn=i(t=>qi({"@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')","url('https://fonts.cdnfonts.com/css/times-new-roman')"],body:{fontFamily:t}})(),"globalFont");import{createTheme as wn,generateRangeColors as Y}from"@rango-dev/ui";import{useState as Hi,useEffect as kn,useLayoutEffect as Gi}from"react";import{useEffect as $i,useRef as Vi}from"react";function vt(t){let e=Vi();return $i(()=>{e.current=t},[t]),e.current}i(vt,"usePrevious");function bn({colors:t,fontFamily:e="Roboto",borderRadius:o=8,mode:n="auto"}){let s=P.use.theme(),r=C.use.fetchMeta(),a=P.use.setTheme(),l=t?.light,u=t?.dark,c=l?.neutral||"#fafafa",g=l?.background||"#fff",k=l?.foreground||"#000",b={...Y("primary","dark",u?.primary),...Y("error","dark",u?.error),...Y("warning","dark",u?.warning),...Y("success","dark",u?.success),...Y("neutral","dark",u?.neutral),surface:u?.surface,background:u?.background,foreground:u?.foreground},h={surface:l?.surface||"#fff",...Y("primary","light",l?.primary||"#5FA425"),...Y("error","light",l?.error||"#FF0000"),...Y("warning","light",l?.warning||"#F5A623"),...Y("success","light",l?.success||"#0070F3"),...Y("neutral","light",c),background:g,foreground:k},y=wn({colors:h,radii:{5:`${o}px`},shadows:{s:`0px 3px 5px 3px ${l?.neutral||"#f0f2f5"} ,0px 6px 10px 3px ${l?.neutral||"#f0f2f5"}, 0px 1px 18px 3px ${l?.neutral||"#f0f2f5"}`}}),f=wn({colors:{...h,...Y("neutral","dark","#111111"),foreground:g,background:k,surface:"#000",...JSON.parse(JSON.stringify(b))},radii:{5:`${o}px`},shadows:{s:`0px 3px 5px 3px ${u?.neutral||"#222"}, 0px 6px 10px 3px ${u?.neutral||"#222"}, 0px 1px 18px 3px ${u?.neutral||"#222"}`}}),[S,m]=Hi("light");kn(()=>{(async()=>await r())();let T=i(w=>{w.matches?m("dark"):m("light")},"switchTheme");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&m("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",T),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",T)}},[]),kn(()=>{n!=="auto"&&a(n)},[n]);let W=vt(e);return Gi(()=>{let{classList:T}=document.body;W&&T.remove(`font_${W.replace(/ /g,"")}`),T.add(`font_${e.replace(/ /g,"")}`)},[e]),{activeTheme:i(()=>s==="auto"?S==="dark"?f:y:s==="dark"?f:y,"getActiveTheme")()}}i(bn,"useTheme");import{useTranslation as zi}from"react-i18next";function Et(){let{i18n:t}=zi(),e=t?.language||"en";return{changeLanguage:i(n=>{e!==n&&t.changeLanguage(n)},"changeLanguage"),currentLanguage:e}}i(Et,"useSelectLanguage");import Qi from"i18next";import{initReactI18next as Yi}from"react-i18next";var Wn={swap:"SWAP","Connect Wallet":"Connect Wallet","Powered By":"Powered By",From:"You sell",To:"You receive",Balance:"Balance",Max:"Max",Chain:"Chain",Token:"Token",Source:"Source",Destination:"Destination","Select Wallet":"Connect Your Wallet"};var An={swap:"TAKAS","Select Wallet":"C\xFCzdan Se\xE7","Powered By":"Taraf\u0131ndan desteklenmektedir","Connect Wallet":"C\xFCzdan\u0131 Ba\u011Fla",From:"\u0130tibaren",To:"\u0130le",Max:"maks.",Chain:"Zincir",Token:"Jeton"};import Zi from"i18next-http-backend";import Xi from"i18next-browser-languagedetector";var Ji=["en","tr"];Qi.use(Zi).use(Xi).use(Yi).init({resources:{en:{translation:Wn},tr:{translation:An}},fallbackLng:"en",debug:!0,whitelist:Ji});import ea,{useMemo as ta}from"react";import{Provider as oa}from"@rango-dev/queue-manager-react";import{makeQueueDefinition as na,checkWaitingForNetworkChange as ra}from"@rango-dev/queue-manager-rango-preset";import{useWallets as sa}from"@rango-dev/wallets-core";import{convertEvmBlockchainMetaToEvmChainInfo as ia}from"@rango-dev/wallets-shared";import{isEvmBlockchain as aa}from"rango-types";function la(t){let{providers:e,getSigners:o,state:n,connect:s,canSwitchNetworkTo:r,getWalletInfo:a}=sa(),l=ta(()=>na({API_KEY:xe("API_KEY")}),[]),u=B.use.getOneOfWalletsDetails(),{blockchains:c}=C.use.meta(),g=B.use.connectedWallets(),k={blockchains:g.map(T=>({accounts:[T],name:T.chain}))},b=i((T,w)=>{if(r(T,w))return s(T,w)},"switchNetwork"),h=i(T=>!!a(T).mobileWallet,"isMobileWallet"),y=c.filter(T=>T.enabled).reduce((T,w)=>(T[w.name]=w,T),{}),f=c.filter(aa),S=i(T=>{let{supportedChains:w}=a(T);return Ee(w)},"getSupportedChainNames"),m=e(),W=i(T=>{let w=T.swap?.steps[T.swap.steps.length-1],F=T.step?.outputAmount||"",N=T.step||w;if(T.eventType==="task_completed"||T.eventType==="step_completed_with_output"&&w?.id!==T.step?.id||F){let O=g.find(x=>x.chain===N?.fromBlockchain),V=N?.fromBlockchain!==N?.toBlockchain&&g.find(x=>x.chain===N?.toBlockchain);O&&u(O),V&&u(V)}},"notifier"),E={meta:{blockchains:y,evmBasedChains:f,evmNetworkChainInfo:ia(f),getSupportedChainNames:S},getSigners:o,wallets:k,providers:m,switchNetwork:b,canSwitchNetworkTo:r,connect:s,state:n,isMobileWallet:h,notifier:W};return ea.createElement(oa,{queuesDefs:[l],context:E,onPersistedDataLoaded:T=>{ra(T)},isPaused:!1},t.children)}i(la,"QueueManager");var xn=la;import vn from"react";import{Events as Pt,Provider as ca}from"@rango-dev/wallets-core";import{isEvmBlockchain as pa}from"rango-sdk";import{useEffect as ua}from"react";function Bn(t){let e=B.use.clearConnectedWallet(),o=Ge(void 0);return ua(()=>{e(),o=Ge(t)},[t]),{providers:o}}i(Bn,"useWalletProviders");import{createContext as ma,useRef as da}from"react";var It=ma({onConnectWallet:()=>{}});function Nt(t){let{blockchains:e}=C.use.meta(),{providers:o}=Bn(t.providers),n=B.use.disconnectWallet(),s=B.use.connectWallet(),r=da(),a=e.filter(pa).map(u=>u.name),l=i((u,c,g,k,b)=>{if(c===Pt.ACCOUNTS)if(g){let h=Ee(b),y=Xt(u,g,a,h);s(y)}else n(u);if(c===Pt.ACCOUNTS&&k.connected){let h=`${u}-${k.network}-${g}`;k.connected&&(r.current?r.current(h):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(c===Pt.NETWORK&&k.network){let h=`${u}-${k.network}`;r.current?r.current(h):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"onUpdateState");return vn.createElement(It.Provider,{value:{onConnectWallet:u=>{r.current=u}}},vn.createElement(ca,{allBlockChains:e,providers:o,onUpdateState:l},t.children))}i(Nt,"WidgetWallets");var Ta=ga("div",{width:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function In(t){let{config:e}=t;Cn(e?.theme?.fontFamily||"Roboto");let{activeTheme:o}=bn(e?.theme||{}),{changeLanguage:n}=Et(),[s,r]=Pn(""),[a,l]=Pn(),u=_.use.currentPage(),c=ha(It);return Sa(()=>{e?.apiKey&&Ht({API_KEY:e?.apiKey})},[e]),En(()=>{n(e?.language||"en")},[e?.language]),En(()=>{c.onConnectWallet(r)},[]),ie.createElement(Ta,{id:"swap-container",className:o},ie.createElement(xn,null,ie.createElement(fa,{fixedHeight:u!==d.home},ie.createElement(bo,{lastConnectedWallet:s,disconnectedWallet:a,clearDisconnectedWallet:()=>{l(void 0)}},ie.createElement(yn,{config:e})))))}i(In,"Main");function ya(t){return t.config?.externalWallets?ie.createElement(In,{...t}):ie.createElement(Nt,{providers:t.config?.wallets},ie.createElement(In,{...t}))}i(ya,"Widget");import{useWallets as dh}from"@rango-dev/wallets-core";export{ya as Widget,Nt as WidgetWallets,dh as useWallets};
2
2
  //# sourceMappingURL=index.js.map