@rango-dev/widget-embedded 0.5.1-next.14 → 0.5.1-next.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Wallets.d.ts +2 -0
- package/dist/Wallets.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +2 -2
- package/package.json +1 -1
- package/src/Wallets.tsx +6 -0
package/dist/Wallets.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from 'react';
|
|
2
|
+
import { EventHandler } from '@rango-dev/wallets-core';
|
|
2
3
|
import './i18n';
|
|
3
4
|
import { WidgetConfig } from './types';
|
|
4
5
|
type OnConnectHandler = (key: string) => void;
|
|
@@ -8,6 +9,7 @@ interface WidgetContextInterface {
|
|
|
8
9
|
export declare const WidgetContext: React.Context<WidgetContextInterface>;
|
|
9
10
|
export declare function WidgetWallets(props: PropsWithChildren<{
|
|
10
11
|
providers: WidgetConfig['wallets'];
|
|
12
|
+
onUpdateState?: EventHandler;
|
|
11
13
|
}>): JSX.Element;
|
|
12
14
|
export {};
|
|
13
15
|
//# sourceMappingURL=Wallets.d.ts.map
|
package/dist/Wallets.d.ts.map
CHANGED
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"Wallets.d.ts","sourceRoot":"","sources":["../src/Wallets.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAQvD,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;IACnC,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,CAAC,eA0EH"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _n=Object.defineProperty;var i=(t,e)=>_n(t,"name",{value:e,configurable:!0});import{SwapContainer as wa,styled as ka}from"@rango-dev/ui";import re,{useContext as ba,useEffect as In,useMemo as Wa,useState as Nn}from"react";import _e,{Fragment as yr}from"react";import{MemoryRouter as Cr,useInRouterContext as wr}from"react-router";import{useQueueManager as kr}from"@rango-dev/queue-manager-rango-preset";import{useEffect as st,useRef as it}from"react";import{createSearchParams as hr,useLocation as Sr,useSearchParams as Tr}from"react-router-dom";import{create as pr}from"zustand";import ne from"bignumber.js";import qn from"bignumber.js";var U=new qn(0);import Oa from"bignumber.js";function H(t){return Array.from(new Set(t))}i(H,"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"),b=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 Xe(t,e){let o=t.result?.swaps.map(s=>s.swapperId)||[],n=e.result?.swaps.map(s=>s.swapperId)||[];return!je(o,n)}i(Xe,"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!je(o,n)}i(Ze,"isRouteInternalCoinsUpdated");function Dt(t,e){return Ye(t,e)||Xe(t,e)||Ze(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:b(o.fromAmount,6,6),toAmount:b(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:b(o.feeInUsd,4,4),outputAmount:b(o.outputAmount,6,6),expectedOutputAmountHumanReadable:b(o.expectedOutputAmountHumanReadable,6,6)}));return{...t,inputAmount:b(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"),X=$n;import{subscribeWithSelector as mr}from"zustand/middleware";import{RangoClient as Hn}from"rango-sdk";var Vn="c6381a79-2817-4602-83bf-6a641a409e32",et={API_KEY:Vn};function ve(t){return et[t]}i(ve,"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 xe,ie=i(()=>xe||(xe=new Hn(ve("API_KEY")),xe),"httpService");import{create as zn}from"zustand";import{persist as Kn,subscribeWithSelector as jn}from"zustand/middleware";var Gt=[.5,1,3,5,8,13,20],zt=1,Kt=5,jt=100,Qt=0;import{create as Gn}from"zustand";var C=X(Gn()(t=>({meta:{blockchains:[],popularTokens:[],swappers:[],tokens:[]},loadingStatus:"loading",fetchMeta:async()=>{try{let e=await ie().getAllMetadata(),o=H(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=X(zn()(Kn(jn(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=H(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 Yn,KEPLR_COMPATIBLE_WALLETS as Xn,detectInstallLink as Zn,WalletTypes as Jn,Networks as Yt}from"@rango-dev/wallets-shared";import{WalletState as Z}from"@rango-dev/ui";import{isCosmosBlockchain as er}from"rango-types";import{readAccountAddress as tr}from"@rango-dev/wallets-core";import Be from"bignumber.js";function or(t){switch(!0){case t.connected:return Z.CONNECTED;case t.connecting:return Z.CONNECTING;case!t.installed:return Z.NOT_INSTALLED;default:return Z.DISCONNECTED}}i(or,"getStateWallet");var nr=[Jn.LEAP];function Xt(t,e,o){return o.filter(n=>!nr.includes(n)).map(n=>{let{name:s,img:r,installLink:a,showOnMobile:l}=e(n),u=or(t(n));return{name:s,image:r,installLink:Zn(a),state:u,type:n,showOnMobile:!(typeof l>"u")}})}i(Xt,"getlistWallet");function Ee(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Ee,"walletAndSupportedChainsNames");function Zt(t,e,o,n){let s=[];function r(l,u){if(!!!s.find(h=>h.chain===l)){let h={address:u,chain:l,walletType:t};s.push(h)}}i(r,"addAccount");let a=n||[];return e.forEach(l=>{let{address:u,network:c}=tr(l),h=a.length>0,w=a.includes(c),k=c===Yt.Unknown;if(h&&!w&&!k)return;let y=c===Yt.Unknown&&Yn(u);if(k&&!y)return;o.includes(c)||y?a.filter(m=>o.includes(m)).forEach(m=>{r(m,u.toLowerCase())}):r(c,u)}),s}i(Zt,"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 Be(l.amount.amount).shiftedBy(-l.amount.decimals).toFixed(),logo:"",usdPrice:sr(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=b(n?.flatMap(r=>r.accounts)?.flatMap(r=>r?.balances)?.map(r=>new Be(r?.amount||U).multipliedBy(r?.usdPrice||0))?.reduce((r,a)=>r.plus(a),U)||U).toString();return rr(s)},"calculateWalletUsdValue");function rr(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(rr,"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"),sr=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=Qn(Object.entries(t).map(([,n])=>n).filter(er));return o&&!!o[e]},"isExperimentalChain"),tt=i(t=>{let e=new Set(t.map(o=>o.walletType));return Xn.filter(o=>e.has(o))},"getKeplrCompatibleConnectedWallets");function Re(t,e){return t.map(({balance:o,...n})=>{let s=b(new Be(fe(e,n.blockchain,n.symbol,n.address)?.amount||U)),r="";return n.usdPrice&&(r=b(new Be(fe(e,n.blockchain,n.symbol,n.address)?.amount||U).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 K(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(K,"tokensAreEqual");function ot(t,e){let o,n=t[0],s=t[1];return t.length===1?o=n:K(n,e)?o=s:o=n,o}i(ot,"getDefaultToken");function no(t){return t.sort((e,o)=>+(o.state===Z.CONNECTED)-+(e.state===Z.CONNECTED)||+(o.state===Z.DISCONNECTED||o.state===Z.CONNECTING)-+(e.state===Z.DISCONNECTED||e.state===Z.CONNECTING))}i(no,"sortWalletsBasedOnState");import{PendingSwapNetworkStatus as Me}from"@rango-dev/queue-manager-rango-preset";function Fe(t,e){return t.lte(U)||e.lte(U)?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: >= ${b(o)} ${e.from.symbol}`,a="Increase your swap amount"):s&&o&&o.gte(e.fromAmount)&&(r=`Required: > ${b(o)} ${e.from.symbol}`,a="Increase your swap amount"),!s&&n&&n.lt(e.fromAmount)?(r=`Required: <= ${b(n)} ${e.from.symbol}`,a="Decrease your swap amount"):s&&n&&n.lte(e.fromAmount)&&(r=`Required: < ${b(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(U)||n.lte(U))&&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 ir=i((t,e,o,n)=>n?.find(r=>r.blockchain===t&&r.symbol?.toUpperCase()===e?.toUpperCase()&&r.address===o)?.usdPrice||null,"getUsdPrice");function ar(t,e){let o=U;for(let n=0;n<t.fee.length;n++){let s=t.fee[n];if(s.expenseType==="DECREASE_FROM_OUTPUT")continue;let r=ir(s.asset.blockchain,s.asset.symbol,s.asset.address,e);o=o.plus(new $(s.amount).multipliedBy(r||0))}return o}i(ar,"getUsdFeeOfStep");function Ue(t,e){return t?.result?.swaps.reduce((o,n)=>o.plus(ar(n,e)),U)||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 h=s.reduce((f,S)=>(f[S.chain]=S.address,f),{}),w=[];n.forEach(f=>{let S=w.find(m=>m.blockchain===f.chain);S?S.addresses.push(f.address):w.push({blockchain:f.chain,addresses:[f.address]})});let k=!!u,g=H((u?.result?.swaps||[]).reduce((f,S)=>(f.push(S.from.blockchain,S.to.blockchain),f),[]));return{amount:o.toString(),affiliateRef:l,checkPrerequisites:k,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:h,swapperGroups:r,swappersGroupsExclude:!0,slippage:a.toString(),...k&&{blockchains:g}}}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=b(new $(r.currentAmount.amount).shiftedBy(-r.currentAmount.decimals),8),u=b(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):U).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 lr}from"zustand";import{subscribeWithSelector as ur}from"zustand/middleware";import{shallow as cr}from"zustand/shallow";var v=X(lr()(ur((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 ie().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)}))}}}))));v.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:cr});var Co=i(t=>!!t.connectedWallets.find(e=>e.loading),"fetchingBalanceSelector");var ye=i((t,e)=>new ne(e||U).multipliedBy(t?.usdPrice||0),"getUsdValue"),p=X(pr()(mr(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=U;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=v.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=v.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=v.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,h=o.find(f=>K(f,{blockchain:a.fromBlockchain,symbol:a.fromSymbol,address:a.fromSymbolAddress})),w=o.find(f=>K(f,{blockchain:l.toBlockchain,symbol:l.toSymbol,address:l.toSymbolAddress})),k=Se(u,o,s,[]),g=Se(c,o,s,[]),y=e.inputAmount;t({fromChain:u,fromToken:h,inputAmount:y,outputAmount:null,inputUsdValue:ye(h||null,y),outputUsdValue:new ne(0),toChain:c,toToken:w,bestRoute:null,loading:!1,error:"",sourceTokens:k,destinationTokens:g})},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()||"")}))})))),dr=i((t,e)=>{let o=null,n=i(()=>{let{fromToken:a,toToken:l,inputAmount:u,resetRoute:c}=t.getState(),{slippage:h,customSlippage:w,disabledLiquiditySources:k,affiliateRef:g}=e.getState();if(!a||!l||!Ae(u))return;o?.abort(),o=new AbortController;let f=De(a,l,u,[],[],k,w||h,g);t.getState().loading||c(),ie().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:h}=p.getState();if(!Ae(u)||c.eq(0))return t.setState({loading:!1});if(K(a,l))return t.setState({loading:!1,bestRoute:null,outputAmount:new ne(u),outputUsdValue:c});t.getState().loading||h(),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})}),E.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}=dr(p,E);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 fr}from"zustand";var _=X(fr()(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]=Tr(),n=Sr(),s=it(n.search),r=it({}),a=p.use.fromChain(),l=p.use.toChain(),u=p.use.fromToken(),c=p.use.toToken(),h=p.use.setFromChain(),w=p.use.setFromToken(),k=p.use.setToChain(),g=p.use.setToToken(),y=p.use.inputAmount(),f=p.use.setInputAmount(),S=C.use.loadingStatus(),{blockchains:m,tokens:T}=C.use.meta(),W=_.use.setSelectedSwap();return st(()=>{let x={};hr(s.current).forEach((O,F)=>{x[F]=O}),r.current=x;let A=n.pathname.split(d.swaps+"/")[1]||null;A&&W(A)},[]),st(()=>{if(!t.current){let x="",A="",O="",F="",D="";if(S!=="success")x=r.current["fromChain"],A=r.current["fromToken"],O=r.current["toChain"],F=r.current["toToken"],D=r.current["fromAmount"]||y;else{if(n.state==="redirect")return;x=a?.name||"",A=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),O=l?.name||"",F=(c?.symbol||"")+(c?.address?`--${c?.address}`:""),D=y}o({...x&&{["fromChain"]:x},...A&&{["fromToken"]:A},...O&&{["toChain"]:O},...F&&{["toToken"]:F},...D&&{["fromAmount"]:D.toString()}},{replace:!0})}t.current=!1},[n.pathname,y,a,u,l,c]),st(()=>{if(S==="success"){let x=e.get("fromChain"),A=e.get("fromToken"),O=e.get("toChain"),F=e.get("toToken"),D=e.get("fromAmount"),Y=m.find(z=>z.name===x),P=Qe(T,A,Y||null),I=m.find(z=>z.name===O),M=Qe(T,F,I||null);Y&&(h(Y),P&&w(P)),I&&(k(I),M&&g(M)),D&&f(D)}},[S]),null}i(ko,"UpdateUrl");import{useWallets as br}from"@rango-dev/wallets-core";import{isEvmBlockchain as Wr}from"rango-types";function bo({children:t,...e}){let o=wr(),n=o?yr:Cr,{blockchains:s}=C.use.meta(),{canSwitchNetworkTo:r}=br(),a=s.filter(Wr);return kr({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,canSwitchNetworkTo:r}),_e.createElement(_e.Fragment,null,_e.createElement(n,null,t),o&&_e.createElement(ko,null))}i(bo,"AppRouter");import{Button as Ni,AddWalletIcon as Ri,Typography as Mi,styled as xt,Spinner as Fi,Image as Oi}from"@rango-dev/ui";import G,{useEffect as ze}from"react";import{useNavigate as Li}from"react-router-dom";import{useWallets as Ui}from"@rango-dev/wallets-core";import j from"react";import{useRoutes as Pi}from"react-router-dom";import V,{useEffect as Jr,useState as Do}from"react";import{useNavigate as es}from"react-router-dom";import{useWallets as ts}from"@rango-dev/wallets-core";import{useInRouterContext as Ar,useNavigate as vr}from"react-router-dom";function q(){let t=Ar(),e=vr();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 R from"react";import{Button as Wo,InfoCircleIcon as xr,styled as qe,Typography as at,Divider as Ao,Image as vo}from"@rango-dev/ui";import{useTranslation as Br}from"react-i18next";var Er=qe("div",{display:"flex",flexDirection:"column",width:"100%",overflow:"hidden"}),Pr=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%"}}}),xo=qe("span",{width:"24px",height:"24px",backgroundColor:"$neutral100",borderRadius:"99999px"}),Ir=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}=Br(),a=R.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"}},n==="failed"&&R.createElement(xr,{color:"error",size:24}));return R.createElement(Er,null,R.createElement(Pr,{type:"outlined"},R.createElement("div",{className:"head"},R.createElement(at,{variant:"body2",color:"neutral800"},t.label),R.createElement("div",null,s,t.usdValue&&R.createElement(at,{variant:"caption",color:"neutral600",className:"usd-value"},`$${b(t.usdValue)}`))),R.createElement("div",{className:"form"},R.createElement(Wo,{className:"selectors",variant:"outlined",loading:n==="loading",prefix:n==="success"&&e?R.createElement(vo,{src:e.logo,size:24}):R.createElement(xo,null),suffix:a,align:"start",size:"large"},n==="success"&&e?e.displayName:r("Chain")),R.createElement(Ao,{size:12,direction:"horizontal"}),R.createElement(Wo,{className:"selectors",variant:"outlined",loading:n==="loading",prefix:n==="success"&&o?R.createElement(vo,{src:o.image,size:24}):R.createElement(xo,null),suffix:a,size:"large",align:"start"},n==="success"&&o?o.symbol:r("Token")),R.createElement(Ao,{size:12,direction:"horizontal"}),R.createElement("div",{className:"amount"},R.createElement(Ir,null,R.createElement(at,{variant:"h4"},t.amount))))))}i(lt,"TokenPreview");import{t as _o}from"i18next";import{Divider as qo,ConfirmSwap as os,LoadingFailedAlert as ns}from"@rango-dev/ui";import J from"react";import{styled as Nr,ChevronRightIcon as Rr,GasIcon as Mr,Divider as Fr}from"@rango-dev/ui";var Or=Nr("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 Lr(t){if(!t.routes)return null;let e=t.routes.result?.swaps;return J.createElement(Or,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(Rr,{size:12}),s?J.createElement("div",{className:"route"},o.to.symbol):null)})),t.totalFee?J.createElement("div",{className:"fee"},J.createElement(Mr,{size:12}),J.createElement(Fr,{size:4,direction:"horizontal"}),"$",t.totalFee):null)}i(Lr,"RoutesOverview");var Bo=Lr;import{useManager as rs}from"@rango-dev/queue-manager-react";import{useEffect as Dr,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=E.use.affiliateRef(),l=v.use.connectedWallets(),u=v.use.customDestination(),c=v.use.selectedWallets(),h=C.use.meta(),w=E.use.customSlippage(),k=E.use.slippage(),g=E.use.disabledLiquiditySources(),y=w||k,f=ut(!1),S=ut(null),m=ut(null),[T,W]=ct(!1),[x,A]=ct([]),[O,F]=ct([]);return Dr(()=>()=>m.current?.abort(),[]),!t||!e||!o||!n?{loading:!1,warnings:[],errors:[],confirmSwap:null}:{loading:T,warnings:O,errors:x,confirmSwap:i(async()=>{if(f.current){let P={slippage:y.toString(),disabledSwappersGroups:g};return x.length>0&&A([]),O.length>0&&F([]),f.current=!1,S.current?Eo(o.toString(),S.current,nt(c),P,!1,h):void 0}m.current=new AbortController,W(!0);let Y=De(t,e,o,l,c,g,y,a,n,u);try{let P=await ie().getBestRoute(Y,{signal:m.current?.signal});if(m.current=null,W(!1),!P.result||!new pt(P.requestAmount).isEqualTo(new pt(o||"-1"))){A(ue=>ue.concat({type:0}));return}let I={errors:[],warnings:[]};if(Dt(n,P)){s(P);let ue=new pt(P.result?.outputAmount||"0").multipliedBy(e.usdPrice||0),se=Fe(r,ue);Oe(r,se)?I.errors.push({type:1}):po(n,P)?I.warnings.push({type:3,newOutputAmount:b(he(P)),percentageChange:b(Te(he(n),he(P)),null,2)}):Ze(n,P)?I.warnings.push({type:2}):Ye(n,P)?I.warnings.push({type:0}):Xe(n,P)&&I.warnings.push({type:1})}let z=mo(P,c);z.length===0||I.errors.push({type:4,messages:z});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:g};return Eo(o.toString(),P,nt(c),ue,!1,h)}else f.current||(f.current=!0,A(I.errors),F(I.warnings),S.current=P);return}catch(P){if(P?.code==="ERR_CANCELED")return;let I=P?.response?.status;W(!1),A([{type:2,status:I}]);return}},"confirmSwap")}}i(Io,"useConfirmSwap");import Fo from"react";import{Divider as Vr,Typography as Hr,styled as Gr}from"@rango-dev/ui";import mt from"react";import _r from"react";import{Button as qr}from"@rango-dev/ui";import{useNavigate as $r}from"react-router-dom";function $e(){let t=$r();return _r.createElement(qr,{type:"primary",variant:"outlined",size:"small",onClick:()=>t("/"+d.settings)},"Change Slippage")}i($e,"ChangeSlippageButton");var zr=Gr(Hr,{color:"$error500 !important"});function No({minRequiredSlippage:t}){return mt.createElement(zr,{variant:"body2"},"We recommend you to increase slippage to at least \xA0",t,"\xA0 for this route.",mt.createElement(Vr,{size:8}),mt.createElement($e,null))}i(No,"MinRequiredSlippage");import{Divider as Kr,styled as dt,Typography as Ro}from"@rango-dev/ui";import ce from"react";var jr=dt("ul",{padding:0,margin:0,variants:{showListStyle:{true:{paddingLeft:"$24"}}}}),Qr=dt("li",{variants:{showListStyle:{true:{listStyleType:"disc",listStylePosition:"outside"}}}}),Yr=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(Kr,{size:8}),ce.createElement(jr,{showListStyle:e},t.map((o,n)=>ce.createElement(Qr,{showListStyle:e,key:n},ce.createElement(Yr,{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 Xr}from"@rango-dev/ui";import Oo from"react";function Lo(t){let{selectedSlippage:e}=t;return Oo.createElement(Xr,{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 Zr}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(Zr,{variant:"caption",color:"$error500"},`(${b(n,0,2)}%)`))}i(Ve,"PercentageChange");function $o({customDestinationEnabled:t}){let e=es(),{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(),h=v.use.connectedWallets(),w=v.use.selectedWallets(),k=v.use.customDestination(),g=v.use.setCustomDestination(),y=v.use.initSelectedWallets(),f=v.use.setSelectedWallet(),S=E.use.slippage(),m=E.use.customSlippage(),T=p.use.inputUsdValue(),W=p.use.outputUsdValue(),x=p.use.setInputAmount(),[A,O]=Do(""),F=Vt(s,!!r),[D,Y]=Do(""),{manager:P}=rs(),{loading:I,errors:M,warnings:z,confirmSwap:pe}=Io(),ae=m||S,le=!M.find(L=>L.type===3),{getWalletInfo:me,connect:ue}=ts(),se=n?.result?.swaps[0],de=n?.result?.swaps[n?.result?.swaps.length-1],Mn=b(se?.fromAmount,4,6),Fn=b(de?.toAmount,4,6);Jr(()=>{y(),k&&g("")},[]);let On=n?.result?.swaps[n?.result?.swaps.length-1].to.blockchain,Rt=!!n?.result?.swaps.find(L=>L.from.blockchain===On),We=Pe(h,w,me,Rt?"":D),Ln=i(L=>{let Ke=L;tt(We).forEach(Dn=>ue?.(Dn,Ke))},"handleConnectChain"),Un=Ue(n,u);return V.createElement(os,{requiredWallets:ge(n),selectableWallets:We,setCustomDestination:g,customDestination:k,customDestinationEnabled:t,isValidCustomDestination:To,checkedDestination:!!D,setDestinationChain:Y,onBack:o.bind(null,d.confirmSwap),onConfirm:async()=>{pe?.().then(async L=>{if(L)try{await P?.create("swap",{swapDetails:L},{id:L.requestId}),a(L.requestId),e("/"+d.swaps+`/${L.requestId}`,{replace:!0}),setTimeout(()=>{x("")},0)}catch(Ke){O("Error: "+Ke?.message)}})},isWalletRequired:Rt,onChange:L=>f(L),confirmDisabled:c!=="success"||yo(s,D,k,n,We),handleConnectChain:L=>Ln(L),isExperimentalChain:L=>tt(We).length>0?oo(l,L):!1,previewInputs:V.createElement(V.Fragment,null,V.createElement(lt,{chain:{displayName:se?.from.blockchain||"",logo:se?.from.blockchainLogo||""},token:{symbol:se?.from.symbol||"",image:se?.from.logo||""},usdValue:T,amount:Mn,label:_o("From"),loadingStatus:c!=="success"?c:F}),V.createElement(qo,{size:12}),V.createElement(lt,{chain:{displayName:de?.to.blockchain||"",logo:de?.to.blockchainLogo||""},token:{symbol:de?.to.symbol||"",image:de?.to.logo||""},usdValue:W,amount:Fn,label:_o("To"),loadingStatus:c!=="success"?c:F,percentageChange:V.createElement(Ve,{inputUsdValue:T,outputUsdValue:W})})),previewRoutes:V.createElement(Bo,{routes:n,totalFee:b(Un,0,2)}),loading:I,errors:A?[A,...ft(M)]:ft(M),warnings:gt(z),extraMessages:V.createElement(V.Fragment,null,c==="failed"&&V.createElement(ns,null),c==="failed"&&le&&V.createElement(qo,null),le&&V.createElement(Uo,{selectedSlippage:ae})),confirmButtonTitle:z.length>0||M.length>0?"Proceed anyway!":"Confirm swap!"})}i($o,"ConfirmSwapPage");import{History as ss}from"@rango-dev/ui";import{useManager as is}from"@rango-dev/queue-manager-react";import as from"react";import{useNavigate as ls}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=ls(),{navigateBackFrom:o}=q(),{manager:n,state:s}=is(),r=He(n).map(({swap:l})=>l),a=!s.loadedFromPersistor;return as.createElement(ss,{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 Ns,Button as tn,styled as ke,Typography as on,VerticalSwapIcon as Rs,Header as Ms}from"@rango-dev/ui";import N,{useEffect as Fs,useState as Os}from"react";import{useInRouterContext as Ls,useNavigate as Us}from"react-router-dom";import B from"react";import{AngleDownIcon as us,Button as Tt,InfoCircleIcon as cs,styled as we,TextField as ps,Typography as Ce,Image as zo,Divider as yt}from"@rango-dev/ui";import{useNavigate as ms}from"react-router-dom";import{useTranslation as ds}from"react-i18next";var fs=we("div",{display:"flex",flexDirection:"column",width:"100%",overflow:"hidden"}),gs=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"}}}),hs=we("div",{display:"flex",justifyContent:"flex-end",".balance":{display:"flex",alignItems:"center"}}),Ko=we("span",{width:"24px",height:"24px",backgroundColor:"$neutral100",borderRadius:"99999px"}),Ss=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(),h=p.use.bestRoute(),w=p.use.inputAmount(),k=v.use.connectedWallets(),g=p.use.loading(),y=ms(),{t:f}=ds(),S=r&&u?b(fe(k,r?.name,u?.symbol,u?.address)?.amount||"0",8):"0",m=r&&u?b(fe(k,r?.name,u?.symbol,u?.address)?.amount||"0",fe(k,r?.name,u?.symbol,u?.address)?.decimal):"0",T=B.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"}},s==="failed"&&B.createElement(cs,{color:"error",size:24}),B.createElement(us,null));return B.createElement(fs,null,B.createElement(gs,{type:t.type==="From"?"filled":"outlined"},B.createElement("div",{className:"head"},B.createElement(Ce,{variant:"body2",color:"neutral800"},f(e)),t.type==="From"?B.createElement(hs,null,B.createElement("div",{className:"balance",onClick:()=>{S!=="0"&&c(m.split(",").join(""))}},B.createElement(Ce,{variant:"body3",color:"neutral600"},`${f("Balance")}: ${S} ${u?.symbol||""}`),B.createElement(yt,{size:4}),B.createElement(Tt,{type:"primary",variant:"ghost",size:"compact"},f("Max")))):B.createElement("div",{className:"output-usd"},B.createElement(Ve,{inputUsdValue:l,outputUsdValue:t.outputUsdValue}),B.createElement("div",null,B.createElement(Ce,{variant:"caption",color:"neutral600"},`$${b(t.outputUsdValue)}`)))),B.createElement("div",{className:"form"},B.createElement(Tt,{className:"selectors",onClick:()=>{y(`${t.type.toLowerCase()}-chain`)},variant:"outlined",disabled:s==="failed",loading:s==="loading",prefix:s==="success"&&o?B.createElement(zo,{src:o.logo,size:24}):B.createElement(Ko,null),suffix:T,align:"start",size:"large"},s==="success"&&o?o.displayName:f("Chain")),B.createElement(yt,{size:12,direction:"horizontal"}),B.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?B.createElement(zo,{src:n.image,size:24}):B.createElement(Ko,null),suffix:T,size:"large",align:"start"},s==="success"&&n?n.symbol:f("Token")),B.createElement(yt,{size:12,direction:"horizontal"}),B.createElement("div",{className:"amount"},t.type==="From"?B.createElement(ps,{type:"number",size:"large",autoFocus:!0,placeholder:"0",style:{position:"relative",backgroundColor:"$background !important"},suffix:B.createElement("span",{style:{position:"absolute",right:"4px",bottom:"2px"}},B.createElement(Ce,{variant:"caption",color:"neutral800"},`$${b(l)}`)),value:t.inputAmount||"",min:0,onChange:t.type==="From"?W=>{t.onAmountChange(W.target.value)}:void 0}):B.createElement(Ss,null,B.createElement(Ce,{variant:"h4"},g&&"?",!!h?.result&&`\u2248 ${b(t.outputAmount)}`,(!w||w==="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 Ts}from"react-i18next";var ys=wt("div",{display:"flex",width:"100%",justifyContent:"end",alignItems:"center",paddingTop:"$16"}),Cs=wt("svg",{fill:"$foreground",width:"$24",margin:"0 $8 0 $16"}),ws=wt("a",{display:"flex",justifyContent:"center",alignItems:"center",textDecoration:"none"});function Qo(){let{t}=Ts();return ee.createElement(ys,null,ee.createElement(jo,{variant:"caption",color:"$neutral600"},t("Powered By")),ee.createElement(ws,{href:"https://rango.exchange",target:"_blank"},ee.createElement(Cs,{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 ks,useRef as bs}from"react";import{useSearchParams as Ws}from"react-router-dom";function Yo({count:t}){let e=bs(!0),[o,n]=Ws(),s=p.use.outputAmount();return ks(()=>{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 As}from"@rango-dev/ui";var Xo=As("div",{display:"flex",flexDirection:"column",width:"100%",paddingTop:"$16"});var Zo={genericServerError:"Error connecting server, please reload the app and try again"};import nn from"bignumber.js";import te from"react";import{SettingsIcon as vs,Tooltip as kt,styled as xs,Button as bt,HistoryIcon as Bs,RetryIcon as Es}from"@rango-dev/ui";import{useNavigate as Ps}from"react-router-dom";var Is=xs("div",{display:"flex"});function Jo(t){let{onClickRefresh:e}=t,o=Ps();return te.createElement(Is,null,te.createElement(kt,{content:"Refresh"},te.createElement(bt,{variant:"ghost",onClick:e,disabled:!e},te.createElement(Es,{size:24,disabled:!e}))),te.createElement(kt,{content:"Transactions History"},te.createElement(bt,{variant:"ghost",onClick:()=>o(d.swaps)},te.createElement(Bs,{size:24}))),te.createElement(kt,{content:"Settings"},te.createElement(bt,{variant:"ghost",onClick:()=>o(d.settings)},te.createElement(vs,{size:24}))))}i(Jo,"HeaderButtons");var Ds=ke("div",{display:"flex",flexDirection:"column"}),_s=ke("div",{position:"relative",paddingBottom:"$12"}),qs=ke("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)"}),$s=ke("div",{width:"100%",paddingTop:"$16"}),Vs=ke("div",{width:"100%",paddingTop:"$16"});function rn(){let t=Ls(),e=Us(),[o,n]=Os(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(),h=p.use.inputAmount(),w=p.use.outputAmount(),k=p.use.outputUsdValue(),g=p.use.bestRoute(),y=C.use.meta().tokens,f=p.use.loading(),S=p.use.error(),m=C.use.loadingStatus(),T=v.use.connectedWallets(),W=_.use.setCurrentPage(),x=p.use.switchFromAndTo(),A=m==="failed"?Zo.genericServerError:S,O=!1,F=h&&(!!g||f||S),D=Fe(c,k),Y=Oe(c,D),{fromAmountRangeError:P,recommendation:I,swap:M}=so(g),z=!ao(g,h,c,k),pe=io(m,T,f,g,Le(g),Y,z,O,h),ae=Ue(g,y),le=lo(ae);return Fs(()=>(W(d.home),W.bind(null,"")),[]),N.createElement(Ds,null,N.createElement(Ms,{title:"SWAP",suffix:N.createElement(Jo,{onClickRefresh:g||S?wo:void 0})}),N.createElement(_s,null,N.createElement(Ct,{type:"From",chain:s,token:r,onAmountChange:u,inputAmount:h}),N.createElement(qs,null,N.createElement(tn,{variant:"ghost",onClick:()=>{x(),n(me=>me+1)}},N.createElement(Rs,{size:32}),t&&N.createElement(Yo,{count:o})))),N.createElement(Ct,{type:"To",chain:a,token:l,outputAmount:w?new nn(w):new nn(0),outputUsdValue:k}),F&&N.createElement($s,null,N.createElement(Ns,{error:S,loading:f,data:qt(g),totalFee:b(ae,0,2),feeWarning:le,totalTime:Ot(Lt(g))})),(A||Le(g))&&N.createElement(Vs,null,A&&N.createElement(en,{type:"error"},A),Le(g)&&N.createElement(en,{type:"error",title:`${M?.swapperId} Limit`},N.createElement(N.Fragment,null,N.createElement(on,{variant:"body2"},`${P}, Yours: ${b(M?.fromAmount||null)} ${M?.from.symbol}`),N.createElement(on,{variant:"body2"},I)))),N.createElement(Xo,null,N.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),N.createElement(Qo,null)))}i(rn,"Home");import{LiquiditySourcesSelector as Hs}from"@rango-dev/ui";import Gs from"react";function sn({supportedSwappers:t}){let e=C.use.meta().swappers,o=C.use.loadingStatus(),n=E.use.toggleLiquiditySource(),s=E.use.disabledLiquiditySources(),r=E.use.toggleAllLiquiditySources(),{navigateBackFrom:a}=q(),l=[];return H(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)})}),Gs.createElement(Hs,{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 zs from"react";import{BlockchainSelector as Ks}from"@rango-dev/ui";function Wt(t){let{type:e,supportedChains:o}=t,n=o?C.use.meta().blockchains.filter(h=>o.includes(h.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 zs.createElement(Ks,{type:e==="from"?"Source":"Destination",list:n,selected:e==="from"?r:a,loadingStatus:s,onChange:h=>{e==="from"?l(h,!0):u(h,!0),c(d.fromChain)},onBack:c.bind(null,d.fromChain)})}i(Wt,"SelectChainPage");import js from"react";import{TokenSelector as Qs}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(g=>n.some(y=>K(y,g))):s,l=n?r.filter(g=>n.some(y=>K(y,g))):r,u=p.use.fromToken(),c=p.use.toToken(),h=p.use.setFromToken(),w=p.use.setToToken(),k=C.use.loadingStatus();return js.createElement(Qs,{type:o==="from"?"Source":"Destination",list:o=="from"?a:l,selected:o==="from"?u:c,onChange:g=>{o==="from"?h(g):w(g),e(d.fromToken)},onBack:e.bind(null,d.fromToken),loadingStatus:k})}i(At,"SelectTokenPage");import Ys from"react";import{Settings as Xs}from"@rango-dev/ui";import{useNavigate as Zs}from"react-router-dom";function an({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=C.use.meta().swappers,h=Zs(),{navigateBackFrom:w}=q(),k=E.use.infiniteApprove(),g=E.use.toggleInfiniteApprove(),y=C.use.loadingStatus(),f=[];H(c.map(m=>m.swapperGroup)).map(m=>c.find(T=>T.swapperGroup===m)).find(m=>{if(m)for(let T of m.types)f.push({title:m.swapperGroup,logo:m.logo,type:T,selected:!s.includes(m.swapperGroup)})}),t&&f.filter(m=>t.filter(T=>T===m.title).length>0);let S=t?f.filter(m=>t.filter(T=>T===m.title).length>0):f;return Ys.createElement(Xs,{slippages:Gt,selectedSlippage:o,onSlippageChange:m=>n(m),onLiquiditySourcesClick:()=>h(d.liquiditySources),onBack:w.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:k,toggleInfiniteApprove:g,loadingStatus:y})}i(an,"SettingsPage");import{Alert as ei,SecondaryPage as ti,styled as vt,Wallet as oi,WalletState as un}from"@rango-dev/ui";import oe,{useEffect as cn,useRef as ni,useState as ri}from"react";import{WalletTypes as si,detectMobileScreens as ii}from"@rango-dev/wallets-shared";import{useWallets as ai}from"@rango-dev/wallets-core";import{useTranslation as li}from"react-i18next";import{Spinner as ui}from"@rango-dev/ui";import{LoadingFailedAlert as ci}from"@rango-dev/ui";import{allProviders as Js}from"@rango-dev/provider-all";function Ge(t){let e=Js();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 pi=vt("div",{display:"grid",gap:".5rem",gridTemplateColumns:" repeat(2, minmax(0, 1fr))",alignContent:"baseline",padding:"0.5rem",overflowY:"auto"}),mi=vt("div",{display:"flex",justifyContent:"center",width:"100%",position:"absolute",top:"50%"}),di=vt("div",{paddingBottom:"$16"}),fi=Object.values(si);function pn({supportedWallets:t,multiWallets:e}){let{navigateBackFrom:o}=q(),{state:n,disconnect:s,getWalletInfo:r,connect:a}=ai(),l=Xt(n,r,ln(t)||fi),u=ni(),c=ii()?l.filter(m=>m.showOnMobile):l;c=no(c);let[h,w]=ri(""),k=_.use.toggleConnectWalletsButton(),g=C.use.loadingStatus(),{t:y}=li(),f=i(async m=>{let T=n(m);try{if(h&&w(""),T.connected)await s(m);else{if(!e&&l.find(W=>W.state===un.CONNECTED))return;await a(m)}}catch(W){w("Error: "+W?.message)}},"onSelectWallet"),S=i(()=>{let m=u.current?.filter(T=>T.state===un.CONNECTING)||[];for(let T of m)s(T.type)},"disconnectConnectingWallets");return cn(()=>(k(),()=>{S(),k()}),[]),cn(()=>{u.current=l},[l]),oe.createElement(ti,{title:y("Select Wallet")||"",textField:!1,onBack:o.bind(null,d.wallets)},oe.createElement(oe.Fragment,null,h&&oe.createElement(di,null,oe.createElement(ei,{type:"error",title:h})),g==="loading"&&oe.createElement(mi,{className:"loader"},oe.createElement(ui,{size:24})),g==="failed"&&oe.createElement(ci,null),oe.createElement(pi,null,g==="success"&&c.map((m,T)=>oe.createElement(oi,{...m,key:`${T}-${m.type}`,onClick:f})))))}i(pn,"WalletsPage");import hn from"react";import{useManager as Ci}from"@rango-dev/queue-manager-react";import{SwapHistory as wi,useCopyToClipboard as ki}from"@rango-dev/ui";import{cancelSwap as bi,PendingSwapNetworkStatus as Wi}from"@rango-dev/queue-manager-rango-preset";import{useWallets as Ai}from"@rango-dev/wallets-core";import{getCurrentBlockchainOfOrNull as vi,getCurrentStep as xi,getRelatedWalletOrNull as Bi}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 Ei}from"react-router-dom";import be from"react";import{SecondaryPage as gi,Spinner as hi,Alert as Si,styled as fn}from"@rango-dev/ui";var Ti=fn("div",{height:"450px"}),yi=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(gi,{title:"Swap Details",textField:!1,onBack:n},be.createElement(Ti,null,o?be.createElement(yi,null,be.createElement(hi,{size:24})):be.createElement(Si,{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}=Ai(),s=p.use.retry(),r=Ei(),{navigateBackFrom:a}=q(),[l,u]=ki(2e3),{manager:c,state:h}=Ci(),k=He(c).find(({swap:M})=>M.requestId===t),g=i(()=>{let M=c?.get(k?.id);M&&bi(M)},"onCancel"),y=k?.swap,f=!h.loadedFromPersistor;if(!y)return hn.createElement(gn,{requestId:t||"",loading:f,onBack:a.bind(null,d.swapDetails)});let S=xi(y),m=S?vi(y,S):null,T=S?Bi(y,S):null,W=S?.networkStatus,x=go(y,S),A=rt(S),O=dn(y),F=So(y),D=i(M=>!!n(M)?.mobileWallet,"isMobileWallet"),P=W===Wi.WaitingForNetworkChange&&!!m&&!!T?.walletType&&(D(T.walletType)||e(T.walletType,m))?o.bind(null,T.walletType,m):void 0,I=ho(y);return hn.createElement(wi,{onBack:a.bind(null,d.swapDetails),pendingSwap:$t(y),onCopy:u,isCopied:l,onCancel:g,shortMessage:x.shortMessage,detailedMessage:x.detailedMessage,currentStepBlockchain:m||"",switchNetwork:P,type:A?"warning":y.extraMessageSeverity||void 0,date:O,...F&&{onRetry:()=>{s(y),setTimeout(()=>{r(d.home)},0)}},...I&&{lastConvertedTokenInFailedSwap:{blockchain:I.blockchain,outputAmount:I.outputAmount||"",symbol:I.symbol}}})}i(Sn,"SwapDetailsPage");var Ii=i(t=>t.replace("/",""),"getAbsolutePath");function Tn(t){let{config:e}=t;return Pi([{path:d.home,element:j.createElement(rn,null)},{path:d.fromChain,element:j.createElement(Wt,{type:"from",supportedChains:e?.from?.blockchains})},{path:d.toChain,element:j.createElement(Wt,{type:"to",supportedChains:e?.to?.blockchains})},{path:d.fromToken,element:j.createElement(At,{type:"from",supportedTokens:e?.from?.tokens})},{path:d.toToken,element:j.createElement(At,{type:"to",supportedTokens:e?.to?.tokens})},{path:d.settings,element:j.createElement(an,{singleTheme:e?.theme?.singleTheme,supportedSwappers:e?.liquiditySources})},{path:d.liquiditySources,element:j.createElement(sn,{supportedSwappers:e?.liquiditySources})},{path:d.swaps,element:j.createElement(Go,null)},{path:d.swapDetails,element:j.createElement(Sn,null)},{path:d.wallets,element:j.createElement(pn,{supportedWallets:e?.wallets,multiWallets:typeof e?.multiWallets>"u"?!0:e.multiWallets})},{path:Ii(d.confirmSwap),element:j.createElement($o,{customDestinationEnabled:e?.customDestination})}])}i(Tn,"AppRoutes");import{useTranslation as Di}from"react-i18next";var _i=xt("div",{display:"flex",width:"100%",justifyContent:"end",".balance":{display:"flex"}}),qi=xt("div",{display:"flex",paddingLeft:"12px"}),$i=xt("div",{marginLeft:-15,marginRight:"$6","& img":{borderRadius:"50%"}});function yn({config:t}){let e=Li(),{connectedWallets:o,selectedWallets:n}=v(),{getWalletInfo:s}=Ui(),r=H(Pe(o,n,s).map(W=>W.image)),{blockchains:a,tokens:l}=C.use.meta(),u=p.use.setFromChain(),c=p.use.setFromToken(),h=p.use.setToChain(),w=p.use.setToToken(),k=p.use.setInputAmount(),g=E.use.setAffiliateRef(),y=to(o),f=_.use.connectWalletsButtonDisabled(),S=C.use.loadingStatus(),m=v(Co),{t:T}=Di();return ze(()=>{if(S==="success"){let W=a.find(A=>A.name===t?.to?.blockchain),x=l.find(A=>K(A,t?.to?.token||null));h(W||null),w(x||null)}},[t?.to?.token,t?.to?.blockchain,S]),ze(()=>{k(t?.amount?.toString()||"")},[t?.amount]),ze(()=>{if(S==="success"){let W=a.find(A=>A.name===t?.from?.blockchain),x=l.find(A=>K(A,t?.from?.token||null));u(W||null),c(x||null)}},[t?.from?.token,t?.from?.blockchain,S]),ze(()=>{g(t?.affiliateRef||null)},[t?.affiliateRef]),G.createElement(G.Fragment,null,G.createElement(_i,null,G.createElement(Ni,{size:"small",suffix:G.createElement(Ri,{size:20}),variant:"ghost",flexContent:!0,loading:S==="loading",disabled:S==="failed",onClick:()=>{f||e(d.wallets)},prefix:r?.length?G.createElement(qi,null,r.map((W,x)=>G.createElement($i,{key:x},G.createElement(Oi,{src:W,size:24})))):null},G.createElement("div",{className:"balance"},G.createElement(Mi,{variant:"body2"},o?.length?`$${y||0}`:T("Connect Wallet")),m&&G.createElement(Fi,null)))),G.createElement(Tn,{config:t}))}i(yn,"Layout");import{globalCss as Vi}from"@rango-dev/ui";var Cn=i(t=>Vi({"@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 Q}from"@rango-dev/ui";import{useState as zi,useEffect as kn,useLayoutEffect as Ki}from"react";import{useEffect as Hi,useRef as Gi}from"react";function Bt(t){let e=Gi();return Hi(()=>{e.current=t},[t]),e.current}i(Bt,"usePrevious");function bn({colors:t,fontFamily:e="Roboto",borderRadius:o=8,mode:n="auto"}){let s=E.use.theme(),r=C.use.fetchMeta(),a=E.use.setTheme(),l=t?.light,u=t?.dark,c=l?.neutral||"#fafafa",h=l?.background||"#fff",w=l?.foreground||"#000",k={...Q("primary","dark",u?.primary),...Q("error","dark",u?.error),...Q("warning","dark",u?.warning),...Q("success","dark",u?.success),...Q("neutral","dark",u?.neutral),surface:u?.surface,background:u?.background,foreground:u?.foreground},g={surface:l?.surface||"#fff",...Q("primary","light",l?.primary||"#5FA425"),...Q("error","light",l?.error||"#FF0000"),...Q("warning","light",l?.warning||"#F5A623"),...Q("success","light",l?.success||"#0070F3"),...Q("neutral","light",c),background:h,foreground:w},y=wn({colors:g,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:{...g,...Q("neutral","dark","#111111"),foreground:h,background:w,surface:"#000",...JSON.parse(JSON.stringify(k))},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]=zi("light");kn(()=>{(async()=>await r())();let x=i(A=>{A.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",x),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",x)}},[]),kn(()=>{n!=="auto"&&a(n)},[n]);let T=Bt(e);return Ki(()=>{let{classList:x}=document.body;T&&x.remove(`font_${T.replace(/ /g,"")}`),x.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 ji}from"react-i18next";function Et(){let{i18n:t}=ji(),e=t?.language||"en";return{changeLanguage:i(n=>{e!==n&&t.changeLanguage(n)},"changeLanguage"),currentLanguage:e}}i(Et,"useSelectLanguage");import Xi from"i18next";import{initReactI18next as Zi}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 Ji from"i18next-http-backend";import ea from"i18next-browser-languagedetector";var ta=["en","tr"];Xi.use(Ji).use(ea).use(Zi).init({resources:{en:{translation:Wn},tr:{translation:An}},fallbackLng:"en",debug:!0,whitelist:ta});import oa,{useMemo as na}from"react";import{Provider as ra}from"@rango-dev/queue-manager-react";import{makeQueueDefinition as sa,checkWaitingForNetworkChange as ia}from"@rango-dev/queue-manager-rango-preset";import{useWallets as aa}from"@rango-dev/wallets-core";import{convertEvmBlockchainMetaToEvmChainInfo as la}from"@rango-dev/wallets-shared";import{isEvmBlockchain as ua}from"rango-types";function ca(t){let{providers:e,getSigners:o,state:n,connect:s,canSwitchNetworkTo:r,getWalletInfo:a}=aa(),l=na(()=>sa({API_KEY:ve("API_KEY")}),[]),{blockchains:u}=C.use.meta(),h={blockchains:v.use.connectedWallets().map(T=>({accounts:[T],name:T.chain}))},w=i((T,W)=>{if(r(T,W))return s(T,W)},"switchNetwork"),k=i(T=>!!a(T).mobileWallet,"isMobileWallet"),g=u.filter(T=>T.enabled).reduce((T,W)=>(T[W.name]=W,T),{}),y=u.filter(ua),f=i(T=>{let{supportedChains:W}=a(T);return Ee(W)},"getSupportedChainNames"),S=e(),m={meta:{blockchains:g,evmBasedChains:y,evmNetworkChainInfo:la(y),getSupportedChainNames:f},getSigners:o,wallets:h,providers:S,switchNetwork:w,canSwitchNetworkTo:r,connect:s,state:n,isMobileWallet:k};return oa.createElement(ra,{queuesDefs:[l],context:m,onPersistedDataLoaded:T=>{ia(T)},isPaused:!1},t.children)}i(ca,"QueueManager");var vn=ca;import Bn from"react";import{Events as Pt,Provider as ma}from"@rango-dev/wallets-core";import{isEvmBlockchain as da}from"rango-sdk";import{useEffect as pa}from"react";function xn(t){let e=v.use.clearConnectedWallet(),o=Ge(void 0);return pa(()=>{e(),o=Ge(t)},[t]),{providers:o}}i(xn,"useWalletProviders");import{createContext as fa,useRef as ga}from"react";var It=fa({onConnectWallet:()=>{}});function Nt(t){let{blockchains:e}=C.use.meta(),{providers:o}=xn(t.providers),n=v.use.disconnectWallet(),s=v.use.connectWallet(),r=ga(),a=e.filter(da).map(u=>u.name),l=i((u,c,h,w,k)=>{if(c===Pt.ACCOUNTS)if(h){let g=Ee(k),y=Zt(u,h,a,g);s(y)}else n(u);if(c===Pt.ACCOUNTS&&w.connected){let g=`${u}-${w.network}-${h}`;w.connected&&(r.current?r.current(g):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(c===Pt.NETWORK&&w.network){let g=`${u}-${w.network}`;r.current?r.current(g):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"onUpdateState");return Bn.createElement(It.Provider,{value:{onConnectWallet:u=>{r.current=u}}},Bn.createElement(ma,{allBlockChains:e,providers:o,onUpdateState:l},t.children))}i(Nt,"WidgetWallets");import{useEffect as ha}from"react";import{useEvents as Sa,MainEvents as Ta,StepEventType as En,StepExecutionEventStatus as ya,isApprovalTX as Ca}from"@rango-dev/queue-manager-rango-preset";function Pn(){let t=v.use.connectedWallets(),e=v.use.getOneOfWalletsDetails(),o=Sa();return ha(()=>(o.on(Ta.StepEvent,n=>{let{event:s,step:r}=n;if(s.type===En.TX_EXECUTION&&s.status===ya.TX_SENT&&Ca(r)||s.type===En.SUCCEEDED){let l=t.find(c=>c.chain===r?.fromBlockchain),u=r?.fromBlockchain!==r?.toBlockchain&&t.find(c=>c.chain===r?.toBlockchain);l&&e(l),u&&e(u)}}),()=>o.all.clear()),[o,t.length]),null}i(Pn,"WidgetEvents");var Aa=ka("div",{width:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function Rn(t){let{config:e}=t;Cn(e?.theme?.fontFamily||"Roboto");let{activeTheme:o}=bn(e?.theme||{}),{changeLanguage:n}=Et(),[s,r]=Nn(""),[a,l]=Nn(),u=_.use.currentPage(),c=ba(It);return Wa(()=>{e?.apiKey&&Ht({API_KEY:e?.apiKey})},[e]),In(()=>{n(e?.language||"en")},[e?.language]),In(()=>{c.onConnectWallet(r)},[]),re.createElement(Aa,{id:"swap-container",className:o},re.createElement(vn,null,re.createElement(Pn,null),re.createElement(wa,{fixedHeight:u!==d.home},re.createElement(bo,{lastConnectedWallet:s,disconnectedWallet:a,clearDisconnectedWallet:()=>{l(void 0)}},re.createElement(yn,{config:e})))))}i(Rn,"Main");function va(t){return t.config?.externalWallets?re.createElement(Rn,{...t}):re.createElement(Nt,{providers:t.config?.wallets},re.createElement(Rn,{...t}))}i(va,"Widget");import{useWallets as Ah}from"@rango-dev/wallets-core";import{useEvents as xh,MainEvents as Bh,RouteEventType as Oh,StepEventType as Gh,StepExecutionEventStatus as zh,StepExecutionBlockedEventStatus as Kh}from"@rango-dev/queue-manager-rango-preset";export{Bh as MainEvents,Oh as RouteEventType,Gh as StepEventType,Kh as StepExecutionBlockedEventStatus,zh as StepExecutionEventStatus,va as Widget,Nt as WidgetWallets,Ah as useWallets,xh as useWidgetEvents};
|
|
1
|
+
var _n=Object.defineProperty;var i=(t,e)=>_n(t,"name",{value:e,configurable:!0});import{SwapContainer as wa,styled as ka}from"@rango-dev/ui";import re,{useContext as ba,useEffect as In,useMemo as Wa,useState as Nn}from"react";import _e,{Fragment as yr}from"react";import{MemoryRouter as Cr,useInRouterContext as wr}from"react-router";import{useQueueManager as kr}from"@rango-dev/queue-manager-rango-preset";import{useEffect as st,useRef as it}from"react";import{createSearchParams as hr,useLocation as Sr,useSearchParams as Tr}from"react-router-dom";import{create as pr}from"zustand";import ne from"bignumber.js";import qn from"bignumber.js";var L=new qn(0);import Oa from"bignumber.js";function H(t){return Array.from(new Set(t))}i(H,"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"),b=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 Ut=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 Lt(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(Lt,"getBestRouteToTokenUsdPrice");function Ye(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}i(Ye,"isNumberOfSwapsChanged");function Xe(t,e){let o=t.result?.swaps.map(s=>s.swapperId)||[],n=e.result?.swaps.map(s=>s.swapperId)||[];return!je(o,n)}i(Xe,"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!je(o,n)}i(Ze,"isRouteInternalCoinsUpdated");function Dt(t,e){return Ye(t,e)||Xe(t,e)||Ze(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:b(o.fromAmount,6,6),toAmount:b(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:b(o.feeInUsd,4,4),outputAmount:b(o.outputAmount,6,6),expectedOutputAmountHumanReadable:b(o.expectedOutputAmountHumanReadable,6,6)}));return{...t,inputAmount:b(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"),X=$n;import{subscribeWithSelector as mr}from"zustand/middleware";import{RangoClient as Hn}from"rango-sdk";var Vn="c6381a79-2817-4602-83bf-6a641a409e32",et={API_KEY:Vn};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 ve,ie=i(()=>ve||(ve=new Hn(xe("API_KEY")),ve),"httpService");import{create as zn}from"zustand";import{persist as Kn,subscribeWithSelector as jn}from"zustand/middleware";var Gt=[.5,1,3,5,8,13,20],zt=1,Kt=5,jt=100,Qt=0;import{create as Gn}from"zustand";var C=X(Gn()(t=>({meta:{blockchains:[],popularTokens:[],swappers:[],tokens:[]},loadingStatus:"loading",fetchMeta:async()=>{try{let e=await ie().getAllMetadata(),o=H(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=X(zn()(Kn(jn(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=H(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 Yn,KEPLR_COMPATIBLE_WALLETS as Xn,detectInstallLink as Zn,WalletTypes as Jn,Networks as Yt}from"@rango-dev/wallets-shared";import{WalletState as Z}from"@rango-dev/ui";import{isCosmosBlockchain as er}from"rango-types";import{readAccountAddress as tr}from"@rango-dev/wallets-core";import Be from"bignumber.js";function or(t){switch(!0){case t.connected:return Z.CONNECTED;case t.connecting:return Z.CONNECTING;case!t.installed:return Z.NOT_INSTALLED;default:return Z.DISCONNECTED}}i(or,"getStateWallet");var nr=[Jn.LEAP];function Xt(t,e,o){return o.filter(n=>!nr.includes(n)).map(n=>{let{name:s,img:r,installLink:a,showOnMobile:l}=e(n),u=or(t(n));return{name:s,image:r,installLink:Zn(a),state:u,type:n,showOnMobile:!(typeof l>"u")}})}i(Xt,"getlistWallet");function Ee(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Ee,"walletAndSupportedChainsNames");function Zt(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}=tr(l),g=a.length>0,w=a.includes(c),k=c===Yt.Unknown;if(g&&!w&&!k)return;let y=c===Yt.Unknown&&Yn(u);if(k&&!y)return;o.includes(c)||y?a.filter(m=>o.includes(m)).forEach(m=>{r(m,u.toLowerCase())}):r(c,u)}),s}i(Zt,"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 Be(l.amount.amount).shiftedBy(-l.amount.decimals).toFixed(),logo:"",usdPrice:sr(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=b(n?.flatMap(r=>r.accounts)?.flatMap(r=>r?.balances)?.map(r=>new Be(r?.amount||L).multipliedBy(r?.usdPrice||0))?.reduce((r,a)=>r.plus(a),L)||L).toString();return rr(s)},"calculateWalletUsdValue");function rr(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(rr,"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"),sr=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=Qn(Object.entries(t).map(([,n])=>n).filter(er));return o&&!!o[e]},"isExperimentalChain"),tt=i(t=>{let e=new Set(t.map(o=>o.walletType));return Xn.filter(o=>e.has(o))},"getKeplrCompatibleConnectedWallets");function Re(t,e){return t.map(({balance:o,...n})=>{let s=b(new Be(fe(e,n.blockchain,n.symbol,n.address)?.amount||L)),r="";return n.usdPrice&&(r=b(new Be(fe(e,n.blockchain,n.symbol,n.address)?.amount||L).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 K(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(K,"tokensAreEqual");function ot(t,e){let o,n=t[0],s=t[1];return t.length===1?o=n:K(n,e)?o=s:o=n,o}i(ot,"getDefaultToken");function no(t){return t.sort((e,o)=>+(o.state===Z.CONNECTED)-+(e.state===Z.CONNECTED)||+(o.state===Z.DISCONNECTED||o.state===Z.CONNECTING)-+(e.state===Z.DISCONNECTED||e.state===Z.CONNECTING))}i(no,"sortWalletsBasedOnState");import{PendingSwapNetworkStatus as Me}from"@rango-dev/queue-manager-rango-preset";function Fe(t,e){return t.lte(L)||e.lte(L)?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 Ue(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(Ue,"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: >= ${b(o)} ${e.from.symbol}`,a="Increase your swap amount"):s&&o&&o.gte(e.fromAmount)&&(r=`Required: > ${b(o)} ${e.from.symbol}`,a="Increase your swap amount"),!s&&n&&n.lt(e.fromAmount)?(r=`Required: <= ${b(n)} ${e.from.symbol}`,a="Decrease your swap amount"):s&&n&&n.lte(e.fromAmount)&&(r=`Required: < ${b(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(L)||n.lte(L))&&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 ir=i((t,e,o,n)=>n?.find(r=>r.blockchain===t&&r.symbol?.toUpperCase()===e?.toUpperCase()&&r.address===o)?.usdPrice||null,"getUsdPrice");function ar(t,e){let o=L;for(let n=0;n<t.fee.length;n++){let s=t.fee[n];if(s.expenseType==="DECREASE_FROM_OUTPUT")continue;let r=ir(s.asset.blockchain,s.asset.symbol,s.asset.address,e);o=o.plus(new $(s.amount).multipliedBy(r||0))}return o}i(ar,"getUsdFeeOfStep");function Le(t,e){return t?.result?.swaps.reduce((o,n)=>o.plus(ar(n,e)),L)||null}i(Le,"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),{}),w=[];n.forEach(f=>{let S=w.find(m=>m.blockchain===f.chain);S?S.addresses.push(f.address):w.push({blockchain:f.chain,addresses:[f.address]})});let k=!!u,h=H((u?.result?.swaps||[]).reduce((f,S)=>(f.push(S.from.blockchain,S.to.blockchain),f),[]));return{amount:o.toString(),affiliateRef:l,checkPrerequisites:k,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:g,swapperGroups:r,swappersGroupsExclude:!0,slippage:a.toString(),...k&&{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=b(new $(r.currentAmount.amount).shiftedBy(-r.currentAmount.decimals),8),u=b(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):L).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 lr}from"zustand";import{subscribeWithSelector as ur}from"zustand/middleware";import{shallow as cr}from"zustand/shallow";var x=X(lr()(ur((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 ie().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)}))}}}))));x.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:cr});var Co=i(t=>!!t.connectedWallets.find(e=>e.loading),"fetchingBalanceSelector");var ye=i((t,e)=>new ne(e||L).multipliedBy(t?.usdPrice||0),"getUsdValue"),p=X(pr()(mr(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=L;return Ae(o.inputAmount)?(e&&(n=e.result?.outputAmount?new ne(e.result?.outputAmount):null,s=fo(e.result?.outputAmount,Lt(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=x.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=x.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=x.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=>K(f,{blockchain:a.fromBlockchain,symbol:a.fromSymbol,address:a.fromSymbolAddress})),w=o.find(f=>K(f,{blockchain:l.toBlockchain,symbol:l.toSymbol,address:l.toSymbolAddress})),k=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:w,bestRoute:null,loading:!1,error:"",sourceTokens:k,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()||"")}))})))),dr=i((t,e)=>{let o=null,n=i(()=>{let{fromToken:a,toToken:l,inputAmount:u,resetRoute:c}=t.getState(),{slippage:g,customSlippage:w,disabledLiquiditySources:k,affiliateRef:h}=e.getState();if(!a||!l||!Ae(u))return;o?.abort(),o=new AbortController;let f=De(a,l,u,[],[],k,w||g,h);t.getState().loading||c(),ie().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(K(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})}),E.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}=dr(p,E);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 fr}from"zustand";var _=X(fr()(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]=Tr(),n=Sr(),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(),w=p.use.setFromToken(),k=p.use.setToChain(),h=p.use.setToToken(),y=p.use.inputAmount(),f=p.use.setInputAmount(),S=C.use.loadingStatus(),{blockchains:m,tokens:T}=C.use.meta(),W=_.use.setSelectedSwap();return st(()=>{let v={};hr(s.current).forEach((O,F)=>{v[F]=O}),r.current=v;let A=n.pathname.split(d.swaps+"/")[1]||null;A&&W(A)},[]),st(()=>{if(!t.current){let v="",A="",O="",F="",D="";if(S!=="success")v=r.current["fromChain"],A=r.current["fromToken"],O=r.current["toChain"],F=r.current["toToken"],D=r.current["fromAmount"]||y;else{if(n.state==="redirect")return;v=a?.name||"",A=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),O=l?.name||"",F=(c?.symbol||"")+(c?.address?`--${c?.address}`:""),D=y}o({...v&&{["fromChain"]:v},...A&&{["fromToken"]:A},...O&&{["toChain"]:O},...F&&{["toToken"]:F},...D&&{["fromAmount"]:D.toString()}},{replace:!0})}t.current=!1},[n.pathname,y,a,u,l,c]),st(()=>{if(S==="success"){let v=e.get("fromChain"),A=e.get("fromToken"),O=e.get("toChain"),F=e.get("toToken"),D=e.get("fromAmount"),Y=m.find(z=>z.name===v),P=Qe(T,A,Y||null),I=m.find(z=>z.name===O),M=Qe(T,F,I||null);Y&&(g(Y),P&&w(P)),I&&(k(I),M&&h(M)),D&&f(D)}},[S]),null}i(ko,"UpdateUrl");import{useWallets as br}from"@rango-dev/wallets-core";import{isEvmBlockchain as Wr}from"rango-types";function bo({children:t,...e}){let o=wr(),n=o?yr:Cr,{blockchains:s}=C.use.meta(),{canSwitchNetworkTo:r}=br(),a=s.filter(Wr);return kr({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,canSwitchNetworkTo:r}),_e.createElement(_e.Fragment,null,_e.createElement(n,null,t),o&&_e.createElement(ko,null))}i(bo,"AppRouter");import{Button as Ni,AddWalletIcon as Ri,Typography as Mi,styled as vt,Spinner as Fi,Image as Oi}from"@rango-dev/ui";import G,{useEffect as ze}from"react";import{useNavigate as Ui}from"react-router-dom";import{useWallets as Li}from"@rango-dev/wallets-core";import j from"react";import{useRoutes as Pi}from"react-router-dom";import V,{useEffect as Jr,useState as Do}from"react";import{useNavigate as es}from"react-router-dom";import{useWallets as ts}from"@rango-dev/wallets-core";import{useInRouterContext as Ar,useNavigate as xr}from"react-router-dom";function q(){let t=Ar(),e=xr();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 R from"react";import{Button as Wo,InfoCircleIcon as vr,styled as qe,Typography as at,Divider as Ao,Image as xo}from"@rango-dev/ui";import{useTranslation as Br}from"react-i18next";var Er=qe("div",{display:"flex",flexDirection:"column",width:"100%",overflow:"hidden"}),Pr=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%"}}}),vo=qe("span",{width:"24px",height:"24px",backgroundColor:"$neutral100",borderRadius:"99999px"}),Ir=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}=Br(),a=R.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"}},n==="failed"&&R.createElement(vr,{color:"error",size:24}));return R.createElement(Er,null,R.createElement(Pr,{type:"outlined"},R.createElement("div",{className:"head"},R.createElement(at,{variant:"body2",color:"neutral800"},t.label),R.createElement("div",null,s,t.usdValue&&R.createElement(at,{variant:"caption",color:"neutral600",className:"usd-value"},`$${b(t.usdValue)}`))),R.createElement("div",{className:"form"},R.createElement(Wo,{className:"selectors",variant:"outlined",loading:n==="loading",prefix:n==="success"&&e?R.createElement(xo,{src:e.logo,size:24}):R.createElement(vo,null),suffix:a,align:"start",size:"large"},n==="success"&&e?e.displayName:r("Chain")),R.createElement(Ao,{size:12,direction:"horizontal"}),R.createElement(Wo,{className:"selectors",variant:"outlined",loading:n==="loading",prefix:n==="success"&&o?R.createElement(xo,{src:o.image,size:24}):R.createElement(vo,null),suffix:a,size:"large",align:"start"},n==="success"&&o?o.symbol:r("Token")),R.createElement(Ao,{size:12,direction:"horizontal"}),R.createElement("div",{className:"amount"},R.createElement(Ir,null,R.createElement(at,{variant:"h4"},t.amount))))))}i(lt,"TokenPreview");import{t as _o}from"i18next";import{Divider as qo,ConfirmSwap as os,LoadingFailedAlert as ns}from"@rango-dev/ui";import J from"react";import{styled as Nr,ChevronRightIcon as Rr,GasIcon as Mr,Divider as Fr}from"@rango-dev/ui";var Or=Nr("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 Ur(t){if(!t.routes)return null;let e=t.routes.result?.swaps;return J.createElement(Or,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(Rr,{size:12}),s?J.createElement("div",{className:"route"},o.to.symbol):null)})),t.totalFee?J.createElement("div",{className:"fee"},J.createElement(Mr,{size:12}),J.createElement(Fr,{size:4,direction:"horizontal"}),"$",t.totalFee):null)}i(Ur,"RoutesOverview");var Bo=Ur;import{useManager as rs}from"@rango-dev/queue-manager-react";import{useEffect as Dr,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=E.use.affiliateRef(),l=x.use.connectedWallets(),u=x.use.customDestination(),c=x.use.selectedWallets(),g=C.use.meta(),w=E.use.customSlippage(),k=E.use.slippage(),h=E.use.disabledLiquiditySources(),y=w||k,f=ut(!1),S=ut(null),m=ut(null),[T,W]=ct(!1),[v,A]=ct([]),[O,F]=ct([]);return Dr(()=>()=>m.current?.abort(),[]),!t||!e||!o||!n?{loading:!1,warnings:[],errors:[],confirmSwap:null}:{loading:T,warnings:O,errors:v,confirmSwap:i(async()=>{if(f.current){let P={slippage:y.toString(),disabledSwappersGroups:h};return v.length>0&&A([]),O.length>0&&F([]),f.current=!1,S.current?Eo(o.toString(),S.current,nt(c),P,!1,g):void 0}m.current=new AbortController,W(!0);let Y=De(t,e,o,l,c,h,y,a,n,u);try{let P=await ie().getBestRoute(Y,{signal:m.current?.signal});if(m.current=null,W(!1),!P.result||!new pt(P.requestAmount).isEqualTo(new pt(o||"-1"))){A(ue=>ue.concat({type:0}));return}let I={errors:[],warnings:[]};if(Dt(n,P)){s(P);let ue=new pt(P.result?.outputAmount||"0").multipliedBy(e.usdPrice||0),se=Fe(r,ue);Oe(r,se)?I.errors.push({type:1}):po(n,P)?I.warnings.push({type:3,newOutputAmount:b(he(P)),percentageChange:b(Te(he(n),he(P)),null,2)}):Ze(n,P)?I.warnings.push({type:2}):Ye(n,P)?I.warnings.push({type:0}):Xe(n,P)&&I.warnings.push({type:1})}let z=mo(P,c);z.length===0||I.errors.push({type:4,messages:z});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(),P,nt(c),ue,!1,g)}else f.current||(f.current=!0,A(I.errors),F(I.warnings),S.current=P);return}catch(P){if(P?.code==="ERR_CANCELED")return;let I=P?.response?.status;W(!1),A([{type:2,status:I}]);return}},"confirmSwap")}}i(Io,"useConfirmSwap");import Fo from"react";import{Divider as Vr,Typography as Hr,styled as Gr}from"@rango-dev/ui";import mt from"react";import _r from"react";import{Button as qr}from"@rango-dev/ui";import{useNavigate as $r}from"react-router-dom";function $e(){let t=$r();return _r.createElement(qr,{type:"primary",variant:"outlined",size:"small",onClick:()=>t("/"+d.settings)},"Change Slippage")}i($e,"ChangeSlippageButton");var zr=Gr(Hr,{color:"$error500 !important"});function No({minRequiredSlippage:t}){return mt.createElement(zr,{variant:"body2"},"We recommend you to increase slippage to at least \xA0",t,"\xA0 for this route.",mt.createElement(Vr,{size:8}),mt.createElement($e,null))}i(No,"MinRequiredSlippage");import{Divider as Kr,styled as dt,Typography as Ro}from"@rango-dev/ui";import ce from"react";var jr=dt("ul",{padding:0,margin:0,variants:{showListStyle:{true:{paddingLeft:"$24"}}}}),Qr=dt("li",{variants:{showListStyle:{true:{listStyleType:"disc",listStylePosition:"outside"}}}}),Yr=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(Kr,{size:8}),ce.createElement(jr,{showListStyle:e},t.map((o,n)=>ce.createElement(Qr,{showListStyle:e,key:n},ce.createElement(Yr,{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 Xr}from"@rango-dev/ui";import Oo from"react";function Uo(t){let{selectedSlippage:e}=t;return Oo.createElement(Xr,{type:"warning",footer:Oo.createElement($e,null)},"Caution, your slippage is high (=",e,"). Your trade may be front run.")}i(Uo,"HighSlippageWarning");function Lo(t){let{selectedSlippage:e}=t,o=e>=Kt;return ht.createElement(ht.Fragment,null,o&&ht.createElement(Uo,{selectedSlippage:e}))}i(Lo,"ConfirmSwapExtraMessages");import St from"react";import{Typography as Zr}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(Zr,{variant:"caption",color:"$error500"},`(${b(n,0,2)}%)`))}i(Ve,"PercentageChange");function $o({customDestinationEnabled:t}){let e=es(),{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=x.use.connectedWallets(),w=x.use.selectedWallets(),k=x.use.customDestination(),h=x.use.setCustomDestination(),y=x.use.initSelectedWallets(),f=x.use.setSelectedWallet(),S=E.use.slippage(),m=E.use.customSlippage(),T=p.use.inputUsdValue(),W=p.use.outputUsdValue(),v=p.use.setInputAmount(),[A,O]=Do(""),F=Vt(s,!!r),[D,Y]=Do(""),{manager:P}=rs(),{loading:I,errors:M,warnings:z,confirmSwap:pe}=Io(),ae=m||S,le=!M.find(U=>U.type===3),{getWalletInfo:me,connect:ue}=ts(),se=n?.result?.swaps[0],de=n?.result?.swaps[n?.result?.swaps.length-1],Mn=b(se?.fromAmount,4,6),Fn=b(de?.toAmount,4,6);Jr(()=>{y(),k&&h("")},[]);let On=n?.result?.swaps[n?.result?.swaps.length-1].to.blockchain,Rt=!!n?.result?.swaps.find(U=>U.from.blockchain===On),We=Pe(g,w,me,Rt?"":D),Un=i(U=>{let Ke=U;tt(We).forEach(Dn=>ue?.(Dn,Ke))},"handleConnectChain"),Ln=Le(n,u);return V.createElement(os,{requiredWallets:ge(n),selectableWallets:We,setCustomDestination:h,customDestination:k,customDestinationEnabled:t,isValidCustomDestination:To,checkedDestination:!!D,setDestinationChain:Y,onBack:o.bind(null,d.confirmSwap),onConfirm:async()=>{pe?.().then(async U=>{if(U)try{await P?.create("swap",{swapDetails:U},{id:U.requestId}),a(U.requestId),e("/"+d.swaps+`/${U.requestId}`,{replace:!0}),setTimeout(()=>{v("")},0)}catch(Ke){O("Error: "+Ke?.message)}})},isWalletRequired:Rt,onChange:U=>f(U),confirmDisabled:c!=="success"||yo(s,D,k,n,We),handleConnectChain:U=>Un(U),isExperimentalChain:U=>tt(We).length>0?oo(l,U):!1,previewInputs:V.createElement(V.Fragment,null,V.createElement(lt,{chain:{displayName:se?.from.blockchain||"",logo:se?.from.blockchainLogo||""},token:{symbol:se?.from.symbol||"",image:se?.from.logo||""},usdValue:T,amount:Mn,label:_o("From"),loadingStatus:c!=="success"?c:F}),V.createElement(qo,{size:12}),V.createElement(lt,{chain:{displayName:de?.to.blockchain||"",logo:de?.to.blockchainLogo||""},token:{symbol:de?.to.symbol||"",image:de?.to.logo||""},usdValue:W,amount:Fn,label:_o("To"),loadingStatus:c!=="success"?c:F,percentageChange:V.createElement(Ve,{inputUsdValue:T,outputUsdValue:W})})),previewRoutes:V.createElement(Bo,{routes:n,totalFee:b(Ln,0,2)}),loading:I,errors:A?[A,...ft(M)]:ft(M),warnings:gt(z),extraMessages:V.createElement(V.Fragment,null,c==="failed"&&V.createElement(ns,null),c==="failed"&&le&&V.createElement(qo,null),le&&V.createElement(Lo,{selectedSlippage:ae})),confirmButtonTitle:z.length>0||M.length>0?"Proceed anyway!":"Confirm swap!"})}i($o,"ConfirmSwapPage");import{History as ss}from"@rango-dev/ui";import{useManager as is}from"@rango-dev/queue-manager-react";import as from"react";import{useNavigate as ls}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=ls(),{navigateBackFrom:o}=q(),{manager:n,state:s}=is(),r=He(n).map(({swap:l})=>l),a=!s.loadedFromPersistor;return as.createElement(ss,{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 Ns,Button as tn,styled as ke,Typography as on,VerticalSwapIcon as Rs,Header as Ms}from"@rango-dev/ui";import N,{useEffect as Fs,useState as Os}from"react";import{useInRouterContext as Us,useNavigate as Ls}from"react-router-dom";import B from"react";import{AngleDownIcon as us,Button as Tt,InfoCircleIcon as cs,styled as we,TextField as ps,Typography as Ce,Image as zo,Divider as yt}from"@rango-dev/ui";import{useNavigate as ms}from"react-router-dom";import{useTranslation as ds}from"react-i18next";var fs=we("div",{display:"flex",flexDirection:"column",width:"100%",overflow:"hidden"}),gs=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"}}}),hs=we("div",{display:"flex",justifyContent:"flex-end",".balance":{display:"flex",alignItems:"center"}}),Ko=we("span",{width:"24px",height:"24px",backgroundColor:"$neutral100",borderRadius:"99999px"}),Ss=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(),w=p.use.inputAmount(),k=x.use.connectedWallets(),h=p.use.loading(),y=ms(),{t:f}=ds(),S=r&&u?b(fe(k,r?.name,u?.symbol,u?.address)?.amount||"0",8):"0",m=r&&u?b(fe(k,r?.name,u?.symbol,u?.address)?.amount||"0",fe(k,r?.name,u?.symbol,u?.address)?.decimal):"0",T=B.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"}},s==="failed"&&B.createElement(cs,{color:"error",size:24}),B.createElement(us,null));return B.createElement(fs,null,B.createElement(gs,{type:t.type==="From"?"filled":"outlined"},B.createElement("div",{className:"head"},B.createElement(Ce,{variant:"body2",color:"neutral800"},f(e)),t.type==="From"?B.createElement(hs,null,B.createElement("div",{className:"balance",onClick:()=>{S!=="0"&&c(m.split(",").join(""))}},B.createElement(Ce,{variant:"body3",color:"neutral600"},`${f("Balance")}: ${S} ${u?.symbol||""}`),B.createElement(yt,{size:4}),B.createElement(Tt,{type:"primary",variant:"ghost",size:"compact"},f("Max")))):B.createElement("div",{className:"output-usd"},B.createElement(Ve,{inputUsdValue:l,outputUsdValue:t.outputUsdValue}),B.createElement("div",null,B.createElement(Ce,{variant:"caption",color:"neutral600"},`$${b(t.outputUsdValue)}`)))),B.createElement("div",{className:"form"},B.createElement(Tt,{className:"selectors",onClick:()=>{y(`${t.type.toLowerCase()}-chain`)},variant:"outlined",disabled:s==="failed",loading:s==="loading",prefix:s==="success"&&o?B.createElement(zo,{src:o.logo,size:24}):B.createElement(Ko,null),suffix:T,align:"start",size:"large"},s==="success"&&o?o.displayName:f("Chain")),B.createElement(yt,{size:12,direction:"horizontal"}),B.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?B.createElement(zo,{src:n.image,size:24}):B.createElement(Ko,null),suffix:T,size:"large",align:"start"},s==="success"&&n?n.symbol:f("Token")),B.createElement(yt,{size:12,direction:"horizontal"}),B.createElement("div",{className:"amount"},t.type==="From"?B.createElement(ps,{type:"number",size:"large",autoFocus:!0,placeholder:"0",style:{position:"relative",backgroundColor:"$background !important"},suffix:B.createElement("span",{style:{position:"absolute",right:"4px",bottom:"2px"}},B.createElement(Ce,{variant:"caption",color:"neutral800"},`$${b(l)}`)),value:t.inputAmount||"",min:0,onChange:t.type==="From"?W=>{t.onAmountChange(W.target.value)}:void 0}):B.createElement(Ss,null,B.createElement(Ce,{variant:"h4"},h&&"?",!!g?.result&&`\u2248 ${b(t.outputAmount)}`,(!w||w==="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 Ts}from"react-i18next";var ys=wt("div",{display:"flex",width:"100%",justifyContent:"end",alignItems:"center",paddingTop:"$16"}),Cs=wt("svg",{fill:"$foreground",width:"$24",margin:"0 $8 0 $16"}),ws=wt("a",{display:"flex",justifyContent:"center",alignItems:"center",textDecoration:"none"});function Qo(){let{t}=Ts();return ee.createElement(ys,null,ee.createElement(jo,{variant:"caption",color:"$neutral600"},t("Powered By")),ee.createElement(ws,{href:"https://rango.exchange",target:"_blank"},ee.createElement(Cs,{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 ks,useRef as bs}from"react";import{useSearchParams as Ws}from"react-router-dom";function Yo({count:t}){let e=bs(!0),[o,n]=Ws(),s=p.use.outputAmount();return ks(()=>{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 As}from"@rango-dev/ui";var Xo=As("div",{display:"flex",flexDirection:"column",width:"100%",paddingTop:"$16"});var Zo={genericServerError:"Error connecting server, please reload the app and try again"};import nn from"bignumber.js";import te from"react";import{SettingsIcon as xs,Tooltip as kt,styled as vs,Button as bt,HistoryIcon as Bs,RetryIcon as Es}from"@rango-dev/ui";import{useNavigate as Ps}from"react-router-dom";var Is=vs("div",{display:"flex"});function Jo(t){let{onClickRefresh:e}=t,o=Ps();return te.createElement(Is,null,te.createElement(kt,{content:"Refresh"},te.createElement(bt,{variant:"ghost",onClick:e,disabled:!e},te.createElement(Es,{size:24,disabled:!e}))),te.createElement(kt,{content:"Transactions History"},te.createElement(bt,{variant:"ghost",onClick:()=>o(d.swaps)},te.createElement(Bs,{size:24}))),te.createElement(kt,{content:"Settings"},te.createElement(bt,{variant:"ghost",onClick:()=>o(d.settings)},te.createElement(xs,{size:24}))))}i(Jo,"HeaderButtons");var Ds=ke("div",{display:"flex",flexDirection:"column"}),_s=ke("div",{position:"relative",paddingBottom:"$12"}),qs=ke("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)"}),$s=ke("div",{width:"100%",paddingTop:"$16"}),Vs=ke("div",{width:"100%",paddingTop:"$16"});function rn(){let t=Us(),e=Ls(),[o,n]=Os(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(),w=p.use.outputAmount(),k=p.use.outputUsdValue(),h=p.use.bestRoute(),y=C.use.meta().tokens,f=p.use.loading(),S=p.use.error(),m=C.use.loadingStatus(),T=x.use.connectedWallets(),W=_.use.setCurrentPage(),v=p.use.switchFromAndTo(),A=m==="failed"?Zo.genericServerError:S,O=!1,F=g&&(!!h||f||S),D=Fe(c,k),Y=Oe(c,D),{fromAmountRangeError:P,recommendation:I,swap:M}=so(h),z=!ao(h,g,c,k),pe=io(m,T,f,h,Ue(h),Y,z,O,g),ae=Le(h,y),le=lo(ae);return Fs(()=>(W(d.home),W.bind(null,"")),[]),N.createElement(Ds,null,N.createElement(Ms,{title:"SWAP",suffix:N.createElement(Jo,{onClickRefresh:h||S?wo:void 0})}),N.createElement(_s,null,N.createElement(Ct,{type:"From",chain:s,token:r,onAmountChange:u,inputAmount:g}),N.createElement(qs,null,N.createElement(tn,{variant:"ghost",onClick:()=>{v(),n(me=>me+1)}},N.createElement(Rs,{size:32}),t&&N.createElement(Yo,{count:o})))),N.createElement(Ct,{type:"To",chain:a,token:l,outputAmount:w?new nn(w):new nn(0),outputUsdValue:k}),F&&N.createElement($s,null,N.createElement(Ns,{error:S,loading:f,data:qt(h),totalFee:b(ae,0,2),feeWarning:le,totalTime:Ot(Ut(h))})),(A||Ue(h))&&N.createElement(Vs,null,A&&N.createElement(en,{type:"error"},A),Ue(h)&&N.createElement(en,{type:"error",title:`${M?.swapperId} Limit`},N.createElement(N.Fragment,null,N.createElement(on,{variant:"body2"},`${P}, Yours: ${b(M?.fromAmount||null)} ${M?.from.symbol}`),N.createElement(on,{variant:"body2"},I)))),N.createElement(Xo,null,N.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),N.createElement(Qo,null)))}i(rn,"Home");import{LiquiditySourcesSelector as Hs}from"@rango-dev/ui";import Gs from"react";function sn({supportedSwappers:t}){let e=C.use.meta().swappers,o=C.use.loadingStatus(),n=E.use.toggleLiquiditySource(),s=E.use.disabledLiquiditySources(),r=E.use.toggleAllLiquiditySources(),{navigateBackFrom:a}=q(),l=[];return H(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)})}),Gs.createElement(Hs,{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 zs from"react";import{BlockchainSelector as Ks}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 zs.createElement(Ks,{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 js from"react";import{TokenSelector as Qs}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=>K(y,h))):s,l=n?r.filter(h=>n.some(y=>K(y,h))):r,u=p.use.fromToken(),c=p.use.toToken(),g=p.use.setFromToken(),w=p.use.setToToken(),k=C.use.loadingStatus();return js.createElement(Qs,{type:o==="from"?"Source":"Destination",list:o=="from"?a:l,selected:o==="from"?u:c,onChange:h=>{o==="from"?g(h):w(h),e(d.fromToken)},onBack:e.bind(null,d.fromToken),loadingStatus:k})}i(At,"SelectTokenPage");import Ys from"react";import{Settings as Xs}from"@rango-dev/ui";import{useNavigate as Zs}from"react-router-dom";function an({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=C.use.meta().swappers,g=Zs(),{navigateBackFrom:w}=q(),k=E.use.infiniteApprove(),h=E.use.toggleInfiniteApprove(),y=C.use.loadingStatus(),f=[];H(c.map(m=>m.swapperGroup)).map(m=>c.find(T=>T.swapperGroup===m)).find(m=>{if(m)for(let T of m.types)f.push({title:m.swapperGroup,logo:m.logo,type:T,selected:!s.includes(m.swapperGroup)})}),t&&f.filter(m=>t.filter(T=>T===m.title).length>0);let S=t?f.filter(m=>t.filter(T=>T===m.title).length>0):f;return Ys.createElement(Xs,{slippages:Gt,selectedSlippage:o,onSlippageChange:m=>n(m),onLiquiditySourcesClick:()=>g(d.liquiditySources),onBack:w.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:k,toggleInfiniteApprove:h,loadingStatus:y})}i(an,"SettingsPage");import{Alert as ei,SecondaryPage as ti,styled as xt,Wallet as oi,WalletState as un}from"@rango-dev/ui";import oe,{useEffect as cn,useRef as ni,useState as ri}from"react";import{WalletTypes as si,detectMobileScreens as ii}from"@rango-dev/wallets-shared";import{useWallets as ai}from"@rango-dev/wallets-core";import{useTranslation as li}from"react-i18next";import{Spinner as ui}from"@rango-dev/ui";import{LoadingFailedAlert as ci}from"@rango-dev/ui";import{allProviders as Js}from"@rango-dev/provider-all";function Ge(t){let e=Js();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 pi=xt("div",{display:"grid",gap:".5rem",gridTemplateColumns:" repeat(2, minmax(0, 1fr))",alignContent:"baseline",padding:"0.5rem",overflowY:"auto"}),mi=xt("div",{display:"flex",justifyContent:"center",width:"100%",position:"absolute",top:"50%"}),di=xt("div",{paddingBottom:"$16"}),fi=Object.values(si);function pn({supportedWallets:t,multiWallets:e}){let{navigateBackFrom:o}=q(),{state:n,disconnect:s,getWalletInfo:r,connect:a}=ai(),l=Xt(n,r,ln(t)||fi),u=ni(),c=ii()?l.filter(m=>m.showOnMobile):l;c=no(c);let[g,w]=ri(""),k=_.use.toggleConnectWalletsButton(),h=C.use.loadingStatus(),{t:y}=li(),f=i(async m=>{let T=n(m);try{if(g&&w(""),T.connected)await s(m);else{if(!e&&l.find(W=>W.state===un.CONNECTED))return;await a(m)}}catch(W){w("Error: "+W?.message)}},"onSelectWallet"),S=i(()=>{let m=u.current?.filter(T=>T.state===un.CONNECTING)||[];for(let T of m)s(T.type)},"disconnectConnectingWallets");return cn(()=>(k(),()=>{S(),k()}),[]),cn(()=>{u.current=l},[l]),oe.createElement(ti,{title:y("Select Wallet")||"",textField:!1,onBack:o.bind(null,d.wallets)},oe.createElement(oe.Fragment,null,g&&oe.createElement(di,null,oe.createElement(ei,{type:"error",title:g})),h==="loading"&&oe.createElement(mi,{className:"loader"},oe.createElement(ui,{size:24})),h==="failed"&&oe.createElement(ci,null),oe.createElement(pi,null,h==="success"&&c.map((m,T)=>oe.createElement(oi,{...m,key:`${T}-${m.type}`,onClick:f})))))}i(pn,"WalletsPage");import hn from"react";import{useManager as Ci}from"@rango-dev/queue-manager-react";import{SwapHistory as wi,useCopyToClipboard as ki}from"@rango-dev/ui";import{cancelSwap as bi,PendingSwapNetworkStatus as Wi}from"@rango-dev/queue-manager-rango-preset";import{useWallets as Ai}from"@rango-dev/wallets-core";import{getCurrentBlockchainOfOrNull as xi,getCurrentStep as vi,getRelatedWalletOrNull as Bi}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 Ei}from"react-router-dom";import be from"react";import{SecondaryPage as gi,Spinner as hi,Alert as Si,styled as fn}from"@rango-dev/ui";var Ti=fn("div",{height:"450px"}),yi=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(gi,{title:"Swap Details",textField:!1,onBack:n},be.createElement(Ti,null,o?be.createElement(yi,null,be.createElement(hi,{size:24})):be.createElement(Si,{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}=Ai(),s=p.use.retry(),r=Ei(),{navigateBackFrom:a}=q(),[l,u]=ki(2e3),{manager:c,state:g}=Ci(),k=He(c).find(({swap:M})=>M.requestId===t),h=i(()=>{let M=c?.get(k?.id);M&&bi(M)},"onCancel"),y=k?.swap,f=!g.loadedFromPersistor;if(!y)return hn.createElement(gn,{requestId:t||"",loading:f,onBack:a.bind(null,d.swapDetails)});let S=vi(y),m=S?xi(y,S):null,T=S?Bi(y,S):null,W=S?.networkStatus,v=go(y,S),A=rt(S),O=dn(y),F=So(y),D=i(M=>!!n(M)?.mobileWallet,"isMobileWallet"),P=W===Wi.WaitingForNetworkChange&&!!m&&!!T?.walletType&&(D(T.walletType)||e(T.walletType,m))?o.bind(null,T.walletType,m):void 0,I=ho(y);return hn.createElement(wi,{onBack:a.bind(null,d.swapDetails),pendingSwap:$t(y),onCopy:u,isCopied:l,onCancel:h,shortMessage:v.shortMessage,detailedMessage:v.detailedMessage,currentStepBlockchain:m||"",switchNetwork:P,type:A?"warning":y.extraMessageSeverity||void 0,date:O,...F&&{onRetry:()=>{s(y),setTimeout(()=>{r(d.home)},0)}},...I&&{lastConvertedTokenInFailedSwap:{blockchain:I.blockchain,outputAmount:I.outputAmount||"",symbol:I.symbol}}})}i(Sn,"SwapDetailsPage");var Ii=i(t=>t.replace("/",""),"getAbsolutePath");function Tn(t){let{config:e}=t;return Pi([{path:d.home,element:j.createElement(rn,null)},{path:d.fromChain,element:j.createElement(Wt,{type:"from",supportedChains:e?.from?.blockchains})},{path:d.toChain,element:j.createElement(Wt,{type:"to",supportedChains:e?.to?.blockchains})},{path:d.fromToken,element:j.createElement(At,{type:"from",supportedTokens:e?.from?.tokens})},{path:d.toToken,element:j.createElement(At,{type:"to",supportedTokens:e?.to?.tokens})},{path:d.settings,element:j.createElement(an,{singleTheme:e?.theme?.singleTheme,supportedSwappers:e?.liquiditySources})},{path:d.liquiditySources,element:j.createElement(sn,{supportedSwappers:e?.liquiditySources})},{path:d.swaps,element:j.createElement(Go,null)},{path:d.swapDetails,element:j.createElement(Sn,null)},{path:d.wallets,element:j.createElement(pn,{supportedWallets:e?.wallets,multiWallets:typeof e?.multiWallets>"u"?!0:e.multiWallets})},{path:Ii(d.confirmSwap),element:j.createElement($o,{customDestinationEnabled:e?.customDestination})}])}i(Tn,"AppRoutes");import{useTranslation as Di}from"react-i18next";var _i=vt("div",{display:"flex",width:"100%",justifyContent:"end",".balance":{display:"flex"}}),qi=vt("div",{display:"flex",paddingLeft:"12px"}),$i=vt("div",{marginLeft:-15,marginRight:"$6","& img":{borderRadius:"50%"}});function yn({config:t}){let e=Ui(),{connectedWallets:o,selectedWallets:n}=x(),{getWalletInfo:s}=Li(),r=H(Pe(o,n,s).map(W=>W.image)),{blockchains:a,tokens:l}=C.use.meta(),u=p.use.setFromChain(),c=p.use.setFromToken(),g=p.use.setToChain(),w=p.use.setToToken(),k=p.use.setInputAmount(),h=E.use.setAffiliateRef(),y=to(o),f=_.use.connectWalletsButtonDisabled(),S=C.use.loadingStatus(),m=x(Co),{t:T}=Di();return ze(()=>{if(S==="success"){let W=a.find(A=>A.name===t?.to?.blockchain),v=l.find(A=>K(A,t?.to?.token||null));g(W||null),w(v||null)}},[t?.to?.token,t?.to?.blockchain,S]),ze(()=>{k(t?.amount?.toString()||"")},[t?.amount]),ze(()=>{if(S==="success"){let W=a.find(A=>A.name===t?.from?.blockchain),v=l.find(A=>K(A,t?.from?.token||null));u(W||null),c(v||null)}},[t?.from?.token,t?.from?.blockchain,S]),ze(()=>{h(t?.affiliateRef||null)},[t?.affiliateRef]),G.createElement(G.Fragment,null,G.createElement(_i,null,G.createElement(Ni,{size:"small",suffix:G.createElement(Ri,{size:20}),variant:"ghost",flexContent:!0,loading:S==="loading",disabled:S==="failed",onClick:()=>{f||e(d.wallets)},prefix:r?.length?G.createElement(qi,null,r.map((W,v)=>G.createElement($i,{key:v},G.createElement(Oi,{src:W,size:24})))):null},G.createElement("div",{className:"balance"},G.createElement(Mi,{variant:"body2"},o?.length?`$${y||0}`:T("Connect Wallet")),m&&G.createElement(Fi,null)))),G.createElement(Tn,{config:t}))}i(yn,"Layout");import{globalCss as Vi}from"@rango-dev/ui";var Cn=i(t=>Vi({"@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 Q}from"@rango-dev/ui";import{useState as zi,useEffect as kn,useLayoutEffect as Ki}from"react";import{useEffect as Hi,useRef as Gi}from"react";function Bt(t){let e=Gi();return Hi(()=>{e.current=t},[t]),e.current}i(Bt,"usePrevious");function bn({colors:t,fontFamily:e="Roboto",borderRadius:o=8,mode:n="auto"}){let s=E.use.theme(),r=C.use.fetchMeta(),a=E.use.setTheme(),l=t?.light,u=t?.dark,c=l?.neutral||"#fafafa",g=l?.background||"#fff",w=l?.foreground||"#000",k={...Q("primary","dark",u?.primary),...Q("error","dark",u?.error),...Q("warning","dark",u?.warning),...Q("success","dark",u?.success),...Q("neutral","dark",u?.neutral),surface:u?.surface,background:u?.background,foreground:u?.foreground},h={surface:l?.surface||"#fff",...Q("primary","light",l?.primary||"#5FA425"),...Q("error","light",l?.error||"#FF0000"),...Q("warning","light",l?.warning||"#F5A623"),...Q("success","light",l?.success||"#0070F3"),...Q("neutral","light",c),background:g,foreground:w},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,...Q("neutral","dark","#111111"),foreground:g,background:w,surface:"#000",...JSON.parse(JSON.stringify(k))},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]=zi("light");kn(()=>{(async()=>await r())();let v=i(A=>{A.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",v),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",v)}},[]),kn(()=>{n!=="auto"&&a(n)},[n]);let T=Bt(e);return Ki(()=>{let{classList:v}=document.body;T&&v.remove(`font_${T.replace(/ /g,"")}`),v.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 ji}from"react-i18next";function Et(){let{i18n:t}=ji(),e=t?.language||"en";return{changeLanguage:i(n=>{e!==n&&t.changeLanguage(n)},"changeLanguage"),currentLanguage:e}}i(Et,"useSelectLanguage");import Xi from"i18next";import{initReactI18next as Zi}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 Ji from"i18next-http-backend";import ea from"i18next-browser-languagedetector";var ta=["en","tr"];Xi.use(Ji).use(ea).use(Zi).init({resources:{en:{translation:Wn},tr:{translation:An}},fallbackLng:"en",debug:!0,whitelist:ta});import oa,{useMemo as na}from"react";import{Provider as ra}from"@rango-dev/queue-manager-react";import{makeQueueDefinition as sa,checkWaitingForNetworkChange as ia}from"@rango-dev/queue-manager-rango-preset";import{useWallets as aa}from"@rango-dev/wallets-core";import{convertEvmBlockchainMetaToEvmChainInfo as la}from"@rango-dev/wallets-shared";import{isEvmBlockchain as ua}from"rango-types";function ca(t){let{providers:e,getSigners:o,state:n,connect:s,canSwitchNetworkTo:r,getWalletInfo:a}=aa(),l=na(()=>sa({API_KEY:xe("API_KEY")}),[]),{blockchains:u}=C.use.meta(),g={blockchains:x.use.connectedWallets().map(T=>({accounts:[T],name:T.chain}))},w=i((T,W)=>{if(r(T,W))return s(T,W)},"switchNetwork"),k=i(T=>!!a(T).mobileWallet,"isMobileWallet"),h=u.filter(T=>T.enabled).reduce((T,W)=>(T[W.name]=W,T),{}),y=u.filter(ua),f=i(T=>{let{supportedChains:W}=a(T);return Ee(W)},"getSupportedChainNames"),S=e(),m={meta:{blockchains:h,evmBasedChains:y,evmNetworkChainInfo:la(y),getSupportedChainNames:f},getSigners:o,wallets:g,providers:S,switchNetwork:w,canSwitchNetworkTo:r,connect:s,state:n,isMobileWallet:k};return oa.createElement(ra,{queuesDefs:[l],context:m,onPersistedDataLoaded:T=>{ia(T)},isPaused:!1},t.children)}i(ca,"QueueManager");var xn=ca;import Bn from"react";import{Events as Pt,Provider as ma}from"@rango-dev/wallets-core";import{isEvmBlockchain as da}from"rango-sdk";import{useEffect as pa}from"react";function vn(t){let e=x.use.clearConnectedWallet(),o=Ge(void 0);return pa(()=>{e(),o=Ge(t)},[t]),{providers:o}}i(vn,"useWalletProviders");import{createContext as fa,useRef as ga}from"react";var It=fa({onConnectWallet:()=>{}});function Nt(t){let{blockchains:e}=C.use.meta(),{providers:o}=vn(t.providers),n=x.use.disconnectWallet(),s=x.use.connectWallet(),r=ga(),a=e.filter(da).map(u=>u.name),l=i((u,c,g,w,k)=>{if(c===Pt.ACCOUNTS)if(g){let h=Ee(k),y=Zt(u,g,a,h);s(y)}else n(u);if(c===Pt.ACCOUNTS&&w.connected){let h=`${u}-${w.network}-${g}`;w.connected&&(r.current?r.current(h):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(c===Pt.NETWORK&&w.network){let h=`${u}-${w.network}`;r.current?r.current(h):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(u,c,g,w,k)},"onUpdateState");return Bn.createElement(It.Provider,{value:{onConnectWallet:u=>{r.current=u}}},Bn.createElement(ma,{allBlockChains:e,providers:o,onUpdateState:l},t.children))}i(Nt,"WidgetWallets");import{useEffect as ha}from"react";import{useEvents as Sa,MainEvents as Ta,StepEventType as En,StepExecutionEventStatus as ya,isApprovalTX as Ca}from"@rango-dev/queue-manager-rango-preset";function Pn(){let t=x.use.connectedWallets(),e=x.use.getOneOfWalletsDetails(),o=Sa();return ha(()=>(o.on(Ta.StepEvent,n=>{let{event:s,step:r}=n;if(s.type===En.TX_EXECUTION&&s.status===ya.TX_SENT&&Ca(r)||s.type===En.SUCCEEDED){let l=t.find(c=>c.chain===r?.fromBlockchain),u=r?.fromBlockchain!==r?.toBlockchain&&t.find(c=>c.chain===r?.toBlockchain);l&&e(l),u&&e(u)}}),()=>o.all.clear()),[o,t.length]),null}i(Pn,"WidgetEvents");var Aa=ka("div",{width:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function Rn(t){let{config:e}=t;Cn(e?.theme?.fontFamily||"Roboto");let{activeTheme:o}=bn(e?.theme||{}),{changeLanguage:n}=Et(),[s,r]=Nn(""),[a,l]=Nn(),u=_.use.currentPage(),c=ba(It);return Wa(()=>{e?.apiKey&&Ht({API_KEY:e?.apiKey})},[e]),In(()=>{n(e?.language||"en")},[e?.language]),In(()=>{c.onConnectWallet(r)},[]),re.createElement(Aa,{id:"swap-container",className:o},re.createElement(xn,null,re.createElement(Pn,null),re.createElement(wa,{fixedHeight:u!==d.home},re.createElement(bo,{lastConnectedWallet:s,disconnectedWallet:a,clearDisconnectedWallet:()=>{l(void 0)}},re.createElement(yn,{config:e})))))}i(Rn,"Main");function xa(t){return t.config?.externalWallets?re.createElement(Rn,{...t}):re.createElement(Nt,{providers:t.config?.wallets},re.createElement(Rn,{...t}))}i(xa,"Widget");import{useWallets as Ah}from"@rango-dev/wallets-core";import{useEvents as vh,MainEvents as Bh,RouteEventType as Oh,StepEventType as Gh,StepExecutionEventStatus as zh,StepExecutionBlockedEventStatus as Kh}from"@rango-dev/queue-manager-rango-preset";export{Bh as MainEvents,Oh as RouteEventType,Gh as StepEventType,Kh as StepExecutionBlockedEventStatus,zh as StepExecutionEventStatus,xa as Widget,Nt as WidgetWallets,Ah as useWallets,vh as useWidgetEvents};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|