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