@rango-dev/widget-embedded 0.30.1-next.1 → 0.30.1-next.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +1 -653
- package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
- package/dist/components/CustomDestination/CustomDestination.d.ts +4 -0
- package/dist/components/CustomDestination/CustomDestination.d.ts.map +1 -0
- package/dist/components/CustomDestination/CustomDestination.styles.d.ts +495 -0
- package/dist/components/CustomDestination/CustomDestination.styles.d.ts.map +1 -0
- package/dist/components/CustomDestination/CustomDestination.types.d.ts +7 -0
- package/dist/components/CustomDestination/CustomDestination.types.d.ts.map +1 -0
- package/dist/components/Quote/Quote.styles.d.ts +3 -3
- package/dist/components/RefreshModal/RefreshModal.styles.d.ts +3 -3
- package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts.map +1 -1
- package/dist/containers/Wallets/Wallets.d.ts.map +1 -1
- package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts +2 -2
- package/dist/hooks/useTheme.d.ts.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +4 -4
- package/dist/pages/Home.d.ts.map +1 -1
- package/dist/pages/WalletsPage.d.ts.map +1 -1
- package/dist/services/cacheService.d.ts +21 -0
- package/dist/services/cacheService.d.ts.map +1 -0
- package/dist/store/notification.d.ts.map +1 -1
- package/dist/store/slices/config.d.ts +2 -1
- package/dist/store/slices/config.d.ts.map +1 -1
- package/dist/store/slices/data.d.ts +2 -1
- package/dist/store/slices/data.d.ts.map +1 -1
- package/dist/store/utils/data.d.ts +20 -0
- package/dist/store/utils/data.d.ts.map +1 -0
- package/dist/store/utils/data.test.d.ts +2 -0
- package/dist/store/utils/data.test.d.ts.map +1 -0
- package/dist/store/utils/index.d.ts +2 -0
- package/dist/store/utils/index.d.ts.map +1 -0
- package/dist/test-utils/fixtures.d.ts +1 -0
- package/dist/test-utils/fixtures.d.ts.map +1 -1
- package/dist/types/config.d.ts +5 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/event.d.ts +21 -15
- package/dist/types/event.d.ts.map +1 -1
- package/dist/types/notification.d.ts +1 -0
- package/dist/types/notification.d.ts.map +1 -1
- package/dist/types/wallets.d.ts +1 -1
- package/dist/types/wallets.d.ts.map +1 -1
- package/dist/utils/events.d.ts +8 -0
- package/dist/utils/events.d.ts.map +1 -0
- package/dist/utils/settings.d.ts +1 -1
- package/dist/utils/swap.d.ts +1 -1
- package/dist/utils/swap.d.ts.map +1 -1
- package/dist/widget-embedded.build.json +1 -1
- package/package.json +10 -10
- package/src/components/ConfirmWalletsModal/ConfirmWallets.styles.ts +1 -49
- package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +59 -178
- package/src/components/ConfirmWalletsModal/WalletList.tsx +16 -4
- package/src/components/CustomDestination/CustomDestination.styles.ts +45 -0
- package/src/components/CustomDestination/CustomDestination.tsx +148 -0
- package/src/components/CustomDestination/CustomDestination.types.ts +7 -0
- package/src/components/SwapDetailsModal/SwapDetailsModal.WalletState.tsx +28 -13
- package/src/containers/Wallets/Wallets.tsx +7 -2
- package/src/hooks/useTheme.ts +11 -5
- package/src/index.ts +4 -0
- package/src/pages/Home.tsx +6 -3
- package/src/pages/WalletsPage.tsx +25 -11
- package/src/services/cacheService.ts +35 -0
- package/src/store/notification.ts +13 -1
- package/src/store/slices/config.ts +39 -1
- package/src/store/slices/data.test.ts +84 -0
- package/src/store/slices/data.ts +44 -24
- package/src/store/utils/data.test.ts +175 -0
- package/src/store/utils/data.ts +117 -0
- package/src/store/utils/index.ts +1 -0
- package/src/test-utils/fixtures.ts +14 -7
- package/src/types/config.ts +3 -1
- package/src/types/event.ts +32 -16
- package/src/types/notification.ts +1 -0
- package/src/types/wallets.ts +1 -1
- package/src/utils/events.ts +27 -0
- package/src/utils/swap.ts +4 -4
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var tg=Object.defineProperty;var i=(t,e)=>tg(t,"name",{value:e,configurable:!0});import{EventSeverity as L2,RouteEventType as B2,StepEventType as P2,StepExecutionBlockedEventStatus as _2,StepExecutionEventStatus as D2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as F2,useWallets as wr,Events as O2}from"@rango-dev/wallets-react";import{Networks as Q2,WalletTypes as z2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as H2}from"rango-types";import{UI_ID as og}from"@rango-dev/ui";var In="c6381a79-2817-4602-83bf-6a641a409e32",dl="https://api.rango.exchange",fl="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...og};var gl="Roboto",wi=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];import{Events as Ui,Provider as Yg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Zg}from"rango-sdk";import Hn,{createContext as Jg,useEffect as pp,useMemo as Rg,useRef as cp}from"react";import{useEffect as wg}from"react";import{create as Tg}from"zustand";import{subscribeWithSelector as kg}from"zustand/middleware";import ng from"mitt";var we=ng(),rg={on:we.on,off:we.off};import{RangoClient as Sg}from"rango-sdk";import{BlockchainCategories as ug,WalletState as Ct}from"@rango-dev/ui";import{readAccountAddress as mg}from"@rango-dev/wallets-react";import{detectInstallLink as dg,getCosmosExperimentalChainInfo as fg,isEvmAddress as gg,KEPLR_COMPATIBLE_WALLETS as mx,Networks as Il}from"@rango-dev/wallets-shared";import Ni from"bignumber.js";import{isCosmosBlockchain as hg}from"rango-types";import ig from"bignumber.js";var $e=new ig(0);import{WalletTypes as ag}from"@rango-dev/wallets-shared";var hl=[ag.LEAP];import{BlockchainCategories as xi,WalletState as cg}from"@rango-dev/ui";import{TransactionType as An}from"rango-sdk";function To(t){return Array.from(new Set(t))}i(To,"removeDuplicateFrom");function Ii(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ii,"areEqual");function vl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(vl,"debounce");function Et(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Et,"containsText");function Cl(t,e){return t.toLowerCase()===e.toLowerCase()}i(Cl,"exactText");function Tl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Tl,"startWithText");var P=i(()=>document.getElementById(he.SWAP_BOX_ID),"getContainer"),Qo=i(()=>document.getElementById(he.EXPANDED_BOX_ID),"getExpanded");function kl(t,e,o){let n=!!e&&Cl(e,t),r=!!o&&Cl(o,t);return n!==r?n?-1:1:0}i(kl,"compareExactMatchText");function bi(t,e,o){let n=!!e&&Et(e,t),r=!!o&&Et(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(bi,"compareContainsText");function Ei(t,e,o){let n=!!e&&Tl(e,t),r=!!o&&Tl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ei,"compareStartWithText");function wl(t,e,o){if(!o)return 0;let n=kl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=kl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Ei(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=bi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ei(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=bi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Ei(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=bi(o,t.address,e.address);if(r!==0)return r}return 0}i(wl,"compareWithSearchFor");var Wn=i((t,e)=>{switch(e){case xi.ALL:return!0;case xi.UTXO:return t===An.TRANSFER;case xi.OTHER:return t!==An.TRANSFER&&t!==An.COSMOS&&t!==An.EVM;default:return t===e}},"isBlockchainTypeInCategory"),xl=i(t=>wi.find(o=>o.value===t)?.url,"getFontUrlByName");function Nn(t,e){let o=!!t.find(n=>n.state===cg.CONNECTED);return e===!1&&o}i(Nn,"isSingleWalletActive");function Mn(t,e){return e.find(o=>o.name===t)?.displayName}i(Mn,"getBlockchainDisplayNameFor");function Re(t,e){return e.find(o=>o.name===t)?.shortName}i(Re,"getBlockchainShortNameFor");function bl(t,e){return e.find(o=>o.name===t)?.logo}i(bl,"getBlockchainImage");function zo(t,e){return e.find(o=>o.id===t)?.title}i(zo,"getSwapperDisplayName");function Ai(t,e){return e.find(o=>o.name===t)??null}i(Ai,"findBlockchain");function Wi(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Wi,"isTokenNative");function Ft(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Ft,"createTokenHash");import{BigNumber as El}from"bignumber.js";var qo=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new El(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new El(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Ln=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var St=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Ho=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Mi(t){switch(!0){case t.connected:return Ct.CONNECTED;case t.connecting:return Ct.CONNECTING;case!t.installed:return Ct.NOT_INSTALLED;default:return Ct.DISCONNECTED}}i(Mi,"mapStatusToWalletState");function Al(t,e,o,n){return o.filter(r=>!hl.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:m,needsDerivationPath:f}=e(r),d=To(m.map(S=>S.type)),g=Mi(t(r));return{title:a,image:s,link:dg(l),state:g,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:d,needsDerivationPath:f}})}i(Al,"mapWalletTypesToWalletInfo");function _n(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(_n,"walletAndSupportedChainsNames");function Wl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(m=>m.chain===p)){let m={address:u,chain:p,walletType:t};a.push(m)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=mg(p),m=l.length>0,f=l.includes(c),d=c===Il.Unknown;if(m&&!f&&!d)return;let S=c===Il.Unknown&&gg(u);if(d&&!S)return;o.includes(c)||S?r?s(c,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,u.toLowerCase())}):s(c,u)}),a}i(Wl,"prepareAccountsForWalletStore");function Jt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:p}=r;p.forEach((u,c)=>{let m=u.from.blockchain,f=u.to.blockchain,d=a===o.swaps.length-1,g=c===p.length-1;(!d&&!g||d&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(l)}),Array.from(n)}i(Jt,"getQuoteWallets");function Dn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Dn,"isAccountAndWalletMatched");function Nl(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new Ni(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Nl,"makeBalanceFor");function Ml(t){return{...t,loading:!1,error:!0}}i(Ml,"resetConnectedWalletState");var Ll=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=M(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new Ni(a?.amount||$e).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),$e)||$e).toString();return yg(r)},"calculateWalletUsdValue");function yg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(yg,"numberWithThousandSeparator");var $n=i((t,e)=>{let o=fg(Object.entries(t).map(([,n])=>n).filter(hg));return o&&o[e]?.experimental},"isExperimentalChain");function Fn(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}i(Fn,"formatBalance");function Bl(t,e){return t?.usdValue||e?.usdValue?parseFloat(e?.usdValue||"0")-parseFloat(t?.usdValue||"0"):t?.amount||e?.amount?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(Bl,"compareTokenBalance");function Rt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Rt,"areTokensEqual");function Pl(t){return t.sort((e,o)=>+(o.state===Ct.CONNECTED)-+(e.state===Ct.CONNECTED)||+(o.state===Ct.DISCONNECTED||o.state===Ct.CONNECTING)-+(e.state===Ct.DISCONNECTED||e.state===Ct.CONNECTING))}i(Pl,"sortWalletsBasedOnConnectionState");function On(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(On,"getConciseAddress");function _l({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(_l,"getAddress");function Un(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Ni(o?.usdPrice??$e).multipliedBy(o?.amount).toString():""},r=o?Ft({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i(Un,"makeTokensBalance");var Dl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function $l(t){return t.map(e=>e.state).join("-")}i($l,"hashWalletsState");function Fl(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(Fl,"filterBlockchainsByWalletTypes");function Ol(t,e){return e===ug.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Wn(n,e))return!0;return!1})}i(Ol,"filterWalletsByCategory");var Li={API_KEY:In};function It(t){return Li[t]||""}i(It,"getConfig");function Ul(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Li=e,Li}i(Ul,"initConfig");var Ql=20,zl=25,Bi="theme-widget",Go=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Rt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Rt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Pi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),ql=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Qn,Ot=i(()=>Qn||(Qn=new Sg(It("API_KEY"),It("BASE_URL")),Qn),"httpService");import{WidgetEvents as Hl}from"@rango-dev/queue-manager-rango-preset";var _i=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(_i||{}),Di=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Di||{}),Vo=(r=>(r[r.RouteEvent=Hl.RouteEvent]="RouteEvent",r[r.StepEvent=Hl.StepEvent]="StepEvent",r.QuoteEvent="quoteEvent",r.WalletEvent="walletEvent",r))(Vo||{});var Cg=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"),Ut=Cg;var te=Ut(Tg()(kg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{we.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}});let r=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.filter(s=>s.walletType!==o[0].walletType).concat(o.map(s=>{let l=!a.connectedWallets.some(p=>p.chain===s.chain&&p.selected&&p.walletType!==s.walletType);return{balances:[],address:s.address,chain:s.chain,explorerUrl:null,walletType:s.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{n.connectedWallets.find(l=>l.walletType===o)&&we.emit("walletEvent",{type:"disconnect",payload:{walletType:o}});let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),a=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:Un(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>Dn(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ot().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(f=>{let d=o.find(S=>Dn(S,f)),g=p.find(S=>S.address===f.address&&S.blockChain===f.chain);return g?.failed&&d&&r&&a([d],n,!1),d&&g?{...f,explorerUrl:g.explorerUrl,balances:Nl(g,n),loading:!1}:f});return{loading:!1,balances:Un(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Dn(m,c))?Ml(c):c);return{loading:!1,balances:Un(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Ft(o);return n[r]??null}}))));import{allProviders as vg}from"@rango-dev/provider-all";function zn(t,e){let o=vg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let a=o.find(s=>s.config.type===r);a?n.push(a):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(zn,"matchAndGenerateProviders");function Gl(t,e){return zn(t,e).map(r=>r.config.type)}i(Gl,"configWalletsToWalletName");function Vl(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Vl,"hashProviders");function $i(t,e){let o=te.use.clearConnectedWallet(),n=zn(t,e);return wg(()=>{o(),n=zn(t,e)},[Vl(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i($i,"useWalletProviders");import qg,{createContext as Hg,useContext as Gg,useEffect as Vg,useRef as Xg}from"react";import{create as Qg}from"zustand";import{persist as zg}from"zustand/middleware";var Fi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},xg={clientUrl:void 0},bg={liquiditySources:void 0},Xl=i((t,e,o)=>({config:{...Fi,...t},iframe:xg,campaignMode:bg,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function qn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return To(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(qn,"getUniqueSwappersGroups");function Kl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Kl,"sortLiquiditySourcesByGroupTitle");function et(t,e){return e?.[t]==="hidden"}i(et,"isFeatureHidden");function jl(t,e){return e?.[t]==="enabled"}i(jl,"isFeatureEnabled");var Yl=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let n=e()._tokensMapByTokenHash,r=Array.from(n?.values()||[]),a=e()._blockchainsMapByName;if(!o||!o?.type)return r;let s=e().config,l=(o.type==="source"?s.from?.tokens:s.to?.tokens)??{},p=e().blockchains({type:o.type});return r.filter(c=>l&&Go(c,l)||o.blockchain&&c.blockchain!==o.blockchain||!p.some(m=>m.name===c.blockchain)?!1:o.searchFor?!!(Et(c.symbol,o.searchFor)||Et(c.address||"",o.searchFor)||Et(c.name||"",o.searchFor)):!0).sort((c,m)=>{let f=e().isTokenPinned(c,o.type),d=e().isTokenPinned(m,o.type);if(f!==d)return f?-1:1;if(o.getBalanceFor){let T=o.getBalanceFor(c),k=o.getBalanceFor(m),v=Bl(T,k);if(v!==0)return v}let g=a.get(c.blockchain),S=a.get(m.blockchain),C=Wi(c,g),y=Wi(m,S);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let T=wl(c,m,o.searchFor);if(T)return T}return c.isSecondaryCoin!==m.isSecondaryCoin?c.isSecondaryCoin?1:-1:g&&S?g.sort-S.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=Ft(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Rt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(Kl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ot().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s=[],l=n.popularTokens,p=n.swappers,u=new Set;n.tokens.forEach(m=>{u.add(m.blockchain),s.push(m)}),n.blockchains.sort((m,f)=>m.sort-f.sort).forEach(m=>{m.enabled&&u.has(m.name)&&r.set(m.name,m)}),s.forEach(m=>{let f=Ft(m);a.set(f,m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as Eg,English as Ig,Finland as Ag,French as Wg,German as Ng,Greece as Mg,Italian as Lg,Japanese as Bg,Netherlands as Pg,Poland as _g,Portuguese as Dg,Russian as $g,Spanish as Fg,Swedish as Og,Ukrainian as Ug}from"@rango-dev/ui";var Zl=[{title:"English",label:"English",local:"en",SVGFlag:Ig},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Fg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Wg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Bg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Dg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:Eg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:$g},{title:"German",label:"Deutsch",local:"de",SVGFlag:Ng},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Ug},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Og},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Ag},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Pg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Mg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Lg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:_g}],ko="en";var Jl=[.5,1,3],Rl=1,ep=5,tp=100,op=0;var np=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Rl,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=To(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=et("theme",n),s=et("language",n),l=et("liquiditySource",n),p=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||ko},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||ko}})}}),"createSettingsSlice");function rp(t){return Qg()(zg((...e)=>({...Yl(...e),...np(...e),...Xl(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(rp,"createAppStore");var ip=Hg(null);function h(){let t=Gg(ip);if(Vg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function ap(t){let e=Xg();return e.current||(e.current=rp(t.config)),qg.createElement(ip.Provider,{value:e.current},t.children)}i(ap,"AppStoreProvider");import{create as jg}from"zustand";var sp="rango-widget";var Xo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(sp),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var ae=Ut(jg()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),eo=new Xo({onInit:()=>ae.setState({tabManagerInitiated:!0}),onClaim:()=>ae.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ae.setState({isActiveTab:!1})});var Gn=Jg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function eh(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),{findToken:a}=h(),s=h().config,l={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=$i(s.wallets,l),{connectWallet:u,disconnectWallet:c}=te(),m=cp(),f=cp();pp(()=>{n().catch(console.log)},[]),pp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let d=r.filter(Zg).map(y=>y.name),g=i((y,T,k,v,I)=>{if(T===Ui.ACCOUNTS)if(k){let W=_n(I.supportedBlockchains),x=Wl(y,k,d,W,I.isContractWallet);x.length&&u(x,a)}else c(y),f.current?f.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===Ui.ACCOUNTS&&v.connected){let W=`${y}-${v.network}-${k}`;v.connected&&(m.current?m.current(W):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===Ui.NETWORK&&v.network){let W=`${y}-${v.network}`;m.current?m.current(W):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,T,k,v,I)},"onUpdateState"),S=ae.use.isActiveTab(),C=Rg(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{f.current=y}}),[]);return Hn.createElement(Gn.Provider,{value:C},Hn.createElement(Yg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(eh,"Main");function Vn(t){let{config:e,...o}=t;return Hn.createElement(ap,{config:e},Hn.createElement(eh,{...o,config:e}))}i(Vn,"WidgetWallets");import vi from"react";import th,{Fragment as oh}from"react";import{MemoryRouter as nh,useInRouterContext as rh}from"react-router";function up({children:t}){let o=rh()?oh:nh;return th.createElement(o,null,t)}i(up,"AppRouter");import{I18nManager as yw}from"@rango-dev/ui";import cl from"react";import Ge from"react";import{useRoutes as nw}from"react-router-dom";var q={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as xo,useRef as nr}from"react";import Oe from"bignumber.js";import{create as sh}from"zustand";import{subscribeWithSelector as lh}from"zustand/middleware";import{getLastSuccessfulStep as ah}from"@rango-dev/queue-manager-rango-preset";import XE from"bignumber.js";function Qi(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Qi,"getFeeLabel");var zi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],mp=30;import{i18n as ct}from"@lingui/core";import{RouteEventType as ME}from"@rango-dev/queue-manager-rango-preset";import Fe from"bignumber.js";import{PendingSwapNetworkStatus as jn}from"rango-types";function Xn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Xn,"isValidAddress");import{i18n as Be}from"@lingui/core";var oe=i(()=>({genericServerError:Be.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Be.t("Please reset your liquidity sources."),description:Be.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Be.t("No Routes Found."),description:Be.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Be.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Be.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Be.t("High Price Impact"),title:Be.t("Price impact is too high!"),description:Be.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Be.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Be.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Be.t("USD Price Unknown"),title:Be.t("USD Price Unknown, Cannot calculate Price Impact."),description:Be.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Be.t("Confirm USD Price Unknown")}}),"errorMessages");function dp(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(dp,"getQuoteErrorMessage");import{i18n as Kn}from"@lingui/core";var to=i(()=>({connectWallet:Kn.t("Connect Wallet"),swap:Kn.t("Swap"),swapAnyway:Kn.t("Swap anyway"),ethWarning:Kn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function fp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Fe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Fe(1e3)))??!1}i(fp,"hasHighValueLoss");function gp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Fe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Fe(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(gp,"hasLimitError");function hp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Fe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Fe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Fe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Fe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=ct.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=ct.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=ct.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=ct.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(hp,"getLimitErrorMessage");function yp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:to().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:to().swap,action:"confirm-swap",disabled:!0}:s?{title:to().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:to().ethWarning,action:"confirm-warning",disabled:!1}:{title:to().swap,action:"confirm-swap",disabled:!1}:{title:to().connectWallet,action:"connect-wallet",disabled:!1}}i(yp,"getSwapButtonState");function qi(t,e,o){return!((!o||o.lte($e))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(qi,"canComputePriceImpact");function Hi(t,e){let o=$e;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Fe(r.amount).multipliedBy(a||0))}return o}i(Hi,"getUsdFeeOfStep");function Yn(t,e){return t.reduce((o,n)=>o.plus(Hi(n,e)),$e)}i(Yn,"getTotalFeeInUsd");function Gi(t){let e=$e;return e=e.plus(new Fe(t.amount).multipliedBy(t.price||0)),e}i(Gi,"getUsdFee");function Sp(t){return t.reduce((e,o)=>e.plus(Gi(o)),$e)}i(Sp,"getTotalFeesInUsd");function Cp(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(Cp,"getFeesGroup");function Tp(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(Tp,"checkSlippageErrors");function kp(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(kp,"checkSlippageWarnings");function Zn(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(Zn,"getMinRequiredSlippage");function vp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(vp,"hasProperSlippage");function wp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:m,affiliateWallets:f,destination:d,enableCentralizedSwappers:g}=t,S=a?.reduce((T,k)=>(T[k.chain]=k.address,T),{}),C=[];return r?.forEach(T=>{C.push({blockchain:T.chain,addresses:[T.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:m??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:S??{},slippage:u.toString(),...d&&{destination:d},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(T=>!s.includes(T)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(wp,"createQuoteRequestBody");function xp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(xp,"getWalletsForNewSwap");function vo(t){return t?.outputAmount||null}i(vo,"getQuoteOutputAmount");function bp(t,e){return new Fe(e).div(new Fe(t)).minus(1).multipliedBy(100).toNumber()}i(bp,"getPercentageChange");function Ep(t,e){let o=vo(t),n=vo(e);if(!o||!n)return!1;let r=tt(o,n);return r?r<=-1:!0}i(Ep,"isOutputAmountChangedALot");function Ip(t,e,o){let n=t.validationStatus,r=Jt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Bp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=M(new Fe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new Fe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=ct.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=ct.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=ct.t(" for input and network fee")),ct.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Re(s.asset.blockchain,o)}})})}i(Ip,"generateBalanceWarnings");function Jn(t,e){return(t?new Fe(t):$e).multipliedBy(e||0)}i(Jn,"calcOutputUsdValue");function Ko(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==jn.NetworkChanged}i(Ko,"isNetworkStatusInWarningState");function Ap(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Ko(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case jn.WaitingForConnectingWallet:n=n||ct.t("Waiting for connecting wallet");break;case jn.WaitingForQueue:n=n||ct.t("Waiting for other running tasks to be finished");break;case jn.WaitingForNetworkChange:n=n||ct.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(Ap,"getSwapMessages");function Wp(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(Wp,"getLastConvertedTokenInFailedSwap");function Np(t){return t.status==="failed"}i(Np,"shouldRetrySwap");function Mp(t,e,o,n,r,a){if(!n||t)return!0;let s=Jt({filter:"all",quote:n}),l=Jt({filter:"required",quote:n}),p=s.every(m=>r.some(f=>f.chain===m)),u=l.every(m=>r.some(f=>f.chain===m)),c=o&&a?Xn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Mp,"isConfirmSwapDisabled");function Lp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Lp,"isTokensIdentical");function er(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(er,"getQuoteToTokenUsdPrice");function Vi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Vi,"isNumberOfSwapsChanged");function Xi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Ii(o,n)}i(Xi,"isQuoteSwappersUpdated");function Ki(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Ii(o,n)}i(Ki,"isQuoteInternalCoinsUpdated");function _p(t,e){return Vi(t,e)||Xi(t,e)||Ki(t,e)}i(_p,"isQuoteChanged");function Bp(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(Bp,"getRequiredBalanceOfWallet");function At(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(At,"getPriceImpactLevel");function tr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=ah(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ai(a?a.toBlockchain:n.fromBlockchain,e),p=Ai(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(tr,"createRetryQuote");function wo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=oo(o,t.requestAmount),l=oo(n,t?.outputAmount??"");if(t&&s&&l){let c=tt(s.toString(),l.toString());if(!!c&&fp(s,c)){let f=Yn(t?.swaps,r),d=At(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:f,warningLevel:d}}}else if(t&&(!s||!l))return{type:1};let p=Zn(t.swaps),u=a>ep;if(vp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:kp(t,a),minRequiredSlippage:p};return null}i(wo,"generateQuoteWarnings");function tt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:bp(t.toString(),e.toString());return n&&n<0?n:null}i(tt,"getPriceImpact");var Dp=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),or=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),$p=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),Fp=i(t=>{let e=i((o,n)=>{let r=zi.indexOf(o.value),a=zi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var oo=i((t,e)=>t?.usdPrice?new Oe(e||$e).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Y=Ut(sh()(lh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Oe(0),outputUsdValue:new Oe(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=$e;return Ho(o.inputAmount)?(e&&(n=e?.outputAmount?new Oe(e?.outputAmount):null,r=Jn(e?.outputAmount,er(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Oe(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Oe(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Oe(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:oo(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new Oe(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new Oe(0),outputUsdValue:new Oe(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:oo(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:oo(n??null,s),outputUsdValue:new Oe(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?oo(e.toToken,e.outputAmount?.toString()||""):new Oe(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Oe(0),inputUsdValue:new Oe(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Oe(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),Op=Y.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&we.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&we.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function Up(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=Y(),c=h().config,m=h().fetchStatus,f=h().blockchains(),d=h().tokens(),{findToken:g}=h(),{setAffiliateRef:S,setAffiliatePercent:C,setAffiliateWallets:y}=h(),T=c?.from?.tokens,k=c?.from?.blockchains,v=c?.to?.tokens,I=c?.to?.blockchains,W=nr(void 0),x=nr(void 0),w=nr(void 0),b=nr(void 0);xo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),xo(()=>{if(m==="success"){r();let E=f.find(A=>A.name===c?.from?.blockchain),_=c?.from?.token,Q=_&&g(_);(E||!E&&w.current)&&n(E??null),Q?a({token:Q,meta:{blockchains:f,tokens:d}}):!Q&&W.current&&a({token:null}),w.current=c?.from?.blockchain,W.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),xo(()=>{Go(s,T)&&a({token:null}),Pi(p,k)&&n(null)},[T,k]),xo(()=>{Go(l,v)&&a({token:null}),Pi(u,I)&&o(null)},[v,I]),xo(()=>{if(m==="success"){r();let E=f.find(A=>A.name===c?.to?.blockchain),_=c?.to?.token,Q=_&&g(_);(E||!E&&b.current)&&o(E??null),Q?e({token:Q,meta:{blockchains:f,tokens:d}}):!Q&&x.current&&e({token:null}),b.current=c?.to?.blockchain,x.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),xo(()=>{S(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(Up,"useSyncStoresWithConfig");import{useEffect as Zi,useRef as ph}from"react";import{useInRouterContext as ch,useLocation as uh,useSearchParams as mh}from"react-router-dom";function ji(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(ji,"convertTokenSearchParamToAsset");function Yi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Yi,"tokenToSearchParam");function Ji(){let t=uh(),[e,o]=mh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:f}=Y(),d=h().fetchStatus,g=h().blockchains(),S=h().tokens(),C=ch(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=ph(),{findToken:I}=h(),W=i(()=>{let w={};for(let[B,Z]of e.entries())B.startsWith("utm_")&&(w[B]=Z);let b=e.get("fromAmount"),E=e.get("fromBlockchain"),_=e.get("fromToken"),Q=e.get("toBlockchain"),A=e.get("toToken"),z=e.get("autoConnect"),j=e.get("clientUrl"),G=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:E,fromToken:_,toBlockchain:Q,toToken:A,autoConnect:z,clientUrl:j,liquiditySources:G,utmQueryParams:w}},"getUrlSearchParams"),x=i(w=>{for(let b in w)w[b]||delete w[b];o(w,{replace:!0})},"updateUrlSearchParams");Zi(()=>{let{autoConnect:w,clientUrl:b,utmQueryParams:E}=W();C&&d==="success"&&x({fromBlockchain:n?.name,fromToken:Yi(a),toBlockchain:r?.name,toToken:Yi(s),fromAmount:l,autoConnect:w??void 0,clientUrl:b??void 0,liquiditySources:k?v.current:void 0,...E})},[t.pathname,l,n,a,r,s,k]),Zi(()=>{if(!C)return;let w=W();if(!v.current&&w.liquiditySources&&(v.current=w.liquiditySources),w.fromAmount&&f(w.fromAmount),d==="success"){let b=g.find(A=>A.name===w.fromBlockchain),E=w.fromToken&&b?I(ji(w.fromToken,b)):void 0,_=g.find(A=>A.name===w.toBlockchain),Q=w.toToken&&_?I(ji(w.toToken,_)):void 0;b&&(p(b),E&&c({token:E,meta:{blockchains:g,tokens:S}})),_&&(u(_),Q&&m({token:Q,meta:{blockchains:g,tokens:S}}))}},[d]),Zi(()=>{let{clientUrl:w,liquiditySources:b}=W();y("clientUrl",w||void 0),T("liquiditySources",b?.split(",")??void 0)},[])}i(Ji,"useSyncUrlAndStore");import{i18n as es}from"@lingui/core";import{useManager as FC}from"@rango-dev/queue-manager-react";import{Alert as Cm,Button as OC,css as os,Divider as ts,IconButton as Tm,styled as UC,Typography as QC,WalletIcon as zC}from"@rango-dev/ui";import Ie,{useEffect as Gr,useLayoutEffect as qC,useRef as HC,useState as un}from"react";import{useNavigate as GC}from"react-router-dom";import{i18n as kt}from"@lingui/core";import{Alert as Ba,BalanceErrors as vS,Button as Zc,ChevronDownIcon as wS,ChevronLeftIcon as xS,CloseIcon as bS,Divider as Ro,IconButton as Jc,MessageBox as ES,PasteIcon as IS,Typography as xr,WalletIcon as AS}from"@rango-dev/ui";import $,{useCallback as WS,useEffect as Rc,useMemo as NS,useRef as MS,useState as uo}from"react";import{useNavigate as LS}from"react-router-dom";import{i18n as rr}from"@lingui/core";function ir(t){switch(t.type){case 0:return rr.t("Route has been updated.");case 3:return rr.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return rr.t("Route swappers has been updated.");case 2:return rr.t("Route internal coins has been updated.");default:return""}}i(ir,"getQuoteUpdateWarningMessage");import{Modal as fh}from"@rango-dev/ui";import gh from"react";function re(t){let{watermark:e}=ae();return gh.createElement(fh,{hasWatermark:e==="FULL",...t},t.children)}i(re,"WatermarkedModal");import pr,{useRef as Sh}from"react";import*as bo from"@radix-ui/react-collapsible";import{keyframes as zp,styled as ar}from"@rango-dev/ui";var Ri=300,hh=zp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),yh=zp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),qp=ar(bo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ea=ar(bo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),sr=ar(bo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${hh} ${Ri}ms ease-out`},false:{animation:`${yh} ${Ri}ms ease-out`}}}}),lr=ar("div",{transition:`all ${Ri}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function cr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=Sh(null);return pr.createElement(qp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&pr.createElement(ea,{className:"collapsible_trigger",onClick:a},s),pr.createElement(sr,{className:"collapsible_content",open:e},r),l==="bottom"&&pr.createElement(ea,{className:"collapsible_trigger",onClick:a},s))}i(cr,"CustomCollapsible");import{css as Hp,darkTheme as jo,IconButton as Ch,styled as ot,TextField as Th}from"@rango-dev/ui";var Gp=ot("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Vp=ot("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),kh=ot("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${jo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${jo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${jo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Xp=ot(kh,{alignSelf:"stretch",minHeight:"93px"}),Kp=ot("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),jp=ot(Ch,{position:"absolute",left:"$20"}),Yp=ot("div",{paddingTop:"$20"}),Zp=Hp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Jp=ot("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Rp=Hp({paddingTop:"$5"}),ec=ot("div",{display:"flex"}),tc=ot(Th,{backgroundColor:"$neutral100",padding:"$15"}),oc=ot("div",{overflow:"visible",width:"100%"}),nc=ot("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${jo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${jo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as ut}from"@lingui/core";import{Button as SS,Divider as Ma,Image as CS,MessageBox as vr,SelectableWallet as TS,Typography as Kc,WalletState as jc}from"@rango-dev/ui";import ue,{useEffect as Yc,useState as co}from"react";import{WalletState as ta}from"@rango-dev/ui";import{useWallets as vh}from"@rango-dev/wallets-react";import{detectMobileScreens as wh,KEPLR_COMPATIBLE_WALLETS as xh,WalletTypes as Eo}from"@rango-dev/wallets-shared";import{useCallback as bh,useEffect as Eh,useState as Ih}from"react";var Ah=Object.values(Eo);function no(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=vh(),{connectedWallets:c}=te(),m=h().blockchains(),f=Gl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Ah,d=Al(s,p,f,e);d=wh()?d.filter(x=>x.showOnMobile!==!1&&s(x.type).installed):d;let g=Pl(d),[S,C]=Ih(""),y=i(x=>!c.find(w=>w.walletType===x&&w.chain===e),"isExperimentalChainNotAdded"),T=i(async(x,w)=>{let b=s(x);try{if(S&&C(""),b.connected)await l(x);else{if(Nn(d,a.multiWallets))return;o?.(x),await u(x,void 0,w),n?.(x)}}catch(E){r?.(E?.message),C("Error: "+E?.message)}},"handleClick"),k=bh(()=>{let x=d?.filter(w=>w.state===ta.CONNECTING)||[];for(let w of x)l(w.type)},[$l(d)]),v=i(async x=>{s(x).connected&&await l(x)},"disconnectWallet");Eh(()=>()=>{k()},[]);let I=i(x=>{let w=x.find(E=>E.type===Eo.DEFAULT);return!w||w.state===ta.NOT_INSTALLED?!1:x.filter(E=>E.state!=ta.NOT_INSTALLED&&![Eo.DEFAULT,Eo.WALLET_CONNECT_2,Eo.LEDGER].includes(E.type)&&p(E.type).supportedChains.filter(_=>_.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),W=i((x,w,b)=>$n(b,w)&&y(x)&&!xh.includes(x)||x==Eo.DEFAULT&&!I(d),"shouldExcludeWallet");return{list:g.filter(x=>!W(x.type,e??"",m)),error:S,handleClick:T,disconnectConnectingWallets:k,disconnectWallet:v}}i(no,"useWalletList");import{i18n as Qc}from"@lingui/core";import{Divider as pS,getCategoriesCount as cS,SelectableCategoryList as uS,styled as qc,Typography as mS,Wallet as dS,WalletState as zc}from"@rango-dev/ui";import it,{useState as Jo}from"react";import{useManager as By}from"@rango-dev/queue-manager-react";import{BottomLogo as Py,Divider as Ac,Header as _y}from"@rango-dev/ui";import Te,{useEffect as wa,useRef as Wc,useState as Dy}from"react";import{useRef as Wh}from"react";function ur(){return window.self!==window.top}i(ur,"isAppLoadedIntoIframe");function oa(){let t=Wh(null),{iframe:e}=h(),o=ur()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(oa,"useIframe");import{useNavigate as Nh}from"react-router-dom";function nt(){let t=Nh();return()=>t(-1)}i(nt,"useNavigateBack");import{createTheme as pa,darkTheme as Hh,lightTheme as Gh}from"@rango-dev/ui";import{useEffect as Vh,useState as Xh}from"react";import{theme as zh,darkColors as qh}from"@rango-dev/ui";import sa from"react";function Mh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Mh,"expandShortHexColor");function Lh(t){return/[0-9]+$/.test(t)}i(Lh,"isOverridingColor");function Bh(t,e){return t.padStart(e,"0")}i(Bh,"pad");function na(t){let e=Math.min(Math.max(Math.round(t),0),255);return Bh(e.toString(16),2)}i(na,"intToHex");function Ph(t){return`#${na(t.red)}${na(t.green)}${na(t.blue)}`}i(Ph,"rgbToHex");function _h(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(_h,"hexToRGB");function Dh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Dh,"generateShade");function $h(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i($h,"generateTint");function Fh(t){return rc(t,Dh)}i(Fh,"calculateShades");function Oh(t){return rc(t,$h)}i(Oh,"calculateTints");function rc(t,e){let o=_h(t),n=[];for(let r=1;r<9;r++)n.push(Ph(e(o,r)));return n}i(rc,"calculateColors");function ra(t,e,o){let a=Oh(t).reverse().concat(t),s=Fh(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let m=100+(o?u-1-c:c)*50;p[`${e}${m}`]=l[c]}return p}i(ra,"createTintsAndShades");function ia(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!Lh(r)){let p=Mh(a);Object.assign(n,ra(p,r,s))}}return{...n,...e}}i(ia,"expandToGenerateThemeColors");var ic=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Uh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=ic(o%52)+e;return ic(o%52)+e},"toAlphabeticName"),Qh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),aa=i(t=>Uh(Qh(5381,JSON.stringify(t))>>>0),"toHash");function la(t){let e=zh.colors,o={...e,...qh},n,r;if(t?.light){let s={colors:ia(e,t.light)};n={id:`${Bi}-light-${aa(s)}`,tokens:s}}if(t?.dark){let s={colors:ia(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Bi}-dark-${aa(s)}`,tokens:s}}return{light:n,dark:r}}i(la,"customizedThemeTokens");function ac(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>sa.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(sa.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(sa.cloneElement(e,{key:l}))}}),o}i(ac,"joinList");function mr(t){let{colors:e,fontFamily:o=gl,borderRadius:n=Ql,secondaryBorderRadius:r=zl}=t,[a,s]=Xh("light"),{theme:l}=h(),{dark:p,light:u}=la(e),c=pa({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,Gh.className],f=[c.className,Hh.className];if(u){let g=pa(u.id,u.tokens);m.push(g.className)}if(p){let g=pa(p.id,p.tokens);f.push(g.className)}return Vh(()=>{let g=i(S=>{S.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),S=f.join(" ");return l==="auto"?a==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(mr,"useTheme");var rt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as sc}from"@lingui/core";import{Alert as Kh,Button as jh}from"@rango-dev/ui";import lc from"react";function ca(t){return lc.createElement(Kh,{action:lc.createElement(jh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},sc.t("Activate this tab")),type:"warning",variant:"alarm",title:sc.t("Another tab is open and handles transactions.")})}i(ca,"ActivateTabAlert");import{i18n as ua}from"@lingui/core";import{Button as Yh,Divider as Zh,MessageBox as Jh}from"@rango-dev/ui";import dr from"react";function ma(t){let{open:e,onClose:o,onConfirm:n}=t;return dr.createElement(re,{open:e,dismissible:!0,onClose:o,container:P()},dr.createElement(Jh,{title:ua.t("Activate current tab"),type:"warning",description:ua.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},dr.createElement(Zh,{size:20}),dr.createElement(Yh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},ua.t("Confirm"))))}i(ma,"ActivateTabModal");import{ChevronLeftIcon as ty}from"@rango-dev/ui";import gc from"react";import{css as Rh,darkTheme as pc,IconButton as ey,styled as ro}from"@rango-dev/ui";var Tt=ro(ey,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${pc} &`]:{backgroundColor:"$neutral"}}}),cc=ro("div",{position:"absolute",background:"$secondary500",[`.${pc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Io=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),uc=ro("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),mc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),dc=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),fc=Rh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),fr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function da(t){return gc.createElement(Tt,{variant:"ghost",size:"small",onClick:t.onClick},gc.createElement(ty,{color:"black",size:16}))}i(da,"BackButton");import{i18n as oy}from"@lingui/core";import{Button as ny,Typography as ry}from"@rango-dev/ui";import fa from"react";function ga(t){return fa.createElement(Io,null,fa.createElement(ny,{variant:"ghost",onClick:t.onClick,size:"xsmall"},fa.createElement(ry,{variant:"label",size:"medium",color:"error500"},oy.t("Cancel"))))}i(ga,"CancelButton");import{i18n as iy}from"@lingui/core";import{Image as ay,Tooltip as sy,WalletIcon as ly}from"@rango-dev/ui";import io from"react";function ha(t){let{list:e}=no({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:fc()},o.map(r=>io.createElement(fr,{key:r.title},io.createElement(ay,{src:r.image,size:14})))):iy.t("Connect Wallet");return io.createElement(sy,{container:t.container,side:"bottom",content:n},io.createElement(Tt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(cc,null),io.createElement(ly,{size:18,color:"black"})))}i(ha,"WalletButton");import{i18n as hr}from"@lingui/core";import{NotificationsIcon as xy,Popover as by,SettingsIcon as Ey,Tooltip as yr,TransactionIcon as Iy}from"@rango-dev/ui";import Ne from"react";import{Notifications as my}from"@rango-dev/ui";import dy from"react";import{useNavigate as fy}from"react-router-dom";import{create as py}from"zustand";import{persist as cy,subscribeWithSelector as uy}from"zustand/middleware";var xe=Ut(py()(cy(uy((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>a.creationTime-r.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function ya(){let t=fy(),{getNotifications:e,clearNotifications:o}=xe(),n=e(),r=h().blockchains(),{findToken:a}=h();return dy.createElement(my,{list:n,getBlockchainImage:l=>bl(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${q.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(ya,"NotificationContent");import{useManager as gy}from"@rango-dev/queue-manager-react";import{InProgressIcon as hy}from"@rango-dev/ui";import hc from"react";var yy=i(()=>{let{manager:t}=gy();return rt(t).map(({swap:o})=>o).find(o=>o.status==="running")?hc.createElement(dc,null,hc.createElement(hy,{color:"info",size:6})):null},"InProgressTransactionBadge"),yc=yy;import{EventSeverity as Sy}from"@rango-dev/queue-manager-rango-preset";import{Typography as Cy}from"@rango-dev/ui";import Sc from"react";function Cc(){let{getNotifications:t}=xe(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Sy.WARNING);return o?Sc.createElement(uc,{isSever:n},Sc.createElement(Cy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Cc,"NotificationsBadge");import{RefreshProgressButton as Ty}from"@rango-dev/ui";import Sa,{useEffect as ky,useState as Tc}from"react";var vy=1e3,kc=60,wy=100;function gr({onClick:t}){let[e,o]=Tc(0),[n,r]=Tc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");ky(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===kc&&l()},vy):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return Sa.createElement(Tt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},Sa.createElement(mc,{onTransitionEnd:()=>r(!1),isRefetched:n},Sa.createElement(Ty,{size:22,color:t?"black":"gray",progress:e/kc*wy})))}i(gr,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=et("notification",s)||r.includes("notifications");return Ne.createElement(Ne.Fragment,null,!r.includes("refresh")&&Ne.createElement(yr,{container:a||P(),side:"top",content:hr.t("Refresh")},Ne.createElement(gr,{onClick:e})),!l&&Ne.createElement(by,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:Ne.createElement(ya,null)},Ne.createElement("div",null,Ne.createElement(yr,{container:P(),side:"top",content:hr.t("Notifications")},Ne.createElement(Tt,{size:"small",variant:"ghost"},Ne.createElement(xy,{size:18,color:"black"}),Ne.createElement(Cc,null))))),!r.includes("settings")&&Ne.createElement(yr,{container:P(),side:"top",content:hr.t("Settings")},Ne.createElement(Tt,{size:"small",variant:"ghost",onClick:n},Ne.createElement(Ey,{size:18,color:"black"}))),!r.includes("history")&&Ne.createElement(yr,{container:P(),side:"top",content:hr.t("Transactions History")},Ne.createElement(Tt,{size:"small",variant:"ghost",onClick:o},Ne.createElement(Iy,{size:18,color:"black"}),Ne.createElement(yc,null))))}i(ao,"HeaderButtons");import{i18n as Ca}from"@lingui/core";import{Divider as wc,MessageBox as Ny,RefreshIcon as My}from"@rango-dev/ui";import Ao from"react";import{Button as Ay,styled as Wy}from"@rango-dev/ui";var vc=Wy(Ay,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Ta(t){let{open:e,onClose:o}=t;return Ao.createElement(re,{open:e,dismissible:!0,onClose:o,container:P()},Ao.createElement(Ny,{title:Ca.t("Something went wrong"),type:"error",description:Ca.t("Something went wrong. Please refresh the app.")},Ao.createElement(wc,{size:30}),Ao.createElement(vc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Ao.createElement(My,{size:20,color:"primary"}),Ao.createElement(wc,{size:4,direction:"horizontal"}),Ca.t("Refresh"))))}i(Ta,"RefreshModal");function ka(t){let e=t.target;if(e){let o=e.scrollTop,n=P();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(ka,"onScrollContentAttachStatusToContainer");import{css as Ly,styled as va}from"@rango-dev/ui";var xc="700px",Sr=Ly({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),bc=va("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:xc},fixed:{height:xc}}}}),Ec=va("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Ic=va("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function ce(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=oa(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=Dy(!1),c=te.use.connectedWallets(),{config:{features:m,theme:f}}=h(),{watermark:d}=ae(),g=d==="FULL",{activeTheme:S}=mr(f||{}),C=et("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:I}=ae(),W=nt(),{manager:x}=By(),b=rt(x).map(({swap:j})=>j).some(j=>j.status==="running"),E=i(()=>I(eo.forceClaim,b),"onActivateTab"),_=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,A=Wc(null),z=Wc(null);return wa(()=>(ur()&&z.current&&e(z.current),()=>{o()}),[]),wa(()=>(A.current?.addEventListener("scroll",ka),()=>{A.current?.removeEventListener("scroll",ka)}),[]),wa(()=>{u(l==="failed")},[l]),Te.createElement(bc,{height:s,id:he.SWAP_BOX_ID,className:`${S()} ${Sr()}`,ref:z},Te.createElement(_y,{prefix:Te.createElement(Te.Fragment,null,Q&&Te.createElement(da,{onClick:()=>{W(),r.onBack&&r.onBack()}})),title:r.title,suffix:Te.createElement(Te.Fragment,null,r.suffix,r.onWallet&&!C&&Te.createElement(ha,{container:P(),onClick:_,isConnected:!!c?.length}),r.onCancel&&Te.createElement(ga,{onClick:r.onCancel}))}),Te.createElement(Ec,{ref:A},n),Te.createElement(ma,{open:k,onClose:()=>v(!1),onConfirm:E}),Te.createElement(Ic,null,Te.createElement("div",{className:"footer__content"},T&&!y&&Te.createElement("div",{className:"footer__alert"},Te.createElement(ca,{onActivateTab:E}),Te.createElement(Ac,{size:10})),a),Te.createElement(Ac,{size:12}),Te.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Te.createElement(Py,null))),Te.createElement(Ta,{open:p,onClose:()=>u(!1)}))}i(ce,"Layout");import{styled as $y}from"@rango-dev/ui";var Nc="$20 $20 $10 $20",Yo=$y("div",{padding:Nc,overflowY:"auto",flexGrow:1});import{styled as Fy}from"@rango-dev/ui";var fe=Fy("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as Mo}from"@lingui/core";import{Button as zy,Divider as Bc,Image as qy,MessageBox as Hy,Select as Gy,TextField as Vy}from"@rango-dev/ui";import{namespaces as Xy}from"@rango-dev/wallets-shared";import qe,{useEffect as Ky,useState as Pc}from"react";import{keyframes as Oy,styled as Cr}from"@rango-dev/ui";var SN=Cr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Wo=Cr("div",{position:"relative"}),Uy=Oy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),No=Cr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Uy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Tr=Cr("div",{"& img":{borderRadius:"50%"}});import{styled as Mc,Typography as Qy}from"@rango-dev/ui";var Lc=Mc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),xa=Mc(Qy,{paddingLeft:"$10"}),ba={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Dc={id:"custom",label:"Custom",generateDerivationPath:t=>t};function _c(t){let e=t?Xy[t].derivationPaths:null;return e?[...e,Dc]:[]}i(_c,"getDerivationPaths");function so(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:r,type:a,open:s}=t,[l,p]=Pc(null),[u,c]=Pc("0"),m=l===Dc.id,f=_c(n),d=i(({value:S})=>{let C=f?.find(y=>y.id===S);C&&p(C.id)},"handleDerivationPathItemClick"),g=i(()=>{let S=f.find(C=>C.id===l);if(S)o(S.generateDerivationPath(u));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return Ky(()=>{p(_c(n)[0]?.id||null)},[n]),qe.createElement(re,{open:s,onClose:e,container:document.getElementById(he.SWAP_BOX_ID)||document.body},qe.createElement(Bc,{size:20}),qe.createElement(Hy,{type:"info",title:Mo.t("Select Derivation Path"),description:Mo.t(`In order to connect to ${a}, you must first select a Derivation Path`),icon:qe.createElement(Wo,null,qe.createElement(Tr,null,qe.createElement(qy,{src:r,size:45})),qe.createElement(No,null))}),qe.createElement(Lc,null,qe.createElement(xa,{variant:"body",size:"xsmall",color:"$neutral600"},Mo.t("Choose Derivation Path Template")),qe.createElement(Gy,{value:l||"",options:f.map(S=>({value:S.id,label:S.label})),variant:"filled",handleItemClick:d,styles:{trigger:ba}}),qe.createElement(Bc,{size:20}),qe.createElement(xa,{variant:"body",size:"xsmall",color:"$neutral600"},m?Mo.t("Enter Path"):Mo.t("Enter Index")),qe.createElement(Vy,{type:m?"text":"number",variant:"contained",value:u,onChange:S=>c(S.target.value),style:ba})),qe.createElement(zy,{type:"primary",onClick:g,disabled:!f||!l||!u},Mo.t("Confirm")))}i(so,"WalletDerivationPathModal");import{Divider as Zy}from"@rango-dev/ui";import Ia from"react";import{i18n as Lo}from"@lingui/core";import{Image as jy,MessageBox as Ea,WalletState as Yy}from"@rango-dev/ui";import lo from"react";function $c(t){let{state:e,image:o,error:n}=t;return e===Yy.CONNECTED?lo.createElement(Ea,{type:"success",title:Lo.t("Wallet Connected"),description:Lo.t("Your wallet is connected, you can use it to swap.")}):n?lo.createElement(Ea,{type:"error",title:Lo.t("Failed to Connect"),description:n||Lo.t("Your wallet is not connected. Please try again.")}):lo.createElement(Ea,{type:"loading",title:Lo.t("Connecting to your wallet"),description:Lo.t("Click connect in your wallet popup."),icon:lo.createElement(Wo,null,lo.createElement(Tr,null,lo.createElement(jy,{src:o,size:45})),lo.createElement(No,null))})}i($c,"ModalContent");function Zo(t){let{open:e,onClose:o,...n}=t;return Ia.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Ia.createElement($c,{...n}),Ia.createElement(Zy,{direction:"vertical",size:32}))}i(Zo,"WalletModal");import{i18n as Aa}from"@lingui/core";import{Button as Ry,Checkbox as eS,Divider as tS,Image as Oc,ListItemButton as oS,MessageBox as nS,Radio as rS,RadioRoot as iS}from"@rango-dev/ui";import{namespaces as Uc}from"@rango-dev/wallets-shared";import Me,{useMemo as aS,useState as sS}from"react";import{styled as Jy}from"@rango-dev/ui";var Fc=Jy("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var lS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function po(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=sS([]),a=h().blockchains(),s=aS(()=>o?.map(u=>({name:u,logo:lS(a,Uc[u].mainBlockchain),title:Uc[u].title})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>e?Me.createElement(iS,{value:n?.[0]},u):Me.createElement(Me.Fragment,null,u),"wrapRadioRoot");return Me.createElement(re,{open:t.open,onClose:t.onClose,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Me.createElement(tS,{size:20}),Me.createElement(nS,{type:"info",title:Aa.t("Select chain types"),description:Aa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Me.createElement(Wo,null,Me.createElement(fr,null,Me.createElement(Oc,{src:t.image,size:45})),Me.createElement(No,null))}),Me.createElement(Fc,null,p(Me.createElement(Me.Fragment,null,s?.map(u=>Me.createElement(oS,{key:u.name,id:u.name,title:u.title,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Me.createElement(Oc,{src:u.logo,size:22}),end:e?Me.createElement(rS,{value:u.name}):Me.createElement(eS,{checked:n.includes(u.name)})}))))),Me.createElement(Ry,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Aa.t("Confirm")))}i(po,"WalletNamespacesModal");var fS=qc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),gS=qc(fe,{textAlign:"center"}),kr=3e3,Wa=300;function Hc(){let{fetchStatus:t}=h(),[e,o]=Jo("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=Jo(!1),[l,p]=Jo(null),[u,c]=Jo(null),[m,f]=Jo(""),d=null,g=ae.use.isActiveTab(),{list:S,handleClick:C,error:y,disconnectConnectingWallets:T}=no({onBeforeConnect:G=>{d=setTimeout(()=>{s(!0),f(G)},Wa)},onConnect:()=>{d&&clearTimeout(d),setTimeout(()=>{s(!1)},kr)}}),k=i(()=>{T(),s(!1)},"handleCloseWalletModal"),v=i(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),I=i(()=>{u&&c({...u,open:!1})},"handleCloseDerivationPathModal"),W=S.find(G=>G.type===m),x=W?.image||"",w=W?.state||zc.NOT_INSTALLED,b=Fl(S,n),_=cS(b)!==1,Q=Ol(S,e),A=i((G,B)=>{Nn(S,r.multiWallets)||(B.namespaces&&B.state===zc.DISCONNECTED?p({open:!0,providerType:G,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace}):C(G))},"handleWalletItemClick"),z=i(G=>{let B=Q.find(Z=>Z.type===l?.providerType);B?.singleNamespace&&B?.needsDerivationPath&&G[0]?c({open:!0,providerType:B.type,providerImage:B.image,namespace:G[0]}):C(l?.providerType,G.map(Z=>({namespace:Z}))),v()},"handleConfirmNamespaces"),j=i(G=>{G&&u?.namespace&&C(u.providerType,[{namespace:u.namespace,derivationPath:G}]),I()},"handleDerivationPathConfirm");return it.createElement(ce,{header:{title:Qc.t("Connect Wallets")}},it.createElement(gS,null,_&&it.createElement(it.Fragment,null,it.createElement(uS,{setCategory:o,category:e,blockchains:b,isLoading:t==="loading"}),it.createElement(pS,{size:24})),it.createElement(mS,{variant:"title",size:"xmedium",align:"center"},Qc.t("Choose a wallet to connect.")),it.createElement(fS,null,Q.map((G,B)=>{let Z=`wallet-${B}-${G.type}`;return it.createElement(dS,{key:Z,...G,container:P(),onClick:ie=>A(ie,G),isLoading:t==="loading",disabled:!g})}),it.createElement(Zo,{open:!!a,onClose:k,image:x,state:w,error:y}),it.createElement(po,{open:!!l?.open,onClose:v,onConfirm:z,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),it.createElement(so,{open:!!u?.open,selectedNamespace:u?.namespace,type:u?.providerType,image:u?.providerImage,onClose:I,onConfirm:j}))))}i(Hc,"WalletsPage");import{keyframes as hS,styled as Na}from"@rango-dev/ui";var Gc=Na("div",{position:"relative"}),yS=hS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Vc=Na("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${yS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Xc=Na("div",{"& img":{borderRadius:"50%"}});var kS=7;function La(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ae.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,m]=co(""),[f,d]=co(null),[g,S]=co(!1),[C,y]=co(null),[T,k]=co(null),[v,I]=co(null),{suggestAndConnect:W}=wr(),x=null,{list:w,error:b,handleClick:E,disconnectWallet:_,disconnectConnectingWallets:Q}=no({chain:e,onBeforeConnect:L=>{x=setTimeout(()=>{m(L)},Wa)},onConnect:L=>{s?.(L),x&&clearTimeout(x),setTimeout(()=>{m("")},kr)}}),[A,z]=co(w),j=w.length,G=r&&j-r>0,B=i(async L=>{S(!1),y("in-progress");try{await W(L.walletType,L.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),Z=i(()=>{T&&k({...T,open:!1})},"handleCloseNamespaceModal"),ie=i(()=>{v&&I({...v,open:!1})},"handleCloseDerivationPathModal"),J=i(L=>{k({open:!0,providerType:L.type,providerImage:L.image,availableNamespaces:L.namespaces,singleNamespace:L.singleNamespace})},"handleOpenNamespacesModal"),ne=i(L=>{let me=A.find(se=>se.type===T?.providerType);me?.singleNamespace&&me?.needsDerivationPath&&L[0]?I({open:!0,providerType:me.type,providerImage:me.image,namespace:L[0]}):E(T?.providerType,L.map(se=>({namespace:se}))),Z()},"handleConfirmNamespaces"),ge=i(L=>{L&&v?.namespace&&E(v.providerType,[{namespace:v.namespace,derivationPath:L}]),ie()},"handleDerivationPathConfirm");Yc(()=>{z(L=>{let me=w.findIndex(se=>o(se.type,e));return G&&me>1?[w[me]].concat(w.filter((se,_e)=>_e!==me)):L.map(se=>w.find(_e=>_e.type===se.type)??se)})},[JSON.stringify(w)]);let Ce=document.getElementById(he.SWAP_BOX_ID);Yc(()=>{let L=null;return(C==="completed"||C==="rejected")&&(L=setTimeout(()=>y(null),kr)),()=>{L&&clearTimeout(L)}},[C]);let D=i(()=>{Q(),m("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,A.slice(0,r).map(L=>{let me=_l({connectedWallets:p,walletType:L.type,chain:e}),se=me?On(me,kS):"",_e=$n(u(),e),pt=!p.find(de=>de.walletType===L.type&&de.chain===e),De=_e&&pt&&L.state===jc.CONNECTED,Ve=De?ut.t({id:"Add {chain} chain",values:{chain:e}}):se,Xe=i(async()=>{L.state===jc.DISCONNECTED?L.namespaces?J(L):E(L.type):L.namespaces&&!se?(await _(L.type),J(L)):De?(d({walletType:L.type,chain:e,address:me??""}),S(!0)):n({walletType:L.type,chain:e,address:me??""})},"onClick"),ve=f?.chain?Mn(f.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${L.title}_${ve}`},ue.createElement(Zo,{open:c===L.type,onClose:D,image:L.image,state:L.state,error:b}),ue.createElement(po,{open:!!T?.open,onClose:Z,onConfirm:ne,image:T?.providerImage,availableNamespaces:T?.availableNamespaces,singleNamespace:T?.singleNamespace}),ue.createElement(so,{open:!!v?.open,selectedNamespace:v?.namespace,type:v?.providerType,image:v?.providerImage,onClose:ie,onConfirm:ge}),!!f&&ue.createElement(re,{open:!!f&&g,container:Ce,onClose:()=>{d(null)}},ue.createElement(vr,{title:ut.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),type:"warning",description:ut.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ve}})},ue.createElement(Ma,{size:18}),ue.createElement(Ma,{size:32}),ue.createElement(SS,{onClick:B.bind(null,f),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ut.t("Confirm")))),C&&ue.createElement(re,{open:!!C,onClose:y.bind(null,null),container:Ce},C==="in-progress"&&ue.createElement(vr,{type:"loading",title:ut.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),description:ut.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ve}}),icon:ue.createElement(Gc,null,ue.createElement(Xc,null,ue.createElement(CS,{src:L.image,size:45})),ue.createElement(Vc,null))}),C==="completed"&&ue.createElement(vr,{type:"success",title:ut.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ve}}),description:ut.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ve}})}),C==="rejected"&&ue.createElement(vr,{type:"error",title:ut.t("Request Rejected"),description:ut.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ve}})}),ue.createElement(Ma,{direction:"vertical",size:32})),ue.createElement(TS,{key:L.type,description:Ve,onClick:Xe,selected:o(L.type,e),disabled:!l,...L}))}),G&&ue.createElement(Xp,{selected:!1,onClick:a},ue.createElement(Kc,{variant:"label",size:"medium"},ut.t("Show more wallets"),ue.createElement(Kc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",j-(r??0)))))}i(La,"WalletList");var BS=2;function eu(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=LS(),l=h().config,p=MS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:f,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:S}=Y(),{connectedWallets:C,selectWallets:y}=te(),[T,k]=uo(""),[v,I]=uo([]),[W,x]=uo(""),[w,b]=uo(null),[E,_]=uo(!!g),Q=navigator?.userAgent.includes("Firefox"),A=NS(()=>Jt({filter:"all",quote:c}),[c]),z=Jt({filter:"required",quote:c}),j=u.find(N=>N.name===c?.swaps[c?.swaps.length-1].to.blockchain),G=i(N=>z.includes(N),"isWalletRequiredFor"),B=WS(()=>C.filter(N=>N.selected&&A.includes(N.chain)),[C,A]),[Z,ie]=uo(B()),[J,ne]=uo([]),ge=i((N,V)=>ne(X=>X.concat({blockchain:N,walletType:V})),"addNextSelectedWallets"),Ce=v.length>0,D=i((N,V)=>!!Z.find(X=>X.walletType===N&&X.chain===V&&X.selected&&(G(V)||!G(V)&&!g)),"isSelected"),L=!!g&&E&&j&&!Xn(j,g),me=i(()=>{_(!1),S(null),ie(N=>{let V=!1;return N.map(X=>!V&&X.chain===j?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),se=i(()=>S(""),"handleClearCustomDestination"),_e=i(async N=>{if(N.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();S(V),p?.current?.focus()}},"handlePasteCustomDestination"),pt=i(N=>{N?G(j?.name??"")||ie(V=>V.map(X=>X.chain===j?.name?{...X,selected:!1}:X)):me()},"handleCustomDestinationCollapsibleOpenChange"),De=i(N=>{if(T&&k(""),D(N.walletType,N.chain))return;let X=C.find(Ke=>Ke.walletType===N.walletType&&Ke.chain===N.chain);X&&(n(),N.chain===j?.name&&E&&!G(j.name)&&(_(!1),S(null)),ie(Ke=>Ke.filter(yt=>yt.chain!==N.chain).concat({...X,selected:!0})))},"onChange"),Ve=i(()=>{let N=Z.filter(V=>V.selected);y(N),m(N),d(!0),o()},"onConfirmBalance"),Xe=i(async()=>{I([]),x(""),b(null);let N=await r?.({selectedWallets:Z.filter(X=>X.selected),customDestination:g}),V=N.warnings;V?.balance?.messages&&I(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),N.error&&x(dp(N.error)),!N.error&&!V?.balance?.messages.length?Ve():I(V?.balance?.messages??[])},"onConfirmWallets"),ve=i(()=>g?$.createElement(Jc,{onClick:se,variant:"ghost"},$.createElement(bS,{size:12,color:"gray"})):Q?null:$.createElement(Jc,{onClick:_e,variant:"ghost"},$.createElement(IS,{size:16})),"renderCustomDestinationSuffix");Rc(()=>{ie(N=>{let V=[];return N.forEach(X=>{!C.some(yt=>yt.chain===X.chain&&yt.walletType===X.walletType&&yt.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(yt=>yt.chain===X.chain)&&X.selected&&A.includes(X.chain))),V})},[C,A]),Rc(()=>{let N=[];J.length>0&&(J.forEach(V=>{let X=C.find(Ke=>Ke.chain===V.blockchain&&Ke.walletType===V.walletType);X?De(X):N.push(V)}),ne(N))},[C,J]);let de=document.getElementById(he.SWAP_BOX_ID);return $.createElement(re,{open:e,onClose:()=>{f||s("../",{replace:!0}),o()},dismissible:!T,container:de,...!T&&{footer:$.createElement(ec,null,$.createElement(Zc,{loading:a,disabled:Mp(a,E,g,c,Z,j),onClick:Xe,variant:"contained",type:"primary",fullWidth:!0,size:"large"},kt.t("Confirm")))},...T&&{styles:{container:{padding:"$0"}},header:$.createElement(Kp,null,$.createElement(jp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(xS,{size:16})),$.createElement(xr,{variant:"headline",size:"small"},kt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Re(T,u)}})))},anchor:"center"},$.createElement(re,{open:Ce,onClose:I.bind(null,[]),container:de},$.createElement(ES,{title:kt.t("Insufficient account balance"),type:"error",description:$.createElement(vS,{messages:v??[]})},$.createElement(Zc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Ve},kt.t("Proceed anyway")))),T&&$.createElement(Yp,null,$.createElement("div",{className:Zp()},$.createElement(La,{chain:T,isSelected:D,selectWallet:De,onShowMore:()=>k(T),onConnect:N=>{ge(T,N)}}))),!T&&$.createElement($.Fragment,null,W&&$.createElement($.Fragment,null,$.createElement(Ba,{variant:"alarm",type:"error",title:kt.t(W)}),$.createElement(Ro,{size:12})),w&&$.createElement($.Fragment,null,$.createElement(Ba,{variant:"alarm",type:"warning",title:ir(w)}),$.createElement(Ro,{size:12})),$.createElement(oc,null,A.map((N,V)=>{let X=u.find(Zt=>Zt.name===N),Ke=`wallet-${V}`,yt=V===A.length-1;return $.createElement("div",{key:Ke},$.createElement(Gp,null,$.createElement(xr,{variant:"title",size:"xmedium"},kt.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(xr,{variant:"label",color:"$neutral700",size:"medium"},kt.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(Ro,{size:24}),$.createElement(Vp,null,$.createElement(La,{chain:N,isSelected:D,selectWallet:De,limit:BS,onShowMore:()=>k(X?.name??""),onConnect:Zt=>{ge(N,Zt)}})),!yt&&$.createElement(Ro,{size:32}),yt&&l?.customDestination!==!1&&$.createElement(Jp,null,$.createElement(cr,{onOpenChange:pt,hasSelected:!0,open:E,triggerAnchor:"top",trigger:$.createElement(nc,null,$.createElement("div",{className:"button__content"},$.createElement(AS,{size:18,color:"info"}),$.createElement(Ro,{size:4,direction:"horizontal"}),$.createElement(xr,{variant:"label",size:"medium",color:E?"$neutral600":void 0},kt.t("Send to a different address"))),$.createElement(lr,{orientation:E?"up":"down"},$.createElement(wS,{size:10,color:"secondary"}))),onClickTrigger:()=>_(Zt=>!Zt)},$.createElement(tc,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:kt.t("Enter {blockchainName} address",{blockchainName:Mn(N,u)}),value:g||"",suffix:ve(),onChange:Zt=>{let eg=Zt.target.value;S(eg)},...!g&&{autoFocus:!0}})),L&&$.createElement("div",{className:Rp()},$.createElement(Ba,{variant:"alarm",type:"error",title:kt.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(eu,"ConfirmWalletsModal");import{i18n as JS}from"@lingui/core";import{Alert as RS,Button as eC,InfoIcon as tC}from"@rango-dev/ui";import Ye from"react";import{Alert as DS,Button as $S,Divider as Da,NoRouteIcon as FS,RefreshIcon as OS,Typography as su}from"@rango-dev/ui";import je from"react";import{i18n as tu}from"@lingui/core";var PS=24,_S=60;function ou(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:tu.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:tu.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(ou,"makeInfo");var Pa=(o=>(o[o.small=PS]="small",o[o.large=_S]="large",o))(Pa||{}),_a=(o=>(o.small="small",o.large="medium",o))(_a||{});import{styled as br}from"@rango-dev/ui";var nu=br("div",{display:"flex",flexDirection:"column",alignItems:"center"}),ru=br("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),iu=br("div",{variants:{size:{small:{width:"100%"},large:{}}}}),au=br("div",{padding:"$6 $0"});function en(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=ou(o,r,()=>a(s,!0),e);return je.createElement(nu,null,je.createElement(FS,{size:Pa[n],color:"gray"}),je.createElement(Da,{size:4}),je.createElement(su,{variant:"title",size:_a[n]},oe().noResultError.title),n==="large"&&je.createElement(Da,{size:4}),!!l.description&&je.createElement(ru,{size:n},je.createElement(su,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),je.createElement(Da,{size:n==="large"?"24":"4"}),!!l.alert&&je.createElement(iu,{size:n},je.createElement(DS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&je.createElement($S,{size:"xsmall",type:l.alert.type,prefix:je.createElement(au,null,je.createElement(OS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(en,"NoResult");import{i18n as tn}from"@lingui/core";import{Button as QS,Divider as zS,MessageBox as qS,Typography as HS,WarningIcon as GS}from"@rango-dev/ui";import Wt from"react";import{Typography as uu}from"@rango-dev/ui";import Fa from"react";import{darkTheme as US,styled as Er}from"@rango-dev/ui";var lu=Er("div",{width:"100%"}),$a=Er("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),pu=Er("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${US} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),cu=Er("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function mu(t){let{title:e,value:o,valueColor:n}=t;return Fa.createElement(pu,null,Fa.createElement(uu,{size:"medium",variant:"label",className:"_title"},e),Fa.createElement(uu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(mu,"QuoteErrorsModalItem");function du(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:tn.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:tn.t("Gas cost"),value:M(r.totalFee,2,2)},{title:tn.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:tn.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Wt.createElement(re,{footer:Wt.createElement(QS,{type:"primary",size:"large",prefix:Wt.createElement(GS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},Wt.createElement(qS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),Wt.createElement($a,null,Wt.createElement(zS,{size:"4"}),Wt.createElement(HS,{size:"small",variant:"title"},tn.t("Details")),Wt.createElement($a,null,l.map((p,u)=>Wt.createElement(mu,{key:u,...p})))))}i(du,"HighValueLossWarningModal");import{i18n as Oa}from"@lingui/core";function fu(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Oa.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(At(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title),t.type===1&&(o.title=oe().unknownPriceError.title),t.type===2&&(o.title=Oa.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=Oa.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(fu,"makeAlerts");import{i18n as Bo}from"@lingui/core";import{Button as gu,Divider as hu,MessageBox as VS,Typography as XS}from"@rango-dev/ui";import mo from"react";import{useNavigate as KS}from"react-router-dom";function yu(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=KS(),u=e??o;return mo.createElement(re,{anchor:"bottom",open:n,prefix:mo.createElement(gu,{size:"small",variant:"ghost",onClick:()=>p("../"+q.settings)},mo.createElement(XS,{variant:"label",size:"medium",color:"$neutral900"},Bo.t("Change settings"))),container:P(),onClose:r},mo.createElement(VS,{type:"warning",title:s.type===3?Bo.t("High slippage"):Bo.t("Low slippage"),description:s.type===3?Bo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Bo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},mo.createElement(hu,{size:18}),mo.createElement(hu,{size:32}),mo.createElement(gu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Bo.t("Confirm anyway"))))}i(yu,"SlippageWarningModal");import{Button as jS,MessageBox as YS,WarningIcon as ZS}from"@rango-dev/ui";import Ir from"react";function Su(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ir.createElement(re,{footer:Ir.createElement(jS,{type:"primary",size:"large",prefix:Ir.createElement(ZS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},Ir.createElement(YS,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Su,"UnknownPriceWarningModal");function on(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,d=fu(e,o?.type===3||o?.type===4?o:null);return d&&!n&&(d.action=null),Ye.createElement(Ye.Fragment,null,f&&Ye.createElement(en,{error:o,fetch:s}),!!d&&Ye.createElement(lu,null,Ye.createElement(RS,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:Ye.createElement(cu,{onClick:l},Ye.createElement(tC,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:Ye.createElement(eC,{size:"xxsmall",type:d.alertType,onClick:c},JS.t("Change"))}})),e&&Ye.createElement(Ye.Fragment,null,e.type===0&&Ye.createElement(du,{...m,warning:e}),(e.type===3||e.type===2)&&Ye.createElement(yu,{...m,warning:e}),e.type===1&&Ye.createElement(Su,{...m,warning:e})))}i(on,"QuoteWarningsAndErrors");import LC from"bignumber.js";import Qr from"react";import{i18n as fo}from"@lingui/core";import{Alert as CC,Divider as _o,FullExpandedQuote as TC,InfoIcon as kC,NumericTooltip as Zu,QuoteTag as vC,StepDetails as wC,TokenAmount as xC,Typography as Do}from"@rango-dev/ui";import Xa from"bignumber.js";import F,{useRef as bC,useState as EC}from"react";import{styled as Ua}from"@rango-dev/ui";var Qa=Ua("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Cu=Ua("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Tu=Ua("div",{width:"100%",display:"flex"});import*as Ar from"@radix-ui/react-collapsible";import{Button as oC,css as nn,darkTheme as be,Image as ku,styled as Ue,Typography as nC}from"@rango-dev/ui";var rC=300,vu=Ue(Ar.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),wu=nn({padding:"$10 $15"}),xu=Ue(oC,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${be} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${be} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${be} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),bu=Ue("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${be} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${be} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${be} &`]:{backgroundColor:"$neutral400"}}}}]}),Eu=nn({width:"100%",padding:"$15 $15 $10 $15"}),Iu=nn({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Po=nn({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Au=nn({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${be} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wu=Ue(Ar.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${ku}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${ku}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Nu=Ue("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Mu=Ue(sr,{width:"100%",background:"inherit"}),za=Ue("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${rC}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),FB=Ue("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Lu=Ue("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${be} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Bu=Ue("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),qa=Ue(nC,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Pu=Ue("div",{display:"flex",flexWrap:"wrap"}),Ha=Ue("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),_u=Ue("div",{display:"flex"}),Wr=Ue("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${be} &`]:{borderTopColor:"$neutral800"}});import{i18n as vt}from"@lingui/core";import{ChevronDownIcon as aC,CloseIcon as sC,Divider as Lr,IconButton as lC,NumericTooltip as pC,QuoteCost as cC,Typography as mt}from"@rango-dev/ui";import ee,{useState as Ou}from"react";import{css as iC,styled as Nr}from"@rango-dev/ui";var Mr=Nr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Ga=Nr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Du=Nr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),$u=Nr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Fu=iC({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var uC=i(t=>t.fee.isZero()?null:ee.createElement(Mr,null,ee.createElement(mt,{variant:"label",size:"medium",color:"neutral600"},t.label),ee.createElement(mt,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Uu(t){let[e,o]=Ou(!1),[n,r]=Ou(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],f=P(),d=Cp(m);return ee.createElement(ee.Fragment,null,ee.createElement(cC,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?vt.t("View more info"):void 0,tooltipContainer:f}),ee.createElement(re,{container:f,open:e,header:ee.createElement($u,null,ee.createElement(mt,{variant:"title",size:"medium"},vt.t("Gas & Fee Explanation")),ee.createElement(lC,{onClick:()=>o(!1),variant:"ghost"},ee.createElement(sC,{color:"gray",size:14}))),onClose:()=>{o(!1)}},ee.createElement(Du,null,ee.createElement(mt,{variant:"title",size:"small"},vt.t("Details")),ee.createElement(Lr,{size:10}),Object.entries(d.payable).flatMap(([g,S])=>S.map((C,y)=>{let T=`payable-fee-${y}`,k=Gi(C);return ee.createElement(Mr,{key:T},ee.createElement(mt,{variant:"label",size:"medium",color:"neutral600"},Qi(g,vt.t)),ee.createElement(pC,{content:C.amount,container:f},ee.createElement(mt,{variant:"label",size:"medium"},M(C.amount,2,2)," ",C.asset.symbol," ($",M(k,4,4),")")))})),ee.createElement(Mr,{className:"total_payable_fee"},ee.createElement(mt,{variant:"label",size:"medium"},vt.t("Total Payable Fee")),ee.createElement(mt,{variant:"label",size:"medium"},"$",M(l,4,4))),ee.createElement(Ga,null),Object.keys(d.nonePayable).length&&ee.createElement(cr,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:ee.createElement("div",{className:Fu()},ee.createElement(mt,{size:"small",variant:"body",color:"neutral700"},n?vt.t("Hide non-payable fees"):vt.t("Show non-payable fees")),ee.createElement(Lr,{size:4,direction:"horizontal"}),ee.createElement(lr,{orientation:n?"up":"down"},ee.createElement(aC,{size:12,color:"gray"}))),open:n},ee.createElement(mt,{size:"small",variant:"title"},vt.t("Description")),ee.createElement(Lr,{size:4}),ee.createElement(mt,{size:"small",variant:"body",color:"neutral700"},vt.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),ee.createElement(Lr,{size:10}),Object.entries(d.nonePayable).map(([g,S],C)=>{let y=Sp(S),T=Qi(g,vt.t),k=`non-payable-fee-${C}`;return ee.createElement(uC,{key:k,fee:y,label:T})}),ee.createElement(Ga,null)))))}i(Uu,"QuoteCostDetails");import{i18n as qu}from"@lingui/core";import{TokenAmount as Hu}from"@rango-dev/ui";import Br from"react";import{css as mC,styled as dC}from"@rango-dev/ui";var Qu=dC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),zu=mC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function rn(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Br.createElement(Qu,null,Br.createElement(Hu,{direction:"horizontal",label:qu.t("Swap input"),type:"input",tooltipContainer:P(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Br.createElement("div",{className:zu()}),Br.createElement(Hu,{direction:"horizontal",tooltipContainer:P(),label:qu.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(rn,"QuoteSummary");import{i18n as ju}from"@lingui/core";import{ChevronDownIcon as hC,ChevronRightIcon as yC,Divider as Va,Image as SC,Tooltip as Fr,Typography as _r}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as fC,useState as an}from"react";var Gu=480,Vu=768,Xu=1024,Ku=1200,gC=i(()=>{let[t,e]=an(!1),[o,n]=an(!1),[r,a]=an(!1),[s,l]=an(!1),[p,u]=an(!1),c=i(()=>{e(window.innerWidth<=Gu),n(window.innerWidth>Gu&&window.innerWidth<=Vu),a(window.innerWidth>Vu&&window.innerWidth<=Xu),l(window.innerWidth>Xu&&window.innerWidth<=Ku),u(window.innerWidth>Ku)},"handleResize");return fC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Pr=gC;var Dr=4,$r=6,sn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||P();return O.createElement(Fr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},O.createElement(Nu,{className:n,state:a},O.createElement(SC,{src:o,size:16})))},"ImageComponent");function Yu(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||P(),u=r.length,c=Dp(r),{isTablet:m,isMobile:f}=Pr();return O.createElement(Wu,{listItem:s==="list-item",ref:d=>e.current=d,selected:o,onClick:d=>{d.stopPropagation(),n(g=>!g)}},O.createElement("div",{className:Po()},O.createElement(_r,{variant:"body",size:"xsmall"},ju.t("Via:")),O.createElement(Va,{direction:"horizontal",size:4}),r.map((d,g)=>{let S=`item-${g}`,C=O.createElement(za,null,O.createElement(yC,{size:12,color:"black"}));return f||m?O.createElement(O.Fragment,{key:S},O.createElement(sn,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&O.createElement(O.Fragment,null,C)):O.createElement(O.Fragment,{key:S},u<=Dr||u>Dr&&g<Dr-1?O.createElement(O.Fragment,null,O.createElement(sn,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&O.createElement(O.Fragment,null,C)):g===Dr-1&&O.createElement(Fr,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:Po()},C,r.map((y,T)=>{let k=`image-${T}`;return T>=g&&O.createElement(O.Fragment,{key:k},O.createElement(sn,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==u-1&&O.createElement(O.Fragment,null,C))}))},O.createElement(Ha,{state:r.find((y,T)=>T>=g&&(y.state==="error"||y.state==="warning"))?.state},O.createElement(_r,{size:"xsmall",variant:"body"},"+",u-g))))})),O.createElement("div",{className:Po()},O.createElement("div",{className:"blockchains_section"},O.createElement("div",{className:Po()},O.createElement(_r,{variant:"body",size:"xsmall"},ju.t("Chains:")),O.createElement(Va,{direction:"horizontal",size:4}),c.map((d,g)=>O.createElement(O.Fragment,{key:d.displayName},c.length<=$r||c.length>$r&&g<$r-1?O.createElement(Fr,{container:p,side:"bottom",content:d.displayName,sideOffset:4},O.createElement(sn,{content:"",src:d.image,open:!1,className:g!==0?"blockchainImage":""})):g===$r-1&&O.createElement(Fr,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:Po()},c.map((S,C)=>C>=g&&O.createElement(sn,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},O.createElement(Ha,{className:"blockchainImage"},O.createElement(_r,{size:"xsmall",variant:"body"},"+",c.length-g))))),O.createElement(Va,{direction:"horizontal",size:32}))),O.createElement(za,{orientation:a?"up":"down"},O.createElement(hC,{size:12,color:"black"}))))}i(Yu,"QuoteTrigger");function Ka(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:m=!1,container:f}=t,d=h().blockchains(),{findToken:g}=h(),S=h().swappers(),{customSlippage:C,slippage:y}=h(),T=C||y,[k,v]=EC(t.expanded),I=bC(null),W=M(o.value,6,6),x=M(n.value,6,6),w=n.usdValue?M(n.usdValue,4,4):"",b=tt(o.usdValue,n.usdValue??null),E=M(b,2,2),_=At(b??0),Q=i((ge,Ce)=>ge.map((D,L)=>{let me,se=r?.type===3&&r.swap.swapperId===D.swapperId,_e=r?.type===4&&r.recommendedSlippages?.has(L),pt=a?.type===2&&a.recommendedSlippages?.has(L),De=se||_e,Ve=pt;De?me="error":Ve&&(me="warning");let Xe=De?fo.t("Slippage Error"):fo.t("Slippage Warning");return se&&(Xe=fo.t("Bridge Limit Error")),{swapper:{displayName:zo(D.swapperId,S)??"",image:D.swapperLogo},from:{token:{displayName:D.from.symbol,image:D.from.logo},chain:{displayName:Re(D.from.blockchain,d)??"",image:D.from.blockchainLogo},price:{value:L===0&&!Ce?M(o.value,6,6):M(D.fromAmount,6,6),usdValue:M((D.from.usdPrice??0)*parseFloat(D.fromAmount),4,4),realValue:L===0?o.value:D.fromAmount,realUsdValue:new Xa(D.from.usdPrice??0).multipliedBy(D.fromAmount).toString()}},to:{token:{displayName:D.to.symbol,image:D.to.logo},chain:{displayName:Re(D.to.blockchain,d)||"",image:D.to.blockchainLogo},price:{value:M(D.toAmount,6,6),usdValue:M((D.to.usdPrice??0)*parseFloat(D.toAmount),4,4),realValue:D.toAmount,realUsdValue:new Xa(D.to.usdPrice??0).multipliedBy(D.toAmount).toString()}},state:me,alerts:De||Ve?F.createElement(Cu,{dense:m},F.createElement(CC,{variant:"alarm",type:De?"error":"warning",title:Xe,footer:F.createElement(Tu,null,se&&F.createElement("div",null,F.createElement(Do,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(_o,{direction:"vertical",size:2}),F.createElement(Do,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {amount} {symbol}",values:{amount:M(D.fromAmount,6,6),symbol:D?.from.symbol}}))),(_e||pt)&&!se&&F.createElement("div",null,F.createElement(Do,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(L)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(L)}}})),F.createElement(_o,{direction:"vertical",size:2}),F.createElement(Do,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:qo(D.estimatedTimeInSeconds),fee:M(Hi(D,g),2,2),internalSwaps:D.internalSwaps?Q(D.internalSwaps):void 0}}),"getQuoteSteps"),A=Q(e?.swaps??[]),z=A.length,j=f||P(),G=Fp(t.quote.tags||[]),B=!!c,Z=qo(Ln(e?.swaps)),ie=Yn(e?.swaps??[],g),J=M(ie,2,2),ne=ie.gte(new Xa(mp));return m?F.createElement(TC,{selected:l,fee:J,time:Z,tooltipContainer:Qo(),steps:A,tags:G,feeWarning:ne,percentageChange:E,warningLevel:_,outputPrice:{value:x,usdValue:w,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(bu,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Eu()},!p&&G.length?F.createElement(F.Fragment,null,F.createElement(_u,null,G.map((ge,Ce)=>{let D=`${ge.value}_${Ce}`;return F.createElement(F.Fragment,{key:D},F.createElement(vC,{label:ge.label,value:ge.value}),F.createElement(_o,{size:4,direction:"horizontal"}))})),F.createElement(Wr,null),!B&&F.createElement(_o,{size:4})):null,F.createElement("div",{id:"portal-root",className:Iu()},F.createElement(Uu,{quote:e,time:Z,fee:J,feeWarning:ne,showModalFee:u,steps:z}),B&&F.createElement(xu,{onClick:ge=>{ge.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Do,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},fo.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Au()},F.createElement(Bu,null,F.createElement(kC,{size:12,color:"gray"})),F.createElement(Pu,null,F.createElement(qa,{size:"small",variant:"body"},`${W} ${A[0].from.token.displayName} = `),F.createElement(Zu,{content:n.value,container:j,open:n.value?void 0:!1},F.createElement(qa,{size:"small",variant:"body"},"\xA0",`${x} ${A[A.length-1].to.token.displayName}`))),F.createElement(Zu,{content:n.usdValue,container:j},F.createElement(_o,{size:2,direction:"horizontal"}),F.createElement(Do,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&F.createElement(xC,{tooltipContainer:j,type:"output",direction:"vertical",price:{value:x,usdValue:w,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:A[z-1].to.token.displayName,image:A[z-1].to.token.image},chain:{image:A[z-1].to.chain.image},percentageChange:E,warningLevel:_}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(rn,{from:A[0].from,to:A[z-1].to,percentageChange:E,warningLevel:_}),F.createElement(_o,{size:4}))),F.createElement(vu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},F.createElement(Yu,{type:s,quoteRef:I,selected:l,setExpanded:v,container:j,expanded:k,steps:A}),F.createElement(Mu,{open:k},F.createElement(Lu,null),F.createElement("div",{className:wu()},A.map((ge,Ce)=>{let D=`item-${Ce}`;return F.createElement(wC,{type:"quote-details",key:D,tooltipContainer:j,step:ge,hasSeparator:Ce!==A.length-1,state:ge.state})})))))}i(Ka,"Quote");import{Divider as NC,Skeleton as MC}from"@rango-dev/ui";import Mt from"react";import{darkTheme as IC,styled as Or}from"@rango-dev/ui";var Ju=Or("div",{$$color:"$colors$neutral100",[`.${IC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Ru=Or("div",{paddingTop:"$2"}),em=Or("div",{paddingLeft:"$8"}),tm=Or("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as um,Divider as dt,Skeleton as Ze}from"@rango-dev/ui";import H from"react";import{css as AC,styled as Nt}from"@rango-dev/ui";var ja=Nt("div",{display:"flex"}),om=Nt("div",{padding:"$10 $0 $20"}),nm=Nt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),rm=Nt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),im=Nt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),am=Nt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),sm=Nt("div",{width:"65%",display:"flex",justifyContent:"start"}),lm=Nt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),pm=Nt("div",{padding:"$15 $0 $15 $0"}),cm=AC({display:"flex",justifyContent:"space-between",alignItems:"center"});function ln(t){let{type:e,tagHidden:o=!0}=t,n=H.createElement(im,null,H.createElement(sm,null,H.createElement(um,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(dt,{size:8,direction:"horizontal"}),H.createElement(lm,null,H.createElement(Ze,{height:10,width:60,variant:"rounded"}),H.createElement(dt,{size:4}),H.createElement(Ze,{height:15,variant:"rounded"}))),H.createElement(Ze,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return H.createElement("div",null,!o&&H.createElement(H.Fragment,null,H.createElement(ja,null,H.createElement(Ze,{width:65,height:20,variant:"rounded"}),H.createElement(dt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:65,height:20,variant:"rounded"}),H.createElement(dt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:65,height:20,variant:"rounded"})),H.createElement(Wr,null),!r&&H.createElement(dt,{size:4})),H.createElement("div",{className:cm()},H.createElement(ja,null,H.createElement(Ze,{width:60,height:10,variant:"rounded"}),H.createElement(dt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:60,height:10,variant:"rounded"}),H.createElement(dt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:60,height:10,variant:"rounded"})),r&&H.createElement(Ze,{width:85,height:24,variant:"rounded"})),e==="basic"&&H.createElement(om,null,H.createElement(Ze,{height:15,width:148,variant:"rounded"})),e==="list-item"&&H.createElement(nm,null,H.createElement(rm,null,H.createElement(um,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(dt,{direction:"horizontal",size:4}),H.createElement(Ze,{height:15,width:150,variant:"rounded"})),H.createElement(dt,{size:10}),H.createElement(Ze,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&H.createElement(H.Fragment,null,H.createElement(dt,{size:4}),H.createElement(pm,null,n,H.createElement(am,null),n),H.createElement(dt,{size:12})))}i(ln,"QuoteSummarySkeleton");import{ChainToken as hm,Divider as Za,NextIcon as WC,Skeleton as Ur}from"@rango-dev/ui";import Ee from"react";import{styled as pn}from"@rango-dev/ui";var mm=pn("div",{display:"flex",alignItems:"start"}),dm=pn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ya=pn("div",{display:"flex",alignItems:"center",flexGrow:1}),fm=pn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),gm=pn("div",{display:"flex",alignItems:"center"});function wt(t){let{separator:e=!0}=t;return Ee.createElement(Ee.Fragment,null,Ee.createElement(gm,null,Ee.createElement(Ur,{height:22,width:22,variant:"circular"}),Ee.createElement(Za,{direction:"horizontal",size:8}),Ee.createElement(Ur,{height:15,width:148,variant:"rounded"})),Ee.createElement(mm,null,Ee.createElement(tm,{hideSeparator:!e}),Ee.createElement(dm,{extraSpace:e},Ee.createElement(Ya,null,Ee.createElement(hm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(Za,{direction:"horizontal",size:8}),Ee.createElement(Ur,{height:12,variant:"rounded"})),Ee.createElement(fm,null,Ee.createElement(WC,{color:"gray",size:16})),Ee.createElement(Ya,null,Ee.createElement(hm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(Za,{direction:"horizontal",size:8}),Ee.createElement(Ur,{height:12,variant:"rounded"})))))}i(wt,"StepSkeleton");function cn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Mt.createElement(Ju,{expanded:o,rounded:e!=="basic"},Mt.createElement(ln,{type:e,tagHidden:n}),Mt.createElement(Ru,null,Mt.createElement(MC,{height:15,variant:"rounded"})),o&&Mt.createElement(em,null,Mt.createElement(NC,{size:24}),Mt.createElement(wt,null),Mt.createElement(wt,null),Mt.createElement(wt,{separator:!1})))}i(cn,"QuoteSkeleton");function go(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:f=!1,container:d}=t,{inputAmount:g,inputUsdValue:S,toToken:C}=Y(),y=e?.outputAmount?new LC(e?.outputAmount):null,T=e?.outputAmount?Jn(e?.outputAmount,er(e)||C?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Qr.createElement(Qa,null,Qr.createElement(cn,{tagHidden:l,type:o,expanded:s})):v?Qr.createElement(Qa,{onClick:()=>p?.(e)},Qr.createElement(Ka,{quote:e,error:r,container:d,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:f,input:{value:g,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(go,"QuoteInfo");import{calculatePendingSwap as DC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as $C}from"react";import{useRef as BC,useState as PC}from"react";var _C=2e3;function zr({request:t}){let[e,o]=PC(!1),n=BC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,_C)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(p)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(zr,"useFetch");function ym(){let{fetch:t,loading:e,cancelFetch:o}=zr({request:async(n,r)=>await Ot().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(ym,"useFetchConfirmQuote");function qr(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Ja(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(qr,"throwErrorIfResponseIsNotValid");function Ja(t){if(gp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=hp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=Tp(t);if(o){let n=Zn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Ja,"getQuoteError");function Sm(t,e,o){let n=!1;t&&(n=_p(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=wo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Ep(t,e)?r.quoteUpdate={type:3,newOutputAmount:M(vo(e)),percentageChange:M(tt(vo(t)??"",vo(e)??""),null,2)}:Vi(t,e)?r.quoteUpdate={type:0}:Xi(t,e)?r.quoteUpdate={type:1}:Ki(t,e)&&(r.quoteUpdate={type:2}));let s=Ip(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(Sm,"generateWarnings");function Hr(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(Hr,"handleQuoteErrors");function Ra(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=Y(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),f=h().tokens(),{findToken:d}=h(),g=u||p,{fetch:S,cancelFetch:C,loading:y}=ym();return $C(()=>C,[]),{loading:y,fetch:i(async k=>{let v=k.selectedWallets,I=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let W=v.reduce((w,b)=>(w[b.chain]=b.address,w),{}),x={requestId:r?.requestId||"",selectedWallets:W,destination:I||void 0};try{return await S(x,!0).then(w=>{let{result:b}=w;qr({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let E={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(E);let _={slippage:g.toString(),disabledSwappersGroups:c},Q=Sm(r??void 0,E,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:d,selectedWallets:v,userSlippage:g});Q.quoteUpdate&&s(!1),l();let A=!!Q.balance,z=DC(o.toString(),b,xp(v),_,!A,{blockchains:m,tokens:f});return{quote:E,swap:z,error:null,warnings:Q}})}catch(w){return Hr(w)}},"fetch"),cancelFetch:C}}i(Ra,"useConfirmSwap");var VC=UC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Tm}`]:{width:"$48",height:"$48"}}),XC=os({flexGrow:1,paddingRight:"$10"}),KC=os({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),jC=os({display:"flex",justifyContent:"space-between",alignItems:"center"});function km(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=Y(),s=GC(),[l,p]=un(""),u=!n,[c,m]=un(!1),[f,d]=un(!1),{isActiveTab:g}=ae(),S=h().getDisabledLiquiditySources(),C=HC(S),{manager:y}=FC(),{fetch:T,loading:k,cancelFetch:v}=Ra(),[I,W]=un({swap:null,error:null,warnings:null}),[x,w]=un(!1),b=i(async({selectedWallets:B,customDestination:Z})=>{let ie=await T?.({selectedWallets:B,customDestination:Z});return W(ie),ie},"onConfirmSwap"),E=i(async()=>{if(I.swap&&n)try{await y?.create("swap",{swapDetails:I.swap},{id:I.swap.requestId});let B=`../${q.swaps}/${I.swap.requestId}`;s(B,{replace:!0}),setTimeout(()=>{e("")},0)}catch(B){p("Error: "+B?.message)}},"addNewSwap"),_=i(async()=>{d(!0),await E(),d(!1)},"onConfirm"),Q=i(async()=>{I?.warnings?.quote&&!a?w(!0):await _()},"onStartConfirmSwap"),A=i(async()=>{W({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(B=>{W(B)}).catch(B=>console.error(B))},"onRefresh");Gr(()=>{!!C.current.length&&!S.length&&A(),C.current=S},[S.length]),Gr(()=>{u&&v()},[u]),Gr(()=>{u&&m(u)},[u]),Gr(()=>{u||T({selectedWallets:o,customDestination:r}).then(B=>W(B)).catch(B=>console.error(B))},[]),qC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let z=I.warnings?.quote??null,j=I.error,G=[];if(l&&G.push(Ie.createElement(Cm,{type:"error",variant:"alarm",title:l})),I.warnings?.quoteUpdate&&G.push(Ie.createElement(Cm,{variant:"alarm",type:"warning",title:I.warnings.quoteUpdate&&ir(I.warnings.quoteUpdate)})),z||j){let B=`../${q.settings}`;G.push(Ie.createElement(on,{warning:z,error:j,couldChangeSettings:!1,refetchQuote:A,showWarningModal:x,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await E()},onChangeSettings:()=>s(B)}))}return Ie.createElement(ce,{header:{title:es.t("Confirm Swap"),onWallet:()=>{let B=`../${q.wallets}`;s(B)}},footer:Ie.createElement(VC,null,Ie.createElement("div",{className:XC()},Ie.createElement(OC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!I.error||!g,onClick:Q},es.t("Start Swap"))),Ie.createElement(Tm,{variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:m.bind(null,!0)},Ie.createElement(zC,{size:24})))},c&&Ie.createElement(eu,{open:c,onClose:()=>m(!1),onCancel:v,loading:k,onCheckBalance:b}),Ie.createElement(fe,null,Ie.createElement("div",{className:jC()},Ie.createElement(QC,{variant:"title",size:"small"},es.t("You get")),Ie.createElement("div",{className:KC()},Ie.createElement(gr,{onClick:!k&&!c&&!x?A:void 0}))),Ie.createElement(ts,{size:"12"}),ac(G.map((B,Z)=>({element:B,key:`alert-${Z}`})),Ie.createElement(ts,{size:10})),G.length>0?Ie.createElement(ts,{size:10}):null,Ie.createElement(go,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:I.error,loading:k,warning:I.warnings?.quote??null})))}i(km,"ConfirmSwapPage");import{i18n as Xr}from"@lingui/core";import{useManager as uT}from"@rango-dev/queue-manager-react";import{Divider as Lm,NotFound as mT,styled as dT}from"@rango-dev/ui";import Bt,{useState as fT}from"react";import{useNavigate as gT}from"react-router-dom";import{i18n as JC}from"@lingui/core";import{Divider as Em,GroupedVirtualizedList as RC,Skeleton as eT,SwapListItem as Im,Typography as tT}from"@rango-dev/ui";import Qe,{useCallback as Am,useEffect as oT,useRef as nT,useState as rT}from"react";function vm(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(vm,"calculateGroupsSoFar");import{css as YC,darkTheme as ZC,styled as mn}from"@rango-dev/ui";var ns=YC(),wm=mn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),rs=mn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ns}`]:{$$color:"$colors$neutral600",[`.${ZC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),is=mn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),xm=mn("div",{gap:"$10",display:"flex",flexDirection:"column"}),bm=mn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var iT=10;function as(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=rT([]),l=nT(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=Am(vm,[]),f=Am(()=>{let d=e.length-l.current;d&&(l.current+=Math.min(d,iT),s(m(u,l.current)))},[e.length]);if(oT(()=>{r||f()},[r,f]),r){let d=[1,2];return Qe.createElement(Qe.Fragment,null,[d,d].map((S,C)=>Qe.createElement(rs,{key:C},Qe.createElement(is,null,Qe.createElement(eT,{variant:"text",width:60,size:"small"}),Qe.createElement(Em,{size:16})),Qe.createElement(Em,{size:4}),Qe.createElement(xm,null,S.map((T,k)=>Qe.createElement(Im,{isLoading:!0,key:k}))))))}return Qe.createElement(RC,{endReached:()=>{l.current<e.length&&f()},groupCounts:a,groupContent:d=>Qe.createElement(rs,null,Qe.createElement(is,null,Qe.createElement(tT,{variant:"label",size:"medium",className:ns()},c[d]))),itemContent:(d,g)=>{let S=p[d];if(!S)return null;let C=S.steps[0],y=S.steps[S.steps.length-1];return Qe.createElement(wm,{key:S.requestId},Qe.createElement(Im,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:P(),onlyShowTime:c[g]===JC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:M(S.inputAmount,6,6),realAmount:S.inputAmount},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:M(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:y.outputAmount||y.expectedOutputAmountHumanReadable||""}}}))}})}i(as,"HistoryGroupedList");import{CloseIcon as sT,IconButton as lT,SearchIcon as pT,TextField as cT}from"@rango-dev/ui";import dn from"react";import{styled as aT}from"@rango-dev/ui";var Wm=aT("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Lt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return dn.createElement(cT,{prefix:dn.createElement(Wm,null,dn.createElement(pT,{color:"black"})),suffix:!!s.length&&dn.createElement(lT,{variant:"ghost",onClick:()=>l?.(""),size:"small"},dn.createElement(sT,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Lt,"SearchInput");import{i18n as Vr}from"@lingui/core";import Nm from"dayjs";var Mm=i(t=>{let e=new Map([["today",{title:Vr.t("Today"),swaps:[]}],["week",{title:Vr.t("This week"),swaps:[]}],["month",{title:Vr.t("This month"),swaps:[]}],["year",{title:Vr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=Nm();t.forEach(p=>{let u=Number(p.creationTime),c=Nm(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let m=new Date(u).getFullYear().toString();o(m,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var hT=dT("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),yT=i((t,e)=>t?.length?t.filter(o=>St(o.fromBlockchain,e)||St(o.toBlockchain,e)||St(o.toSymbol,e)||St(o.fromSymbol,e)).length:!1,"isStepContainsText");function Bm(){let t=gT(),{manager:e,state:o}=uT(),n=rt(e).map(({swap:c})=>c),[r,a]=fT(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>St(c.inputAmount,r)||St(c.status,r)||yT(c.steps,r)||St(c.requestId,r)));let u=!p?.length&&!s;return Bt.createElement(ce,{header:{title:Xr.t("History")}},Bt.createElement(fe,null,Bt.createElement(Lt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Xr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Bt.createElement(Lm,{size:"16"}),Bt.createElement(hT,null,u&&Bt.createElement(bm,null,Bt.createElement(Lm,{size:32}),Bt.createElement(mT,{title:Xr.t("No results found"),description:r?Xr.t("Try using different keywords"):""})),!u&&Bt.createElement(as,{list:p,onSwapClick:t,groupBy:Mm,isLoading:s}))))}i(Bm,"HistoryPage");import{i18n as DT}from"@lingui/core";import{Button as $T,Divider as Zm,styled as FT,WarningIcon as OT}from"@rango-dev/ui";import UT from"bignumber.js";import He,{useEffect as Jm,useState as Rm}from"react";import{useNavigate as QT}from"react-router-dom";import{i18n as wT}from"@lingui/core";import{Header as xT}from"@rango-dev/ui";import Vt,{useEffect as bT,useState as ET}from"react";import{i18n as CT}from"@lingui/core";import{Divider as ls,FullExpandedQuote as TT,Typography as kT}from"@rango-dev/ui";import ye from"react";import{styled as ss}from"@rango-dev/ui";var Pm=ss("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),_m=ss("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Dm=ss("div",{width:"146px"});import{i18n as fn}from"@lingui/core";import{Select as ST}from"@rango-dev/ui";import $m from"react";function Kr(t){let{updateQuotePartialState:e,sortStrategy:o}=Y(),n=[{value:"SMART",label:fn.t("Smart Routing")},{value:"FEE",label:fn.t("Lowest Fee")},{value:"SPEED",label:fn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:fn.t("Maximum Return")},{value:"PRICE",label:fn.t("Maximum Output")}];return $m.createElement(Dm,null,$m.createElement(ST,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Kr,"SelectStrategy");var Fm=3;function gn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:m,toToken:f,sortStrategy:d,error:g}=Y(),{slippage:S,customSlippage:C}=h(),{findToken:y}=h(),T=l||P(),k=!!u&&u.results.length,v=C??S,I=i(w=>{if(!m||!f||!u)return null;let b={requestAmount:u.requestAmount,...w};return wo(b,{fromToken:m,toToken:f,userSlippage:v,findToken:y})},"getQuoteWarning"),W=g?.type===0||g?.type===1,x=u?.results?or(d,u?.results):[];return ye.createElement(ye.Fragment,null,a&&ye.createElement(ye.Fragment,null,ye.createElement(_m,null,ye.createElement(kT,{size:"xmedium",variant:"title"},CT.t("Sort by")),ye.createElement(Kr,{container:T})),ye.createElement(ls,{size:"10"})),e&&Array.from({length:Fm},(w,b)=>ye.createElement(ye.Fragment,{key:b},s?ye.createElement(TT,{loading:!0}):ye.createElement(cn,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Fm-1&&ye.createElement(ls,{size:16}))),!e&&ye.createElement(ye.Fragment,null,k?x.map((w,b)=>{let E=I(w),_=Ja(w.swaps),Q=x.length-1===b;return ye.createElement(ye.Fragment,{key:w.requestId},ye.createElement(go,{showModalFee:r,container:T,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:_?.options||null,warning:E,fullExpandedMode:s,onClick:A=>{_||c("warning",E),c("error",_?.options||null),o(A)},type:"list-item"}),!Q&&ye.createElement(ls,{size:16}))}):W&&ye.createElement(Pm,null,ye.createElement(en,{size:s?"large":"small",error:g,fetch:n}))))}i(gn,"Quotes");import{darkTheme as vT,styled as Om}from"@rango-dev/ui";var Um=Om("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${vT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Qm=Om("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var IT=100;function ps(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=ET(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=Qo();return bT(()=>{let f=null;return a?f=setTimeout(()=>{l(!0)},IT):(l(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Vt.createElement(Um,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${Sr()}`,id:he.EXPANDED_BOX_ID},Vt.createElement(xT,{title:wT.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(Kr,{container:m}),Vt.createElement(ao,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Vt.createElement(Qm,null,Vt.createElement(gn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Qo(),onClickOnQuote:n,fullExpandedMode:c})))}i(ps,"ExpandedQuotes");import{i18n as Km}from"@lingui/core";import{SwapInput as jm}from"@rango-dev/ui";import hn from"react";import{ReverseIcon as NT}from"@rango-dev/ui";import us from"react";import{keyframes as AT,styled as zm}from"@rango-dev/ui";var cs=450,WT=AT({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),qm=zm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Hm=zm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${WT} ${cs}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function ms(){let t=Y.use.switchFromAndTo();return us.createElement(qm,null,us.createElement(Hm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},cs),t()}},us.createElement(NT,{size:12})))}i(ms,"SwitchFromAndToButton");import{styled as Gm}from"@rango-dev/ui";var Vm=Gm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Xm=Gm("div",{position:"relative"});function ds(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:f,outputUsdValue:d,selectedQuote:g}=Y(),{connectedWallets:S,getBalanceFor:C}=te(),y=a?C(a):null,T=Fn(y)?.amount??"0",k=s&&a?M(y?.amount,y?.decimals):"0",v=!!s&&Dl(S,s.name),I=!qi(g,c,m),W=!qi(g,c,d),x=!m||!d||!d.gt(0)?null:tt(m.toString(),d.toString());return hn.createElement(Vm,null,hn.createElement(Xm,null,hn.createElement(jm,{label:Km.t("From"),mode:"From",onInputChange:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:I?void 0:M(m,4,4),realUsdValue:I?void 0:m?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:P(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),hn.createElement(ms,null)),hn.createElement(jm,{sharpBottomStyle:!r&&(!!g||e),label:Km.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(tt(m,d),2,2),warningLevel:At(x??0),price:{value:M(f,6,6),usdValue:W?void 0:M(d,4,4),realValue:f?.toString(),realUsdValue:W?void 0:d?.toString(),error:W?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:P()}))}i(ds,"Inputs");import{useCallback as MT,useEffect as LT,useRef as BT,useState as PT}from"react";function Ym(){let{fetch:t,loading:e,cancelFetch:o}=zr({request:async(n,r)=>await Ot().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Ym,"useFetchAllQuotes");var _T=600;function jr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Ym(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:m,sortStrategy:f,resetQuote:d,error:g,warning:S,setSelectedQuote:C,updateQuotePartialState:y}=Y(),{slippage:T,customSlippage:k,affiliatePercent:v,affiliateRef:I,affiliateWallets:W,fetchStatus:x}=h(),w=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),E=h().excludeLiquiditySources(),{findToken:_}=h(),[Q,A]=PT(!0),z=BT(u),j=k??T,B=!l||!p||Rt(l,p)||!Ho(u),Z=i(ne=>{A(ne)},"resetState"),ie=i(ne=>{let{fromToken:ge,toToken:Ce,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,slippage:_e,affiliateRef:pt,affiliatePercent:De,affiliateWallets:Ve}=ne;if(Q||Z(!0),!B&&ge&&Ce){d();let Xe=wp({fromToken:ge,toToken:Ce,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,wallets:s,slippage:_e,affiliateRef:pt,affiliatePercent:De,affiliateWallets:Ve,enableCentralizedSwappers:a});jl("experimentalRoute",r)&&(Xe.experimental=!0),e(Xe).then(ve=>{let de=or(f,ve.results),N=$p(m,de,ve.requestAmount);A(!1),y("quotes",ve),C(N),qr({diagnosisMessages:ve.diagnosisMessages,requestId:N?.requestId||"",swaps:N?.swaps});let V=N&&wo(N,{fromToken:ge,toToken:Ce,userSlippage:j,findToken:_});y("warning",V)}).catch(ve=>{let{error:de}=Hr(ve);(de?.type===0||de?.type===1)&&d(),de?.type!==2&&(y("error",de),A(!1))})}},"fetch"),J=MT(vl(ne=>{ie(ne)},_T),[B]);return LT(()=>{if(!t){A(!1);return}if(x!=="success")return;if(B){A(!1),(m||g||S)&&d();return}if(!Ho(u)||c?.eq(0)){Z(!1),o();return}d(),Z(!0);let ne=ie;return z.current&&z.current!=u&&(ne=J),z.current=u,ne({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:I,affiliatePercent:v,affiliateWallets:W}),o},[x,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,B,w?.length,n,b.length,j,I,v,JSON.stringify(W)]),{fetch:()=>ie({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:I,affiliatePercent:v,affiliateWallets:W}),loading:Q}}i(jr,"useSwapInput");var zT=FT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),qT=300;function ed(){let t=QT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=Y(),[d,g]=Rm(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Pr(),{fetch:y,loading:T}=jr({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:I}=te(),{isActiveTab:W}=ae(),[x,w]=Rm(!1),E=yp({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:I.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),_=ql(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new UT(n).gt(0)&&!Lp(e,o),A=Q&&v==="success"&&T,G=(!_||_&&p?.results.length)&&(l||s);Jm(()=>{c(),f("refetchQuote",!0)},[]),Jm(()=>{g(Q)},[Q]);let B=(r||s)&&!x?y:void 0,Z=i(J=>{_&&d?(g(!1),setTimeout(()=>{t(J)},qT)):t(J)},"onHandleNavigation"),ie=i(J=>{r?.requestId!==J.requestId&&(w(!1),u(J))},"onClickOnQuote");return He.createElement(zT,null,He.createElement(ce,{height:"auto",footer:He.createElement($T,{type:"primary",size:"large",disabled:E.disabled||!W,prefix:E.action==="confirm-warning"&&He.createElement(OT,null),fullWidth:!0,onClick:()=>{E.action==="connect-wallet"?Z(q.wallets):E.action==="confirm-warning"?w(!0):Z(q.confirmSwap)}},E.title),header:{onWallet:()=>{Z(q.wallets)},hasBackButton:!1,title:k.title||DT.t("Swap"),suffix:He.createElement(ao,{hidden:_?["refresh"]:void 0,onClickRefresh:B,onClickHistory:()=>Z(q.swaps),onClickSettings:()=>{Z(q.settings)}})}},He.createElement(fe,null,He.createElement(ds,{fetchingQuote:A,fetchMetaStatus:v,isExpandable:_,onClickToken:J=>{Z(J==="from"?q.fromSwap:q.toSwap)}}),He.createElement(Zm,{size:"2"}),_?null:He.createElement(go,{quote:r,loading:A,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{f("refetchQuote",!1),Z(q.routes)}:void 0}),G?He.createElement(He.Fragment,null,He.createElement(Zm,{size:"10"}),He.createElement(on,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:x,confirmationDisabled:!W,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),m(!0),Z(q.confirmSwap)},onChangeSettings:()=>Z(q.settings)})):null)),_?He.createElement(ps,{loading:A,onClickOnQuote:ie,fetch:y,onClickRefresh:B,isVisible:d}):null)}i(ed,"Home");import{i18n as td}from"@lingui/core";import{Alert as HT,Divider as GT,List as VT,ListItemButton as XT,Radio as KT,RadioRoot as jT,Typography as YT}from"@rango-dev/ui";import xt from"react";function Xt(){let{setLanguage:t,language:e,config:o}=h(),n=Zl,r=o?.language||ko;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||ko),resetLanguage:()=>t(null)}}i(Xt,"useLanguage");function od(){let{activeLanguage:t,changeLanguage:e,languages:o}=Xt(),n=nt(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:xt.createElement(YT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:xt.createElement(KT,{value:s}),start:xt.createElement(p,null)}});return xt.createElement(ce,{header:{title:td.t("Language")}},xt.createElement(fe,null,xt.createElement(HT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),xt.createElement(GT,{size:"8"}),xt.createElement(jT,{value:t},xt.createElement(VT,{type:xt.createElement(XT,{title:td.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(od,"LanguagePage");import{i18n as Pt}from"@lingui/core";import{Button as tk,Checkbox as ok,Image as nk,ListItemButton as rk,NotFound as ik,Typography as ak}from"@rango-dev/ui";import ze,{useState as sk}from"react";import{Checkbox as RT,Skeleton as rd}from"@rango-dev/ui";import Sn from"react";import{styled as fs}from"@rango-dev/ui";var yn=fs("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),gs=fs("div",{width:80,display:"flex",justifyContent:"flex-end"}),hs=fs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as ZT,styled as JT}from"@rango-dev/ui";var nd=JT(ZT,{height:61});var ek=30;function ys(){return Sn.createElement(yn,null,Array.from(Array(ek),(t,e)=>Sn.createElement(nd,{hasDivider:!0,key:e,start:Sn.createElement(rd,{variant:"circular",width:35,height:35}),title:Sn.createElement(rd,{variant:"text",size:"large",width:90}),end:Sn.createElement(RT,{checked:!1})})))}i(ys,"LoadingLiquiditySourceList");function Ss({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=sk(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=qn(o,n),u={Exchanges:Pt.t("Exchanges"),Bridges:Pt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(y=>c.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,d=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:T,groupTitle:k,logo:v}=y;return{start:ze.createElement(nk,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:ze.createElement(ok,{checked:T,disabled:l}),title:ze.createElement(ak,{variant:"title",size:"xmedium"},Pt.t(k)),...y}}),S=i(y=>{let T=y.target.value;a(T)},"searchHandler"),C=g;return r&&(C=g.filter(y=>St(y.groupTitle,r))),ze.createElement(ce,{header:{title:Pt.t(t),suffix:ze.createElement(gs,null,ze.createElement(tk,{variant:"ghost",size:"xsmall",onClick:d},f?Pt.t("Deselect all"):Pt.t("Select all")))}},ze.createElement(fe,{view:!0},ze.createElement(Lt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Pt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&ze.createElement(ys,null),!C.length&&r?ze.createElement(hs,null,ze.createElement(ik,{title:Pt.t("No results found"),description:Pt.t("Try using different keywords")})):e==="success"&&ze.createElement(yn,{disabled:l},C.map(y=>{let{groupTitle:T,...k}=y;return ze.createElement(ze.Fragment,{key:y.id},ze.createElement(rk,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(Ss,"LiquiditySourcePage");import{i18n as lk}from"@lingui/core";import Yr from"react";import{useNavigate as pk}from"react-router-dom";function id(){let t=pk(),e=nt(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=Y(),{fetch:l,loading:p}=jr({refetchQuote:n}),u=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${q.settings}`,m=`../${q.wallets}`;return Yr.createElement(ce,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:lk.t("Routes"),suffix:Yr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Yr.createElement(fe,null,Yr.createElement(gn,{fetch:l,loading:p,onClickOnQuote:u})))}i(id,"RoutesPage");import{i18n as dd}from"@lingui/core";import{Divider as fd,getCategoriesCount as Sk,SelectableCategoryList as Ck}from"@rango-dev/ui";import _t,{useState as gd}from"react";import{i18n as Cs}from"@lingui/core";import{Divider as ud,Image as dk,ListItemButton as fk,NotFound as gk,Typography as md}from"@rango-dev/ui";import at,{useEffect as hk,useState as yk}from"react";var ad=i((t,e,o)=>t.filter(n=>Wn(n.type,o)).filter(n=>Et(n.name,e)||Et(n.displayName,e)),"filterBlockchains");import{ImageContainer as ck,styled as sd}from"@rango-dev/ui";var ld=sd("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Zr=sd(Yo,{padding:0,margin:0,listStyle:"none",[`& ${ck}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as uk,Skeleton as pd}from"@rango-dev/ui";import Jr from"react";var mk=20;function cd(){return Jr.createElement(Zr,null,Array.from(Array(mk),t=>Jr.createElement(uk,{key:t,hasDivider:!0,start:Jr.createElement(pd,{variant:"circular",width:35,height:35}),title:Jr.createElement(pd,{variant:"text",size:"large",width:90})})))}i(cd,"LoadingBlockchainList");function Ts(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=yk(e),{fetchStatus:l}=h();hk(()=>{s([...ad(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?at.createElement(at.Fragment,null,at.createElement(ud,{size:32}),at.createElement(gk,{title:Cs.t("No results found"),description:Cs.t("Try using different keywords")})):at.createElement(Zr,{as:"ul",key:`${r}-${o}`},a.map(u=>at.createElement(fk,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:at.createElement(dk,{src:u.logo,size:30}),title:at.createElement(md,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return at.createElement(ld,null,at.createElement(md,{variant:"label",size:"large"},Cs.t("Select Blockchain")),at.createElement(ud,{size:4}),l==="loading"&&at.createElement(cd,null),l==="success"&&p())}i(Ts,"BlockchainList");function ks(t){let{type:e}=t,o=nt(),[n,r]=gd(""),[a,s]=gd("ALL"),l=Y.use.setToBlockchain(),p=Y.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),f=Sk(c)!==1;return _t.createElement(ce,{header:{title:dd.t("Select Blockchain")}},_t.createElement(fe,{view:!0},f&&_t.createElement(_t.Fragment,null,_t.createElement(Ck,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),_t.createElement(fd,{size:24})),_t.createElement(Lt,{value:n,autoFocus:!0,placeholder:dd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),_t.createElement(fd,{size:16}),_t.createElement(Ts,{list:c,searchedFor:n,blockchainCategory:a,onChange:d=>{e==="source"?p(d):l(d),o()}})))}i(ks,"SelectBlockchainPage");import{i18n as ni}from"@lingui/core";import{Divider as Dd}from"@rango-dev/ui";import ho,{useState as Dk}from"react";import{useNavigate as $k}from"react-router-dom";import{i18n as xs}from"@lingui/core";import{BlockchainsChip as Rr,Divider as Cd,Image as Td,Skeleton as xk,Tooltip as bk,Typography as bs}from"@rango-dev/ui";import Le from"react";import{useEffect as vk}from"react";var hd=["ETH","COSMOS","OSMOSIS"];function vs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Tk),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(kk(s)),r=n.splice(a)}return{list:n,more:r}}i(vs,"prepare");function Tk(t,e){let o=hd,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(Tk,"sortByMostUsedBlockchains");function kk(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),a=t.findIndex(p=>p===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(kk,"generateSortByPreferredBlockchainsFor");function yd(t,e){return!!e.list.find(o=>o.name===t)}i(yd,"isInVisibleList");function ws(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();vk(()=>{if(e?.selected){let a=vs(t,o,e);yd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=vs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(ws,"usePrepareBlockchainList");import{styled as wk}from"@rango-dev/ui";var Sd=wk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Ek=12;function Es(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=ws(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=Y.use.resetToBlockchain(),u=Y.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,f=!m&&c;return Le.createElement(Le.Fragment,null,Le.createElement(Cd,{size:12}),Le.createElement(bs,{variant:"label",size:"large"},xs.t("Select Blockchain")),Le.createElement(Cd,{size:12}),Le.createElement(Sd,null,l==="loading"&&Array.from(Array(Ek),d=>Le.createElement(xk,{key:d,variant:"rounded",height:50})),l==="success"&&Le.createElement(Le.Fragment,null,Le.createElement(Rr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Le.createElement(bs,{variant:"body",size:"xsmall",color:"secondary500"},xs.t("All"))),s.list.map(d=>Le.createElement(bk,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:P()},Le.createElement(Rr,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},Le.createElement(Td,{src:d.logo,size:30})))),m?Le.createElement(Rr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Le.createElement(Td,{src:s.more[0].logo,size:30})):null,f?Le.createElement(Rr,{onClick:a,key:"more-blockchains"},Le.createElement(bs,{variant:"body",size:"xsmall",color:"secondary500"},xs._("More +{count}",{count:s.more.length}))):null)))}i(Es,"BlockchainsSection");import{i18n as Ds}from"@lingui/core";import{darkTheme as Md,Divider as Fo,ExternalLinkIcon as Wk,Image as Nk,ListItemButton as Mk,NotFound as Lk,PinIcon as Bk,Skeleton as Ld,Typography as oi,VirtualizedList as Pk}from"@rango-dev/ui";import K,{useEffect as Bd,useState as Pd}from"react";import{Divider as Wd,ListItem as Ak,Skeleton as Cn}from"@rango-dev/ui";import ft from"react";import{css as $o,darkTheme as kd,ImageContainer as Ik,styled as st,Typography as vd}from"@rango-dev/ui";var Is=$o({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),As=$o({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Ws=$o({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Ns=$o({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${kd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Ms=$o({}),Ls=$o(),wd=st("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Bs=st("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ei=st("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${As}`]:{[`& .${Ns}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Ms}`]:{bottom:"-15px"},[`& .${Is}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Ws}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ps=st("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),_s=st(vd,{}),xd=st("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Ls}`]:{$$color:"$colors$neutral600",[`.${kd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ti=st("div",{display:"flex",alignItems:"end",flexDirection:"column"}),vU=st("div",{display:"flex",alignItems:"center"}),bd=st("div",{position:"relative",[`& ${Ik}`]:{borderRadius:"$xm",overflow:"hidden"}}),Ed=st("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Id=st(vd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Ad=st("a",{"& svg:hover":{color:"$colors$info"}});function Nd(t){return ft.createElement(ei,null,Array.from(Array(t.size),e=>ft.createElement(Ak,{key:e,hasDivider:!0,start:ft.createElement(Cn,{variant:"circular",width:35,height:35}),end:ft.createElement(ti,null,ft.createElement(Cn,{variant:"text",size:"large",width:70}),ft.createElement(Wd,{size:4}),ft.createElement(Cn,{variant:"text",size:"medium",width:50})),title:ft.createElement("div",null,ft.createElement(Cn,{variant:"text",size:"large",width:90}),ft.createElement(Wd,{size:4}),ft.createElement(Cn,{variant:"text",size:"medium",width:90}))})))}i(Nd,"LoadingTokenList");var $s=20,_k=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return K.createElement("div",{className:As()},o?K.createElement("div",{className:Is()},o):K.createElement(Bs,{className:Ws()},K.createElement(oi,{variant:"title",size:"xmedium"},r.symbol),K.createElement(Fo,{direction:"horizontal",size:4}),K.createElement(Ps,{css:a},K.createElement(_s,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&K.createElement("div",{className:`${Ns()} ${!o&&Ms()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",K.createElement(Fo,{size:4,direction:"horizontal"}),K.createElement(Ad,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},K.createElement(Wk,{size:12}))))},"renderDesc");function _d(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Pd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=Pd(!0),{getBalanceFor:m,loading:f}=te(),{isTokenPinned:d}=h(),g=i(()=>{s(e.slice(0,a.length+$s))},"loadNextPage");Bd(()=>{c(e.length>a.length)},[a.length]),Bd(()=>{s(e.slice(0,$s))},[e.length,r]);let S=i(()=>!a.length&&o?K.createElement(K.Fragment,null,K.createElement(Fo,{size:32}),K.createElement(Lk,{title:Ds.t("No results found"),description:Ds.t("Try using different keywords")})):K.createElement(Pk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],T=Fn(m(y)),k=y.address||"",v=p.find(w=>w.name===y.blockchain),I=ra(v.color,"main"),W={$$color:I.main150,[`.${Md} &`]:{$$color:I.main750},backgroundColor:"$$color"},x={$$color:I.main750,[`.${Md} &`]:{$$color:I.main150},color:"$$color"};return K.createElement("div",{style:{paddingRight:5}},K.createElement(Mk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:K.createElement(bd,null,K.createElement(Nk,{src:y.image,size:30}),d(y,t.type)&&K.createElement(Ed,null,K.createElement(Bk,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||y.name||!y.name&&!k?K.createElement(Bs,null,K.createElement(oi,{variant:"title",size:"xmedium"},y.symbol),K.createElement(Fo,{direction:"horizontal",size:4}),K.createElement(Ps,{css:W},K.createElement(_s,{variant:"body",size:"xsmall",css:x},y.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?_k({address:k,token:a[C],customCssForTag:W,customCssForTagTitle:x,name:y.name,url:v.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:f?K.createElement(ti,null,K.createElement(Ld,{variant:"text",size:"large",width:70}),K.createElement(Fo,{size:4}),K.createElement(Ld,{variant:"text",size:"medium",width:50})):T&&K.createElement(xd,null,K.createElement(Id,{variant:"title",size:"small"},T.amount),K.createElement("div",null),T.usdValue&&K.createElement(oi,{variant:"body",className:Ls(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return K.createElement(wd,null,K.createElement(oi,{variant:"label",size:"large"},Ds.t("Select Token")),K.createElement(Fo,{size:4}),l==="loading"&&K.createElement(Nd,{size:$s}),l==="success"&&K.createElement(ei,{as:"ul"},S()))}i(_d,"TokenList");function Fs(t){let{type:e}=t,o=$k(),n=nt(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=Y(),c=te.use.getBalanceFor(),[m,f]=Dk(""),g=(e==="source"?r:a)?.name??"",S=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,getBalanceFor:c}),y=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),T=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:C}}):l({token:v,meta:{blockchains:S,tokens:C}})},"updateToken"),k={source:ni.t("Source"),destination:ni.t("Destination")};return ho.createElement(ce,{header:{title:ni.t("Swap {type}",{type:k[e]})}},ho.createElement(fe,null,ho.createElement(Es,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(q.blockchains),onChange:v=>{y(v)}}),ho.createElement(Dd,{size:24}),ho.createElement(Lt,{value:m,autoFocus:!0,placeholder:ni.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>f(""),onChange:v=>f(v.target.value)}),ho.createElement(Dd,{size:16}),ho.createElement(_d,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:v=>{T(v);let I=S.find(W=>v.blockchain===W.name);I&&y(I),n()}})))}i(Fs,"SelectSwapItemsPage");import{i18n as zs}from"@lingui/core";import{Alert as lv,Button as pv,styled as cv}from"@rango-dev/ui";import yo from"react";import{useInRouterContext as uv,useSearchParams as mv}from"react-router-dom";import{i18n as zd}from"@lingui/core";import{Divider as Qk,InfoIcon as zk,TextField as qk,Tooltip as Hk,Typography as qd}from"@rango-dev/ui";import gt from"react";import{Chip as Fk,styled as Tn,TextField as Ok}from"@rango-dev/ui";var $d=Tn("div",{paddingTop:"$5",padding:"$10 $5"}),Fd=Tn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Ok}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Od=Tn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ri=Tn("div",{maxWidth:"280px",padding:"$10"}),Ud=Tn(Fk,{width:"61px",flexShrink:0});import{i18n as Os}from"@lingui/core";import{Typography as Uk}from"@rango-dev/ui";import kn from"react";function Qd(){return kn.createElement(ri,null,kn.createElement(Uk,{variant:"label",size:"medium",color:"neutral700"},Os.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),kn.createElement("br",null),kn.createElement("br",null),kn.createElement("b",null,Os.t("Warning")),":",Os.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(Qd,"SlippageTooltipContent");function Us(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return gt.createElement($d,null,gt.createElement(Od,null,gt.createElement(qd,{variant:"title",size:"xmedium"},zd.t("Slippage tolerance per swap")),gt.createElement(Qk,{direction:"horizontal",size:4}),gt.createElement(Hk,{container:P(),side:"top",sideOffset:4,content:gt.createElement(Qd,null)},gt.createElement(zk,{color:"gray"}))),gt.createElement(Fd,null,Jl.map((r,a)=>{let s=`slippage-${a}`;return gt.createElement(Ud,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),gt.createElement(qk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=op&&s<=tp?n(s):n(null)},suffix:o&>.createElement(qd,{variant:"body",size:"small"},"%"),placeholder:zd.t("Custom")})))}i(Us,"Slippage");import{i18n as bt}from"@lingui/core";import{AutoThemeIcon as Hd,BridgesIcon as Gk,ChevronRightIcon as Qs,DarkModeIcon as Gd,Divider as ii,ExchangeIcon as Vk,InfinityIcon as Xk,InfoIcon as Kk,LanguageIcon as jk,LightModeIcon as Vd,List as Yk,ListItem as Zk,ListItemButton as Jk,Skeleton as Rk,styled as ev,Switch as tv,Tabs as ov,Tooltip as nv,Typography as lt}from"@rango-dev/ui";import U from"react";import{useNavigate as rv}from"react-router-dom";var iv=ev("div",{width:"202px",height:"$40"}),av=[{id:"light",icon:U.createElement(Vd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Light"))},{id:"dark",icon:U.createElement(Gd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Dark"))},{id:"auto",icon:U.createElement(Hd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Auto"))}],sv=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return U.createElement(Hd,{...e});case"dark":return U.createElement(Gd,{...e});default:return U.createElement(Vd,{...e})}},"getThemeIcon");function Xd(){let t=rv(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Xt(),s=a.find(z=>z.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=et("theme",c),f=et("liquiditySource",c),d=et("language",c),g=h().infiniteApprove,S=h().toggleInfiniteApprove,C=qn(p,u),y=C.filter(z=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(z.type)),T=y.length,k=y.filter(z=>z.selected).length,v=C.filter(z=>z.type==="DEX"),I=v.length,W=v.filter(z=>z.selected).length,x=i((z,j)=>{switch(l){case"loading":return U.createElement(Rk,{variant:"text",size:"medium",width:50});case"failed":return U.createElement(lt,{variant:"body",size:"medium",color:"$error500"},bt.t("Loading failed"));default:return U.createElement(lt,{variant:"body",size:"medium"},`${z} / ${j}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Bridges")),end:U.createElement(U.Fragment,null,x(k,T),U.createElement(ii,{direction:"horizontal",size:8}),U.createElement(Qs,{color:"black"})),onClick:()=>t(q.bridges),start:U.createElement(Gk,{color:"gray",size:16})},b={id:"exchange-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Exchanges")),end:U.createElement(U.Fragment,null,x(W,I),U.createElement(ii,{direction:"horizontal",size:8}),U.createElement(Qs,{color:"black"})),start:U.createElement(Vk,{color:"gray",size:16}),onClick:()=>t(q.exchanges)},E={id:"language-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Language")),start:U.createElement(jk,{color:"gray",size:16}),end:U.createElement(U.Fragment,null,U.createElement(lt,{variant:"body",size:"medium"},s),U.createElement(ii,{direction:"horizontal",size:8}),U.createElement(Qs,{color:"black"})),onClick:()=>t(q.languages)},_={id:"infinite-approval-item",title:U.createElement(U.Fragment,null,U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Infinite approval")),U.createElement(ii,{direction:"horizontal",size:4}),U.createElement(nv,{side:"top",sideOffset:4,container:P(),content:U.createElement(ri,null,U.createElement(lt,{variant:"label",size:"medium",color:"neutral700"},bt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},U.createElement(Kk,{color:"gray"}))),start:U.createElement(Xk,{color:"gray",size:16}),end:U.createElement(tv,{checked:g}),onClick:S},Q={id:"theme-item",type:U.createElement(Zk,null),title:U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Theme")),end:U.createElement(iv,null,U.createElement(ov,{container:P(),items:av,value:n,onChange:z=>o(z.id),type:"primary",borderRadius:"small"})),start:sv(n)},A=f?[]:[w,b];return d||A.push(E),A.push(_),!e?.singleTheme&&!m&&A.push(Q),U.createElement(Yk,{type:U.createElement(Jk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:A})}i(Xd,"SettingsLists");var dv=cv("div",{paddingLeft:"$8"});function Kd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=mv(),r=uv(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return yo.createElement(ce,{header:{title:zs.t("Settings")}},yo.createElement(fe,null,o&&yo.createElement(lv,{type:"info",variant:"alarm",title:zs.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:yo.createElement(dv,null,yo.createElement(pv,{type:"secondary",size:"small",onClick:a},zs.t("Reset")))}),yo.createElement(Us,null),yo.createElement(Xd,null)))}i(Kd,"SettingsPage");import{i18n as Jv}from"@lingui/core";import{cancelSwap as Rv}from"@rango-dev/queue-manager-rango-preset";import{useManager as ew}from"@rango-dev/queue-manager-react";import{Alert as tw}from"@rango-dev/ui";import al from"react";import{useParams as ow}from"react-router-dom";import{i18n as Je}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Bv,getCurrentStep as Pv,getRelatedWalletOrNull as _v}from"@rango-dev/queue-manager-rango-preset";import{Button as If,CopyIcon as Dv,Divider as $v,DoneIcon as Fv,IconButton as Ov,QuoteCost as Uv,RangoExplorerIcon as Qv,StepDetails as zv,Tooltip as Af,Typography as Co,useCopyToClipboard as qv}from"@rango-dev/ui";import{useWallets as Hv}from"@rango-dev/wallets-react";import Wf from"bignumber.js";import{PendingSwapNetworkStatus as fi}from"rango-types";import R,{useEffect as Nf,useRef as Gv,useState as Mf}from"react";import{useNavigate as Vv}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var fv=[Kt.t("Sunday"),Kt.t("Monday"),Kt.t("Tuesday"),Kt.t("Wednesday"),Kt.t("Thursday"),Kt.t("Friday"),Kt.t("Saturday")];function jd(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Kt.t("Today"):`${fv[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(jd,"timeSince");function Yd(t){return t.finishTime?jd(parseInt(t.finishTime)):jd(parseInt(t.creationTime))}i(Yd,"getSwapDate");import{PendingSwapNetworkStatus as li}from"rango-types";import pi from"react";import{i18n as ai}from"@lingui/core";import{Button as Zd,Divider as qs,MessageBox as gv}from"@rango-dev/ui";import jt from"react";var Jd=i(({onCancel:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(qs,{size:20}),jt.createElement(gv,{type:"error",title:ai.t("Cancel Swap"),description:ai.t("Are you sure you want to cancel this swap?")}),jt.createElement(qs,{size:32}),jt.createElement(Zd,{variant:"contained",type:"primary",size:"large",onClick:t},ai.t("Yes, Cancel it")),jt.createElement(qs,{size:12}),jt.createElement(Zd,{variant:"outlined",type:"primary",size:"large",onClick:e},ai.t("No, Continue"))),"CancelContent");import{i18n as si}from"@lingui/core";import{Button as Rd,Divider as Hs,MessageBox as hv,Typography as yv}from"@rango-dev/ui";import Dt from"react";var ef=i(({onDelete:t,onClose:e})=>Dt.createElement(Dt.Fragment,null,Dt.createElement(Hs,{size:20}),Dt.createElement(hv,{type:"error",title:si.t("Delete Transaction"),description:si.t("Are you sure you want to delete this swap?")}),Dt.createElement(Hs,{size:32}),Dt.createElement(Rd,{variant:"contained",type:"primary",size:"large",onClick:t},si.t("Yes, Delete it")),Dt.createElement(Hs,{size:12}),Dt.createElement(Rd,{variant:"outlined",type:"primary",size:"large",onClick:e},Dt.createElement(yv,{variant:"title",size:"medium",color:"primary"},si.t("No, Cancel")))),"DeleteContent");import{i18n as Gs}from"@lingui/core";import{PendingSwapNetworkStatus as Vs}from"rango-types";var Xs={[Vs.WaitingForNetworkChange]:{type:"loading",title:Gs.t("Change Network")},[Vs.WaitingForConnectingWallet]:{type:"warning",title:Gs.t("Connect Wallet")},[Vs.NetworkChanged]:{type:"success",title:Gs.t("Network Changed")}};import{debug as Ks}from"@rango-dev/logging-core";import{MessageBox as Sv,Wallet as Cv}from"@rango-dev/ui";import{useWallets as Tv}from"@rango-dev/wallets-react";import So,{useState as nf}from"react";import{styled as tf}from"@rango-dev/ui";var of=tf("div",{display:"flex",justifyContent:"center"}),cz=tf("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var rf=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Tv(),[c,m]=nf(null),[f,d]=nf(null),g=n?.walletType,S=g?Mi(u(g)):null,C=g?p(g):null,y=a&&!!g&&!!S&&!!C,T=i(()=>{c&&m({...c,open:!1})},"handleCloseNamespaceModal"),k=i(()=>{f&&d({...f,open:!1})},"handleCloseDerivationPathModal"),v=i(W=>{C?.needsDerivationPath&&C?.singleNamespace&&W[0]&&g?d({open:!0,providerType:g,providerImage:C.img,namespace:W[0]}):l(c?.providerType,void 0,W.map(x=>({namespace:x}))).catch(x=>Ks(x)),T()},"handleConfirmNamespaces"),I=i(W=>{W&&f?.namespace&&l(f?.providerType,void 0,[{namespace:f.namespace,derivationPath:W}]).catch(x=>Ks(x)),k()},"handleDerivationPathConfirm");return So.createElement(So.Fragment,null,So.createElement(Sv,{type:e,title:o,description:r}),y&&So.createElement(of,null,So.createElement(Cv,{container:P(),title:C.name,image:C.img,type:g,state:S,link:C.installLink,disabled:s,onClick:async()=>{C.namespaces?m({open:!0,providerType:g,providerImage:C.img,availableNamespaces:C.namespaces,singleNamespace:C.singleNamespace}):l(g).catch(W=>Ks(W))}})),So.createElement(po,{open:!!c?.open,onClose:T,onConfirm:v,image:c?.providerImage,availableNamespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}),So.createElement(so,{open:!!f?.open,selectedNamespace:f?.namespace,type:f?.providerType,image:f?.providerImage,onClose:k,onConfirm:I}))},"WalletStateContent");function js(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===li.WaitingForNetworkChange||e===li.WaitingForConnectingWallet||e===li.NetworkChanged;return pi.createElement(re,{open:!!e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},p&&pi.createElement(rf,{type:Xs[e].type,title:Xs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==li.WaitingForNetworkChange}),e==="delete"&&pi.createElement(ef,{onClose:o,onDelete:n}),e==="cancel"&&pi.createElement(Jd,{onClose:o,onCancel:r}))}i(js,"SwapDetailsModal");import{i18n as vn}from"@lingui/core";import{Button as Ys,Divider as ci,MessageBox as af,TokenAmount as kv,Typography as Zs}from"@rango-dev/ui";import Pe from"react";import{useNavigate as vv}from"react-router-dom";function Js(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:m,diagnosisUrl:f}=t,d=vv();return Pe.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Pe.createElement(af,{type:"success",title:vn.t("Swap Successful")},Pe.createElement(kv,{direction:"vertical",tooltipContainer:P(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Pe.createElement(ci,{size:12}),Pe.createElement(Zs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Pe.createElement(af,{type:"error",title:vn.t("Transaction Failed"),description:m}),Pe.createElement(ci,{size:32}),n==="success"&&Pe.createElement(Ys,{variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},Pe.createElement(Zs,{variant:"title",size:"medium",color:"neutral100"},vn.t("Done"))),Pe.createElement(ci,{size:12}),f&&Pe.createElement(Pe.Fragment,null,Pe.createElement(Ys,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},vn.t("Diagnosis")),Pe.createElement(ci,{size:12})),Pe.createElement(Ys,{variant:"outlined",type:"primary",size:"large",onClick:o},Pe.createElement(Zs,{variant:"title",size:"medium",color:"primary"},vn.t("See Details"))))}i(Js,"SwapDetailsCompleteModal");import Lv from"react";import{i18n as Av}from"@lingui/core";import{Alert as wf,IconButton as Wv,LinkIcon as Nv}from"@rango-dev/ui";import Yt,{Fragment as Mv}from"react";import{Alert as xv,ChevronDownIcon as bv,IconButton as Ev}from"@rango-dev/ui";import Uo,{useState as Iv}from"react";import{css as wn,darkTheme as sf,styled as $t,Typography as wv}from"@rango-dev/ui";var lf=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ui=$t("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${sf} &`]:{color:"$secondary500"}}}}}),pf=$t(Yo,{padding:"$0 $20 $20 $20"}),Xz=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),cf=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),Kz=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Oo=wn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${sf} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),uf=wn({padding:"$5 0"}),mi=wn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),mf=wn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),df=wn({width:"100%",padding:"0 $20 $10"}),ff=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),gf=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),di=$t(wv,{wordBreak:"break-word"});import{styled as Rs}from"@rango-dev/ui";var hf=Rs("div",{display:"flex",flexDirection:"column",gap:"$10"}),yf=Rs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Sf=Rs("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Cf(t){let{message:e}=t,[o,n]=Iv(!1);return Uo.createElement(xv,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Uo.createElement(Ev,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Uo.createElement(yf,{rotated:o},Uo.createElement(bv,{size:12,color:"gray"}))),footer:Uo.createElement(Sf,{open:o},Uo.createElement(di,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Cf,"FailedAlert");import{i18n as Tf}from"@lingui/core";import{Alert as el,Button as kf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as tl}from"rango-types";import xn from"react";function vf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?xn.createElement(el,{type:"warning",title:n.shortMessage,action:xn.createElement(kf,{size:"xxsmall",type:"warning",onClick:()=>{o(tl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Tf.t("Change"))}):r===tl.WaitingForConnectingWallet?xn.createElement(el,{type:"warning",title:n.shortMessage,action:xn.createElement(kf,{size:"xxsmall",type:"warning",onClick:()=>{o(tl.WaitingForConnectingWallet)}},Tf.t("Connect"))}):xn.createElement(el,{type:"warning",title:n.shortMessage})}i(vf,"WarningAlert");function ol(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Ko(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Yt.createElement(hf,null,a.explorerUrl?.map((m,f,d)=>{let g=f+m.url,S=f===d.length-1,C=(S&&u||p)&&!c,y=S&&a.status==="failed";return Yt.createElement(Mv,{key:g},Yt.createElement(wf,{type:S&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:Av.t("View transaction"),action:m.url&&Yt.createElement(Wv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Yt.createElement(Nv,{size:12}))}))}),c&&Yt.createElement(wf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(vf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(Cf,{message:r}))}i(ol,"SwapDetailsAlerts");var xf=2e3;var bf=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Re(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Re(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:zo(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Re(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Re(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:zo(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Lv.createElement(ol,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Ef(t){if(Ko(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(Ef,"getStepState");function nl(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Hv(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=Y.use.retry(),f=ae.use.isActiveTab(),d=Vv(),[g,S]=qv(xf),C=Gv(null),[y,T]=Mf(null),[k,v]=Mf(null),I=i(()=>{r(),T(null)},"onCancel"),W=xe.use.getNotifications(),x=xe.use.removeNotification(),w=W(),b=Pv(e),E=b?.networkStatus;Nf(()=>{w.find(N=>N.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId)):k&&v(null))},[e.status,e.requestId]),Nf(()=>{B?T(fi.WaitingForNetworkChange):E===fi.WaitingForConnectingWallet||E===fi.NetworkChanged?T(E):T(null)},[E]);let _=Wp(e),Q=b?Bv(e,b):null,A=b?_v(e,b):null,z=Yd(e),j=Np(e),G=i(de=>!!l(de)?.mobileWallet,"isMobileWallet"),B=E===fi.WaitingForNetworkChange&&!!Q&&!!A?.walletType&&(G(A.walletType)||a(A.walletType,Q)),Z=B?s.bind(null,A.walletType,Q):void 0,ie=Ap(e,b),J=bf({swap:e,switchNetwork:Z,showNetworkModal:E,setNetworkModal:T,message:ie,blockchains:p,swappers:u}),ne=J.length,[ge,Ce]=[e.steps[0],e.steps[ne-1]],D=Ce.outputAmount||Ce.expectedOutputAmountHumanReadable,L=e.steps.reduce((de,N)=>de+parseFloat(N.feeInUsd||""),0),me=e.steps.find(de=>de.diagnosisUrl)?.diagnosisUrl,se=M(parseFloat(M(D,6,6))*(Ce.toUsdPrice||0),4,4),_e=M(parseFloat(e.inputAmount)*(ge.fromUsdPrice||0),4,4),pt=D?new Wf(D).multipliedBy(Ce.toUsdPrice||0).toString():"",De=new Wf(e.inputAmount).multipliedBy(ge.fromUsdPrice||0).toString(),Ve=tt(_e,se),Xe=ie.detailedMessage.content||ie.shortMessage,ve=e.status==="success"?Je.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(D,6,6),token:J[ne-1].to.token.displayName,conciseAddress:On(e.wallets[J[ne-1].to.chain.displayName]?.address||""),chain:J[ne-1].to.chain.displayName}}):R.createElement(gf,null,R.createElement(Co,{variant:"body",size:"medium",color:"neutral700",align:"center"},Xe?"":Je.t("Transaction was not sent."),_?`${Je.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:_.outputAmount,symbol:_.symbol,blockchain:_.blockchain}})}`:""),Xe&&R.createElement(di,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",Xe));return R.createElement(ce,{header:{title:Je.t("Swap Details"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(Io,null,R.createElement(If,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},R.createElement(Co,{size:"medium",variant:"label",color:"error"},Je.t("Delete"))))},footer:j&&!k&&R.createElement(If,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let de=tr(e,p,c);m(de),setTimeout(()=>{d("../../")},0)}},Je.t("Try again"))},R.createElement(fe,{compact:!0,view:!0},R.createElement(ui,null,R.createElement("div",{className:Oo()},R.createElement(Co,{variant:"label",size:"large",color:"neutral700"},`${Je.t("Request ID")}:`),R.createElement("div",{className:mi()},R.createElement(Co,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Af,{container:P(),content:g?Je.t("Copied To Clipboard"):Je.t("Copy Request ID"),open:g||void 0,side:"bottom",alignOffset:-16,align:"end"},R.createElement(Ov,{variant:"ghost",onClick:S.bind(null,o||"")},g?R.createElement(Fv,{size:16,color:"secondary"}):R.createElement(Dv,{size:16,color:"gray"}))),R.createElement(ff,{target:"_blank",href:`${fl}/swap/${o}`},R.createElement(Af,{container:P(),content:Je.t("View on Rango Explorer"),side:"bottom"},R.createElement(Qv,{size:20}))))),R.createElement("div",{className:Oo()},R.createElement(Co,{variant:"label",size:"large",color:"neutral700"},e.finishTime?Je.t("Finished at"):Je.t("Created at")),R.createElement(Co,{variant:"label",size:"small",color:"neutral700"},z))),R.createElement("div",{className:mf()},R.createElement(Uv,{fee:M(String(L),2,2),time:qo(Ln(e.steps)),steps:ne}),R.createElement(rn,{from:{price:{value:M(e.inputAmount,6,6),usdValue:_e,realUsdValue:De,realValue:e.inputAmount},token:{displayName:J[0].from.token.displayName,image:J[0].from.token.image},chain:{image:J[0].from.chain.image,displayName:J[0].from.chain.displayName}},to:{price:{value:M(D,6,6),usdValue:se,realUsdValue:pt,realValue:D||""},token:{displayName:J[ne-1].to.token.displayName,image:J[ne-1].to.token.image},chain:{image:J[ne-1].to.chain.image,displayName:J[ne-1].to.chain.displayName}},percentageChange:M(Ve,2,2),warningLevel:At(Ve??0)})),R.createElement("div",{className:df()},R.createElement(Co,{variant:"title",size:"small"},Je.t("Swaps steps"))),R.createElement($v,{size:8}),R.createElement(pf,{ref:C},J.map((de,N)=>{let V=N,X=Ef(e.steps[N]),Ke=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&N===J.length-1;return R.createElement(zv,{key:V,step:de,type:"swap-progress",ref:C,state:X,hasSeparator:N!==0,tabIndex:V,isFocused:Ke,tooltipContainer:P()})}))),R.createElement(js,{state:y,onClose:()=>T(null),onCancel:I,onDelete:n,message:ie.detailedMessage.content,currentStepWallet:A,walletButtonDisabled:!f}),R.createElement(Js,{open:!!k,diagnosisUrl:me,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:M(D,6,6),usdValue:se,realUsdValue:pt,realValue:D||"",percentageChange:M(Ve,2,2),token:{displayName:J[ne-1].to.token.displayName,image:J[ne-1].to.token.image},chain:{image:J[ne-1].to.chain.image},description:ve}))}i(nl,"SwapDetails");import{i18n as hi}from"@lingui/core";import{Divider as Pf,NotFound as Zv,Skeleton as En,Typography as yi}from"@rango-dev/ui";import Se from"react";import{i18n as Xv}from"@lingui/core";import{Divider as Kv,Skeleton as jv,Typography as Yv}from"@rango-dev/ui";import ke from"react";import{css as ht,styled as rl}from"@rango-dev/ui";var Lf=rl("div",{width:"100%",height:"100%",padding:"$10 $20"}),bn=rl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),gi=rl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),aH=ht({display:"flex",justifyContent:"space-between",alignItems:"center"}),sH=ht({display:"flex",justifyContent:"space-between",alignItems:"center"}),lH=ht({paddingTop:"$15",display:"flex"}),pH=ht({padding:"$15 $0"}),cH=ht({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),uH=ht({paddingBottom:"$10"}),mH=ht({display:"flex",justifyContent:"start",alignItems:"center"}),dH=ht({paddingTop:"$5",display:"flex",alignItems:"center"}),fH=ht({display:"flex",alignItems:"center"}),gH=ht({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Bf=ht({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function il(){return ke.createElement(Lf,null,ke.createElement(ln,{type:"swap-preview"}),ke.createElement("div",{className:"swaps-steps"},ke.createElement(Yv,{variant:"title",size:"small"},Xv.t("Swaps steps"))),ke.createElement(ke.Fragment,null,ke.createElement(bn,null,ke.createElement(wt,{separator:!1}),ke.createElement("div",{className:Bf()},ke.createElement(Kv,{direction:"horizontal",size:20}),ke.createElement(jv,{height:22,variant:"rectangular"}))),ke.createElement(gi,null),ke.createElement(bn,null,ke.createElement(wt,{separator:!1})),ke.createElement(gi,null),ke.createElement(bn,null,ke.createElement(wt,{separator:!1})),ke.createElement(gi,null),ke.createElement(bn,null,ke.createElement(wt,{separator:!1}))))}i(il,"LoadingSwapDetails");function _f(t){let{requestId:e,showSkeleton:o}=t;return Se.createElement(ce,{header:{title:hi.t("Swap Details"),suffix:Se.createElement(Io,null)}},o&&Se.createElement(lf,null,Se.createElement(ui,null,Se.createElement("div",{className:Oo()},Se.createElement(yi,{variant:"label",size:"large",color:"neutral700"},`${hi.t("Request ID")}:`),Se.createElement("div",{className:mi()},Se.createElement(yi,{variant:"label",size:"small",color:"neutral700"},Se.createElement(En,{width:60,height:10,variant:"rounded"})),Se.createElement(Pf,{direction:"horizontal",size:4}),Se.createElement(En,{width:16,height:16,variant:"rectangular"}),Se.createElement(Pf,{direction:"horizontal",size:4}),Se.createElement(En,{width:16,height:16,variant:"rectangular"}))),Se.createElement("div",{className:Oo()},Se.createElement(yi,{className:uf(),variant:"label",size:"large",color:"neutral700"},Se.createElement(En,{width:60,height:10,variant:"rounded"})),Se.createElement(yi,{variant:"label",size:"small",color:"neutral700"},Se.createElement(En,{width:60,height:10,variant:"rounded"})))),Se.createElement(il,null)),!o&&Se.createElement(cf,null,Se.createElement(Zv,{title:hi.t("Not found"),description:hi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(_f,"SwapDetailsPlaceholder");function Df(){let{manager:t,state:e}=ew(),o=!e.loadedFromPersistor,n=rt(t),{requestId:r}=ow(),a=nt(),{fetchStatus:s}=h();if(!r)return al.createElement(tw,{containerStyles:{margin:"20px"},type:"error",title:Jv.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:f})=>f.requestId===r):void 0,u=i(()=>{if(p?.id){let f=t?.get(p.id);f&&Rv(f)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(f){console.log(f)}},"onDelete"),m=p?.swap;return!m||l?al.createElement(_f,{requestId:r,showSkeleton:l}):al.createElement(nl,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(Df,"SwapDetailsPage");function $f(){return Up(),Ji(),nw([{path:q.home,element:Ge.createElement(ed,null)},{path:q.routes,element:Ge.createElement(id,null)},{path:q.fromSwap,children:[{index:!0,element:Ge.createElement(Fs,{type:"source"})},{path:q.blockchains,element:Ge.createElement(ks,{type:"source"})}]},{path:q.toSwap,children:[{index:!0,element:Ge.createElement(Fs,{type:"destination"})},{path:q.blockchains,element:Ge.createElement(ks,{type:"destination"})}]},{path:q.settings,children:[{index:!0,element:Ge.createElement(Kd,null)},{path:q.languages,element:Ge.createElement(od,null)},{path:q.exchanges,element:Ge.createElement(Ss,{sourceType:"Exchanges"})},{path:q.bridges,element:Ge.createElement(Ss,{sourceType:"Bridges"})}]},{path:q.swaps,children:[{index:!0,element:Ge.createElement(Bm,null)},{path:q.swapDetails,element:Ge.createElement(Df,null)}]},{path:q.wallets,element:Ge.createElement(Hc,null)},{path:q.confirmSwap,element:Ge.createElement(km,null)}])}i($f,"AppRoutes");import{useQueueManager as mw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as dw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as fw}from"rango-sdk";import{useContext as gw,useEffect as Hf,useState as Gf}from"react";import{globalCss as rw}from"@rango-dev/ui";var Ff=i(()=>rw({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function Of(){let{setWatermark:t}=ae();return{fetchApiConfig:i(async()=>{let o=await fetch(`${It("BASE_URL")}/meta/dapp/config?apiKey=${It("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i(Of,"useFetchApiConfig");import{useWallets as iw}from"@rango-dev/wallets-react";import{useEffect as aw,useRef as sw}from"react";function Uf(){let{connect:t,state:e}=iw(),o=sw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);aw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Uf,"useForceAutoConnect");import{isApprovalTX as lw,RouteEventType as Qf,StepEventType as zf,StepExecutionEventStatus as pw,WidgetEvents as Si}from"@rango-dev/queue-manager-rango-preset";import{useEffect as qf}from"react";function sl(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=xe.use.setNotification(),{findToken:n}=h();qf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===zf.TX_EXECUTION&&s.status===pw.TX_SENT&&!lw(l)||s.type===zf.SUCCEEDED){let c=t.find(f=>f.chain===l?.fromBlockchain),m=l?.fromBlockchain!==l?.toBlockchain&&t.find(f=>f.chain===l?.toBlockchain);c&&e([c],n),m&&e([m],n)}o(s,p)},"handleStepEvent");return we.on(Si.StepEvent,r),()=>we.off(Si.StepEvent,r)},[we,t]),qf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Qf.FAILED||s.type===Qf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return we.on(Si.RouteEvent,r),()=>we.off(Si.RouteEvent,r)},[we])}i(sl,"useSubscribeToWidgetEvents");import{useManager as cw}from"@rango-dev/queue-manager-react";import{useEffect as uw}from"react";function ll(){let{isSynced:t,syncNotifications:e}=xe(),{manager:o,state:n}=cw();uw(()=>{xe.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(rt(o))},[xe.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ll,"useSyncNotifications");function pl(){Uf(),Ff(),sl(),ll();let t=h().blockchains(),{canSwitchNetworkTo:e}=wr(),[o,n]=Gf(""),[r,a]=Gf(),s=gw(Gn),l=t.filter(fw),{fetchApiConfig:p}=Of();Hf(()=>()=>Op(),[]),mw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Hf(()=>(eo.init(),xe.persist.hasHydrated()||xe.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===dw(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(pl,"useBootstrap");import{styled as hw}from"@rango-dev/ui";var Vf=hw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Ci(){pl();let{config:t}=h(),{activeTheme:e}=mr(t?.theme||{}),{activeLanguage:o}=Xt();return cl.createElement(yw,{language:o},cl.createElement(Vf,{id:"swap-container",className:e()},cl.createElement($f,null)))}i(Ci,"Main");import{setSolanaSignerConfig as $w}from"@rango-dev/signer-solana";import ml,{useEffect as Zf,useMemo as Fw}from"react";import{useState as Sw}from"react";var Cw=i(()=>{let[t,e]=Sw(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=xl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Xf=Cw;import{checkWaitingForNetworkChange as Tw,makeQueueDefinition as kw}from"@rango-dev/queue-manager-rango-preset";import{Provider as vw}from"@rango-dev/queue-manager-react";import{useWallets as ww}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as xw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as bw}from"rango-types";import Ew,{useMemo as Iw}from"react";function Aw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=ww(),l=Iw(()=>kw({API_KEY:t.apiKey||It("API_KEY"),BASE_URL:It("BASE_URL"),emitter:{emit:we.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),f=i(k=>!!s(k).mobileWallet,"isMobileWallet"),d=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),g=p.filter(bw),S=i(k=>{let{supportedChains:v}=s(k);return _n(v)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:xw(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:f},T=ae.use.isActiveTab();return Ew.createElement(vw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{Tw(k)},isPaused:!T},t.children)}i(Aw,"QueueManager");var Kf=Aw;import{useManager as Bw}from"@rango-dev/queue-manager-react";import Pw,{createContext as _w,useContext as Dw}from"react";import{cancelSwap as Ww,getCurrentBlockchainOfOrNull as Nw,getCurrentStep as Mw,getRelatedWalletOrNull as Lw}from"@rango-dev/queue-manager-rango-preset";var Ti=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return rt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=tr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&Ww(o)}getCurrentStepInfo(e){let o=Mw(e);return{step:o,wallet:o?Lw(e,o):null,network:o?Nw(e,o):null}}};var jf=_w(void 0);function ul(t){let{manager:e}=Bw(),o=ae.use.isActiveTab(),n=Y.use.retry(),{findToken:r}=h(),a=new Ti(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=Ll(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),f=h().swappers(),d=h().fetchStatus,g=Xt().resetLanguage,S=xe().getNotifications(),C=xe().clearNotifications,y={isActiveTab:o,setCurrentTabAsActive:eo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:T=>u(T,r)},meta:{blockchains:c,tokens:m,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:S,clearAll:C}};return Pw.createElement(jf.Provider,{value:y},t.children)}i(ul,"WidgetInfo");function Yf(){let t=Dw(jf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Yf,"useWidget");function ki(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Xf();return Zf(()=>{n&&r(n)},[n]),Fw(()=>{Ul({API_KEY:o?.apiKey||In,BASE_URL:o?.apiUrl||dl})},[o.apiKey,o.apiUrl]),Zf(()=>{t.config?.signers?.customSolanaRPC&&$w("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),ml.createElement(Vn,{config:o,onUpdateState:e},ml.createElement(Kf,{apiKey:o.apiKey},ml.createElement(ul,null,t.children)))}i(ki,"WidgetProvider");function Jf(t){let e=t.config?.externalWallets;return vi.createElement(up,null,e?vi.createElement(Ci,null):vi.createElement(ki,{config:t.config??Fi},vi.createElement(Ci,null)))}i(Jf,"Widget");function Rf(){let{on:t,off:e}=we;return{on:t,off:e}}i(Rf,"useWidgetEvents");export{L2 as EventSeverity,Vo as MainEvents,Q2 as Networks,H2 as PendingSwapNetworkStatus,_i as QuoteEventTypes,B2 as RouteEventType,wi as SUPPORTED_FONTS,P2 as StepEventType,_2 as StepExecutionBlockedEventStatus,D2 as StepExecutionEventStatus,he as UI_ID,Di as WalletEventTypes,O2 as WalletEvents,z2 as WalletTypes,Jf as Widget,Vo as WidgetEvents,ki as WidgetProvider,Vn as WidgetWallets,la as customizedThemeTokens,F2 as readAccountAddress,no as useWalletList,wr as useWallets,Yf as useWidget,Rf as useWidgetEvents,rg as widgetEventEmitter};
|
|
1
|
+
var lg=Object.defineProperty;var i=(t,e)=>lg(t,"name",{value:e,configurable:!0});import{EventSeverity as y5,RouteEventType as S5,StepEventType as C5,StepExecutionBlockedEventStatus as T5,StepExecutionEventStatus as k5}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as x5,useWallets as Tr,Events as w5}from"@rango-dev/wallets-react";import{Networks as E5,WalletTypes as I5}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as W5}from"rango-types";import{UI_ID as pg}from"@rango-dev/ui";var wn="c6381a79-2817-4602-83bf-6a641a409e32",hl="https://api.rango.exchange",yl="https://explorer.rango.exchange",Se={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...pg};var Sl="Roboto",ki=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];import{Events as Qi,Provider as nh}from"@rango-dev/wallets-react";import{isEvmBlockchain as rh}from"rango-sdk";import Qn,{createContext as ih,useEffect as mp,useMemo as ah,useRef as dp}from"react";import{useEffect as Ng}from"react";import{create as Ig}from"zustand";import{subscribeWithSelector as Ag}from"zustand/middleware";import cg from"mitt";var Te=cg(),ug={on:Te.on,off:Te.off};import{RangoClient as bg}from"rango-sdk";import{BlockchainCategories as Sg,WalletState as ht}from"@rango-dev/ui";import{readAccountAddress as Cg}from"@rango-dev/wallets-react";import{detectInstallLink as Tg,getCosmosExperimentalChainInfo as kg,isEvmAddress as vg,KEPLR_COMPATIBLE_WALLETS as xw,Networks as Nl}from"@rango-dev/wallets-shared";import Ai from"bignumber.js";import{isCosmosBlockchain as xg}from"rango-types";import mg from"bignumber.js";var Oe=new mg(0);import{WalletTypes as dg}from"@rango-dev/wallets-shared";var Cl=[dg.LEAP];import{BlockchainCategories as vi,WalletState as yg}from"@rango-dev/ui";import{TransactionType as bn}from"rango-sdk";function ho(t){return Array.from(new Set(t))}i(ho,"removeDuplicateFrom");function bi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(bi,"areEqual");function bl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(bl,"debounce");function vt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(vt,"containsText");function vl(t,e){return t.toLowerCase()===e.toLowerCase()}i(vl,"exactText");function xl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(xl,"startWithText");var B=i(()=>document.getElementById(Se.SWAP_BOX_ID),"getContainer"),Uo=i(()=>document.getElementById(Se.EXPANDED_BOX_ID),"getExpanded");function wl(t,e,o){let n=!!e&&vl(e,t),r=!!o&&vl(o,t);return n!==r?n?-1:1:0}i(wl,"compareExactMatchText");function xi(t,e,o){let n=!!e&&vt(e,t),r=!!o&&vt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(xi,"compareContainsText");function wi(t,e,o){let n=!!e&&xl(e,t),r=!!o&&xl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(wi,"compareStartWithText");function El(t,e,o){if(!o)return 0;let n=wl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=wl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=wi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=xi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=wi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=xi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=wi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=xi(o,t.address,e.address);if(r!==0)return r}return 0}i(El,"compareWithSearchFor");var En=i((t,e)=>{switch(e){case vi.ALL:return!0;case vi.UTXO:return t===bn.TRANSFER;case vi.OTHER:return t!==bn.TRANSFER&&t!==bn.COSMOS&&t!==bn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Il=i(t=>ki.find(o=>o.value===t)?.url,"getFontUrlByName");function In(t,e){let o=!!t.find(n=>n.state===yg.CONNECTED);return e===!1&&o}i(In,"isSingleWalletActive");function An(t,e){return e.find(o=>o.name===t)?.displayName}i(An,"getBlockchainDisplayNameFor");function Je(t,e){return e.find(o=>o.name===t)?.shortName}i(Je,"getBlockchainShortNameFor");function Al(t,e){return e.find(o=>o.name===t)?.logo}i(Al,"getBlockchainImage");function Qo(t,e){return e.find(o=>o.id===t)?.title}i(Qo,"getSwapperDisplayName");function Ei(t,e){return e.find(o=>o.name===t)??null}i(Ei,"findBlockchain");function Ii(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Ii,"isTokenNative");function st(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(st,"createTokenHash");import{BigNumber as Wl}from"bignumber.js";var zo=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),N=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Wl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Wl(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Wn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var gt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),qo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Wi(t){switch(!0){case t.connected:return ht.CONNECTED;case t.connecting:return ht.CONNECTING;case!t.installed:return ht.NOT_INSTALLED;default:return ht.DISCONNECTED}}i(Wi,"mapStatusToWalletState");function Ml(t,e,o,n){return o.filter(r=>!Cl.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:g,needsDerivationPath:d}=e(r),m=ho(g.map(C=>C.type)),f=Wi(t(r));return{title:a,image:s,link:Tg(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m,needsDerivationPath:d}})}i(Ml,"mapWalletTypesToWalletInfo");function Ln(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Ln,"walletAndSupportedChainsNames");function Ll(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(g=>g.chain===p)){let g={address:u,chain:p,walletType:t};a.push(g)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=Cg(p),g=l.length>0,d=l.includes(c),m=c===Nl.Unknown;if(g&&!d&&!m)return;let C=c===Nl.Unknown&&vg(u);if(m&&!C)return;o.includes(c)||C?r?s(c,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,u.toLowerCase())}):s(c,u)}),a}i(Ll,"prepareAccountsForWalletStore");function Kt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:p}=r;p.forEach((u,c)=>{let g=u.from.blockchain,d=u.to.blockchain,m=a===o.swaps.length-1,f=c===p.length-1;(!m&&!f||m&&l!==g||e==="all")&&n.add(g),e==="all"&&n.add(d)})}e==="all"&&n.add(l)}),Array.from(n)}i(Kt,"getQuoteWallets");function Bn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Bn,"isAccountAndWalletMatched");function Bl(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new Ai(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Bl,"makeBalanceFor");function Pl(t){return{...t,loading:!1,error:!0}}i(Pl,"resetConnectedWalletState");var _l=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=N(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new Ai(a?.amount||Oe).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Oe)||Oe).toString();return wg(r)},"calculateWalletUsdValue");function wg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(wg,"numberWithThousandSeparator");var Pn=i((t,e)=>{let o=kg(Object.entries(t).map(([,n])=>n).filter(xg));return o&&o[e]?.experimental},"isExperimentalChain");function _n(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(_n,"formatBalance");function Dl(t,e){return t?.usdValue||e?.usdValue?parseFloat(e?.usdValue||"0")-parseFloat(t?.usdValue||"0"):t?.amount||e?.amount?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(Dl,"compareTokenBalance");function Xt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Xt,"areTokensEqual");function $l(t){return t.sort((e,o)=>+(o.state===ht.CONNECTED)-+(e.state===ht.CONNECTED)||+(o.state===ht.DISCONNECTED||o.state===ht.CONNECTING)-+(e.state===ht.DISCONNECTED||e.state===ht.CONNECTING))}i($l,"sortWalletsBasedOnConnectionState");function Dn(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(Dn,"getConciseAddress");function Fl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Fl,"getAddress");function $n(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Ai(o?.usdPrice??Oe).multipliedBy(o?.amount).toString():""},r=o?st({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i($n,"makeTokensBalance");var Ol=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ul(t){return t.map(e=>e.state).join("-")}i(Ul,"hashWalletsState");function Ql(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(Ql,"filterBlockchainsByWalletTypes");function zl(t,e){return e===Sg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(En(n,e))return!0;return!1})}i(zl,"filterWalletsByCategory");var Ni={API_KEY:wn};function xt(t){return Ni[t]||""}i(xt,"getConfig");function ql(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ni=e,Ni}i(ql,"initConfig");var Hl=20,Gl=25,Mi="theme-widget",Li=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Xt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Xt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Bi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Vl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Fn,_t=i(()=>Fn||(Fn=new bg(xt("API_KEY"),xt("BASE_URL")),Fn),"httpService");import{WidgetEvents as Kl}from"@rango-dev/queue-manager-rango-preset";var Pi=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Pi||{}),_i=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(_i||{}),Di=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(Di||{}),yo=(a=>(a[a.RouteEvent=Kl.RouteEvent]="RouteEvent",a[a.StepEvent=Kl.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(yo||{});var Eg=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"),Dt=Eg;var oe=Dt(Ig()(Ag((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{Te.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}});let r=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.filter(s=>s.walletType!==o[0].walletType).concat(o.map(s=>{let l=!a.connectedWallets.some(p=>p.chain===s.chain&&p.selected&&p.walletType!==s.walletType);return{balances:[],address:s.address,chain:s.chain,explorerUrl:null,walletType:s.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{n.connectedWallets.find(l=>l.walletType===o)&&Te.emit("walletEvent",{type:"disconnect",payload:{walletType:o}});let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),a=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:$n(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>Bn(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await _t().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(d=>{let m=o.find(C=>Bn(C,d)),f=p.find(C=>C.address===d.address&&C.blockChain===d.chain);return f?.failed&&m&&r&&a([m],n,!1),m&&f?{...d,explorerUrl:f.explorerUrl,balances:Bl(f,n),loading:!1}:d});return{loading:!1,balances:$n(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(g=>Bn(g,c))?Pl(c):c);return{loading:!1,balances:$n(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=st(o);return n[r]??null}}))));import{allProviders as Wg}from"@rango-dev/provider-all";function On(t,e){let o=Wg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let a=o.find(s=>s.config.type===r);a?n.push(a):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(On,"matchAndGenerateProviders");function Xl(t,e){return On(t,e).map(r=>r.config.type)}i(Xl,"configWalletsToWalletName");function jl(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(jl,"hashProviders");function $i(t,e){let o=oe.use.clearConnectedWallet(),n=On(t,e);return Ng(()=>{o(),n=On(t,e)},[jl(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i($i,"useWalletProviders");import Yg,{createContext as Zg,useContext as Jg,useEffect as Rg,useRef as eh}from"react";import{create as Xg}from"zustand";import{persist as jg}from"zustand/middleware";var Fi=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},So=new Fi;function Ho(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=st(p));let u=o.tokensMapByTokenHash.get(p);u&&(n[p]=u)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(p=>{l.has(p)||a(o.tokensMapByBlockchainName[p])})}return s.forEach(l=>{let p=r[l];if(!p&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}p&&(p.isExcluded?(a(o.tokensMapByBlockchainName[l]),p.tokens.forEach(u=>{let c=st(u);delete n[c]})):a(p.tokens))}),Object.values(n)}i(Ho,"matchTokensFromConfigWithMeta");var Oi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},Mg={clientUrl:void 0},Lg={liquiditySources:void 0},Yl=i((t,e,o)=>({config:{...Oi,...t},iframe:Mg,campaignMode:Lg,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config,{_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s}=o(),l=Ho({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=Ho({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});So.set("supportedSourceTokens",l),So.set("supportedDestinationTokens",p),e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function Un(t,e){let o=t.map(a=>a.swapperGroup),n=[];return ho(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(Un,"getUniqueSwappersGroups");function Zl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Zl,"sortLiquiditySourcesByGroupTitle");function Re(t,e){return e?.[t]==="hidden"}i(Re,"isFeatureHidden");function Jl(t,e){return e?.[t]==="enabled"}i(Jl,"isFeatureEnabled");var Rl=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a}=e(),s=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return s;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",c=So.get(u);c||(c=Ho({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),So.set(u,c));let g=e().blockchains({type:o.type});return c.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!g.some(f=>f.name===m.blockchain)?!1:o.searchFor?!!(vt(m.symbol,o.searchFor)||vt(m.address||"",o.searchFor)||vt(m.name||"",o.searchFor)):!0).sort((m,f)=>{let C=e().isTokenPinned(m,o.type),S=e().isTokenPinned(f,o.type);if(C!==S)return C?-1:1;if(o.getBalanceFor){let b=o.getBalanceFor(m),M=o.getBalanceFor(f),w=Dl(b,M);if(w!==0)return w}let y=l.get(m.blockchain),T=l.get(f.blockchain),v=Ii(m,y),x=Ii(f,T);if(v!==x)return v?-1:1;if(m.isPopular!==f.isPopular)return m.isPopular?-1:1;if(o.searchFor){let b=El(m,f,o.searchFor);if(b)return b}return m.isSecondaryCoin!==f.isSecondaryCoin?m.isSecondaryCoin?1:-1:y&&T?y.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=st(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Xt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(Zl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await _t().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s={},l=[],p=n.popularTokens,u=n.swappers,c=new Set;n.tokens.forEach(d=>{c.add(d.blockchain),l.push(d)}),n.blockchains.sort((d,m)=>d.sort-m.sort).forEach(d=>{d.enabled&&c.has(d.name)&&r.set(d.name,d)}),l.forEach(d=>{let m=st(d);s[d.blockchain]||(s[d.blockchain]=[]),a.set(m,d),s[d.blockchain].push(m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as Bg,English as Pg,Finland as _g,French as Dg,German as $g,Greece as Fg,Italian as Og,Japanese as Ug,Netherlands as Qg,Poland as zg,Portuguese as qg,Russian as Hg,Spanish as Gg,Swedish as Vg,Ukrainian as Kg}from"@rango-dev/ui";var ep=[{title:"English",label:"English",local:"en",SVGFlag:Pg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Gg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Dg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Ug},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:qg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:Bg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Hg},{title:"German",label:"Deutsch",local:"de",SVGFlag:$g},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Kg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Vg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:_g},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Qg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Fg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Og},{title:"Polish",label:"Polski",local:"pl",SVGFlag:zg}],Co="en";var tp=[.5,1,3],op=1,np=5,rp=100,ip=0;var ap=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:op,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=ho(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Re("theme",n),s=Re("language",n),l=Re("liquiditySource",n),p=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Co},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||Co}})}}),"createSettingsSlice");function sp(t){return Xg()(jg((...e)=>({...Rl(...e),...ap(...e),...Yl(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(sp,"createAppStore");var lp=Zg(null);function h(){let t=Jg(lp);if(Rg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function pp(t){let e=eh();return e.current||(e.current=sp(t.config)),Yg.createElement(lp.Provider,{value:e.current},t.children)}i(pp,"AppStoreProvider");import{create as oh}from"zustand";var cp="rango-widget";var Go=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(cp),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var le=Dt(oh()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),jt=new Go({onInit:()=>le.setState({tabManagerInitiated:!0}),onClaim:()=>le.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>le.setState({isActiveTab:!1})});var zn=ih({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function sh(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=h(),a=h().blockchains(),{findToken:s}=h(),l=h().config,p={walletConnectProjectId:l?.walletConnectProjectId,trezorManifest:l?.trezorManifest,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:u}=$i(l.wallets,p),{connectWallet:c,disconnectWallet:g}=oe(),d=dp(),m=dp();mp(()=>{n().catch(console.log)},[]),mp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:l,dappConfig:t.config})},[t.config,r]);let f=a.filter(rh).map(T=>T.name),C=i((T,v,x,b,M)=>{if(v===Qi.ACCOUNTS)if(x){let w=Ln(M.supportedBlockchains),k=Ll(T,x,f,w,M.isContractWallet);k.length&&c(k,s)}else g(T),m.current?m.current(T):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(v===Qi.ACCOUNTS&&b.connected){let w=`${T}-${b.network}-${x}`;b.connected&&(d.current?d.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(v===Qi.NETWORK&&b.network){let w=`${T}-${b.network}`;d.current?d.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(T,v,x,b,M)},"onUpdateState"),S=le.use.isActiveTab(),y=ah(()=>({onConnectWallet:T=>{d.current=T},onDisconnectWallet:T=>{m.current=T}}),[]);return Qn.createElement(zn.Provider,{value:y},Qn.createElement(nh,{allBlockChains:a,providers:u,onUpdateState:C,autoConnect:!!S},t.children))}i(sh,"Main");function qn(t){let{config:e,...o}=t;return Qn.createElement(pp,{config:e},Qn.createElement(sh,{...o,config:e}))}i(qn,"WidgetWallets");import Ti from"react";import lh,{Fragment as ph}from"react";import{MemoryRouter as ch,useInRouterContext as uh}from"react-router";function fp({children:t}){let o=uh()?ph:ch;return lh.createElement(o,null,t)}i(fp,"AppRouter");import{I18nManager as Ax}from"@rango-dev/ui";import dl from"react";import Ke from"react";import{useRoutes as fx}from"react-router-dom";var H={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as vo,useRef as er}from"react";import Qe from"bignumber.js";import{create as fh}from"zustand";import{subscribeWithSelector as gh}from"zustand/middleware";import{getLastSuccessfulStep as dh}from"@rango-dev/queue-manager-rango-preset";import fI from"bignumber.js";function zi(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(zi,"getFeeLabel");var qi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],gp=30;import{i18n as lt}from"@lingui/core";import{RouteEventType as JE}from"@rango-dev/queue-manager-rango-preset";import Ue from"bignumber.js";import{PendingSwapNetworkStatus as Vn}from"rango-types";function Hn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Hn,"isValidAddress");import{i18n as $e}from"@lingui/core";var ne=i(()=>({genericServerError:$e.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:$e.t("Please reset your liquidity sources."),description:$e.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:$e.t("No Routes Found."),description:$e.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:$e.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:$e.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:$e.t("High Price Impact"),title:$e.t("Price impact is too high!"),description:$e.t("The price impact is significantly higher than the allowed amount."),confirmMessage:$e.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:$e.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:$e.t("USD Price Unknown"),title:$e.t("USD Price Unknown, Cannot calculate Price Impact."),description:$e.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:$e.t("Confirm USD Price Unknown")}}),"errorMessages");function hp(t){switch(t.type){case 0:return t.diagnosisMessage??ne().noResultError.title;case 1:return ne().genericServerError;default:return""}}i(hp,"getQuoteErrorMessage");import{i18n as Gn}from"@lingui/core";var Yt=i(()=>({connectWallet:Gn.t("Connect Wallet"),swap:Gn.t("Swap"),swapAnyway:Gn.t("Swap anyway"),ethWarning:Gn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function yp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Ue(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Ue(1e3)))??!1}i(yp,"hasHighValueLoss");function Sp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(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(Sp,"hasLimitError");function Cp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Ue(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Ue(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=lt.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=lt.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=lt.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=lt.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Cp,"getLimitErrorMessage");function Tp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:Yt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:Yt().swap,action:"confirm-swap",disabled:!0}:s?{title:Yt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:Yt().ethWarning,action:"confirm-warning",disabled:!1}:{title:Yt().swap,action:"confirm-swap",disabled:!1}:{title:Yt().connectWallet,action:"connect-wallet",disabled:!1}}i(Tp,"getSwapButtonState");function Hi(t,e,o){return!((!o||o.lte(Oe))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Hi,"canComputePriceImpact");function Gi(t,e){let o=Oe;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ue(r.amount).multipliedBy(a||0))}return o}i(Gi,"getUsdFeeOfStep");function Kn(t,e){return t.reduce((o,n)=>o.plus(Gi(n,e)),Oe)}i(Kn,"getTotalFeeInUsd");function Vi(t){let e=Oe;return e=e.plus(new Ue(t.amount).multipliedBy(t.price||0)),e}i(Vi,"getUsdFee");function kp(t){return t.reduce((e,o)=>e.plus(Vi(o)),Oe)}i(kp,"getTotalFeesInUsd");function vp(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(vp,"getFeesGroup");function xp(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(xp,"checkSlippageErrors");function wp(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(wp,"checkSlippageWarnings");function Xn(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(Xn,"getMinRequiredSlippage");function bp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(bp,"hasProperSlippage");function Ep(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:g,affiliateWallets:d,destination:m,enableCentralizedSwappers:f}=t,C=a?.reduce((T,v)=>(T[v.chain]=v.address,T),{}),S=[];return r?.forEach(T=>{S.push({blockchain:T.chain,addresses:[T.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:g??void 0,affiliateWallets:d??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:C??{},slippage:u.toString(),...m&&{destination:m},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(T=>!s.includes(T)),swappersGroupsExclude:!1},enableCentralizedSwappers:f}}i(Ep,"createQuoteRequestBody");function Ip(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Ip,"getWalletsForNewSwap");function To(t){return t?.outputAmount||null}i(To,"getQuoteOutputAmount");function Ap(t,e){return new Ue(e).div(new Ue(t)).minus(1).multipliedBy(100).toNumber()}i(Ap,"getPercentageChange");function Wp(t,e){let o=To(t),n=To(e);if(!o||!n)return!1;let r=et(o,n);return r?r<=-1:!0}i(Wp,"isOutputAmountChangedALot");function Np(t,e,o){let n=t.validationStatus,r=Kt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Dp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new Ue(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new Ue(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=lt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=lt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=lt.t(" for input and network fee")),lt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Je(s.asset.blockchain,o)}})})}i(Np,"generateBalanceWarnings");function jn(t,e){return(t?new Ue(t):Oe).multipliedBy(e||0)}i(jn,"calcOutputUsdValue");function Vo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Vn.NetworkChanged}i(Vo,"isNetworkStatusInWarningState");function Mp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Vo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Vn.WaitingForConnectingWallet:n=n||lt.t("Waiting for connecting wallet");break;case Vn.WaitingForQueue:n=n||lt.t("Waiting for other running tasks to be finished");break;case Vn.WaitingForNetworkChange:n=n||lt.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(Mp,"getSwapMessages");function Lp(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(Lp,"getLastConvertedTokenInFailedSwap");function Bp(t){return t.status==="failed"}i(Bp,"shouldRetrySwap");function Pp(t,e,o,n,r,a){if(!n||t)return!0;let s=Kt({filter:"all",quote:n}),l=Kt({filter:"required",quote:n}),p=s.every(g=>r.some(d=>d.chain===g)),u=l.every(g=>r.some(d=>d.chain===g)),c=o&&a?Hn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Pp,"isConfirmSwapDisabled");function _p(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(_p,"isTokensIdentical");function Zn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Zn,"getQuoteToTokenUsdPrice");function Ki(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Ki,"isNumberOfSwapsChanged");function Xi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!bi(o,n)}i(Xi,"isQuoteSwappersUpdated");function ji(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!bi(o,n)}i(ji,"isQuoteInternalCoinsUpdated");function Fp(t,e){return Ki(t,e)||Xi(t,e)||ji(t,e)}i(Fp,"isQuoteChanged");function Dp(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(Dp,"getRequiredBalanceOfWallet");function wt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(wt,"getPriceImpactLevel");function Jn(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=dh(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ei(a?a.toBlockchain:n.fromBlockchain,e),p=Ei(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),g=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:g}}i(Jn,"createRetryQuote");function ko(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=Zt(o,t.requestAmount),l=Zt(n,t?.outputAmount??"");if(t&&s&&l){let c=et(s.toString(),l.toString());if(!!c&&yp(s,c)){let d=Kn(t?.swaps,r),m=wt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:d,warningLevel:m}}}else if(t&&(!s||!l))return{type:1};let p=Xn(t.swaps),u=a>np;if(bp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:wp(t,a),minRequiredSlippage:p};return null}i(ko,"generateQuoteWarnings");function et(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ap(t.toString(),e.toString());return n&&n<0?n:null}i(et,"getPriceImpact");var Op=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),Rn=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),Up=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),Qp=i(t=>{let e=i((o,n)=>{let r=qi.indexOf(o.value),a=qi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var Zt=i((t,e)=>t?.usdPrice?new Qe(e||Oe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),V=Dt(fh()(gh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Qe(0),outputUsdValue:new Qe(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=Oe;return qo(o.inputAmount)?(e&&(n=e?.outputAmount?new Qe(e?.outputAmount):null,r=jn(e?.outputAmount,Zn(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Qe(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Qe(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Qe(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:Zt(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new Qe(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new Qe(0),outputUsdValue:new Qe(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Zt(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:Zt(n??null,s),outputUsdValue:new Qe(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?Zt(e.toToken,e.outputAmount?.toString()||""):new Qe(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Qe(0),inputUsdValue:new Qe(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Qe(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),zp=V.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Te.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&Te.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function qp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=V(),c=h().config,g=h().fetchStatus,d=h().blockchains(),m=h().tokens(),{findToken:f}=h(),{setAffiliateRef:C,setAffiliatePercent:S,setAffiliateWallets:y}=h(),T=c?.from?.tokens,v=c?.from?.blockchains,x=c?.to?.tokens,b=c?.to?.blockchains,M=er(void 0),w=er(void 0),k=er(void 0),E=er(void 0);vo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),vo(()=>{if(g==="success"){r();let A=d.find(I=>I.name===c?.from?.blockchain),L=c?.from?.token,q=L&&f(L);(A||!A&&k.current)&&n(A??null),q?a({token:q,meta:{blockchains:d,tokens:m}}):!q&&M.current&&a({token:null}),k.current=c?.from?.blockchain,M.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,g]),vo(()=>{Li(s,T)&&a({token:null}),Bi(p,v)&&n(null)},[T,v]),vo(()=>{Li(l,x)&&a({token:null}),Bi(u,b)&&o(null)},[x,b]),vo(()=>{if(g==="success"){r();let A=d.find(I=>I.name===c?.to?.blockchain),L=c?.to?.token,q=L&&f(L);(A||!A&&E.current)&&o(A??null),q?e({token:q,meta:{blockchains:d,tokens:m}}):!q&&w.current&&e({token:null}),E.current=c?.to?.blockchain,w.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,g]),vo(()=>{C(c?.affiliate?.ref??null),S(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(qp,"useSyncStoresWithConfig");import{useEffect as Ji,useRef as hh}from"react";import{useInRouterContext as yh,useLocation as Sh,useSearchParams as Ch}from"react-router-dom";function Yi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Yi,"convertTokenSearchParamToAsset");function Zi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Zi,"tokenToSearchParam");function Ri(){let t=Sh(),[e,o]=Ch(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:g,setInputAmount:d}=V(),m=h().fetchStatus,f=h().blockchains(),C=h().tokens(),S=yh(),{updateIframe:y,updateCampaignMode:T}=h(),v=h().isInCampaignMode(),x=hh(),{findToken:b}=h(),M=i(()=>{let k={};for(let[D,j]of e.entries())D.startsWith("utm_")&&(k[D]=j);let E=e.get("fromAmount"),A=e.get("fromBlockchain"),L=e.get("fromToken"),q=e.get("toBlockchain"),I=e.get("toToken"),Q=e.get("autoConnect"),te=e.get("clientUrl"),P=e.get("liquiditySources");return{fromAmount:E,fromBlockchain:A,fromToken:L,toBlockchain:q,toToken:I,autoConnect:Q,clientUrl:te,liquiditySources:P,utmQueryParams:k}},"getUrlSearchParams"),w=i(k=>{for(let E in k)k[E]||delete k[E];o(k,{replace:!0})},"updateUrlSearchParams");Ji(()=>{let{autoConnect:k,clientUrl:E,utmQueryParams:A}=M();S&&m==="success"&&w({fromBlockchain:n?.name,fromToken:Zi(a),toBlockchain:r?.name,toToken:Zi(s),fromAmount:l,autoConnect:k??void 0,clientUrl:E??void 0,liquiditySources:v?x.current:void 0,...A})},[t.pathname,l,n,a,r,s,v]),Ji(()=>{if(!S)return;let k=M();if(!x.current&&k.liquiditySources&&(x.current=k.liquiditySources),k.fromAmount&&d(k.fromAmount),m==="success"){let E=f.find(I=>I.name===k.fromBlockchain),A=k.fromToken&&E?b(Yi(k.fromToken,E)):void 0,L=f.find(I=>I.name===k.toBlockchain),q=k.toToken&&L?b(Yi(k.toToken,L)):void 0;E&&(p(E),A&&c({token:A,meta:{blockchains:f,tokens:C}})),L&&(u(L),q&&g({token:q,meta:{blockchains:f,tokens:C}}))}},[m]),Ji(()=>{let{clientUrl:k,liquiditySources:E}=M();y("clientUrl",k||void 0),T("liquiditySources",E?.split(",")??void 0)},[])}i(Ri,"useSyncUrlAndStore");import{i18n as rs}from"@lingui/core";import{useManager as jC}from"@rango-dev/queue-manager-react";import{Alert as bm,Button as YC,css as as,Divider as is,IconButton as Em,styled as ZC,Typography as JC,WalletIcon as RC}from"@rango-dev/ui";import We,{useEffect as zr,useLayoutEffect as eT,useRef as tT,useState as sn}from"react";import{useNavigate as oT}from"react-router-dom";import{i18n as ao}from"@lingui/core";import{Alert as nu,BalanceErrors as FS,Button as ru,ChevronLeftIcon as OS,Divider as kr,MessageBox as US,Typography as $a}from"@rango-dev/ui";import J,{useCallback as QS,useEffect as iu,useMemo as zS,useState as so}from"react";import{useNavigate as qS}from"react-router-dom";import{i18n as tr}from"@lingui/core";function or(t){switch(t.type){case 0:return tr.t("Route has been updated.");case 3:return tr.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return tr.t("Route swappers has been updated.");case 2:return tr.t("Route internal coins has been updated.");default:return""}}i(or,"getQuoteUpdateWarningMessage");import{Modal as kh}from"@rango-dev/ui";import vh from"react";function re(t){let{watermark:e}=le();return vh.createElement(kh,{hasWatermark:e==="FULL",...t},t.children)}i(re,"WatermarkedModal");import{i18n as na}from"@lingui/core";import{Alert as Ih,ChevronDownIcon as Ah,CloseIcon as Wh,Divider as Zp,IconButton as Jp,PasteIcon as Nh,Typography as Mh,WalletIcon as Lh}from"@rango-dev/ui";import Le,{useEffect as Bh,useRef as Ph}from"react";import ar,{useRef as bh}from"react";import*as xo from"@radix-ui/react-collapsible";import{keyframes as Gp,styled as nr}from"@rango-dev/ui";var ea=300,xh=Gp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),wh=Gp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Vp=nr(xo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ta=nr(xo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),rr=nr(xo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${xh} ${ea}ms ease-out`},false:{animation:`${wh} ${ea}ms ease-out`}}}}),ir=nr("div",{transition:`all ${ea}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function sr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=bh(null);return ar.createElement(Vp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&ar.createElement(ta,{className:"collapsible_trigger",onClick:a},s),ar.createElement(rr,{className:"collapsible_content",open:e},r),l==="bottom"&&ar.createElement(ta,{className:"collapsible_trigger",onClick:a},s))}i(sr,"CustomCollapsible");import{darkTheme as Kp,styled as oa,TextField as Eh}from"@rango-dev/ui";var Xp=oa("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),jp=oa(Eh,{backgroundColor:"$neutral100",padding:"$15"}),Yp=oa("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Kp} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Kp} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function Rp(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=V(),{config:s}=h(),l=h().blockchains(),p=An(e.name,l),u=Ph(null),c=s?.defaultCustomDestinations?.[e.name],g=navigator?.userAgent.includes("Firefox"),m=n&&!!r&&e&&!Hn(e,r),f=i(()=>{a("")},"handleClear"),C=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let T=await navigator.clipboard.readText();a(T),u?.current?.focus()}},"handlePaste"),S=i(()=>r?Le.createElement(Jp,{onClick:f,variant:"ghost"},Le.createElement(Wh,{size:12,color:"gray"})):g?null:Le.createElement(Jp,{onClick:C,variant:"ghost"},Le.createElement(Nh,{size:16})),"renderSuffix");return Bh(()=>{!!c&&r===null&&(a(c),o(!0))},[c]),Le.createElement(Xp,null,Le.createElement(sr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Le.createElement(Yp,null,Le.createElement("div",{className:"button__content"},Le.createElement(Lh,{size:18,color:"info"}),Le.createElement(Zp,{size:4,direction:"horizontal"}),Le.createElement(Mh,{variant:"label",size:"medium",color:n?"$neutral600":void 0},na.t("Send to a different address"))),Le.createElement(ir,{orientation:n?"up":"down"},Le.createElement(Ah,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Le.createElement(jp,{ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:na.t("Enter {blockchainName} address",{blockchainName:p}),value:r||"",suffix:S(),onChange:y=>{let T=y.target.value;a(T)}})),m&&Le.createElement(Le.Fragment,null,Le.createElement(Zp,{size:4}),Le.createElement(Ih,{variant:"alarm",type:"error",title:na.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(Rp,"CustomDestination");import{css as _h,darkTheme as ra,IconButton as Dh,styled as bt}from"@rango-dev/ui";var ec=bt("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),tc=bt("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),$h=bt("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${ra} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${ra} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${ra} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),oc=bt($h,{alignSelf:"stretch",minHeight:"93px"}),nc=bt("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),rc=bt(Dh,{position:"absolute",left:"$20"}),ic=bt("div",{paddingTop:"$20"}),ac=_h({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),sc=bt("div",{display:"flex"}),lc=bt("div",{overflow:"visible",width:"100%"});import{i18n as pt}from"@lingui/core";import{Button as PS,Divider as _a,Image as _S,MessageBox as Cr,SelectableWallet as DS,Typography as eu,WalletState as tu}from"@rango-dev/ui";import fe,{useEffect as ou,useState as io}from"react";import{WalletState as ia}from"@rango-dev/ui";import{useWallets as Fh}from"@rango-dev/wallets-react";import{detectMobileScreens as Oh,KEPLR_COMPATIBLE_WALLETS as Uh,WalletTypes as wo}from"@rango-dev/wallets-shared";import{useCallback as Qh,useEffect as zh,useState as qh}from"react";var Hh=Object.values(wo);function Jt(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=Fh(),{connectedWallets:c}=oe(),g=h().blockchains(),d=Xl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Hh,m=Ml(s,p,d,e);m=Oh()?m.filter(w=>w.showOnMobile!==!1&&s(w.type).installed):m;let f=$l(m),[C,S]=qh(""),y=i(w=>!c.find(k=>k.walletType===w&&k.chain===e),"isExperimentalChainNotAdded"),T=i(async(w,k)=>{let E=s(w);try{if(C&&S(""),E.connected)await l(w);else{if(In(m,a.multiWallets))return;o?.(w),await u(w,void 0,k),n?.(w)}}catch(A){r?.(A?.message),S("Error: "+A?.message)}},"handleClick"),v=Qh(()=>{let w=m?.filter(k=>k.state===ia.CONNECTING)||[];for(let k of w)l(k.type)},[Ul(m)]),x=i(async w=>{s(w).connected&&await l(w)},"disconnectWallet");zh(()=>()=>{v()},[]);let b=i(w=>{let k=w.find(A=>A.type===wo.DEFAULT);return!k||k.state===ia.NOT_INSTALLED?!1:w.filter(A=>A.state!=ia.NOT_INSTALLED&&![wo.DEFAULT,wo.WALLET_CONNECT_2,wo.LEDGER].includes(A.type)&&p(A.type).supportedChains.filter(L=>L.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),M=i((w,k,E)=>Pn(E,k)&&y(w)&&!Uh.includes(w)||w==wo.DEFAULT&&!b(m),"shouldExcludeWallet");return{list:f.filter(w=>!M(w.type,e??"",g)),error:C,handleClick:T,disconnectConnectingWallets:v,disconnectWallet:x}}i(Jt,"useWalletList");import{i18n as Kc}from"@lingui/core";import{Divider as bS,getCategoriesCount as ES,SelectableCategoryList as IS,styled as jc,Typography as AS,Wallet as WS,WalletState as Xc}from"@rango-dev/ui";import nt,{useState as jo}from"react";import{useManager as jy}from"@rango-dev/queue-manager-react";import{BottomLogo as Yy,Divider as Pc,Header as Zy}from"@rango-dev/ui";import xe,{useEffect as Ia,useRef as _c,useState as Jy}from"react";import{useRef as Gh}from"react";function lr(){return window.self!==window.top}i(lr,"isAppLoadedIntoIframe");function aa(){let t=Gh(null),{iframe:e}=h(),o=lr()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(aa,"useIframe");import{useNavigate as Vh}from"react-router-dom";function tt(){let t=Vh();return()=>t(-1)}i(tt,"useNavigateBack");import{createTheme as da,darkTheme as ay,lightTheme as sy}from"@rango-dev/ui";import{useEffect as ly,useState as py}from"react";import{theme as ry,darkColors as iy}from"@rango-dev/ui";import ua from"react";function Kh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Kh,"expandShortHexColor");function Xh(t){return/[0-9]+$/.test(t)}i(Xh,"isOverridingColor");function jh(t,e){return t.padStart(e,"0")}i(jh,"pad");function sa(t){let e=Math.min(Math.max(Math.round(t),0),255);return jh(e.toString(16),2)}i(sa,"intToHex");function Yh(t){return`#${sa(t.red)}${sa(t.green)}${sa(t.blue)}`}i(Yh,"rgbToHex");function Zh(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(Zh,"hexToRGB");function Jh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Jh,"generateShade");function Rh(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(Rh,"generateTint");function ey(t){return pc(t,Jh)}i(ey,"calculateShades");function ty(t){return pc(t,Rh)}i(ty,"calculateTints");function pc(t,e){let o=Zh(t),n=[];for(let r=1;r<9;r++)n.push(Yh(e(o,r)));return n}i(pc,"calculateColors");function la(t,e,o){let a=ty(t).reverse().concat(t),s=ey(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let g=100+(o?u-1-c:c)*50;p[`${e}${g}`]=l[c]}return p}i(la,"createTintsAndShades");function pa(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!Xh(r)){let p=Kh(a);Object.assign(n,la(p,r,s))}}return{...n,...e}}i(pa,"expandToGenerateThemeColors");var cc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),oy=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=cc(o%52)+e;return cc(o%52)+e},"toAlphabeticName"),ny=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ca=i(t=>oy(ny(5381,JSON.stringify(t))>>>0),"toHash");function ma(t){let e=ry.colors,o={...e,...iy},n,r;if(t?.light){let s={colors:pa(e,t.light)};n={id:`${Mi}-light-${ca(s)}`,tokens:s}}if(t?.dark){let s={colors:pa(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Mi}-dark-${ca(s)}`,tokens:s}}return{light:n,dark:r}}i(ma,"customizedThemeTokens");function uc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ua.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ua.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(ua.cloneElement(e,{key:l}))}}),o}i(uc,"joinList");function mc(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(mc,"doesWindowPreferDarkColorScheme");function pr(t){let{colors:e,fontFamily:o=Sl,borderRadius:n=Hl,secondaryBorderRadius:r=Gl}=t,[a,s]=py(mc()?"dark":"light"),{theme:l}=h(),{dark:p,light:u}=ma(e),c=da({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),g=[c.className,sy.className],d=[c.className,ay.className];if(u){let f=da(u.id,u.tokens);g.push(f.className)}if(p){let f=da(p.id,p.tokens);d.push(f.className)}return ly(()=>{let f=i(C=>{C.matches?s("dark"):s("light")},"switchThemeListener");return mc()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=g.join(" "),C=d.join(" ");return l==="auto"?a==="dark"?C:f:l==="dark"?C:f},"getActiveTheme")}}i(pr,"useTheme");var ot=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as dc}from"@lingui/core";import{Alert as cy,Button as uy}from"@rango-dev/ui";import fc from"react";function fa(t){return fc.createElement(cy,{action:fc.createElement(uy,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},dc.t("Activate this tab")),type:"warning",variant:"alarm",title:dc.t("Another tab is open and handles transactions.")})}i(fa,"ActivateTabAlert");import{i18n as ga}from"@lingui/core";import{Button as my,Divider as dy,MessageBox as fy}from"@rango-dev/ui";import cr from"react";function ha(t){let{open:e,onClose:o,onConfirm:n}=t;return cr.createElement(re,{open:e,dismissible:!0,onClose:o,container:B()},cr.createElement(fy,{title:ga.t("Activate current tab"),type:"warning",description:ga.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},cr.createElement(dy,{size:20}),cr.createElement(my,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},ga.t("Confirm"))))}i(ha,"ActivateTabModal");import{ChevronLeftIcon as yy}from"@rango-dev/ui";import kc from"react";import{css as gy,darkTheme as gc,IconButton as hy,styled as Rt}from"@rango-dev/ui";var yt=Rt(hy,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${gc} &`]:{backgroundColor:"$neutral"}}}),hc=Rt("div",{position:"absolute",background:"$secondary500",[`.${gc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),bo=Rt("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),yc=Rt("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),Sc=Rt("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Cc=Rt("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Tc=gy({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),ur=Rt("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ya(t){return kc.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},kc.createElement(yy,{color:"black",size:16}))}i(ya,"BackButton");import{i18n as Sy}from"@lingui/core";import{Button as Cy,Typography as Ty}from"@rango-dev/ui";import Sa from"react";function Ca(t){return Sa.createElement(bo,null,Sa.createElement(Cy,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Sa.createElement(Ty,{variant:"label",size:"medium",color:"error500"},Sy.t("Cancel"))))}i(Ca,"CancelButton");import{i18n as ky}from"@lingui/core";import{Image as vy,Tooltip as xy,WalletIcon as wy}from"@rango-dev/ui";import eo from"react";function Ta(t){let{list:e}=Jt({}),o=e.filter(r=>r.state==="connected"),n=o.length?eo.createElement("div",{className:Tc()},o.map(r=>eo.createElement(ur,{key:r.title},eo.createElement(vy,{src:r.image,size:14})))):ky.t("Connect Wallet");return eo.createElement(xy,{container:t.container,side:"bottom",content:n},eo.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&eo.createElement(hc,null),eo.createElement(wy,{size:18,color:"black"})))}i(Ta,"WalletButton");import{i18n as dr}from"@lingui/core";import{NotificationsIcon as Uy,Popover as Qy,SettingsIcon as zy,Tooltip as fr,TransactionIcon as qy}from"@rango-dev/ui";import Be from"react";import{Notifications as Ay}from"@rango-dev/ui";import Wy from"react";import{useNavigate as Ny}from"react-router-dom";import{create as by}from"zustand";import{persist as Ey,subscribeWithSelector as Iy}from"zustand/middleware";var Ee=Dt(by()(Ey(Iy((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function ka(){let t=Ny(),{getNotifications:e,clearNotifications:o}=Ee(),n=e(),r=h().blockchains(),{findToken:a}=h();return Wy.createElement(Ay,{list:n,getBlockchainImage:l=>Al(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${H.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(ka,"NotificationContent");import{useManager as My}from"@rango-dev/queue-manager-react";import{InProgressIcon as Ly}from"@rango-dev/ui";import vc from"react";var By=i(()=>{let{manager:t}=My();return ot(t).map(({swap:o})=>o).find(o=>o.status==="running")?vc.createElement(Cc,null,vc.createElement(Ly,{color:"info",size:6})):null},"InProgressTransactionBadge"),xc=By;import{EventSeverity as Py}from"@rango-dev/queue-manager-rango-preset";import{Typography as _y}from"@rango-dev/ui";import wc from"react";function bc(){let{getNotifications:t}=Ee(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Py.WARNING);return o?wc.createElement(yc,{isSever:n},wc.createElement(_y,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(bc,"NotificationsBadge");import{RefreshProgressButton as Dy}from"@rango-dev/ui";import va,{useEffect as $y,useState as Ec}from"react";var Fy=1e3,Ic=60,Oy=100;function mr({onClick:t}){let[e,o]=Ec(0),[n,r]=Ec(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");$y(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Ic&&l()},Fy):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return va.createElement(yt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},va.createElement(Sc,{onTransitionEnd:()=>r(!1),isRefetched:n},va.createElement(Dy,{size:22,color:t?"black":"gray",progress:e/Ic*Oy})))}i(mr,"RefreshButton");function to(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Re("notification",s)||r.includes("notifications");return Be.createElement(Be.Fragment,null,!r.includes("refresh")&&Be.createElement(fr,{container:a||B(),side:"top",content:dr.t("Refresh")},Be.createElement(mr,{onClick:e})),!l&&Be.createElement(Qy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Be.createElement(ka,null)},Be.createElement("div",null,Be.createElement(fr,{container:B(),side:"top",content:dr.t("Notifications")},Be.createElement(yt,{size:"small",variant:"ghost"},Be.createElement(Uy,{size:18,color:"black"}),Be.createElement(bc,null))))),!r.includes("settings")&&Be.createElement(fr,{container:B(),side:"top",content:dr.t("Settings")},Be.createElement(yt,{size:"small",variant:"ghost",onClick:n},Be.createElement(zy,{size:18,color:"black"}))),!r.includes("history")&&Be.createElement(fr,{container:B(),side:"top",content:dr.t("Transactions History")},Be.createElement(yt,{size:"small",variant:"ghost",onClick:o},Be.createElement(qy,{size:18,color:"black"}),Be.createElement(xc,null))))}i(to,"HeaderButtons");import{i18n as xa}from"@lingui/core";import{Divider as Wc,MessageBox as Vy,RefreshIcon as Ky}from"@rango-dev/ui";import Eo from"react";import{Button as Hy,styled as Gy}from"@rango-dev/ui";var Ac=Gy(Hy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function wa(t){let{open:e,onClose:o}=t;return Eo.createElement(re,{open:e,dismissible:!0,onClose:o,container:B()},Eo.createElement(Vy,{title:xa.t("Something went wrong"),type:"error",description:xa.t("Something went wrong. Please refresh the app.")},Eo.createElement(Wc,{size:30}),Eo.createElement(Ac,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Eo.createElement(Ky,{size:20,color:"primary"}),Eo.createElement(Wc,{size:4,direction:"horizontal"}),xa.t("Refresh"))))}i(wa,"RefreshModal");function ba(t){let e=t.target;if(e){let o=e.scrollTop,n=B();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(ba,"onScrollContentAttachStatusToContainer");import{css as Xy,styled as Ea}from"@rango-dev/ui";var Nc="700px",gr=Xy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Mc=Ea("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Nc},fixed:{height:Nc}}}}),Lc=Ea("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Bc=Ea("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function de(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=aa(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=Jy(!1),c=oe.use.connectedWallets(),{config:{features:g,theme:d}}=h(),{watermark:m}=le(),f=m==="FULL",{activeTheme:C}=pr(d||{}),S=Re("connectWalletButton",g),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:v,setShowActivateTabModal:x,activateCurrentTab:b}=le(),M=tt(),{manager:w}=jy(),E=ot(w).map(({swap:te})=>te).some(te=>te.status==="running"),A=i(()=>b(jt.forceClaim,E),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),q=typeof r.hasBackButton>"u"||r.hasBackButton,I=_c(null),Q=_c(null);return Ia(()=>(lr()&&Q.current&&e(Q.current),()=>{o()}),[]),Ia(()=>(I.current?.addEventListener("scroll",ba),()=>{I.current?.removeEventListener("scroll",ba)}),[]),Ia(()=>{u(l==="failed")},[l]),xe.createElement(Mc,{height:s,id:Se.SWAP_BOX_ID,className:`${C()} ${gr()}`,ref:Q},xe.createElement(Zy,{prefix:xe.createElement(xe.Fragment,null,q&&xe.createElement(ya,{onClick:()=>{M(),r.onBack&&r.onBack()}})),title:r.title,suffix:xe.createElement(xe.Fragment,null,r.suffix,r.onWallet&&!S&&xe.createElement(Ta,{container:B(),onClick:L,isConnected:!!c?.length}),r.onCancel&&xe.createElement(Ca,{onClick:r.onCancel}))}),xe.createElement(Lc,{ref:I},n),xe.createElement(ha,{open:v,onClose:()=>x(!1),onConfirm:A}),xe.createElement(Bc,null,xe.createElement("div",{className:"footer__content"},T&&!y&&xe.createElement("div",{className:"footer__alert"},xe.createElement(fa,{onActivateTab:A}),xe.createElement(Pc,{size:10})),a),xe.createElement(Pc,{size:12}),xe.createElement("div",{className:`footer__logo ${f?"logo__show":"logo__hidden"}`},xe.createElement(Yy,null))),xe.createElement(wa,{open:p,onClose:()=>u(!1)}))}i(de,"Layout");import{styled as Ry}from"@rango-dev/ui";var Dc="$20 $20 $10 $20",Ko=Ry("div",{padding:Dc,overflowY:"auto",flexGrow:1});import{styled as eS}from"@rango-dev/ui";var he=eS("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as Wo}from"@lingui/core";import{Button as rS,Divider as Oc,Image as iS,MessageBox as aS,Select as sS,TextField as lS}from"@rango-dev/ui";import{namespaces as pS}from"@rango-dev/wallets-shared";import Ge,{useEffect as cS,useState as Uc}from"react";import{keyframes as tS,styled as hr}from"@rango-dev/ui";var RN=hr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Io=hr("div",{position:"relative"}),oS=tS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Ao=hr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${oS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),yr=hr("div",{"& img":{borderRadius:"50%"}});import{styled as $c,Typography as nS}from"@rango-dev/ui";var Fc=$c("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Aa=$c(nS,{paddingLeft:"$10"}),Wa={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var zc={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Qc(t){let e=t?pS[t].derivationPaths:null;return e?[...e,zc]:[]}i(Qc,"getDerivationPaths");function oo(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:r,type:a,open:s}=t,[l,p]=Uc(null),[u,c]=Uc("0"),g=l===zc.id,d=Qc(n),m=i(({value:C})=>{let S=d?.find(y=>y.id===C);S&&p(S.id)},"handleDerivationPathItemClick"),f=i(()=>{let C=d.find(S=>S.id===l);if(C)o(C.generateDerivationPath(u));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return cS(()=>{p(Qc(n)[0]?.id||null)},[n]),Ge.createElement(re,{open:s,onClose:e,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},Ge.createElement(Oc,{size:20}),Ge.createElement(aS,{type:"info",title:Wo.t("Select Derivation Path"),description:Wo.t(`In order to connect to ${a}, you must first select a Derivation Path`),icon:Ge.createElement(Io,null,Ge.createElement(yr,null,Ge.createElement(iS,{src:r,size:45})),Ge.createElement(Ao,null))}),Ge.createElement(Fc,null,Ge.createElement(Aa,{variant:"body",size:"xsmall",color:"$neutral600"},Wo.t("Choose Derivation Path Template")),Ge.createElement(sS,{value:l||"",options:d.map(C=>({value:C.id,label:C.label})),variant:"filled",handleItemClick:m,styles:{trigger:Wa}}),Ge.createElement(Oc,{size:20}),Ge.createElement(Aa,{variant:"body",size:"xsmall",color:"$neutral600"},g?Wo.t("Enter Path"):Wo.t("Enter Index")),Ge.createElement(lS,{type:g?"text":"number",variant:"contained",value:u,onChange:C=>c(C.target.value),style:Wa})),Ge.createElement(rS,{type:"primary",onClick:f,disabled:!d||!l||!u},Wo.t("Confirm")))}i(oo,"WalletDerivationPathModal");import{Divider as dS}from"@rango-dev/ui";import Ma from"react";import{i18n as No}from"@lingui/core";import{Image as uS,MessageBox as Na,WalletState as mS}from"@rango-dev/ui";import no from"react";function qc(t){let{state:e,image:o,error:n}=t;return e===mS.CONNECTED?no.createElement(Na,{type:"success",title:No.t("Wallet Connected"),description:No.t("Your wallet is connected, you can use it to swap.")}):n?no.createElement(Na,{type:"error",title:No.t("Failed to Connect"),description:n||No.t("Your wallet is not connected. Please try again.")}):no.createElement(Na,{type:"loading",title:No.t("Connecting to your wallet"),description:No.t("Click connect in your wallet popup."),icon:no.createElement(Io,null,no.createElement(yr,null,no.createElement(uS,{src:o,size:45})),no.createElement(Ao,null))})}i(qc,"ModalContent");function Xo(t){let{open:e,onClose:o,...n}=t;return Ma.createElement(re,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},Ma.createElement(qc,{...n}),Ma.createElement(dS,{direction:"vertical",size:32}))}i(Xo,"WalletModal");import{i18n as La}from"@lingui/core";import{Button as gS,Checkbox as hS,Divider as yS,Image as Gc,ListItemButton as SS,MessageBox as CS,Radio as TS,RadioRoot as kS}from"@rango-dev/ui";import{namespaces as Vc}from"@rango-dev/wallets-shared";import Pe,{useMemo as vS,useState as xS}from"react";import{styled as fS}from"@rango-dev/ui";var Hc=fS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var wS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function ro(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=xS([]),a=h().blockchains(),s=vS(()=>o?.map(u=>({name:u,logo:wS(a,Vc[u].mainBlockchain),title:Vc[u].title})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(g=>g!==u):c.concat(u))},"onSelect"),p=i(u=>e?Pe.createElement(kS,{value:n?.[0]},u):Pe.createElement(Pe.Fragment,null,u),"wrapRadioRoot");return Pe.createElement(re,{open:t.open,onClose:t.onClose,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},Pe.createElement(yS,{size:20}),Pe.createElement(CS,{type:"info",title:La.t("Select chain types"),description:La.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Pe.createElement(Io,null,Pe.createElement(ur,null,Pe.createElement(Gc,{src:t.image,size:45})),Pe.createElement(Ao,null))}),Pe.createElement(Hc,null,p(Pe.createElement(Pe.Fragment,null,s?.map(u=>Pe.createElement(SS,{key:u.name,id:u.name,title:u.title,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Pe.createElement(Gc,{src:u.logo,size:22}),end:e?Pe.createElement(TS,{value:u.name}):Pe.createElement(hS,{checked:n.includes(u.name)})}))))),Pe.createElement(gS,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},La.t("Confirm")))}i(ro,"WalletNamespacesModal");var NS=jc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),MS=jc(he,{textAlign:"center"}),Sr=3e3,Ba=300;function Yc(){let{fetchStatus:t}=h(),[e,o]=jo("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=jo(!1),[l,p]=jo(null),[u,c]=jo(null),[g,d]=jo(""),m=null,f=le.use.isActiveTab(),{list:C,handleClick:S,error:y,disconnectConnectingWallets:T}=Jt({onBeforeConnect:P=>{m=setTimeout(()=>{s(!0),d(P)},Ba)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},Sr)}}),v=i(()=>{T(),s(!1)},"handleCloseWalletModal"),x=i(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),b=i(()=>{u&&c({...u,open:!1})},"handleCloseDerivationPathModal"),M=C.find(P=>P.type===g),w=M?.image||"",k=M?.state||Xc.NOT_INSTALLED,E=Ql(C,n),L=ES(E)!==1,q=zl(C,e),I=i(P=>{In(C,r.multiWallets)||(P.namespaces?.length&&P.state===Xc.DISCONNECTED?P.namespaces.length>1?p({open:!0,providerType:P.type,providerImage:P.image,availableNamespaces:P.namespaces,singleNamespace:P.singleNamespace}):P.needsDerivationPath?c({open:!0,providerType:P.type,providerImage:P.image,namespace:P.namespaces[0]}):S(P.type):S(P.type))},"handleWalletItemClick"),Q=i(P=>{let D=q.find(j=>j.type===l?.providerType);D?.singleNamespace&&D?.needsDerivationPath&&P[0]?c({open:!0,providerType:D.type,providerImage:D.image,namespace:P[0]}):S(l?.providerType,P.map(j=>({namespace:j}))),x()},"handleConfirmNamespaces"),te=i(P=>{P&&u?.namespace&&S(u.providerType,[{namespace:u.namespace,derivationPath:P}]),b()},"handleDerivationPathConfirm");return nt.createElement(de,{header:{title:Kc.t("Connect Wallets")}},nt.createElement(MS,null,L&&nt.createElement(nt.Fragment,null,nt.createElement(IS,{setCategory:o,category:e,blockchains:E,isLoading:t==="loading"}),nt.createElement(bS,{size:24})),nt.createElement(AS,{variant:"title",size:"xmedium",align:"center"},Kc.t("Choose a wallet to connect.")),nt.createElement(NS,null,q.map((P,D)=>{let j=`wallet-${D}-${P.type}`;return nt.createElement(WS,{key:j,...P,container:B(),onClick:()=>I(P),isLoading:t==="loading",disabled:!f})}),nt.createElement(Xo,{open:!!a,onClose:v,image:w,state:k,error:y}),nt.createElement(ro,{open:!!l?.open,onClose:x,onConfirm:Q,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),nt.createElement(oo,{open:!!u?.open,selectedNamespace:u?.namespace,type:u?.providerType,image:u?.providerImage,onClose:b,onConfirm:te}))))}i(Yc,"WalletsPage");import{keyframes as LS,styled as Pa}from"@rango-dev/ui";var Zc=Pa("div",{position:"relative"}),BS=LS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Jc=Pa("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${BS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Rc=Pa("div",{"& img":{borderRadius:"50%"}});var $S=7;function Da(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=le.use.isActiveTab(),p=oe.use.connectedWallets(),{blockchains:u}=h(),[c,g]=io(""),[d,m]=io(null),[f,C]=io(!1),[S,y]=io(null),[T,v]=io(null),[x,b]=io(null),{suggestAndConnect:M}=Tr(),w=null,{list:k,error:E,handleClick:A,disconnectWallet:L,disconnectConnectingWallets:q}=Jt({chain:e,onBeforeConnect:W=>{w=setTimeout(()=>{g(W)},Ba)},onConnect:W=>{s?.(W),w&&clearTimeout(w),setTimeout(()=>{g("")},Sr)}}),[I,Q]=io(k),te=k.length,P=r&&te-r>0,D=i(async W=>{C(!1),y("in-progress");try{await M(W.walletType,W.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),j=i(()=>{T&&v({...T,open:!1})},"handleCloseNamespaceModal"),ye=i(()=>{x&&b({...x,open:!1})},"handleCloseDerivationPathModal"),Y=i(W=>{v({open:!0,providerType:W.type,providerImage:W.image,availableNamespaces:W.namespaces,singleNamespace:W.singleNamespace})},"handleOpenNamespacesModal"),ie=i(W=>{let pe=I.find(ce=>ce.type===T?.providerType);pe?.singleNamespace&&pe?.needsDerivationPath&&W[0]?b({open:!0,providerType:pe.type,providerImage:pe.image,namespace:W[0]}):A(T?.providerType,W.map(ce=>({namespace:ce}))),j()},"handleConfirmNamespaces"),ge=i(W=>{W&&x?.namespace&&A(x.providerType,[{namespace:x.namespace,derivationPath:W}]),ye()},"handleDerivationPathConfirm");ou(()=>{Q(W=>{let pe=k.findIndex(ce=>o(ce.type,e));return P&&pe>1?[k[pe]].concat(k.filter((ce,De)=>De!==pe)):W.map(ce=>k.find(De=>De.type===ce.type)??ce)})},[JSON.stringify(k)]);let Ce=document.getElementById(Se.SWAP_BOX_ID);ou(()=>{let W=null;return(S==="completed"||S==="rejected")&&(W=setTimeout(()=>y(null),Sr)),()=>{W&&clearTimeout(W)}},[S]);let $=i(()=>{q(),g("")},"handleCloseWalletModal");return fe.createElement(fe.Fragment,null,I.slice(0,r).map(W=>{let pe=Fl({connectedWallets:p,walletType:W.type,chain:e}),ce=pe?Dn(pe,$S):"",De=Pn(u(),e),_=!p.find(se=>se.walletType===W.type&&se.chain===e),z=De&&_&&W.state===tu.CONNECTED,K=z?pt.t({id:"Add {chain} chain",values:{chain:e}}):ce,ae=i(async()=>{W.state===tu.DISCONNECTED?W.namespaces?.length?W.namespaces.length>1?Y(W):W.needsDerivationPath?b({open:!0,providerType:W.type,providerImage:W.image,namespace:W.namespaces[0]}):A(W.type):A(W.type):W.namespaces&&!ce?(await L(W.type),Y(W)):z?(m({walletType:W.type,chain:e,address:pe??""}),C(!0)):n({walletType:W.type,chain:e,address:pe??""})},"onSelectableWalletClick"),ee=d?.chain?An(d.chain,u()):void 0;return fe.createElement(fe.Fragment,{key:`${W.title}_${ee}`},fe.createElement(Xo,{open:c===W.type,onClose:$,image:W.image,state:W.state,error:E}),fe.createElement(ro,{open:!!T?.open,onClose:j,onConfirm:ie,image:T?.providerImage,availableNamespaces:T?.availableNamespaces,singleNamespace:T?.singleNamespace}),fe.createElement(oo,{open:!!x?.open,selectedNamespace:x?.namespace,type:x?.providerType,image:x?.providerImage,onClose:ye,onConfirm:ge}),!!d&&fe.createElement(re,{open:!!d&&f,container:Ce,onClose:()=>{m(null)}},fe.createElement(Cr,{title:pt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ee}}),type:"warning",description:pt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ee}})},fe.createElement(_a,{size:18}),fe.createElement(_a,{size:32}),fe.createElement(PS,{onClick:D.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},pt.t("Confirm")))),S&&fe.createElement(re,{open:!!S,onClose:y.bind(null,null),container:Ce},S==="in-progress"&&fe.createElement(Cr,{type:"loading",title:pt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ee}}),description:pt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ee}}),icon:fe.createElement(Zc,null,fe.createElement(Rc,null,fe.createElement(_S,{src:W.image,size:45})),fe.createElement(Jc,null))}),S==="completed"&&fe.createElement(Cr,{type:"success",title:pt.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ee}}),description:pt.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ee}})}),S==="rejected"&&fe.createElement(Cr,{type:"error",title:pt.t("Request Rejected"),description:pt.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ee}})}),fe.createElement(_a,{direction:"vertical",size:32})),fe.createElement(DS,{key:W.type,description:K,onClick:ae,selected:o(W.type,e),disabled:!l,...W}))}),P&&fe.createElement(oc,{selected:!1,onClick:a},fe.createElement(eu,{variant:"label",size:"medium"},pt.t("Show more wallets"),fe.createElement(eu,{variant:"label",size:"medium",color:"$primary"},"\xA0+",te-(r??0)))))}i(Da,"WalletList");var HS=2;function au(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=qS(),l=h().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:g,customDestination:d,setCustomDestination:m}=V(),{connectedWallets:f,selectWallets:C}=oe(),{config:S}=h(),[y,T]=so(""),[v,x]=so([]),[b,M]=so(""),[w,k]=so(null),[E,A]=so(!!d),L=zS(()=>Kt({filter:"all",quote:p}),[p]),q=Kt({filter:"required",quote:p}),I=l.find(_=>_.name===p?.swaps[p?.swaps.length-1].to.blockchain),Q=i(_=>q.includes(_),"isWalletRequiredFor"),te=QS(()=>f.filter(_=>_.selected&&L.includes(_.chain)),[f,L]),[P,D]=so(te()),[j,ye]=so([]),Y=i((_,z)=>ye(K=>K.concat({blockchain:_,walletType:z})),"addNextSelectedWallets"),ie=v.length>0,ge=i((_,z)=>!!P.find(K=>K.walletType===_&&K.chain===z&&K.selected&&(Q(z)||!Q(z)&&!d)),"isSelected"),Ce=i((_,z,K)=>{let ae=!1;return _.map(ee=>{if(ee.chain===z){let se=ee.selected;return!ae&&K?(ae=!0,se=!0):K||(se=!1),{...ee,selected:se}}return ee})},"updateSelectableWallets"),$=i(_=>{A(_),_?Q(I?.name??"")||D(z=>Ce(z,I?.name||"",!1)):(m(""),D(z=>Ce(z,I?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),W=i(_=>{if(y&&T(""),ge(_.walletType,_.chain))return;let K=f.find(ae=>ae.walletType===_.walletType&&ae.chain===_.chain);K&&(n(),_.chain===I?.name&&E&&!Q(I.name)&&(A(!1),m(null)),D(ae=>ae.filter(ee=>ee.chain!==_.chain).concat({...K,selected:!0})))},"onChange"),pe=i(()=>{let _=P.filter(z=>z.selected);C(_),u(_),g(!0),o()},"onConfirmBalance"),ce=i(async()=>{x([]),M(""),k(null);let _=await r?.({selectedWallets:P.filter(K=>K.selected),customDestination:d}),z=_.warnings;z?.balance?.messages&&x(z.balance.messages),z?.quoteUpdate&&k(z.quoteUpdate),_.error&&M(hp(_.error)),!_.error&&!z?.balance?.messages.length?pe():x(z?.balance?.messages??[])},"onConfirmWallets");iu(()=>{D(_=>{let z=[];return _.forEach(K=>{!f.some(ee=>ee.chain===K.chain&&ee.walletType===K.walletType&&ee.address===K.address)||z.push(K)}),z=z.concat(f.filter(K=>!!!z.find(ee=>ee.chain===K.chain)&&K.selected&&L.includes(K.chain))),z})},[f,L]),iu(()=>{let _=[];j.length>0&&(j.forEach(z=>{let K=f.find(ae=>ae.chain===z.blockchain&&ae.walletType===z.walletType);K?W(K):_.push(z)}),ye(_))},[f,j]);let De=document.getElementById(Se.SWAP_BOX_ID);return J.createElement(re,{open:e,onClose:()=>{c||s("../",{replace:!0}),o()},dismissible:!y,container:De,...!y&&{footer:J.createElement(sc,null,J.createElement(ru,{loading:a,disabled:Pp(a,E,d,p,P,I),onClick:ce,variant:"contained",type:"primary",fullWidth:!0,size:"large"},ao.t("Confirm")))},...y&&{styles:{container:{padding:"$0"}},header:J.createElement(nc,null,J.createElement(rc,{variant:"ghost",onClick:T.bind(null,"")},J.createElement(OS,{size:16})),J.createElement($a,{variant:"headline",size:"small"},ao.t({id:"Your {blockchainName} wallets",values:{blockchainName:Je(y,l)}})))},anchor:"center"},J.createElement(re,{open:ie,onClose:x.bind(null,[]),container:De},J.createElement(US,{title:ao.t("Insufficient account balance"),type:"error",description:J.createElement(FS,{messages:v??[]})},J.createElement(ru,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:pe},ao.t("Proceed anyway")))),y&&J.createElement(ic,null,J.createElement("div",{className:ac()},J.createElement(Da,{chain:y,isSelected:ge,selectWallet:W,onShowMore:()=>T(y),onConnect:_=>{Y(y,_)}}))),!y&&J.createElement(J.Fragment,null,b&&J.createElement(J.Fragment,null,J.createElement(nu,{variant:"alarm",type:"error",title:ao.t(b)}),J.createElement(kr,{size:12})),w&&J.createElement(J.Fragment,null,J.createElement(nu,{variant:"alarm",type:"warning",title:or(w)}),J.createElement(kr,{size:12})),J.createElement(lc,null,L.map((_,z)=>{let K=l.find(be=>be.name===_),ae=`wallet-${z}`,ee=z===L.length-1,se=ee&&I&&S?.customDestination!==!1;return J.createElement("div",{key:ae},J.createElement(ec,null,J.createElement($a,{variant:"title",size:"xmedium"},ao.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),J.createElement($a,{variant:"label",color:"$neutral700",size:"medium"},ao.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),J.createElement(kr,{size:24}),J.createElement(tc,null,J.createElement(Da,{chain:_,isSelected:ge,selectWallet:W,limit:HS,onShowMore:()=>T(K?.name??""),onConnect:be=>{Y(_,be)}})),!ee&&J.createElement(kr,{size:32}),se&&J.createElement(Rp,{blockchain:I,open:E,handleOpenChange:$}))}))))}i(au,"ConfirmWalletsModal");import{i18n as pC}from"@lingui/core";import{Alert as cC,Button as uC,InfoIcon as mC}from"@rango-dev/ui";import je from"react";import{Alert as KS,Button as XS,Divider as Ua,NoRouteIcon as jS,RefreshIcon as YS,Typography as du}from"@rango-dev/ui";import Xe from"react";import{i18n as su}from"@lingui/core";var GS=24,VS=60;function lu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ne().genericServerError,action:{onClick:n,title:su.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ne().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:su.t("Reset")}},description:ne().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ne().noResultError.description}}i(lu,"makeInfo");var Fa=(o=>(o[o.small=GS]="small",o[o.large=VS]="large",o))(Fa||{}),Oa=(o=>(o.small="small",o.large="medium",o))(Oa||{});import{styled as vr}from"@rango-dev/ui";var pu=vr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),cu=vr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),uu=vr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),mu=vr("div",{padding:"$6 $0"});function Yo(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=lu(o,r,()=>a(s,!0),e);return Xe.createElement(pu,null,Xe.createElement(jS,{size:Fa[n],color:"gray"}),Xe.createElement(Ua,{size:4}),Xe.createElement(du,{variant:"title",size:Oa[n]},ne().noResultError.title),n==="large"&&Xe.createElement(Ua,{size:4}),!!l.description&&Xe.createElement(cu,{size:n},Xe.createElement(du,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Xe.createElement(Ua,{size:n==="large"?"24":"4"}),!!l.alert&&Xe.createElement(uu,{size:n},Xe.createElement(KS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Xe.createElement(XS,{size:"xsmall",type:l.alert.type,prefix:Xe.createElement(mu,null,Xe.createElement(YS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Yo,"NoResult");import{i18n as Zo}from"@lingui/core";import{Button as JS,Divider as RS,MessageBox as eC,Typography as tC,WarningIcon as oC}from"@rango-dev/ui";import Et from"react";import{Typography as yu}from"@rango-dev/ui";import za from"react";import{darkTheme as ZS,styled as xr}from"@rango-dev/ui";var fu=xr("div",{width:"100%"}),Qa=xr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),gu=xr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${ZS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),hu=xr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Su(t){let{title:e,value:o,valueColor:n}=t;return za.createElement(gu,null,za.createElement(yu,{size:"medium",variant:"label",className:"_title"},e),za.createElement(yu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Su,"QuoteErrorsModalItem");function Cu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Zo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Zo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Zo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Zo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return Et.createElement(re,{footer:Et.createElement(JS,{type:"primary",size:"large",prefix:Et.createElement(oC,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},Et.createElement(eC,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Et.createElement(Qa,null,Et.createElement(RS,{size:"4"}),Et.createElement(tC,{size:"small",variant:"title"},Zo.t("Details")),Et.createElement(Qa,null,l.map((p,u)=>Et.createElement(Su,{key:u,...p})))))}i(Cu,"HighValueLossWarningModal");import{i18n as qa}from"@lingui/core";function Tu(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=qa.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(wt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().highValueLossError.title),t.type===1&&(o.title=ne().unknownPriceError.title),t.type===2&&(o.title=qa.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=qa.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(Tu,"makeAlerts");import{i18n as Mo}from"@lingui/core";import{Button as ku,Divider as vu,MessageBox as nC,Typography as rC}from"@rango-dev/ui";import lo from"react";import{useNavigate as iC}from"react-router-dom";function xu(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=iC(),u=e??o;return lo.createElement(re,{anchor:"bottom",open:n,prefix:lo.createElement(ku,{size:"small",variant:"ghost",onClick:()=>p("../"+H.settings)},lo.createElement(rC,{variant:"label",size:"medium",color:"$neutral900"},Mo.t("Change settings"))),container:B(),onClose:r},lo.createElement(nC,{type:"warning",title:s.type===3?Mo.t("High slippage"):Mo.t("Low slippage"),description:s.type===3?Mo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Mo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},lo.createElement(vu,{size:18}),lo.createElement(vu,{size:32}),lo.createElement(ku,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Mo.t("Confirm anyway"))))}i(xu,"SlippageWarningModal");import{Button as aC,MessageBox as sC,WarningIcon as lC}from"@rango-dev/ui";import wr from"react";function wu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return wr.createElement(re,{footer:wr.createElement(aC,{type:"primary",size:"large",prefix:wr.createElement(lC,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},wr.createElement(sC,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(wu,"UnknownPriceWarningModal");function Jo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,g={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},d=o?.type===0||o?.type===1,m=Tu(e,o?.type===3||o?.type===4?o:null);return m&&!n&&(m.action=null),je.createElement(je.Fragment,null,d&&je.createElement(Yo,{error:o,fetch:s}),!!m&&je.createElement(fu,null,je.createElement(cC,{title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:je.createElement(hu,{onClick:l},je.createElement(mC,{size:12,color:"gray"}))},...m.action==="change-settings"&&{action:je.createElement(uC,{size:"xxsmall",type:m.alertType,onClick:c},pC.t("Change"))}})),e&&je.createElement(je.Fragment,null,e.type===0&&je.createElement(Cu,{...g,warning:e}),(e.type===3||e.type===2)&&je.createElement(xu,{...g,warning:e}),e.type===1&&je.createElement(wu,{...g,warning:e})))}i(Jo,"QuoteWarningsAndErrors");import qC from"bignumber.js";import Fr from"react";import{i18n as po}from"@lingui/core";import{Alert as NC,Divider as Bo,FullExpandedQuote as MC,InfoIcon as LC,NumericTooltip as nm,QuoteTag as BC,StepDetails as PC,TokenAmount as _C,Typography as Po}from"@rango-dev/ui";import Za from"bignumber.js";import F,{useRef as DC,useState as $C}from"react";import{styled as Ha}from"@rango-dev/ui";var Ga=Ha("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),bu=Ha("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Eu=Ha("div",{width:"100%",display:"flex"});import*as br from"@radix-ui/react-collapsible";import{Button as dC,css as Ro,darkTheme as Ie,Image as Iu,styled as ze,Typography as fC}from"@rango-dev/ui";var gC=300,Au=ze(br.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ie} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ie} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ie} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Wu=Ro({padding:"$10 $15"}),Nu=ze(dC,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Ie} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Ie} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Ie} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Mu=ze("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${Ie} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Ie} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Ie} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Ie} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Ie} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Ie} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Ie} &`]:{backgroundColor:"$neutral400"}}}}]}),Lu=Ro({width:"100%",padding:"$15 $15 $10 $15"}),Bu=Ro({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Lo=Ro({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Pu=Ro({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ie} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),_u=ze(br.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Iu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Iu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ie} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ie} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ie} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Du=ze("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),$u=ze(rr,{width:"100%",background:"inherit"}),Va=ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${gC}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),yP=ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Fu=ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ie} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Ou=ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ka=ze(fC,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Uu=ze("div",{display:"flex",flexWrap:"wrap"}),Xa=ze("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Qu=ze("div",{display:"flex"}),Er=ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Ie} &`]:{borderTopColor:"$neutral800"}});import{i18n as St}from"@lingui/core";import{ChevronDownIcon as yC,CloseIcon as SC,Divider as Wr,IconButton as CC,NumericTooltip as TC,QuoteCost as kC,Typography as ct}from"@rango-dev/ui";import R,{useState as Gu}from"react";import{css as hC,styled as Ir}from"@rango-dev/ui";var Ar=Ir("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),ja=Ir("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),zu=Ir("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),qu=Ir("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Hu=hC({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var vC=i(t=>t.fee.isZero()?null:R.createElement(Ar,null,R.createElement(ct,{variant:"label",size:"medium",color:"neutral600"},t.label),R.createElement(ct,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function Vu(t){let[e,o]=Gu(!1),[n,r]=Gu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,g=s?.swaps??[],d=B(),m=vp(g);return R.createElement(R.Fragment,null,R.createElement(kC,{onClickFee:c?f=>{f.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?St.t("View more info"):void 0,tooltipContainer:d}),R.createElement(re,{container:d,open:e,header:R.createElement(qu,null,R.createElement(ct,{variant:"title",size:"medium"},St.t("Gas & Fee Explanation")),R.createElement(CC,{onClick:()=>o(!1),variant:"ghost"},R.createElement(SC,{color:"gray",size:14}))),onClose:()=>{o(!1)}},R.createElement(zu,null,R.createElement(ct,{variant:"title",size:"small"},St.t("Details")),R.createElement(Wr,{size:10}),Object.entries(m.payable).flatMap(([f,C])=>C.map((S,y)=>{let T=`payable-fee-${y}`,v=Vi(S);return R.createElement(Ar,{key:T},R.createElement(ct,{variant:"label",size:"medium",color:"neutral600"},zi(f,St.t)),R.createElement(TC,{content:S.amount,container:d},R.createElement(ct,{variant:"label",size:"medium"},N(S.amount,2,2)," ",S.asset.symbol," ($",N(v,4,4),")")))})),R.createElement(Ar,{className:"total_payable_fee"},R.createElement(ct,{variant:"label",size:"medium"},St.t("Total Payable Fee")),R.createElement(ct,{variant:"label",size:"medium"},"$",N(l,4,4))),R.createElement(ja,null),Object.keys(m.nonePayable).length&&R.createElement(sr,{triggerAnchor:"bottom",onClickTrigger:()=>r(f=>!f),trigger:R.createElement("div",{className:Hu()},R.createElement(ct,{size:"small",variant:"body",color:"neutral700"},n?St.t("Hide non-payable fees"):St.t("Show non-payable fees")),R.createElement(Wr,{size:4,direction:"horizontal"}),R.createElement(ir,{orientation:n?"up":"down"},R.createElement(yC,{size:12,color:"gray"}))),open:n},R.createElement(ct,{size:"small",variant:"title"},St.t("Description")),R.createElement(Wr,{size:4}),R.createElement(ct,{size:"small",variant:"body",color:"neutral700"},St.t(`The following fees are considered in the transaction output and
|
|
2
|
+
you won\u2019t need to pay extra gas for them.`)),R.createElement(Wr,{size:10}),Object.entries(m.nonePayable).map(([f,C],S)=>{let y=kp(C),T=zi(f,St.t),v=`non-payable-fee-${S}`;return R.createElement(vC,{key:v,fee:y,label:T})}),R.createElement(ja,null)))))}i(Vu,"QuoteCostDetails");import{i18n as ju}from"@lingui/core";import{TokenAmount as Yu}from"@rango-dev/ui";import Nr from"react";import{css as xC,styled as wC}from"@rango-dev/ui";var Ku=wC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Xu=xC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function en(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Nr.createElement(Ku,null,Nr.createElement(Yu,{direction:"horizontal",label:ju.t("Swap input"),type:"input",tooltipContainer:B(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Nr.createElement("div",{className:Xu()}),Nr.createElement(Yu,{direction:"horizontal",tooltipContainer:B(),label:ju.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(en,"QuoteSummary");import{i18n as tm}from"@lingui/core";import{ChevronDownIcon as IC,ChevronRightIcon as AC,Divider as Ya,Image as WC,Tooltip as _r,Typography as Lr}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as bC,useState as tn}from"react";var Zu=480,Ju=768,Ru=1024,em=1200,EC=i(()=>{let[t,e]=tn(!1),[o,n]=tn(!1),[r,a]=tn(!1),[s,l]=tn(!1),[p,u]=tn(!1),c=i(()=>{e(window.innerWidth<=Zu),n(window.innerWidth>Zu&&window.innerWidth<=Ju),a(window.innerWidth>Ju&&window.innerWidth<=Ru),l(window.innerWidth>Ru&&window.innerWidth<=em),u(window.innerWidth>em)},"handleResize");return bC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Mr=EC;var Br=4,Pr=6,on=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||B();return O.createElement(_r,{container:l,side:"bottom",sideOffset:4,open:r,content:e},O.createElement(Du,{className:n,state:a},O.createElement(WC,{src:o,size:16})))},"ImageComponent");function om(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||B(),u=r.length,c=Op(r),{isTablet:g,isMobile:d}=Mr();return O.createElement(_u,{listItem:s==="list-item",ref:m=>e.current=m,selected:o,onClick:m=>{m.stopPropagation(),n(f=>!f)}},O.createElement("div",{className:Lo()},O.createElement(Lr,{variant:"body",size:"xsmall"},tm.t("Via:")),O.createElement(Ya,{direction:"horizontal",size:4}),r.map((m,f)=>{let C=`item-${f}`,S=O.createElement(Va,null,O.createElement(AC,{size:12,color:"black"}));return d||g?O.createElement(O.Fragment,{key:C},O.createElement(on,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==u-1&&O.createElement(O.Fragment,null,S)):O.createElement(O.Fragment,{key:C},u<=Br||u>Br&&f<Br-1?O.createElement(O.Fragment,null,O.createElement(on,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==u-1&&O.createElement(O.Fragment,null,S)):f===Br-1&&O.createElement(_r,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:Lo()},S,r.map((y,T)=>{let v=`image-${T}`;return T>=f&&O.createElement(O.Fragment,{key:v},O.createElement(on,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==u-1&&O.createElement(O.Fragment,null,S))}))},O.createElement(Xa,{state:r.find((y,T)=>T>=f&&(y.state==="error"||y.state==="warning"))?.state},O.createElement(Lr,{size:"xsmall",variant:"body"},"+",u-f))))})),O.createElement("div",{className:Lo()},O.createElement("div",{className:"blockchains_section"},O.createElement("div",{className:Lo()},O.createElement(Lr,{variant:"body",size:"xsmall"},tm.t("Chains:")),O.createElement(Ya,{direction:"horizontal",size:4}),c.map((m,f)=>O.createElement(O.Fragment,{key:m.displayName},c.length<=Pr||c.length>Pr&&f<Pr-1?O.createElement(_r,{container:p,side:"bottom",content:m.displayName,sideOffset:4},O.createElement(on,{content:"",src:m.image,open:!1,className:f!==0?"blockchainImage":""})):f===Pr-1&&O.createElement(_r,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:Lo()},c.map((C,S)=>S>=f&&O.createElement(on,{key:C.displayName,content:"",src:C.image,open:!1,className:S>f?"blockchainImage":"",container:l})))},O.createElement(Xa,{className:"blockchainImage"},O.createElement(Lr,{size:"xsmall",variant:"body"},"+",c.length-f))))),O.createElement(Ya,{direction:"horizontal",size:32}))),O.createElement(Va,{orientation:a?"up":"down"},O.createElement(IC,{size:12,color:"black"}))))}i(om,"QuoteTrigger");function Ja(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:g=!1,container:d}=t,m=h().blockchains(),{findToken:f}=h(),C=h().swappers(),{customSlippage:S,slippage:y}=h(),T=S||y,[v,x]=$C(t.expanded),b=DC(null),M=N(o.value,6,6),w=N(n.value,6,6),k=n.usdValue?N(n.usdValue,4,4):"",E=et(o.usdValue,n.usdValue??null),A=N(E,2,2),L=wt(E??0),q=i((ge,Ce)=>ge.map(($,W)=>{let pe,ce=r?.type===3&&r.swap.swapperId===$.swapperId,De=r?.type===4&&r.recommendedSlippages?.has(W),_=a?.type===2&&a.recommendedSlippages?.has(W),z=ce||De,K=_;z?pe="error":K&&(pe="warning");let ae=z?po.t("Slippage Error"):po.t("Slippage Warning");return ce&&(ae=po.t("Bridge Limit Error")),{swapper:{displayName:Qo($.swapperId,C)??"",image:$.swapperLogo},from:{token:{displayName:$.from.symbol,image:$.from.logo},chain:{displayName:Je($.from.blockchain,m)??"",image:$.from.blockchainLogo},price:{value:W===0&&!Ce?N(o.value,6,6):N($.fromAmount,6,6),usdValue:N(($.from.usdPrice??0)*parseFloat($.fromAmount),4,4),realValue:W===0?o.value:$.fromAmount,realUsdValue:new Za($.from.usdPrice??0).multipliedBy($.fromAmount).toString()}},to:{token:{displayName:$.to.symbol,image:$.to.logo},chain:{displayName:Je($.to.blockchain,m)||"",image:$.to.blockchainLogo},price:{value:N($.toAmount,6,6),usdValue:N(($.to.usdPrice??0)*parseFloat($.toAmount),4,4),realValue:$.toAmount,realUsdValue:new Za($.to.usdPrice??0).multipliedBy($.toAmount).toString()}},state:pe,alerts:z||K?F.createElement(bu,{dense:g},F.createElement(NC,{variant:"alarm",type:z?"error":"warning",title:ae,footer:F.createElement(Eu,null,ce&&F.createElement("div",null,F.createElement(Po,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(Bo,{direction:"vertical",size:2}),F.createElement(Po,{size:"xsmall",variant:"body",color:"neutral900"},po.t({id:"Yours: {amount} {symbol}",values:{amount:N($.fromAmount,6,6),symbol:$?.from.symbol}}))),(De||_)&&!ce&&F.createElement("div",null,F.createElement(Po,{size:"xsmall",variant:"body",color:"neutral900"},po.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(W)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(W)}}})),F.createElement(Bo,{direction:"vertical",size:2}),F.createElement(Po,{size:"xsmall",variant:"body",color:"neutral900"},po.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:zo($.estimatedTimeInSeconds),fee:N(Gi($,f),2,2),internalSwaps:$.internalSwaps?q($.internalSwaps):void 0}}),"getQuoteSteps"),I=q(e?.swaps??[]),Q=I.length,te=d||B(),P=Qp(t.quote.tags||[]),D=!!c,j=zo(Wn(e?.swaps)),ye=Kn(e?.swaps??[],f),Y=N(ye,2,2),ie=ye.gte(new Za(gp));return g?F.createElement(MC,{selected:l,fee:Y,time:j,tooltipContainer:Uo(),steps:I,tags:P,feeWarning:ie,percentageChange:A,warningLevel:L,outputPrice:{value:w,usdValue:k,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Mu,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Lu()},!p&&P.length?F.createElement(F.Fragment,null,F.createElement(Qu,null,P.map((ge,Ce)=>{let $=`${ge.value}_${Ce}`;return F.createElement(F.Fragment,{key:$},F.createElement(BC,{label:ge.label,value:ge.value}),F.createElement(Bo,{size:4,direction:"horizontal"}))})),F.createElement(Er,null),!D&&F.createElement(Bo,{size:4})):null,F.createElement("div",{id:"portal-root",className:Bu()},F.createElement(Vu,{quote:e,time:j,fee:Y,feeWarning:ie,showModalFee:u,steps:Q}),D&&F.createElement(Nu,{onClick:ge=>{ge.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Po,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},po.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Pu()},F.createElement(Ou,null,F.createElement(LC,{size:12,color:"gray"})),F.createElement(Uu,null,F.createElement(Ka,{size:"small",variant:"body"},`${M} ${I[0].from.token.displayName} = `),F.createElement(nm,{content:n.value,container:te,open:n.value?void 0:!1},F.createElement(Ka,{size:"small",variant:"body"},"\xA0",`${w} ${I[I.length-1].to.token.displayName}`))),F.createElement(nm,{content:n.usdValue,container:te},F.createElement(Bo,{size:2,direction:"horizontal"}),F.createElement(Po,{color:"$neutral600",size:"xsmall",variant:"body"},`($${k})`))),s==="list-item"&&F.createElement(_C,{tooltipContainer:te,type:"output",direction:"vertical",price:{value:w,usdValue:k,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:I[Q-1].to.token.displayName,image:I[Q-1].to.token.image},chain:{image:I[Q-1].to.chain.image},percentageChange:A,warningLevel:L}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(en,{from:I[0].from,to:I[Q-1].to,percentageChange:A,warningLevel:L}),F.createElement(Bo,{size:4}))),F.createElement(Au,{selected:l,listItem:s==="list-item",open:v,className:"quote_container",onOpenChange:x},F.createElement(om,{type:s,quoteRef:b,selected:l,setExpanded:x,container:te,expanded:v,steps:I}),F.createElement($u,{open:v},F.createElement(Fu,null),F.createElement("div",{className:Wu()},I.map((ge,Ce)=>{let $=`item-${Ce}`;return F.createElement(PC,{type:"quote-details",key:$,tooltipContainer:te,step:ge,hasSeparator:Ce!==I.length-1,state:ge.state})})))))}i(Ja,"Quote");import{Divider as QC,Skeleton as zC}from"@rango-dev/ui";import At from"react";import{darkTheme as FC,styled as Dr}from"@rango-dev/ui";var rm=Dr("div",{$$color:"$colors$neutral100",[`.${FC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),im=Dr("div",{paddingTop:"$2"}),am=Dr("div",{paddingLeft:"$8"}),sm=Dr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as ym,Divider as ut,Skeleton as Ye}from"@rango-dev/ui";import G from"react";import{css as OC,styled as It}from"@rango-dev/ui";var Ra=It("div",{display:"flex"}),lm=It("div",{padding:"$10 $0 $20"}),pm=It("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),cm=It("div",{display:"flex",justifyContent:"start",alignItems:"center"}),um=It("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),mm=It("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),dm=It("div",{width:"65%",display:"flex",justifyContent:"start"}),fm=It("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),gm=It("div",{padding:"$15 $0 $15 $0"}),hm=OC({display:"flex",justifyContent:"space-between",alignItems:"center"});function nn(t){let{type:e,tagHidden:o=!0}=t,n=G.createElement(um,null,G.createElement(dm,null,G.createElement(ym,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),G.createElement(ut,{size:8,direction:"horizontal"}),G.createElement(fm,null,G.createElement(Ye,{height:10,width:60,variant:"rounded"}),G.createElement(ut,{size:4}),G.createElement(Ye,{height:15,variant:"rounded"}))),G.createElement(Ye,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return G.createElement("div",null,!o&&G.createElement(G.Fragment,null,G.createElement(Ra,null,G.createElement(Ye,{width:65,height:20,variant:"rounded"}),G.createElement(ut,{size:4,direction:"horizontal"}),G.createElement(Ye,{width:65,height:20,variant:"rounded"}),G.createElement(ut,{size:4,direction:"horizontal"}),G.createElement(Ye,{width:65,height:20,variant:"rounded"})),G.createElement(Er,null),!r&&G.createElement(ut,{size:4})),G.createElement("div",{className:hm()},G.createElement(Ra,null,G.createElement(Ye,{width:60,height:10,variant:"rounded"}),G.createElement(ut,{size:4,direction:"horizontal"}),G.createElement(Ye,{width:60,height:10,variant:"rounded"}),G.createElement(ut,{size:4,direction:"horizontal"}),G.createElement(Ye,{width:60,height:10,variant:"rounded"})),r&&G.createElement(Ye,{width:85,height:24,variant:"rounded"})),e==="basic"&&G.createElement(lm,null,G.createElement(Ye,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(pm,null,G.createElement(cm,null,G.createElement(ym,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),G.createElement(ut,{direction:"horizontal",size:4}),G.createElement(Ye,{height:15,width:150,variant:"rounded"})),G.createElement(ut,{size:10}),G.createElement(Ye,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(ut,{size:4}),G.createElement(gm,null,n,G.createElement(mm,null),n),G.createElement(ut,{size:12})))}i(nn,"QuoteSummarySkeleton");import{ChainToken as vm,Divider as ts,NextIcon as UC,Skeleton as $r}from"@rango-dev/ui";import Ae from"react";import{styled as rn}from"@rango-dev/ui";var Sm=rn("div",{display:"flex",alignItems:"start"}),Cm=rn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),es=rn("div",{display:"flex",alignItems:"center",flexGrow:1}),Tm=rn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),km=rn("div",{display:"flex",alignItems:"center"});function Ct(t){let{separator:e=!0}=t;return Ae.createElement(Ae.Fragment,null,Ae.createElement(km,null,Ae.createElement($r,{height:22,width:22,variant:"circular"}),Ae.createElement(ts,{direction:"horizontal",size:8}),Ae.createElement($r,{height:15,width:148,variant:"rounded"})),Ae.createElement(Sm,null,Ae.createElement(sm,{hideSeparator:!e}),Ae.createElement(Cm,{extraSpace:e},Ae.createElement(es,null,Ae.createElement(vm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ae.createElement(ts,{direction:"horizontal",size:8}),Ae.createElement($r,{height:12,variant:"rounded"})),Ae.createElement(Tm,null,Ae.createElement(UC,{color:"gray",size:16})),Ae.createElement(es,null,Ae.createElement(vm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ae.createElement(ts,{direction:"horizontal",size:8}),Ae.createElement($r,{height:12,variant:"rounded"})))))}i(Ct,"StepSkeleton");function an(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return At.createElement(rm,{expanded:o,rounded:e!=="basic"},At.createElement(nn,{type:e,tagHidden:n}),At.createElement(im,null,At.createElement(zC,{height:15,variant:"rounded"})),o&&At.createElement(am,null,At.createElement(QC,{size:24}),At.createElement(Ct,null),At.createElement(Ct,null),At.createElement(Ct,{separator:!1})))}i(an,"QuoteSkeleton");function co(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:g,fullExpandedMode:d=!1,container:m}=t,{inputAmount:f,inputUsdValue:C,toToken:S}=V(),y=e?.outputAmount?new qC(e?.outputAmount):null,T=e?.outputAmount?jn(e?.outputAmount,Zn(e)||S?.usdPrice):null,x=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Fr.createElement(Ga,null,Fr.createElement(an,{tagHidden:l,type:o,expanded:s})):x?Fr.createElement(Ga,{onClick:()=>p?.(e)},Fr.createElement(Ja,{quote:e,error:r,container:m,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:g,fullExpandedMode:d,input:{value:f,usdValue:C?.toString()??""},output:{value:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(co,"QuoteInfo");import{calculatePendingSwap as KC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as XC}from"react";import{useRef as HC,useState as GC}from"react";var VC=2e3;function Or({request:t}){let[e,o]=GC(!1),n=HC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,VC)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(p)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Or,"useFetch");function xm(){let{fetch:t,loading:e,cancelFetch:o}=Or({request:async(n,r)=>await _t().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(xm,"useFetchConfirmQuote");function Ur(t){if(!t.swaps)throw new Error(ne().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=os(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Ur,"throwErrorIfResponseIsNotValid");function os(t){if(Sp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Cp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=xp(t);if(o){let n=Xn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(os,"getQuoteError");function wm(t,e,o){let n=!1;t&&(n=Fp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=ko(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Wp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(To(e)),percentageChange:N(et(To(t)??"",To(e)??""),null,2)}:Ki(t,e)?r.quoteUpdate={type:0}:Xi(t,e)?r.quoteUpdate={type:1}:ji(t,e)&&(r.quoteUpdate={type:2}));let s=Np(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(wm,"generateWarnings");function Qr(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(Qr,"handleQuoteErrors");function ns(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=V(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),g=h().blockchains(),d=h().tokens(),{findToken:m}=h(),f=u||p,{fetch:C,cancelFetch:S,loading:y}=xm();return XC(()=>S,[]),{loading:y,fetch:i(async v=>{let x=v.selectedWallets,b=v?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let M=x.reduce((k,E)=>(k[E.chain]=E.address,k),{}),w={requestId:r?.requestId||"",selectedWallets:M,destination:b||void 0};try{return await C(w,!0).then(k=>{let{result:E}=k;Ur({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let A={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};n(A);let L={slippage:f.toString(),disabledSwappersGroups:c},q=wm(r??void 0,A,{fromToken:t,toToken:e,meta:{blockchains:g},findToken:m,selectedWallets:x,userSlippage:f});q.quoteUpdate&&s(!1),l();let I=!!q.balance,Q=KC(o.toString(),E,Ip(x),L,!I,{blockchains:g,tokens:d});return{quote:A,swap:Q,error:null,warnings:q}})}catch(k){return Qr(k)}},"fetch"),cancelFetch:S}}i(ns,"useConfirmSwap");var nT=ZC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Em}`]:{width:"$48",height:"$48"}}),rT=as({flexGrow:1,paddingRight:"$10"}),iT=as({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),aT=as({display:"flex",justifyContent:"space-between",alignItems:"center"});function Im(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=V(),s=oT(),[l,p]=sn(""),u=!n,[c,g]=sn(!1),[d,m]=sn(!1),{isActiveTab:f}=le(),C=h().getDisabledLiquiditySources(),S=tT(C),{manager:y}=jC(),{fetch:T,loading:v,cancelFetch:x}=ns(),[b,M]=sn({swap:null,error:null,warnings:null}),[w,k]=sn(!1),E=i(async({selectedWallets:D,customDestination:j})=>{let ye=await T?.({selectedWallets:D,customDestination:j});return M(ye),ye},"onConfirmSwap"),A=i(async()=>{if(b.swap&&n)try{await y?.create("swap",{swapDetails:b.swap},{id:b.swap.requestId});let D=`../${H.swaps}/${b.swap.requestId}`;s(D,{replace:!0}),setTimeout(()=>{e("")},0)}catch(D){p("Error: "+D?.message)}},"addNewSwap"),L=i(async()=>{m(!0),await A(),m(!1)},"onConfirm"),q=i(async()=>{b?.warnings?.quote&&!a?k(!0):await L()},"onStartConfirmSwap"),I=i(async()=>{M({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(D=>{M(D)}).catch(D=>console.error(D))},"onRefresh");zr(()=>{!!S.current.length&&!C.length&&I(),S.current=C},[C.length]),zr(()=>{u&&x()},[u]),zr(()=>{u&&g(u)},[u]),zr(()=>{u||T({selectedWallets:o,customDestination:r}).then(D=>M(D)).catch(D=>console.error(D))},[]),eT(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let Q=b.warnings?.quote??null,te=b.error,P=[];if(l&&P.push(We.createElement(bm,{type:"error",variant:"alarm",title:l})),b.warnings?.quoteUpdate&&P.push(We.createElement(bm,{variant:"alarm",type:"warning",title:b.warnings.quoteUpdate&&or(b.warnings.quoteUpdate)})),Q||te){let D=`../${H.settings}`;P.push(We.createElement(Jo,{warning:Q,error:te,couldChangeSettings:!1,refetchQuote:I,showWarningModal:w,confirmationDisabled:!f,onOpenWarningModal:()=>k(!0),onCloseWarningModal:()=>k(!1),onConfirmWarningModal:async()=>{k(!1),await A()},onChangeSettings:()=>s(D)}))}return We.createElement(de,{header:{title:rs.t("Confirm Swap"),onWallet:()=>{let D=`../${H.wallets}`;s(D)}},footer:We.createElement(nT,null,We.createElement("div",{className:rT()},We.createElement(YC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:v||d,disabled:!!b.error||!f,onClick:q},rs.t("Start Swap"))),We.createElement(Em,{variant:"contained",type:"primary",size:"large",loading:v||d,disabled:!f,onClick:g.bind(null,!0)},We.createElement(RC,{size:24})))},c&&We.createElement(au,{open:c,onClose:()=>g(!1),onCancel:x,loading:v,onCheckBalance:E}),We.createElement(he,null,We.createElement("div",{className:aT()},We.createElement(JC,{variant:"title",size:"small"},rs.t("You get")),We.createElement("div",{className:iT()},We.createElement(mr,{onClick:!v&&!c&&!w?I:void 0}))),We.createElement(is,{size:"12"}),uc(P.map((D,j)=>({element:D,key:`alert-${j}`})),We.createElement(is,{size:10})),P.length>0?We.createElement(is,{size:10}):null,We.createElement(co,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:b.error,loading:v,warning:b.warnings?.quote??null})))}i(Im,"ConfirmSwapPage");import{i18n as Hr}from"@lingui/core";import{useManager as vT}from"@rango-dev/queue-manager-react";import{Divider as Fm,NotFound as xT,styled as wT}from"@rango-dev/ui";import Nt,{useState as bT}from"react";import{useNavigate as ET}from"react-router-dom";import{i18n as pT}from"@lingui/core";import{Divider as Lm,GroupedVirtualizedList as cT,Skeleton as uT,SwapListItem as Bm,Typography as mT}from"@rango-dev/ui";import qe,{useCallback as Pm,useEffect as dT,useRef as fT,useState as gT}from"react";function Am(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(Am,"calculateGroupsSoFar");import{css as sT,darkTheme as lT,styled as ln}from"@rango-dev/ui";var ss=sT(),Wm=ln("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ls=ln("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ss}`]:{$$color:"$colors$neutral600",[`.${lT} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ps=ln("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Nm=ln("div",{gap:"$10",display:"flex",flexDirection:"column"}),Mm=ln("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var hT=10;function cs(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=gT([]),l=fT(0),{swaps:p,groupCounts:u,groups:c}=n(e),g=Pm(Am,[]),d=Pm(()=>{let m=e.length-l.current;m&&(l.current+=Math.min(m,hT),s(g(u,l.current)))},[e.length]);if(dT(()=>{r||d()},[r,d]),r){let m=[1,2];return qe.createElement(qe.Fragment,null,[m,m].map((C,S)=>qe.createElement(ls,{key:S},qe.createElement(ps,null,qe.createElement(uT,{variant:"text",width:60,size:"small"}),qe.createElement(Lm,{size:16})),qe.createElement(Lm,{size:4}),qe.createElement(Nm,null,C.map((T,v)=>qe.createElement(Bm,{isLoading:!0,key:v}))))))}return qe.createElement(cT,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:m=>qe.createElement(ls,null,qe.createElement(ps,null,qe.createElement(mT,{variant:"label",size:"medium",className:ss()},c[m]))),itemContent:(m,f)=>{let C=p[m];if(!C)return null;let S=C.steps[0],y=C.steps[C.steps.length-1];return qe.createElement(Wm,{key:C.requestId},qe.createElement(Bm,{requestId:C.requestId,creationTime:C.creationTime,status:C.status,onClick:o,tooltipContainer:B(),onlyShowTime:c[f]===pT.t("Today"),swapTokenData:{from:{token:{image:S.fromLogo,displayName:S.fromSymbol},blockchain:{image:S.fromBlockchainLogo||""},amount:N(C.inputAmount,6,6),realAmount:C.inputAmount},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:N(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:y.outputAmount||y.expectedOutputAmountHumanReadable||""}}}))}})}i(cs,"HistoryGroupedList");import{CloseIcon as ST,IconButton as CT,SearchIcon as TT,TextField as kT}from"@rango-dev/ui";import pn from"react";import{styled as yT}from"@rango-dev/ui";var _m=yT("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Wt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return pn.createElement(kT,{prefix:pn.createElement(_m,null,pn.createElement(TT,{color:"black"})),suffix:!!s.length&&pn.createElement(CT,{variant:"ghost",onClick:()=>l?.(""),size:"small"},pn.createElement(ST,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Wt,"SearchInput");import{i18n as qr}from"@lingui/core";import Dm from"dayjs";var $m=i(t=>{let e=new Map([["today",{title:qr.t("Today"),swaps:[]}],["week",{title:qr.t("This week"),swaps:[]}],["month",{title:qr.t("This month"),swaps:[]}],["year",{title:qr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=Dm();t.forEach(p=>{let u=Number(p.creationTime),c=Dm(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let g=new Date(u).getFullYear().toString();o(g,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var IT=wT("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),AT=i((t,e)=>t?.length?t.filter(o=>gt(o.fromBlockchain,e)||gt(o.toBlockchain,e)||gt(o.toSymbol,e)||gt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Om(){let t=ET(),{manager:e,state:o}=vT(),n=ot(e).map(({swap:c})=>c),[r,a]=bT(""),s=!o.loadedFromPersistor,l=i(c=>{let g=c.target.value;a(g)},"searchHandler"),p=n;r&&(p=n.filter(c=>gt(c.inputAmount,r)||gt(c.status,r)||AT(c.steps,r)||gt(c.requestId,r)));let u=!p?.length&&!s;return Nt.createElement(de,{header:{title:Hr.t("History")}},Nt.createElement(he,null,Nt.createElement(Wt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Hr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Nt.createElement(Fm,{size:"16"}),Nt.createElement(IT,null,u&&Nt.createElement(Mm,null,Nt.createElement(Fm,{size:32}),Nt.createElement(xT,{title:Hr.t("No results found"),description:r?Hr.t("Try using different keywords"):""})),!u&&Nt.createElement(cs,{list:p,onSwapClick:t,groupBy:$m,isLoading:s}))))}i(Om,"HistoryPage");import{i18n as KT}from"@lingui/core";import{Button as XT,Divider as rd,styled as jT,WarningIcon as YT}from"@rango-dev/ui";import ZT from"bignumber.js";import Ve,{useEffect as id,useState as ad}from"react";import{useNavigate as JT}from"react-router-dom";import{i18n as PT}from"@lingui/core";import{Header as _T}from"@rango-dev/ui";import zt,{useEffect as DT,useState as $T}from"react";import{i18n as NT}from"@lingui/core";import{Divider as ms,FullExpandedQuote as MT,Typography as LT}from"@rango-dev/ui";import ke from"react";import{styled as us}from"@rango-dev/ui";var Um=us("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Qm=us("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),zm=us("div",{width:"146px"});import{i18n as cn}from"@lingui/core";import{Select as WT}from"@rango-dev/ui";import qm from"react";function Gr(t){let{updateQuotePartialState:e,sortStrategy:o}=V(),n=[{value:"SMART",label:cn.t("Smart Routing")},{value:"FEE",label:cn.t("Lowest Fee")},{value:"SPEED",label:cn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:cn.t("Maximum Return")},{value:"PRICE",label:cn.t("Maximum Output")}];return qm.createElement(zm,null,qm.createElement(WT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Gr,"SelectStrategy");var Hm=3;function un(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:g,toToken:d,sortStrategy:m,error:f}=V(),{slippage:C,customSlippage:S}=h(),{findToken:y}=h(),T=l||B(),v=!!u&&u.results.length,x=S??C,b=i(k=>{if(!g||!d||!u)return null;let E={requestAmount:u.requestAmount,...k};return ko(E,{fromToken:g,toToken:d,userSlippage:x,findToken:y})},"getQuoteWarning"),M=f?.type===0||f?.type===1,w=u?.results?Rn(m,u?.results):[];return ke.createElement(ke.Fragment,null,a&&ke.createElement(ke.Fragment,null,ke.createElement(Qm,null,ke.createElement(LT,{size:"xmedium",variant:"title"},NT.t("Sort by")),ke.createElement(Gr,{container:T})),ke.createElement(ms,{size:"10"})),e&&Array.from({length:Hm},(k,E)=>ke.createElement(ke.Fragment,{key:E},s?ke.createElement(MT,{loading:!0}):ke.createElement(an,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Hm-1&&ke.createElement(ms,{size:16}))),!e&&ke.createElement(ke.Fragment,null,v?w.map((k,E)=>{let A=b(k),L=os(k.swaps),q=w.length-1===E;return ke.createElement(ke.Fragment,{key:k.requestId},ke.createElement(co,{showModalFee:r,container:T,selected:p?.requestId===k.requestId,tagHidden:!1,quote:{...k,requestAmount:u.requestAmount},loading:e,error:L?.options||null,warning:A,fullExpandedMode:s,onClick:I=>{L||c("warning",A),c("error",L?.options||null),o(I)},type:"list-item"}),!q&&ke.createElement(ms,{size:16}))}):M&&ke.createElement(Um,null,ke.createElement(Yo,{size:s?"large":"small",error:f,fetch:n}))))}i(un,"Quotes");import{darkTheme as BT,styled as Gm}from"@rango-dev/ui";var Vm=Gm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${BT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Km=Gm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var FT=100;function ds(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=$T(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",g=Uo();return DT(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},FT):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),zt.createElement(Vm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${gr()}`,id:Se.EXPANDED_BOX_ID},zt.createElement(_T,{title:PT.t("Routes"),suffix:zt.createElement(zt.Fragment,null,zt.createElement(Gr,{container:g}),zt.createElement(to,{container:g,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),zt.createElement(Km,null,zt.createElement(un,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Uo(),onClickOnQuote:n,fullExpandedMode:c})))}i(ds,"ExpandedQuotes");import{i18n as ed}from"@lingui/core";import{SwapInput as td}from"@rango-dev/ui";import mn from"react";import{ReverseIcon as QT}from"@rango-dev/ui";import gs from"react";import{keyframes as OT,styled as Xm}from"@rango-dev/ui";var fs=450,UT=OT({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),jm=Xm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Ym=Xm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${UT} ${fs}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function hs(){let t=V.use.switchFromAndTo();return gs.createElement(jm,null,gs.createElement(Ym,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},fs),t()}},gs.createElement(QT,{size:12})))}i(hs,"SwitchFromAndToButton");import{styled as Zm}from"@rango-dev/ui";var Jm=Zm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Rm=Zm("div",{position:"relative"});function ys(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:g,outputAmount:d,outputUsdValue:m,selectedQuote:f}=V(),{connectedWallets:C,getBalanceFor:S}=oe(),y=a?S(a):null,T=_n(y)?.amount??"0",v=s&&a?N(y?.amount,y?.decimals):"0",x=!!s&&Ol(C,s.name),b=!Hi(f,c,g),M=!Hi(f,c,m),w=!g||!m||!m.gt(0)?null:et(g.toString(),m.toString());return mn.createElement(Jm,null,mn.createElement(Rm,null,mn.createElement(td,{label:ed.t("From"),mode:"From",onInputChange:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:b?void 0:N(g,4,4),realUsdValue:b?void 0:g?.toString(),error:b?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:B(),onSelectMaxBalance:()=>{u(v.split(",").join(""))}}),mn.createElement(hs,null)),mn.createElement(td,{sharpBottomStyle:!r&&(!!f||e),label:ed.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(et(g,m),2,2),warningLevel:wt(w??0),price:{value:N(d,6,6),usdValue:M?void 0:N(m,4,4),realValue:d?.toString(),realUsdValue:M?void 0:m?.toString(),error:M?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(ys,"Inputs");import{useCallback as zT,useEffect as qT,useRef as HT,useState as GT}from"react";function od(){let{fetch:t,loading:e,cancelFetch:o}=Or({request:async(n,r)=>await _t().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(od,"useFetchAllQuotes");var VT=600;function Vr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=od(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=oe.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:g,sortStrategy:d,resetQuote:m,error:f,warning:C,setSelectedQuote:S,updateQuotePartialState:y}=V(),{slippage:T,customSlippage:v,affiliatePercent:x,affiliateRef:b,affiliateWallets:M,fetchStatus:w}=h(),k=h().getLiquiditySources(),E=h().getDisabledLiquiditySources(),A=h().excludeLiquiditySources(),{findToken:L}=h(),[q,I]=GT(!0),Q=HT(u),te=v??T,D=!l||!p||Xt(l,p)||!qo(u),j=i(ie=>{I(ie)},"resetState"),ye=i(ie=>{let{fromToken:ge,toToken:Ce,inputAmount:$,liquiditySources:W,excludeLiquiditySources:pe,disabledLiquiditySources:ce,slippage:De,affiliateRef:_,affiliatePercent:z,affiliateWallets:K}=ie;if(q||j(!0),!D&&ge&&Ce){m();let ae=Ep({fromToken:ge,toToken:Ce,inputAmount:$,liquiditySources:W,excludeLiquiditySources:pe,disabledLiquiditySources:ce,wallets:s,slippage:De,affiliateRef:_,affiliatePercent:z,affiliateWallets:K,enableCentralizedSwappers:a});Jl("experimentalRoute",r)&&(ae.experimental=!0),e(ae).then(ee=>{let se=Rn(d,ee.results),be=Up(g,se,ee.requestAmount);I(!1),y("quotes",ee),S(be),Ur({diagnosisMessages:ee.diagnosisMessages,requestId:be?.requestId||"",swaps:be?.swaps});let xn=be&&ko(be,{fromToken:ge,toToken:Ce,userSlippage:te,findToken:L});y("warning",xn)}).catch(ee=>{let{error:se}=Qr(ee);(se?.type===0||se?.type===1)&&m(),se?.type!==2&&(y("error",se),I(!1))})}},"fetch"),Y=zT(bl(ie=>{ye(ie)},VT),[D]);return qT(()=>{if(!t){I(!1);return}if(w!=="success")return;if(D){I(!1),(g||f||C)&&m();return}if(!qo(u)||c?.eq(0)){j(!1),o();return}m(),j(!0);let ie=ye;return Q.current&&Q.current!=u&&(ie=Y),Q.current=u,ie({inputAmount:u,fromToken:l,toToken:p,liquiditySources:k,excludeLiquiditySources:A,disabledLiquiditySources:E,slippage:te,affiliateRef:b,affiliatePercent:x,affiliateWallets:M}),o},[w,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,D,k?.length,n,E.length,te,b,x,JSON.stringify(M)]),{fetch:()=>ye({inputAmount:u,fromToken:l,toToken:p,liquiditySources:k,excludeLiquiditySources:A,disabledLiquiditySources:E,slippage:te,affiliateRef:b,affiliatePercent:x,affiliateWallets:M}),loading:q}}i(Vr,"useSwapInput");function nd(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Te.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(nd,"emitPreventableEvent");var RT=jT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),ek=300;function sd(){let t=JT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:g,updateQuotePartialState:d}=V(),[m,f]=ad(!1),{isLargeScreen:C,isExtraLargeScreen:S}=Mr(),{fetch:y,loading:T}=Vr({refetchQuote:a}),{config:v,fetchStatus:x}=h(),{connectedWallets:b}=oe(),{isActiveTab:M}=le(),[w,k]=ad(!1),A=Tp({fetchMetaStatus:x,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:b.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),L=Vl(C,S,v?.variant),q=!!n&&!!e&&!!o&&new ZT(n).gt(0)&&!_p(e,o),I=q&&x==="success"&&T,P=(!L||L&&p?.results.length)&&(l||s);id(()=>{c(),d("refetchQuote",!0)},[]),id(()=>{f(q)},[q]);let D=(r||s)&&!w?y:void 0,j=i(Y=>{L&&m?(f(!1),setTimeout(()=>{t(Y)},ek)):t(Y)},"onHandleNavigation"),ye=i(Y=>{r?.requestId!==Y.requestId&&(k(!1),u(Y))},"onClickOnQuote");return Ve.createElement(RT,null,Ve.createElement(de,{height:"auto",footer:Ve.createElement(XT,{type:"primary",size:"large",disabled:A.disabled||!M,prefix:A.action==="confirm-warning"&&Ve.createElement(YT,null),fullWidth:!0,onClick:()=>{A.action==="connect-wallet"?nd({type:"clickConnectWallet"},()=>j(H.wallets)):A.action==="confirm-warning"?k(!0):j(H.confirmSwap)}},A.title),header:{onWallet:()=>{j(H.wallets)},hasBackButton:!1,title:v.title||KT.t("Swap"),suffix:Ve.createElement(to,{hidden:L?["refresh"]:void 0,onClickRefresh:D,onClickHistory:()=>j(H.swaps),onClickSettings:()=>{j(H.settings)}})}},Ve.createElement(he,null,Ve.createElement(ys,{fetchingQuote:I,fetchMetaStatus:x,isExpandable:L,onClickToken:Y=>{j(Y==="from"?H.fromSwap:H.toSwap)}}),Ve.createElement(rd,{size:"2"}),L?null:Ve.createElement(co,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),j(H.routes)}:void 0}),P?Ve.createElement(Ve.Fragment,null,Ve.createElement(rd,{size:"10"}),Ve.createElement(Jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:w,confirmationDisabled:!M,onOpenWarningModal:()=>k(!0),onCloseWarningModal:()=>k(!1),onConfirmWarningModal:()=>{k(!1),g(!0),j(H.confirmSwap)},onChangeSettings:()=>j(H.settings)})):null)),L?Ve.createElement(ds,{loading:I,onClickOnQuote:ye,fetch:y,onClickRefresh:D,isVisible:m}):null)}i(sd,"Home");import{i18n as ld}from"@lingui/core";import{Alert as tk,Divider as ok,List as nk,ListItemButton as rk,Radio as ik,RadioRoot as ak,Typography as sk}from"@rango-dev/ui";import Tt from"react";function qt(){let{setLanguage:t,language:e,config:o}=h(),n=ep,r=o?.language||Co;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Co),resetLanguage:()=>t(null)}}i(qt,"useLanguage");function pd(){let{activeLanguage:t,changeLanguage:e,languages:o}=qt(),n=tt(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:Tt.createElement(sk,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Tt.createElement(ik,{value:s}),start:Tt.createElement(p,null)}});return Tt.createElement(de,{header:{title:ld.t("Language")}},Tt.createElement(he,null,Tt.createElement(tk,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),Tt.createElement(ok,{size:"8"}),Tt.createElement(ak,{value:t},Tt.createElement(nk,{type:Tt.createElement(rk,{title:ld.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(pd,"LanguagePage");import{i18n as Mt}from"@lingui/core";import{Button as mk,Checkbox as dk,Image as fk,ListItemButton as gk,NotFound as hk,Typography as yk}from"@rango-dev/ui";import He,{useState as Sk}from"react";import{Checkbox as ck,Skeleton as ud}from"@rango-dev/ui";import fn from"react";import{styled as Ss}from"@rango-dev/ui";var dn=Ss("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Cs=Ss("div",{width:80,display:"flex",justifyContent:"flex-end"}),Ts=Ss("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as lk,styled as pk}from"@rango-dev/ui";var cd=pk(lk,{height:61});var uk=30;function ks(){return fn.createElement(dn,null,Array.from(Array(uk),(t,e)=>fn.createElement(cd,{hasDivider:!0,key:e,start:fn.createElement(ud,{variant:"circular",width:35,height:35}),title:fn.createElement(ud,{variant:"text",size:"large",width:90}),end:fn.createElement(ck,{checked:!1})})))}i(ks,"LoadingLiquiditySourceList");function vs({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=Sk(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Un(o,n),u={Exchanges:Mt.t("Exchanges"),Bridges:Mt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let g=p.filter(y=>c.includes(y.type)),d=g.length===g.filter(y=>y.selected).length,m=i(()=>{g.forEach(y=>{d?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),f=g.map(y=>{let{selected:T,groupTitle:v,logo:x}=y;return{start:He.createElement(fk,{src:x,size:22,type:"circular"}),onClick:()=>{l||s(v)},end:He.createElement(dk,{checked:T,disabled:l}),title:He.createElement(yk,{variant:"title",size:"xmedium"},Mt.t(v)),...y}}),C=i(y=>{let T=y.target.value;a(T)},"searchHandler"),S=f;return r&&(S=f.filter(y=>gt(y.groupTitle,r))),He.createElement(de,{header:{title:Mt.t(t),suffix:He.createElement(Cs,null,He.createElement(mk,{variant:"ghost",size:"xsmall",onClick:m},d?Mt.t("Deselect all"):Mt.t("Select all")))}},He.createElement(he,{view:!0},He.createElement(Wt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Mt.t("Search {sourceType}",{sourceType:u[t]}),onChange:C}),e==="loading"&&He.createElement(ks,null),!S.length&&r?He.createElement(Ts,null,He.createElement(hk,{title:Mt.t("No results found"),description:Mt.t("Try using different keywords")})):e==="success"&&He.createElement(dn,{disabled:l},S.map(y=>{let{groupTitle:T,...v}=y;return He.createElement(He.Fragment,{key:y.id},He.createElement(gk,{style:{height:"61px"},...v,selected:!1,hasDivider:!0}))}))))}i(vs,"LiquiditySourcePage");import{i18n as Ck}from"@lingui/core";import Kr from"react";import{useNavigate as Tk}from"react-router-dom";function md(){let t=Tk(),e=tt(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=V(),{fetch:l,loading:p}=Vr({refetchQuote:n}),u=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${H.settings}`,g=`../${H.wallets}`;return Kr.createElement(de,{header:{onWallet:()=>{t(g),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:Ck.t("Routes"),suffix:Kr.createElement(to,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Kr.createElement(he,null,Kr.createElement(un,{fetch:l,loading:p,onClickOnQuote:u})))}i(md,"RoutesPage");import{i18n as Td}from"@lingui/core";import{Divider as kd,getCategoriesCount as Wk,SelectableCategoryList as Nk}from"@rango-dev/ui";import Lt,{useState as vd}from"react";import{i18n as xs}from"@lingui/core";import{Divider as Sd,Image as wk,ListItemButton as bk,NotFound as Ek,Typography as Cd}from"@rango-dev/ui";import rt,{useEffect as Ik,useState as Ak}from"react";var dd=i((t,e,o)=>t.filter(n=>En(n.type,o)).filter(n=>vt(n.name,e)||vt(n.displayName,e)),"filterBlockchains");import{ImageContainer as kk,styled as fd}from"@rango-dev/ui";var gd=fd("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Xr=fd(Ko,{padding:0,margin:0,listStyle:"none",[`& ${kk}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as vk,Skeleton as hd}from"@rango-dev/ui";import jr from"react";var xk=20;function yd(){return jr.createElement(Xr,null,Array.from(Array(xk),t=>jr.createElement(vk,{key:t,hasDivider:!0,start:jr.createElement(hd,{variant:"circular",width:35,height:35}),title:jr.createElement(hd,{variant:"text",size:"large",width:90})})))}i(yd,"LoadingBlockchainList");function ws(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=Ak(e),{fetchStatus:l}=h();Ik(()=>{s([...dd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?rt.createElement(rt.Fragment,null,rt.createElement(Sd,{size:32}),rt.createElement(Ek,{title:xs.t("No results found"),description:xs.t("Try using different keywords")})):rt.createElement(Xr,{as:"ul",key:`${r}-${o}`},a.map(u=>rt.createElement(bk,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:rt.createElement(wk,{src:u.logo,size:30}),title:rt.createElement(Cd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return rt.createElement(gd,null,rt.createElement(Cd,{variant:"label",size:"large"},xs.t("Select Blockchain")),rt.createElement(Sd,{size:4}),l==="loading"&&rt.createElement(yd,null),l==="success"&&p())}i(ws,"BlockchainList");function bs(t){let{type:e}=t,o=tt(),[n,r]=vd(""),[a,s]=vd("ALL"),l=V.use.setToBlockchain(),p=V.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),d=Wk(c)!==1;return Lt.createElement(de,{header:{title:Td.t("Select Blockchain")}},Lt.createElement(he,{view:!0},d&&Lt.createElement(Lt.Fragment,null,Lt.createElement(Nk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Lt.createElement(kd,{size:24})),Lt.createElement(Wt,{value:n,autoFocus:!0,placeholder:Td.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Lt.createElement(kd,{size:16}),Lt.createElement(ws,{list:c,searchedFor:n,blockchainCategory:a,onChange:m=>{e==="source"?p(m):l(m),o()}})))}i(bs,"SelectBlockchainPage");import{i18n as ei}from"@lingui/core";import{Divider as qd}from"@rango-dev/ui";import uo,{useState as Kk}from"react";import{useNavigate as Xk}from"react-router-dom";import{i18n as As}from"@lingui/core";import{BlockchainsChip as Yr,Divider as Ed,Image as Id,Skeleton as _k,Tooltip as Dk,Typography as Ws}from"@rango-dev/ui";import _e from"react";import{useEffect as Bk}from"react";var xd=["ETH","COSMOS","OSMOSIS"];function Es(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Mk),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(Lk(s)),r=n.splice(a)}return{list:n,more:r}}i(Es,"prepare");function Mk(t,e){let o=xd,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(Mk,"sortByMostUsedBlockchains");function Lk(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),a=t.findIndex(p=>p===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(Lk,"generateSortByPreferredBlockchainsFor");function wd(t,e){return!!e.list.find(o=>o.name===t)}i(wd,"isInVisibleList");function Is(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();Bk(()=>{if(e?.selected){let a=Es(t,o,e);wd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Es(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Is,"usePrepareBlockchainList");import{styled as Pk}from"@rango-dev/ui";var bd=Pk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var $k=12;function Ns(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Is(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=V.use.resetToBlockchain(),u=V.use.resetFromBlockchain(),c=s.more.length>0,g=s.more.length===1,d=!g&&c;return _e.createElement(_e.Fragment,null,_e.createElement(Ed,{size:12}),_e.createElement(Ws,{variant:"label",size:"large"},As.t("Select Blockchain")),_e.createElement(Ed,{size:12}),_e.createElement(bd,null,l==="loading"&&Array.from(Array($k),m=>_e.createElement(_k,{key:m,variant:"rounded",height:50})),l==="success"&&_e.createElement(_e.Fragment,null,_e.createElement(Yr,{selected:!n,onClick:()=>{o==="from"?u():p()}},_e.createElement(Ws,{variant:"body",size:"xsmall",color:"secondary500"},As.t("All"))),s.list.map(m=>_e.createElement(Dk,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:B()},_e.createElement(Yr,{key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},_e.createElement(Id,{src:m.logo,size:30})))),g?_e.createElement(Yr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},_e.createElement(Id,{src:s.more[0].logo,size:30})):null,d?_e.createElement(Yr,{onClick:a,key:"more-blockchains"},_e.createElement(Ws,{variant:"body",size:"xsmall",color:"secondary500"},As._("More +{count}",{count:s.more.length}))):null)))}i(Ns,"BlockchainsSection");import{i18n as Us}from"@lingui/core";import{darkTheme as Fd,Divider as Do,ExternalLinkIcon as Uk,Image as Qk,ListItemButton as zk,NotFound as qk,PinIcon as Hk,Skeleton as Od,Typography as Rr,VirtualizedList as Gk}from"@rango-dev/ui";import X,{useEffect as Ud,useState as Qd}from"react";import{Divider as Dd,ListItem as Ok,Skeleton as gn}from"@rango-dev/ui";import mt from"react";import{css as _o,darkTheme as Ad,ImageContainer as Fk,styled as it,Typography as Wd}from"@rango-dev/ui";var Ms=_o({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ls=_o({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Bs=_o({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Ps=_o({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Ad} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),_s=_o({}),Ds=_o(),Nd=it("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),$s=it("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Zr=it("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ls}`]:{[`& .${Ps}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${_s}`]:{bottom:"-15px"},[`& .${Ms}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Bs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Fs=it("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Os=it(Wd,{}),Md=it("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Ds}`]:{$$color:"$colors$neutral600",[`.${Ad} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Jr=it("div",{display:"flex",alignItems:"end",flexDirection:"column"}),sQ=it("div",{display:"flex",alignItems:"center"}),Ld=it("div",{position:"relative",[`& ${Fk}`]:{borderRadius:"$xm",overflow:"hidden"}}),Bd=it("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Pd=it(Wd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),_d=it("a",{"& svg:hover":{color:"$colors$info"}});function $d(t){return mt.createElement(Zr,null,Array.from(Array(t.size),e=>mt.createElement(Ok,{key:e,hasDivider:!0,start:mt.createElement(gn,{variant:"circular",width:35,height:35}),end:mt.createElement(Jr,null,mt.createElement(gn,{variant:"text",size:"large",width:70}),mt.createElement(Dd,{size:4}),mt.createElement(gn,{variant:"text",size:"medium",width:50})),title:mt.createElement("div",null,mt.createElement(gn,{variant:"text",size:"large",width:90}),mt.createElement(Dd,{size:4}),mt.createElement(gn,{variant:"text",size:"medium",width:90}))})))}i($d,"LoadingTokenList");var Qs=20,Vk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return X.createElement("div",{className:Ls()},o?X.createElement("div",{className:Ms()},o):X.createElement($s,{className:Bs()},X.createElement(Rr,{variant:"title",size:"xmedium"},r.symbol),X.createElement(Do,{direction:"horizontal",size:4}),X.createElement(Fs,{css:a},X.createElement(Os,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&X.createElement("div",{className:`${Ps()} ${!o&&_s()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",X.createElement(Do,{size:4,direction:"horizontal"}),X.createElement(_d,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},X.createElement(Uk,{size:12}))))},"renderDesc");function zd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Qd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=Qd(!0),{getBalanceFor:g,loading:d}=oe(),{isTokenPinned:m}=h(),f=i(()=>{s(e.slice(0,a.length+Qs))},"loadNextPage");Ud(()=>{c(e.length>a.length)},[a.length]),Ud(()=>{s(e.slice(0,Qs))},[e.length,r]);let C=i(()=>!a.length&&o?X.createElement(X.Fragment,null,X.createElement(Do,{size:32}),X.createElement(qk,{title:Us.t("No results found"),description:Us.t("Try using different keywords")})):X.createElement(Gk,{endReached:u?f:void 0,itemContent:S=>{let y=a[S],T=_n(g(y)),v=y.address||"",x=p.find(k=>k.name===y.blockchain),b=la(x.color,"main"),M={$$color:b.main150,[`.${Fd} &`]:{$$color:b.main750},backgroundColor:"$$color"},w={$$color:b.main750,[`.${Fd} &`]:{$$color:b.main150},color:"$$color"};return X.createElement("div",{style:{paddingRight:5}},X.createElement(zk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":S,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[S]),start:X.createElement(Ld,null,X.createElement(Qk,{src:y.image,size:30}),m(y,t.type)&&X.createElement(Bd,null,X.createElement(Hk,{size:12,color:"gray"}))),title:x?.type==="COSMOS"||y.name||!y.name&&!v?X.createElement($s,null,X.createElement(Rr,{variant:"title",size:"xmedium"},y.symbol),X.createElement(Do,{direction:"horizontal",size:4}),X.createElement(Fs,{css:M},X.createElement(Os,{variant:"body",size:"xsmall",css:w},y.blockchain))):void 0,description:x?.info&&v&&x.type!=="COSMOS"?Vk({address:v,token:a[S],customCssForTag:M,customCssForTagTitle:w,name:y.name,url:x.info.addressUrl.split("{wallet}").join(v)}):y.name||void 0,end:d?X.createElement(Jr,null,X.createElement(Od,{variant:"text",size:"large",width:70}),X.createElement(Do,{size:4}),X.createElement(Od,{variant:"text",size:"medium",width:50})):T&&X.createElement(Md,null,X.createElement(Pd,{variant:"title",size:"small"},T.amount),X.createElement("div",null),T.usdValue&&X.createElement(Rr,{variant:"body",className:Ds(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return X.createElement(Nd,null,X.createElement(Rr,{variant:"label",size:"large"},Us.t("Select Token")),X.createElement(Do,{size:4}),l==="loading"&&X.createElement($d,{size:Qs}),l==="success"&&X.createElement(Zr,{as:"ul"},C()))}i(zd,"TokenList");function zs(t){let{type:e}=t,o=Xk(),n=tt(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=V(),c=oe.use.getBalanceFor(),[g,d]=Kk(""),f=(e==="source"?r:a)?.name??"",C=h().blockchains({type:e}),S=h().tokens({type:e,blockchain:f,searchFor:g,getBalanceFor:c}),y=i(x=>{e==="source"?p(x):u(x)},"updateBlockchain"),T=i(x=>{e==="source"?s({token:x,meta:{blockchains:C,tokens:S}}):l({token:x,meta:{blockchains:C,tokens:S}})},"updateToken"),v={source:ei.t("Source"),destination:ei.t("Destination")};return uo.createElement(de,{header:{title:ei.t("Swap {type}",{type:v[e]})}},uo.createElement(he,null,uo.createElement(Ns,{blockchains:C,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(H.blockchains),onChange:x=>{y(x)}}),uo.createElement(qd,{size:24}),uo.createElement(Wt,{value:g,autoFocus:!0,placeholder:ei.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:x=>d(x.target.value)}),uo.createElement(qd,{size:16}),uo.createElement(zd,{list:S,selectedBlockchain:f,searchedFor:g,type:e,onChange:x=>{T(x);let b=C.find(M=>x.blockchain===M.name);b&&y(b),n()}})))}i(zs,"SelectSwapItemsPage");import{i18n as Vs}from"@lingui/core";import{Alert as Cv,Button as Tv,styled as kv}from"@rango-dev/ui";import mo from"react";import{useInRouterContext as vv,useSearchParams as xv}from"react-router-dom";import{i18n as jd}from"@lingui/core";import{Divider as Jk,InfoIcon as Rk,TextField as ev,Tooltip as tv,Typography as Yd}from"@rango-dev/ui";import dt from"react";import{Chip as jk,styled as hn,TextField as Yk}from"@rango-dev/ui";var Hd=hn("div",{paddingTop:"$5",padding:"$10 $5"}),Gd=hn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Yk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Vd=hn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ti=hn("div",{maxWidth:"280px",padding:"$10"}),Kd=hn(jk,{width:"61px",flexShrink:0});import{i18n as qs}from"@lingui/core";import{Typography as Zk}from"@rango-dev/ui";import yn from"react";function Xd(){return yn.createElement(ti,null,yn.createElement(Zk,{variant:"label",size:"medium",color:"neutral700"},qs.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),yn.createElement("br",null),yn.createElement("br",null),yn.createElement("b",null,qs.t("Warning")),":",qs.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(Xd,"SlippageTooltipContent");function Hs(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return dt.createElement(Hd,null,dt.createElement(Vd,null,dt.createElement(Yd,{variant:"title",size:"xmedium"},jd.t("Slippage tolerance per swap")),dt.createElement(Jk,{direction:"horizontal",size:4}),dt.createElement(tv,{container:B(),side:"top",sideOffset:4,content:dt.createElement(Xd,null)},dt.createElement(Rk,{color:"gray"}))),dt.createElement(Gd,null,tp.map((r,a)=>{let s=`slippage-${a}`;return dt.createElement(Kd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),dt.createElement(ev,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=ip&&s<=rp?n(s):n(null)},suffix:o&&dt.createElement(Yd,{variant:"body",size:"small"},"%"),placeholder:jd.t("Custom")})))}i(Hs,"Slippage");import{i18n as kt}from"@lingui/core";import{AutoThemeIcon as Zd,BridgesIcon as ov,ChevronRightIcon as Gs,DarkModeIcon as Jd,Divider as oi,ExchangeIcon as nv,InfinityIcon as rv,InfoIcon as iv,LanguageIcon as av,LightModeIcon as Rd,List as sv,ListItem as lv,ListItemButton as pv,Skeleton as cv,styled as uv,Switch as mv,Tabs as dv,Tooltip as fv,Typography as at}from"@rango-dev/ui";import U from"react";import{useNavigate as gv}from"react-router-dom";var hv=uv("div",{width:"202px",height:"$40"}),yv=[{id:"light",icon:U.createElement(Rd,{color:"black",size:24}),tooltip:U.createElement(at,{size:"xsmall",variant:"body"},kt.t("Light"))},{id:"dark",icon:U.createElement(Jd,{color:"black",size:24}),tooltip:U.createElement(at,{size:"xsmall",variant:"body"},kt.t("Dark"))},{id:"auto",icon:U.createElement(Zd,{color:"black",size:24}),tooltip:U.createElement(at,{size:"xsmall",variant:"body"},kt.t("Auto"))}],Sv=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return U.createElement(Zd,{...e});case"dark":return U.createElement(Jd,{...e});default:return U.createElement(Rd,{...e})}},"getThemeIcon");function ef(){let t=gv(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=qt(),s=a.find(Q=>Q.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),g=Re("theme",c),d=Re("liquiditySource",c),m=Re("language",c),f=h().infiniteApprove,C=h().toggleInfiniteApprove,S=Un(p,u),y=S.filter(Q=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(Q.type)),T=y.length,v=y.filter(Q=>Q.selected).length,x=S.filter(Q=>Q.type==="DEX"),b=x.length,M=x.filter(Q=>Q.selected).length,w=i((Q,te)=>{switch(l){case"loading":return U.createElement(cv,{variant:"text",size:"medium",width:50});case"failed":return U.createElement(at,{variant:"body",size:"medium",color:"$error500"},kt.t("Loading failed"));default:return U.createElement(at,{variant:"body",size:"medium"},`${Q} / ${te}`)}},"handleSwapperEndItem"),k={id:"bridge-item",title:U.createElement(at,{variant:"title",size:"xmedium"},kt.t("Bridges")),end:U.createElement(U.Fragment,null,w(v,T),U.createElement(oi,{direction:"horizontal",size:8}),U.createElement(Gs,{color:"black"})),onClick:()=>t(H.bridges),start:U.createElement(ov,{color:"gray",size:16})},E={id:"exchange-item",title:U.createElement(at,{variant:"title",size:"xmedium"},kt.t("Exchanges")),end:U.createElement(U.Fragment,null,w(M,b),U.createElement(oi,{direction:"horizontal",size:8}),U.createElement(Gs,{color:"black"})),start:U.createElement(nv,{color:"gray",size:16}),onClick:()=>t(H.exchanges)},A={id:"language-item",title:U.createElement(at,{variant:"title",size:"xmedium"},kt.t("Language")),start:U.createElement(av,{color:"gray",size:16}),end:U.createElement(U.Fragment,null,U.createElement(at,{variant:"body",size:"medium"},s),U.createElement(oi,{direction:"horizontal",size:8}),U.createElement(Gs,{color:"black"})),onClick:()=>t(H.languages)},L={id:"infinite-approval-item",title:U.createElement(U.Fragment,null,U.createElement(at,{variant:"title",size:"xmedium"},kt.t("Infinite approval")),U.createElement(oi,{direction:"horizontal",size:4}),U.createElement(fv,{side:"top",sideOffset:4,container:B(),content:U.createElement(ti,null,U.createElement(at,{variant:"label",size:"medium",color:"neutral700"},kt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},U.createElement(iv,{color:"gray"}))),start:U.createElement(rv,{color:"gray",size:16}),end:U.createElement(mv,{checked:f}),onClick:C},q={id:"theme-item",type:U.createElement(lv,null),title:U.createElement(at,{variant:"title",size:"xmedium"},kt.t("Theme")),end:U.createElement(hv,null,U.createElement(dv,{container:B(),items:yv,value:n,onChange:Q=>o(Q.id),type:"primary",borderRadius:"small"})),start:Sv(n)},I=d?[]:[k,E];return m||I.push(A),I.push(L),!e?.singleTheme&&!g&&I.push(q),U.createElement(sv,{type:U.createElement(pv,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(ef,"SettingsLists");var wv=kv("div",{paddingLeft:"$8"});function tf(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=xv(),r=vv(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return mo.createElement(de,{header:{title:Vs.t("Settings")}},mo.createElement(he,null,o&&mo.createElement(Cv,{type:"info",variant:"alarm",title:Vs.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:mo.createElement(wv,null,mo.createElement(Tv,{type:"secondary",size:"small",onClick:a},Vs.t("Reset")))}),mo.createElement(Hs,null),mo.createElement(ef,null)))}i(tf,"SettingsPage");import{i18n as px}from"@lingui/core";import{cancelSwap as cx}from"@rango-dev/queue-manager-rango-preset";import{useManager as ux}from"@rango-dev/queue-manager-react";import{Alert as mx}from"@rango-dev/ui";import pl from"react";import{useParams as dx}from"react-router-dom";import{i18n as Ze}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Hv,getCurrentStep as Gv,getRelatedWalletOrNull as Vv}from"@rango-dev/queue-manager-rango-preset";import{Button as Pf,CopyIcon as Kv,Divider as Xv,DoneIcon as jv,IconButton as Yv,QuoteCost as Zv,RangoExplorerIcon as Jv,StepDetails as Rv,Tooltip as _f,Typography as go,useCopyToClipboard as ex}from"@rango-dev/ui";import{useWallets as tx}from"@rango-dev/wallets-react";import Df from"bignumber.js";import{PendingSwapNetworkStatus as mi}from"rango-types";import Z,{useEffect as $f,useRef as ox,useState as Ff}from"react";import{useNavigate as nx}from"react-router-dom";import{i18n as Ht}from"@lingui/core";var bv=[Ht.t("Sunday"),Ht.t("Monday"),Ht.t("Tuesday"),Ht.t("Wednesday"),Ht.t("Thursday"),Ht.t("Friday"),Ht.t("Saturday")];function of(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Ht.t("Today"):`${bv[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(of,"timeSince");function nf(t){return t.finishTime?of(parseInt(t.finishTime)):of(parseInt(t.creationTime))}i(nf,"getSwapDate");import{PendingSwapNetworkStatus as ai}from"rango-types";import si from"react";import{i18n as ni}from"@lingui/core";import{Button as rf,Divider as Ks,MessageBox as Ev}from"@rango-dev/ui";import Gt from"react";var af=i(({onCancel:t,onClose:e})=>Gt.createElement(Gt.Fragment,null,Gt.createElement(Ks,{size:20}),Gt.createElement(Ev,{type:"error",title:ni.t("Cancel Swap"),description:ni.t("Are you sure you want to cancel this swap?")}),Gt.createElement(Ks,{size:32}),Gt.createElement(rf,{variant:"contained",type:"primary",size:"large",onClick:t},ni.t("Yes, Cancel it")),Gt.createElement(Ks,{size:12}),Gt.createElement(rf,{variant:"outlined",type:"primary",size:"large",onClick:e},ni.t("No, Continue"))),"CancelContent");import{i18n as ri}from"@lingui/core";import{Button as sf,Divider as Xs,MessageBox as Iv,Typography as Av}from"@rango-dev/ui";import Bt from"react";var lf=i(({onDelete:t,onClose:e})=>Bt.createElement(Bt.Fragment,null,Bt.createElement(Xs,{size:20}),Bt.createElement(Iv,{type:"error",title:ri.t("Delete Transaction"),description:ri.t("Are you sure you want to delete this swap?")}),Bt.createElement(Xs,{size:32}),Bt.createElement(sf,{variant:"contained",type:"primary",size:"large",onClick:t},ri.t("Yes, Delete it")),Bt.createElement(Xs,{size:12}),Bt.createElement(sf,{variant:"outlined",type:"primary",size:"large",onClick:e},Bt.createElement(Av,{variant:"title",size:"medium",color:"primary"},ri.t("No, Cancel")))),"DeleteContent");import{i18n as js}from"@lingui/core";import{PendingSwapNetworkStatus as Ys}from"rango-types";var Zs={[Ys.WaitingForNetworkChange]:{type:"loading",title:js.t("Change Network")},[Ys.WaitingForConnectingWallet]:{type:"warning",title:js.t("Connect Wallet")},[Ys.NetworkChanged]:{type:"success",title:js.t("Network Changed")}};import{debug as ii}from"@rango-dev/logging-core";import{MessageBox as Wv,Wallet as Nv}from"@rango-dev/ui";import{useWallets as Mv}from"@rango-dev/wallets-react";import fo,{useState as uf}from"react";import{styled as pf}from"@rango-dev/ui";var cf=pf("div",{display:"flex",justifyContent:"center"}),jz=pf("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var mf=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Mv(),[c,g]=uf(null),[d,m]=uf(null),f=n?.walletType,C=f?Wi(u(f)):null,S=f?p(f):null,y=a&&!!f&&!!C&&!!S,T=i(()=>{c&&g({...c,open:!1})},"handleCloseNamespaceModal"),v=i(()=>{d&&m({...d,open:!1})},"handleCloseDerivationPathModal"),x=i(()=>{f&&S&&(S.namespaces?.length?S.namespaces.length>1?g({open:!0,providerType:f,providerImage:S.img,availableNamespaces:S.namespaces,singleNamespace:S.singleNamespace}):S.needsDerivationPath?m({open:!0,providerType:f,providerImage:S.img,namespace:S.namespaces[0]}):l(f).catch(w=>ii(w)):l(f).catch(w=>ii(w)))},"handleWalletItemClick"),b=i(w=>{S?.needsDerivationPath&&S?.singleNamespace&&w[0]&&f?m({open:!0,providerType:f,providerImage:S.img,namespace:w[0]}):l(c?.providerType,void 0,w.map(k=>({namespace:k}))).catch(k=>ii(k)),T()},"handleConfirmNamespaces"),M=i(w=>{w&&d?.namespace&&l(d?.providerType,void 0,[{namespace:d.namespace,derivationPath:w}]).catch(k=>ii(k)),v()},"handleDerivationPathConfirm");return fo.createElement(fo.Fragment,null,fo.createElement(Wv,{type:e,title:o,description:r}),y&&fo.createElement(cf,null,fo.createElement(Nv,{container:B(),title:S.name,image:S.img,type:f,state:C,link:S.installLink,disabled:s,onClick:x})),fo.createElement(ro,{open:!!c?.open,onClose:T,onConfirm:b,image:c?.providerImage,availableNamespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}),fo.createElement(oo,{open:!!d?.open,selectedNamespace:d?.namespace,type:d?.providerType,image:d?.providerImage,onClose:v,onConfirm:M}))},"WalletStateContent");function Js(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ai.WaitingForNetworkChange||e===ai.WaitingForConnectingWallet||e===ai.NetworkChanged;return si.createElement(re,{open:!!e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},p&&si.createElement(mf,{type:Zs[e].type,title:Zs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ai.WaitingForNetworkChange}),e==="delete"&&si.createElement(lf,{onClose:o,onDelete:n}),e==="cancel"&&si.createElement(af,{onClose:o,onCancel:r}))}i(Js,"SwapDetailsModal");import{i18n as Sn}from"@lingui/core";import{Button as Rs,Divider as li,MessageBox as df,TokenAmount as Lv,Typography as el}from"@rango-dev/ui";import Fe from"react";import{useNavigate as Bv}from"react-router-dom";function tl(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:g,diagnosisUrl:d}=t,m=Bv();return Fe.createElement(re,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},n==="success"?Fe.createElement(df,{type:"success",title:Sn.t("Swap Successful")},Fe.createElement(Lv,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Fe.createElement(li,{size:12}),Fe.createElement(el,{variant:"body",size:"medium",color:"neutral700",align:"center"},g)):Fe.createElement(df,{type:"error",title:Sn.t("Transaction Failed"),description:g}),Fe.createElement(li,{size:32}),n==="success"&&Fe.createElement(Rs,{variant:"contained",type:"primary",size:"large",onClick:()=>{m("../../")}},Fe.createElement(el,{variant:"title",size:"medium",color:"neutral100"},Sn.t("Done"))),Fe.createElement(li,{size:12}),d&&Fe.createElement(Fe.Fragment,null,Fe.createElement(Rs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},Sn.t("Diagnosis")),Fe.createElement(li,{size:12})),Fe.createElement(Rs,{variant:"outlined",type:"primary",size:"large",onClick:o},Fe.createElement(el,{variant:"title",size:"medium",color:"primary"},Sn.t("See Details"))))}i(tl,"SwapDetailsCompleteModal");import qv from"react";import{i18n as Ov}from"@lingui/core";import{Alert as Nf,IconButton as Uv,LinkIcon as Qv}from"@rango-dev/ui";import Vt,{Fragment as zv}from"react";import{Alert as _v,ChevronDownIcon as Dv,IconButton as $v}from"@rango-dev/ui";import Fo,{useState as Fv}from"react";import{css as Cn,darkTheme as ff,styled as Pt,Typography as Pv}from"@rango-dev/ui";var gf=Pt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),pi=Pt("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${ff} &`]:{color:"$secondary500"}}}}}),hf=Pt(Ko,{padding:"$0 $20 $20 $20"}),Lq=Pt("div",{display:"flex",flexDirection:"column",gap:"$10"}),yf=Pt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),Bq=Pt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),$o=Cn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${ff} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Sf=Cn({padding:"$5 0"}),ci=Cn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Cf=Cn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Tf=Cn({width:"100%",padding:"0 $20 $10"}),kf=Pt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),vf=Pt("div",{display:"flex",flexDirection:"column",gap:"$5"}),ui=Pt(Pv,{wordBreak:"break-word"});import{styled as ol}from"@rango-dev/ui";var xf=ol("div",{display:"flex",flexDirection:"column",gap:"$10"}),wf=ol("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),bf=ol("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Ef(t){let{message:e}=t,[o,n]=Fv(!1);return Fo.createElement(_v,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Fo.createElement($v,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Fo.createElement(wf,{rotated:o},Fo.createElement(Dv,{size:12,color:"gray"}))),footer:Fo.createElement(bf,{open:o},Fo.createElement(ui,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Ef,"FailedAlert");import{i18n as If}from"@lingui/core";import{Alert as nl,Button as Af}from"@rango-dev/ui";import{PendingSwapNetworkStatus as rl}from"rango-types";import Tn from"react";function Wf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Tn.createElement(nl,{type:"warning",title:n.shortMessage,action:Tn.createElement(Af,{size:"xxsmall",type:"warning",onClick:()=>{o(rl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},If.t("Change"))}):r===rl.WaitingForConnectingWallet?Tn.createElement(nl,{type:"warning",title:n.shortMessage,action:Tn.createElement(Af,{size:"xxsmall",type:"warning",onClick:()=>{o(rl.WaitingForConnectingWallet)}},If.t("Connect"))}):Tn.createElement(nl,{type:"warning",title:n.shortMessage})}i(Wf,"WarningAlert");function il(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Vo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Vt.createElement(xf,null,a.explorerUrl?.map((g,d,m)=>{let f=d+g.url,C=d===m.length-1,S=(C&&u||p)&&!c,y=C&&a.status==="failed";return Vt.createElement(zv,{key:f},Vt.createElement(Nf,{type:C&&(S&&"loading"||y&&"error")||"success",title:g.description?`${g.description} Tx`:Ov.t("View transaction"),action:g.url&&Vt.createElement(Uv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(g.url,"_blank")},Vt.createElement(Qv,{size:12}))}))}),c&&Vt.createElement(Nf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Vt.createElement(Wf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Vt.createElement(Ef,{message:r}))}i(il,"SwapDetailsAlerts");var Mf=2e3;var Lf=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Je(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Je(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Qo(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Je(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Je(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Qo(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:qv.createElement(il,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Bf(t){if(Vo(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(Bf,"getStepState");function al(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=tx(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),g=V.use.retry(),d=le.use.isActiveTab(),m=nx(),[f,C]=ex(Mf),S=ox(null),[y,T]=Ff(null),[v,x]=Ff(null),b=i(()=>{r(),T(null)},"onCancel"),M=Ee.use.getNotifications(),w=Ee.use.removeNotification(),k=M(),E=Gv(e),A=E?.networkStatus;$f(()=>{k.find(be=>be.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(x(e.status),w(e.requestId)):v&&x(null))},[e.status,e.requestId]),$f(()=>{D?T(mi.WaitingForNetworkChange):A===mi.WaitingForConnectingWallet||A===mi.NetworkChanged?T(A):T(null)},[A]);let L=Lp(e),q=E?Hv(e,E):null,I=E?Vv(e,E):null,Q=nf(e),te=Bp(e),P=i(se=>!!l(se)?.mobileWallet,"isMobileWallet"),D=A===mi.WaitingForNetworkChange&&!!q&&!!I?.walletType&&(P(I.walletType)||a(I.walletType,q)),j=D?s.bind(null,I.walletType,q):void 0,ye=Mp(e,E),Y=Lf({swap:e,switchNetwork:j,showNetworkModal:A,setNetworkModal:T,message:ye,blockchains:p,swappers:u}),ie=Y.length,[ge,Ce]=[e.steps[0],e.steps[ie-1]],$=Ce.outputAmount||Ce.expectedOutputAmountHumanReadable,W=e.steps.reduce((se,be)=>se+parseFloat(be.feeInUsd||""),0),pe=e.steps.find(se=>se.diagnosisUrl)?.diagnosisUrl,ce=N(parseFloat(N($,6,6))*(Ce.toUsdPrice||0),4,4),De=N(parseFloat(e.inputAmount)*(ge.fromUsdPrice||0),4,4),_=$?new Df($).multipliedBy(Ce.toUsdPrice||0).toString():"",z=new Df(e.inputAmount).multipliedBy(ge.fromUsdPrice||0).toString(),K=et(De,ce),ae=ye.detailedMessage.content||ye.shortMessage,ee=e.status==="success"?Ze.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N($,6,6),token:Y[ie-1].to.token.displayName,conciseAddress:Dn(e.wallets[Y[ie-1].to.chain.displayName]?.address||""),chain:Y[ie-1].to.chain.displayName}}):Z.createElement(vf,null,Z.createElement(go,{variant:"body",size:"medium",color:"neutral700",align:"center"},ae?"":Ze.t("Transaction was not sent."),L?`${Ze.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:L.outputAmount,symbol:L.symbol,blockchain:L.blockchain}})}`:""),ae&&Z.createElement(ui,{align:"center",variant:"body",size:"medium",color:"neutral700"},Z.createElement("b",null,"Reason:")," ",ae));return Z.createElement(de,{header:{title:Ze.t("Swap Details"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(bo,null,Z.createElement(Pf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},Z.createElement(go,{size:"medium",variant:"label",color:"error"},Ze.t("Delete"))))},footer:te&&!v&&Z.createElement(Pf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let se=Jn(e,p,c);g(se),setTimeout(()=>{m("../../")},0)}},Ze.t("Try again"))},Z.createElement(he,{compact:!0,view:!0},Z.createElement(pi,null,Z.createElement("div",{className:$o()},Z.createElement(go,{variant:"label",size:"large",color:"neutral700"},`${Ze.t("Request ID")}:`),Z.createElement("div",{className:ci()},Z.createElement(go,{variant:"label",size:"small",color:"neutral700"},o),Z.createElement(_f,{container:B(),content:f?Ze.t("Copied To Clipboard"):Ze.t("Copy Request ID"),open:f||void 0,side:"bottom",alignOffset:-16,align:"end"},Z.createElement(Yv,{variant:"ghost",onClick:C.bind(null,o||"")},f?Z.createElement(jv,{size:16,color:"secondary"}):Z.createElement(Kv,{size:16,color:"gray"}))),Z.createElement(kf,{target:"_blank",href:`${yl}/swap/${o}`},Z.createElement(_f,{container:B(),content:Ze.t("View on Rango Explorer"),side:"bottom"},Z.createElement(Jv,{size:20}))))),Z.createElement("div",{className:$o()},Z.createElement(go,{variant:"label",size:"large",color:"neutral700"},e.finishTime?Ze.t("Finished at"):Ze.t("Created at")),Z.createElement(go,{variant:"label",size:"small",color:"neutral700"},Q))),Z.createElement("div",{className:Cf()},Z.createElement(Zv,{fee:N(String(W),2,2),time:zo(Wn(e.steps)),steps:ie}),Z.createElement(en,{from:{price:{value:N(e.inputAmount,6,6),usdValue:De,realUsdValue:z,realValue:e.inputAmount},token:{displayName:Y[0].from.token.displayName,image:Y[0].from.token.image},chain:{image:Y[0].from.chain.image,displayName:Y[0].from.chain.displayName}},to:{price:{value:N($,6,6),usdValue:ce,realUsdValue:_,realValue:$||""},token:{displayName:Y[ie-1].to.token.displayName,image:Y[ie-1].to.token.image},chain:{image:Y[ie-1].to.chain.image,displayName:Y[ie-1].to.chain.displayName}},percentageChange:N(K,2,2),warningLevel:wt(K??0)})),Z.createElement("div",{className:Tf()},Z.createElement(go,{variant:"title",size:"small"},Ze.t("Swaps steps"))),Z.createElement(Xv,{size:8}),Z.createElement(hf,{ref:S},Y.map((se,be)=>{let xn=be,Oo=Bf(e.steps[be]),sg=Oo==="error"||Oo==="in-progress"||Oo==="warning"||Oo==="completed"&&be===Y.length-1;return Z.createElement(Rv,{key:xn,step:se,type:"swap-progress",ref:S,state:Oo,hasSeparator:be!==0,tabIndex:xn,isFocused:sg,tooltipContainer:B()})}))),Z.createElement(Js,{state:y,onClose:()=>T(null),onCancel:b,onDelete:n,message:ye.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!d}),Z.createElement(tl,{open:!!v,diagnosisUrl:pe,onClose:()=>x(null),status:e.status==="success"?"success":"failed",priceValue:N($,6,6),usdValue:ce,realUsdValue:_,realValue:$||"",percentageChange:N(K,2,2),token:{displayName:Y[ie-1].to.token.displayName,image:Y[ie-1].to.token.image},chain:{image:Y[ie-1].to.chain.image},description:ee}))}i(al,"SwapDetails");import{i18n as fi}from"@lingui/core";import{Divider as Qf,NotFound as lx,Skeleton as vn,Typography as gi}from"@rango-dev/ui";import ve from"react";import{i18n as rx}from"@lingui/core";import{Divider as ix,Skeleton as ax,Typography as sx}from"@rango-dev/ui";import we from"react";import{css as ft,styled as sl}from"@rango-dev/ui";var Of=sl("div",{width:"100%",height:"100%",padding:"$10 $20"}),kn=sl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),di=sl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),GH=ft({display:"flex",justifyContent:"space-between",alignItems:"center"}),VH=ft({display:"flex",justifyContent:"space-between",alignItems:"center"}),KH=ft({paddingTop:"$15",display:"flex"}),XH=ft({padding:"$15 $0"}),jH=ft({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),YH=ft({paddingBottom:"$10"}),ZH=ft({display:"flex",justifyContent:"start",alignItems:"center"}),JH=ft({paddingTop:"$5",display:"flex",alignItems:"center"}),RH=ft({display:"flex",alignItems:"center"}),eG=ft({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Uf=ft({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function ll(){return we.createElement(Of,null,we.createElement(nn,{type:"swap-preview"}),we.createElement("div",{className:"swaps-steps"},we.createElement(sx,{variant:"title",size:"small"},rx.t("Swaps steps"))),we.createElement(we.Fragment,null,we.createElement(kn,null,we.createElement(Ct,{separator:!1}),we.createElement("div",{className:Uf()},we.createElement(ix,{direction:"horizontal",size:20}),we.createElement(ax,{height:22,variant:"rectangular"}))),we.createElement(di,null),we.createElement(kn,null,we.createElement(Ct,{separator:!1})),we.createElement(di,null),we.createElement(kn,null,we.createElement(Ct,{separator:!1})),we.createElement(di,null),we.createElement(kn,null,we.createElement(Ct,{separator:!1}))))}i(ll,"LoadingSwapDetails");function zf(t){let{requestId:e,showSkeleton:o}=t;return ve.createElement(de,{header:{title:fi.t("Swap Details"),suffix:ve.createElement(bo,null)}},o&&ve.createElement(gf,null,ve.createElement(pi,null,ve.createElement("div",{className:$o()},ve.createElement(gi,{variant:"label",size:"large",color:"neutral700"},`${fi.t("Request ID")}:`),ve.createElement("div",{className:ci()},ve.createElement(gi,{variant:"label",size:"small",color:"neutral700"},ve.createElement(vn,{width:60,height:10,variant:"rounded"})),ve.createElement(Qf,{direction:"horizontal",size:4}),ve.createElement(vn,{width:16,height:16,variant:"rectangular"}),ve.createElement(Qf,{direction:"horizontal",size:4}),ve.createElement(vn,{width:16,height:16,variant:"rectangular"}))),ve.createElement("div",{className:$o()},ve.createElement(gi,{className:Sf(),variant:"label",size:"large",color:"neutral700"},ve.createElement(vn,{width:60,height:10,variant:"rounded"})),ve.createElement(gi,{variant:"label",size:"small",color:"neutral700"},ve.createElement(vn,{width:60,height:10,variant:"rounded"})))),ve.createElement(ll,null)),!o&&ve.createElement(yf,null,ve.createElement(lx,{title:fi.t("Not found"),description:fi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(zf,"SwapDetailsPlaceholder");function qf(){let{manager:t,state:e}=ux(),o=!e.loadedFromPersistor,n=ot(t),{requestId:r}=dx(),a=tt(),{fetchStatus:s}=h();if(!r)return pl.createElement(mx,{containerStyles:{margin:"20px"},type:"error",title:px.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:d})=>d.requestId===r):void 0,u=i(()=>{if(p?.id){let d=t?.get(p.id);d&&cx(d)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(d){console.log(d)}},"onDelete"),g=p?.swap;return!g||l?pl.createElement(zf,{requestId:r,showSkeleton:l}):pl.createElement(al,{swap:g,requestId:r,onCancel:u,onDelete:c})}i(qf,"SwapDetailsPage");function Hf(){return qp(),Ri(),fx([{path:H.home,element:Ke.createElement(sd,null)},{path:H.routes,element:Ke.createElement(md,null)},{path:H.fromSwap,children:[{index:!0,element:Ke.createElement(zs,{type:"source"})},{path:H.blockchains,element:Ke.createElement(bs,{type:"source"})}]},{path:H.toSwap,children:[{index:!0,element:Ke.createElement(zs,{type:"destination"})},{path:H.blockchains,element:Ke.createElement(bs,{type:"destination"})}]},{path:H.settings,children:[{index:!0,element:Ke.createElement(tf,null)},{path:H.languages,element:Ke.createElement(pd,null)},{path:H.exchanges,element:Ke.createElement(vs,{sourceType:"Exchanges"})},{path:H.bridges,element:Ke.createElement(vs,{sourceType:"Bridges"})}]},{path:H.swaps,children:[{index:!0,element:Ke.createElement(Om,null)},{path:H.swapDetails,element:Ke.createElement(qf,null)}]},{path:H.wallets,element:Ke.createElement(Yc,null)},{path:H.confirmSwap,element:Ke.createElement(Im,null)}])}i(Hf,"AppRoutes");import{useQueueManager as xx}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as wx}from"@rango-dev/wallets-shared";import{isEvmBlockchain as bx}from"rango-sdk";import{useContext as Ex,useEffect as Zf,useState as Jf}from"react";import{globalCss as gx}from"@rango-dev/ui";var Gf=i(()=>gx({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function Vf(){let{setWatermark:t}=le();return{fetchApiConfig:i(async()=>{let o=await fetch(`${xt("BASE_URL")}/meta/dapp/config?apiKey=${xt("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i(Vf,"useFetchApiConfig");import{useWallets as hx}from"@rango-dev/wallets-react";import{useEffect as yx,useRef as Sx}from"react";function Kf(){let{connect:t,state:e}=hx(),o=Sx({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);yx(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Kf,"useForceAutoConnect");import{isApprovalTX as Cx,RouteEventType as Xf,StepEventType as jf,StepExecutionEventStatus as Tx,WidgetEvents as hi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Yf}from"react";function cl(){let t=oe.use.connectedWallets(),e=oe.use.getWalletsDetails(),o=Ee.use.setNotification(),{findToken:n}=h();Yf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===jf.TX_EXECUTION&&s.status===Tx.TX_SENT&&!Cx(l)||s.type===jf.SUCCEEDED){let c=t.find(d=>d.chain===l?.fromBlockchain),g=l?.fromBlockchain!==l?.toBlockchain&&t.find(d=>d.chain===l?.toBlockchain);c&&e([c],n),g&&e([g],n)}o(s,p)},"handleStepEvent");return Te.on(hi.StepEvent,r),()=>Te.off(hi.StepEvent,r)},[Te,t]),Yf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Xf.FAILED||s.type===Xf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return Te.on(hi.RouteEvent,r),()=>Te.off(hi.RouteEvent,r)},[Te])}i(cl,"useSubscribeToWidgetEvents");import{useManager as kx}from"@rango-dev/queue-manager-react";import{useEffect as vx}from"react";function ul(){let{isSynced:t,syncNotifications:e}=Ee(),{manager:o,state:n}=kx();vx(()=>{Ee.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(ot(o))},[Ee.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ul,"useSyncNotifications");function ml(){Kf(),Gf(),cl(),ul();let t=h().blockchains(),{canSwitchNetworkTo:e}=Tr(),[o,n]=Jf(""),[r,a]=Jf(),s=Ex(zn),l=t.filter(bx),{fetchApiConfig:p}=Vf();Zf(()=>()=>zp(),[]),xx({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Zf(()=>(jt.init(),Ee.persist.hasHydrated()||Ee.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===wx(o)?.[0]&&n("")}),p().catch(console.log),jt.destroy),[])}i(ml,"useBootstrap");import{styled as Ix}from"@rango-dev/ui";var Rf=Ix("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function yi(){ml();let{config:t}=h(),{activeTheme:e}=pr(t?.theme||{}),{activeLanguage:o}=qt();return dl.createElement(Ax,{language:o},dl.createElement(Rf,{id:"swap-container",className:e()},dl.createElement(Hf,null)))}i(yi,"Main");import{setSolanaSignerConfig as Xx}from"@rango-dev/signer-solana";import gl,{useEffect as rg,useMemo as jx}from"react";import{useState as Wx}from"react";var Nx=i(()=>{let[t,e]=Wx(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Il(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),eg=Nx;import{checkWaitingForNetworkChange as Mx,makeQueueDefinition as Lx}from"@rango-dev/queue-manager-rango-preset";import{Provider as Bx}from"@rango-dev/queue-manager-react";import{useWallets as Px}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as _x}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Dx}from"rango-types";import $x,{useMemo as Fx}from"react";function Ox(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=Px(),l=Fx(()=>Lx({API_KEY:t.apiKey||xt("API_KEY"),BASE_URL:xt("BASE_URL"),emitter:{emit:Te.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:oe.use.connectedWallets().map(v=>({accounts:[v],name:v.chain}))},g=i(async(v,x)=>{if(a(v,x))return r(v,x)},"switchNetwork"),d=i(v=>!!s(v).mobileWallet,"isMobileWallet"),m=p.filter(v=>v.enabled).reduce((v,x)=>(v[x.name]=x,v),{}),f=p.filter(Dx),C=i(v=>{let{supportedChains:x}=s(v);return Ln(x)},"getSupportedChainNames"),S=e(),y={meta:{blockchains:m,evmBasedChains:f,evmNetworkChainInfo:_x(f),getSupportedChainNames:C},getSigners:o,wallets:c,providers:S,switchNetwork:g,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},T=le.use.isActiveTab();return $x.createElement(Bx,{queuesDefs:[l],context:y,onPersistedDataLoaded:v=>{Mx(v)},isPaused:!T},t.children)}i(Ox,"QueueManager");var tg=Ox;import{useManager as Hx}from"@rango-dev/queue-manager-react";import Gx,{createContext as Vx,useContext as Kx}from"react";import{cancelSwap as Ux,getCurrentBlockchainOfOrNull as Qx,getCurrentStep as zx,getRelatedWalletOrNull as qx}from"@rango-dev/queue-manager-rango-preset";var Si=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return ot(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Jn(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&Ux(o)}getCurrentStepInfo(e){let o=zx(e);return{step:o,wallet:o?qx(e,o):null,network:o?Qx(e,o):null}}};var og=Vx(void 0);function fl(t){let{manager:e}=Hx(),o=le.use.isActiveTab(),n=V.use.retry(),{findToken:r}=h(),a=new Si(e,{retrySwap:n,findToken:r}),s=oe.use.connectedWallets(),l=oe.use.loading(),p=_l(s),u=oe.use.getWalletsDetails(),c=h().blockchains(),g=h().tokens(),d=h().swappers(),m=h().fetchStatus,f=qt().resetLanguage,C=Ee().getNotifications(),S=Ee().clearNotifications,y={isActiveTab:o,setCurrentTabAsActive:jt.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:T=>u(T,r)},meta:{blockchains:c,tokens:g,swappers:d,loadingStatus:m,findToken:r},resetLanguage:f,notifications:{list:C,clearAll:S}};return Gx.createElement(og.Provider,{value:y},t.children)}i(fl,"WidgetInfo");function ng(){let t=Kx(og);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(ng,"useWidget");function Ci(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=eg();return rg(()=>{n&&r(n)},[n]),jx(()=>{ql({API_KEY:o?.apiKey||wn,BASE_URL:o?.apiUrl||hl})},[o.apiKey,o.apiUrl]),rg(()=>{t.config?.signers?.customSolanaRPC&&Xx("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),gl.createElement(qn,{config:o,onUpdateState:e},gl.createElement(tg,{apiKey:o.apiKey},gl.createElement(fl,null,t.children)))}i(Ci,"WidgetProvider");function ig(t){let e=t.config?.externalWallets;return Ti.createElement(fp,null,e?Ti.createElement(yi,null):Ti.createElement(Ci,{config:t.config??Oi},Ti.createElement(yi,null)))}i(ig,"Widget");function ag(){let{on:t,off:e}=Te;return{on:t,off:e}}i(ag,"useWidgetEvents");export{y5 as EventSeverity,yo as MainEvents,E5 as Networks,W5 as PendingSwapNetworkStatus,Pi as QuoteEventTypes,S5 as RouteEventType,ki as SUPPORTED_FONTS,C5 as StepEventType,T5 as StepExecutionBlockedEventStatus,k5 as StepExecutionEventStatus,Se as UI_ID,Di as UiEventTypes,_i as WalletEventTypes,w5 as WalletEvents,I5 as WalletTypes,ig as Widget,yo as WidgetEvents,Ci as WidgetProvider,qn as WidgetWallets,ma as customizedThemeTokens,x5 as readAccountAddress,Jt as useWalletList,Tr as useWallets,ng as useWidget,ag as useWidgetEvents,ug as widgetEventEmitter};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|