@rango-dev/widget-embedded 0.32.1 → 0.32.2-next.0
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/CHANGELOG.md +4 -0
- package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
- package/dist/components/Slippage/Slippage.d.ts.map +1 -1
- package/dist/components/StatefulConnectModal/StatefulConnectModal.d.ts +11 -0
- package/dist/components/StatefulConnectModal/StatefulConnectModal.d.ts.map +1 -0
- package/dist/components/StatefulConnectModal/helpers.d.ts +10 -0
- package/dist/components/StatefulConnectModal/helpers.d.ts.map +1 -0
- package/dist/components/StatefulConnectModal/index.d.ts +2 -0
- package/dist/components/StatefulConnectModal/index.d.ts.map +1 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts.map +1 -1
- package/dist/components/WalletStatefulConnect/ConnectStatus.d.ts +4 -0
- package/dist/components/WalletStatefulConnect/ConnectStatus.d.ts.map +1 -0
- package/dist/components/{WalletModal/WalletModalContent.styles.d.ts → WalletStatefulConnect/ConnectStatus.styles.d.ts} +1 -1
- package/dist/components/{WalletModal/WalletModalContent.styles.d.ts.map → WalletStatefulConnect/ConnectStatus.styles.d.ts.map} +1 -1
- package/dist/components/WalletStatefulConnect/ConnectStatus.types.d.ts +8 -0
- package/dist/components/WalletStatefulConnect/ConnectStatus.types.d.ts.map +1 -0
- package/dist/components/WalletStatefulConnect/DerivationPath.d.ts +4 -0
- package/dist/components/WalletStatefulConnect/DerivationPath.d.ts.map +1 -0
- package/dist/components/WalletStatefulConnect/DerivationPath.helpers.d.ts +4 -0
- package/dist/components/WalletStatefulConnect/DerivationPath.helpers.d.ts.map +1 -0
- package/dist/components/{WalletDerivationPathModal/WalletDerivationPathModal.styles.d.ts → WalletStatefulConnect/DerivationPath.styles.d.ts} +1 -1
- package/dist/components/WalletStatefulConnect/DerivationPath.styles.d.ts.map +1 -0
- package/dist/components/WalletStatefulConnect/DerivationPath.types.d.ts +6 -0
- package/dist/components/WalletStatefulConnect/DerivationPath.types.d.ts.map +1 -0
- package/dist/components/WalletStatefulConnect/ExperimentalChain.d.ts +8 -0
- package/dist/components/WalletStatefulConnect/ExperimentalChain.d.ts.map +1 -0
- package/dist/components/WalletStatefulConnect/ExperimentalChainStatus.d.ts +4 -0
- package/dist/components/WalletStatefulConnect/ExperimentalChainStatus.d.ts.map +1 -0
- package/dist/components/WalletStatefulConnect/ExperimentalChainStatus.helpers.d.ts +8 -0
- package/dist/components/WalletStatefulConnect/ExperimentalChainStatus.helpers.d.ts.map +1 -0
- package/dist/components/WalletStatefulConnect/ExperimentalChainStatus.types.d.ts +6 -0
- package/dist/components/WalletStatefulConnect/ExperimentalChainStatus.types.d.ts.map +1 -0
- package/dist/components/WalletStatefulConnect/Namespaces.d.ts +4 -0
- package/dist/components/WalletStatefulConnect/Namespaces.d.ts.map +1 -0
- package/dist/components/WalletStatefulConnect/Namespaces.helpers.d.ts +3 -0
- package/dist/components/WalletStatefulConnect/Namespaces.helpers.d.ts.map +1 -0
- package/dist/components/{WalletNamespacesModal/WalletNamespacesModal.styles.d.ts → WalletStatefulConnect/Namespaces.styles.d.ts} +1 -1
- package/dist/components/WalletStatefulConnect/Namespaces.styles.d.ts.map +1 -0
- package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts +7 -0
- package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts.map +1 -0
- package/dist/components/WalletStatefulConnect/index.d.ts +5 -0
- package/dist/components/WalletStatefulConnect/index.d.ts.map +1 -0
- package/dist/containers/Wallets/Wallets.types.d.ts +1 -1
- package/dist/containers/Wallets/Wallets.types.d.ts.map +1 -1
- package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts +1 -1
- package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts.map +1 -1
- package/dist/hooks/useStatefulConnect/index.d.ts +5 -0
- package/dist/hooks/useStatefulConnect/index.d.ts.map +1 -0
- package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts +25 -0
- package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts.map +1 -0
- package/dist/hooks/useStatefulConnect/useStatefulConnect.helpers.d.ts +8 -0
- package/dist/hooks/useStatefulConnect/useStatefulConnect.helpers.d.ts.map +1 -0
- package/dist/hooks/useStatefulConnect/useStatefulConnect.state.d.ts +9 -0
- package/dist/hooks/useStatefulConnect/useStatefulConnect.state.d.ts.map +1 -0
- package/dist/hooks/useStatefulConnect/useStatefulConnect.types.d.ts +43 -0
- package/dist/hooks/useStatefulConnect/useStatefulConnect.types.d.ts.map +1 -0
- package/dist/hooks/useWalletList.d.ts +11 -14
- package/dist/hooks/useWalletList.d.ts.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +4 -4
- package/dist/pages/WalletsPage.d.ts +0 -2
- package/dist/pages/WalletsPage.d.ts.map +1 -1
- package/dist/widget-embedded.build.json +1 -1
- package/package.json +9 -8
- package/src/components/ConfirmWalletsModal/WalletList.tsx +52 -243
- package/src/components/HeaderButtons/WalletButton.tsx +1 -1
- package/src/components/Slippage/Slippage.tsx +3 -0
- package/src/components/StatefulConnectModal/StatefulConnectModal.tsx +168 -0
- package/src/components/StatefulConnectModal/helpers.ts +23 -0
- package/src/components/StatefulConnectModal/index.ts +1 -0
- package/src/components/SwapDetailsModal/SwapDetailsModal.WalletState.tsx +23 -113
- package/src/components/{WalletModal/WalletModalContent.tsx → WalletStatefulConnect/ConnectStatus.tsx} +13 -5
- package/src/components/WalletStatefulConnect/ConnectStatus.types.ts +11 -0
- package/src/components/WalletStatefulConnect/DerivationPath.helpers.ts +23 -0
- package/src/components/{WalletDerivationPathModal/WalletDerivationPathModal.tsx → WalletStatefulConnect/DerivationPath.tsx} +18 -36
- package/src/components/WalletStatefulConnect/DerivationPath.types.ts +6 -0
- package/src/components/WalletStatefulConnect/ExperimentalChain.tsx +36 -0
- package/src/components/WalletStatefulConnect/ExperimentalChainStatus.helpers.ts +53 -0
- package/src/components/WalletStatefulConnect/ExperimentalChainStatus.tsx +35 -0
- package/src/components/WalletStatefulConnect/ExperimentalChainStatus.types.ts +5 -0
- package/src/components/WalletStatefulConnect/Namespaces.helpers.ts +9 -0
- package/src/components/{WalletNamespacesModal/WalletNamespacesModal.tsx → WalletStatefulConnect/Namespaces.tsx} +9 -27
- package/src/components/{WalletNamespacesModal/WalletNamespacesModal.types.tsx → WalletStatefulConnect/Namespaces.types.tsx} +2 -5
- package/src/components/WalletStatefulConnect/index.ts +4 -0
- package/src/containers/Wallets/Wallets.tsx +1 -1
- package/src/containers/Wallets/Wallets.types.ts +1 -1
- package/src/containers/WidgetProvider/WidgetProvider.types.ts +1 -1
- package/src/hooks/useStatefulConnect/index.ts +9 -0
- package/src/hooks/useStatefulConnect/useStatefulConnect.helpers.ts +13 -0
- package/src/hooks/useStatefulConnect/useStatefulConnect.state.ts +45 -0
- package/src/hooks/useStatefulConnect/useStatefulConnect.ts +232 -0
- package/src/hooks/useStatefulConnect/useStatefulConnect.types.ts +56 -0
- package/src/hooks/useWalletList.ts +22 -53
- package/src/index.ts +7 -8
- package/src/pages/WalletsPage.tsx +10 -162
- package/src/store/wallets.ts +1 -1
- package/src/utils/wallets.ts +1 -1
- package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.d.ts +0 -4
- package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.d.ts.map +0 -1
- package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.styles.d.ts.map +0 -1
- package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.types.d.ts +0 -10
- package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.types.d.ts.map +0 -1
- package/dist/components/WalletDerivationPathModal/index.d.ts +0 -2
- package/dist/components/WalletDerivationPathModal/index.d.ts.map +0 -1
- package/dist/components/WalletModal/WalletModal.d.ts +0 -4
- package/dist/components/WalletModal/WalletModal.d.ts.map +0 -1
- package/dist/components/WalletModal/WalletModal.types.d.ts +0 -10
- package/dist/components/WalletModal/WalletModal.types.d.ts.map +0 -1
- package/dist/components/WalletModal/WalletModalContent.d.ts +0 -4
- package/dist/components/WalletModal/WalletModalContent.d.ts.map +0 -1
- package/dist/components/WalletModal/index.d.ts +0 -2
- package/dist/components/WalletModal/index.d.ts.map +0 -1
- package/dist/components/WalletNamespacesModal/WalletNamespacesModal.d.ts +0 -4
- package/dist/components/WalletNamespacesModal/WalletNamespacesModal.d.ts.map +0 -1
- package/dist/components/WalletNamespacesModal/WalletNamespacesModal.styles.d.ts.map +0 -1
- package/dist/components/WalletNamespacesModal/WalletNamespacesModal.types.d.ts +0 -10
- package/dist/components/WalletNamespacesModal/WalletNamespacesModal.types.d.ts.map +0 -1
- package/dist/components/WalletNamespacesModal/index.d.ts +0 -2
- package/dist/components/WalletNamespacesModal/index.d.ts.map +0 -1
- package/src/components/WalletDerivationPathModal/WalletDerivationPathModal.types.tsx +0 -10
- package/src/components/WalletDerivationPathModal/index.ts +0 -1
- package/src/components/WalletModal/WalletModal.tsx +0 -25
- package/src/components/WalletModal/WalletModal.types.ts +0 -11
- package/src/components/WalletModal/index.ts +0 -1
- package/src/components/WalletNamespacesModal/index.ts +0 -1
- /package/src/components/{WalletModal/WalletModalContent.styles.ts → WalletStatefulConnect/ConnectStatus.styles.ts} +0 -0
- /package/src/components/{WalletDerivationPathModal/WalletDerivationPathModal.styles.ts → WalletStatefulConnect/DerivationPath.styles.ts} +0 -0
- /package/src/components/{WalletNamespacesModal/WalletNamespacesModal.styles.ts → WalletStatefulConnect/Namespaces.styles.ts} +0 -0
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var yh=Object.defineProperty;var i=(t,e)=>yh(t,"name",{value:e,configurable:!0});import{EventSeverity as m6,RouteEventType as d6,StepEventType as f6,StepExecutionBlockedEventStatus as g6,StepExecutionEventStatus as h6}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as S6,useWallets as Vr,Events as T6}from"@rango-dev/wallets-react";import{Networks as k6,WalletTypes as v6}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as b6}from"rango-types";import{UI_ID as Sh}from"@rango-dev/ui";var Xn="c6381a79-2817-4602-83bf-6a641a409e32",op="https://api.rango.exchange",np="https://explorer.rango.exchange",ke={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Sh};var rp="Roboto",Zi=[{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 ga,Provider as uy}from"@rango-dev/wallets-react";import{isEvmBlockchain as my}from"rango-sdk";import gr,{createContext as dy,useEffect as tc,useMemo as fy,useRef as oc}from"react";import{useEffect as Fh}from"react";import{create as Dh}from"zustand";import{subscribeWithSelector as _h}from"zustand/middleware";import Th from"mitt";var xe=Th(),Yn={on:xe.on,off:xe.off};import{RangoClient as Lh}from"rango-sdk";import{BlockchainCategories as Eh,WalletState as It}from"@rango-dev/ui";import{readAccountAddress as Ih}from"@rango-dev/wallets-react";import{detectInstallLink as Ah,getCosmosExperimentalChainInfo as Nh,isEvmAddress as Wh,KEPLR_COMPATIBLE_WALLETS as vE,Networks as hp}from"@rango-dev/wallets-shared";import na from"bignumber.js";import{isCosmosBlockchain as Mh}from"rango-types";import Ch from"bignumber.js";var Ge=new Ch(0);import{WalletTypes as kh}from"@rango-dev/wallets-shared";var ip=[kh.LEAP];import{BlockchainCategories as Ji,WalletState as wh}from"@rango-dev/ui";import{TransactionType as Zn}from"rango-sdk";function Wo(t){return Array.from(new Set(t))}i(Wo,"removeDuplicateFrom");function ta(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(ta,"areEqual");function up(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(up,"debounce");function nt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(nt,"containsText");function lp(t,e){return t.toLowerCase()===e.toLowerCase()}i(lp,"exactText");function pp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(pp,"startWithText");var B=i(()=>document.getElementById(ke.SWAP_BOX_ID),"getContainer"),on=i(()=>document.getElementById(ke.EXPANDED_BOX_ID),"getExpanded");function cp(t,e,o){let n=!!e&&lp(e,t),r=!!o&&lp(o,t);return n!==r?n?-1:1:0}i(cp,"compareExactMatchText");function Ri(t,e,o){let n=!!e&&nt(e,t),r=!!o&&nt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ri,"compareContainsText");function ea(t,e,o){let n=!!e&&pp(e,t),r=!!o&&pp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ea,"compareStartWithText");function mp(t,e,o){if(!o)return 0;let n=cp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=cp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ea(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ri(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ea(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ri(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ea(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ri(o,t.address,e.address);if(r!==0)return r}return 0}i(mp,"compareWithSearchFor");var Jn=i((t,e)=>{switch(e){case Ji.ALL:return!0;case Ji.UTXO:return t===Zn.TRANSFER;case Ji.OTHER:return t!==Zn.TRANSFER&&t!==Zn.COSMOS&&t!==Zn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),dp=i(t=>Zi.find(o=>o.value===t)?.url,"getFontUrlByName");function Rn(t,e){let o=!!t.find(n=>n.state===wh.CONNECTED);return e===!1&&o}i(Rn,"isSingleWalletActive");function er(t,e){return e.find(o=>o.name===t)?.displayName}i(er,"getBlockchainDisplayNameFor");function ct(t,e){return e.find(o=>o.name===t)?.shortName}i(ct,"getBlockchainShortNameFor");function fp(t,e){return e.find(o=>o.name===t)?.logo}i(fp,"getBlockchainImage");function nn(t,e){return e.find(o=>o.id===t)?.title}i(nn,"getSwapperDisplayName");function rn(t,e){return e.find(o=>o.name===t)??null}i(rn,"findBlockchain");function oa(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(oa,"isTokenNative");function Qe(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(Qe,"createTokenHash");function Mo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Mo,"isValidTokenAddress");import{BigNumber as gp}from"bignumber.js";var an=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"),D=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new gp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new gp(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 tr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Et=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),sn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ra(t){switch(!0){case t.connected:return It.CONNECTED;case t.connecting:return It.CONNECTING;case!t.installed:return It.NOT_INSTALLED;default:return It.DISCONNECTED}}i(ra,"mapStatusToWalletState");function yp(t,e,o,n){return o.filter(r=>!ip.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(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:c,singleNamespace:u,supportedChains:m,needsDerivationPath:d}=e(r),g=Wo(m.map(y=>y.type)),f=ra(t(r));return{title:a,image:s,link:Ah(l),state:f,type:r,showOnMobile:p,namespaces:c,singleNamespace:u,blockchainTypes:g,needsDerivationPath:d}})}i(yp,"mapWalletTypesToWalletInfo");function rr(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(rr,"walletAndSupportedChainsNames");function Sp(t,e,o,n,r){let a=[];function s(p,c){if(!!!a.find(m=>m.chain===p)){let m={address:c,chain:p,walletType:t};a.push(m)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:c,network:u}=Ih(p),m=l.length>0,d=l.includes(u),g=u===hp.Unknown;if(m&&!d&&!g)return;let y=u===hp.Unknown&&Wh(c);if(g&&!y)return;o.includes(u)||y?r?s(u,c.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,c.toLowerCase())}):s(u,c)}),a}i(Sp,"prepareAccountsForWalletStore");function io(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((c,u)=>{let m=c.from.blockchain,d=c.to.blockchain,g=a===o.swaps.length-1,f=u===p.length-1;(!g&&!f||g&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(d)})}e==="all"&&n.add(l)}),Array.from(n)}i(io,"getQuoteWallets");function ir(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(ir,"isAccountAndWalletMatched");function Tp(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 na(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Tp,"makeBalanceFor");function Cp(t){return{...t,loading:!1,error:!0}}i(Cp,"resetConnectedWalletState");var kp=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=D(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new na(a?.amount||Ge).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Ge)||Ge).toString();return Bh(r)},"calculateWalletUsdValue");function Bh(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Bh,"numberWithThousandSeparator");var ar=i((t,e)=>{let o=Nh(Object.entries(t).map(([,n])=>n).filter(Mh));return o&&o[e]?.experimental},"isExperimentalChain");function sr(t){return t?{...t,amount:D(t.amount,8,8),usdValue:D(t.usdValue,4,4)}:null}i(sr,"formatBalance");function vp(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(vp,"compareTokenBalance");function ao(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(ao,"areTokensEqual");function xp(t){return t.sort((e,o)=>+(o.state===It.CONNECTED)-+(e.state===It.CONNECTED)||+(o.state===It.DISCONNECTED||o.state===It.CONNECTING)-+(e.state===It.DISCONNECTED||e.state===It.CONNECTING))}i(xp,"sortWalletsBasedOnConnectionState");function lr(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(lr,"getConciseAddress");function bp({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(bp,"getAddress");function pr(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new na(o?.usdPrice??Ge).multipliedBy(o?.amount).toString():""},r=o?Qe({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(pr,"makeTokensBalance");var wp=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ep(t){return t.map(e=>e.state).join("-")}i(Ep,"hashWalletsState");function Ip(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(Ip,"filterBlockchainsByWalletTypes");function Ap(t,e){return e===Eh.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Jn(n,e))return!0;return!1})}i(Ap,"filterWalletsByCategory");var ia={API_KEY:Xn};function ut(t){return ia[t]||""}i(ut,"getConfig");function Np(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),ia=e,ia}i(Np,"initConfig");var Wp=20,Mp=25,aa="theme-widget",sa=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>ao(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>ao(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),la=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Bp=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var cr,qt=i(()=>cr||(cr=new Lh(ut("API_KEY"),ut("BASE_URL")),cr),"httpService");import{WidgetEvents as Lp}from"@rango-dev/queue-manager-rango-preset";var pa=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(pa||{}),ur=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(ur||{}),ca=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(ca||{}),so=(a=>(a[a.RouteEvent=Lp.RouteEvent]="RouteEvent",a[a.StepEvent=Lp.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(so||{});var Ph=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"),Ht=Ph;var oe=Ht(Dh()(_h((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{xe.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)&&xe.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:pr(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=>ir(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:c,chain:u})=>({address:c,blockchain:u})),p=(await qt().getWalletsDetails(s)).wallets;if(p)t(c=>{let u=c.connectedWallets.map(d=>{let g=o.find(y=>ir(y,d)),f=p.find(y=>y.address===d.address&&y.blockChain===d.chain);return f?.failed&&g&&r&&a([g],n,!1),g&&f?{...d,explorerUrl:f.explorerUrl,balances:Tp(f,n),loading:!1}:d});return{loading:!1,balances:pr(u),connectedWallets:u}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(u=>o.find(m=>ir(m,u))?Cp(u):u);return{loading:!1,balances:pr(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Qe(o);return n[r]??null}}))));import{allProviders as $h}from"@rango-dev/provider-all";function mr(t,e){let o=$h({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(mr,"matchAndGenerateProviders");function Pp(t,e){return mr(t,e).map(r=>r.config.type)}i(Pp,"configWalletsToWalletName");function Dp(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Dp,"hashProviders");function ua(t,e){let o=oe.use.clearConnectedWallet(),n=mr(t,e);return Fh(()=>{o(),n=mr(t,e)},[Dp(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(ua,"useWalletProviders");import ry,{createContext as iy,useContext as ay,useEffect as sy,useRef as ly}from"react";import{create as oy}from"zustand";import{persist as ny}from"zustand/middleware";var ma=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()}},Bo=new ma;function ln(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=Qe(p));let c=o.tokensMapByTokenHash.get(p);c&&(n[p]=c)})},"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(c=>{let u=Qe(c);delete n[u]})):a(p.tokens))}),Object.values(n)}i(ln,"matchTokensFromConfigWithMeta");function dr(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(dr,"getSupportedBlockchainsFromConfig");var da={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},Oh={clientUrl:void 0},Uh={liquiditySources:void 0},_p=i((t,e,o)=>({config:{...da,...t},iframe:Oh,campaignMode:Uh,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=ln({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=ln({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});Bo.set("supportedSourceTokens",l),Bo.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");import{TransactionType as $p}from"rango-types";var Fp=[$p.EVM,$p.SOLANA];function fr(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Wo(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(fr,"getUniqueSwappersGroups");function Op(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Op,"sortLiquiditySourcesByGroupTitle");function Ze(t,e){return e?.[t]==="hidden"}i(Ze,"isFeatureHidden");function Up(t,e){return e?.[t]==="enabled"}i(Up,"isFeatureEnabled");var zp=i((t,e,o)=>Ze("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");var Qp=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let p=dr({config:a}),c=r;return p.length>0&&(c=c.filter(u=>p.includes(u.name))),c.filter(u=>Fp.includes(u.type))}let 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,_customTokens:s}=e(),l=Array.from(n.values()),p=e()._blockchainsMapByName;if(!o||!o.type)return l;let c=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",m=Bo.get(u);m?.length||(m=ln({type:o.type,config:{blockchains:a[c]?.blockchains,tokens:a[c]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Bo.set(u,m)),m=zp(m,s,a.features);let d=e().blockchains({type:o.type});return m.filter(f=>o.blockchain&&f.blockchain!==o.blockchain||!d.some(y=>y.name===f.blockchain)?!1:o.searchFor?!!(nt(f.symbol,o.searchFor)||nt(f.address||"",o.searchFor)||nt(f.name||"",o.searchFor)):!0).sort((f,y)=>{let S=e().isTokenPinned(f,o.type),C=e().isTokenPinned(y,o.type);if(S!==C)return S?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(f),b=o.getBalanceFor(y),x=vp(A,b);if(x!==0)return x}let T=p.get(f.blockchain),k=p.get(y.blockchain),v=oa(f,T),w=oa(y,k);if(v!==w)return v?-1:1;if(f.isPopular!==y.isPopular)return f.isPopular?-1:1;if(o.searchFor){let A=mp(f,y,o.searchFor);if(A)return A}return f.isSecondaryCoin!==y.isSecondaryCoin?f.isSecondaryCoin?1:-1:T&&k?T.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=Qe(o),s=n.get(a);return s||(s=r.find(l=>Qe(l)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>ao(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(c=>{let u=a?.includes(c.swapperGroup);return s||!a||a.length===0?!u:u}).sort(Op)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await qt().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s={},l=[],p=n.popularTokens,c=n.swappers,u=new Set;n.tokens.forEach(d=>{u.add(d.blockchain),l.push(d)}),n.blockchains.sort((d,g)=>d.sort-g.sort).forEach(d=>{d.enabled&&u.has(d.name)&&r.set(d.name,d)}),l.forEach(d=>{let g=Qe(d);s[d.blockchain]||(s[d.blockchain]=[]),a.set(g,d),s[d.blockchain].push(g)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s,_popularTokens:p,_swappers:c})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as zh,English as Qh,Finland as qh,French as Hh,German as Gh,Greece as Vh,Italian as Kh,Japanese as jh,Netherlands as Xh,Poland as Yh,Portuguese as Zh,Russian as Jh,Spanish as Rh,Swedish as ey,Ukrainian as ty}from"@rango-dev/ui";var qp=[{title:"English",label:"English",local:"en",SVGFlag:Qh},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Rh},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Hh},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:jh},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Zh},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:zh},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Jh},{title:"German",label:"Deutsch",local:"de",SVGFlag:Gh},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:ty},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:ey},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:qh},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Xh},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Vh},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Kh},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Yh}],Lo="en";var Hp=[.5,1,3],Gp=1,Vp=5,Kp=100,jp=0;var Xp=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Gp,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,c=l<=9;return p&&c}))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=Wo(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=Ze("theme",n),s=Ze("language",n),l=Ze("liquiditySource",n),p=r?.singleTheme,c=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Lo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...c&&{language:o.language||Lo}})},setCustomToken:o=>t(n=>({_customTokens:[o,...n._customTokens]})),deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=dr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");function Yp(t){return oy()(ny((...e)=>({...Qp(...e),...Xp(...e),..._p(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(Yp,"createAppStore");var Zp=iy(null);function h(){let t=ay(Zp);if(sy(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function Jp(t){let e=ly();return e.current||(e.current=Yp(t.config)),ry.createElement(Zp.Provider,{value:e.current},t.children)}i(Jp,"AppStoreProvider");import{create as cy}from"zustand";var Rp="rango-widget";var pn=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(Rp),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 ue=Ht(cy()((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})}}))),lo=new pn({onInit:()=>ue.setState({tabManagerInitiated:!0}),onClaim:()=>ue.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ue.setState({isActiveTab:!1})});var hr=dy({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function gy(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:c}=ua(l.wallets,p),{connectWallet:u,disconnectWallet:m}=oe(),d=oc(),g=oc();tc(()=>{n().catch(console.log)},[]),tc(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:l,dappConfig:t.config})},[t.config,r]);let f=a.filter(my).map(T=>T.name),y=i((T,k,v,w,A)=>{if(k===ga.ACCOUNTS)if(v){let b=rr(A.supportedBlockchains),x=Sp(T,v,f,b,A.isContractWallet);x.length&&u(x,s)}else m(T),g.current?g.current(T):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(k===ga.ACCOUNTS&&w.connected){let b=`${T}-${w.network}-${v}`;w.connected&&(d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(k===ga.NETWORK&&w.network){let b=`${T}-${w.network}`;d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(T,k,v,w,A)},"onUpdateState"),S=ue.use.isActiveTab(),C=fy(()=>({onConnectWallet:T=>{d.current=T},onDisconnectWallet:T=>{g.current=T}}),[]);return gr.createElement(hr.Provider,{value:C},gr.createElement(uy,{allBlockChains:a,providers:c,onUpdateState:y,autoConnect:!!S},t.children))}i(gy,"Main");function yr(t){let{config:e,...o}=t;return gr.createElement(Jp,{config:e},gr.createElement(gy,{...o,config:e}))}i(yr,"WidgetWallets");import Xi from"react";import hy,{Fragment as yy}from"react";import{MemoryRouter as Sy,useInRouterContext as Ty}from"react-router";function nc({children:t}){let o=Ty()?yy:Sy;return hy.createElement(o,null,t)}i(nc,"AppRouter");import{I18nManager as Iw}from"@rango-dev/ui";import Rl from"react";import Ue from"react";import{useRoutes as dw}from"react-router-dom";var F={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as _o,useRef as Er}from"react";import Je from"bignumber.js";import{create as vy}from"zustand";import{subscribeWithSelector as xy}from"zustand/middleware";import{getLastSuccessfulStep as ky}from"@rango-dev/queue-manager-rango-preset";import fA from"bignumber.js";function ha(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(ha,"getFeeLabel");var ya=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],rc=30;import{i18n as ht}from"@lingui/core";import{RouteEventType as R0}from"@rango-dev/queue-manager-rango-preset";import Ve from"bignumber.js";import{PendingSwapNetworkStatus as Tr}from"rango-types";import{i18n as qe}from"@lingui/core";var re=i(()=>({genericServerError:qe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:qe.t("Please reset your liquidity sources."),description:qe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:qe.t("No Routes Found."),description:qe.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:qe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:qe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:qe.t("High Price Impact"),title:qe.t("Price impact is too high!"),description:qe.t("The price impact is significantly higher than the allowed amount."),confirmMessage:qe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:qe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:qe.t("USD Price Unknown"),title:qe.t("USD Price Unknown, Cannot calculate Price Impact."),description:qe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:qe.t("Confirm USD Price Unknown")}}),"errorMessages");function ic(t){switch(t.type){case 0:return t.diagnosisMessage??re().noResultError.title;case 1:return re().genericServerError;default:return""}}i(ic,"getQuoteErrorMessage");import{i18n as Sr}from"@lingui/core";var po=i(()=>({connectWallet:Sr.t("Connect Wallet"),swap:Sr.t("Swap"),swapAnyway:Sr.t("Swap anyway"),ethWarning:Sr.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function ac(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Ve(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Ve(1e3)))??!1}i(ac,"hasHighValueLoss");function sc(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ve(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(sc,"hasLimitError");function lc(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Ve(l.fromAmountMinValue):null,c=l.fromAmountMaxValue?new Ve(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||c?.lte(l.fromAmount):p?.gt(l.fromAmount)||c?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ve(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=ht.t({id:"Required: >= {min} {symbol}",values:{min:D(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=ht.t({id:"Required: > {min} {symbol}",values:{min:D(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=ht.t({id:"Required: <= {max} {symbol}",values:{max:D(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=ht.t({id:"Required: < {max} {symbol}",values:{max:D(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(lc,"getLimitErrorMessage");function pc(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:po().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:po().swap,action:"confirm-swap",disabled:!0}:s?{title:po().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:po().ethWarning,action:"confirm-warning",disabled:!1}:{title:po().swap,action:"confirm-swap",disabled:!1}:{title:po().connectWallet,action:"connect-wallet",disabled:!1}}i(pc,"getSwapButtonState");function Sa(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(Ge))&&e&&e!=="0"&&n!==0)}i(Sa,"canComputePriceImpact");function Ta(t,e){let o=Ge;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 Ve(r.amount).multipliedBy(a||0))}return o}i(Ta,"getUsdFeeOfStep");function Cr(t,e){return t.reduce((o,n)=>o.plus(Ta(n,e)),Ge)}i(Cr,"getTotalFeeInUsd");function Ca(t){let e=Ge;return e=e.plus(new Ve(t.amount).multipliedBy(t.price||0)),e}i(Ca,"getUsdFee");function cc(t){return t.reduce((e,o)=>e.plus(Ca(o)),Ge)}i(cc,"getTotalFeesInUsd");function uc(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(uc,"getFeesGroup");function mc(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(mc,"checkSlippageErrors");function dc(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(dc,"checkSlippageWarnings");function kr(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(kr,"getMinRequiredSlippage");function fc(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(fc,"hasProperSlippage");function gc(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:c,affiliateRef:u,affiliatePercent:m,affiliateWallets:d,destination:g,enableCentralizedSwappers:f}=t,y=a?.reduce((T,k)=>(T[k.chain]=k.address,T),{}),S=[];return r?.forEach(T=>{S.push({blockchain:T.chain,addresses:[T.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:m??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:y??{},slippage:c.toString(),...g&&{destination:g},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(T=>!s.includes(T)),swappersGroupsExclude:!1},enableCentralizedSwappers:f}}i(gc,"createQuoteRequestBody");function hc(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(hc,"getWalletsForNewSwap");function Po(t){return t?.outputAmount||null}i(Po,"getQuoteOutputAmount");function yc(t,e){return new Ve(e).div(new Ve(t)).minus(1).multipliedBy(100).toNumber()}i(yc,"getPercentageChange");function Sc(t,e){let o=Po(t),n=Po(e);if(!o||!n)return!1;let r=mt(o,n);return r?r<=-1:!0}i(Sc,"isOutputAmountChangedALot");function Tc(t,e,o){let n=t.validationStatus,r=io({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>wc(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=D(new Ve(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),c=D(new Ve(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=ht.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=ht.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=ht.t(" for input and network fee")),ht.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:c,symbol:l,reason:u,currentAmount:p,blockchain:ct(s.asset.blockchain,o)}})})}i(Tc,"generateBalanceWarnings");function Vt(t,e){return(t?new Ve(t):Ge).multipliedBy(e||0)}i(Vt,"calcOutputUsdValue");function cn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Tr.NetworkChanged}i(cn,"isNetworkStatusInWarningState");function Cc(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),cn(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Tr.WaitingForConnectingWallet:n=n||ht.t("Waiting for connecting wallet");break;case Tr.WaitingForQueue:n=n||ht.t("Waiting for other running tasks to be finished");break;case Tr.WaitingForNetworkChange:n=n||ht.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(Cc,"getSwapMessages");function kc(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(kc,"getLastConvertedTokenInFailedSwap");function vc(t){return t.status==="failed"}i(vc,"shouldRetrySwap");function xc(t,e,o,n,r,a){if(!n||t)return!0;let s=io({filter:"all",quote:n}),l=io({filter:"required",quote:n}),p=s.every(m=>r.some(d=>d.chain===m)),c=l.every(m=>r.some(d=>d.chain===m)),u=o&&a?Mo(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!u||!c)}i(xc,"isConfirmSwapDisabled");function bc(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(bc,"isTokensIdentical");function co(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(co,"getQuoteToTokenUsdPrice");function un(t){return(t?.swaps||[])[0].from.usdPrice}i(un,"getQuoteFromTokenUsdPrice");function ka(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(ka,"isNumberOfSwapsChanged");function va(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!ta(o,n)}i(va,"isQuoteSwappersUpdated");function xa(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!ta(o,n)}i(xa,"isQuoteInternalCoinsUpdated");function Ic(t,e){return ka(t,e)||va(t,e)||xa(t,e)}i(Ic,"isQuoteChanged");function wc(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(wc,"getRequiredBalanceOfWallet");function Lt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Lt,"getPriceImpactLevel");function xr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=ky(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=rn(a?a.toBlockchain:n.fromBlockchain,e),p=rn(r.toBlockchain,e),c=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:c,toBlockchain:p,toToken:u,inputAmount:m}}i(xr,"createRetryQuote");function Do(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=Vt(t.requestAmount,un(t)||o?.usdPrice),l=Vt(t.outputAmount,co(t)||n?.usdPrice);if(t&&s&&l){let u=mt(s.toString(),l.toString());if(!!u&&ac(s,u)){let d=Cr(t?.swaps,r),g=Lt(u);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:u,totalFee:d,warningLevel:g}}}else if(t&&(!s||!l))return{type:1};let p=kr(t.swaps),c=a>Vp;if(fc(e.userSlippage.toString(),p)){if(c&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:dc(t,a),minRequiredSlippage:p};return null}i(Do,"generateQuoteWarnings");function mt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:yc(t.toString(),e.toString());return n&&n<0?n:null}i(mt,"getPriceImpact");var Ac=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"),br=i((t,e)=>e.sort((o,n)=>{let r=i(c=>c.scores?.find(u=>u.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"),Nc=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"),Wc=i(t=>{let e=i((o,n)=>{let r=ya.indexOf(o.value),a=ya.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var wr=i((t,e)=>t?.usdPrice?new Je(e||Ge).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),q=Ht(vy()(xy(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Je(0),outputUsdValue:new Je(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=Ge,a=o.inputUsdValue;return sn(o.inputAmount)?(e&&(n=e?.outputAmount?new Je(e?.outputAmount):null,a=Vt(o.inputAmount,un(e)||o.fromToken?.usdPrice),r=Vt(e.outputAmount,co(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Je(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Je(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Je(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:wr(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 Je(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:null,outputUsdValue:new Je(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:wr(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:wr(n??null,s),outputUsdValue:new Je(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?wr(e.toToken,e.outputAmount?.toString()||""):new Je(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Je(0),inputUsdValue:new Je(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Je(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})})))),Mc=q.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&xe.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&&xe.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 Bc(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:c}=q(),u=h().config,m=h().fetchStatus,d=h().blockchains(),g=h().tokens(),{findToken:f}=h(),{setAffiliateRef:y,setAffiliatePercent:S,setAffiliateWallets:C}=h(),T=u?.from?.tokens,k=u?.from?.blockchains,v=u?.to?.tokens,w=u?.to?.blockchains,A=Er(void 0),b=Er(void 0),x=Er(void 0),E=Er(void 0);_o(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),_o(()=>{if(m==="success"){r();let I=d.find(N=>N.name===u?.from?.blockchain),P=u?.from?.token,H=P&&f(P);(I||!I&&x.current)&&n(I??null),H?a({token:H,meta:{blockchains:d,tokens:g}}):!H&&A.current&&a({token:null}),x.current=u?.from?.blockchain,A.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),_o(()=>{sa(s,T)&&a({token:null}),la(p,k)&&n(null)},[T,k]),_o(()=>{sa(l,v)&&a({token:null}),la(c,w)&&o(null)},[v,w]),_o(()=>{if(m==="success"){r();let I=d.find(N=>N.name===u?.to?.blockchain),P=u?.to?.token,H=P&&f(P);(I||!I&&E.current)&&o(I??null),H?e({token:H,meta:{blockchains:d,tokens:g}}):!H&&b.current&&e({token:null}),E.current=u?.to?.blockchain,b.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),_o(()=>{y(u?.affiliate?.ref??null),S(u?.affiliate?.percent??null),C(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Bc,"useSyncStoresWithConfig");import{useEffect as Ea,useRef as by}from"react";import{useInRouterContext as wy,useLocation as Ey,useSearchParams as Iy}from"react-router-dom";function ba(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(ba,"convertTokenSearchParamToAsset");function wa(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(wa,"tokenToSearchParam");function Aa(){let t=Ey(),[e,o]=Iy(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:c,setFromToken:u,setToToken:m,setInputAmount:d}=q(),g=h().fetchStatus,f=h().blockchains(),y=h().tokens(),S=wy(),{updateIframe:C,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=by(),{findToken:w}=h(),A=i(()=>{let x={};for(let[K,ge]of e.entries())K.startsWith("utm_")&&(x[K]=ge);let E=e.get("fromAmount"),I=e.get("fromBlockchain"),P=e.get("fromToken"),H=e.get("toBlockchain"),N=e.get("toToken"),J=e.get("autoConnect"),ne=e.get("clientUrl"),L=e.get("liquiditySources"),M=e.get("blockchain");return{fromAmount:E,fromBlockchain:I,fromToken:P,toBlockchain:H,toToken:N,autoConnect:J,clientUrl:ne,liquiditySources:L,utmQueryParams:x,blockchain:M}},"getUrlSearchParams"),b=i(x=>{for(let E in x)x[E]||delete x[E];o(x,{replace:!0})},"updateUrlSearchParams");Ea(()=>{let{autoConnect:x,clientUrl:E,utmQueryParams:I,blockchain:P}=A();S&&g==="success"&&b({fromBlockchain:n?.name,fromToken:wa(a),toBlockchain:r?.name,toToken:wa(s),fromAmount:l,autoConnect:x??void 0,clientUrl:E??void 0,blockchain:P??void 0,liquiditySources:k?v.current:void 0,...I})},[t.pathname,l,n,a,r,s,k]),Ea(()=>{if(!S)return;let x=A();if(!v.current&&x.liquiditySources&&(v.current=x.liquiditySources),x.fromAmount&&d(x.fromAmount),g==="success"){let E=f.find(N=>N.name===x.fromBlockchain),I=x.fromToken&&E?w(ba(x.fromToken,E)):void 0,P=f.find(N=>N.name===x.toBlockchain),H=x.toToken&&P?w(ba(x.toToken,P)):void 0;E&&(p(E),I&&u({token:I,meta:{blockchains:f,tokens:y}})),P&&(c(P),H&&m({token:H,meta:{blockchains:f,tokens:y}}))}},[g]),Ea(()=>{let{clientUrl:x,liquiditySources:E}=A();C("clientUrl",x||void 0),T("liquiditySources",E?.split(",")??void 0)},[])}i(Aa,"useSyncUrlAndStore");import{i18n as Nt}from"@lingui/core";import{Alert as JS,Button as Su,darkTheme as RS,Divider as fn,DoneIcon as eT,MessageBox as tT,styled as oT,TextField as nT,Typography as rT}from"@rango-dev/ui";import be,{useEffect as iT,useState as Pr}from"react";import{useNavigate as aT,useSearchParams as sT}from"react-router-dom";import{ChevronRightIcon as Ay,Divider as $c,Image as Ny,Typography as Fc}from"@rango-dev/ui";import yt from"react";import{darkTheme as Lc,styled as Na}from"@rango-dev/ui";var Pc=Na("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Lc} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Lc} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),Dc=Na("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),_c=Na("div",{display:"flex"});function Wa(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return yt.createElement(Dc,null,yt.createElement(Fc,{size:"large",variant:"label"},n),yt.createElement($c,{size:10}),yt.createElement(Pc,{onClick:s?void 0:e,disabled:s},yt.createElement(_c,null,r&&yt.createElement(yt.Fragment,null,yt.createElement(Ny,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),yt.createElement($c,{size:4,direction:"horizontal"})),yt.createElement(Fc,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),yt.createElement(Ay,{size:12,color:"black"})))}i(Wa,"BlockchainSelectorButton");import{Modal as Wy}from"@rango-dev/ui";import My from"react";function X(t){let{watermark:e}=ue();return My.createElement(Wy,{hasWatermark:e==="FULL",...t},t.children)}i(X,"WatermarkedModal");import{i18n as Ba}from"@lingui/core";import{Button as By,Divider as mn,ExternalLinkIcon as Ly,Image as Py,Typography as Fo}from"@rango-dev/ui";import De from"react";function Oc(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Oc,"generateExplorerLink");import{darkTheme as $o,styled as Uc}from"@rango-dev/ui";var Ma=Uc("a",{textDecoration:"none",color:"$colors$neutral700",[`.${$o} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${$o} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${$o} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${$o} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),zc=Uc("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${$o} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${$o} &`]:{color:"$colors$neutral900"}}});function La(t){let{open:e,onClose:o,token:n,onSubmitClick:r,blockchain:a}=t,s=Oc(n.address,a);return De.createElement(X,{open:e,dismissible:!0,onClose:o,container:B()},De.createElement(zc,null,De.createElement(Py,{src:n.image,size:45,type:"circular"}),De.createElement(Fo,{variant:"title",size:"medium"},n.name),De.createElement(Fo,{variant:"body",size:"small",className:"_blockchain-name"},a.displayName),De.createElement(mn,{size:4}),De.createElement(Fo,{variant:"body",size:"medium"},s?De.createElement(Ma,{hasHover:!0,href:s,target:"_blank",rel:"nofollow noreferrer"},n.address,De.createElement(Ly,{size:12,color:"gray"})):De.createElement(Ma,null,n.address)),De.createElement(mn,{size:4}),n.coinSource&&De.createElement(Fo,{className:"_coin-source",variant:"body",size:"xsmall"},Ba.t("via")," ",De.createElement(Fo,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),De.createElement(mn,{size:"32"}),De.createElement(Fo,{size:"medium",variant:"body",className:"_custom-token-description"},Ba.t("This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."))),De.createElement(mn,{size:40}),De.createElement(mn,{size:10}),De.createElement(By,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:r},Ba.t("Import")))}i(La,"CustomTokenModal");import{useManager as VS}from"@rango-dev/queue-manager-react";import{BottomLogo as KS,Divider as du,Header as jS}from"@rango-dev/ui";import Ie,{useEffect as os,useRef as fu,useState as XS}from"react";import{useRef as Dy}from"react";function Ir(){return window.self!==window.top}i(Ir,"isAppLoadedIntoIframe");function Pa(){let t=Dy(null),{iframe:e}=h(),o=Ir()&&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(Pa,"useIframe");import{useNavigate as _y}from"react-router-dom";function Re(){let t=_y();return()=>t(-1)}i(Re,"useNavigateBack");import{createTheme as za,darkTheme as Yy,lightTheme as Zy}from"@rango-dev/ui";import{useEffect as Jy,useState as Ry}from"react";import{theme as jy,darkColors as Xy}from"@rango-dev/ui";import Oa from"react";function $y(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i($y,"expandShortHexColor");function Fy(t){return/[0-9]+$/.test(t)}i(Fy,"isOverridingColor");function Oy(t,e){return t.padStart(e,"0")}i(Oy,"pad");function Da(t){let e=Math.min(Math.max(Math.round(t),0),255);return Oy(e.toString(16),2)}i(Da,"intToHex");function Uy(t){return`#${Da(t.red)}${Da(t.green)}${Da(t.blue)}`}i(Uy,"rgbToHex");function zy(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(zy,"hexToRGB");function Qy(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Qy,"generateShade");function qy(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(qy,"generateTint");function Hy(t){return Qc(t,Qy)}i(Hy,"calculateShades");function Gy(t){return Qc(t,qy)}i(Gy,"calculateTints");function Qc(t,e){let o=zy(t),n=[];for(let r=1;r<9;r++)n.push(Uy(e(o,r)));return n}i(Qc,"calculateColors");function _a(t,e,o){let a=Gy(t).reverse().concat(t),s=Hy(t),l=a.concat(s),p={},c=l.length;for(let u=0;u<c;u++){let m=100+(o?c-1-u:u)*50;p[`${e}${m}`]=l[u]}return p}i(_a,"createTintsAndShades");function $a(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)&&!Fy(r)){let p=$y(a);Object.assign(n,_a(p,r,s))}}return{...n,...e}}i($a,"expandToGenerateThemeColors");var qc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Vy=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=qc(o%52)+e;return qc(o%52)+e},"toAlphabeticName"),Ky=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Fa=i(t=>Vy(Ky(5381,JSON.stringify(t))>>>0),"toHash");function Ua(t){let e=jy.colors,o={...e,...Xy},n,r;if(t?.light){let s={colors:$a(e,t.light)};n={id:`${aa}-light-${Fa(s)}`,tokens:s}}if(t?.dark){let s={colors:$a(o,t.dark,{reverseNeutralRange:!0})};r={id:`${aa}-dark-${Fa(s)}`,tokens:s}}return{light:n,dark:r}}i(Ua,"customizedThemeTokens");function Hc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Oa.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Oa.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Oa.cloneElement(e,{key:l}))}}),o}i(Hc,"joinList");function Gc(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Gc,"doesWindowPreferDarkColorScheme");function Oo(t){let{colors:e,fontFamily:o=rp,borderRadius:n=Wp,secondaryBorderRadius:r=Mp}=t,[a,s]=Ry(Gc()?"dark":"light"),{theme:l}=h(),{dark:p,light:c}=Ua(e),u=za({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[u.className,Zy.className],d=[u.className,Yy.className];if(c){let f=za(c.id,c.tokens);m.push(f.className)}if(p){let f=za(p.id,p.tokens);d.push(f.className)}return Jy(()=>{let f=i(y=>{y.matches?s("dark"):s("light")},"switchThemeListener");return Gc()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=m.join(" "),y=d.join(" ");return l==="auto"?a==="dark"?y:f:l==="dark"?y:f},"getActiveTheme"),mode:l==="auto"?a:l}}i(Oo,"useTheme");var dt=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 Vc}from"@lingui/core";import{Alert as eS,Button as tS}from"@rango-dev/ui";import Kc from"react";function Qa(t){return Kc.createElement(eS,{action:Kc.createElement(tS,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Vc.t("Activate this tab")),type:"warning",variant:"alarm",title:Vc.t("Another tab is open and handles transactions.")})}i(Qa,"ActivateTabAlert");import{i18n as qa}from"@lingui/core";import{Button as oS,Divider as nS,MessageBox as rS}from"@rango-dev/ui";import Ar from"react";function Ha(t){let{open:e,onClose:o,onConfirm:n}=t;return Ar.createElement(X,{open:e,dismissible:!0,onClose:o,container:B()},Ar.createElement(rS,{title:qa.t("Activate current tab"),type:"warning",description:qa.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.")},Ar.createElement(nS,{size:20}),Ar.createElement(oS,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},qa.t("Confirm"))))}i(Ha,"ActivateTabModal");import{ChevronLeftIcon as sS}from"@rango-dev/ui";import eu from"react";import{css as iS,darkTheme as jc,IconButton as aS,styled as uo}from"@rango-dev/ui";var At=uo(aS,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${jc} &`]:{backgroundColor:"$neutral"}}}),Xc=uo("div",{position:"absolute",background:"$secondary500",[`.${jc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Kt=uo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Yc=uo("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"}}}}),Zc=uo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Jc=uo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Rc=iS({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Nr=uo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function Ga(t){return eu.createElement(At,{variant:"ghost",size:"small",onClick:t.onClick},eu.createElement(sS,{color:"black",size:16}))}i(Ga,"BackButton");import{i18n as lS}from"@lingui/core";import{Button as pS,Typography as cS}from"@rango-dev/ui";import Va from"react";function Ka(t){return Va.createElement(Kt,null,Va.createElement(pS,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Va.createElement(cS,{variant:"label",size:"medium",color:"error500"},lS.t("Cancel"))))}i(Ka,"CancelButton");import{i18n as SS}from"@lingui/core";import{Image as TS,Tooltip as CS,WalletIcon as kS}from"@rango-dev/ui";import fo from"react";import{WalletState as ja}from"@rango-dev/ui";import{useWallets as uS}from"@rango-dev/wallets-react";import{detectMobileScreens as mS,KEPLR_COMPATIBLE_WALLETS as dS,WalletTypes as Uo}from"@rango-dev/wallets-shared";import{useCallback as fS,useEffect as gS,useState as hS}from"react";var yS=Object.values(Uo);function mo(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:c}=uS(),{connectedWallets:u}=oe(),m=h().blockchains(),d=Pp(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||yS,g=yp(s,p,d,e);g=mS()?g.filter(b=>b.showOnMobile!==!1&&s(b.type).installed):g;let f=xp(g),[y,S]=hS(""),C=i(b=>!u.find(x=>x.walletType===b&&x.chain===e),"isExperimentalChainNotAdded"),T=i(async(b,x)=>{let E=s(b);try{if(y&&S(""),E.connected)await l(b);else{if(Rn(g,a.multiWallets))return;o?.(b),await c(b,void 0,x),n?.(b)}}catch(I){r?.(I?.message),S("Error: "+I?.message)}},"handleClick"),k=fS(()=>{let b=g?.filter(x=>x.state===ja.CONNECTING)||[];for(let x of b)l(x.type)},[Ep(g)]),v=i(async b=>{s(b).connected&&await l(b)},"disconnectWallet");gS(()=>()=>{k()},[]);let w=i(b=>{let x=b.find(I=>I.type===Uo.DEFAULT);return!x||x.state===ja.NOT_INSTALLED?!1:b.filter(I=>I.state!=ja.NOT_INSTALLED&&![Uo.DEFAULT,Uo.WALLET_CONNECT_2,Uo.LEDGER].includes(I.type)&&p(I.type).supportedChains.filter(P=>P.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),A=i((b,x,E)=>ar(E,x)&&C(b)&&!dS.includes(b)||b==Uo.DEFAULT&&!w(g),"shouldExcludeWallet");return{list:f.filter(b=>!A(b.type,e??"",m)),error:y,handleClick:T,disconnectConnectingWallets:k,disconnectWallet:v}}i(mo,"useWalletList");function Xa(t){let{list:e}=mo({}),o=e.filter(r=>r.state==="connected"),n=o.length?fo.createElement("div",{className:Rc()},o.map(r=>fo.createElement(Nr,{key:r.title},fo.createElement(TS,{src:r.image,size:14})))):SS.t("Connect Wallet");return fo.createElement(CS,{container:t.container,side:"bottom",content:n},fo.createElement(At,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&fo.createElement(Xc,null),fo.createElement(kS,{size:18,color:"black"})))}i(Xa,"WalletButton");import{i18n as Mr}from"@lingui/core";import{NotificationsIcon as $S,Popover as FS,SettingsIcon as OS,Tooltip as Br,TransactionIcon as US}from"@rango-dev/ui";import _e from"react";import{Notifications as wS}from"@rango-dev/ui";import ES from"react";import{useNavigate as IS}from"react-router-dom";import{create as vS}from"zustand";import{persist as xS,subscribeWithSelector as bS}from"zustand/middleware";var Ne=Ht(vS()(xS(bS((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 Ya(){let t=IS(),{getNotifications:e,clearNotifications:o}=Ne(),n=e(),r=h().blockchains(),{findToken:a}=h();return ES.createElement(wS,{list:n,getBlockchainImage:l=>fp(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${F.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(Ya,"NotificationContent");import{useManager as AS}from"@rango-dev/queue-manager-react";import{InProgressIcon as NS}from"@rango-dev/ui";import tu from"react";var WS=i(()=>{let{manager:t}=AS();return dt(t).map(({swap:o})=>o).find(o=>o.status==="running")?tu.createElement(Jc,null,tu.createElement(NS,{color:"info",size:6})):null},"InProgressTransactionBadge"),ou=WS;import{EventSeverity as MS}from"@rango-dev/queue-manager-rango-preset";import{Typography as BS}from"@rango-dev/ui";import nu from"react";function ru(){let{getNotifications:t}=Ne(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===MS.WARNING);return o?nu.createElement(Yc,{isSever:n},nu.createElement(BS,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(ru,"NotificationsBadge");import{RefreshProgressButton as LS}from"@rango-dev/ui";import Za,{useEffect as PS,useState as iu}from"react";var DS=1e3,au=60,_S=100;function Wr({onClick:t}){let[e,o]=iu(0),[n,r]=iu(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");PS(()=>{let p;return t?p=window.setInterval(()=>{o(c=>c+1),e===au&&l()},DS):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 Za.createElement(At,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},Za.createElement(Zc,{onTransitionEnd:()=>r(!1),isRefetched:n},Za.createElement(LS,{size:22,color:t?"black":"gray",progress:e/au*_S})))}i(Wr,"RefreshButton");function go(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Ze("notification",s)||r.includes("notifications");return _e.createElement(_e.Fragment,null,!r.includes("refresh")&&_e.createElement(Br,{container:a||B(),side:"top",content:Mr.t("Refresh")},_e.createElement(Wr,{onClick:e})),!l&&_e.createElement(FS,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:_e.createElement(Ya,null)},_e.createElement("div",null,_e.createElement(Br,{container:B(),side:"top",content:Mr.t("Notifications")},_e.createElement(At,{size:"small",variant:"ghost"},_e.createElement($S,{size:18,color:"black"}),_e.createElement(ru,null))))),!r.includes("settings")&&_e.createElement(Br,{container:B(),side:"top",content:Mr.t("Settings")},_e.createElement(At,{size:"small",variant:"ghost",onClick:n},_e.createElement(OS,{size:18,color:"black"}))),!r.includes("history")&&_e.createElement(Br,{container:B(),side:"top",content:Mr.t("Transactions History")},_e.createElement(At,{size:"small",variant:"ghost",onClick:o},_e.createElement(US,{size:18,color:"black"}),_e.createElement(ou,null))))}i(go,"HeaderButtons");import{i18n as Ja}from"@lingui/core";import{Divider as lu,MessageBox as qS,RefreshIcon as HS}from"@rango-dev/ui";import zo from"react";import{Button as zS,styled as QS}from"@rango-dev/ui";var su=QS(zS,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Ra(t){let{open:e,onClose:o}=t;return zo.createElement(X,{open:e,dismissible:!0,onClose:o,container:B()},zo.createElement(qS,{title:Ja.t("Something went wrong"),type:"error",description:Ja.t("Something went wrong. Please refresh the app.")},zo.createElement(lu,{size:30}),zo.createElement(su,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},zo.createElement(HS,{size:20,color:"primary"}),zo.createElement(lu,{size:4,direction:"horizontal"}),Ja.t("Refresh"))))}i(Ra,"RefreshModal");function es(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(es,"onScrollContentAttachStatusToContainer");import{css as GS,styled as ts}from"@rango-dev/ui";var pu="700px",Lr=GS({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),cu=ts("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:pu},fixed:{height:pu}}}}),uu=ts("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),mu=ts("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 ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Pa(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,c]=XS(!1),u=oe.use.connectedWallets(),{config:{features:m,theme:d}}=h(),{watermark:g}=ue(),f=g==="FULL",{activeTheme:y}=Oo(d||{}),S=Ze("connectWalletButton",m),{isActiveTab:C,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:w}=ue(),A=Re(),{manager:b}=VS(),E=dt(b).map(({swap:ne})=>ne).some(ne=>ne.status==="running"),I=i(()=>w(lo.forceClaim,E),"onActivateTab"),P=i(()=>{r.onWallet?.()},"onConnectWallet"),H=typeof r.hasBackButton>"u"||r.hasBackButton,N=fu(null),J=fu(null);return os(()=>(Ir()&&J.current&&e(J.current),()=>{o()}),[]),os(()=>(N.current?.addEventListener("scroll",es),()=>{N.current?.removeEventListener("scroll",es)}),[]),os(()=>{c(l==="failed")},[l]),Ie.createElement(cu,{height:s,id:ke.SWAP_BOX_ID,className:`${y()} ${Lr()}`,ref:J},Ie.createElement(jS,{prefix:Ie.createElement(Ie.Fragment,null,H&&Ie.createElement(Ga,{onClick:()=>{A(),r.onBack&&r.onBack()}})),title:r.title,suffix:Ie.createElement(Ie.Fragment,null,r.suffix,r.onWallet&&!S&&Ie.createElement(Xa,{container:B(),onClick:P,isConnected:!!u?.length}),r.onCancel&&Ie.createElement(Ka,{onClick:r.onCancel}))}),Ie.createElement(uu,{ref:N},n),Ie.createElement(Ha,{open:k,onClose:()=>v(!1),onConfirm:I}),Ie.createElement(mu,null,Ie.createElement("div",{className:"footer__content"},T&&!C&&Ie.createElement("div",{className:"footer__alert"},Ie.createElement(Qa,{onActivateTab:I}),Ie.createElement(du,{size:10})),a),Ie.createElement(du,{size:12}),Ie.createElement("div",{className:`footer__logo ${f?"logo__show":"logo__hidden"}`},Ie.createElement(KS,null))),Ie.createElement(Ra,{open:p,onClose:()=>c(!1)}))}i(ie,"Layout");import{styled as YS}from"@rango-dev/ui";var gu="$20 $20 $10 $20",dn=YS("div",{padding:gu,overflowY:"auto",flexGrow:1});import{styled as ZS}from"@rango-dev/ui";var le=ZS("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 Qo}from"@lingui/core";import{useState as hu}from"react";function yu(){let[t,e]=hu(!1),[o,n]=hu(void 0),{findToken:r}=h(),a=h().customTokens();function s(p,c){switch(p){case"duplicated":return{title:Qo.t("Duplicate Token"),message:Qo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{title:Qo.t("Token Already Exists"),message:Qo.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{title:Qo.t("Token Not Found"),message:Qo.t(`Sorry, no token was found on ${c} blockchain with the provided address. please make sure you have entered the right token address.`)}}}return i(s,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:p,tokenAddress:c})=>{e(!0);try{if(a.some(y=>y.address?.toLowerCase()===c.toLowerCase())){let y=s("duplicated");n(y);return}let m=await fetch(`${ut("BASE_URL")}/meta/token?apiKey=${ut("API_KEY")}&blockchain=${p}&address=${c}`),d=m.headers.get("content-type"),g=d&&d.includes("application/json")&&await m.json();if(!g||g.error){let y=s("not-found",p);n(y);return}if(r({blockchain:g.blockchain,address:g.address,symbol:g.symbol})){let y=s("token-exist");n(y);return}return g}catch(u){throw n(void 0),new Error(u.message)}finally{e(!1)}},"fetchCustomToken"),loading:t,error:o}}i(yu,"useFetchCustomToken");var lT=oT("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${RS} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}}),pT=1e3;function Tu(){let t=aT(),[e]=sT(),o=Re(),{setCustomToken:n}=h(),r=h().blockchains(),a=e.get("blockchain")||"",s=rn(a,r),[l,p]=Pr(""),[c,u]=Pr(!1),[m,d]=Pr(),{fetchCustomToken:g,loading:f,error:y}=yu(),[S,C]=Pr(""),T=!!s&&Mo(s,l),k=!s||!l||!T,v=i(async()=>{if(s)try{let b=await g({blockchain:a,tokenAddress:l});C(""),b&&d(b)}catch(b){b.message==="Failed to fetch"&&(C(Nt.t("Network Error")),u(!0))}},"getCustomToken"),w=i(()=>{y&&p(""),u(!1)},"closeErrorModal"),A=i(async()=>{S&&setTimeout(async()=>{await v()},pT),w()},"handleErrorModalButtonClick");return iT(()=>{y&&u(!0)},[y]),be.createElement(ie,{header:{title:Nt.t("Add Custom Token")}},be.createElement(le,null,be.createElement(lT,null,be.createElement("div",null,be.createElement(Wa,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!s?.logo,value:s?{name:s.displayName,logo:s.logo}:void 0,title:Nt.t("Select chain"),placeholder:Nt.t("Select chain")}),be.createElement(fn,{size:"24"}),be.createElement(rT,{size:"large",variant:"label"},Nt.t("Enter Address")),be.createElement(fn,{size:10}),be.createElement(nT,{fullWidth:!0,disabled:!s,variant:"contained",placeholder:Nt.t("Enter token address"),size:"large",value:l,suffix:!!l&&T&&be.createElement(eT,{color:"success",size:12}),onChange:b=>p(b.target.value)}),!T&&!!l&&be.createElement(be.Fragment,null,be.createElement(fn,{size:4}),be.createElement(JS,{type:"error",variant:"alarm",title:"Invalid Address"}))),be.createElement(Su,{disabled:k,type:"primary",variant:"contained",loading:f,size:"large",onClick:v},Nt.t("Import"))),be.createElement(X,{open:c,dismissible:!0,onClose:w,container:B()},be.createElement(tT,{title:y?.title||S,type:"error",description:y?.message||Nt.t("Failed Network, Please retry.")},be.createElement(fn,{size:40}),be.createElement(fn,{size:10}),be.createElement(Su,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:A},S?Nt.t("Retry"):Nt.t("Add another custom token")))),s&&m&&be.createElement(La,{blockchain:s,token:m,onSubmitClick:()=>{m&&(n(m),d(void 0),o())},onClose:()=>d(void 0),open:!!s&&!!m})))}i(Tu,"AddCustomTokenPage");import{i18n as Fs}from"@lingui/core";import{useManager as Ck}from"@rango-dev/queue-manager-react";import{Alert as Ed,Button as kk,css as Us,Divider as Os,IconButton as Id,styled as vk,Typography as xk,WalletIcon as bk}from"@rango-dev/ui";import Be,{useEffect as fi,useLayoutEffect as wk,useRef as Ek,useState as In}from"react";import{useNavigate as Ik}from"react-router-dom";import{i18n as Co}from"@lingui/core";import{Alert as rm,BalanceErrors as pC,Button as im,ChevronLeftIcon as cC,Divider as Kr,MessageBox as uC,Typography as ys}from"@rango-dev/ui";import R,{useCallback as mC,useEffect as am,useMemo as dC,useState as ko}from"react";import{useNavigate as fC}from"react-router-dom";import{i18n as Dr}from"@lingui/core";function _r(t){switch(t.type){case 0:return Dr.t("Route has been updated.");case 3:return Dr.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Dr.t("Route swappers has been updated.");case 2:return Dr.t("Route internal coins has been updated.");default:return""}}i(_r,"getQuoteUpdateWarningMessage");import{i18n as as}from"@lingui/core";import{Alert as gT,ChevronDownIcon as hT,CloseIcon as yT,Divider as Eu,IconButton as Iu,PasteIcon as ST,Typography as TT,WalletIcon as CT}from"@rango-dev/ui";import $e,{useEffect as kT,useRef as vT}from"react";import Ur,{useRef as dT}from"react";import*as qo from"@radix-ui/react-collapsible";import{keyframes as Cu,styled as $r}from"@rango-dev/ui";var ns=300,uT=Cu({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),mT=Cu({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),ku=$r(qo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),rs=$r(qo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Fr=$r(qo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${uT} ${ns}ms ease-out`},false:{animation:`${mT} ${ns}ms ease-out`}}}}),Or=$r("div",{transition:`all ${ns}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function zr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=dT(null);return Ur.createElement(ku,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&Ur.createElement(rs,{className:"collapsible_trigger",onClick:a},s),Ur.createElement(Fr,{className:"collapsible_content",open:e},r),l==="bottom"&&Ur.createElement(rs,{className:"collapsible_trigger",onClick:a},s))}i(zr,"CustomCollapsible");import{darkTheme as vu,styled as is,TextField as fT}from"@rango-dev/ui";var xu=is("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),bu=is(fT,{backgroundColor:"$neutral100",padding:"$15"}),wu=is("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${vu} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${vu} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function Au(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=q(),{config:s}=h(),l=h().blockchains(),p=er(e.name,l),c=vT(null),u=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),g=n&&!!r&&e&&!Mo(e,r),f=i(()=>{a("")},"handleClear"),y=i(async C=>{if(C.preventDefault(),navigator.clipboard!==void 0){let T=await navigator.clipboard.readText();a(T),c?.current?.focus()}},"handlePaste"),S=i(()=>r?$e.createElement(Iu,{onClick:f,variant:"ghost"},$e.createElement(yT,{size:12,color:"gray"})):m?null:$e.createElement(Iu,{onClick:y,variant:"ghost"},$e.createElement(ST,{size:16})),"renderSuffix");return kT(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),$e.createElement(xu,null,$e.createElement(zr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:$e.createElement(wu,null,$e.createElement("div",{className:"button__content"},$e.createElement(CT,{size:18,color:"info"}),$e.createElement(Eu,{size:4,direction:"horizontal"}),$e.createElement(TT,{variant:"label",size:"medium",color:n?"$neutral600":void 0},as.t("Send to a different address"))),$e.createElement(Or,{orientation:n?"up":"down"},$e.createElement(hT,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},$e.createElement(bu,{ref:c,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:as.t("Enter {blockchainName} address",{blockchainName:p}),value:r||"",suffix:S(),onChange:C=>{let T=C.target.value;a(T)}})),g&&$e.createElement($e.Fragment,null,$e.createElement(Eu,{size:4}),$e.createElement(gT,{variant:"alarm",type:"error",title:as.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(Au,"CustomDestination");import{css as xT,darkTheme as ss,IconButton as bT,styled as Pt}from"@rango-dev/ui";var Nu=Pt("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Wu=Pt("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),wT=Pt("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${ss} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${ss} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${ss} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Mu=Pt(wT,{alignSelf:"stretch",minHeight:"93px"}),Bu=Pt("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Lu=Pt(bT,{position:"absolute",left:"$20"}),Pu=Pt("div",{paddingTop:"$20"}),Du=xT({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),_u=Pt("div",{display:"flex"}),$u=Pt("div",{overflow:"visible",width:"100%"});import{i18n as St}from"@lingui/core";import{Button as iC,Divider as gs,Image as aC,MessageBox as Gr,SelectableWallet as sC,Typography as tm,WalletState as om}from"@rango-dev/ui";import fe,{useEffect as nm,useState as To}from"react";import{i18n as ju}from"@lingui/core";import{Divider as YT,getCategoriesCount as ZT,SelectableCategoryList as JT,styled as Yu,Typography as RT,Wallet as eC,WalletState as Xu}from"@rango-dev/ui";import ft,{useState as hn}from"react";import{i18n as Vo}from"@lingui/core";import{Button as NT,Divider as Uu,Image as WT,MessageBox as MT,Select as BT,TextField as LT}from"@rango-dev/ui";import{namespaces as PT}from"@rango-dev/wallets-shared";import et,{useEffect as DT,useState as zu}from"react";import{keyframes as ET,styled as Qr}from"@rango-dev/ui";var HL=Qr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Ho=Qr("div",{position:"relative"}),IT=ET({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Go=Qr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${IT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),qr=Qr("div",{"& img":{borderRadius:"50%"}});import{styled as Fu,Typography as AT}from"@rango-dev/ui";var Ou=Fu("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),ls=Fu(AT,{paddingLeft:"$10"}),ps={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var qu={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Qu(t){let e=t?PT[t].derivationPaths:null;return e?[...e,qu]:[]}i(Qu,"getDerivationPaths");function ho(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:r,type:a,open:s}=t,[l,p]=zu(null),[c,u]=zu("0"),m=l===qu.id,d=Qu(n),g=i(({value:y})=>{let S=d?.find(C=>C.id===y);S&&p(S.id)},"handleDerivationPathItemClick"),f=i(()=>{let y=d.find(S=>S.id===l);if(y)o(y.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return DT(()=>{p(Qu(n)[0]?.id||null)},[n]),et.createElement(X,{open:s,onClose:e,container:document.getElementById(ke.SWAP_BOX_ID)||document.body},et.createElement(Uu,{size:20}),et.createElement(MT,{type:"info",title:Vo.t("Select Derivation Path"),description:Vo.t(`In order to connect to ${a}, you must first select a Derivation Path`),icon:et.createElement(Ho,null,et.createElement(qr,null,et.createElement(WT,{src:r,size:45})),et.createElement(Go,null))}),et.createElement(Ou,null,et.createElement(ls,{variant:"body",size:"xsmall",color:"$neutral600"},Vo.t("Choose Derivation Path Template")),et.createElement(BT,{value:l||"",options:d.map(y=>({value:y.id,label:y.label})),variant:"filled",handleItemClick:g,styles:{trigger:ps}}),et.createElement(Uu,{size:20}),et.createElement(ls,{variant:"body",size:"xsmall",color:"$neutral600"},m?Vo.t("Enter Path"):Vo.t("Enter Index")),et.createElement(LT,{type:m?"text":"number",variant:"contained",value:c,onChange:y=>u(y.target.value),style:ps})),et.createElement(NT,{type:"primary",onClick:f,disabled:!d||!l||!c},Vo.t("Confirm")))}i(ho,"WalletDerivationPathModal");import{Divider as FT}from"@rango-dev/ui";import us from"react";import{i18n as Ko}from"@lingui/core";import{Image as _T,MessageBox as cs,WalletState as $T}from"@rango-dev/ui";import yo from"react";function Hu(t){let{state:e,image:o,error:n}=t;return e===$T.CONNECTED?yo.createElement(cs,{type:"success",title:Ko.t("Wallet Connected"),description:Ko.t("Your wallet is connected, you can use it to swap.")}):n?yo.createElement(cs,{type:"error",title:Ko.t("Failed to Connect"),description:n||Ko.t("Your wallet is not connected. Please try again.")}):yo.createElement(cs,{type:"loading",title:Ko.t("Connecting to your wallet"),description:Ko.t("Click connect in your wallet popup."),icon:yo.createElement(Ho,null,yo.createElement(qr,null,yo.createElement(_T,{src:o,size:45})),yo.createElement(Go,null))})}i(Hu,"ModalContent");function gn(t){let{open:e,onClose:o,...n}=t;return us.createElement(X,{open:e,onClose:o,container:document.getElementById(ke.SWAP_BOX_ID)||document.body},us.createElement(Hu,{...n}),us.createElement(FT,{direction:"vertical",size:32}))}i(gn,"WalletModal");import{i18n as ms}from"@lingui/core";import{Button as UT,Checkbox as zT,Divider as QT,Image as Vu,ListItemButton as qT,MessageBox as HT,Radio as GT,RadioRoot as VT}from"@rango-dev/ui";import{namespaces as Ku}from"@rango-dev/wallets-shared";import Fe,{useMemo as KT,useState as jT}from"react";import{styled as OT}from"@rango-dev/ui";var Gu=OT("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var XT=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function So(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=jT([]),a=h().blockchains(),s=KT(()=>o?.map(c=>({name:c,logo:XT(a,Ku[c].mainBlockchain),title:Ku[c].title})),[o]),l=i(c=>{r(e?[c]:u=>u.includes(c)?u.filter(m=>m!==c):u.concat(c))},"onSelect"),p=i(c=>e?Fe.createElement(VT,{value:n?.[0]},c):Fe.createElement(Fe.Fragment,null,c),"wrapRadioRoot");return Fe.createElement(X,{open:t.open,onClose:t.onClose,container:document.getElementById(ke.SWAP_BOX_ID)||document.body},Fe.createElement(QT,{size:20}),Fe.createElement(HT,{type:"info",title:ms.t("Select chain types"),description:ms.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Fe.createElement(Ho,null,Fe.createElement(Nr,null,Fe.createElement(Vu,{src:t.image,size:45})),Fe.createElement(Go,null))}),Fe.createElement(Gu,null,p(Fe.createElement(Fe.Fragment,null,s?.map(c=>Fe.createElement(qT,{key:c.name,id:c.name,title:c.title,hasDivider:!0,style:{height:60},onClick:()=>l(c.name),start:Fe.createElement(Vu,{src:c.logo,size:22}),end:e?Fe.createElement(GT,{value:c.name}):Fe.createElement(zT,{checked:n.includes(c.name)})}))))),Fe.createElement(UT,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},ms.t("Confirm")))}i(So,"WalletNamespacesModal");var tC=Yu("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),oC=Yu(le,{textAlign:"center"}),Hr=3e3,ds=300;function Zu(){let{fetchStatus:t}=h(),[e,o]=hn("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=hn(!1),[l,p]=hn(null),[c,u]=hn(null),[m,d]=hn(""),g=null,f=ue.use.isActiveTab(),{list:y,handleClick:S,error:C,disconnectConnectingWallets:T}=mo({onBeforeConnect:L=>{g=setTimeout(()=>{s(!0),d(L)},ds)},onConnect:L=>{g&&clearTimeout(g),setTimeout(()=>{m===L&&s(!1)},Hr)}}),k=i(()=>{T(),s(!1)},"handleCloseWalletModal"),v=i(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),w=i(()=>{c&&u({...c,open:!1})},"handleCloseDerivationPathModal"),A=y.find(L=>L.type===m),b=A?.image||"",x=A?.state||Xu.NOT_INSTALLED,E=Ip(y,n),P=ZT(E)!==1,H=Ap(y,e),N=i(L=>{Rn(y,r.multiWallets)||(L.namespaces?.length&&L.state===Xu.DISCONNECTED?L.namespaces.length>1?p({open:!0,providerType:L.type,providerImage:L.image,availableNamespaces:L.namespaces,singleNamespace:L.singleNamespace}):L.needsDerivationPath?u({open:!0,providerType:L.type,providerImage:L.image,namespace:L.namespaces[0]}):S(L.type):S(L.type))},"handleWalletItemClick"),J=i(L=>{let M=H.find(K=>K.type===l?.providerType);M?.singleNamespace&&M?.needsDerivationPath&&L[0]?u({open:!0,providerType:M.type,providerImage:M.image,namespace:L[0]}):S(l?.providerType,L.map(K=>({namespace:K}))),v()},"handleConfirmNamespaces"),ne=i(L=>{L&&c?.namespace&&S(c.providerType,[{namespace:c.namespace,derivationPath:L}]),w()},"handleDerivationPathConfirm");return ft.createElement(ie,{header:{title:ju.t("Connect Wallets")}},ft.createElement(oC,null,P&&ft.createElement(ft.Fragment,null,ft.createElement(JT,{setCategory:o,category:e,blockchains:E,isLoading:t==="loading"}),ft.createElement(YT,{size:24})),ft.createElement(RT,{variant:"title",size:"xmedium",align:"center"},ju.t("Choose a wallet to connect.")),ft.createElement(tC,null,H.map((L,M)=>{let K=`wallet-${M}-${L.type}`;return ft.createElement(eC,{key:K,...L,container:B(),onClick:()=>N(L),isLoading:t==="loading",disabled:!f})}),ft.createElement(gn,{open:!!a,onClose:k,image:b,state:x,error:C}),ft.createElement(So,{open:!!l?.open,onClose:v,onConfirm:J,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),ft.createElement(ho,{open:!!c?.open,selectedNamespace:c?.namespace,type:c?.providerType,image:c?.providerImage,onClose:w,onConfirm:ne}))))}i(Zu,"WalletsPage");import{keyframes as nC,styled as fs}from"@rango-dev/ui";var Ju=fs("div",{position:"relative"}),rC=nC({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Ru=fs("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${rC} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),em=fs("div",{"& img":{borderRadius:"50%"}});var lC=7;function hs(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ue.use.isActiveTab(),p=oe.use.connectedWallets(),{blockchains:c}=h(),[u,m]=To(""),[d,g]=To(null),[f,y]=To(!1),[S,C]=To(null),[T,k]=To(null),[v,w]=To(null),{suggestAndConnect:A}=Vr(),b=null,{list:x,error:E,handleClick:I,disconnectWallet:P,disconnectConnectingWallets:H}=mo({chain:e,onBeforeConnect:W=>{b=setTimeout(()=>{m(W)},ds)},onConnect:W=>{s?.(W),b&&clearTimeout(b),setTimeout(()=>{m("")},Hr)}}),[N,J]=To(x),ne=x.length,L=r&&ne-r>0,M=i(async W=>{y(!1),C("in-progress");try{await A(W.walletType,W.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain"),K=i(()=>{T&&k({...T,open:!1})},"handleCloseNamespaceModal"),ge=i(()=>{v&&w({...v,open:!1})},"handleCloseDerivationPathModal"),Y=i(W=>{k({open:!0,providerType:W.type,providerImage:W.image,availableNamespaces:W.namespaces,singleNamespace:W.singleNamespace})},"handleOpenNamespacesModal"),ae=i(W=>{let me=N.find(de=>de.type===T?.providerType);me?.singleNamespace&&me?.needsDerivationPath&&W[0]?w({open:!0,providerType:me.type,providerImage:me.image,namespace:W[0]}):I(T?.providerType,W.map(de=>({namespace:de}))),K()},"handleConfirmNamespaces"),he=i(W=>{W&&v?.namespace&&I(v.providerType,[{namespace:v.namespace,derivationPath:W}]),ge()},"handleDerivationPathConfirm");nm(()=>{J(W=>{let me=x.findIndex(de=>o(de.type,e));return L&&me>1?[x[me]].concat(x.filter((de,ze)=>ze!==me)):W.map(de=>x.find(ze=>ze.type===de.type)??de)})},[JSON.stringify(x)]);let Ce=document.getElementById(ke.SWAP_BOX_ID);nm(()=>{let W=null;return(S==="completed"||S==="rejected")&&(W=setTimeout(()=>C(null),Hr)),()=>{W&&clearTimeout(W)}},[S]);let O=i(()=>{H(),m("")},"handleCloseWalletModal");return fe.createElement(fe.Fragment,null,N.slice(0,r).map(W=>{let me=bp({connectedWallets:p,walletType:W.type,chain:e}),de=me?lr(me,lC):"",ze=ar(c(),e),$=!p.find(ce=>ce.walletType===W.type&&ce.chain===e),Q=ze&&$&&W.state===om.CONNECTED,j=Q?St.t({id:"Add {chain} chain",values:{chain:e}}):de,pe=i(async()=>{W.state===om.DISCONNECTED?W.namespaces?.length?W.namespaces.length>1?Y(W):W.needsDerivationPath?w({open:!0,providerType:W.type,providerImage:W.image,namespace:W.namespaces[0]}):I(W.type):I(W.type):W.namespaces&&!de?(await P(W.type),Y(W)):Q?(g({walletType:W.type,chain:e,address:me??""}),y(!0)):n({walletType:W.type,chain:e,address:me??""})},"onSelectableWalletClick"),te=d?.chain?er(d.chain,c()):void 0;return fe.createElement(fe.Fragment,{key:`${W.title}_${te}`},fe.createElement(gn,{open:u===W.type,onClose:O,image:W.image,state:W.state,error:E}),fe.createElement(So,{open:!!T?.open,onClose:K,onConfirm:ae,image:T?.providerImage,availableNamespaces:T?.availableNamespaces,singleNamespace:T?.singleNamespace}),fe.createElement(ho,{open:!!v?.open,selectedNamespace:v?.namespace,type:v?.providerType,image:v?.providerImage,onClose:ge,onConfirm:he}),!!d&&fe.createElement(X,{open:!!d&&f,container:Ce,onClose:()=>{g(null)}},fe.createElement(Gr,{title:St.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:te}}),type:"warning",description:St.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:te}})},fe.createElement(gs,{size:18}),fe.createElement(gs,{size:32}),fe.createElement(iC,{onClick:M.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},St.t("Confirm")))),S&&fe.createElement(X,{open:!!S,onClose:C.bind(null,null),container:Ce},S==="in-progress"&&fe.createElement(Gr,{type:"loading",title:St.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:te}}),description:St.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:te}}),icon:fe.createElement(Ju,null,fe.createElement(em,null,fe.createElement(aC,{src:W.image,size:45})),fe.createElement(Ru,null))}),S==="completed"&&fe.createElement(Gr,{type:"success",title:St.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:te}}),description:St.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:te}})}),S==="rejected"&&fe.createElement(Gr,{type:"error",title:St.t("Request Rejected"),description:St.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:te}})}),fe.createElement(gs,{direction:"vertical",size:32})),fe.createElement(sC,{key:W.type,description:j,onClick:pe,selected:o(W.type,e),disabled:!l,...W}))}),L&&fe.createElement(Mu,{selected:!1,onClick:a},fe.createElement(tm,{variant:"label",size:"medium"},St.t("Show more wallets"),fe.createElement(tm,{variant:"label",size:"medium",color:"$primary"},"\xA0+",ne-(r??0)))))}i(hs,"WalletList");var gC=2;function sm(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=fC(),l=h().blockchains(),{selectedQuote:p,setSelectedWallets:c,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:m,customDestination:d,setCustomDestination:g}=q(),{connectedWallets:f,selectWallets:y}=oe(),{config:S}=h(),[C,T]=ko(""),[k,v]=ko([]),[w,A]=ko(""),[b,x]=ko(null),[E,I]=ko(!!d),P=dC(()=>io({filter:"all",quote:p}),[p]),H=io({filter:"required",quote:p}),N=l.find($=>$.name===p?.swaps[p?.swaps.length-1].to.blockchain),J=i($=>H.includes($),"isWalletRequiredFor"),ne=mC(()=>f.filter($=>$.selected&&P.includes($.chain)),[f,P]),[L,M]=ko(ne()),[K,ge]=ko([]),Y=i(($,Q)=>ge(j=>j.concat({blockchain:$,walletType:Q})),"addNextSelectedWallets"),ae=k.length>0,he=i(($,Q)=>!!L.find(j=>j.walletType===$&&j.chain===Q&&j.selected&&(J(Q)||!J(Q)&&!d)),"isSelected"),Ce=i(($,Q,j)=>{let pe=!1;return $.map(te=>{if(te.chain===Q){let ce=te.selected;return!pe&&j?(pe=!0,ce=!0):j||(ce=!1),{...te,selected:ce}}return te})},"updateSelectableWallets"),O=i($=>{I($),$?J(N?.name??"")||M(Q=>Ce(Q,N?.name||"",!1)):(g(""),M(Q=>Ce(Q,N?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),W=i($=>{if(C&&T(""),he($.walletType,$.chain))return;let j=f.find(pe=>pe.walletType===$.walletType&&pe.chain===$.chain);j&&(n(),$.chain===N?.name&&E&&!J(N.name)&&(I(!1),g(null)),M(pe=>pe.filter(te=>te.chain!==$.chain).concat({...j,selected:!0})))},"onChange"),me=i(()=>{let $=L.filter(Q=>Q.selected);y($),c($),m(!0),o()},"onConfirmBalance"),de=i(async()=>{v([]),A(""),x(null);let $=await r?.({selectedWallets:L.filter(j=>j.selected),customDestination:d}),Q=$.warnings;Q?.balance?.messages&&v(Q.balance.messages),Q?.quoteUpdate&&x(Q.quoteUpdate),$.error&&A(ic($.error)),!$.error&&!Q?.balance?.messages.length?me():v(Q?.balance?.messages??[])},"onConfirmWallets");am(()=>{M($=>{let Q=[];return $.forEach(j=>{!f.some(te=>te.chain===j.chain&&te.walletType===j.walletType&&te.address===j.address)||Q.push(j)}),Q=Q.concat(f.filter(j=>!!!Q.find(te=>te.chain===j.chain)&&j.selected&&P.includes(j.chain))),Q})},[f,P]),am(()=>{let $=[];K.length>0&&(K.forEach(Q=>{let j=f.find(pe=>pe.chain===Q.blockchain&&pe.walletType===Q.walletType);j?W(j):$.push(Q)}),ge($))},[f,K]);let ze=document.getElementById(ke.SWAP_BOX_ID);return R.createElement(X,{open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!C,container:ze,...!C&&{styles:{container:{height:"100%"}},footer:R.createElement(_u,null,R.createElement(im,{loading:a,disabled:xc(a,E,d,p,L,N),onClick:de,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Co.t("Confirm")))},...C&&{styles:{container:{height:"100%",padding:"$0"}},header:R.createElement(Bu,null,R.createElement(Lu,{variant:"ghost",onClick:T.bind(null,"")},R.createElement(cC,{size:16})),R.createElement(ys,{variant:"headline",size:"small"},Co.t({id:"Your {blockchainName} wallets",values:{blockchainName:ct(C,l)}})))},anchor:"center"},R.createElement(X,{open:ae,onClose:v.bind(null,[]),container:ze},R.createElement(uC,{title:Co.t("Insufficient account balance"),type:"error",description:R.createElement(pC,{messages:k??[]})},R.createElement(im,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:me},Co.t("Proceed anyway")))),C&&R.createElement(Pu,null,R.createElement("div",{className:Du()},R.createElement(hs,{chain:C,isSelected:he,selectWallet:W,onShowMore:()=>T(C),onConnect:$=>{Y(C,$)}}))),!C&&R.createElement(R.Fragment,null,w&&R.createElement(R.Fragment,null,R.createElement(rm,{variant:"alarm",type:"error",title:Co.t(w)}),R.createElement(Kr,{size:12})),b&&R.createElement(R.Fragment,null,R.createElement(rm,{variant:"alarm",type:"warning",title:_r(b)}),R.createElement(Kr,{size:12})),R.createElement($u,null,P.map(($,Q)=>{let j=l.find(ve=>ve.name===$),pe=`wallet-${Q}`,te=Q===P.length-1,ce=te&&N&&S?.customDestination!==!1;return R.createElement("div",{key:pe},R.createElement(Nu,null,R.createElement(ys,{variant:"title",size:"xmedium"},Co.t({id:"Your {blockchainName} wallets",values:{blockchainName:j?.shortName}})),R.createElement(ys,{variant:"label",color:"$neutral700",size:"medium"},Co.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:j?.shortName}}))),R.createElement(Kr,{size:24}),R.createElement(Wu,null,R.createElement(hs,{chain:$,isSelected:he,selectWallet:W,limit:gC,onShowMore:()=>T(j?.name??""),onConnect:ve=>{Y($,ve)}})),!te&&R.createElement(Kr,{size:32}),ce&&R.createElement(Au,{blockchain:N,open:E,handleOpenChange:O}))}))))}i(sm,"ConfirmWalletsModal");import{i18n as PC}from"@lingui/core";import{Alert as DC,Button as _C,InfoIcon as $C}from"@rango-dev/ui";import it from"react";import{Alert as SC,Button as TC,Divider as Cs,NoRouteIcon as CC,RefreshIcon as kC,Typography as fm}from"@rango-dev/ui";import rt from"react";import{i18n as lm}from"@lingui/core";var hC=24,yC=60;function pm(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:re().genericServerError,action:{onClick:n,title:lm.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:re().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:lm.t("Reset")}},description:re().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:re().noResultError.description}}i(pm,"makeInfo");var Ss=(o=>(o[o.small=hC]="small",o[o.large=yC]="large",o))(Ss||{}),Ts=(o=>(o.small="small",o.large="medium",o))(Ts||{});import{styled as jr}from"@rango-dev/ui";var cm=jr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),um=jr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),mm=jr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),dm=jr("div",{padding:"$6 $0"});function yn(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=pm(o,r,()=>a(s,!0),e);return rt.createElement(cm,null,rt.createElement(CC,{size:Ss[n],color:"gray"}),rt.createElement(Cs,{size:4}),rt.createElement(fm,{variant:"title",size:Ts[n]},re().noResultError.title),n==="large"&&rt.createElement(Cs,{size:4}),!!l.description&&rt.createElement(um,{size:n},rt.createElement(fm,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),rt.createElement(Cs,{size:n==="large"?"24":"4"}),!!l.alert&&rt.createElement(mm,{size:n},rt.createElement(SC,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&rt.createElement(TC,{size:"xsmall",type:l.alert.type,prefix:rt.createElement(dm,null,rt.createElement(kC,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(yn,"NoResult");import{i18n as Sn}from"@lingui/core";import{Button as xC,Divider as bC,MessageBox as wC,Typography as EC,WarningIcon as IC}from"@rango-dev/ui";import Dt from"react";import{Typography as Sm}from"@rango-dev/ui";import vs from"react";import{darkTheme as vC,styled as Xr}from"@rango-dev/ui";var gm=Xr("div",{width:"100%"}),ks=Xr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),hm=Xr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${vC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ym=Xr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Tm(t){let{title:e,value:o,valueColor:n}=t;return vs.createElement(hm,null,vs.createElement(Sm,{size:"medium",variant:"label",className:"_title"},e),vs.createElement(Sm,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Tm,"QuoteErrorsModalItem");function Cm(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Sn.t("Swapping"),value:D(r.inputUsdValue,4,4)},{title:Sn.t("Gas cost"),value:D(r.totalFee,2,2)},{title:Sn.t("Receiving"),value:D(r.outputUsdValue,4,4)},{title:Sn.t("Price impact"),value:D(r.priceImpact,2,2),valueColor:`${s}500`}];return Dt.createElement(X,{footer:Dt.createElement(xC,{type:"primary",size:"large",prefix:Dt.createElement(IC,null),fullWidth:!0,disabled:a,onClick:n},re().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},Dt.createElement(wC,{type:s,title:re().highValueLossError.impactTitle,description:re().highValueLossError.description}),Dt.createElement(ks,null,Dt.createElement(bC,{size:"4"}),Dt.createElement(EC,{size:"small",variant:"title"},Sn.t("Details")),Dt.createElement(ks,null,l.map((p,c)=>Dt.createElement(Tm,{key:c,...p})))))}i(Cm,"HighValueLossWarningModal");import{i18n as xs}from"@lingui/core";function km(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=xs.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&&(Lt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=re().highValueLossError.title),t.type===1&&(o.title=re().unknownPriceError.title),t.type===2&&(o.title=xs.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=xs.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(km,"makeAlerts");import{i18n as jo}from"@lingui/core";import{Button as vm,Divider as xm,MessageBox as AC,Typography as NC}from"@rango-dev/ui";import vo from"react";import{useNavigate as WC}from"react-router-dom";function bm(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=WC(),c=e??o;return vo.createElement(X,{anchor:"bottom",open:n,prefix:vo.createElement(vm,{size:"small",variant:"ghost",onClick:()=>p("../"+F.settings)},vo.createElement(NC,{variant:"label",size:"medium",color:"$neutral900"},jo.t("Change settings"))),container:B(),onClose:r},vo.createElement(AC,{type:"warning",title:s.type===3?jo.t("High slippage"):jo.t("Low slippage"),description:s.type===3?jo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:c}}):jo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},vo.createElement(xm,{size:18}),vo.createElement(xm,{size:32}),vo.createElement(vm,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},jo.t("Confirm anyway"))))}i(bm,"SlippageWarningModal");import{Button as MC,MessageBox as BC,WarningIcon as LC}from"@rango-dev/ui";import Yr from"react";function wm(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Yr.createElement(X,{footer:Yr.createElement(MC,{type:"primary",size:"large",prefix:Yr.createElement(LC,null),fullWidth:!0,disabled:r,onClick:n},re().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},Yr.createElement(BC,{type:"warning",title:re().unknownPriceError.impactTitle,description:re().unknownPriceError.description}))}i(wm,"UnknownPriceWarningModal");function Tn(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:c,onChangeSettings:u}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:c},d=o?.type===0||o?.type===1,g=km(e,o?.type===3||o?.type===4?o:null);return g&&!n&&(g.action=null),it.createElement(it.Fragment,null,d&&it.createElement(yn,{error:o,fetch:s}),!!g&&it.createElement(gm,null,it.createElement(DC,{title:g.title,type:g.alertType,variant:"alarm",...g.action==="show-info"&&{action:it.createElement(ym,{onClick:l},it.createElement($C,{size:12,color:"gray"}))},...g.action==="change-settings"&&{action:it.createElement(_C,{size:"xxsmall",type:g.alertType,onClick:u},PC.t("Change"))}})),e&&it.createElement(it.Fragment,null,e.type===0&&it.createElement(Cm,{...m,warning:e}),(e.type===3||e.type===2)&&it.createElement(bm,{...m,warning:e}),e.type===1&&it.createElement(wm,{...m,warning:e})))}i(Tn,"QuoteWarningsAndErrors");import fk from"bignumber.js";import ci from"react";import{i18n as xo}from"@lingui/core";import{Alert as tk,Divider as Yo,FullExpandedQuote as ok,InfoIcon as nk,NumericTooltip as rd,QuoteTag as rk,StepDetails as ik,TokenAmount as ak,Typography as Zo}from"@rango-dev/ui";import Ms from"bignumber.js";import U,{useRef as sk,useState as lk}from"react";import{styled as bs}from"@rango-dev/ui";var ws=bs("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Em=bs("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Im=bs("div",{width:"100%",display:"flex"});import*as Zr from"@radix-ui/react-collapsible";import{Button as FC,css as Cn,darkTheme as We,Image as Am,styled as Ke,Typography as OC}from"@rango-dev/ui";var UC=300,Nm=Ke(Zr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${We} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Wm=Cn({padding:"$10 $15"}),Mm=Ke(FC,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${We} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${We} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${We} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Bm=Ke("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${We} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${We} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${We} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${We} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${We} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${We} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${We} &`]:{backgroundColor:"$neutral400"}}}}]}),Lm=Cn({width:"100%",padding:"$15 $15 $10 $15"}),Pm=Cn({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Xo=Cn({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Dm=Cn({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${We} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),_m=Ke(Zr.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:{[`& ${Am}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Am}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${We} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),$m=Ke("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Fm=Ke(Fr,{width:"100%",background:"inherit"}),Es=Ke("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${UC}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),l$=Ke("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Om=Ke("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${We} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Um=Ke("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Is=Ke(OC,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),zm=Ke("div",{display:"flex",flexWrap:"wrap"}),As=Ke("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Qm=Ke("div",{display:"flex"}),Jr=Ke("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${We} &`]:{borderTopColor:"$neutral800"}});import{i18n as Wt}from"@lingui/core";import{ChevronDownIcon as QC,CloseIcon as qC,Divider as ti,IconButton as HC,NumericTooltip as GC,QuoteCost as VC,Typography as Tt}from"@rango-dev/ui";import ee,{useState as Vm}from"react";import{css as zC,styled as Rr}from"@rango-dev/ui";var ei=Rr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Ns=Rr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),qm=Rr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Hm=Rr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Gm=zC({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var KC=i(t=>t.fee.isZero()?null:ee.createElement(ei,null,ee.createElement(Tt,{variant:"label",size:"medium",color:"neutral600"},t.label),ee.createElement(Tt,{variant:"label",size:"medium"},"$",D(t.fee,4,4))),"NonPayableFee");function Km(t){let[e,o]=Vm(!1),[n,r]=Vm(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:c,showModalFee:u}=t,m=s?.swaps??[],d=B(),g=uc(m);return ee.createElement(ee.Fragment,null,ee.createElement(VC,{onClickFee:u?f=>{f.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:c,time:p,steps:a,tooltipGas:u?Wt.t("View more info"):void 0,tooltipContainer:d}),ee.createElement(X,{container:d,open:e,header:ee.createElement(Hm,null,ee.createElement(Tt,{variant:"title",size:"medium"},Wt.t("Gas & Fee Explanation")),ee.createElement(HC,{onClick:()=>o(!1),variant:"ghost"},ee.createElement(qC,{color:"gray",size:14}))),onClose:()=>{o(!1)}},ee.createElement(qm,null,ee.createElement(Tt,{variant:"title",size:"small"},Wt.t("Details")),ee.createElement(ti,{size:10}),Object.entries(g.payable).flatMap(([f,y])=>y.map((S,C)=>{let T=`payable-fee-${C}`,k=Ca(S);return ee.createElement(ei,{key:T},ee.createElement(Tt,{variant:"label",size:"medium",color:"neutral600"},ha(f,Wt.t)),ee.createElement(GC,{content:S.amount,container:d},ee.createElement(Tt,{variant:"label",size:"medium"},D(S.amount,2,2)," ",S.asset.symbol," ($",D(k,4,4),")")))})),ee.createElement(ei,{className:"total_payable_fee"},ee.createElement(Tt,{variant:"label",size:"medium"},Wt.t("Total Payable Fee")),ee.createElement(Tt,{variant:"label",size:"medium"},"$",D(l,4,4))),ee.createElement(Ns,null),Object.keys(g.nonePayable).length&&ee.createElement(zr,{triggerAnchor:"bottom",onClickTrigger:()=>r(f=>!f),trigger:ee.createElement("div",{className:Gm()},ee.createElement(Tt,{size:"small",variant:"body",color:"neutral700"},n?Wt.t("Hide non-payable fees"):Wt.t("Show non-payable fees")),ee.createElement(ti,{size:4,direction:"horizontal"}),ee.createElement(Or,{orientation:n?"up":"down"},ee.createElement(QC,{size:12,color:"gray"}))),open:n},ee.createElement(Tt,{size:"small",variant:"title"},Wt.t("Description")),ee.createElement(ti,{size:4}),ee.createElement(Tt,{size:"small",variant:"body",color:"neutral700"},Wt.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),ee.createElement(ti,{size:10}),Object.entries(g.nonePayable).map(([f,y],S)=>{let C=cc(y),T=ha(f,Wt.t),k=`non-payable-fee-${S}`;return ee.createElement(KC,{key:k,fee:C,label:T})}),ee.createElement(Ns,null)))))}i(Km,"QuoteCostDetails");import{i18n as Ym}from"@lingui/core";import{TokenAmount as Zm}from"@rango-dev/ui";import oi from"react";import{css as jC,styled as XC}from"@rango-dev/ui";var jm=XC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Xm=jC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function kn(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return oi.createElement(jm,null,oi.createElement(Zm,{direction:"horizontal",label:Ym.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}}),oi.createElement("div",{className:Xm()}),oi.createElement(Zm,{direction:"horizontal",tooltipContainer:B(),label:Ym.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(kn,"QuoteSummary");import{i18n as od}from"@lingui/core";import{ChevronDownIcon as JC,ChevronRightIcon as RC,Divider as Ws,Image as ek,Tooltip as si,Typography as ri}from"@rango-dev/ui";import z from"react";import{useLayoutEffect as YC,useState as vn}from"react";var Jm=480,Rm=768,ed=1024,td=1200,ZC=i(()=>{let[t,e]=vn(!1),[o,n]=vn(!1),[r,a]=vn(!1),[s,l]=vn(!1),[p,c]=vn(!1),u=i(()=>{e(window.innerWidth<=Jm),n(window.innerWidth>Jm&&window.innerWidth<=Rm),a(window.innerWidth>Rm&&window.innerWidth<=ed),l(window.innerWidth>ed&&window.innerWidth<=td),c(window.innerWidth>td)},"handleResize");return YC(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),ni=ZC;var ii=4,ai=6,xn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||B();return z.createElement(si,{container:l,side:"bottom",sideOffset:4,open:r,content:e},z.createElement($m,{className:n,state:a},z.createElement(ek,{src:o,size:16})))},"ImageComponent");function nd(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||B(),c=r.length,u=Ac(r),{isTablet:m,isMobile:d}=ni();return z.createElement(_m,{listItem:s==="list-item",ref:g=>e.current=g,selected:o,onClick:g=>{g.stopPropagation(),n(f=>!f)}},z.createElement("div",{className:Xo()},z.createElement(ri,{variant:"body",size:"xsmall"},od.t("Via:")),z.createElement(Ws,{direction:"horizontal",size:4}),r.map((g,f)=>{let y=`item-${f}`,S=z.createElement(Es,null,z.createElement(RC,{size:12,color:"black"}));return d||m?z.createElement(z.Fragment,{key:y},z.createElement(xn,{content:g.swapper.displayName,src:g.swapper.image,state:g.state,container:l}),f!==c-1&&z.createElement(z.Fragment,null,S)):z.createElement(z.Fragment,{key:y},c<=ii||c>ii&&f<ii-1?z.createElement(z.Fragment,null,z.createElement(xn,{content:g.swapper.displayName,src:g.swapper.image,state:g.state,container:l}),f!==c-1&&z.createElement(z.Fragment,null,S)):f===ii-1&&z.createElement(si,{container:p,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:Xo()},S,r.map((C,T)=>{let k=`image-${T}`;return T>=f&&z.createElement(z.Fragment,{key:k},z.createElement(xn,{content:C.swapper.displayName,src:C.swapper.image,state:C.state,open:!1}),T!==c-1&&z.createElement(z.Fragment,null,S))}))},z.createElement(As,{state:r.find((C,T)=>T>=f&&(C.state==="error"||C.state==="warning"))?.state},z.createElement(ri,{size:"xsmall",variant:"body"},"+",c-f))))})),z.createElement("div",{className:Xo()},z.createElement("div",{className:"blockchains_section"},z.createElement("div",{className:Xo()},z.createElement(ri,{variant:"body",size:"xsmall"},od.t("Chains:")),z.createElement(Ws,{direction:"horizontal",size:4}),u.map((g,f)=>z.createElement(z.Fragment,{key:g.displayName},u.length<=ai||u.length>ai&&f<ai-1?z.createElement(si,{container:p,side:"bottom",content:g.displayName,sideOffset:4},z.createElement(xn,{content:"",src:g.image,open:!1,className:f!==0?"blockchainImage":""})):f===ai-1&&z.createElement(si,{container:p,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:Xo()},u.map((y,S)=>S>=f&&z.createElement(xn,{key:y.displayName,content:"",src:y.image,open:!1,className:S>f?"blockchainImage":"",container:l})))},z.createElement(As,{className:"blockchainImage"},z.createElement(ri,{size:"xsmall",variant:"body"},"+",u.length-f))))),z.createElement(Ws,{direction:"horizontal",size:32}))),z.createElement(Es,{orientation:a?"up":"down"},z.createElement(JC,{size:12,color:"black"}))))}i(nd,"QuoteTrigger");function Bs(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:c=!0,onClickAllRoutes:u,fullExpandedMode:m=!1,container:d}=t,g=h().blockchains(),{findToken:f}=h(),y=h().swappers(),{customSlippage:S,slippage:C}=h(),T=S||C,[k,v]=lk(t.expanded),w=sk(null),A=D(o.value,6,6),b=D(n.value,6,6),x=n.usdValue?D(n.usdValue,4,4):"",E=mt(o.usdValue,n.usdValue??null),I=D(E,2,2),P=Lt(E??0),H=i((he,Ce)=>he.map((O,W)=>{let me,de=r?.type===3&&r.swap.swapperId===O.swapperId,ze=r?.type===4&&r.recommendedSlippages?.has(W),$=a?.type===2&&a.recommendedSlippages?.has(W),Q=de||ze,j=$;Q?me="error":j&&(me="warning");let pe=Q?xo.t("Slippage Error"):xo.t("Slippage Warning");return de&&(pe=xo.t("Bridge Limit Error")),{swapper:{displayName:nn(O.swapperId,y)??"",image:O.swapperLogo},from:{token:{displayName:O.from.symbol,image:O.from.logo},chain:{displayName:ct(O.from.blockchain,g)??"",image:O.from.blockchainLogo},price:{value:W===0&&!Ce?D(o.value,6,6):D(O.fromAmount,6,6),usdValue:D((O.from.usdPrice??0)*parseFloat(O.fromAmount),4,4),realValue:W===0?o.value:O.fromAmount,realUsdValue:new Ms(O.from.usdPrice??0).multipliedBy(O.fromAmount).toString()}},to:{token:{displayName:O.to.symbol,image:O.to.logo},chain:{displayName:ct(O.to.blockchain,g)||"",image:O.to.blockchainLogo},price:{value:D(O.toAmount,6,6),usdValue:D((O.to.usdPrice??0)*parseFloat(O.toAmount),4,4),realValue:O.toAmount,realUsdValue:new Ms(O.to.usdPrice??0).multipliedBy(O.toAmount).toString()}},state:me,alerts:Q||j?U.createElement(Em,{dense:m},U.createElement(tk,{variant:"alarm",type:Q?"error":"warning",title:pe,footer:U.createElement(Im,null,de&&U.createElement("div",null,U.createElement(Zo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(Yo,{direction:"vertical",size:2}),U.createElement(Zo,{size:"xsmall",variant:"body",color:"neutral900"},xo.t({id:"Yours: {amount} {symbol}",values:{amount:D(O.fromAmount,6,6),symbol:O?.from.symbol}}))),(ze||$)&&!de&&U.createElement("div",null,U.createElement(Zo,{size:"xsmall",variant:"body",color:"neutral900"},xo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(W)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(W)}}})),U.createElement(Yo,{direction:"vertical",size:2}),U.createElement(Zo,{size:"xsmall",variant:"body",color:"neutral900"},xo.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:an(O.estimatedTimeInSeconds),fee:D(Ta(O,f),2,2),internalSwaps:O.internalSwaps?H(O.internalSwaps):void 0}}),"getQuoteSteps"),N=H(e?.swaps??[]),J=N.length,ne=d||B(),L=Wc(t.quote.tags||[]),M=!!u,K=an(tr(e?.swaps)),ge=Cr(e?.swaps??[],f),Y=D(ge,2,2),ae=ge.gte(new Ms(rc));return m?U.createElement(ok,{selected:l,fee:Y,time:K,tooltipContainer:on(),steps:N,tags:L,feeWarning:ae,percentageChange:I,warningLevel:P,outputPrice:{value:b,usdValue:x,realValue:n.value,realUsdValue:n.usdValue}}):U.createElement(Bm,{selected:l,listItem:s==="list-item",basic:s==="basic"},U.createElement("div",{className:Lm()},!p&&L.length?U.createElement(U.Fragment,null,U.createElement(Qm,null,L.map((he,Ce)=>{let O=`${he.value}_${Ce}`;return U.createElement(U.Fragment,{key:O},U.createElement(rk,{label:he.label,value:he.value}),U.createElement(Yo,{size:4,direction:"horizontal"}))})),U.createElement(Jr,null),!M&&U.createElement(Yo,{size:4})):null,U.createElement("div",{id:"portal-root",className:Pm()},U.createElement(Km,{quote:e,time:K,fee:Y,feeWarning:ae,showModalFee:c,steps:J}),M&&U.createElement(Mm,{onClick:he=>{he.stopPropagation(),u()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(Zo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},xo.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:Dm()},U.createElement(Um,null,U.createElement(nk,{size:12,color:"gray"})),U.createElement(zm,null,U.createElement(Is,{size:"small",variant:"body"},`${A} ${N[0].from.token.displayName} = `),U.createElement(rd,{content:n.value,container:ne,open:n.value?void 0:!1},U.createElement(Is,{size:"small",variant:"body"},"\xA0",`${b} ${N[N.length-1].to.token.displayName}`))),U.createElement(rd,{content:n.usdValue,container:ne},U.createElement(Yo,{size:2,direction:"horizontal"}),U.createElement(Zo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${x})`))),s==="list-item"&&U.createElement(ak,{tooltipContainer:ne,type:"output",direction:"vertical",price:{value:b,usdValue:x,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:N[J-1].to.token.displayName,image:N[J-1].to.token.image},chain:{image:N[J-1].to.chain.image},percentageChange:I,warningLevel:P}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(kn,{from:N[0].from,to:N[J-1].to,percentageChange:I,warningLevel:P}),U.createElement(Yo,{size:4}))),U.createElement(Nm,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},U.createElement(nd,{type:s,quoteRef:w,selected:l,setExpanded:v,container:ne,expanded:k,steps:N}),U.createElement(Fm,{open:k},U.createElement(Om,null),U.createElement("div",{className:Wm()},N.map((he,Ce)=>{let O=`item-${Ce}`;return U.createElement(ik,{type:"quote-details",key:O,tooltipContainer:ne,step:he,hasSeparator:Ce!==N.length-1,state:he.state})})))))}i(Bs,"Quote");import{Divider as mk,Skeleton as dk}from"@rango-dev/ui";import $t from"react";import{darkTheme as pk,styled as li}from"@rango-dev/ui";var id=li("div",{$$color:"$colors$neutral100",[`.${pk} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),ad=li("div",{paddingTop:"$2"}),sd=li("div",{paddingLeft:"$8"}),ld=li("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Sd,Divider as Ct,Skeleton as at}from"@rango-dev/ui";import G from"react";import{css as ck,styled as _t}from"@rango-dev/ui";var Ls=_t("div",{display:"flex"}),pd=_t("div",{padding:"$10 $0 $20"}),cd=_t("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),ud=_t("div",{display:"flex",justifyContent:"start",alignItems:"center"}),md=_t("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),dd=_t("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),fd=_t("div",{width:"65%",display:"flex",justifyContent:"start"}),gd=_t("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),hd=_t("div",{padding:"$15 $0 $15 $0"}),yd=ck({display:"flex",justifyContent:"space-between",alignItems:"center"});function bn(t){let{type:e,tagHidden:o=!0}=t,n=G.createElement(md,null,G.createElement(fd,null,G.createElement(Sd,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),G.createElement(Ct,{size:8,direction:"horizontal"}),G.createElement(gd,null,G.createElement(at,{height:10,width:60,variant:"rounded"}),G.createElement(Ct,{size:4}),G.createElement(at,{height:15,variant:"rounded"}))),G.createElement(at,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return G.createElement("div",null,!o&&G.createElement(G.Fragment,null,G.createElement(Ls,null,G.createElement(at,{width:65,height:20,variant:"rounded"}),G.createElement(Ct,{size:4,direction:"horizontal"}),G.createElement(at,{width:65,height:20,variant:"rounded"}),G.createElement(Ct,{size:4,direction:"horizontal"}),G.createElement(at,{width:65,height:20,variant:"rounded"})),G.createElement(Jr,null),!r&&G.createElement(Ct,{size:4})),G.createElement("div",{className:yd()},G.createElement(Ls,null,G.createElement(at,{width:60,height:10,variant:"rounded"}),G.createElement(Ct,{size:4,direction:"horizontal"}),G.createElement(at,{width:60,height:10,variant:"rounded"}),G.createElement(Ct,{size:4,direction:"horizontal"}),G.createElement(at,{width:60,height:10,variant:"rounded"})),r&&G.createElement(at,{width:85,height:24,variant:"rounded"})),e==="basic"&&G.createElement(pd,null,G.createElement(at,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(cd,null,G.createElement(ud,null,G.createElement(Sd,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),G.createElement(Ct,{direction:"horizontal",size:4}),G.createElement(at,{height:15,width:150,variant:"rounded"})),G.createElement(Ct,{size:10}),G.createElement(at,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(Ct,{size:4}),G.createElement(hd,null,n,G.createElement(dd,null),n),G.createElement(Ct,{size:12})))}i(bn,"QuoteSummarySkeleton");import{ChainToken as xd,Divider as Ds,NextIcon as uk,Skeleton as pi}from"@rango-dev/ui";import Me from"react";import{styled as wn}from"@rango-dev/ui";var Td=wn("div",{display:"flex",alignItems:"start"}),Cd=wn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ps=wn("div",{display:"flex",alignItems:"center",flexGrow:1}),kd=wn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),vd=wn("div",{display:"flex",alignItems:"center"});function Mt(t){let{separator:e=!0}=t;return Me.createElement(Me.Fragment,null,Me.createElement(vd,null,Me.createElement(pi,{height:22,width:22,variant:"circular"}),Me.createElement(Ds,{direction:"horizontal",size:8}),Me.createElement(pi,{height:15,width:148,variant:"rounded"})),Me.createElement(Td,null,Me.createElement(ld,{hideSeparator:!e}),Me.createElement(Cd,{extraSpace:e},Me.createElement(Ps,null,Me.createElement(xd,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Me.createElement(Ds,{direction:"horizontal",size:8}),Me.createElement(pi,{height:12,variant:"rounded"})),Me.createElement(kd,null,Me.createElement(uk,{color:"gray",size:16})),Me.createElement(Ps,null,Me.createElement(xd,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Me.createElement(Ds,{direction:"horizontal",size:8}),Me.createElement(pi,{height:12,variant:"rounded"})))))}i(Mt,"StepSkeleton");function En(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return $t.createElement(id,{expanded:o,rounded:e!=="basic"},$t.createElement(bn,{type:e,tagHidden:n}),$t.createElement(ad,null,$t.createElement(dk,{height:15,variant:"rounded"})),o&&$t.createElement(sd,null,$t.createElement(mk,{size:24}),$t.createElement(Mt,null),$t.createElement(Mt,null),$t.createElement(Mt,{separator:!1})))}i(En,"QuoteSkeleton");function bo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:c,selected:u,onClickAllRoutes:m,fullExpandedMode:d=!1,container:g}=t,{inputAmount:f,inputUsdValue:y,toToken:S}=q(),C=e?.outputAmount?new fk(e?.outputAmount):null,T=e?.outputAmount?Vt(e?.outputAmount,co(e)||S?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?ci.createElement(ws,null,ci.createElement(En,{tagHidden:l,type:o,expanded:s})):v?ci.createElement(ws,{onClick:()=>p?.(e)},ci.createElement(Bs,{quote:e,error:r,container:g,showModalFee:c,warning:a,tagHidden:l,selected:u,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:d,input:{value:f,usdValue:y?.toString()??""},output:{value:C?.toString()??"",usdValue:T?.toString()??""}})):null}i(bo,"QuoteInfo");import{calculatePendingSwap as Sk}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Tk}from"react";import{useRef as gk,useState as hk}from"react";var yk=2e3;function ui({request:t}){let[e,o]=hk(!1),n=gk(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,yk)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let c=await t(l,{signal:n.current.signal});return n.current=null,c}catch(c){if(p)return await a(l);throw c}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(ui,"useFetch");function bd(){let{fetch:t,loading:e,cancelFetch:o}=ui({request:async(n,r)=>await qt().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(bd,"useFetchConfirmQuote");function mi(t){if(!t.swaps)throw new Error(re().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=_s(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(mi,"throwErrorIfResponseIsNotValid");function _s(t){if(sc(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=lc(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=mc(t);if(o){let n=kr(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(_s,"getQuoteError");function wd(t,e,o){let n=!1;t&&(n=Ic(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=Do(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Sc(t,e)?r.quoteUpdate={type:3,newOutputAmount:D(Po(e)),percentageChange:D(mt(Po(t)??"",Po(e)??""),null,2)}:ka(t,e)?r.quoteUpdate={type:0}:va(t,e)?r.quoteUpdate={type:1}:xa(t,e)&&(r.quoteUpdate={type:2}));let s=Tc(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(wd,"generateWarnings");function di(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(di,"handleQuoteErrors");function $s(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=q(),{slippage:p,customSlippage:c}=h(),u=h().getDisabledLiquiditySources(),m=h().blockchains(),d=h().tokens(),{findToken:g}=h(),f=c||p,{fetch:y,cancelFetch:S,loading:C}=bd();return Tk(()=>S,[]),{loading:C,fetch:i(async k=>{let v=k.selectedWallets,w=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=v.reduce((x,E)=>(x[E.chain]=E.address,x),{}),b={requestId:r?.requestId||"",selectedWallets:A,destination:w||void 0};try{return await y(b,!0).then(x=>{let{result:E}=x;mi({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let I={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};n(I);let P={slippage:f.toString(),disabledSwappersGroups:u},H=wd(r??void 0,I,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:g,selectedWallets:v,userSlippage:f});H.quoteUpdate&&s(!1),l();let N=!!H.balance,J=Sk(o.toString(),E,hc(v),P,!N,{blockchains:m,tokens:d});return{quote:I,swap:J,error:null,warnings:H}})}catch(x){return di(x)}},"fetch"),cancelFetch:S}}i($s,"useConfirmSwap");var Ak=vk("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Id}`]:{width:"$48",height:"$48"}}),Nk=Us({flexGrow:1,paddingRight:"$10"}),Wk=Us({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Mk=Us({display:"flex",justifyContent:"space-between",alignItems:"center"});function Ad(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=q(),s=Ik(),[l,p]=In(""),c=!n,[u,m]=In(!1),[d,g]=In(!1),{isActiveTab:f}=ue(),y=h().getDisabledLiquiditySources(),S=Ek(y),{manager:C}=Ck(),{fetch:T,loading:k,cancelFetch:v}=$s(),[w,A]=In({swap:null,error:null,warnings:null}),[b,x]=In(!1),E=i(async({selectedWallets:M,customDestination:K})=>{let ge=await T?.({selectedWallets:M,customDestination:K});return A(ge),ge},"onConfirmSwap"),I=i(async()=>{if(w.swap&&n)try{await C?.create("swap",{swapDetails:w.swap},{id:w.swap.requestId});let M=`../${F.swaps}/${w.swap.requestId}`;s(M,{replace:!0}),setTimeout(()=>{e("")},0)}catch(M){p("Error: "+M?.message)}},"addNewSwap"),P=i(async()=>{g(!0),await I(),g(!1)},"onConfirm"),H=i(async()=>{w?.warnings?.quote&&!a?x(!0):await P()},"onStartConfirmSwap"),N=i(async()=>{A({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(M=>{A(M)}).catch(M=>console.error(M))},"onRefresh");fi(()=>{!!S.current.length&&!y.length&&N(),S.current=y},[y.length]),fi(()=>{c&&v()},[c]),fi(()=>{c&&m(c)},[c]),fi(()=>{c||T({selectedWallets:o,customDestination:r}).then(M=>A(M)).catch(M=>console.error(M))},[]),wk(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let J=w.warnings?.quote??null,ne=w.error,L=[];if(l&&L.push(Be.createElement(Ed,{type:"error",variant:"alarm",title:l})),w.warnings?.quoteUpdate&&L.push(Be.createElement(Ed,{variant:"alarm",type:"warning",title:w.warnings.quoteUpdate&&_r(w.warnings.quoteUpdate)})),J||ne){let M=`../${F.settings}`;L.push(Be.createElement(Tn,{warning:J,error:ne,couldChangeSettings:!1,refetchQuote:N,showWarningModal:b,confirmationDisabled:!f,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:async()=>{x(!1),await I()},onChangeSettings:()=>s(M)}))}return Be.createElement(ie,{header:{title:Fs.t("Confirm Swap"),onWallet:()=>{let M=`../${F.wallets}`;s(M)}},footer:Be.createElement(Ak,null,Be.createElement("div",{className:Nk()},Be.createElement(kk,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||d,disabled:!!w.error||!f,onClick:H},Fs.t("Start Swap"))),Be.createElement(Id,{variant:"contained",type:"primary",size:"large",loading:k||d,disabled:!f,onClick:m.bind(null,!0)},Be.createElement(bk,{size:24})))},u&&Be.createElement(sm,{open:u,onClose:()=>m(!1),onCancel:v,loading:k,onCheckBalance:E}),Be.createElement(le,null,Be.createElement("div",{className:Mk()},Be.createElement(xk,{variant:"title",size:"small"},Fs.t("You get")),Be.createElement("div",{className:Wk()},Be.createElement(Wr,{onClick:!k&&!u&&!b?N:void 0}))),Be.createElement(Os,{size:"12"}),Hc(L.map((M,K)=>({element:M,key:`alert-${K}`})),Be.createElement(Os,{size:10})),L.length>0?Be.createElement(Os,{size:10}):null,Be.createElement(bo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:w.error,loading:k,warning:w.warnings?.quote??null})))}i(Ad,"ConfirmSwapPage");import{i18n as Ft}from"@lingui/core";import{Button as Rs,CustomTokensZeroStateDarkIcon as Yk,CustomTokensZeroStateIcon as Zk,DeleteIcon as Jk,Divider as Mn,IconButton as Rk,MessageBox as ev,NotFound as tv,styled as tl}from"@rango-dev/ui";import Te,{useState as el}from"react";import{useNavigate as ov}from"react-router-dom";import{CloseIcon as Lk,IconButton as Pk,SearchIcon as Dk,TextField as _k}from"@rango-dev/ui";import An from"react";import{styled as Bk}from"@rango-dev/ui";var Nd=Bk("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function kt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:p,...c}=t;return An.createElement(_k,{prefix:An.createElement(Nd,null,An.createElement(Dk,{color:"black"})),suffix:!!s.length&&An.createElement(Pk,{variant:"ghost",onClick:()=>p?.(""),size:"small"},An.createElement(Lk,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...l},size:r,value:s,onChange:a,...c})}i(kt,"SearchInput");import{i18n as Zs}from"@lingui/core";import{darkTheme as Ud,Divider as Ro,ExternalLinkIcon as qk,Image as Hk,ListItemButton as Gk,NotFound as Vk,PinIcon as Kk,Skeleton as zd,Typography as yi,VirtualizedList as jk}from"@rango-dev/ui";import V,{useEffect as Qd,useState as qd}from"react";import{useWallets as $k}from"@rango-dev/wallets-react";import{useEffect as Fk,useRef as Ok,useState as Uk}from"react";function zs(t){let{connectedWallets:e}=oe(),{getWalletInfo:o}=$k(),n=Ok([]),[r,a]=Uk(0);return Fk(()=>{let s=i(p=>{p.type==="disconnect"&&o(p.payload.walletType).supportedChains.some(m=>m.name===t)&&a(m=>m+1)},"handleWalletEvent");return Yn.on("walletEvent",s),t?(e.filter(p=>p.chain===t).forEach(p=>{let{walletType:c}=p,u=n.current.includes(c);p.loading&&!u?n.current=n.current.concat(c):!p.loading&&u&&(n.current=n.current.filter(m=>m!==c),a(m=>m+1))}),()=>Yn.off("walletEvent",s)):a(p=>p+1)},[e,t,o]),{balanceKey:r}}i(zs,"useObserveBalanceChanges");import{Divider as Fd,ListItem as Qk,Skeleton as Nn}from"@rango-dev/ui";import vt from"react";import{css as Jo,darkTheme as Wd,ImageContainer as zk,styled as gt,Typography as Md}from"@rango-dev/ui";var Qs=Jo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),qs=Jo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Hs=Jo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Gs=Jo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Wd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Vs=Jo({}),Ks=Jo(),Bd=gt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),js=gt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),gi=gt("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${qs}`]:{[`& .${Gs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Vs}`]:{bottom:"-15px"},[`& .${Qs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Hs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Xs=gt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ys=gt(Md,{}),Ld=gt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Ks}`]:{$$color:"$colors$neutral600",[`.${Wd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),hi=gt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),dO=gt("div",{display:"flex",alignItems:"center"}),Pd=gt("div",{position:"relative",[`& ${zk}`]:{borderRadius:"$xm",overflow:"hidden"}}),Dd=gt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),_d=gt(Md,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),$d=gt("a",{"& svg:hover":{color:"$colors$info"}});function Od(t){return vt.createElement(gi,null,Array.from(Array(t.size),e=>vt.createElement(Qk,{key:e,hasDivider:!0,start:vt.createElement(Nn,{variant:"circular",width:35,height:35}),end:vt.createElement(hi,null,vt.createElement(Nn,{variant:"text",size:"large",width:70}),vt.createElement(Fd,{size:4}),vt.createElement(Nn,{variant:"text",size:"medium",width:50})),title:vt.createElement("div",null,vt.createElement(Nn,{variant:"text",size:"large",width:90}),vt.createElement(Fd,{size:4}),vt.createElement(Nn,{variant:"text",size:"medium",width:90}))})))}i(Od,"LoadingTokenList");var Js=20,Xk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return V.createElement("div",{className:qs()},o?V.createElement("div",{className:Qs()},o):V.createElement(js,{className:Hs()},V.createElement(yi,{variant:"title",size:"xmedium"},r.symbol),V.createElement(Ro,{direction:"horizontal",size:4}),V.createElement(Xs,{css:a},V.createElement(Ys,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&V.createElement("div",{className:`${Gs()} ${!o&&Vs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",V.createElement(Ro,{size:4,direction:"horizontal"}),V.createElement($d,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},V.createElement(qk,{size:12}))))},"renderDesc");function Wn(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s}=t,[l,p]=qd(e),c=h().fetchStatus,u=h().blockchains(),[m,d]=qd(!0),{getBalanceFor:g,loading:f}=oe(),{isTokenPinned:y}=h(),{balanceKey:S}=zs(r),C=i(()=>{p(e.slice(0,l.length+Js))},"loadNextPage");Qd(()=>{d(e.length>l.length)},[l.length]),Qd(()=>{p(e.slice(0,Js))},[e.length,r,S]);let T=i(v=>{let w=sr(g(v));return s?s(v):f?V.createElement(hi,null,V.createElement(zd,{variant:"text",size:"large",width:70}),V.createElement(Ro,{size:4}),V.createElement(zd,{variant:"text",size:"medium",width:50})):w&&V.createElement(Ld,null,V.createElement(_d,{variant:"title",size:"small"},w.amount),V.createElement("div",null),w.usdValue&&V.createElement(yi,{variant:"body",className:Ks(),size:"xsmall"},`$${w.usdValue}`))},"endRenderer"),k=i(()=>V.createElement(jk,{endReached:m?C:void 0,itemContent:v=>{let w=l[v],A=w.address||"",b=u.find(P=>P.name===w.blockchain),x=_a(b.color,"main"),E={$$color:x.main150,[`.${Ud} &`]:{$$color:x.main750},backgroundColor:"$$color"},I={$$color:x.main750,[`.${Ud} &`]:{$$color:x.main150},color:"$$color"};return V.createElement("div",{style:{paddingRight:5}},V.createElement(Gk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":v,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,hasDivider:!0,onClick:()=>n&&n(l[v]),start:V.createElement(Pd,null,V.createElement(Hk,{src:w.image,size:30}),t.type!=="custom-token"&&y(w,t.type)&&V.createElement(Dd,null,V.createElement(Kk,{size:12,color:"gray"}))),title:b?.type==="COSMOS"||w.name||!w.name&&!A?V.createElement(js,null,V.createElement(yi,{variant:"title",size:"xmedium"},w.symbol),V.createElement(Ro,{direction:"horizontal",size:4}),V.createElement(Xs,{css:E},V.createElement(Ys,{variant:"body",size:"xsmall",css:I},w.blockchain))):void 0,description:b?.info&&A&&b.type!=="COSMOS"?Xk({address:A,token:l[v],customCssForTag:E,customCssForTagTitle:I,name:w.name,url:b.info.addressUrl.split("{wallet}").join(A)}):w.name||void 0,end:T(w)}))},totalCount:l.length,key:`${r}-${o}-${S}`}),"renderList");return V.createElement(V.Fragment,null,a&&V.createElement(V.Fragment,null,V.createElement(yi,{variant:"label",size:"large"},Zs.t("Select Token")),V.createElement(Ro,{size:4})),V.createElement(Bd,null,V.createElement(Ro,{size:4}),c==="loading"&&V.createElement(Od,{size:Js}),c==="success"&&(l.length?V.createElement(gi,{as:"ul"},k()):!!o&&V.createElement(Vk,{title:Zs.t("No results found"),description:Zs.t("Try using different keywords")}))))}i(Wn,"TokenList");var nv=tl("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),rv=tl("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),iv=tl(Rk,{"&:hover":{"& svg":{color:"$secondary550"}}});function Hd(){let[t,e]=el(""),{deleteCustomToken:o}=h(),n=h().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:l}=q(),{mode:p}=Oo({}),c=ov(),[u,m]=el(!1),[d,g]=el(),f=i(T=>{let k=T.target.value;e(k)},"handleSearch"),y=p==="dark",S=n.filter(T=>nt(T.symbol,t)||nt(T.address||"",t)||nt(T.name||"",t)),C=i(()=>{if(d){let T=a?Qe(a):null,k=r?Qe(r):null,v=Qe(d);T===v?l({token:null}):k===v&&s({token:null}),o(d)}m(!1)},"handleDeleteCustomToken");return Te.createElement(ie,{header:{title:Ft.t("Custom Tokens")}},Te.createElement(le,null,Te.createElement(nv,null,n.length?Te.createElement(Te.Fragment,null,Te.createElement(kt,{value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Ft.t("Search Token"),onChange:f}),Te.createElement(Mn,{size:16}),Te.createElement(Wn,{list:S,type:"custom-token",searchedFor:t,showTitle:!1,action:T=>Te.createElement(iv,{variant:"ghost",onClick:()=>{m(!0),g(T)}},Te.createElement(Jk,{size:12,color:"gray"}))})):Te.createElement(rv,null,Te.createElement(tv,{icon:y?Te.createElement(Yk,{size:200}):Te.createElement(Zk,{size:200}),title:Ft.t("No custom tokens"),description:Ft.t("press the button to add your custom token")})),Te.createElement(Mn,{size:20}),Te.createElement(Rs,{type:"primary",variant:"contained",size:"large",onClick:()=>c(F.addCustomTokens)},Ft.t("Add Custom Token"))),Te.createElement(X,{open:u,dismissible:!0,onClose:()=>m(!1),container:B()},Te.createElement(ev,{title:Ft.t("Delete Custom Token"),type:"error",description:Ft.t("Are you sure you want to Delete this Token?")},Te.createElement(Mn,{size:40}),Te.createElement(Mn,{size:10}),Te.createElement(Rs,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:C},Ft.t("Yes, Delete it")),Te.createElement(Mn,{size:12}),Te.createElement(Rs,{fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},Ft.t("No, Continue"))))))}i(Hd,"CustomTokensPage");import{i18n as Xe}from"@lingui/core";import{useManager as bv}from"@rango-dev/queue-manager-react";import{Button as ll,darkTheme as wv,Divider as Jt,MessageBox as Ev,NotFound as Iv,styled as pl,Typography as Ci}from"@rango-dev/ui";import{TransactionStatus as Pn}from"rango-types";import se,{useMemo as cf,useState as ki}from"react";import{useNavigate as Av}from"react-router-dom";import{FilterIcon as mv,Popover as dv}from"@rango-dev/ui";import wo from"react";import{css as av,darkTheme as Si,IconButton as sv,styled as Bn}from"@rango-dev/ui";var ol=Bn("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Si} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),Gd=Bn(sv,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Si} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Si} &`]:{backgroundColor:"$neutral"},[`& ${ol}::before`]:{backgroundColor:"$secondary100",[`.${Si} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Vd=Bn("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Kd=Bn("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),jd=av({display:"flex",justifyContent:"space-between",alignItems:"center"}),Xd=Bn("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as Yd}from"@lingui/core";import{Button as lv,Divider as Zd,ListItemButton as pv,Radio as cv,RadioRoot as uv,Typography as Jd}from"@rango-dev/ui";import st from"react";function Rd(t){let{filterBy:e,onClickItem:o}=t;return st.createElement(Kd,null,st.createElement("div",{className:jd()},st.createElement(Jd,{size:"small",variant:"body"},Yd.t("Status")),st.createElement(lv,{variant:"ghost",size:"xxsmall",onClick:()=>o("")},Yd.t("Reset"))),st.createElement(Zd,{size:10}),st.createElement(uv,{value:e},st.createElement(Xd,null,t.list.map((n,r)=>st.createElement(pv,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:st.createElement(st.Fragment,null,st.createElement(Zd,{direction:"horizontal",size:4}),st.createElement(Jd,{size:"medium",variant:"body"},n.title)),start:st.createElement(cv,{value:n.id}),onClick:o})))))}i(Rd,"FilterSelectorContent");function nl(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return wo.createElement("div",null,wo.createElement(dv,{open:a,align:"end",onOpenChange:o,container:B(),content:wo.createElement(Rd,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},wo.createElement(Gd,{variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},wo.createElement(ol,{isSelect:!!n},wo.createElement(mv,{size:16,color:"black"}),!!n&&wo.createElement(Vd,null)))))}i(nl,"FilterSelector");import{i18n as hv}from"@lingui/core";import{Divider as rf,GroupedVirtualizedList as yv,Skeleton as Sv,SwapListItem as af,Typography as Tv}from"@rango-dev/ui";import je,{useCallback as sf,useEffect as Cv,useRef as kv,useState as vv}from"react";function ef(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(ef,"calculateGroupsSoFar");import{css as fv,darkTheme as gv,styled as Ln}from"@rango-dev/ui";var rl=fv(),tf=Ln("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),il=Ln("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${rl}`]:{$$color:"$colors$neutral600",[`.${gv} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),al=Ln("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),of=Ln("div",{gap:"$10",display:"flex",flexDirection:"column"}),nf=Ln("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var xv=10;function sl(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=vv([]),l=kv(0),{swaps:p,groupCounts:c,groups:u}=n(e),m=sf(ef,[]),d=sf(()=>{let g=e.length-l.current;g&&(l.current+=Math.min(g,xv),s(m(c,l.current)))},[e.length]);if(Cv(()=>{r||d()},[r,d]),r){let g=[1,2];return je.createElement(je.Fragment,null,[g,g].map((y,S)=>je.createElement(il,{key:S},je.createElement(al,null,je.createElement(Sv,{variant:"text",width:60,size:"small"}),je.createElement(rf,{size:16})),je.createElement(rf,{size:4}),je.createElement(of,null,y.map((T,k)=>je.createElement(af,{isLoading:!0,key:k}))))))}return je.createElement(yv,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:g=>je.createElement(il,null,je.createElement(al,null,je.createElement(Tv,{variant:"label",size:"medium",className:rl()},u[g]))),itemContent:(g,f)=>{let y=p[g];if(!y)return null;let S=y.steps[0],C=y.steps[y.steps.length-1];return je.createElement(tf,{key:y.requestId},je.createElement(af,{requestId:y.requestId,creationTime:y.creationTime,status:y.status,onClick:o,tooltipContainer:B(),onlyShowTime:u[f]===hv.t("Today"),swapTokenData:{from:{token:{image:S.fromLogo,displayName:S.fromSymbol},blockchain:{image:S.fromBlockchainLogo||""},amount:D(y.inputAmount,6,6),realAmount:y.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:D(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(sl,"HistoryGroupedList");import{i18n as Ti}from"@lingui/core";import lf from"dayjs";var pf=i(t=>{let e=new Map([["today",{title:Ti.t("Today"),swaps:[]}],["week",{title:Ti.t("This week"),swaps:[]}],["month",{title:Ti.t("This month"),swaps:[]}],["year",{title:Ti.t("This year"),swaps:[]}]]);function o(p,c){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(c)}i(o,"addYearsToOutput");let n=lf();t.forEach(p=>{let c=Number(p.creationTime),u=lf(c);if(n.isSame(u,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(p);else{let m=new Date(c).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 Nv=pl("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Wv=pl("div",{display:"flex",justifyContent:"center",alignItems:"center"}),Mv=pl("div",{"._typography":{color:"$neutral700",[`.${wv}&`]:{color:"$neutral900"}}}),Bv=[{id:Pn.SUCCESS,title:Xe.t("Complete")},{id:Pn.RUNNING,title:Xe.t("Running")},{id:Pn.FAILED,title:Xe.t("Failed")}],Lv=i((t,e)=>t?.length?t.filter(o=>Et(o.fromBlockchain,e)||Et(o.toBlockchain,e)||Et(o.toSymbol,e)||Et(o.fromSymbol,e)).length:!1,"isStepContainsText");function uf(){let t=Av(),{manager:e,state:o}=bv(),n=dt(e).map(({swap:k})=>k),[r,a]=ki(""),[s,l]=ki(!1),p=!o.loadedFromPersistor,[c,u]=ki(""),[m,d]=ki(!1),g=i(k=>{let v=k.target.value;a(v)},"handleSearch"),f=cf(()=>!r&&!c?n:n.filter(k=>{let{inputAmount:v,status:w,steps:A,requestId:b}=k;return(!r||Et(v,r)||Et(w,r)||Lv(A,r)||Et(b,r))&&(!c||c===w)}),[n,r,c]),y=!f?.length&&!p,S=i(()=>d(!1),"onCloseModal"),C=i(async()=>{try{await e?.clearQueue(),d(!1)}catch(k){console.log(k)}},"onClear"),T=cf(()=>!n.some(k=>k.status===Pn.SUCCESS||k.status===Pn.FAILED),[n]);return se.createElement(ie,{header:{title:Xe.t("History"),suffix:se.createElement(Kt,null,se.createElement(ll,{disabled:T,variant:"ghost",size:"xsmall",onClick:()=>d(!0)},se.createElement(Ci,{size:"medium",variant:"label",color:"error"},Xe.t("Clear all Txs"))))}},se.createElement(le,null,se.createElement(Wv,null,se.createElement(kt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Xe.t("Search Transaction"),autoFocus:!0,onChange:g,style:{height:36},value:r}),se.createElement(Jt,{size:10,direction:"horizontal"}),se.createElement(nl,{filterBy:c,open:s,onOpenChange:k=>l(k),onClickItem:k=>u(k),list:Bv})),se.createElement(Jt,{size:"16"}),se.createElement(Nv,null,y&&se.createElement(nf,null,se.createElement(Jt,{size:32}),se.createElement(Iv,{title:r?Xe.t("No results found"):Xe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Xe.t("Try using different keywords"):Xe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!y&&se.createElement(sl,{list:f,onSwapClick:t,groupBy:pf,isLoading:p}))),se.createElement(X,{open:m,onClose:S,container:B()},se.createElement(Jt,{size:20}),se.createElement(Ev,{type:"warning",title:Xe.t("Clear History"),description:se.createElement(Mv,null,se.createElement(Ci,{variant:"body",size:"medium"},Xe.t("This would clear all succeeded/failed transactions from widget. Do you wish to proceed?")),se.createElement(Jt,{size:"24"}),se.createElement(Ci,{variant:"body",size:"small"},Xe.t("Hint: This does not clear your transaction history on blockchain. Only hides them in this page.")))}),se.createElement(Jt,{size:40}),se.createElement(Jt,{size:10}),se.createElement(ll,{variant:"contained",type:"primary",size:"large",onClick:C},Xe.t("Yes, Clear history")),se.createElement(Jt,{size:10}),se.createElement(ll,{variant:"outlined",type:"primary",size:"large",onClick:S},se.createElement(Ci,{variant:"title",size:"medium",color:"primary"},Xe.t("No, Cancel")))))}i(uf,"HistoryPage");import{i18n as Jv}from"@lingui/core";import{Button as Rv,Divider as Wf,styled as ex,WarningIcon as tx}from"@rango-dev/ui";import ox from"bignumber.js";import tt,{useEffect as Mf,useState as Bf}from"react";import{useNavigate as nx}from"react-router-dom";import{i18n as Ov}from"@lingui/core";import{Header as Uv}from"@rango-dev/ui";import Rt,{useEffect as zv,useState as Qv}from"react";import{i18n as Dv}from"@lingui/core";import{Divider as ul,FullExpandedQuote as _v,Typography as $v}from"@rango-dev/ui";import we from"react";import{styled as cl}from"@rango-dev/ui";var mf=cl("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),df=cl("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),ff=cl("div",{width:"146px"});import{i18n as Dn}from"@lingui/core";import{Select as Pv}from"@rango-dev/ui";import gf from"react";function vi(t){let{updateQuotePartialState:e,sortStrategy:o}=q(),n=[{value:"SMART",label:Dn.t("Smart Routing")},{value:"FEE",label:Dn.t("Lowest Fee")},{value:"SPEED",label:Dn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Dn.t("Maximum Return")},{value:"PRICE",label:Dn.t("Maximum Output")}];return gf.createElement(ff,null,gf.createElement(Pv,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(vi,"SelectStrategy");var hf=3;function _n(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:c,updateQuotePartialState:u,fromToken:m,toToken:d,sortStrategy:g,error:f}=q(),{slippage:y,customSlippage:S}=h(),{findToken:C}=h(),T=l||B(),k=!!c&&c.results.length,v=S??y,w=i(x=>{if(!m||!d||!c)return null;let E={requestAmount:c.requestAmount,...x};return Do(E,{fromToken:m,toToken:d,userSlippage:v,findToken:C})},"getQuoteWarning"),A=f?.type===0||f?.type===1,b=c?.results?br(g,c?.results):[];return we.createElement(we.Fragment,null,a&&we.createElement(we.Fragment,null,we.createElement(df,null,we.createElement($v,{size:"xmedium",variant:"title"},Dv.t("Sort by")),we.createElement(vi,{container:T})),we.createElement(ul,{size:"10"})),e&&Array.from({length:hf},(x,E)=>we.createElement(we.Fragment,{key:E},s?we.createElement(_v,{loading:!0}):we.createElement(En,{tagHidden:!1,type:"list-item",expanded:!1}),E!==hf-1&&we.createElement(ul,{size:16}))),!e&&we.createElement(we.Fragment,null,k?b.map((x,E)=>{let I=w(x),P=_s(x.swaps),H=b.length-1===E;return we.createElement(we.Fragment,{key:x.requestId},we.createElement(bo,{showModalFee:r,container:T,selected:p?.requestId===x.requestId,tagHidden:!1,quote:{...x,requestAmount:c.requestAmount},loading:e,error:P?.options||null,warning:I,fullExpandedMode:s,onClick:N=>{P||u("warning",I),u("error",P?.options||null),o(N)},type:"list-item"}),!H&&we.createElement(ul,{size:16}))}):A&&we.createElement(mf,null,we.createElement(yn,{size:s?"large":"small",error:f,fetch:n}))))}i(_n,"Quotes");import{darkTheme as Fv,styled as yf}from"@rango-dev/ui";var Sf=yf("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${Fv} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Tf=yf("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var qv=100;function ml(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=Qv(!1),p=s?"":"is-hidden",{config:c}=h(),u=c?.variant==="full-expanded",m=on();return zv(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},qv):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),Rt.createElement(Sf,{expandMode:c?.variant==="full-expanded"?"full":"default",className:`${p} ${Lr()}`,id:ke.EXPANDED_BOX_ID},Rt.createElement(Uv,{title:Ov.t("Routes"),suffix:Rt.createElement(Rt.Fragment,null,Rt.createElement(vi,{container:m}),Rt.createElement(go,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Rt.createElement(Tf,null,Rt.createElement(_n,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:on(),onClickOnQuote:n,fullExpandedMode:u})))}i(ml,"ExpandedQuotes");import{i18n as Ef}from"@lingui/core";import{SwapInput as If}from"@rango-dev/ui";import $n from"react";import{ReverseIcon as Vv}from"@rango-dev/ui";import fl from"react";import{keyframes as Hv,styled as Cf}from"@rango-dev/ui";var dl=450,Gv=Hv({"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)"}}),kf=Cf("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),vf=Cf("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${Gv} ${dl}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 gl(){let t=q.use.switchFromAndTo();return fl.createElement(kf,null,fl.createElement(vf,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},dl),t()}},fl.createElement(Vv,{size:12})))}i(gl,"SwitchFromAndToButton");import{styled as xf}from"@rango-dev/ui";var bf=xf("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),wf=xf("div",{position:"relative"});function hl(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:c,inputAmount:u,inputUsdValue:m,outputAmount:d,outputUsdValue:g,selectedQuote:f}=q(),{connectedWallets:y,getBalanceFor:S}=oe(),C=a?S(a):null,T=sr(C)?.amount??"0",k=s&&a?D(C?.amount,C?.decimals):"0",v=!!s&&wp(y,s.name),w=!Sa(f,u,m),A=!Sa(f,u,g),b=!m||!g||!g.gt(0)?null:mt(m.toString(),g.toString());return $n.createElement(bf,null,$n.createElement(wf,null,$n.createElement(If,{label:Ef.t("From"),mode:"From",onInputChange:c,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:u,usdValue:w?void 0:D(m,4,4),realUsdValue:w?void 0:m?.toString(),error:w?re().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:B(),onSelectMaxBalance:()=>{c(k.split(",").join(""))},anyWalletConnected:y.length>0}),$n.createElement(gl,null)),$n.createElement(If,{sharpBottomStyle:!r&&(!!f||e),label:Ef.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:D(mt(m,g),2,2),warningLevel:Lt(b??0),price:{value:D(d,6,6),usdValue:A?void 0:D(g,4,4),realValue:d?.toString(),realUsdValue:A?void 0:g?.toString(),error:A?re().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(hl,"Inputs");import{useCallback as Kv,useEffect as jv,useRef as Xv,useState as Yv}from"react";function Af(){let{fetch:t,loading:e,cancelFetch:o}=ui({request:async(n,r)=>await qt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Af,"useFetchAllQuotes");var Zv=600;function xi({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Af(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=oe.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:c,inputUsdValue:u,selectedQuote:m,sortStrategy:d,resetQuote:g,error:f,warning:y,setSelectedQuote:S,updateQuotePartialState:C}=q(),{slippage:T,customSlippage:k,affiliatePercent:v,affiliateRef:w,affiliateWallets:A,fetchStatus:b}=h(),x=h().getLiquiditySources(),E=h().getDisabledLiquiditySources(),I=h().excludeLiquiditySources(),{findToken:P}=h(),[H,N]=Yv(!0),J=Xv(c),ne=k??T,M=!l||!p||ao(l,p)||!sn(c),K=i(ae=>{N(ae)},"resetState"),ge=i(ae=>{let{fromToken:he,toToken:Ce,inputAmount:O,liquiditySources:W,excludeLiquiditySources:me,disabledLiquiditySources:de,slippage:ze,affiliateRef:$,affiliatePercent:Q,affiliateWallets:j}=ae;if(H||K(!0),!M&&he&&Ce){g();let pe=gc({fromToken:he,toToken:Ce,inputAmount:O,liquiditySources:W,excludeLiquiditySources:me,disabledLiquiditySources:de,wallets:s,slippage:ze,affiliateRef:$,affiliatePercent:Q,affiliateWallets:j,enableCentralizedSwappers:a});Up("experimentalRoute",r)&&(pe.experimental=!0),e(pe).then(te=>{let ce=br(d,te.results),ve=Nc(m,ce,te.requestAmount);N(!1),C("quotes",te),S(ve),mi({diagnosisMessages:te.diagnosisMessages,requestId:ve?.requestId||"",swaps:ve?.swaps});let jn=co(ve)||Ce?.usdPrice,ro=un(ve)||he?.usdPrice,Yi=ve&&Do(ve,{fromToken:{...he,usdPrice:ro},toToken:{...Ce,usdPrice:jn},userSlippage:ne,findToken:P});C("warning",Yi)}).catch(te=>{let{error:ce}=di(te);(ce?.type===0||ce?.type===1)&&g(),ce?.type!==2&&(C("error",ce),N(!1))})}},"fetch"),Y=Kv(up(ae=>{ge(ae)},Zv),[M]);return jv(()=>{if(!t){N(!1);return}if(b!=="success")return;if(M){N(!1),(m||f||y)&&g();return}if(!sn(c)||u?.eq(0)){K(!1),o();return}g(),K(!0);let ae=ge;return J.current&&J.current!=c&&(ae=Y),J.current=c,ae({inputAmount:c,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:I,disabledLiquiditySources:E,slippage:ne,affiliateRef:w,affiliatePercent:v,affiliateWallets:A}),o},[b,c,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,M,x?.length,n,E.length,ne,w,v,JSON.stringify(A)]),{fetch:()=>ge({inputAmount:c,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:I,disabledLiquiditySources:E,slippage:ne,affiliateRef:w,affiliatePercent:v,affiliateWallets:A}),loading:H}}i(xi,"useSwapInput");function Nf(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};xe.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Nf,"emitPreventableEvent");var rx=ex("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),ix=300;function Lf(){let t=nx(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:c,resetQuoteWallets:u,setQuoteWarningsConfirmed:m,updateQuotePartialState:d}=q(),[g,f]=Bf(!1),{isLargeScreen:y,isExtraLargeScreen:S}=ni(),{fetch:C,loading:T}=xi({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:w}=oe(),{isActiveTab:A}=ue(),[b,x]=Bf(!1),I=pc({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:w.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),P=Bp(y,S,k?.variant),H=!!n&&!!e&&!!o&&new ox(n).gt(0)&&!bc(e,o),N=H&&v==="success"&&T,L=(!P||P&&p?.results.length)&&(l||s);Mf(()=>{u(),d("refetchQuote",!0)},[]),Mf(()=>{f(H)},[H]);let M=(r||s)&&!b?C:void 0,K=i(Y=>{P&&g?(f(!1),setTimeout(()=>{t(Y)},ix)):t(Y)},"onHandleNavigation"),ge=i(Y=>{r?.requestId!==Y.requestId&&(x(!1),c(Y))},"onClickOnQuote");return tt.createElement(rx,null,tt.createElement(ie,{height:"auto",footer:tt.createElement(Rv,{type:"primary",size:"large",disabled:I.disabled||!A,prefix:I.action==="confirm-warning"&&tt.createElement(tx,null),fullWidth:!0,onClick:()=>{I.action==="connect-wallet"?Nf({type:"clickConnectWallet"},()=>K(F.wallets)):I.action==="confirm-warning"?x(!0):K(F.confirmSwap)}},I.title),header:{onWallet:()=>{K(F.wallets)},hasBackButton:!1,title:k.title||Jv.t("Swap"),suffix:tt.createElement(go,{hidden:P?["refresh"]:void 0,onClickRefresh:M,onClickHistory:()=>K(F.swaps),onClickSettings:()=>{K(F.settings)}})}},tt.createElement(le,null,tt.createElement(hl,{fetchingQuote:N,fetchMetaStatus:v,isExpandable:P,onClickToken:Y=>{K(Y==="from"?F.fromSwap:F.toSwap)}}),tt.createElement(Wf,{size:"2"}),P?null:tt.createElement(bo,{quote:r,loading:N,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),K(F.routes)}:void 0}),L?tt.createElement(tt.Fragment,null,tt.createElement(Wf,{size:"10"}),tt.createElement(Tn,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:C,showWarningModal:b,confirmationDisabled:!A,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:()=>{x(!1),m(!0),K(F.confirmSwap)},onChangeSettings:()=>K(F.settings)})):null)),P?tt.createElement(ml,{loading:N,onClickOnQuote:ge,fetch:C,onClickRefresh:M,isVisible:g}):null)}i(Lf,"Home");import{i18n as Pf}from"@lingui/core";import{Alert as ax,Divider as sx,List as lx,ListItemButton as px,Radio as cx,RadioRoot as ux,Typography as mx}from"@rango-dev/ui";import Bt from"react";function eo(){let{setLanguage:t,language:e,config:o}=h(),n=qp,r=o?.language||Lo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Lo),resetLanguage:()=>t(null)}}i(eo,"useLanguage");function Df(){let{activeLanguage:t,changeLanguage:e,languages:o}=eo(),n=Re(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:Bt.createElement(mx,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Bt.createElement(cx,{value:s}),start:Bt.createElement(p,null)}});return Bt.createElement(ie,{header:{title:Pf.t("Language")}},Bt.createElement(le,null,Bt.createElement(ax,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),Bt.createElement(sx,{size:"8"}),Bt.createElement(ux,{value:t},Bt.createElement(lx,{type:Bt.createElement(px,{title:Pf.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Df,"LanguagePage");import{i18n as Ot}from"@lingui/core";import{Button as yx,Checkbox as Sx,Image as Tx,ListItemButton as Cx,NotFound as kx,Typography as vx}from"@rango-dev/ui";import Ye,{useState as xx}from"react";import{Checkbox as gx,Skeleton as $f}from"@rango-dev/ui";import On from"react";import{styled as yl}from"@rango-dev/ui";var Fn=yl("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Sl=yl("div",{width:80,display:"flex",justifyContent:"flex-end"}),Tl=yl("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as dx,styled as fx}from"@rango-dev/ui";var _f=fx(dx,{height:61});var hx=30;function Cl(){return On.createElement(Fn,null,Array.from(Array(hx),(t,e)=>On.createElement(_f,{hasDivider:!0,key:e,start:On.createElement($f,{variant:"circular",width:35,height:35}),title:On.createElement($f,{variant:"text",size:"large",width:90}),end:On.createElement(gx,{checked:!1})})))}i(Cl,"LoadingLiquiditySourceList");function kl({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=xx(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=fr(o,n),c={Exchanges:Ot.t("Exchanges"),Bridges:Ot.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(C=>u.includes(C.type)),d=m.length===m.filter(C=>C.selected).length,g=i(()=>{m.forEach(C=>{d?s(C.groupTitle):C.selected||s(C.groupTitle)})},"toggleAllSources"),f=m.map(C=>{let{selected:T,groupTitle:k,logo:v}=C;return{start:Ye.createElement(Tx,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Ye.createElement(Sx,{checked:T,disabled:l}),title:Ye.createElement(vx,{variant:"title",size:"xmedium"},Ot.t(k)),...C}}),y=i(C=>{let T=C.target.value;a(T)},"handleSearch"),S=f;return r&&(S=f.filter(C=>Et(C.groupTitle,r))),Ye.createElement(ie,{header:{title:Ot.t(t),suffix:Ye.createElement(Sl,null,Ye.createElement(yx,{variant:"ghost",size:"xsmall",onClick:g},d?Ot.t("Deselect all"):Ot.t("Select all")))}},Ye.createElement(le,{view:!0},Ye.createElement(kt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Ot.t("Search {sourceType}",{sourceType:c[t]}),onChange:y}),e==="loading"&&Ye.createElement(Cl,null),!S.length&&r?Ye.createElement(Tl,null,Ye.createElement(kx,{title:Ot.t("No results found"),description:Ot.t("Try using different keywords")})):e==="success"&&Ye.createElement(Fn,{disabled:l},S.map(C=>{let{groupTitle:T,...k}=C;return Ye.createElement(Ye.Fragment,{key:C.id},Ye.createElement(Cx,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(kl,"LiquiditySourcePage");import{i18n as bx}from"@lingui/core";import bi from"react";import{useNavigate as wx}from"react-router-dom";function Ff(){let t=wx(),e=Re(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=q(),{fetch:l,loading:p}=xi({refetchQuote:n}),c=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${F.settings}`,m=`../${F.wallets}`;return bi.createElement(ie,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:bx.t("Routes"),suffix:bi.createElement(go,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},bi.createElement(le,null,bi.createElement(_n,{fetch:l,loading:p,onClickOnQuote:c})))}i(Ff,"RoutesPage");import{i18n as Gf}from"@lingui/core";import{Divider as Vf,getCategoriesCount as Dx,SelectableCategoryList as _x}from"@rango-dev/ui";import Ut,{useState as Kf}from"react";import{useNavigate as $x}from"react-router-dom";import{i18n as vl}from"@lingui/core";import{Divider as Nx,Image as Wx,ListItemButton as Mx,NotFound as Bx,Typography as Hf}from"@rango-dev/ui";import lt,{useEffect as Lx,useState as Px}from"react";var Of=i((t,e,o)=>t.filter(n=>Jn(n.type,o)).filter(n=>nt(n.name,e)||nt(n.displayName,e)),"filterBlockchains");import{ImageContainer as Ex,styled as Uf}from"@rango-dev/ui";var zf=Uf("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),wi=Uf(dn,{padding:0,margin:0,listStyle:"none",[`& ${Ex}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as Ix,Skeleton as Qf}from"@rango-dev/ui";import Ei from"react";var Ax=20;function qf(){return Ei.createElement(wi,null,Array.from(Array(Ax),t=>Ei.createElement(Ix,{key:t,hasDivider:!0,start:Ei.createElement(Qf,{variant:"circular",width:35,height:35}),title:Ei.createElement(Qf,{variant:"text",size:"large",width:90})})))}i(qf,"LoadingBlockchainList");function xl(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,l]=Px(e),{fetchStatus:p}=h();Lx(()=>{l([...Of(e,o,r)])},[e,o,r]);let c=i(()=>!s.length&&o?lt.createElement(Bx,{title:vl.t("No results found"),description:vl.t("Try using different keywords")}):lt.createElement(wi,{as:"ul",key:`${r}-${o}`},s.map(u=>lt.createElement(Mx,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:lt.createElement(Wx,{src:u.logo,size:30}),title:lt.createElement(Hf,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return lt.createElement(lt.Fragment,null,a&<.createElement(lt.Fragment,null,lt.createElement(Hf,{variant:"label",size:"large"},vl.t("Select Blockchain")),lt.createElement(Nx,{size:4})),lt.createElement(zf,null,p==="loading"&<.createElement(qf,null),p==="success"&&c()))}i(xl,"BlockchainList");function Ii(t){let{type:e}=t,o=Re(),[n,r]=Kf(""),[a,s]=Kf("ALL"),l=q.use.setToBlockchain(),p=q.use.setFromBlockchain(),{fetchStatus:c}=h(),u=$x(),m=h().blockchains({type:e}),d=Dx(m),g=!t.hideCategory&&d!==1;return Ut.createElement(ie,{header:{title:Gf.t("Select Blockchain")}},Ut.createElement(le,{view:!0},g&&Ut.createElement(Ut.Fragment,null,Ut.createElement(_x,{setCategory:s,category:a,blockchains:m,isLoading:c==="loading"}),Ut.createElement(Vf,{size:24})),Ut.createElement(kt,{value:n,autoFocus:!0,placeholder:Gf.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Ut.createElement(Vf,{size:16}),Ut.createElement(xl,{list:m,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:f=>{e==="custom-token"?u(`..?blockchain=${f.name}`,{replace:!0}):(e==="source"?p(f):l(f),o())}})))}i(Ii,"SelectBlockchainPage");import{i18n as Ni}from"@lingui/core";import{Divider as Rf}from"@rango-dev/ui";import Eo,{useState as Gx}from"react";import{useNavigate as Vx}from"react-router-dom";import{i18n as El}from"@lingui/core";import{BlockchainsChip as Ai,Divider as Zf,Image as Jf,Skeleton as Qx,Tooltip as qx,Typography as Il}from"@rango-dev/ui";import Oe from"react";import{useEffect as Ux}from"react";var jf=["ETH","COSMOS","OSMOSIS"];function bl(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Fx),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 c=n[p];s=s.filter(u=>c.name!==u)}}n.sort(Ox(s)),r=n.splice(a)}return{list:n,more:r}}i(bl,"prepare");function Fx(t,e){let o=jf,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(Fx,"sortByMostUsedBlockchains");function Ox(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(Ox,"generateSortByPreferredBlockchainsFor");function Xf(t,e){return!!e.list.find(o=>o.name===t)}i(Xf,"isInVisibleList");function wl(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();Ux(()=>{if(e?.selected){let a=bl(t,o,e);Xf(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=bl(t,o,e);return{list:r.list,more:r.more,history:[]}}i(wl,"usePrepareBlockchainList");import{styled as zx}from"@rango-dev/ui";var Yf=zx("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Hx=12;function Al(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=wl(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=q.use.resetToBlockchain(),c=q.use.resetFromBlockchain(),u=s.more.length>0,m=s.more.length===1,d=!m&&u;return Oe.createElement(Oe.Fragment,null,Oe.createElement(Zf,{size:12}),Oe.createElement(Il,{variant:"label",size:"large"},El.t("Select Blockchain")),Oe.createElement(Zf,{size:12}),Oe.createElement(Yf,null,l==="loading"&&Array.from(Array(Hx),g=>Oe.createElement(Qx,{key:g,variant:"rounded",height:50})),l==="success"&&Oe.createElement(Oe.Fragment,null,Oe.createElement(Ai,{selected:!n,onClick:()=>{o==="from"?c():p()}},Oe.createElement(Il,{variant:"body",size:"xsmall",color:"secondary500"},El.t("All"))),s.list.map(g=>Oe.createElement(qx,{key:g.name,content:g.shortName,side:"bottom",sideOffset:2,container:B()},Oe.createElement(Ai,{key:g.name,selected:!!n&&n.name===g.name,onClick:()=>r(g)},Oe.createElement(Jf,{src:g.logo,size:30})))),m?Oe.createElement(Ai,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Oe.createElement(Jf,{src:s.more[0].logo,size:30})):null,d?Oe.createElement(Ai,{onClick:a,key:"more-blockchains"},Oe.createElement(Il,{variant:"body",size:"xsmall",color:"secondary500"},El._("More +{count}",{count:s.more.length}))):null)))}i(Al,"BlockchainsSection");function Nl(t){let{type:e}=t,o=Vx(),n=Re(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:c}=q(),u=oe.use.getBalanceFor(),[m,d]=Gx(""),f=(e==="source"?r:a)?.name??"",y=h().blockchains({type:e}),S=h().tokens({type:e,blockchain:f,searchFor:m,getBalanceFor:u}),C=i(v=>{e==="source"?p(v):c(v)},"updateBlockchain"),T=i(v=>{e==="source"?s({token:v,meta:{blockchains:y,tokens:S}}):l({token:v,meta:{blockchains:y,tokens:S}})},"updateToken"),k={source:Ni.t("Source"),destination:Ni.t("Destination")};return Eo.createElement(ie,{header:{title:Ni.t("Swap {type}",{type:k[e]})}},Eo.createElement(le,null,Eo.createElement(Al,{blockchains:y,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:v=>{C(v)}}),Eo.createElement(Rf,{size:24}),Eo.createElement(kt,{value:m,autoFocus:!0,placeholder:Ni.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:v=>d(v.target.value)}),Eo.createElement(Rf,{size:16}),Eo.createElement(Wn,{list:S,selectedBlockchain:f,searchedFor:m,type:e,onChange:v=>{T(v);let w=y.find(A=>v.blockchain===A.name);w&&C(w),n()}})))}i(Nl,"SelectSwapItemsPage");import{i18n as Bl}from"@lingui/core";import{Alert as Sb,Button as Tb,styled as Cb}from"@rango-dev/ui";import Io from"react";import{useInRouterContext as kb,useSearchParams as vb}from"react-router-dom";import{i18n as ig}from"@lingui/core";import{Divider as Yx,InfoIcon as Zx,TextField as Jx,Tooltip as Rx,Typography as ag}from"@rango-dev/ui";import xt from"react";import{Chip as Kx,styled as Un,TextField as jx}from"@rango-dev/ui";var eg=Un("div",{paddingTop:"$5",padding:"$10 $5"}),tg=Un("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${jx}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),og=Un("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Wi=Un("div",{maxWidth:"280px",padding:"$10"}),ng=Un(Kx,{width:"61px",flexShrink:0});import{i18n as Wl}from"@lingui/core";import{Typography as Xx}from"@rango-dev/ui";import zn from"react";function rg(){return zn.createElement(Wi,null,zn.createElement(Xx,{variant:"label",size:"medium",color:"neutral700"},Wl.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),zn.createElement("br",null),zn.createElement("br",null),zn.createElement("b",null,Wl.t("Warning")),":",Wl.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(rg,"SlippageTooltipContent");function Ml(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return xt.createElement(eg,null,xt.createElement(og,null,xt.createElement(ag,{variant:"title",size:"xmedium"},ig.t("Slippage tolerance per swap")),xt.createElement(Yx,{direction:"horizontal",size:4}),xt.createElement(Rx,{container:B(),side:"top",sideOffset:4,content:xt.createElement(rg,null)},xt.createElement(Zx,{color:"gray"}))),xt.createElement(tg,null,Hp.map((r,a)=>{let s=`slippage-${a}`;return xt.createElement(ng,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),xt.createElement(Jx,{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>=jp&&s<=Kp?n(s):n(null)},suffix:o&&xt.createElement(ag,{variant:"body",size:"small"},"%"),placeholder:ig.t("Custom")})))}i(Ml,"Slippage");import{i18n as bt}from"@lingui/core";import{AutoThemeIcon as sg,BridgesIcon as eb,ChevronRightIcon as Mi,DarkModeIcon as lg,Divider as Qn,ExchangeIcon as tb,InfinityIcon as ob,InfoIcon as nb,LanguageIcon as rb,LightModeIcon as pg,List as ib,ListItem as ab,ListItemButton as sb,Skeleton as lb,styled as pb,Switch as cb,Tabs as ub,TargetIcon as mb,Tooltip as db,Typography as ot}from"@rango-dev/ui";import _ from"react";import{useNavigate as fb}from"react-router-dom";var gb=pb("div",{width:"202px",height:"$40"}),hb=[{id:"light",icon:_.createElement(pg,{color:"black",size:24}),tooltip:_.createElement(ot,{size:"xsmall",variant:"body"},bt.t("Light"))},{id:"dark",icon:_.createElement(lg,{color:"black",size:24}),tooltip:_.createElement(ot,{size:"xsmall",variant:"body"},bt.t("Dark"))},{id:"auto",icon:_.createElement(sg,{color:"black",size:24}),tooltip:_.createElement(ot,{size:"xsmall",variant:"body"},bt.t("Auto"))}],yb=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return _.createElement(sg,{...e});case"dark":return _.createElement(lg,{...e});default:return _.createElement(pg,{...e})}},"getThemeIcon");function cg(){let t=fb(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=eo(),s=a.find(M=>M.local===r)?.label,l=h().fetchStatus,p=h().swappers(),c=h().getDisabledLiquiditySources(),{config:{features:u}}=h(),m=h().customTokens(),d=Ze("theme",u),g=Ze("liquiditySource",u),f=Ze("language",u),y=Ze("customTokens",u),S=h().infiniteApprove,C=h().toggleInfiniteApprove,T=fr(p,c),k=T.filter(M=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(M.type)),v=k.length,w=k.filter(M=>M.selected).length,A=T.filter(M=>M.type==="DEX"),b=A.length,x=A.filter(M=>M.selected).length,E=i((M,K)=>{switch(l){case"loading":return _.createElement(lb,{variant:"text",size:"medium",width:50});case"failed":return _.createElement(ot,{variant:"body",size:"medium",color:"$error500"},bt.t("Loading failed"));default:return _.createElement(ot,{variant:"body",size:"medium"},`${M} / ${K}`)}},"handleSwapperEndItem"),I={id:"bridge-item",title:_.createElement(ot,{variant:"title",size:"xmedium"},bt.t("Bridges")),end:_.createElement(_.Fragment,null,E(w,v),_.createElement(Qn,{direction:"horizontal",size:8}),_.createElement(Mi,{color:"black"})),onClick:()=>t(F.bridges),start:_.createElement(eb,{color:"gray",size:16})},P={id:"exchange-item",title:_.createElement(ot,{variant:"title",size:"xmedium"},bt.t("Exchanges")),end:_.createElement(_.Fragment,null,E(x,b),_.createElement(Qn,{direction:"horizontal",size:8}),_.createElement(Mi,{color:"black"})),start:_.createElement(tb,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},H={id:"custom-tokens-item",title:_.createElement(ot,{variant:"title",size:"xmedium"},bt.t("Custom Tokens")),end:_.createElement(_.Fragment,null,_.createElement(ot,{variant:"body",size:"medium"},`${m.length}`),_.createElement(Qn,{direction:"horizontal",size:8}),_.createElement(Mi,{color:"black"})),start:_.createElement(mb,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},N={id:"language-item",title:_.createElement(ot,{variant:"title",size:"xmedium"},bt.t("Language")),start:_.createElement(rb,{color:"gray",size:16}),end:_.createElement(_.Fragment,null,_.createElement(ot,{variant:"body",size:"medium"},s),_.createElement(Qn,{direction:"horizontal",size:8}),_.createElement(Mi,{color:"black"})),onClick:()=>t(F.languages)},J={id:"infinite-approval-item",title:_.createElement(_.Fragment,null,_.createElement(ot,{variant:"title",size:"xmedium"},bt.t("Infinite approval")),_.createElement(Qn,{direction:"horizontal",size:4}),_.createElement(db,{side:"top",sideOffset:4,container:B(),content:_.createElement(Wi,null,_.createElement(ot,{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.")))},_.createElement(nb,{color:"gray"}))),start:_.createElement(ob,{color:"gray",size:16}),end:_.createElement(cb,{checked:S}),onClick:C},ne={id:"theme-item",type:_.createElement(ab,null),title:_.createElement(ot,{variant:"title",size:"xmedium"},bt.t("Theme")),end:_.createElement(gb,null,_.createElement(ub,{container:B(),items:hb,value:n,onChange:M=>o(M.id),type:"primary",borderRadius:"small"})),start:yb(n)},L=g?[]:[I,P];return y||L.push(H),f||L.push(N),L.push(J),!e?.singleTheme&&!d&&L.push(ne),_.createElement(ib,{type:_.createElement(sb,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:L})}i(cg,"SettingsLists");var xb=Cb("div",{paddingLeft:"$8"});function ug(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=vb(),r=kb(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Io.createElement(ie,{header:{title:Bl.t("Settings")}},Io.createElement(le,null,o&&Io.createElement(Sb,{type:"info",variant:"alarm",title:Bl.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:Io.createElement(xb,null,Io.createElement(Tb,{type:"secondary",size:"small",onClick:a},Bl.t("Reset")))}),Io.createElement(Ml,null),Io.createElement(cg,null)))}i(ug,"SettingsPage");import{i18n as lw}from"@lingui/core";import{cancelSwap as pw}from"@rango-dev/queue-manager-rango-preset";import{useManager as cw}from"@rango-dev/queue-manager-react";import{Alert as uw}from"@rango-dev/ui";import Xl from"react";import{useParams as mw}from"react-router-dom";import{i18n as pt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as qb,getCurrentStep as Hb,getRelatedWalletOrNull as Gb}from"@rango-dev/queue-manager-rango-preset";import{Button as qg,CopyIcon as Vb,Divider as Kb,DoneIcon as jb,IconButton as Xb,QuoteCost as Yb,RangoExplorerIcon as Zb,StepDetails as Jb,Tooltip as Hg,Typography as No,useCopyToClipboard as Rb}from"@rango-dev/ui";import{useWallets as ew}from"@rango-dev/wallets-react";import Gg from"bignumber.js";import{PendingSwapNetworkStatus as zi}from"rango-types";import Z,{useEffect as Vg,useRef as tw,useState as Kg}from"react";import{useNavigate as ow}from"react-router-dom";import{i18n as to}from"@lingui/core";var bb=[to.t("Sunday"),to.t("Monday"),to.t("Tuesday"),to.t("Wednesday"),to.t("Thursday"),to.t("Friday"),to.t("Saturday")];function mg(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?to.t("Today"):`${bb[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(mg,"timeSince");function dg(t){return t.finishTime?mg(parseInt(t.finishTime)):mg(parseInt(t.creationTime))}i(dg,"getSwapDate");import{PendingSwapNetworkStatus as Di}from"rango-types";import _i from"react";import{i18n as Bi}from"@lingui/core";import{Button as fg,Divider as Ll,MessageBox as wb}from"@rango-dev/ui";import oo from"react";var gg=i(({onCancel:t,onClose:e})=>oo.createElement(oo.Fragment,null,oo.createElement(Ll,{size:20}),oo.createElement(wb,{type:"error",title:Bi.t("Cancel Swap"),description:Bi.t("Are you sure you want to cancel this swap?")}),oo.createElement(Ll,{size:32}),oo.createElement(fg,{variant:"contained",type:"primary",size:"large",onClick:t},Bi.t("Yes, Cancel it")),oo.createElement(Ll,{size:12}),oo.createElement(fg,{variant:"outlined",type:"primary",size:"large",onClick:e},Bi.t("No, Continue"))),"CancelContent");import{i18n as Li}from"@lingui/core";import{Button as hg,Divider as Pl,MessageBox as Eb,Typography as Ib}from"@rango-dev/ui";import zt from"react";var yg=i(({onDelete:t,onClose:e})=>zt.createElement(zt.Fragment,null,zt.createElement(Pl,{size:20}),zt.createElement(Eb,{type:"error",title:Li.t("Delete Transaction"),description:Li.t("Are you sure you want to delete this swap?")}),zt.createElement(Pl,{size:32}),zt.createElement(hg,{variant:"contained",type:"primary",size:"large",onClick:t},Li.t("Yes, Delete it")),zt.createElement(Pl,{size:12}),zt.createElement(hg,{variant:"outlined",type:"primary",size:"large",onClick:e},zt.createElement(Ib,{variant:"title",size:"medium",color:"primary"},Li.t("No, Cancel")))),"DeleteContent");import{i18n as Dl}from"@lingui/core";import{PendingSwapNetworkStatus as _l}from"rango-types";var $l={[_l.WaitingForNetworkChange]:{type:"loading",title:Dl.t("Change Network")},[_l.WaitingForConnectingWallet]:{type:"warning",title:Dl.t("Connect Wallet")},[_l.NetworkChanged]:{type:"success",title:Dl.t("Network Changed")}};import{debug as Pi}from"@rango-dev/logging-core";import{MessageBox as Ab,Wallet as Nb}from"@rango-dev/ui";import{useWallets as Wb}from"@rango-dev/wallets-react";import Ao,{useState as Cg}from"react";import{styled as Sg}from"@rango-dev/ui";var Tg=Sg("div",{display:"flex",justifyContent:"center"}),$V=Sg("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var kg=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:c}=Wb(),[u,m]=Cg(null),[d,g]=Cg(null),f=n?.walletType,y=f?ra(c(f)):null,S=f?p(f):null,C=a&&!!f&&!!y&&!!S,T=i(()=>{u&&m({...u,open:!1})},"handleCloseNamespaceModal"),k=i(()=>{d&&g({...d,open:!1})},"handleCloseDerivationPathModal"),v=i(()=>{f&&S&&(S.namespaces?.length?S.namespaces.length>1?m({open:!0,providerType:f,providerImage:S.img,availableNamespaces:S.namespaces,singleNamespace:S.singleNamespace}):S.needsDerivationPath?g({open:!0,providerType:f,providerImage:S.img,namespace:S.namespaces[0]}):l(f).catch(b=>Pi(b)):l(f).catch(b=>Pi(b)))},"handleWalletItemClick"),w=i(b=>{S?.needsDerivationPath&&S?.singleNamespace&&b[0]&&f?g({open:!0,providerType:f,providerImage:S.img,namespace:b[0]}):l(u?.providerType,void 0,b.map(x=>({namespace:x}))).catch(x=>Pi(x)),T()},"handleConfirmNamespaces"),A=i(b=>{b&&d?.namespace&&l(d?.providerType,void 0,[{namespace:d.namespace,derivationPath:b}]).catch(x=>Pi(x)),k()},"handleDerivationPathConfirm");return Ao.createElement(Ao.Fragment,null,Ao.createElement(Ab,{type:e,title:o,description:r}),C&&Ao.createElement(Tg,null,Ao.createElement(Nb,{container:B(),title:S.name,image:S.img,type:f,state:y,link:S.installLink,disabled:s,onClick:v})),Ao.createElement(So,{open:!!u?.open,onClose:T,onConfirm:w,image:u?.providerImage,availableNamespaces:u?.availableNamespaces,singleNamespace:u?.singleNamespace}),Ao.createElement(ho,{open:!!d?.open,selectedNamespace:d?.namespace,type:d?.providerType,image:d?.providerImage,onClose:k,onConfirm:A}))},"WalletStateContent");function Fl(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===Di.WaitingForNetworkChange||e===Di.WaitingForConnectingWallet||e===Di.NetworkChanged;return _i.createElement(X,{open:!!e,onClose:o,container:document.getElementById(ke.SWAP_BOX_ID)||document.body},p&&_i.createElement(kg,{type:$l[e].type,title:$l[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==Di.WaitingForNetworkChange}),e==="delete"&&_i.createElement(yg,{onClose:o,onDelete:n}),e==="cancel"&&_i.createElement(gg,{onClose:o,onCancel:r}))}i(Fl,"SwapDetailsModal");import{i18n as qn}from"@lingui/core";import{Button as Ol,Divider as $i,MessageBox as vg,TokenAmount as Mb,Typography as Ul}from"@rango-dev/ui";import He from"react";import{useNavigate as Bb}from"react-router-dom";function zl(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:c,percentageChange:u,description:m,diagnosisUrl:d}=t,g=Bb();return He.createElement(X,{open:e,onClose:o,container:document.getElementById(ke.SWAP_BOX_ID)||document.body},n==="success"?He.createElement(vg,{type:"success",title:qn.t("Swap Successful")},He.createElement(Mb,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:c,percentageChange:u}),He.createElement($i,{size:12}),He.createElement(Ul,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):He.createElement(vg,{type:"error",title:qn.t("Transaction Failed"),description:m}),He.createElement($i,{size:32}),n==="success"&&He.createElement(Ol,{variant:"contained",type:"primary",size:"large",onClick:()=>{g("../../")}},He.createElement(Ul,{variant:"title",size:"medium",color:"neutral100"},qn.t("Done"))),He.createElement($i,{size:12}),d&&He.createElement(He.Fragment,null,He.createElement(Ol,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},qn.t("Diagnosis")),He.createElement($i,{size:12})),He.createElement(Ol,{variant:"outlined",type:"primary",size:"large",onClick:o},He.createElement(Ul,{variant:"title",size:"medium",color:"primary"},qn.t("See Details"))))}i(zl,"SwapDetailsCompleteModal");import Qb from"react";import{i18n as Fb}from"@lingui/core";import{Alert as Og,IconButton as Ob,LinkIcon as Ub}from"@rango-dev/ui";import no,{Fragment as zb}from"react";import{Alert as Pb,ChevronDownIcon as Db,IconButton as _b}from"@rango-dev/ui";import tn,{useState as $b}from"react";import{css as Hn,darkTheme as xg,styled as Qt,Typography as Lb}from"@rango-dev/ui";var bg=Qt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Fi=Qt("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${xg} &`]:{color:"$secondary500"}}}}}),wg=Qt(dn,{padding:"$0 $20 $20 $20"}),C2=Qt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Eg=Qt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),k2=Qt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),en=Hn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${xg} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Ig=Hn({padding:"$5 0"}),Oi=Hn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Ag=Hn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Ng=Hn({width:"100%",padding:"0 $20 $10"}),Wg=Qt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Mg=Qt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ui=Qt(Lb,{wordBreak:"break-word"});import{styled as Ql}from"@rango-dev/ui";var Bg=Ql("div",{display:"flex",flexDirection:"column",gap:"$10"}),Lg=Ql("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Pg=Ql("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Dg(t){let{message:e}=t,[o,n]=$b(!1);return tn.createElement(Pb,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&tn.createElement(_b,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},tn.createElement(Lg,{rotated:o},tn.createElement(Db,{size:12,color:"gray"}))),footer:tn.createElement(Pg,{open:o},tn.createElement(Ui,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Dg,"FailedAlert");import{i18n as _g}from"@lingui/core";import{Alert as ql,Button as $g}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Hl}from"rango-types";import Gn from"react";function Fg(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Gn.createElement(ql,{type:"warning",title:n.shortMessage,action:Gn.createElement($g,{size:"xxsmall",type:"warning",onClick:()=>{o(Hl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},_g.t("Change"))}):r===Hl.WaitingForConnectingWallet?Gn.createElement(ql,{type:"warning",title:n.shortMessage,action:Gn.createElement($g,{size:"xxsmall",type:"warning",onClick:()=>{o(Hl.WaitingForConnectingWallet)}},_g.t("Connect"))}):Gn.createElement(ql,{type:"warning",title:n.shortMessage})}i(Fg,"WarningAlert");function Gl(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=cn(a),p=a.status==="waitingForApproval"&&!l,c=a.status==="running"&&!l,u=c&&!s||p&&!a.explorerUrl?.length;return no.createElement(Bg,null,a.explorerUrl?.map((m,d,g)=>{let f=d+m.url,y=d===g.length-1,S=(y&&c||p)&&!u,C=y&&a.status==="failed";return no.createElement(zb,{key:f},no.createElement(Og,{type:y&&(S&&"loading"||C&&"error")||"success",title:m.description?`${m.description} Tx`:Fb.t("View transaction"),action:m.url&&no.createElement(Ob,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},no.createElement(Ub,{size:12}))}))}),u&&no.createElement(Og,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&no.createElement(Fg,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&no.createElement(Dg,{message:r}))}i(Gl,"SwapDetailsAlerts");var Ug=2e3;var zg=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:ct(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:D(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ct(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:D(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:nn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:ct(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:ct(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:nn(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Qb.createElement(Gl,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Qg(t){if(cn(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(Qg,"getStepState");function Vl(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=ew(),p=h().blockchains(),c=h().swappers(),{findToken:u}=h(),m=q.use.retry(),d=ue.use.isActiveTab(),g=ow(),[f,y]=Rb(Ug),S=tw(null),[C,T]=Kg(null),[k,v]=Kg(null),w=i(()=>{r(),T(null)},"onCancel"),A=Ne.use.getNotifications(),b=Ne.use.removeNotification(),x=A(),E=Hb(e),I=E?.networkStatus;Vg(()=>{x.find(ve=>ve.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),b(e.requestId)):k&&v(null))},[e.status,e.requestId]),Vg(()=>{M?T(zi.WaitingForNetworkChange):I===zi.WaitingForConnectingWallet||I===zi.NetworkChanged?T(I):T(null)},[I]);let P=kc(e),H=E?qb(e,E):null,N=E?Gb(e,E):null,J=dg(e),ne=vc(e),L=i(ce=>!!l(ce)?.mobileWallet,"isMobileWallet"),M=I===zi.WaitingForNetworkChange&&!!H&&!!N?.walletType&&(L(N.walletType)||a(N.walletType,H)),K=M?s.bind(null,N.walletType,H):void 0,ge=Cc(e,E),Y=zg({swap:e,switchNetwork:K,showNetworkModal:I,setNetworkModal:T,message:ge,blockchains:p,swappers:c}),ae=Y.length,[he,Ce]=[e.steps[0],e.steps[ae-1]],O=Ce.outputAmount||Ce.expectedOutputAmountHumanReadable,W=e.steps.reduce((ce,ve)=>ce+parseFloat(ve.feeInUsd||""),0),me=e.steps.find(ce=>ce.diagnosisUrl)?.diagnosisUrl,de=D(parseFloat(O||"0")*(Ce.toUsdPrice||0),4,4),ze=D(parseFloat(e.inputAmount)*(he.fromUsdPrice||0),4,4),$=O?new Gg(O).multipliedBy(Ce.toUsdPrice||0).toString():"",Q=new Gg(e.inputAmount).multipliedBy(he.fromUsdPrice||0).toString(),j=mt(ze,de),pe=ge.detailedMessage.content||ge.shortMessage,te=e.status==="success"?pt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:D(O,6,6),token:Y[ae-1].to.token.displayName,conciseAddress:lr(e.wallets[Y[ae-1].to.chain.displayName]?.address||""),chain:Y[ae-1].to.chain.displayName}}):Z.createElement(Mg,null,Z.createElement(No,{variant:"body",size:"medium",color:"neutral700",align:"center"},pe?"":pt.t("Transaction was not sent."),P?`${pt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:P.outputAmount,symbol:P.symbol,blockchain:P.blockchain}})}`:""),pe&&Z.createElement(Ui,{align:"center",variant:"body",size:"medium",color:"neutral700"},Z.createElement("b",null,"Reason:")," ",pe));return Z.createElement(ie,{header:{title:pt.t("Swap Details"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(Kt,null,Z.createElement(qg,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},Z.createElement(No,{size:"medium",variant:"label",color:"error"},pt.t("Delete"))))},footer:ne&&!k&&Z.createElement(qg,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let ce=xr(e,p,u);m(ce),setTimeout(()=>{g("../../")},0)}},pt.t("Try again"))},Z.createElement(le,{compact:!0,view:!0},Z.createElement(Fi,null,Z.createElement("div",{className:en()},Z.createElement(No,{variant:"label",size:"large",color:"neutral700"},`${pt.t("Request ID")}:`),Z.createElement("div",{className:Oi()},Z.createElement(No,{variant:"label",size:"small",color:"neutral700"},o),Z.createElement(Hg,{container:B(),content:f?pt.t("Copied To Clipboard"):pt.t("Copy Request ID"),open:f||void 0,side:"bottom",alignOffset:-16,align:"end"},Z.createElement(Xb,{variant:"ghost",onClick:y.bind(null,o||"")},f?Z.createElement(jb,{size:16,color:"secondary"}):Z.createElement(Vb,{size:16,color:"gray"}))),Z.createElement(Wg,{target:"_blank",href:`${np}/swap/${o}`},Z.createElement(Hg,{container:B(),content:pt.t("View on Rango Explorer"),side:"bottom"},Z.createElement(Zb,{size:20}))))),Z.createElement("div",{className:en()},Z.createElement(No,{variant:"label",size:"large",color:"neutral700"},e.finishTime?pt.t("Finished at"):pt.t("Created at")),Z.createElement(No,{variant:"label",size:"small",color:"neutral700"},J))),Z.createElement("div",{className:Ag()},Z.createElement(Yb,{fee:D(String(W),2,2),time:an(tr(e.steps)),steps:ae}),Z.createElement(kn,{from:{price:{value:D(e.inputAmount,6,6),usdValue:ze,realUsdValue:Q,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:D(O,6,6),usdValue:de,realUsdValue:$,realValue:O||""},token:{displayName:Y[ae-1].to.token.displayName,image:Y[ae-1].to.token.image},chain:{image:Y[ae-1].to.chain.image,displayName:Y[ae-1].to.chain.displayName}},percentageChange:D(j,2,2),warningLevel:Lt(j??0)})),Z.createElement("div",{className:Ng()},Z.createElement(No,{variant:"title",size:"small"},pt.t("Swaps steps"))),Z.createElement(Kb,{size:8}),Z.createElement(wg,{ref:S},Y.map((ce,ve)=>{let jn=ve,ro=Qg(e.steps[ve]),Yi=ro==="error"||ro==="in-progress"||ro==="warning"||ro==="completed"&&ve===Y.length-1;return Z.createElement(Jb,{key:jn,step:ce,type:"swap-progress",ref:S,state:ro,hasSeparator:ve!==0,tabIndex:jn,isFocused:Yi,tooltipContainer:B()})}))),Z.createElement(Fl,{state:C,onClose:()=>T(null),onCancel:w,onDelete:n,message:ge.detailedMessage.content,currentStepWallet:N,walletButtonDisabled:!d}),Z.createElement(zl,{open:!!k,diagnosisUrl:me,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:D(O,6,6),usdValue:de,realUsdValue:$,realValue:O||"",percentageChange:D(j,2,2),token:{displayName:Y[ae-1].to.token.displayName,image:Y[ae-1].to.token.image},chain:{image:Y[ae-1].to.chain.image},description:te}))}i(Vl,"SwapDetails");import{i18n as qi}from"@lingui/core";import{Divider as Yg,NotFound as sw,Skeleton as Kn,Typography as Hi}from"@rango-dev/ui";import Ee from"react";import{i18n as nw}from"@lingui/core";import{Divider as rw,Skeleton as iw,Typography as aw}from"@rango-dev/ui";import Ae from"react";import{css as wt,styled as Kl}from"@rango-dev/ui";var jg=Kl("div",{width:"100%",height:"100%",padding:"$10 $20"}),Vn=Kl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Qi=Kl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),L5=wt({display:"flex",justifyContent:"space-between",alignItems:"center"}),P5=wt({display:"flex",justifyContent:"space-between",alignItems:"center"}),D5=wt({paddingTop:"$15",display:"flex"}),_5=wt({padding:"$15 $0"}),$5=wt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),F5=wt({paddingBottom:"$10"}),O5=wt({display:"flex",justifyContent:"start",alignItems:"center"}),U5=wt({paddingTop:"$5",display:"flex",alignItems:"center"}),z5=wt({display:"flex",alignItems:"center"}),Q5=wt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Xg=wt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function jl(){return Ae.createElement(jg,null,Ae.createElement(bn,{type:"swap-preview"}),Ae.createElement("div",{className:"swaps-steps"},Ae.createElement(aw,{variant:"title",size:"small"},nw.t("Swaps steps"))),Ae.createElement(Ae.Fragment,null,Ae.createElement(Vn,null,Ae.createElement(Mt,{separator:!1}),Ae.createElement("div",{className:Xg()},Ae.createElement(rw,{direction:"horizontal",size:20}),Ae.createElement(iw,{height:22,variant:"rectangular"}))),Ae.createElement(Qi,null),Ae.createElement(Vn,null,Ae.createElement(Mt,{separator:!1})),Ae.createElement(Qi,null),Ae.createElement(Vn,null,Ae.createElement(Mt,{separator:!1})),Ae.createElement(Qi,null),Ae.createElement(Vn,null,Ae.createElement(Mt,{separator:!1}))))}i(jl,"LoadingSwapDetails");function Zg(t){let{requestId:e,showSkeleton:o}=t;return Ee.createElement(ie,{header:{title:qi.t("Swap Details"),suffix:Ee.createElement(Kt,null)}},o&&Ee.createElement(bg,null,Ee.createElement(Fi,null,Ee.createElement("div",{className:en()},Ee.createElement(Hi,{variant:"label",size:"large",color:"neutral700"},`${qi.t("Request ID")}:`),Ee.createElement("div",{className:Oi()},Ee.createElement(Hi,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Kn,{width:60,height:10,variant:"rounded"})),Ee.createElement(Yg,{direction:"horizontal",size:4}),Ee.createElement(Kn,{width:16,height:16,variant:"rectangular"}),Ee.createElement(Yg,{direction:"horizontal",size:4}),Ee.createElement(Kn,{width:16,height:16,variant:"rectangular"}))),Ee.createElement("div",{className:en()},Ee.createElement(Hi,{className:Ig(),variant:"label",size:"large",color:"neutral700"},Ee.createElement(Kn,{width:60,height:10,variant:"rounded"})),Ee.createElement(Hi,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Kn,{width:60,height:10,variant:"rounded"})))),Ee.createElement(jl,null)),!o&&Ee.createElement(Eg,null,Ee.createElement(sw,{title:qi.t("Not found"),description:qi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Zg,"SwapDetailsPlaceholder");function Jg(){let{manager:t,state:e}=cw(),o=!e.loadedFromPersistor,n=dt(t),{requestId:r}=mw(),a=Re(),{fetchStatus:s}=h();if(!r)return Xl.createElement(uw,{containerStyles:{margin:"20px"},type:"error",title:lw.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,c=i(()=>{if(p?.id){let d=t?.get(p.id);d&&pw(d)}},"onCancel"),u=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(d){console.log(d)}},"onDelete"),m=p?.swap;return!m||l?Xl.createElement(Zg,{requestId:r,showSkeleton:l}):Xl.createElement(Vl,{swap:m,requestId:r,onCancel:c,onDelete:u})}i(Jg,"SwapDetailsPage");function Rg(){return Bc(),Aa(),dw([{path:F.home,element:Ue.createElement(Lf,null)},{path:F.routes,element:Ue.createElement(Ff,null)},{path:F.fromSwap,children:[{index:!0,element:Ue.createElement(Nl,{type:"source"})},{path:F.blockchains,element:Ue.createElement(Ii,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:Ue.createElement(Nl,{type:"destination"})},{path:F.blockchains,element:Ue.createElement(Ii,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:Ue.createElement(ug,null)},{path:F.languages,element:Ue.createElement(Df,null)},{path:F.exchanges,element:Ue.createElement(kl,{sourceType:"Exchanges"})},{path:F.bridges,element:Ue.createElement(kl,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:Ue.createElement(Hd,null)},{path:F.addCustomTokens,children:[{index:!0,element:Ue.createElement(Tu,null)},{path:F.blockchains,element:Ue.createElement(Ii,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:Ue.createElement(uf,null)},{path:F.swapDetails,element:Ue.createElement(Jg,null)}]},{path:F.wallets,element:Ue.createElement(Zu,null)},{path:F.confirmSwap,element:Ue.createElement(Ad,null)}])}i(Rg,"AppRoutes");import{useQueueManager as vw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as xw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as bw}from"rango-sdk";import{useContext as ww,useEffect as ah,useState as sh}from"react";import{globalCss as fw}from"@rango-dev/ui";var eh=i(()=>fw({"@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 th(){let{setWatermark:t}=ue();return{fetchApiConfig:i(async()=>{let o=await fetch(`${ut("BASE_URL")}/meta/dapp/config?apiKey=${ut("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(th,"useFetchApiConfig");import{useWallets as gw}from"@rango-dev/wallets-react";import{useEffect as hw,useRef as yw}from"react";function oh(){let{connect:t,state:e}=gw(),o=yw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);hw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(oh,"useForceAutoConnect");import{isApprovalTX as Sw,RouteEventType as nh,StepEventType as rh,StepExecutionEventStatus as Tw,WidgetEvents as Gi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as ih}from"react";function Yl(){let t=oe.use.connectedWallets(),e=oe.use.getWalletsDetails(),o=Ne.use.setNotification(),{findToken:n}=h();ih(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===rh.TX_EXECUTION&&s.status===Tw.TX_SENT&&!Sw(l)||s.type===rh.SUCCEEDED){let u=t.find(d=>d.chain===l?.fromBlockchain),m=l?.fromBlockchain!==l?.toBlockchain&&t.find(d=>d.chain===l?.toBlockchain);u&&e([u],n),m&&e([m],n)}o(s,p)},"handleStepEvent");return xe.on(Gi.StepEvent,r),()=>xe.off(Gi.StepEvent,r)},[xe,t]),ih(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===nh.FAILED||s.type===nh.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return xe.on(Gi.RouteEvent,r),()=>xe.off(Gi.RouteEvent,r)},[xe])}i(Yl,"useSubscribeToWidgetEvents");import{useManager as Cw}from"@rango-dev/queue-manager-react";import{useEffect as kw}from"react";function Zl(){let{isSynced:t,syncNotifications:e}=Ne(),{manager:o,state:n}=Cw();kw(()=>{Ne.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(dt(o))},[Ne.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Zl,"useSyncNotifications");function Jl(){oh(),eh(),Yl(),Zl();let t=h().blockchains(),{canSwitchNetworkTo:e}=Vr(),[o,n]=sh(""),[r,a]=sh(),s=ww(hr),l=t.filter(bw),{fetchApiConfig:p}=th();ah(()=>()=>Mc(),[]),vw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),ah(()=>(lo.init(),Ne.persist.hasHydrated()||Ne.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(c=>{a(c),c===xw(o)?.[0]&&n("")}),p().catch(console.log),lo.destroy),[])}i(Jl,"useBootstrap");import{styled as Ew}from"@rango-dev/ui";var lh=Ew("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Vi(){Jl();let{config:t}=h(),{activeTheme:e}=Oo(t?.theme||{}),{activeLanguage:o}=eo();return Rl.createElement(Iw,{language:o},Rl.createElement(lh,{id:"swap-container",className:e()},Rl.createElement(Rg,null)))}i(Vi,"Main");import{setSolanaSignerConfig as Kw}from"@rango-dev/signer-solana";import tp,{useEffect as fh,useMemo as jw}from"react";import{useState as Aw}from"react";var Nw=i(()=>{let[t,e]=Aw(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=dp(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),ph=Nw;import{checkWaitingForNetworkChange as Ww,makeQueueDefinition as Mw}from"@rango-dev/queue-manager-rango-preset";import{Provider as Bw}from"@rango-dev/queue-manager-react";import{useWallets as Lw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Pw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Dw}from"rango-types";import _w,{useMemo as $w}from"react";function Fw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=Lw(),l=$w(()=>Mw({API_KEY:t.apiKey||ut("API_KEY"),BASE_URL:ut("BASE_URL"),emitter:{emit:xe.emit}}),[t.apiKey]),p=h().blockchains(),u={blockchains:oe.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),d=i(k=>!!s(k).mobileWallet,"isMobileWallet"),g=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),f=p.filter(Dw),y=i(k=>{let{supportedChains:v}=s(k);return rr(v)},"getSupportedChainNames"),S=e(),C={meta:{blockchains:g,evmBasedChains:f,evmNetworkChainInfo:Pw(f),getSupportedChainNames:y},getSigners:o,wallets:u,providers:S,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},T=ue.use.isActiveTab();return _w.createElement(Bw,{queuesDefs:[l],context:C,onPersistedDataLoaded:k=>{Ww(k)},isPaused:!T},t.children)}i(Fw,"QueueManager");var ch=Fw;import{useManager as qw}from"@rango-dev/queue-manager-react";import Hw,{createContext as Gw,useContext as Vw}from"react";function uh(){let{findToken:t}=h(),e=h().blockchains(),o=h().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=q();return i(c=>{let{fromBlockchain:u,fromToken:m,toBlockchain:d,toToken:g,requestAmount:f}=c,y={blockchains:e,tokens:o};if(u!==void 0){let S=e.find(C=>C.name===u)??null;n(S)}if(m!==void 0){let S=m?t(m)??null:null;r({meta:y,token:S})}if(d!==void 0){let S=e.find(C=>C.name===d)??null;a(S)}if(g!==void 0){let S=g?t(g)??null:null;s({meta:y,token:S})}f!==void 0&&l(f)},"updateQuoteInputs")}i(uh,"useUpdateQuoteInputs");import{cancelSwap as Ow,getCurrentBlockchainOfOrNull as Uw,getCurrentStep as zw,getRelatedWalletOrNull as Qw}from"@rango-dev/queue-manager-rango-preset";var Ki=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return dt(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=xr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&Ow(o)}getCurrentStepInfo(e){let o=zw(e);return{step:o,wallet:o?Qw(e,o):null,network:o?Uw(e,o):null}}};var mh=Gw(void 0);function ep(t){let{manager:e}=qw(),o=ue.use.isActiveTab(),n=q.use.retry(),{findToken:r}=h(),a=new Ki(e,{retrySwap:n,findToken:r}),s=oe.use.connectedWallets(),l=oe.use.loading(),p=kp(s),c=oe.use.getWalletsDetails(),u=h().blockchains(),m=h().tokens(),d=h().swappers(),g=h().fetchStatus,f=eo().resetLanguage,y=Ne().getNotifications(),S=Ne().clearNotifications,C=uh(),{fromBlockchain:T,toBlockchain:k,fromToken:v,toToken:w,inputAmount:A}=q(),b={isActiveTab:o,setCurrentTabAsActive:lo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:x=>c(x,r)},meta:{blockchains:u,tokens:m,swappers:d,loadingStatus:g,findToken:r},resetLanguage:f,notifications:{list:y,clearAll:S},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:v?{symbol:v.symbol,blockchain:v.blockchain,address:v.address}:null,toBlockchain:k?.name??null,toToken:w?{symbol:w.symbol,blockchain:w.blockchain,address:w.address}:null,requestAmount:A},updateQuoteInputs:C}};return Hw.createElement(mh.Provider,{value:b},t.children)}i(ep,"WidgetInfo");function dh(){let t=Vw(mh);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(dh,"useWidget");function ji(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=ph();return fh(()=>{n&&r(n)},[n]),jw(()=>{Np({API_KEY:o?.apiKey||Xn,BASE_URL:o?.apiUrl||op})},[o.apiKey,o.apiUrl]),fh(()=>{t.config?.signers?.customSolanaRPC&&Kw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),tp.createElement(yr,{config:o,onUpdateState:e},tp.createElement(ch,{apiKey:o.apiKey},tp.createElement(ep,null,t.children)))}i(ji,"WidgetProvider");function gh(t){let e=t.config?.externalWallets;return Xi.createElement(nc,null,e?Xi.createElement(Vi,null):Xi.createElement(ji,{config:t.config??da},Xi.createElement(Vi,null)))}i(gh,"Widget");function hh(){let{on:t,off:e}=xe;return{on:t,off:e}}i(hh,"useWidgetEvents");export{m6 as EventSeverity,so as MainEvents,k6 as Networks,b6 as PendingSwapNetworkStatus,pa as QuoteEventTypes,d6 as RouteEventType,Zi as SUPPORTED_FONTS,f6 as StepEventType,g6 as StepExecutionBlockedEventStatus,h6 as StepExecutionEventStatus,ke as UI_ID,ca as UiEventTypes,ur as WalletEventTypes,T6 as WalletEvents,v6 as WalletTypes,gh as Widget,so as WidgetEvents,ji as WidgetProvider,yr as WidgetWallets,Ua as customizedThemeTokens,S6 as readAccountAddress,mo as useWalletList,Vr as useWallets,dh as useWidget,hh as useWidgetEvents,Yn as widgetEventEmitter};
|
|
1
|
+
var Nh=Object.defineProperty;var i=(t,e)=>Nh(t,"name",{value:e,configurable:!0});import{EventSeverity as vj,RouteEventType as xj,StepEventType as wj,StepExecutionBlockedEventStatus as bj,StepExecutionEventStatus as Ej}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as Aj}from"@rango-dev/wallets-core/legacy";import{useWallets as Gr,Events as Wj}from"@rango-dev/wallets-react";import{Networks as Bj,WalletTypes as Lj}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as Dj}from"rango-types";import{UI_ID as Wh}from"@rango-dev/ui";var Yn="c6381a79-2817-4602-83bf-6a641a409e32",ip="https://api.rango.exchange",ap="https://explorer.rango.exchange",_e={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Wh};var sp="Roboto",Xi=[{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 ma,Provider as xy}from"@rango-dev/wallets-react";import{isEvmBlockchain as wy}from"rango-sdk";import gr,{createContext as by,useEffect as ic,useMemo as Ey,useRef as ac}from"react";import{useEffect as Yh}from"react";import{create as Kh}from"zustand";import{subscribeWithSelector as jh}from"zustand/middleware";import Mh from"mitt";var ye=Mh(),Zn={on:ye.on,off:ye.off};import{RangoClient as Gh}from"rango-sdk";import{BlockchainCategories as Fh,WalletState as Et}from"@rango-dev/ui";import{legacyReadAccountAddress as Oh}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as Uh,getCosmosExperimentalChainInfo as zh,isEvmAddress as Qh,KEPLR_COMPATIBLE_WALLETS as KE,Networks as kp}from"@rango-dev/wallets-shared";import ta from"bignumber.js";import{isCosmosBlockchain as qh}from"rango-types";import Bh from"bignumber.js";var Ue=new Bh(0);import{WalletTypes as Lh}from"@rango-dev/wallets-shared";var lp=[Lh.LEAP];import{BlockchainCategories as Yi,WalletState as $h}from"@rango-dev/ui";import{TransactionType as Jn}from"rango-sdk";function Ao(t){return Array.from(new Set(t))}i(Ao,"removeDuplicateFrom");function Ri(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ri,"areEqual");function fp(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(fp,"debounce");function et(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(et,"containsText");function up(t,e){return t.toLowerCase()===e.toLowerCase()}i(up,"exactText");function mp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(mp,"startWithText");var A=i(()=>document.getElementById(_e.SWAP_BOX_ID),"getContainer"),on=i(()=>document.getElementById(_e.EXPANDED_BOX_ID),"getExpanded");function dp(t,e,o){let n=!!e&&up(e,t),r=!!o&&up(o,t);return n!==r?n?-1:1:0}i(dp,"compareExactMatchText");function Zi(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(Zi,"compareContainsText");function Ji(t,e,o){let n=!!e&&mp(e,t),r=!!o&&mp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ji,"compareStartWithText");function gp(t,e,o){if(!o)return 0;let n=dp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=dp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Ji(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Zi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ji(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Zi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Ji(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Zi(o,t.address,e.address);if(r!==0)return r}return 0}i(gp,"compareWithSearchFor");var Rn=i((t,e)=>{switch(e){case Yi.ALL:return!0;case Yi.UTXO:return t===Jn.TRANSFER;case Yi.OTHER:return t!==Jn.TRANSFER&&t!==Jn.COSMOS&&t!==Jn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),hp=i(t=>Xi.find(o=>o.value===t)?.url,"getFontUrlByName");function yp(t,e){let o=!!t.find(n=>n.state===$h.CONNECTED);return e===!1&&o}i(yp,"isSingleWalletActive");function er(t,e){return e.find(o=>o.name===t)?.displayName}i(er,"getBlockchainDisplayNameFor");function pt(t,e){return e.find(o=>o.name===t)?.shortName}i(pt,"getBlockchainShortNameFor");function Sp(t,e){return e.find(o=>o.name===t)?.logo}i(Sp,"getBlockchainImage");function nn(t,e){return e.find(o=>o.id===t)?.title}i(nn,"getSwapperDisplayName");function rn(t,e){return e.find(o=>o.name===t)??null}i(rn,"findBlockchain");function ea(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(ea,"isTokenNative");function $e(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i($e,"createTokenHash");function No(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(No,"isValidTokenAddress");import{BigNumber as Cp}from"bignumber.js";var an=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"),B=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Cp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Cp(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 tr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var bt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),sn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ln(t){switch(!0){case t.connected:return Et.CONNECTED;case t.connecting:return Et.CONNECTING;case!t.installed:return Et.NOT_INSTALLED;default:return Et.DISCONNECTED}}i(ln,"mapStatusToWalletState");function Tp(t,e,o,n){return o.filter(r=>!lp.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:g}=e(r),d=Ao(m.map(h=>h.type)),f=ln(t(r));return{title:a,image:s,link:Uh(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:d,needsDerivationPath:g}})}i(Tp,"mapWalletTypesToWalletInfo");function rr(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(rr,"walletAndSupportedChainsNames");function vp(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}=Oh(p),m=l.length>0,g=l.includes(c),d=c===kp.Unknown;if(m&&!g&&!d)return;let h=c===kp.Unknown&&Qh(u);if(d&&!h)return;o.includes(c)||h?r?s(c,u.toLowerCase()):l.filter(k=>o.includes(k)).forEach(k=>{s(k,u.toLowerCase())}):s(c,u)}),a}i(vp,"prepareAccountsForWalletStore");function ao(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,g=u.to.blockchain,d=a===o.swaps.length-1,f=c===p.length-1;(!d&&!f||d&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(g)})}e==="all"&&n.add(l)}),Array.from(n)}i(ao,"getQuoteWallets");function ir(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(ir,"isAccountAndWalletMatched");function xp(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 ta(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(xp,"makeBalanceFor");function wp(t){return{...t,loading:!1,error:!0}}i(wp,"resetConnectedWalletState");var bp=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=B(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new ta(a?.amount||Ue).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Ue)||Ue).toString();return Hh(r)},"calculateWalletUsdValue");function Hh(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Hh,"numberWithThousandSeparator");var ar=i((t,e)=>{let o=zh(Object.entries(t).map(([,n])=>n).filter(qh));return o&&o[e]?.experimental},"isExperimentalChain");function sr(t){return t?{...t,amount:B(t.amount,8,8),usdValue:B(t.usdValue,4,4)}:null}i(sr,"formatBalance");function Ep(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(Ep,"compareTokenBalance");function so(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(so,"areTokensEqual");function Ip(t){return t.sort((e,o)=>+(o.state===Et.CONNECTED)-+(e.state===Et.CONNECTED)||+(o.state===Et.DISCONNECTED||o.state===Et.CONNECTING)-+(e.state===Et.DISCONNECTED||e.state===Et.CONNECTING))}i(Ip,"sortWalletsBasedOnConnectionState");function lr(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(lr,"getConciseAddress");function Ap({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Ap,"getAddress");function pr(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new ta(o?.usdPrice??Ue).multipliedBy(o?.amount).toString():""},r=o?$e({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(pr,"makeTokensBalance");var Np=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Wp(t){return t.map(e=>e.state).join("-")}i(Wp,"hashWalletsState");function Mp(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(Mp,"filterBlockchainsByWalletTypes");function Bp(t,e){return e===Fh.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Rn(n,e))return!0;return!1})}i(Bp,"filterWalletsByCategory");var oa={API_KEY:Yn};function ct(t){return oa[t]||""}i(ct,"getConfig");function Lp(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),oa=e,oa}i(Lp,"initConfig");var Pp=20,Dp=25,na="theme-widget",ra=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>so(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>so(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),ia=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),_p=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var cr,qt=i(()=>cr||(cr=new Gh(ct("API_KEY"),ct("BASE_URL")),cr),"httpService");import{WidgetEvents as $p}from"@rango-dev/queue-manager-rango-preset";var aa=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(aa||{}),ur=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(ur||{}),sa=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(sa||{}),lo=(a=>(a[a.RouteEvent=$p.RouteEvent]="RouteEvent",a[a.StepEvent=$p.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(lo||{});var Vh=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"),Ht=Vh;var Z=Ht(Kh()(jh((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{ye.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)&&ye.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:pr(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=>ir(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await qt().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(g=>{let d=o.find(h=>ir(h,g)),f=p.find(h=>h.address===g.address&&h.blockChain===g.chain);return f?.failed&&d&&r&&a([d],n,!1),d&&f?{...g,explorerUrl:f.explorerUrl,balances:xp(f,n),loading:!1,error:!1}:g});return{loading:!1,balances:pr(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>ir(m,c))?wp(c):c);return{loading:!1,balances:pr(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=$e(o);return n[r]??null}}))));import{allProviders as Xh}from"@rango-dev/provider-all";function mr(t,e){let o=Xh({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(mr,"matchAndGenerateProviders");function Fp(t,e){return mr(t,e).map(r=>r.config.type)}i(Fp,"configWalletsToWalletName");function Op(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Op,"hashProviders");function la(t,e){let o=Z.use.clearConnectedWallet(),n=mr(t,e);return Yh(()=>{o(),n=mr(t,e)},[Op(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(la,"useWalletProviders");import hy,{createContext as yy,useContext as Sy,useEffect as Cy,useRef as ky}from"react";import{create as fy}from"zustand";import{persist as gy}from"zustand/middleware";var pa=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()}},Wo=new pa;function pn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=$e(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=$e(u);delete n[c]})):a(p.tokens))}),Object.values(n)}i(pn,"matchTokensFromConfigWithMeta");function dr(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(dr,"getSupportedBlockchainsFromConfig");var ca={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},Zh={clientUrl:void 0},Jh={liquiditySources:void 0},Up=i((t,e,o)=>({config:{...ca,...t},iframe:Zh,campaignMode:Jh,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=pn({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=pn({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});Wo.set("supportedSourceTokens",l),Wo.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");import{TransactionType as zp}from"rango-types";var Qp=[zp.EVM,zp.SOLANA];function fr(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Ao(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(fr,"getUniqueSwappersGroups");function qp(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(qp,"sortLiquiditySourcesByGroupTitle");function je(t,e){return e?.[t]==="hidden"}i(je,"isFeatureHidden");function Hp(t,e){return e?.[t]==="enabled"}i(Hp,"isFeatureEnabled");var Gp=i((t,e,o)=>je("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");var Vp=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let p=dr({config:a}),u=r;return p.length>0&&(u=u.filter(c=>p.includes(c.name))),u.filter(c=>Qp.includes(c.type))}let 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,_customTokens:s}=e(),l=Array.from(n.values()),p=e()._blockchainsMapByName;if(!o||!o.type)return l;let u=o.type==="source"?"from":"to",c=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",m=Wo.get(c);m?.length||(m=pn({type:o.type,config:{blockchains:a[u]?.blockchains,tokens:a[u]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Wo.set(c,m)),m=Gp(m,s,a.features);let g=e().blockchains({type:o.type});return m.filter(f=>o.blockchain&&f.blockchain!==o.blockchain||!g.some(h=>h.name===f.blockchain)?!1:o.searchFor?!!(et(f.symbol,o.searchFor)||et(f.address||"",o.searchFor)||et(f.name||"",o.searchFor)):!0).sort((f,h)=>{let S=e().isTokenPinned(f,o.type),C=e().isTokenPinned(h,o.type);if(S!==C)return S?-1:1;if(o.getBalanceFor){let N=o.getBalanceFor(f),M=o.getBalanceFor(h),w=Ep(N,M);if(w!==0)return w}let k=p.get(f.blockchain),T=p.get(h.blockchain),v=ea(f,k),x=ea(h,T);if(v!==x)return v?-1:1;if(f.isPopular!==h.isPopular)return f.isPopular?-1:1;if(o.searchFor){let N=gp(f,h,o.searchFor);if(N)return N}return f.isSecondaryCoin!==h.isSecondaryCoin?f.isSecondaryCoin?1:-1:k&&T?k.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=$e(o),s=n.get(a);return s||(s=r.find(l=>$e(l)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>so(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(qp)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await qt().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(g=>{c.add(g.blockchain),l.push(g)}),n.blockchains.sort((g,d)=>g.sort-d.sort).forEach(g=>{g.enabled&&c.has(g.name)&&r.set(g.name,g)}),l.forEach(g=>{let d=$e(g);s[g.blockchain]||(s[g.blockchain]=[]),a.set(d,g),s[g.blockchain].push(d)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as Rh,English as ey,Finland as ty,French as oy,German as ny,Greece as ry,Italian as iy,Japanese as ay,Netherlands as sy,Poland as ly,Portuguese as py,Russian as cy,Spanish as uy,Swedish as my,Ukrainian as dy}from"@rango-dev/ui";var Kp=[{title:"English",label:"English",local:"en",SVGFlag:ey},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:uy},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:oy},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:ay},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:py},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:Rh},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:cy},{title:"German",label:"Deutsch",local:"de",SVGFlag:ny},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:dy},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:my},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:ty},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:sy},{title:"Greek",label:"Grieks",local:"el",SVGFlag:ry},{title:"Italian",label:"Italiana",local:"it",SVGFlag:iy},{title:"Polish",label:"Polski",local:"pl",SVGFlag:ly}],Mo="en";var jp=[.5,1,3],Xp=1,Yp=5,Zp=100,Jp=0;var Rp=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Xp,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],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=Ao(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=je("theme",n),s=je("language",n),l=je("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||Mo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||Mo}})},setCustomToken:o=>t(n=>({_customTokens:[o,...n._customTokens]})),deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=dr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");function ec(t){return fy()(gy((...e)=>({...Vp(...e),...Rp(...e),...Up(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(ec,"createAppStore");var tc=yy(null);function y(){let t=Sy(tc);if(Cy(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function oc(t){let e=ky();return e.current||(e.current=ec(t.config)),hy.createElement(tc.Provider,{value:e.current},t.children)}i(oc,"AppStoreProvider");import{create as vy}from"zustand";var nc="rango-widget";var cn=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(nc),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 se=Ht(vy()((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})}}))),po=new cn({onInit:()=>se.setState({tabManagerInitiated:!0}),onClaim:()=>se.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>se.setState({isActiveTab:!1})});var hr=by({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Iy(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=y(),a=y().blockchains(),{findToken:s}=y(),l=y().config,p={walletConnectProjectId:l?.walletConnectProjectId,trezorManifest:l?.trezorManifest,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:u}=la(l.wallets,p),{connectWallet:c,disconnectWallet:m}=Z(),g=ac(),d=ac();ic(()=>{n().catch(console.log)},[]),ic(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:l,dappConfig:t.config})},[t.config,r]);let f=a.filter(wy).map(k=>k.name),h=i((k,T,v,x,N)=>{if(T===ma.ACCOUNTS)if(v){let M=rr(N.supportedBlockchains),w=vp(k,v,f,M,N.isContractWallet);w.length&&c(w,s)}else m(k),d.current?d.current(k):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===ma.ACCOUNTS&&x.connected){let M=`${k}-${x.network}-${v}`;x.connected&&(g.current?g.current(M):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===ma.NETWORK&&x.network){let M=`${k}-${x.network}`;g.current?g.current(M):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(k,T,v,x,N)},"onUpdateState"),S=se.use.isActiveTab(),C=Ey(()=>({onConnectWallet:k=>{g.current=k},onDisconnectWallet:k=>{d.current=k}}),[]);return gr.createElement(hr.Provider,{value:C},gr.createElement(xy,{allBlockChains:a,providers:u,onUpdateState:h,autoConnect:!!S},t.children))}i(Iy,"Main");function yr(t){let{config:e,...o}=t;return gr.createElement(oc,{config:e},gr.createElement(Iy,{...o,config:e}))}i(yr,"WidgetWallets");import Ki from"react";import Ay,{Fragment as Ny}from"react";import{MemoryRouter as Wy,useInRouterContext as My}from"react-router";function sc({children:t}){let o=My()?Ny:Wy;return Ay.createElement(o,null,t)}i(sc,"AppRouter");import{I18nManager as Jb}from"@rango-dev/ui";import op from"react";import De from"react";import{useRoutes as Fb}from"react-router-dom";var D={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as Po,useRef as Er}from"react";import Xe from"bignumber.js";import{create as Py}from"zustand";import{subscribeWithSelector as Dy}from"zustand/middleware";import{getLastSuccessfulStep as Ly}from"@rango-dev/queue-manager-rango-preset";import OA from"bignumber.js";function da(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(da,"getFeeLabel");var fa=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],lc=30;import{i18n as ft}from"@lingui/core";import{RouteEventType as wA}from"@rango-dev/queue-manager-rango-preset";import ze from"bignumber.js";import{PendingSwapNetworkStatus as Cr}from"rango-types";import{i18n as Fe}from"@lingui/core";var te=i(()=>({genericServerError:Fe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Fe.t("Please reset your liquidity sources."),description:Fe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Fe.t("No Routes Found."),description:Fe.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:Fe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Fe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Fe.t("High Price Impact"),title:Fe.t("Price impact is too high!"),description:Fe.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Fe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Fe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Fe.t("USD Price Unknown"),title:Fe.t("USD Price Unknown, Cannot calculate Price Impact."),description:Fe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Fe.t("Confirm USD Price Unknown")}}),"errorMessages");function pc(t){switch(t.type){case 0:return t.diagnosisMessage??te().noResultError.title;case 1:return te().genericServerError;default:return""}}i(pc,"getQuoteErrorMessage");import{i18n as Sr}from"@lingui/core";var co=i(()=>({connectWallet:Sr.t("Connect Wallet"),swap:Sr.t("Swap"),swapAnyway:Sr.t("Swap anyway"),ethWarning:Sr.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function cc(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new ze(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new ze(1e3)))??!1}i(cc,"hasHighValueLoss");function uc(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new ze(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ze(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(uc,"hasLimitError");function mc(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new ze(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new ze(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 ze(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ze(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=ft.t({id:"Required: >= {min} {symbol}",values:{min:B(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=ft.t({id:"Required: > {min} {symbol}",values:{min:B(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=ft.t({id:"Required: <= {max} {symbol}",values:{max:B(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=ft.t({id:"Required: < {max} {symbol}",values:{max:B(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(mc,"getLimitErrorMessage");function dc(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:co().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:co().swap,action:"confirm-swap",disabled:!0}:s?{title:co().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:co().ethWarning,action:"confirm-warning",disabled:!1}:{title:co().swap,action:"confirm-swap",disabled:!1}:{title:co().connectWallet,action:"connect-wallet",disabled:!1}}i(dc,"getSwapButtonState");function ga(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(Ue))&&e&&e!=="0"&&n!==0)}i(ga,"canComputePriceImpact");function ha(t,e){let o=Ue;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 ze(r.amount).multipliedBy(a||0))}return o}i(ha,"getUsdFeeOfStep");function kr(t,e){return t.reduce((o,n)=>o.plus(ha(n,e)),Ue)}i(kr,"getTotalFeeInUsd");function ya(t){let e=Ue;return e=e.plus(new ze(t.amount).multipliedBy(t.price||0)),e}i(ya,"getUsdFee");function fc(t){return t.reduce((e,o)=>e.plus(ya(o)),Ue)}i(fc,"getTotalFeesInUsd");function gc(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(gc,"getFeesGroup");function hc(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(hc,"checkSlippageErrors");function yc(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(yc,"checkSlippageWarnings");function Tr(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(Tr,"getMinRequiredSlippage");function Sc(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Sc,"hasProperSlippage");function Cc(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:g,destination:d,enableCentralizedSwappers:f}=t,h=a?.reduce((k,T)=>(k[T.chain]=T.address,k),{}),S=[];return r?.forEach(k=>{S.push({blockchain:k.chain,addresses:[k.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:m??void 0,affiliateWallets:g??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:h??{},slippage:u.toString(),...d&&{destination:d},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(k=>!s.includes(k)),swappersGroupsExclude:!1},enableCentralizedSwappers:f}}i(Cc,"createQuoteRequestBody");function kc(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(kc,"getWalletsForNewSwap");function Bo(t){return t?.outputAmount||null}i(Bo,"getQuoteOutputAmount");function Tc(t,e){return new ze(e).div(new ze(t)).minus(1).multipliedBy(100).toNumber()}i(Tc,"getPercentageChange");function vc(t,e){let o=Bo(t),n=Bo(e);if(!o||!n)return!1;let r=ut(o,n);return r?r<=-1:!0}i(vc,"isOutputAmountChangedALot");function xc(t,e,o){let n=t.validationStatus,r=ao({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Nc(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=B(new ze(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=B(new ze(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=ft.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=ft.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=ft.t(" for input and network fee")),ft.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:pt(s.asset.blockchain,o)}})})}i(xc,"generateBalanceWarnings");function Vt(t,e){return(t?new ze(t):Ue).multipliedBy(e||0)}i(Vt,"calcOutputUsdValue");function un(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Cr.NetworkChanged}i(un,"isNetworkStatusInWarningState");function wc(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),un(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Cr.WaitingForConnectingWallet:n=n||ft.t("Waiting for connecting wallet");break;case Cr.WaitingForQueue:n=n||ft.t("Waiting for other running tasks to be finished");break;case Cr.WaitingForNetworkChange:n=n||ft.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(wc,"getSwapMessages");function bc(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(bc,"getLastConvertedTokenInFailedSwap");function Ec(t){return t.status==="failed"}i(Ec,"shouldRetrySwap");function Ic(t,e,o,n,r,a){if(!n||t)return!0;let s=ao({filter:"all",quote:n}),l=ao({filter:"required",quote:n}),p=s.every(m=>r.some(g=>g.chain===m)),u=l.every(m=>r.some(g=>g.chain===m)),c=o&&a?No(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Ic,"isConfirmSwapDisabled");function Ac(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Ac,"isTokensIdentical");function uo(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(uo,"getQuoteToTokenUsdPrice");function mn(t){return(t?.swaps||[])[0].from.usdPrice}i(mn,"getQuoteFromTokenUsdPrice");function Sa(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Sa,"isNumberOfSwapsChanged");function Ca(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Ri(o,n)}i(Ca,"isQuoteSwappersUpdated");function ka(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Ri(o,n)}i(ka,"isQuoteInternalCoinsUpdated");function Mc(t,e){return Sa(t,e)||Ca(t,e)||ka(t,e)}i(Mc,"isQuoteChanged");function Nc(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(Nc,"getRequiredBalanceOfWallet");function Lt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Lt,"getPriceImpactLevel");function xr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Ly(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=rn(a?a.toBlockchain:n.fromBlockchain,e),p=rn(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(xr,"createRetryQuote");function Lo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=Vt(t.requestAmount,mn(t)||o?.usdPrice),l=Vt(t.outputAmount,uo(t)||n?.usdPrice);if(t&&s&&l){let c=ut(s.toString(),l.toString());if(!!c&&cc(s,c)){let g=kr(t?.swaps,r),d=Lt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:g,warningLevel:d}}}else if(t&&(!s||!l))return{type:1};let p=Tr(t.swaps),u=a>Yp;if(Sc(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:yc(t,a),minRequiredSlippage:p};return null}i(Lo,"generateQuoteWarnings");function ut(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Tc(t.toString(),e.toString());return n&&n<0?n:null}i(ut,"getPriceImpact");var Bc=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"),wr=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"),Lc=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"),Pc=i(t=>{let e=i((o,n)=>{let r=fa.indexOf(o.value),a=fa.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var br=i((t,e)=>t?.usdPrice?new Xe(e||Ue).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),z=Ht(Py()(Dy(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Xe(0),outputUsdValue:new Xe(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=Ue,a=o.inputUsdValue;return sn(o.inputAmount)?(e&&(n=e?.outputAmount?new Xe(e?.outputAmount):null,a=Vt(o.inputAmount,mn(e)||o.fromToken?.usdPrice),r=Vt(e.outputAmount,uo(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Xe(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Xe(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Xe(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:br(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 Xe(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:null,outputUsdValue:new Xe(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:br(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:br(n??null,s),outputUsdValue:new Xe(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?br(e.toToken,e.outputAmount?.toString()||""):new Xe(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Xe(0),inputUsdValue:new Xe(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Xe(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})})))),Dc=z.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ye.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&&ye.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 _c(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=z(),c=y().config,m=y().fetchStatus,g=y().blockchains(),d=y().tokens(),{findToken:f}=y(),{setAffiliateRef:h,setAffiliatePercent:S,setAffiliateWallets:C}=y(),k=c?.from?.tokens,T=c?.from?.blockchains,v=c?.to?.tokens,x=c?.to?.blockchains,N=Er(void 0),M=Er(void 0),w=Er(void 0),E=Er(void 0);Po(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),Po(()=>{if(m==="success"){r();let b=g.find(I=>I.name===c?.from?.blockchain),W=c?.from?.token,$=W&&f(W);(b||!b&&w.current)&&n(b??null),$?a({token:$,meta:{blockchains:g,tokens:d}}):!$&&N.current&&a({token:null}),w.current=c?.from?.blockchain,N.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),Po(()=>{ra(s,k)&&a({token:null}),ia(p,T)&&n(null)},[k,T]),Po(()=>{ra(l,v)&&a({token:null}),ia(u,x)&&o(null)},[v,x]),Po(()=>{if(m==="success"){r();let b=g.find(I=>I.name===c?.to?.blockchain),W=c?.to?.token,$=W&&f(W);(b||!b&&E.current)&&o(b??null),$?e({token:$,meta:{blockchains:g,tokens:d}}):!$&&M.current&&e({token:null}),E.current=c?.to?.blockchain,M.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),Po(()=>{h(c?.affiliate?.ref??null),S(c?.affiliate?.percent??null),C(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(_c,"useSyncStoresWithConfig");import{useEffect as xa,useRef as _y}from"react";import{useInRouterContext as $y,useLocation as Fy,useSearchParams as Oy}from"react-router-dom";function Ta(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Ta,"convertTokenSearchParamToAsset");function va(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(va,"tokenToSearchParam");function ba(){let t=Fy(),[e,o]=Oy(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:g}=z(),d=y().fetchStatus,f=y().blockchains(),h=y().tokens(),S=$y(),{updateIframe:C,updateCampaignMode:k}=y(),T=y().isInCampaignMode(),v=_y(),{findToken:x}=y(),N=i(()=>{let w={};for(let[V,le]of e.entries())V.startsWith("utm_")&&(w[V]=le);let E=e.get("fromAmount"),b=e.get("fromBlockchain"),W=e.get("fromToken"),$=e.get("toBlockchain"),I=e.get("toToken"),R=e.get("autoConnect"),ee=e.get("clientUrl"),oe=e.get("liquiditySources"),L=e.get("blockchain");return{fromAmount:E,fromBlockchain:b,fromToken:W,toBlockchain:$,toToken:I,autoConnect:R,clientUrl:ee,liquiditySources:oe,utmQueryParams:w,blockchain:L}},"getUrlSearchParams"),M=i(w=>{for(let E in w)w[E]||delete w[E];o(w,{replace:!0})},"updateUrlSearchParams");xa(()=>{let{autoConnect:w,clientUrl:E,utmQueryParams:b,blockchain:W}=N();S&&d==="success"&&M({fromBlockchain:n?.name,fromToken:va(a),toBlockchain:r?.name,toToken:va(s),fromAmount:l,autoConnect:w??void 0,clientUrl:E??void 0,blockchain:W??void 0,liquiditySources:T?v.current:void 0,...b})},[t.pathname,l,n,a,r,s,T]),xa(()=>{if(!S)return;let w=N();if(!v.current&&w.liquiditySources&&(v.current=w.liquiditySources),w.fromAmount&&g(w.fromAmount),d==="success"){let E=f.find(I=>I.name===w.fromBlockchain),b=w.fromToken&&E?x(Ta(w.fromToken,E)):void 0,W=f.find(I=>I.name===w.toBlockchain),$=w.toToken&&W?x(Ta(w.toToken,W)):void 0;E&&(p(E),b&&c({token:b,meta:{blockchains:f,tokens:h}})),W&&(u(W),$&&m({token:$,meta:{blockchains:f,tokens:h}}))}},[d]),xa(()=>{let{clientUrl:w,liquiditySources:E}=N();C("clientUrl",w||void 0),k("liquiditySources",E?.split(",")??void 0)},[])}i(ba,"useSyncUrlAndStore");import{i18n as At}from"@lingui/core";import{Alert as mC,Button as bu,darkTheme as dC,Divider as gn,DoneIcon as fC,MessageBox as gC,styled as hC,TextField as yC,Typography as SC}from"@rango-dev/ui";import Se,{useEffect as CC,useState as Pr}from"react";import{useNavigate as kC,useSearchParams as TC}from"react-router-dom";import{ChevronRightIcon as Uy,Divider as zc,Image as zy,Typography as Qc}from"@rango-dev/ui";import gt from"react";import{darkTheme as $c,styled as Ea}from"@rango-dev/ui";var Fc=Ea("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${$c} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${$c} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),Oc=Ea("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),Uc=Ea("div",{display:"flex"});function Ia(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return gt.createElement(Oc,null,gt.createElement(Qc,{size:"large",variant:"label"},n),gt.createElement(zc,{size:10}),gt.createElement(Fc,{onClick:s?void 0:e,disabled:s},gt.createElement(Uc,null,r&>.createElement(gt.Fragment,null,gt.createElement(zy,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),gt.createElement(zc,{size:4,direction:"horizontal"})),gt.createElement(Qc,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),gt.createElement(Uy,{size:12,color:"black"})))}i(Ia,"BlockchainSelectorButton");import{Modal as Qy}from"@rango-dev/ui";import qy from"react";function J(t){let{watermark:e}=se();return qy.createElement(Qy,{hasWatermark:e==="FULL",...t},t.children)}i(J,"WatermarkedModal");import{i18n as Na}from"@lingui/core";import{Button as Hy,Divider as dn,ExternalLinkIcon as Gy,Image as Vy,Typography as _o}from"@rango-dev/ui";import Me from"react";function qc(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(qc,"generateExplorerLink");import{darkTheme as Do,styled as Hc}from"@rango-dev/ui";var Aa=Hc("a",{textDecoration:"none",color:"$colors$neutral700",[`.${Do} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${Do} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${Do} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${Do} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),Gc=Hc("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${Do} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${Do} &`]:{color:"$colors$neutral900"}}});function Wa(t){let{open:e,onClose:o,token:n,onSubmitClick:r,blockchain:a}=t,s=qc(n.address,a);return Me.createElement(J,{open:e,dismissible:!0,onClose:o,container:A()},Me.createElement(Gc,null,Me.createElement(Vy,{src:n.image,size:45,type:"circular"}),Me.createElement(_o,{variant:"title",size:"medium"},n.name),Me.createElement(_o,{variant:"body",size:"small",className:"_blockchain-name"},a.displayName),Me.createElement(dn,{size:4}),Me.createElement(_o,{variant:"body",size:"medium"},s?Me.createElement(Aa,{hasHover:!0,href:s,target:"_blank",rel:"nofollow noreferrer"},n.address,Me.createElement(Gy,{size:12,color:"gray"})):Me.createElement(Aa,null,n.address)),Me.createElement(dn,{size:4}),n.coinSource&&Me.createElement(_o,{className:"_coin-source",variant:"body",size:"xsmall"},Na.t("via")," ",Me.createElement(_o,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),Me.createElement(dn,{size:"32"}),Me.createElement(_o,{size:"medium",variant:"body",className:"_custom-token-description"},Na.t("This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."))),Me.createElement(dn,{size:40}),Me.createElement(dn,{size:10}),Me.createElement(Hy,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:r},Na.t("Import")))}i(Wa,"CustomTokenModal");import{useManager as aC}from"@rango-dev/queue-manager-react";import{BottomLogo as sC,Divider as ku,Header as lC}from"@rango-dev/ui";import Te,{useEffect as ts,useRef as Tu,useState as pC}from"react";import{useRef as Ky}from"react";function Ir(){return window.self!==window.top}i(Ir,"isAppLoadedIntoIframe");function Ma(){let t=Ky(null),{iframe:e}=y(),o=Ir()&&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(Ma,"useIframe");import{useNavigate as jy}from"react-router-dom";function Ye(){let t=jy();return()=>t(-1)}i(Ye,"useNavigateBack");import{createTheme as Fa,darkTheme as lS,lightTheme as pS}from"@rango-dev/ui";import{useEffect as cS,useState as uS}from"react";import{theme as aS,darkColors as sS}from"@rango-dev/ui";import _a from"react";function Xy(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Xy,"expandShortHexColor");function Yy(t){return/[0-9]+$/.test(t)}i(Yy,"isOverridingColor");function Zy(t,e){return t.padStart(e,"0")}i(Zy,"pad");function Ba(t){let e=Math.min(Math.max(Math.round(t),0),255);return Zy(e.toString(16),2)}i(Ba,"intToHex");function Jy(t){return`#${Ba(t.red)}${Ba(t.green)}${Ba(t.blue)}`}i(Jy,"rgbToHex");function Ry(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(Ry,"hexToRGB");function eS(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(eS,"generateShade");function tS(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(tS,"generateTint");function oS(t){return Vc(t,eS)}i(oS,"calculateShades");function nS(t){return Vc(t,tS)}i(nS,"calculateTints");function Vc(t,e){let o=Ry(t),n=[];for(let r=1;r<9;r++)n.push(Jy(e(o,r)));return n}i(Vc,"calculateColors");function La(t,e,o){let a=nS(t).reverse().concat(t),s=oS(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(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)&&!Yy(r)){let p=Xy(a);Object.assign(n,La(p,r,s))}}return{...n,...e}}i(Pa,"expandToGenerateThemeColors");var Kc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),rS=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Kc(o%52)+e;return Kc(o%52)+e},"toAlphabeticName"),iS=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Da=i(t=>rS(iS(5381,JSON.stringify(t))>>>0),"toHash");function $a(t){let e=aS.colors,o={...e,...sS},n,r;if(t?.light){let s={colors:Pa(e,t.light)};n={id:`${na}-light-${Da(s)}`,tokens:s}}if(t?.dark){let s={colors:Pa(o,t.dark,{reverseNeutralRange:!0})};r={id:`${na}-dark-${Da(s)}`,tokens:s}}return{light:n,dark:r}}i($a,"customizedThemeTokens");function jc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>_a.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(_a.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(_a.cloneElement(e,{key:l}))}}),o}i(jc,"joinList");function Xc(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Xc,"doesWindowPreferDarkColorScheme");function $o(t){let{colors:e,fontFamily:o=sp,borderRadius:n=Pp,secondaryBorderRadius:r=Dp}=t,[a,s]=uS(Xc()?"dark":"light"),{theme:l}=y(),{dark:p,light:u}=$a(e),c=Fa({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,pS.className],g=[c.className,lS.className];if(u){let f=Fa(u.id,u.tokens);m.push(f.className)}if(p){let f=Fa(p.id,p.tokens);g.push(f.className)}return cS(()=>{let f=i(h=>{h.matches?s("dark"):s("light")},"switchThemeListener");return Xc()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=m.join(" "),h=g.join(" ");return l==="auto"?a==="dark"?h:f:l==="dark"?h:f},"getActiveTheme"),mode:l==="auto"?a:l}}i($o,"useTheme");var mt=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 Yc}from"@lingui/core";import{Alert as mS,Button as dS}from"@rango-dev/ui";import Zc from"react";function Oa(t){return Zc.createElement(mS,{action:Zc.createElement(dS,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Yc.t("Activate this tab")),type:"warning",variant:"alarm",title:Yc.t("Another tab is open and handles transactions.")})}i(Oa,"ActivateTabAlert");import{i18n as Ua}from"@lingui/core";import{Button as fS,Divider as gS,MessageBox as hS}from"@rango-dev/ui";import Ar from"react";function za(t){let{open:e,onClose:o,onConfirm:n}=t;return Ar.createElement(J,{open:e,dismissible:!0,onClose:o,container:A()},Ar.createElement(hS,{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.")},Ar.createElement(gS,{size:20}),Ar.createElement(fS,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Ua.t("Confirm"))))}i(za,"ActivateTabModal");import{ChevronLeftIcon as CS}from"@rango-dev/ui";import ru from"react";import{css as yS,darkTheme as Jc,IconButton as SS,styled as mo}from"@rango-dev/ui";var It=mo(SS,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Jc} &`]:{backgroundColor:"$neutral"}}}),Rc=mo("div",{position:"absolute",background:"$secondary500",[`.${Jc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Kt=mo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),eu=mo("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"}}}}),tu=mo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),ou=mo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),nu=yS({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Nr=mo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function Qa(t){return ru.createElement(It,{variant:"ghost",size:"small",onClick:t.onClick},ru.createElement(CS,{color:"black",size:16}))}i(Qa,"BackButton");import{i18n as kS}from"@lingui/core";import{Button as TS,Typography as vS}from"@rango-dev/ui";import qa from"react";function Ha(t){return qa.createElement(Kt,null,qa.createElement(TS,{variant:"ghost",onClick:t.onClick,size:"xsmall"},qa.createElement(vS,{variant:"label",size:"medium",color:"error500"},kS.t("Cancel"))))}i(Ha,"CancelButton");import{i18n as BS}from"@lingui/core";import{Image as LS,Tooltip as PS,WalletIcon as DS}from"@rango-dev/ui";import fo from"react";import{WalletState as Ka}from"@rango-dev/ui";import{useWallets as ES}from"@rango-dev/wallets-react";import{detectMobileScreens as IS,KEPLR_COMPATIBLE_WALLETS as AS,WalletTypes as Fo}from"@rango-dev/wallets-shared";import{useCallback as NS,useEffect as WS}from"react";import{WalletState as xS}from"@rango-dev/ui";import{useWallets as wS}from"@rango-dev/wallets-react";import{useReducer as bS}from"react";function iu(t){return!!t.derivationPath}i(iu,"isStateOnDerivationPathStep");function au(t){return!!t.namespace}i(au,"isStateOnNamespace");var Ga={status:"init",namespace:null,derivationPath:null};function su(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"reset":return Ga;case"resetDerivation":return{...t,derivationPath:null,status:"namespace"};default:throw new Error("Action hasn't been defined.")}}i(su,"reducer");function jt(){let{state:t,disconnect:e,connect:o}=wS(),[n,r]=bS(su,Ga),a=i(async(c,m,g)=>{r({type:"reset"});try{return await o(c,void 0,m),{status:"connected"}}catch(d){let f=d?.message?`Error: ${d.message}`:"An unknown error happened during connecting wallet.";throw new Error(f,{cause:d})}},"runConnect"),s=i(async(c,m)=>{if(c.state===xS.DISCONNECTED){if(!c.namespaces)return await a(c.type,void 0,m);let d=c.namespaces.length>1,f=c.needsDerivationPath;return d?(r({type:"needsNamespace",payload:{providerType:c.type,providerImage:c.image,availableNamespaces:c.namespaces,singleNamespace:c.singleNamespace}}),{status:"namespace"}):f?(r({type:"needsDerivationPath",payload:{providerType:c.type,providerImage:c.image,namespace:c.namespaces[0]}}),{status:"derivation-path"}):await a(c.type,c.namespaces.map(h=>({namespace:h})),m)}return m?.disconnectIfConnected?(await u(c.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),l=i(async(c,m)=>{let g=c.singleNamespace,d=c.needsDerivationPath,f=m[0];if(!f)throw new Error("To confirm a namespace, you should select at least one namespace.");if(g&&d)return r({type:"needsDerivationPath",payload:{providerType:c.type,providerImage:c.image,namespace:f}}),{status:"derivation-path"};if(!au(n))throw new Error("Something went wrong on handling namespace. Please retry.");let h=n.namespace.providerType,S=m.map(C=>({namespace:C}));return await a(h,S)},"handleNamespace"),p=i(async c=>{if(!c)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!iu(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let m=n.derivationPath.providerType,d=[{namespace:n.derivationPath.namespace,derivationPath:c}];return await a(m,d)},"handleDerivationPath"),u=i(async c=>t(c).connected?(await e(c),{status:"disconnected"}):{status:"noop"},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:l,handleDerivationPath:p,getState:()=>n,resetState:c=>{r(c==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(jt,"useStatefulConnect");var MS=Object.values(Fo);function ht(t){let{chain:e}=t||{},{config:o}=y(),{state:n,getWalletInfo:r}=ES(),{connectedWallets:a}=Z(),s=y().blockchains(),{handleDisconnect:l}=jt(),p=Fp(o?.wallets,{trezorManifest:o?.trezorManifest,walletConnectProjectId:o?.walletConnectProjectId,walletConnectListedDesktopWalletLink:o.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||MS,u=Tp(n,r,p,e);u=IS()?u.filter(h=>h.showOnMobile!==!1&&n(h.type).installed):u;let c=Ip(u),m=i(h=>!a.find(S=>S.walletType===h&&S.chain===e),"isExperimentalChainNotAdded"),g=NS(()=>{let h=u?.filter(S=>S.state===Ka.CONNECTING)||[];for(let S of h)l(S.type)},[Wp(u)]);WS(()=>()=>{g()},[]);let d=i(h=>{let S=h.find(k=>k.type===Fo.DEFAULT);return!S||S.state===Ka.NOT_INSTALLED?!1:h.filter(k=>k.state!=Ka.NOT_INSTALLED&&![Fo.DEFAULT,Fo.WALLET_CONNECT_2,Fo.LEDGER].includes(k.type)&&r(k.type).supportedChains.filter(T=>T.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),f=i((h,S,C)=>ar(C,S)&&m(h)&&!AS.includes(h)||h==Fo.DEFAULT&&!d(u),"shouldExcludeWallet");return{list:c.filter(h=>!f(h.type,e??"",s)),terminateConnectingWallets:g}}i(ht,"useWalletList");function ja(t){let{list:e}=ht(),o=e.filter(r=>r.state==="connected"),n=o.length?fo.createElement("div",{className:nu()},o.map(r=>fo.createElement(Nr,{key:r.title},fo.createElement(LS,{src:r.image,size:14})))):BS.t("Connect Wallet");return fo.createElement(PS,{container:t.container,side:"bottom",content:n},fo.createElement(It,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&fo.createElement(Rc,null),fo.createElement(DS,{size:18,color:"black"})))}i(ja,"WalletButton");import{i18n as Mr}from"@lingui/core";import{NotificationsIcon as ZS,Popover as JS,SettingsIcon as RS,Tooltip as Br,TransactionIcon as eC}from"@rango-dev/ui";import Be from"react";import{Notifications as OS}from"@rango-dev/ui";import US from"react";import{useNavigate as zS}from"react-router-dom";import{create as _S}from"zustand";import{persist as $S,subscribeWithSelector as FS}from"zustand/middleware";var we=Ht(_S()($S(FS((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 Xa(){let t=zS(),{getNotifications:e,clearNotifications:o}=we(),n=e(),r=y().blockchains(),{findToken:a}=y();return US.createElement(OS,{list:n,getBlockchainImage:l=>Sp(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${D.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(Xa,"NotificationContent");import{useManager as QS}from"@rango-dev/queue-manager-react";import{InProgressIcon as qS}from"@rango-dev/ui";import lu from"react";var HS=i(()=>{let{manager:t}=QS();return mt(t).map(({swap:o})=>o).find(o=>o.status==="running")?lu.createElement(ou,null,lu.createElement(qS,{color:"info",size:6})):null},"InProgressTransactionBadge"),pu=HS;import{EventSeverity as GS}from"@rango-dev/queue-manager-rango-preset";import{Typography as VS}from"@rango-dev/ui";import cu from"react";function uu(){let{getNotifications:t}=we(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===GS.WARNING);return o?cu.createElement(eu,{isSever:n},cu.createElement(VS,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(uu,"NotificationsBadge");import{RefreshProgressButton as KS}from"@rango-dev/ui";import Ya,{useEffect as jS,useState as mu}from"react";var XS=1e3,du=60,YS=100;function Wr({onClick:t}){let[e,o]=mu(0),[n,r]=mu(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");jS(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===du&&l()},XS):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 Ya.createElement(It,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},Ya.createElement(tu,{onTransitionEnd:()=>r(!1),isRefetched:n},Ya.createElement(KS,{size:22,color:t?"black":"gray",progress:e/du*YS})))}i(Wr,"RefreshButton");function go(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=je("notification",s)||r.includes("notifications");return Be.createElement(Be.Fragment,null,!r.includes("refresh")&&Be.createElement(Br,{container:a||A(),side:"top",content:Mr.t("Refresh")},Be.createElement(Wr,{onClick:e})),!l&&Be.createElement(JS,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:A(),content:Be.createElement(Xa,null)},Be.createElement("div",null,Be.createElement(Br,{container:A(),side:"top",content:Mr.t("Notifications")},Be.createElement(It,{size:"small",variant:"ghost"},Be.createElement(ZS,{size:18,color:"black"}),Be.createElement(uu,null))))),!r.includes("settings")&&Be.createElement(Br,{container:A(),side:"top",content:Mr.t("Settings")},Be.createElement(It,{size:"small",variant:"ghost",onClick:n},Be.createElement(RS,{size:18,color:"black"}))),!r.includes("history")&&Be.createElement(Br,{container:A(),side:"top",content:Mr.t("Transactions History")},Be.createElement(It,{size:"small",variant:"ghost",onClick:o},Be.createElement(eC,{size:18,color:"black"}),Be.createElement(pu,null))))}i(go,"HeaderButtons");import{i18n as Za}from"@lingui/core";import{Divider as gu,MessageBox as nC,RefreshIcon as rC}from"@rango-dev/ui";import Oo from"react";import{Button as tC,styled as oC}from"@rango-dev/ui";var fu=oC(tC,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Ja(t){let{open:e,onClose:o}=t;return Oo.createElement(J,{open:e,dismissible:!0,onClose:o,container:A()},Oo.createElement(nC,{title:Za.t("Something went wrong"),type:"error",description:Za.t("Something went wrong. Please refresh the app.")},Oo.createElement(gu,{size:30}),Oo.createElement(fu,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Oo.createElement(rC,{size:20,color:"primary"}),Oo.createElement(gu,{size:4,direction:"horizontal"}),Za.t("Refresh"))))}i(Ja,"RefreshModal");function Ra(t){let e=t.target;if(e){let o=e.scrollTop,n=A();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(Ra,"onScrollContentAttachStatusToContainer");import{css as iC,styled as es}from"@rango-dev/ui";var hu="700px",Lr=iC({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),yu=es("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:hu},fixed:{height:hu}}}}),Su=es("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Cu=es("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 ne(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ma(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=y(),[p,u]=pC(!1),c=Z.use.connectedWallets(),{config:{features:m,theme:g}}=y(),{watermark:d}=se(),f=d==="FULL",{activeTheme:h}=$o(g||{}),S=je("connectWalletButton",m),{isActiveTab:C,tabManagerInitiated:k,showActivateTabModal:T,setShowActivateTabModal:v,activateCurrentTab:x}=se(),N=Ye(),{manager:M}=aC(),E=mt(M).map(({swap:ee})=>ee).some(ee=>ee.status==="running"),b=i(()=>x(po.forceClaim,E),"onActivateTab"),W=i(()=>{r.onWallet?.()},"onConnectWallet"),$=typeof r.hasBackButton>"u"||r.hasBackButton,I=Tu(null),R=Tu(null);return ts(()=>(Ir()&&R.current&&e(R.current),()=>{o()}),[]),ts(()=>(I.current?.addEventListener("scroll",Ra),()=>{I.current?.removeEventListener("scroll",Ra)}),[]),ts(()=>{u(l==="failed")},[l]),Te.createElement(yu,{height:s,id:_e.SWAP_BOX_ID,className:`${h()} ${Lr()}`,ref:R},Te.createElement(lC,{prefix:Te.createElement(Te.Fragment,null,$&&Te.createElement(Qa,{onClick:()=>{N(),r.onBack&&r.onBack()}})),title:r.title,suffix:Te.createElement(Te.Fragment,null,r.suffix,r.onWallet&&!S&&Te.createElement(ja,{container:A(),onClick:W,isConnected:!!c?.length}),r.onCancel&&Te.createElement(Ha,{onClick:r.onCancel}))}),Te.createElement(Su,{ref:I},n),Te.createElement(za,{open:T,onClose:()=>v(!1),onConfirm:b}),Te.createElement(Cu,null,Te.createElement("div",{className:"footer__content"},k&&!C&&Te.createElement("div",{className:"footer__alert"},Te.createElement(Oa,{onActivateTab:b}),Te.createElement(ku,{size:10})),a),Te.createElement(ku,{size:12}),Te.createElement("div",{className:`footer__logo ${f?"logo__show":"logo__hidden"}`},Te.createElement(sC,null))),Te.createElement(Ja,{open:p,onClose:()=>u(!1)}))}i(ne,"Layout");import{styled as cC}from"@rango-dev/ui";var vu="$20 $20 $10 $20",fn=cC("div",{padding:vu,overflowY:"auto",flexGrow:1});import{styled as uC}from"@rango-dev/ui";var ie=uC("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 Uo}from"@lingui/core";import{useState as xu}from"react";function wu(){let[t,e]=xu(!1),[o,n]=xu(void 0),{findToken:r}=y(),a=y().customTokens();function s(p,u){switch(p){case"duplicated":return{title:Uo.t("Duplicate Token"),message:Uo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{title:Uo.t("Token Already Exists"),message:Uo.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{title:Uo.t("Token Not Found"),message:Uo.t(`Sorry, no token was found on ${u} blockchain with the provided address. please make sure you have entered the right token address.`)}}}return i(s,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:p,tokenAddress:u})=>{e(!0);try{if(a.some(h=>h.address?.toLowerCase()===u.toLowerCase())){let h=s("duplicated");n(h);return}let m=await fetch(`${ct("BASE_URL")}/meta/token?apiKey=${ct("API_KEY")}&blockchain=${p}&address=${u}`),g=m.headers.get("content-type"),d=g&&g.includes("application/json")&&await m.json();if(!d||d.error){let h=s("not-found",p);n(h);return}if(r({blockchain:d.blockchain,address:d.address,symbol:d.symbol})){let h=s("token-exist");n(h);return}return d}catch(c){throw n(void 0),new Error(c.message)}finally{e(!1)}},"fetchCustomToken"),loading:t,error:o}}i(wu,"useFetchCustomToken");var vC=hC("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${dC} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}}),xC=1e3;function Eu(){let t=kC(),[e]=TC(),o=Ye(),{setCustomToken:n}=y(),r=y().blockchains(),a=e.get("blockchain")||"",s=rn(a,r),[l,p]=Pr(""),[u,c]=Pr(!1),[m,g]=Pr(),{fetchCustomToken:d,loading:f,error:h}=wu(),[S,C]=Pr(""),k=!!s&&No(s,l),T=!s||!l||!k,v=i(async()=>{if(s)try{let M=await d({blockchain:a,tokenAddress:l});C(""),M&&g(M)}catch(M){M.message==="Failed to fetch"&&(C(At.t("Network Error")),c(!0))}},"getCustomToken"),x=i(()=>{h&&p(""),c(!1)},"closeErrorModal"),N=i(async()=>{S&&setTimeout(async()=>{await v()},xC),x()},"handleErrorModalButtonClick");return CC(()=>{h&&c(!0)},[h]),Se.createElement(ne,{header:{title:At.t("Add Custom Token")}},Se.createElement(ie,null,Se.createElement(vC,null,Se.createElement("div",null,Se.createElement(Ia,{onClick:()=>t(D.blockchains,{replace:!0}),hasLogo:!!s?.logo,value:s?{name:s.displayName,logo:s.logo}:void 0,title:At.t("Select chain"),placeholder:At.t("Select chain")}),Se.createElement(gn,{size:"24"}),Se.createElement(SC,{size:"large",variant:"label"},At.t("Enter Address")),Se.createElement(gn,{size:10}),Se.createElement(yC,{fullWidth:!0,disabled:!s,variant:"contained",placeholder:At.t("Enter token address"),size:"large",value:l,suffix:!!l&&k&&Se.createElement(fC,{color:"success",size:12}),onChange:M=>p(M.target.value)}),!k&&!!l&&Se.createElement(Se.Fragment,null,Se.createElement(gn,{size:4}),Se.createElement(mC,{type:"error",variant:"alarm",title:"Invalid Address"}))),Se.createElement(bu,{disabled:T,type:"primary",variant:"contained",loading:f,size:"large",onClick:v},At.t("Import"))),Se.createElement(J,{open:u,dismissible:!0,onClose:x,container:A()},Se.createElement(gC,{title:h?.title||S,type:"error",description:h?.message||At.t("Failed Network, Please retry.")},Se.createElement(gn,{size:40}),Se.createElement(gn,{size:10}),Se.createElement(bu,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:N},S?At.t("Retry"):At.t("Add another custom token")))),s&&m&&Se.createElement(Wa,{blockchain:s,token:m,onSubmitClick:()=>{m&&(n(m),g(void 0),o())},onClose:()=>g(void 0),open:!!s&&!!m})))}i(Eu,"AddCustomTokenPage");import{i18n as zs}from"@lingui/core";import{useManager as _T}from"@rango-dev/queue-manager-react";import{Alert as Pd,Button as $T,css as qs,Divider as Qs,IconButton as Dd,styled as FT,Typography as OT,WalletIcon as UT}from"@rango-dev/ui";import Ae,{useEffect as di,useLayoutEffect as zT,useRef as QT,useState as An}from"react";import{useNavigate as qT}from"react-router-dom";import{i18n as Co}from"@lingui/core";import{Alert as mm,BalanceErrors as bk,Button as dm,ChevronLeftIcon as Ek,Divider as Vr,MessageBox as Ik,Typography as ks}from"@rango-dev/ui";import j,{useCallback as Ak,useEffect as fm,useMemo as Nk,useState as ko}from"react";import{useNavigate as Wk}from"react-router-dom";import{i18n as Dr}from"@lingui/core";function _r(t){switch(t.type){case 0:return Dr.t("Route has been updated.");case 3:return Dr.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Dr.t("Route swappers has been updated.");case 2:return Dr.t("Route internal coins has been updated.");default:return""}}i(_r,"getQuoteUpdateWarningMessage");import{i18n as is}from"@lingui/core";import{Alert as NC,ChevronDownIcon as WC,CloseIcon as MC,Divider as Lu,IconButton as Pu,PasteIcon as BC,Typography as LC,WalletIcon as PC}from"@rango-dev/ui";import Le,{useEffect as DC,useRef as _C}from"react";import Ur,{useRef as IC}from"react";import*as zo from"@radix-ui/react-collapsible";import{keyframes as Iu,styled as $r}from"@rango-dev/ui";var os=300,bC=Iu({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),EC=Iu({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Au=$r(zo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ns=$r(zo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Fr=$r(zo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${bC} ${os}ms ease-out`},false:{animation:`${EC} ${os}ms ease-out`}}}}),Or=$r("div",{transition:`all ${os}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function zr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=IC(null);return Ur.createElement(Au,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&Ur.createElement(ns,{className:"collapsible_trigger",onClick:a},s),Ur.createElement(Fr,{className:"collapsible_content",open:e},r),l==="bottom"&&Ur.createElement(ns,{className:"collapsible_trigger",onClick:a},s))}i(zr,"CustomCollapsible");import{darkTheme as Nu,styled as rs,TextField as AC}from"@rango-dev/ui";var Wu=rs("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Mu=rs(AC,{backgroundColor:"$neutral100",padding:"$15"}),Bu=rs("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Nu} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Nu} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function Du(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=z(),{config:s}=y(),l=y().blockchains(),p=er(e.name,l),u=_C(null),c=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),d=n&&!!r&&e&&!No(e,r),f=i(()=>{a("")},"handleClear"),h=i(async C=>{if(C.preventDefault(),navigator.clipboard!==void 0){let k=await navigator.clipboard.readText();a(k),u?.current?.focus()}},"handlePaste"),S=i(()=>r?Le.createElement(Pu,{onClick:f,variant:"ghost"},Le.createElement(MC,{size:12,color:"gray"})):m?null:Le.createElement(Pu,{onClick:h,variant:"ghost"},Le.createElement(BC,{size:16})),"renderSuffix");return DC(()=>{!!c&&r===null&&(a(c),o(!0))},[c]),Le.createElement(Wu,null,Le.createElement(zr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Le.createElement(Bu,null,Le.createElement("div",{className:"button__content"},Le.createElement(PC,{size:18,color:"info"}),Le.createElement(Lu,{size:4,direction:"horizontal"}),Le.createElement(LC,{variant:"label",size:"medium",color:n?"$neutral600":void 0},is.t("Send to a different address"))),Le.createElement(Or,{orientation:n?"up":"down"},Le.createElement(WC,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Le.createElement(Mu,{ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:is.t("Enter {blockchainName} address",{blockchainName:p}),value:r||"",suffix:S(),onChange:C=>{let k=C.target.value;a(k)}})),d&&Le.createElement(Le.Fragment,null,Le.createElement(Lu,{size:4}),Le.createElement(NC,{variant:"alarm",type:"error",title:is.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(Du,"CustomDestination");import{css as $C,darkTheme as as,IconButton as FC,styled as Pt}from"@rango-dev/ui";var _u=Pt("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),$u=Pt("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),OC=Pt("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${as} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${as} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${as} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Fu=Pt(OC,{alignSelf:"stretch",minHeight:"93px"}),Ou=Pt("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Uu=Pt(FC,{position:"absolute",left:"$20"}),zu=Pt("div",{paddingTop:"$20"}),Qu=$C({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),qu=Pt("div",{display:"flex"}),Hu=Pt("div",{overflow:"visible",width:"100%"});import{i18n as lm}from"@lingui/core";import{warn as kk}from"@rango-dev/logging-core";import{Divider as Tk,SelectableWallet as vk,Typography as pm,WalletState as cm}from"@rango-dev/ui";import Ze,{useEffect as um,useState as yn}from"react";import{Divider as uk}from"@rango-dev/ui";import yo,{useEffect as mk,useState as nm}from"react";import{i18n as ss}from"@lingui/core";import{Button as qC,Checkbox as HC,Divider as GC,Image as Ku,ListItemButton as VC,MessageBox as KC,Radio as jC,RadioRoot as XC}from"@rango-dev/ui";import{namespaces as ju}from"@rango-dev/wallets-shared";import be,{useMemo as YC,useState as ZC}from"react";import{keyframes as UC,styled as Qr}from"@rango-dev/ui";var MP=Qr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Qo=Qr("div",{position:"relative"}),zC=UC({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),qo=Qr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${zC} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),qr=Qr("div",{"& img":{borderRadius:"50%"}});function Gu(t,e){return t.find(o=>o.name===e)?.logo}i(Gu,"getBlockchainLogo");import{styled as QC}from"@rango-dev/ui";var Vu=QC("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});function ls(t){let{singleNamespace:e,availableNamespaces:o,providerImage:n}=t.value,[r,a]=ZC([]),s=y().blockchains(),l=YC(()=>o?.map(c=>({name:c,logo:Gu(s,ju[c].mainBlockchain),title:ju[c].title})),[o]),p=i(c=>{a(e?[c]:m=>m.includes(c)?m.filter(g=>g!==c):m.concat(c))},"onSelect"),u=i(c=>e?be.createElement(XC,{value:r?.[0]},c):be.createElement(be.Fragment,null,c),"wrapRadioRoot");return be.createElement(be.Fragment,null,be.createElement(GC,{size:20}),be.createElement(KC,{type:"info",title:ss.t("Select chain types"),description:ss.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:be.createElement(Qo,null,be.createElement(Nr,null,be.createElement(Ku,{src:n,size:45})),be.createElement(qo,null))}),be.createElement(Vu,null,u(be.createElement(be.Fragment,null,l?.map(c=>be.createElement(VC,{key:c.name,id:c.name,title:c.title,hasDivider:!0,style:{height:60},onClick:()=>p(c.name),start:be.createElement(Ku,{src:c.logo,size:22}),end:e?be.createElement(jC,{value:c.name}):be.createElement(HC,{checked:r.includes(c.name)})}))))),be.createElement(qC,{type:"primary",disabled:!r.length,onClick:()=>t.onConfirm(r)},ss.t("Confirm")))}i(ls,"Namespaces");import{i18n as Ho}from"@lingui/core";import{Button as ek,Divider as Zu,Image as tk,MessageBox as ok,Select as nk,TextField as rk}from"@rango-dev/ui";import Qe,{useEffect as ik,useState as Ju}from"react";import{namespaces as JC}from"@rango-dev/wallets-shared";var ps={id:"custom",label:"Custom",generateDerivationPath:t=>t};function cs(t){let e=t?JC[t].derivationPaths:null;return e?[...e,ps]:[]}i(cs,"getDerivationPaths");import{styled as Xu,Typography as RC}from"@rango-dev/ui";var Yu=Xu("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),us=Xu(RC,{paddingLeft:"$10"}),ms={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};function ds(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Ju(null),[l,p]=Ju("0"),u=a===ps.id,c=cs(o),m=i(({value:d})=>{let f=c?.find(h=>h.id===d);f&&s(f.id)},"handleDerivationPathItemClick"),g=i(()=>{let d=c.find(f=>f.id===a);if(d)e(d.generateDerivationPath(l));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return ik(()=>{s(cs(o)[0]?.id||null)},[o]),Qe.createElement(Qe.Fragment,null,Qe.createElement(Zu,{size:20}),Qe.createElement(ok,{type:"info",title:Ho.t("Select Derivation Path"),description:Ho.t(`In order to connect to ${r}, you must first select a Derivation Path`),icon:Qe.createElement(Qo,null,Qe.createElement(qr,null,Qe.createElement(tk,{src:n,size:45})),Qe.createElement(qo,null))}),Qe.createElement(Yu,null,Qe.createElement(us,{variant:"body",size:"xsmall",color:"$neutral600"},Ho.t("Choose Derivation Path Template")),Qe.createElement(nk,{value:a||"",options:c.map(d=>({value:d.id,label:d.label})),variant:"filled",handleItemClick:m,styles:{trigger:ms}}),Qe.createElement(Zu,{size:20}),Qe.createElement(us,{variant:"body",size:"xsmall",color:"$neutral600"},u?Ho.t("Enter Path"):Ho.t("Enter Index")),Qe.createElement(rk,{type:u?"text":"number",variant:"contained",value:l,onChange:d=>p(d.target.value),style:ms})),Qe.createElement(ek,{type:"primary",onClick:g,disabled:!c||!a||!l},Ho.t("Confirm")))}i(ds,"DerivationPath");import{i18n as Go}from"@lingui/core";import{Image as ak,MessageBox as fs,WalletState as sk}from"@rango-dev/ui";import{useWallets as lk}from"@rango-dev/wallets-react";import ho from"react";function gs(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=lk();return ln(a(n))===sk.CONNECTED?ho.createElement(fs,{type:"success",title:Go.t("Wallet Connected"),description:Go.t("Your wallet is connected, you can use it to swap.")}):o?ho.createElement(fs,{type:"error",title:Go.t("Failed to Connect"),description:o||Go.t("Your wallet is not connected. Please try again.")}):ho.createElement(fs,{type:"loading",title:Go.t("Connecting to your wallet"),description:Go.t("Click connect in your wallet popup."),icon:ho.createElement(Qo,null,ho.createElement(qr,null,ho.createElement(ak,{src:r,size:45})),ho.createElement(qo,null))})}i(gs,"ConnectStatus");import{i18n as hs}from"@lingui/core";import{Button as pk,Divider as Ru,MessageBox as ck}from"@rango-dev/ui";import Hr from"react";function ys(t){let{displayName:e,onConfirm:o}=t;return Hr.createElement(ck,{title:hs.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:hs.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:e}})},Hr.createElement(Ru,{size:18}),Hr.createElement(Ru,{size:32}),Hr.createElement(pk,{onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},hs.t("Confirm")))}i(ys,"ExperimentalChain");function em(t,e){return t().status==="init"&&!!e}i(em,"isOnStatus");function tm(t){return t().status==="namespace"}i(tm,"isOnNamespace");function om(t){return t().status==="derivationPath"}i(om,"isOnDerivationPath");var dk=3e3,fk=300;function So(t){let[e,o]=nm(!1),[n,r]=nm(),a=i(S=>{r(S.message)},"catchErrorOnHandle"),{terminateConnectingWallets:s}=ht(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:c,resetState:m}=jt(),g=i(S=>{u(t.wallet,S).catch(a)},"handleConfirmNamespaces"),d=i(S=>{if(!S)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(S).catch(a)},"handleDerivationPathConfirm"),f=i(()=>{o(!1)},"handleClosingModal"),h=i(()=>{r(void 0),m(),o(!1)},"resetModalState");return mk(()=>{if(t.wallet){h();let S=!1,C=!0,k=i(()=>{setTimeout(()=>{C=!1,S||o(!0)},fk)},"beforeConnecting"),T=i(v=>{let x=v.status==="connected",N=["disconnected","disconnected-unhandled"].includes(v.status);["namespace","derivation-path"].includes(v.status)||(S=!0),x&&!C?setTimeout(f,dk):N&&f(),t.onConnect&&t.onConnect(v)},"afterConnected");k(),l(t.wallet,{disconnectIfConnected:!0}).then(T).catch(a)}},[t.wallet]),yo.createElement(J,{open:e,onClose:f,onExit:()=>{h(),s(),t.onClose&&t.onClose()},container:A()},em(c,t.wallet)&&yo.createElement(yo.Fragment,null,yo.createElement(gs,{wallet:{type:t.wallet.type,image:t.wallet.image},error:n}),yo.createElement(uk,{direction:"vertical",size:32})),tm(c)&&yo.createElement(ls,{onConfirm:g,value:c().namespace}),om(c)&&yo.createElement(ds,{onConfirm:d,value:c().derivationPath}))}i(So,"StatefulConnectModal");import{Image as yk,MessageBox as Sk,Spinner as Ck}from"@rango-dev/ui";import hn from"react";import{keyframes as gk,styled as Ss}from"@rango-dev/ui";var rm=Ss("div",{position:"relative"}),hk=gk({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),UD=Ss("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${hk} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),im=Ss("div",{"& img":{borderRadius:"50%"}});import{i18n as Vo}from"@lingui/core";function am(t,e){switch(t){case"in-progress":return{type:"loading",title:Vo.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Vo.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Vo.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Vo.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Vo.t("Request Rejected"),description:Vo.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(am,"generateMessageByStatus");function sm(t){let{status:e,displayName:o,image:n}=t,r=am(e,o),a=e=="in-progress";return hn.createElement(Sk,{type:r.type,title:r.title,description:r.description,icon:a?hn.createElement(rm,null,hn.createElement(im,null,hn.createElement(yk,{src:n,size:45})),hn.createElement(Ck,null)):void 0})}i(sm,"ExperimentalChainStatus");var xk=7,wk=3e3;function Cs(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=se.use.isActiveTab(),l=Z.use.connectedWallets(),{blockchains:p}=y(),[u,c]=yn(),[m,g]=yn(null),[d,f]=yn(!1),[h,S]=yn(null),{suggestAndConnect:C}=Gr(),{handleDisconnect:k}=jt(),{list:T}=ht({chain:e}),[v,x]=yn(T),N=T.length,M=r&&N-r>0,w=i(async b=>{f(!1),S("in-progress");try{await C(b.walletType,b.chain),S("completed")}catch{S("rejected")}},"addExperimentalChain");um(()=>{x(b=>{let W=T.findIndex($=>o($.type,e));return M&&W>1?[T[W]].concat(T.filter(($,I)=>I!==W)):b.map($=>T.find(I=>I.type===$.type)??$)})},[JSON.stringify(T)]);let E=document.getElementById(_e.SWAP_BOX_ID);return um(()=>{let b=null;return(h==="completed"||h==="rejected")&&(b=setTimeout(()=>S(null),wk)),()=>{b&&clearTimeout(b)}},[h]),Ze.createElement(Ze.Fragment,null,v.slice(0,r).map(b=>{let W=Ap({connectedWallets:l,walletType:b.type,chain:e}),$=W?lr(W,xk):"",I=ar(p(),e),R=!l.find(le=>le.walletType===b.type&&le.chain===e),ee=I&&R&&b.state===cm.CONNECTED,oe=ee?lm.t({id:"Add {chain} chain",values:{chain:e}}):$,L=i(async()=>{b.state===cm.DISCONNECTED?c(b):b.namespaces&&!$?(await k(b.type),c(b)):ee?(g({walletType:b.type,chain:e,address:W??""}),f(!0)):n({walletType:b.type,chain:e,address:W??""})},"onSelectableWalletClick"),V=m?.chain?er(m.chain,p()):void 0;return Ze.createElement(Ze.Fragment,{key:`${b.title}_${V}`},!!m&&Ze.createElement(J,{open:!!m&&d,container:E,onClose:()=>{g(null)}},Ze.createElement(ys,{displayName:V,onConfirm:()=>{w(m)}})),h&&Ze.createElement(J,{open:!!h,onClose:S.bind(null,null),container:E},Ze.createElement(sm,{status:h,displayName:V,image:b.image}),Ze.createElement(Tk,{direction:"vertical",size:32})),Ze.createElement(vk,{key:b.type,description:oe,onClick:L,selected:o(b.type,e),disabled:!s,...b}))}),Ze.createElement(So,{wallet:u,onClose:()=>{c(void 0)},onConnect:b=>{t.onConnect&&b.status==="connected"&&(u?.type?t.onConnect(u.type):kk(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),M&&Ze.createElement(Fu,{selected:!1,onClick:a},Ze.createElement(pm,{variant:"label",size:"medium"},lm.t("Show more wallets"),Ze.createElement(pm,{variant:"label",size:"medium",color:"$primary"},"\xA0+",N-(r??0)))))}i(Cs,"WalletList");var Mk=2;function gm(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Wk(),l=y().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:m,customDestination:g,setCustomDestination:d}=z(),{connectedWallets:f,selectWallets:h}=Z(),{config:S}=y(),[C,k]=ko(""),[T,v]=ko([]),[x,N]=ko(""),[M,w]=ko(null),[E,b]=ko(!!g),W=Nk(()=>ao({filter:"all",quote:p}),[p]),$=ao({filter:"required",quote:p}),I=l.find(_=>_.name===p?.swaps[p?.swaps.length-1].to.blockchain),R=i(_=>$.includes(_),"isWalletRequiredFor"),ee=Ak(()=>f.filter(_=>_.selected&&W.includes(_.chain)),[f,W]),[oe,L]=ko(ee()),[V,le]=ko([]),Y=i((_,Q)=>le(G=>G.concat({blockchain:_,walletType:Q})),"addNextSelectedWallets"),ae=T.length>0,ge=i((_,Q)=>!!oe.find(G=>G.walletType===_&&G.chain===Q&&G.selected&&(R(Q)||!R(Q)&&!g)),"isSelected"),xe=i((_,Q,G)=>{let pe=!1;return _.map(ce=>{if(ce.chain===Q){let de=ce.selected;return!pe&&G?(pe=!0,de=!0):G||(de=!1),{...ce,selected:de}}return ce})},"updateSelectableWallets"),U=i(_=>{b(_),_?R(I?.name??"")||L(Q=>xe(Q,I?.name||"",!1)):(d(""),L(Q=>xe(Q,I?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),Ke=i(_=>{if(C&&k(""),ge(_.walletType,_.chain))return;let G=f.find(pe=>pe.walletType===_.walletType&&pe.chain===_.chain);G&&(n(),_.chain===I?.name&&E&&!R(I.name)&&(b(!1),d(null)),L(pe=>pe.filter(ce=>ce.chain!==_.chain).concat({...G,selected:!0})))},"onChange"),xt=i(()=>{let _=oe.filter(Q=>Q.selected);h(_),u(_),m(!0),o()},"onConfirmBalance"),lt=i(async()=>{v([]),N(""),w(null);let _=await r?.({selectedWallets:oe.filter(G=>G.selected),customDestination:g}),Q=_.warnings;Q?.balance?.messages&&v(Q.balance.messages),Q?.quoteUpdate&&w(Q.quoteUpdate),_.error&&N(pc(_.error)),!_.error&&!Q?.balance?.messages.length?xt():v(Q?.balance?.messages??[])},"onConfirmWallets");fm(()=>{L(_=>{let Q=[];return _.forEach(G=>{!f.some(ce=>ce.chain===G.chain&&ce.walletType===G.walletType&&ce.address===G.address)||Q.push(G)}),Q=Q.concat(f.filter(G=>!!!Q.find(ce=>ce.chain===G.chain)&&G.selected&&W.includes(G.chain))),Q})},[f,W]),fm(()=>{let _=[];V.length>0&&(V.forEach(Q=>{let G=f.find(pe=>pe.chain===Q.blockchain&&pe.walletType===Q.walletType);G?Ke(G):_.push(Q)}),le(_))},[f,V]);let wt=document.getElementById(_e.SWAP_BOX_ID);return j.createElement(J,{open:e,onClose:()=>{c||s("../",{replace:!0}),o()},dismissible:!C,container:wt,...!C&&{styles:{container:{height:"100%"}},footer:j.createElement(qu,null,j.createElement(dm,{loading:a,disabled:Ic(a,E,g,p,oe,I),onClick:lt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Co.t("Confirm")))},...C&&{styles:{container:{height:"100%",padding:"$0"}},header:j.createElement(Ou,null,j.createElement(Uu,{variant:"ghost",onClick:k.bind(null,"")},j.createElement(Ek,{size:16})),j.createElement(ks,{variant:"headline",size:"small"},Co.t({id:"Your {blockchainName} wallets",values:{blockchainName:pt(C,l)}})))},anchor:"center"},j.createElement(J,{open:ae,onClose:v.bind(null,[]),container:wt},j.createElement(Ik,{title:Co.t("Insufficient account balance"),type:"error",description:j.createElement(bk,{messages:T??[]})},j.createElement(dm,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:xt},Co.t("Proceed anyway")))),C&&j.createElement(zu,null,j.createElement("div",{className:Qu()},j.createElement(Cs,{chain:C,isSelected:ge,selectWallet:Ke,onShowMore:()=>k(C),onConnect:_=>{Y(C,_)}}))),!C&&j.createElement(j.Fragment,null,x&&j.createElement(j.Fragment,null,j.createElement(mm,{variant:"alarm",type:"error",title:Co.t(x)}),j.createElement(Vr,{size:12})),M&&j.createElement(j.Fragment,null,j.createElement(mm,{variant:"alarm",type:"warning",title:_r(M)}),j.createElement(Vr,{size:12})),j.createElement(Hu,null,W.map((_,Q)=>{let G=l.find(he=>he.name===_),pe=`wallet-${Q}`,ce=Q===W.length-1,de=ce&&I&&S?.customDestination!==!1;return j.createElement("div",{key:pe},j.createElement(_u,null,j.createElement(ks,{variant:"title",size:"xmedium"},Co.t({id:"Your {blockchainName} wallets",values:{blockchainName:G?.shortName}})),j.createElement(ks,{variant:"label",color:"$neutral700",size:"medium"},Co.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:G?.shortName}}))),j.createElement(Vr,{size:24}),j.createElement($u,null,j.createElement(Cs,{chain:_,isSelected:ge,selectWallet:Ke,limit:Mk,onShowMore:()=>k(G?.name??""),onConnect:he=>{Y(_,he)}})),!ce&&j.createElement(Vr,{size:32}),de&&j.createElement(Du,{blockchain:I,open:E,handleOpenChange:U}))}))))}i(gm,"ConfirmWalletsModal");import{i18n as Yk}from"@lingui/core";import{Alert as Zk,Button as Jk,InfoIcon as Rk}from"@rango-dev/ui";import ot from"react";import{Alert as Pk,Button as Dk,Divider as xs,NoRouteIcon as _k,RefreshIcon as $k,Typography as vm}from"@rango-dev/ui";import tt from"react";import{i18n as hm}from"@lingui/core";var Bk=24,Lk=60;function ym(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:te().genericServerError,action:{onClick:n,title:hm.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:te().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:hm.t("Reset")}},description:te().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:te().noResultError.description}}i(ym,"makeInfo");var Ts=(o=>(o[o.small=Bk]="small",o[o.large=Lk]="large",o))(Ts||{}),vs=(o=>(o.small="small",o.large="medium",o))(vs||{});import{styled as Kr}from"@rango-dev/ui";var Sm=Kr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Cm=Kr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),km=Kr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Tm=Kr("div",{padding:"$6 $0"});function Sn(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=ym(o,r,()=>a(s,!0),e);return tt.createElement(Sm,null,tt.createElement(_k,{size:Ts[n],color:"gray"}),tt.createElement(xs,{size:4}),tt.createElement(vm,{variant:"title",size:vs[n]},te().noResultError.title),n==="large"&&tt.createElement(xs,{size:4}),!!l.description&&tt.createElement(Cm,{size:n},tt.createElement(vm,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),tt.createElement(xs,{size:n==="large"?"24":"4"}),!!l.alert&&tt.createElement(km,{size:n},tt.createElement(Pk,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&tt.createElement(Dk,{size:"xsmall",type:l.alert.type,prefix:tt.createElement(Tm,null,tt.createElement($k,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Sn,"NoResult");import{i18n as Cn}from"@lingui/core";import{Button as Ok,Divider as Uk,MessageBox as zk,Typography as Qk,WarningIcon as qk}from"@rango-dev/ui";import Dt from"react";import{Typography as Em}from"@rango-dev/ui";import bs from"react";import{darkTheme as Fk,styled as jr}from"@rango-dev/ui";var xm=jr("div",{width:"100%"}),ws=jr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),wm=jr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Fk} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),bm=jr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Im(t){let{title:e,value:o,valueColor:n}=t;return bs.createElement(wm,null,bs.createElement(Em,{size:"medium",variant:"label",className:"_title"},e),bs.createElement(Em,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Im,"QuoteErrorsModalItem");function Am(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Cn.t("Swapping"),value:B(r.inputUsdValue,4,4)},{title:Cn.t("Gas cost"),value:B(r.totalFee,2,2)},{title:Cn.t("Receiving"),value:B(r.outputUsdValue,4,4)},{title:Cn.t("Price impact"),value:B(r.priceImpact,2,2),valueColor:`${s}500`}];return Dt.createElement(J,{footer:Dt.createElement(Ok,{type:"primary",size:"large",prefix:Dt.createElement(qk,null),fullWidth:!0,disabled:a,onClick:n},te().highValueLossError.confirmMessage),open:e,onClose:o,container:A()},Dt.createElement(zk,{type:s,title:te().highValueLossError.impactTitle,description:te().highValueLossError.description}),Dt.createElement(ws,null,Dt.createElement(Uk,{size:"4"}),Dt.createElement(Qk,{size:"small",variant:"title"},Cn.t("Details")),Dt.createElement(ws,null,l.map((p,u)=>Dt.createElement(Im,{key:u,...p})))))}i(Am,"HighValueLossWarningModal");import{i18n as Es}from"@lingui/core";function Nm(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=Es.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&&(Lt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=te().highValueLossError.title),t.type===1&&(o.title=te().unknownPriceError.title),t.type===2&&(o.title=Es.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=Es.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(Nm,"makeAlerts");import{i18n as Ko}from"@lingui/core";import{Button as Wm,Divider as Mm,MessageBox as Hk,Typography as Gk}from"@rango-dev/ui";import To from"react";import{useNavigate as Vk}from"react-router-dom";function Bm(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=Vk(),u=e??o;return To.createElement(J,{anchor:"bottom",open:n,prefix:To.createElement(Wm,{size:"small",variant:"ghost",onClick:()=>p("../"+D.settings)},To.createElement(Gk,{variant:"label",size:"medium",color:"$neutral900"},Ko.t("Change settings"))),container:A(),onClose:r},To.createElement(Hk,{type:"warning",title:s.type===3?Ko.t("High slippage"):Ko.t("Low slippage"),description:s.type===3?Ko.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Ko.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},To.createElement(Mm,{size:18}),To.createElement(Mm,{size:32}),To.createElement(Wm,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Ko.t("Confirm anyway"))))}i(Bm,"SlippageWarningModal");import{Button as Kk,MessageBox as jk,WarningIcon as Xk}from"@rango-dev/ui";import Xr from"react";function Lm(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Xr.createElement(J,{footer:Xr.createElement(Kk,{type:"primary",size:"large",prefix:Xr.createElement(Xk,null),fullWidth:!0,disabled:r,onClick:n},te().unknownPriceError.confirmMessage),open:e,onClose:o,container:A()},Xr.createElement(jk,{type:"warning",title:te().unknownPriceError.impactTitle,description:te().unknownPriceError.description}))}i(Lm,"UnknownPriceWarningModal");function kn(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},g=o?.type===0||o?.type===1,d=Nm(e,o?.type===3||o?.type===4?o:null);return d&&!n&&(d.action=null),ot.createElement(ot.Fragment,null,g&&ot.createElement(Sn,{error:o,fetch:s}),!!d&&ot.createElement(xm,null,ot.createElement(Zk,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:ot.createElement(bm,{onClick:l},ot.createElement(Rk,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:ot.createElement(Jk,{size:"xxsmall",type:d.alertType,onClick:c},Yk.t("Change"))}})),e&&ot.createElement(ot.Fragment,null,e.type===0&&ot.createElement(Am,{...m,warning:e}),(e.type===3||e.type===2)&&ot.createElement(Bm,{...m,warning:e}),e.type===1&&ot.createElement(Lm,{...m,warning:e})))}i(kn,"QuoteWarningsAndErrors");import WT from"bignumber.js";import pi from"react";import{i18n as vo}from"@lingui/core";import{Alert as yT,Divider as Xo,FullExpandedQuote as ST,InfoIcon as CT,NumericTooltip as md,QuoteTag as kT,StepDetails as TT,TokenAmount as vT,Typography as Yo}from"@rango-dev/ui";import Ps from"bignumber.js";import F,{useRef as xT,useState as wT}from"react";import{styled as Is}from"@rango-dev/ui";var As=Is("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Pm=Is("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Dm=Is("div",{width:"100%",display:"flex"});import*as Yr from"@radix-ui/react-collapsible";import{Button as eT,css as Tn,darkTheme as Ee,Image as _m,styled as qe,Typography as tT}from"@rango-dev/ui";var oT=300,$m=qe(Yr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ee} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ee} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ee} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Fm=Tn({padding:"$10 $15"}),Om=qe(eT,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Ee} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Ee} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Ee} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Um=qe("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",[`.${Ee} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Ee} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Ee} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Ee} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Ee} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Ee} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Ee} &`]:{backgroundColor:"$neutral400"}}}}]}),zm=Tn({width:"100%",padding:"$15 $15 $10 $15"}),Qm=Tn({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),jo=Tn({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),qm=Tn({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ee} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Hm=qe(Yr.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:{[`& ${_m}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${_m}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ee} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ee} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ee} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Gm=qe("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"}}}}),Vm=qe(Fr,{width:"100%",background:"inherit"}),Ns=qe("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${oT}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),a1=qe("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Km=qe("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ee} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),jm=qe("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ws=qe(tT,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Xm=qe("div",{display:"flex",flexWrap:"wrap"}),Ms=qe("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"}}}}),Ym=qe("div",{display:"flex"}),Zr=qe("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Ee} &`]:{borderTopColor:"$neutral800"}});import{i18n as Nt}from"@lingui/core";import{ChevronDownIcon as rT,CloseIcon as iT,Divider as ei,IconButton as aT,NumericTooltip as sT,QuoteCost as lT,Typography as yt}from"@rango-dev/ui";import X,{useState as ed}from"react";import{css as nT,styled as Jr}from"@rango-dev/ui";var Rr=Jr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Bs=Jr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Zm=Jr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Jm=Jr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Rm=nT({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var pT=i(t=>t.fee.isZero()?null:X.createElement(Rr,null,X.createElement(yt,{variant:"label",size:"medium",color:"neutral600"},t.label),X.createElement(yt,{variant:"label",size:"medium"},"$",B(t.fee,4,4))),"NonPayableFee");function td(t){let[e,o]=ed(!1),[n,r]=ed(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],g=A(),d=gc(m);return X.createElement(X.Fragment,null,X.createElement(lT,{onClickFee:c?f=>{f.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Nt.t("View more info"):void 0,tooltipContainer:g}),X.createElement(J,{container:g,open:e,header:X.createElement(Jm,null,X.createElement(yt,{variant:"title",size:"medium"},Nt.t("Gas & Fee Explanation")),X.createElement(aT,{onClick:()=>o(!1),variant:"ghost"},X.createElement(iT,{color:"gray",size:14}))),onClose:()=>{o(!1)}},X.createElement(Zm,null,X.createElement(yt,{variant:"title",size:"small"},Nt.t("Details")),X.createElement(ei,{size:10}),Object.entries(d.payable).flatMap(([f,h])=>h.map((S,C)=>{let k=`payable-fee-${C}`,T=ya(S);return X.createElement(Rr,{key:k},X.createElement(yt,{variant:"label",size:"medium",color:"neutral600"},da(f,Nt.t)),X.createElement(sT,{content:S.amount,container:g},X.createElement(yt,{variant:"label",size:"medium"},B(S.amount,2,2)," ",S.asset.symbol," ($",B(T,4,4),")")))})),X.createElement(Rr,{className:"total_payable_fee"},X.createElement(yt,{variant:"label",size:"medium"},Nt.t("Total Payable Fee")),X.createElement(yt,{variant:"label",size:"medium"},"$",B(l,4,4))),X.createElement(Bs,null),Object.keys(d.nonePayable).length&&X.createElement(zr,{triggerAnchor:"bottom",onClickTrigger:()=>r(f=>!f),trigger:X.createElement("div",{className:Rm()},X.createElement(yt,{size:"small",variant:"body",color:"neutral700"},n?Nt.t("Hide non-payable fees"):Nt.t("Show non-payable fees")),X.createElement(ei,{size:4,direction:"horizontal"}),X.createElement(Or,{orientation:n?"up":"down"},X.createElement(rT,{size:12,color:"gray"}))),open:n},X.createElement(yt,{size:"small",variant:"title"},Nt.t("Description")),X.createElement(ei,{size:4}),X.createElement(yt,{size:"small",variant:"body",color:"neutral700"},Nt.t(`The following fees are considered in the transaction output and
|
|
2
|
+
you won\u2019t need to pay extra gas for them.`)),X.createElement(ei,{size:10}),Object.entries(d.nonePayable).map(([f,h],S)=>{let C=fc(h),k=da(f,Nt.t),T=`non-payable-fee-${S}`;return X.createElement(pT,{key:T,fee:C,label:k})}),X.createElement(Bs,null)))))}i(td,"QuoteCostDetails");import{i18n as rd}from"@lingui/core";import{TokenAmount as id}from"@rango-dev/ui";import ti from"react";import{css as cT,styled as uT}from"@rango-dev/ui";var od=uT("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),nd=cT({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function vn(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return ti.createElement(od,null,ti.createElement(id,{direction:"horizontal",label:rd.t("Swap input"),type:"input",tooltipContainer:A(),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}}),ti.createElement("div",{className:nd()}),ti.createElement(id,{direction:"horizontal",tooltipContainer:A(),label:rd.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(vn,"QuoteSummary");import{i18n as cd}from"@lingui/core";import{ChevronDownIcon as fT,ChevronRightIcon as gT,Divider as Ls,Image as hT,Tooltip as ai,Typography as ni}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as mT,useState as xn}from"react";var ad=480,sd=768,ld=1024,pd=1200,dT=i(()=>{let[t,e]=xn(!1),[o,n]=xn(!1),[r,a]=xn(!1),[s,l]=xn(!1),[p,u]=xn(!1),c=i(()=>{e(window.innerWidth<=ad),n(window.innerWidth>ad&&window.innerWidth<=sd),a(window.innerWidth>sd&&window.innerWidth<=ld),l(window.innerWidth>ld&&window.innerWidth<=pd),u(window.innerWidth>pd)},"handleResize");return mT(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),oi=dT;var ri=4,ii=6,wn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||A();return O.createElement(ai,{container:l,side:"bottom",sideOffset:4,open:r,content:e},O.createElement(Gm,{className:n,state:a},O.createElement(hT,{src:o,size:16})))},"ImageComponent");function ud(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||A(),u=r.length,c=Bc(r),{isTablet:m,isMobile:g}=oi();return O.createElement(Hm,{listItem:s==="list-item",ref:d=>e.current=d,selected:o,onClick:d=>{d.stopPropagation(),n(f=>!f)}},O.createElement("div",{className:jo()},O.createElement(ni,{variant:"body",size:"xsmall"},cd.t("Via:")),O.createElement(Ls,{direction:"horizontal",size:4}),r.map((d,f)=>{let h=`item-${f}`,S=O.createElement(Ns,null,O.createElement(gT,{size:12,color:"black"}));return g||m?O.createElement(O.Fragment,{key:h},O.createElement(wn,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),f!==u-1&&O.createElement(O.Fragment,null,S)):O.createElement(O.Fragment,{key:h},u<=ri||u>ri&&f<ri-1?O.createElement(O.Fragment,null,O.createElement(wn,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),f!==u-1&&O.createElement(O.Fragment,null,S)):f===ri-1&&O.createElement(ai,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:jo()},S,r.map((C,k)=>{let T=`image-${k}`;return k>=f&&O.createElement(O.Fragment,{key:T},O.createElement(wn,{content:C.swapper.displayName,src:C.swapper.image,state:C.state,open:!1}),k!==u-1&&O.createElement(O.Fragment,null,S))}))},O.createElement(Ms,{state:r.find((C,k)=>k>=f&&(C.state==="error"||C.state==="warning"))?.state},O.createElement(ni,{size:"xsmall",variant:"body"},"+",u-f))))})),O.createElement("div",{className:jo()},O.createElement("div",{className:"blockchains_section"},O.createElement("div",{className:jo()},O.createElement(ni,{variant:"body",size:"xsmall"},cd.t("Chains:")),O.createElement(Ls,{direction:"horizontal",size:4}),c.map((d,f)=>O.createElement(O.Fragment,{key:d.displayName},c.length<=ii||c.length>ii&&f<ii-1?O.createElement(ai,{container:p,side:"bottom",content:d.displayName,sideOffset:4},O.createElement(wn,{content:"",src:d.image,open:!1,className:f!==0?"blockchainImage":""})):f===ii-1&&O.createElement(ai,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:jo()},c.map((h,S)=>S>=f&&O.createElement(wn,{key:h.displayName,content:"",src:h.image,open:!1,className:S>f?"blockchainImage":"",container:l})))},O.createElement(Ms,{className:"blockchainImage"},O.createElement(ni,{size:"xsmall",variant:"body"},"+",c.length-f))))),O.createElement(Ls,{direction:"horizontal",size:32}))),O.createElement(Ns,{orientation:a?"up":"down"},O.createElement(fT,{size:12,color:"black"}))))}i(ud,"QuoteTrigger");function Ds(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:g}=t,d=y().blockchains(),{findToken:f}=y(),h=y().swappers(),{customSlippage:S,slippage:C}=y(),k=S||C,[T,v]=wT(t.expanded),x=xT(null),N=B(o.value,6,6),M=B(n.value,6,6),w=n.usdValue?B(n.usdValue,4,4):"",E=ut(o.usdValue,n.usdValue??null),b=B(E,2,2),W=Lt(E??0),$=i((ge,xe)=>ge.map((U,Ke)=>{let xt,lt=r?.type===3&&r.swap.swapperId===U.swapperId,wt=r?.type===4&&r.recommendedSlippages?.has(Ke),_=a?.type===2&&a.recommendedSlippages?.has(Ke),Q=lt||wt,G=_;Q?xt="error":G&&(xt="warning");let pe=Q?vo.t("Slippage Error"):vo.t("Slippage Warning");return lt&&(pe=vo.t("Bridge Limit Error")),{swapper:{displayName:nn(U.swapperId,h)??"",image:U.swapperLogo},from:{token:{displayName:U.from.symbol,image:U.from.logo},chain:{displayName:pt(U.from.blockchain,d)??"",image:U.from.blockchainLogo},price:{value:Ke===0&&!xe?B(o.value,6,6):B(U.fromAmount,6,6),usdValue:B((U.from.usdPrice??0)*parseFloat(U.fromAmount),4,4),realValue:Ke===0?o.value:U.fromAmount,realUsdValue:new Ps(U.from.usdPrice??0).multipliedBy(U.fromAmount).toString()}},to:{token:{displayName:U.to.symbol,image:U.to.logo},chain:{displayName:pt(U.to.blockchain,d)||"",image:U.to.blockchainLogo},price:{value:B(U.toAmount,6,6),usdValue:B((U.to.usdPrice??0)*parseFloat(U.toAmount),4,4),realValue:U.toAmount,realUsdValue:new Ps(U.to.usdPrice??0).multipliedBy(U.toAmount).toString()}},state:xt,alerts:Q||G?F.createElement(Pm,{dense:m},F.createElement(yT,{variant:"alarm",type:Q?"error":"warning",title:pe,footer:F.createElement(Dm,null,lt&&F.createElement("div",null,F.createElement(Yo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(Xo,{direction:"vertical",size:2}),F.createElement(Yo,{size:"xsmall",variant:"body",color:"neutral900"},vo.t({id:"Yours: {amount} {symbol}",values:{amount:B(U.fromAmount,6,6),symbol:U?.from.symbol}}))),(wt||_)&&!lt&&F.createElement("div",null,F.createElement(Yo,{size:"xsmall",variant:"body",color:"neutral900"},vo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Ke)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Ke)}}})),F.createElement(Xo,{direction:"vertical",size:2}),F.createElement(Yo,{size:"xsmall",variant:"body",color:"neutral900"},vo.t({id:"Yours: {userSlippage}",values:{userSlippage:k}}))))})):void 0,time:an(U.estimatedTimeInSeconds),fee:B(ha(U,f),2,2),internalSwaps:U.internalSwaps?$(U.internalSwaps):void 0}}),"getQuoteSteps"),I=$(e?.swaps??[]),R=I.length,ee=g||A(),oe=Pc(t.quote.tags||[]),L=!!c,V=an(tr(e?.swaps)),le=kr(e?.swaps??[],f),Y=B(le,2,2),ae=le.gte(new Ps(lc));return m?F.createElement(ST,{selected:l,fee:Y,time:V,tooltipContainer:on(),steps:I,tags:oe,feeWarning:ae,percentageChange:b,warningLevel:W,outputPrice:{value:M,usdValue:w,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Um,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:zm()},!p&&oe.length?F.createElement(F.Fragment,null,F.createElement(Ym,null,oe.map((ge,xe)=>{let U=`${ge.value}_${xe}`;return F.createElement(F.Fragment,{key:U},F.createElement(kT,{label:ge.label,value:ge.value}),F.createElement(Xo,{size:4,direction:"horizontal"}))})),F.createElement(Zr,null),!L&&F.createElement(Xo,{size:4})):null,F.createElement("div",{id:"portal-root",className:Qm()},F.createElement(td,{quote:e,time:V,fee:Y,feeWarning:ae,showModalFee:u,steps:R}),L&&F.createElement(Om,{onClick:ge=>{ge.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Yo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},vo.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:qm()},F.createElement(jm,null,F.createElement(CT,{size:12,color:"gray"})),F.createElement(Xm,null,F.createElement(Ws,{size:"small",variant:"body"},`${N} ${I[0].from.token.displayName} = `),F.createElement(md,{content:n.value,container:ee,open:n.value?void 0:!1},F.createElement(Ws,{size:"small",variant:"body"},"\xA0",`${M} ${I[I.length-1].to.token.displayName}`))),F.createElement(md,{content:n.usdValue,container:ee},F.createElement(Xo,{size:2,direction:"horizontal"}),F.createElement(Yo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&F.createElement(vT,{tooltipContainer:ee,type:"output",direction:"vertical",price:{value:M,usdValue:w,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:I[R-1].to.token.displayName,image:I[R-1].to.token.image},chain:{image:I[R-1].to.chain.image},percentageChange:b,warningLevel:W}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(vn,{from:I[0].from,to:I[R-1].to,percentageChange:b,warningLevel:W}),F.createElement(Xo,{size:4}))),F.createElement($m,{selected:l,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:v},F.createElement(ud,{type:s,quoteRef:x,selected:l,setExpanded:v,container:ee,expanded:T,steps:I}),F.createElement(Vm,{open:T},F.createElement(Km,null),F.createElement("div",{className:Fm()},I.map((ge,xe)=>{let U=`item-${xe}`;return F.createElement(TT,{type:"quote-details",key:U,tooltipContainer:ee,step:ge,hasSeparator:xe!==I.length-1,state:ge.state})})))))}i(Ds,"Quote");import{Divider as AT,Skeleton as NT}from"@rango-dev/ui";import $t from"react";import{darkTheme as bT,styled as si}from"@rango-dev/ui";var dd=si("div",{$$color:"$colors$neutral100",[`.${bT} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),fd=si("div",{paddingTop:"$2"}),gd=si("div",{paddingLeft:"$8"}),hd=si("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Ed,Divider as St,Skeleton as nt}from"@rango-dev/ui";import q from"react";import{css as ET,styled as _t}from"@rango-dev/ui";var _s=_t("div",{display:"flex"}),yd=_t("div",{padding:"$10 $0 $20"}),Sd=_t("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Cd=_t("div",{display:"flex",justifyContent:"start",alignItems:"center"}),kd=_t("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Td=_t("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),vd=_t("div",{width:"65%",display:"flex",justifyContent:"start"}),xd=_t("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),wd=_t("div",{padding:"$15 $0 $15 $0"}),bd=ET({display:"flex",justifyContent:"space-between",alignItems:"center"});function bn(t){let{type:e,tagHidden:o=!0}=t,n=q.createElement(kd,null,q.createElement(vd,null,q.createElement(Ed,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(St,{size:8,direction:"horizontal"}),q.createElement(xd,null,q.createElement(nt,{height:10,width:60,variant:"rounded"}),q.createElement(St,{size:4}),q.createElement(nt,{height:15,variant:"rounded"}))),q.createElement(nt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return q.createElement("div",null,!o&&q.createElement(q.Fragment,null,q.createElement(_s,null,q.createElement(nt,{width:65,height:20,variant:"rounded"}),q.createElement(St,{size:4,direction:"horizontal"}),q.createElement(nt,{width:65,height:20,variant:"rounded"}),q.createElement(St,{size:4,direction:"horizontal"}),q.createElement(nt,{width:65,height:20,variant:"rounded"})),q.createElement(Zr,null),!r&&q.createElement(St,{size:4})),q.createElement("div",{className:bd()},q.createElement(_s,null,q.createElement(nt,{width:60,height:10,variant:"rounded"}),q.createElement(St,{size:4,direction:"horizontal"}),q.createElement(nt,{width:60,height:10,variant:"rounded"}),q.createElement(St,{size:4,direction:"horizontal"}),q.createElement(nt,{width:60,height:10,variant:"rounded"})),r&&q.createElement(nt,{width:85,height:24,variant:"rounded"})),e==="basic"&&q.createElement(yd,null,q.createElement(nt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(Sd,null,q.createElement(Cd,null,q.createElement(Ed,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(St,{direction:"horizontal",size:4}),q.createElement(nt,{height:15,width:150,variant:"rounded"})),q.createElement(St,{size:10}),q.createElement(nt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(St,{size:4}),q.createElement(wd,null,n,q.createElement(Td,null),n),q.createElement(St,{size:12})))}i(bn,"QuoteSummarySkeleton");import{ChainToken as Md,Divider as Fs,NextIcon as IT,Skeleton as li}from"@rango-dev/ui";import Ie from"react";import{styled as En}from"@rango-dev/ui";var Id=En("div",{display:"flex",alignItems:"start"}),Ad=En("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),$s=En("div",{display:"flex",alignItems:"center",flexGrow:1}),Nd=En("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Wd=En("div",{display:"flex",alignItems:"center"});function Wt(t){let{separator:e=!0}=t;return Ie.createElement(Ie.Fragment,null,Ie.createElement(Wd,null,Ie.createElement(li,{height:22,width:22,variant:"circular"}),Ie.createElement(Fs,{direction:"horizontal",size:8}),Ie.createElement(li,{height:15,width:148,variant:"rounded"})),Ie.createElement(Id,null,Ie.createElement(hd,{hideSeparator:!e}),Ie.createElement(Ad,{extraSpace:e},Ie.createElement($s,null,Ie.createElement(Md,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ie.createElement(Fs,{direction:"horizontal",size:8}),Ie.createElement(li,{height:12,variant:"rounded"})),Ie.createElement(Nd,null,Ie.createElement(IT,{color:"gray",size:16})),Ie.createElement($s,null,Ie.createElement(Md,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ie.createElement(Fs,{direction:"horizontal",size:8}),Ie.createElement(li,{height:12,variant:"rounded"})))))}i(Wt,"StepSkeleton");function In(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return $t.createElement(dd,{expanded:o,rounded:e!=="basic"},$t.createElement(bn,{type:e,tagHidden:n}),$t.createElement(fd,null,$t.createElement(NT,{height:15,variant:"rounded"})),o&&$t.createElement(gd,null,$t.createElement(AT,{size:24}),$t.createElement(Wt,null),$t.createElement(Wt,null),$t.createElement(Wt,{separator:!1})))}i(In,"QuoteSkeleton");function xo(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:g=!1,container:d}=t,{inputAmount:f,inputUsdValue:h,toToken:S}=z(),C=e?.outputAmount?new WT(e?.outputAmount):null,k=e?.outputAmount?Vt(e?.outputAmount,uo(e)||S?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?pi.createElement(As,null,pi.createElement(In,{tagHidden:l,type:o,expanded:s})):v?pi.createElement(As,{onClick:()=>p?.(e)},pi.createElement(Ds,{quote:e,error:r,container:d,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:g,input:{value:f,usdValue:h?.toString()??""},output:{value:C?.toString()??"",usdValue:k?.toString()??""}})):null}i(xo,"QuoteInfo");import{calculatePendingSwap as PT}from"@rango-dev/queue-manager-rango-preset";import{useEffect as DT}from"react";import{useRef as MT,useState as BT}from"react";var LT=2e3;function ci({request:t}){let[e,o]=BT(!1),n=MT(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,LT)),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(ci,"useFetch");function Bd(){let{fetch:t,loading:e,cancelFetch:o}=ci({request:async(n,r)=>await qt().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Bd,"useFetchConfirmQuote");function ui(t){if(!t.swaps)throw new Error(te().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(ui,"throwErrorIfResponseIsNotValid");function Os(t){if(uc(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=mc(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=hc(t);if(o){let n=Tr(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Os,"getQuoteError");function Ld(t,e,o){let n=!1;t&&(n=Mc(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=Lo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(vc(t,e)?r.quoteUpdate={type:3,newOutputAmount:B(Bo(e)),percentageChange:B(ut(Bo(t)??"",Bo(e)??""),null,2)}:Sa(t,e)?r.quoteUpdate={type:0}:Ca(t,e)?r.quoteUpdate={type:1}:ka(t,e)&&(r.quoteUpdate={type:2}));let s=xc(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(Ld,"generateWarnings");function mi(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(mi,"handleQuoteErrors");function Us(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=z(),{slippage:p,customSlippage:u}=y(),c=y().getDisabledLiquiditySources(),m=y().blockchains(),g=y().tokens(),{findToken:d}=y(),f=u||p,{fetch:h,cancelFetch:S,loading:C}=Bd();return DT(()=>S,[]),{loading:C,fetch:i(async T=>{let v=T.selectedWallets,x=T?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let N=v.reduce((w,E)=>(w[E.chain]=E.address,w),{}),M={requestId:r?.requestId||"",selectedWallets:N,destination:x||void 0};try{return await h(M,!0).then(w=>{let{result:E}=w;ui({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let b={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};n(b);let W={slippage:f.toString(),disabledSwappersGroups:c},$=Ld(r??void 0,b,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:d,selectedWallets:v,userSlippage:f});$.quoteUpdate&&s(!1),l();let I=!!$.balance,R=PT(o.toString(),E,kc(v),W,!I,{blockchains:m,tokens:g});return{quote:b,swap:R,error:null,warnings:$}})}catch(w){return mi(w)}},"fetch"),cancelFetch:S}}i(Us,"useConfirmSwap");var HT=FT("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Dd}`]:{width:"$48",height:"$48"}}),GT=qs({flexGrow:1,paddingRight:"$10"}),VT=qs({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),KT=qs({display:"flex",justifyContent:"space-between",alignItems:"center"});function _d(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=z(),s=qT(),[l,p]=An(""),u=!n,[c,m]=An(!1),[g,d]=An(!1),{isActiveTab:f}=se(),h=y().getDisabledLiquiditySources(),S=QT(h),{manager:C}=_T(),{fetch:k,loading:T,cancelFetch:v}=Us(),[x,N]=An({swap:null,error:null,warnings:null}),[M,w]=An(!1),E=i(async({selectedWallets:L,customDestination:V})=>{let le=await k?.({selectedWallets:L,customDestination:V});return N(le),le},"onConfirmSwap"),b=i(async()=>{if(x.swap&&n)try{await C?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let L=`../${D.swaps}/${x.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){p("Error: "+L?.message)}},"addNewSwap"),W=i(async()=>{d(!0),await b(),d(!1)},"onConfirm"),$=i(async()=>{x?.warnings?.quote&&!a?w(!0):await W()},"onStartConfirmSwap"),I=i(async()=>{N({error:null,swap:null,warnings:null}),k({selectedWallets:o,customDestination:r}).then(L=>{N(L)}).catch(L=>console.error(L))},"onRefresh");di(()=>{!!S.current.length&&!h.length&&I(),S.current=h},[h.length]),di(()=>{u&&v()},[u]),di(()=>{u&&m(u)},[u]),di(()=>{u||k({selectedWallets:o,customDestination:r}).then(L=>N(L)).catch(L=>console.error(L))},[]),zT(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let R=x.warnings?.quote??null,ee=x.error,oe=[];if(l&&oe.push(Ae.createElement(Pd,{type:"error",variant:"alarm",title:l})),x.warnings?.quoteUpdate&&oe.push(Ae.createElement(Pd,{variant:"alarm",type:"warning",title:x.warnings.quoteUpdate&&_r(x.warnings.quoteUpdate)})),R||ee){let L=`../${D.settings}`;oe.push(Ae.createElement(kn,{warning:R,error:ee,couldChangeSettings:!1,refetchQuote:I,showWarningModal:M,confirmationDisabled:!f,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await b()},onChangeSettings:()=>s(L)}))}return Ae.createElement(ne,{header:{title:zs.t("Confirm Swap"),onWallet:()=>{let L=`../${D.wallets}`;s(L)}},footer:Ae.createElement(HT,null,Ae.createElement("div",{className:GT()},Ae.createElement($T,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||g,disabled:!!x.error||!f,onClick:$},zs.t("Start Swap"))),Ae.createElement(Dd,{variant:"contained",type:"primary",size:"large",loading:T||g,disabled:!f,onClick:m.bind(null,!0)},Ae.createElement(UT,{size:24})))},c&&Ae.createElement(gm,{open:c,onClose:()=>m(!1),onCancel:v,loading:T,onCheckBalance:E}),Ae.createElement(ie,null,Ae.createElement("div",{className:KT()},Ae.createElement(OT,{variant:"title",size:"small"},zs.t("You get")),Ae.createElement("div",{className:VT()},Ae.createElement(Wr,{onClick:!T&&!c&&!M?I:void 0}))),Ae.createElement(Qs,{size:"12"}),jc(oe.map((L,V)=>({element:L,key:`alert-${V}`})),Ae.createElement(Qs,{size:10})),oe.length>0?Ae.createElement(Qs,{size:10}):null,Ae.createElement(xo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:x.error,loading:T,warning:x.warnings?.quote??null})))}i(_d,"ConfirmSwapPage");import{i18n as Ft}from"@lingui/core";import{Button as ol,CustomTokensZeroStateDarkIcon as mv,CustomTokensZeroStateIcon as dv,DeleteIcon as fv,Divider as Bn,IconButton as gv,MessageBox as hv,NotFound as yv,styled as rl}from"@rango-dev/ui";import fe,{useState as nl}from"react";import{useNavigate as Sv}from"react-router-dom";import{CloseIcon as XT,IconButton as YT,SearchIcon as ZT,TextField as JT}from"@rango-dev/ui";import Nn from"react";import{styled as jT}from"@rango-dev/ui";var $d=jT("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Ct(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:p,...u}=t;return Nn.createElement(JT,{prefix:Nn.createElement($d,null,Nn.createElement(ZT,{color:"black"})),suffix:!!s.length&&Nn.createElement(YT,{variant:"ghost",onClick:()=>p?.(""),size:"small"},Nn.createElement(XT,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...l},size:r,value:s,onChange:a,...u})}i(Ct,"SearchInput");import{i18n as el}from"@lingui/core";import{darkTheme as jd,Divider as Jo,ExternalLinkIcon as iv,Image as av,ListItemButton as sv,NotFound as lv,PinIcon as pv,Skeleton as Xd,Typography as hi,VirtualizedList as cv}from"@rango-dev/ui";import H,{useEffect as Yd,useState as Zd}from"react";import{useWallets as RT}from"@rango-dev/wallets-react";import{useEffect as ev,useRef as tv,useState as ov}from"react";function Hs(t){let{connectedWallets:e}=Z(),{getWalletInfo:o}=RT(),n=tv([]),[r,a]=ov(0);return ev(()=>{let s=i(p=>{p.type==="disconnect"&&o(p.payload.walletType).supportedChains.some(m=>m.name===t)&&a(m=>m+1)},"handleWalletEvent");return Zn.on("walletEvent",s),t?(e.filter(p=>p.chain===t).forEach(p=>{let{walletType:u}=p,c=n.current.includes(u);p.loading&&!c?n.current=n.current.concat(u):!p.loading&&c&&(n.current=n.current.filter(m=>m!==u),a(m=>m+1))}),()=>Zn.off("walletEvent",s)):a(p=>p+1)},[e,t,o]),{balanceKey:r}}i(Hs,"useObserveBalanceChanges");import{Divider as Vd,ListItem as rv,Skeleton as Wn}from"@rango-dev/ui";import kt from"react";import{css as Zo,darkTheme as Fd,ImageContainer as nv,styled as dt,Typography as Od}from"@rango-dev/ui";var Gs=Zo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Vs=Zo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Ks=Zo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),js=Zo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Fd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Xs=Zo({}),Ys=Zo(),Ud=dt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),Zs=dt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),fi=dt("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Vs}`]:{[`& .${js}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Xs}`]:{bottom:"-15px"},[`& .${Gs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Ks}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Js=dt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Rs=dt(Od,{}),zd=dt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Ys}`]:{$$color:"$colors$neutral600",[`.${Fd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),gi=dt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),uU=dt("div",{display:"flex",alignItems:"center"}),Qd=dt("div",{position:"relative",[`& ${nv}`]:{borderRadius:"$xm",overflow:"hidden"}}),qd=dt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Hd=dt(Od,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Gd=dt("a",{"& svg:hover":{color:"$colors$info"}});function Kd(t){return kt.createElement(fi,null,Array.from(Array(t.size),e=>kt.createElement(rv,{key:e,hasDivider:!0,start:kt.createElement(Wn,{variant:"circular",width:35,height:35}),end:kt.createElement(gi,null,kt.createElement(Wn,{variant:"text",size:"large",width:70}),kt.createElement(Vd,{size:4}),kt.createElement(Wn,{variant:"text",size:"medium",width:50})),title:kt.createElement("div",null,kt.createElement(Wn,{variant:"text",size:"large",width:90}),kt.createElement(Vd,{size:4}),kt.createElement(Wn,{variant:"text",size:"medium",width:90}))})))}i(Kd,"LoadingTokenList");var tl=20,uv=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return H.createElement("div",{className:Vs()},o?H.createElement("div",{className:Gs()},o):H.createElement(Zs,{className:Ks()},H.createElement(hi,{variant:"title",size:"xmedium"},r.symbol),H.createElement(Jo,{direction:"horizontal",size:4}),H.createElement(Js,{css:a},H.createElement(Rs,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&H.createElement("div",{className:`${js()} ${!o&&Xs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",H.createElement(Jo,{size:4,direction:"horizontal"}),H.createElement(Gd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},H.createElement(iv,{size:12}))))},"renderDesc");function Mn(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s}=t,[l,p]=Zd(e),u=y().fetchStatus,c=y().blockchains(),[m,g]=Zd(!0),{getBalanceFor:d,loading:f}=Z(),{isTokenPinned:h}=y(),{balanceKey:S}=Hs(r),C=i(()=>{p(e.slice(0,l.length+tl))},"loadNextPage");Yd(()=>{g(e.length>l.length)},[l.length]),Yd(()=>{p(e.slice(0,tl))},[e.length,r,S]);let k=i(v=>{let x=sr(d(v));return s?s(v):f?H.createElement(gi,null,H.createElement(Xd,{variant:"text",size:"large",width:70}),H.createElement(Jo,{size:4}),H.createElement(Xd,{variant:"text",size:"medium",width:50})):x&&H.createElement(zd,null,H.createElement(Hd,{variant:"title",size:"small"},x.amount),H.createElement("div",null),x.usdValue&&H.createElement(hi,{variant:"body",className:Ys(),size:"xsmall"},`$${x.usdValue}`))},"endRenderer"),T=i(()=>H.createElement(cv,{endReached:m?C:void 0,itemContent:v=>{let x=l[v],N=x.address||"",M=c.find(W=>W.name===x.blockchain),w=La(M.color,"main"),E={$$color:w.main150,[`.${jd} &`]:{$$color:w.main750},backgroundColor:"$$color"},b={$$color:w.main750,[`.${jd} &`]:{$$color:w.main150},color:"$$color"};return H.createElement("div",{style:{paddingRight:5}},H.createElement(sv,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":v,key:`${x.symbol}${x.address}`,id:`${x.symbol}${x.address}`,hasDivider:!0,onClick:()=>n&&n(l[v]),start:H.createElement(Qd,null,H.createElement(av,{src:x.image,size:30}),t.type!=="custom-token"&&h(x,t.type)&&H.createElement(qd,null,H.createElement(pv,{size:12,color:"gray"}))),title:M?.type==="COSMOS"||x.name||!x.name&&!N?H.createElement(Zs,null,H.createElement(hi,{variant:"title",size:"xmedium"},x.symbol),H.createElement(Jo,{direction:"horizontal",size:4}),H.createElement(Js,{css:E},H.createElement(Rs,{variant:"body",size:"xsmall",css:b},x.blockchain))):void 0,description:M?.info&&N&&M.type!=="COSMOS"?uv({address:N,token:l[v],customCssForTag:E,customCssForTagTitle:b,name:x.name,url:M.info.addressUrl.split("{wallet}").join(N)}):x.name||void 0,end:k(x)}))},totalCount:l.length,key:`${r}-${o}-${S}`}),"renderList");return H.createElement(H.Fragment,null,a&&H.createElement(H.Fragment,null,H.createElement(hi,{variant:"label",size:"large"},el.t("Select Token")),H.createElement(Jo,{size:4})),H.createElement(Ud,null,H.createElement(Jo,{size:4}),u==="loading"&&H.createElement(Kd,{size:tl}),u==="success"&&(l.length?H.createElement(fi,{as:"ul"},T()):!!o&&H.createElement(lv,{title:el.t("No results found"),description:el.t("Try using different keywords")}))))}i(Mn,"TokenList");var Cv=rl("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),kv=rl("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Tv=rl(gv,{"&:hover":{"& svg":{color:"$secondary550"}}});function Jd(){let[t,e]=nl(""),{deleteCustomToken:o}=y(),n=y().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:l}=z(),{mode:p}=$o({}),u=Sv(),[c,m]=nl(!1),[g,d]=nl(),f=i(k=>{let T=k.target.value;e(T)},"handleSearch"),h=p==="dark",S=n.filter(k=>et(k.symbol,t)||et(k.address||"",t)||et(k.name||"",t)),C=i(()=>{if(g){let k=a?$e(a):null,T=r?$e(r):null,v=$e(g);k===v?l({token:null}):T===v&&s({token:null}),o(g)}m(!1)},"handleDeleteCustomToken");return fe.createElement(ne,{header:{title:Ft.t("Custom Tokens")}},fe.createElement(ie,null,fe.createElement(Cv,null,n.length?fe.createElement(fe.Fragment,null,fe.createElement(Ct,{value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Ft.t("Search Token"),onChange:f}),fe.createElement(Bn,{size:16}),fe.createElement(Mn,{list:S,type:"custom-token",searchedFor:t,showTitle:!1,action:k=>fe.createElement(Tv,{variant:"ghost",onClick:()=>{m(!0),d(k)}},fe.createElement(fv,{size:12,color:"gray"}))})):fe.createElement(kv,null,fe.createElement(yv,{icon:h?fe.createElement(mv,{size:200}):fe.createElement(dv,{size:200}),title:Ft.t("No custom tokens"),description:Ft.t("press the button to add your custom token")})),fe.createElement(Bn,{size:20}),fe.createElement(ol,{type:"primary",variant:"contained",size:"large",onClick:()=>u(D.addCustomTokens)},Ft.t("Add Custom Token"))),fe.createElement(J,{open:c,dismissible:!0,onClose:()=>m(!1),container:A()},fe.createElement(hv,{title:Ft.t("Delete Custom Token"),type:"error",description:Ft.t("Are you sure you want to Delete this Token?")},fe.createElement(Bn,{size:40}),fe.createElement(Bn,{size:10}),fe.createElement(ol,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:C},Ft.t("Yes, Delete it")),fe.createElement(Bn,{size:12}),fe.createElement(ol,{fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},Ft.t("No, Continue"))))))}i(Jd,"CustomTokensPage");import{i18n as Ge}from"@lingui/core";import{useManager as Uv}from"@rango-dev/queue-manager-react";import{Button as ul,darkTheme as zv,Divider as Rt,MessageBox as Qv,NotFound as qv,styled as ml,Typography as Ci}from"@rango-dev/ui";import{TransactionStatus as Dn}from"rango-types";import re,{useMemo as Sf,useState as ki}from"react";import{useNavigate as Hv}from"react-router-dom";import{FilterIcon as Av,Popover as Nv}from"@rango-dev/ui";import wo from"react";import{css as vv,darkTheme as yi,IconButton as xv,styled as Ln}from"@rango-dev/ui";var il=Ln("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${yi} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),Rd=Ln(xv,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${yi} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${yi} &`]:{backgroundColor:"$neutral"},[`& ${il}::before`]:{backgroundColor:"$secondary100",[`.${yi} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),ef=Ln("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),tf=Ln("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),of=vv({display:"flex",justifyContent:"space-between",alignItems:"center"}),nf=Ln("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as rf}from"@lingui/core";import{Button as wv,Divider as af,ListItemButton as bv,Radio as Ev,RadioRoot as Iv,Typography as sf}from"@rango-dev/ui";import rt from"react";function lf(t){let{filterBy:e,onClickItem:o}=t;return rt.createElement(tf,null,rt.createElement("div",{className:of()},rt.createElement(sf,{size:"small",variant:"body"},rf.t("Status")),rt.createElement(wv,{variant:"ghost",size:"xxsmall",onClick:()=>o("")},rf.t("Reset"))),rt.createElement(af,{size:10}),rt.createElement(Iv,{value:e},rt.createElement(nf,null,t.list.map((n,r)=>rt.createElement(bv,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:rt.createElement(rt.Fragment,null,rt.createElement(af,{direction:"horizontal",size:4}),rt.createElement(sf,{size:"medium",variant:"body"},n.title)),start:rt.createElement(Ev,{value:n.id}),onClick:o})))))}i(lf,"FilterSelectorContent");function al(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return wo.createElement("div",null,wo.createElement(Nv,{open:a,align:"end",onOpenChange:o,container:A(),content:wo.createElement(lf,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},wo.createElement(Rd,{variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},wo.createElement(il,{isSelect:!!n},wo.createElement(Av,{size:16,color:"black"}),!!n&&wo.createElement(ef,null)))))}i(al,"FilterSelector");import{i18n as Bv}from"@lingui/core";import{Divider as df,GroupedVirtualizedList as Lv,Skeleton as Pv,SwapListItem as ff,Typography as Dv}from"@rango-dev/ui";import He,{useCallback as gf,useEffect as _v,useRef as $v,useState as Fv}from"react";function pf(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(pf,"calculateGroupsSoFar");import{css as Wv,darkTheme as Mv,styled as Pn}from"@rango-dev/ui";var sl=Wv(),cf=Pn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ll=Pn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${sl}`]:{$$color:"$colors$neutral600",[`.${Mv} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),pl=Pn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),uf=Pn("div",{gap:"$10",display:"flex",flexDirection:"column"}),mf=Pn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var Ov=10;function cl(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=Fv([]),l=$v(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=gf(pf,[]),g=gf(()=>{let d=e.length-l.current;d&&(l.current+=Math.min(d,Ov),s(m(u,l.current)))},[e.length]);if(_v(()=>{r||g()},[r,g]),r){let d=[1,2];return He.createElement(He.Fragment,null,[d,d].map((h,S)=>He.createElement(ll,{key:S},He.createElement(pl,null,He.createElement(Pv,{variant:"text",width:60,size:"small"}),He.createElement(df,{size:16})),He.createElement(df,{size:4}),He.createElement(uf,null,h.map((k,T)=>He.createElement(ff,{isLoading:!0,key:T}))))))}return He.createElement(Lv,{endReached:()=>{l.current<e.length&&g()},groupCounts:a,groupContent:d=>He.createElement(ll,null,He.createElement(pl,null,He.createElement(Dv,{variant:"label",size:"medium",className:sl()},c[d]))),itemContent:(d,f)=>{let h=p[d];if(!h)return null;let S=h.steps[0],C=h.steps[h.steps.length-1];return He.createElement(cf,{key:h.requestId},He.createElement(ff,{requestId:h.requestId,creationTime:h.creationTime,status:h.status,onClick:o,tooltipContainer:A(),onlyShowTime:c[f]===Bv.t("Today"),swapTokenData:{from:{token:{image:S.fromLogo,displayName:S.fromSymbol},blockchain:{image:S.fromBlockchainLogo||""},amount:B(h.inputAmount,6,6),realAmount:h.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:B(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(cl,"HistoryGroupedList");import{i18n as Si}from"@lingui/core";import hf from"dayjs";var yf=i(t=>{let e=new Map([["today",{title:Si.t("Today"),swaps:[]}],["week",{title:Si.t("This week"),swaps:[]}],["month",{title:Si.t("This month"),swaps:[]}],["year",{title:Si.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=hf();t.forEach(p=>{let u=Number(p.creationTime),c=hf(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 Gv=ml("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Vv=ml("div",{display:"flex",justifyContent:"center",alignItems:"center"}),Kv=ml("div",{"._typography":{color:"$neutral700",[`.${zv}&`]:{color:"$neutral900"}}}),jv=[{id:Dn.SUCCESS,title:Ge.t("Complete")},{id:Dn.RUNNING,title:Ge.t("Running")},{id:Dn.FAILED,title:Ge.t("Failed")}],Xv=i((t,e)=>t?.length?t.filter(o=>bt(o.fromBlockchain,e)||bt(o.toBlockchain,e)||bt(o.toSymbol,e)||bt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Cf(){let t=Hv(),{manager:e,state:o}=Uv(),n=mt(e).map(({swap:T})=>T),[r,a]=ki(""),[s,l]=ki(!1),p=!o.loadedFromPersistor,[u,c]=ki(""),[m,g]=ki(!1),d=i(T=>{let v=T.target.value;a(v)},"handleSearch"),f=Sf(()=>!r&&!u?n:n.filter(T=>{let{inputAmount:v,status:x,steps:N,requestId:M}=T;return(!r||bt(v,r)||bt(x,r)||Xv(N,r)||bt(M,r))&&(!u||u===x)}),[n,r,u]),h=!f?.length&&!p,S=i(()=>g(!1),"onCloseModal"),C=i(async()=>{try{await e?.clearQueue(),g(!1)}catch(T){console.log(T)}},"onClear"),k=Sf(()=>!n.some(T=>T.status===Dn.SUCCESS||T.status===Dn.FAILED),[n]);return re.createElement(ne,{header:{title:Ge.t("History"),suffix:re.createElement(Kt,null,re.createElement(ul,{disabled:k,variant:"ghost",size:"xsmall",onClick:()=>g(!0)},re.createElement(Ci,{size:"medium",variant:"label",color:"error"},Ge.t("Clear all Txs"))))}},re.createElement(ie,null,re.createElement(Vv,null,re.createElement(Ct,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Ge.t("Search Transaction"),autoFocus:!0,onChange:d,style:{height:36},value:r}),re.createElement(Rt,{size:10,direction:"horizontal"}),re.createElement(al,{filterBy:u,open:s,onOpenChange:T=>l(T),onClickItem:T=>c(T),list:jv})),re.createElement(Rt,{size:"16"}),re.createElement(Gv,null,h&&re.createElement(mf,null,re.createElement(Rt,{size:32}),re.createElement(qv,{title:r?Ge.t("No results found"):Ge.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Ge.t("Try using different keywords"):Ge.t("Your transaction history is stored locally and will appear here after you start a swap")})),!h&&re.createElement(cl,{list:f,onSwapClick:t,groupBy:yf,isLoading:p}))),re.createElement(J,{open:m,onClose:S,container:A()},re.createElement(Rt,{size:20}),re.createElement(Qv,{type:"warning",title:Ge.t("Clear History"),description:re.createElement(Kv,null,re.createElement(Ci,{variant:"body",size:"medium"},Ge.t("This would clear all succeeded/failed transactions from widget. Do you wish to proceed?")),re.createElement(Rt,{size:"24"}),re.createElement(Ci,{variant:"body",size:"small"},Ge.t("Hint: This does not clear your transaction history on blockchain. Only hides them in this page.")))}),re.createElement(Rt,{size:40}),re.createElement(Rt,{size:10}),re.createElement(ul,{variant:"contained",type:"primary",size:"large",onClick:C},Ge.t("Yes, Clear history")),re.createElement(Rt,{size:10}),re.createElement(ul,{variant:"outlined",type:"primary",size:"large",onClick:S},re.createElement(Ci,{variant:"title",size:"medium",color:"primary"},Ge.t("No, Cancel")))))}i(Cf,"HistoryPage");import{i18n as fx}from"@lingui/core";import{Button as gx,Divider as Ff,styled as hx,WarningIcon as yx}from"@rango-dev/ui";import Sx from"bignumber.js";import Je,{useEffect as Of,useState as Uf}from"react";import{useNavigate as Cx}from"react-router-dom";import{i18n as tx}from"@lingui/core";import{Header as ox}from"@rango-dev/ui";import eo,{useEffect as nx,useState as rx}from"react";import{i18n as Zv}from"@lingui/core";import{Divider as fl,FullExpandedQuote as Jv,Typography as Rv}from"@rango-dev/ui";import Ce from"react";import{styled as dl}from"@rango-dev/ui";var kf=dl("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Tf=dl("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),vf=dl("div",{width:"146px"});import{i18n as _n}from"@lingui/core";import{Select as Yv}from"@rango-dev/ui";import xf from"react";function Ti(t){let{updateQuotePartialState:e,sortStrategy:o}=z(),n=[{value:"SMART",label:_n.t("Smart Routing")},{value:"FEE",label:_n.t("Lowest Fee")},{value:"SPEED",label:_n.t("Fastest Transfer")},{value:"NET_OUTPUT",label:_n.t("Maximum Return")},{value:"PRICE",label:_n.t("Maximum Output")}];return xf.createElement(vf,null,xf.createElement(Yv,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Ti,"SelectStrategy");var wf=3;function $n(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:g,sortStrategy:d,error:f}=z(),{slippage:h,customSlippage:S}=y(),{findToken:C}=y(),k=l||A(),T=!!u&&u.results.length,v=S??h,x=i(w=>{if(!m||!g||!u)return null;let E={requestAmount:u.requestAmount,...w};return Lo(E,{fromToken:m,toToken:g,userSlippage:v,findToken:C})},"getQuoteWarning"),N=f?.type===0||f?.type===1,M=u?.results?wr(d,u?.results):[];return Ce.createElement(Ce.Fragment,null,a&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Tf,null,Ce.createElement(Rv,{size:"xmedium",variant:"title"},Zv.t("Sort by")),Ce.createElement(Ti,{container:k})),Ce.createElement(fl,{size:"10"})),e&&Array.from({length:wf},(w,E)=>Ce.createElement(Ce.Fragment,{key:E},s?Ce.createElement(Jv,{loading:!0}):Ce.createElement(In,{tagHidden:!1,type:"list-item",expanded:!1}),E!==wf-1&&Ce.createElement(fl,{size:16}))),!e&&Ce.createElement(Ce.Fragment,null,T?M.map((w,E)=>{let b=x(w),W=Os(w.swaps),$=M.length-1===E;return Ce.createElement(Ce.Fragment,{key:w.requestId},Ce.createElement(xo,{showModalFee:r,container:k,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:W?.options||null,warning:b,fullExpandedMode:s,onClick:I=>{W||c("warning",b),c("error",W?.options||null),o(I)},type:"list-item"}),!$&&Ce.createElement(fl,{size:16}))}):N&&Ce.createElement(kf,null,Ce.createElement(Sn,{size:s?"large":"small",error:f,fetch:n}))))}i($n,"Quotes");import{darkTheme as ex,styled as bf}from"@rango-dev/ui";var Ef=bf("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${ex} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),If=bf("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var ix=100;function gl(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=rx(!1),p=s?"":"is-hidden",{config:u}=y(),c=u?.variant==="full-expanded",m=on();return nx(()=>{let g=null;return a?g=setTimeout(()=>{l(!0)},ix):(l(!1),g&&clearTimeout(g)),()=>{g&&clearTimeout(g)}},[a]),eo.createElement(Ef,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${Lr()}`,id:_e.EXPANDED_BOX_ID},eo.createElement(ox,{title:tx.t("Routes"),suffix:eo.createElement(eo.Fragment,null,eo.createElement(Ti,{container:m}),eo.createElement(go,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),eo.createElement(If,null,eo.createElement($n,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:on(),onClickOnQuote:n,fullExpandedMode:c})))}i(gl,"ExpandedQuotes");import{i18n as Pf}from"@lingui/core";import{SwapInput as Df}from"@rango-dev/ui";import Fn from"react";import{ReverseIcon as lx}from"@rango-dev/ui";import yl from"react";import{keyframes as ax,styled as Af}from"@rango-dev/ui";var hl=450,sx=ax({"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)"}}),Nf=Af("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Wf=Af("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${sx} ${hl}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 Sl(){let t=z.use.switchFromAndTo();return yl.createElement(Nf,null,yl.createElement(Wf,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},hl),t()}},yl.createElement(lx,{size:12})))}i(Sl,"SwitchFromAndToButton");import{styled as Mf}from"@rango-dev/ui";var Bf=Mf("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Lf=Mf("div",{position:"relative"});function Cl(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:g,outputUsdValue:d,selectedQuote:f}=z(),{connectedWallets:h,getBalanceFor:S}=Z(),C=a?S(a):null,k=sr(C)?.amount??"0",T=s&&a?B(C?.amount,C?.decimals):"0",v=!!s&&Np(h,s.name),x=!ga(f,c,m),N=!ga(f,c,d),M=!m||!d||!d.gt(0)?null:ut(m.toString(),d.toString());return Fn.createElement(Bf,null,Fn.createElement(Lf,null,Fn.createElement(Df,{label:Pf.t("From"),mode:"From",onInputChange:u,balance:k,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:x?void 0:B(m,4,4),realUsdValue:x?void 0:m?.toString(),error:x?te().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:A(),onSelectMaxBalance:()=>{u(T.split(",").join(""))},anyWalletConnected:h.length>0}),Fn.createElement(Sl,null)),Fn.createElement(Df,{sharpBottomStyle:!r&&(!!f||e),label:Pf.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:B(ut(m,d),2,2),warningLevel:Lt(M??0),price:{value:B(g,6,6),usdValue:N?void 0:B(d,4,4),realValue:g?.toString(),realUsdValue:N?void 0:d?.toString(),error:N?te().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:A()}))}i(Cl,"Inputs");import{useCallback as px,useEffect as cx,useRef as ux,useState as mx}from"react";function _f(){let{fetch:t,loading:e,cancelFetch:o}=ci({request:async(n,r)=>await qt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(_f,"useFetchAllQuotes");var dx=600;function vi({refetchQuote:t}){let{fetch:e,cancelFetch:o}=_f(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=y().config,s=Z.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:m,sortStrategy:g,resetQuote:d,error:f,warning:h,setSelectedQuote:S,updateQuotePartialState:C}=z(),{slippage:k,customSlippage:T,affiliatePercent:v,affiliateRef:x,affiliateWallets:N,fetchStatus:M}=y(),w=y().getLiquiditySources(),E=y().getDisabledLiquiditySources(),b=y().excludeLiquiditySources(),{findToken:W}=y(),[$,I]=mx(!0),R=ux(u),ee=T??k,L=!l||!p||so(l,p)||!sn(u),V=i(ae=>{I(ae)},"resetState"),le=i(ae=>{let{fromToken:ge,toToken:xe,inputAmount:U,liquiditySources:Ke,excludeLiquiditySources:xt,disabledLiquiditySources:lt,slippage:wt,affiliateRef:_,affiliatePercent:Q,affiliateWallets:G}=ae;if($||V(!0),!L&&ge&&xe){d();let pe=Cc({fromToken:ge,toToken:xe,inputAmount:U,liquiditySources:Ke,excludeLiquiditySources:xt,disabledLiquiditySources:lt,wallets:s,slippage:wt,affiliateRef:_,affiliatePercent:Q,affiliateWallets:G,enableCentralizedSwappers:a});Hp("experimentalRoute",r)&&(pe.experimental=!0),e(pe).then(ce=>{let de=wr(g,ce.results),he=Lc(m,de,ce.requestAmount);I(!1),C("quotes",ce),S(he),ui({diagnosisMessages:ce.diagnosisMessages,requestId:he?.requestId||"",swaps:he?.swaps});let Xn=uo(he)||xe?.usdPrice,io=mn(he)||ge?.usdPrice,ji=he&&Lo(he,{fromToken:{...ge,usdPrice:io},toToken:{...xe,usdPrice:Xn},userSlippage:ee,findToken:W});C("warning",ji)}).catch(ce=>{let{error:de}=mi(ce);(de?.type===0||de?.type===1)&&d(),de?.type!==2&&(C("error",de),I(!1))})}},"fetch"),Y=px(fp(ae=>{le(ae)},dx),[L]);return cx(()=>{if(!t){I(!1);return}if(M!=="success")return;if(L){I(!1),(m||f||h)&&d();return}if(!sn(u)||c?.eq(0)){V(!1),o();return}d(),V(!0);let ae=le;return R.current&&R.current!=u&&(ae=Y),R.current=u,ae({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:b,disabledLiquiditySources:E,slippage:ee,affiliateRef:x,affiliatePercent:v,affiliateWallets:N}),o},[M,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,L,w?.length,n,E.length,ee,x,v,JSON.stringify(N)]),{fetch:()=>le({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:b,disabledLiquiditySources:E,slippage:ee,affiliateRef:x,affiliatePercent:v,affiliateWallets:N}),loading:$}}i(vi,"useSwapInput");function $f(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};ye.emit("uiEvent",{type:t.type,payload:n}),o||e()}i($f,"emitPreventableEvent");var kx=hx("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),Tx=300;function zf(){let t=Cx(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:g}=z(),[d,f]=Uf(!1),{isLargeScreen:h,isExtraLargeScreen:S}=oi(),{fetch:C,loading:k}=vi({refetchQuote:a}),{config:T,fetchStatus:v}=y(),{connectedWallets:x}=Z(),{isActiveTab:N}=se(),[M,w]=Uf(!1),b=dc({fetchMetaStatus:v,fetchingQuote:k,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),W=_p(h,S,T?.variant),$=!!n&&!!e&&!!o&&new Sx(n).gt(0)&&!Ac(e,o),I=$&&v==="success"&&k,oe=(!W||W&&p?.results.length)&&(l||s);Of(()=>{c(),g("refetchQuote",!0)},[]),Of(()=>{f($)},[$]);let L=(r||s)&&!M?C:void 0,V=i(Y=>{W&&d?(f(!1),setTimeout(()=>{t(Y)},Tx)):t(Y)},"onHandleNavigation"),le=i(Y=>{r?.requestId!==Y.requestId&&(w(!1),u(Y))},"onClickOnQuote");return Je.createElement(kx,null,Je.createElement(ne,{height:"auto",footer:Je.createElement(gx,{type:"primary",size:"large",disabled:b.disabled||!N,prefix:b.action==="confirm-warning"&&Je.createElement(yx,null),fullWidth:!0,onClick:()=>{b.action==="connect-wallet"?$f({type:"clickConnectWallet"},()=>V(D.wallets)):b.action==="confirm-warning"?w(!0):V(D.confirmSwap)}},b.title),header:{onWallet:()=>{V(D.wallets)},hasBackButton:!1,title:T.title||fx.t("Swap"),suffix:Je.createElement(go,{hidden:W?["refresh"]:void 0,onClickRefresh:L,onClickHistory:()=>V(D.swaps),onClickSettings:()=>{V(D.settings)}})}},Je.createElement(ie,null,Je.createElement(Cl,{fetchingQuote:I,fetchMetaStatus:v,isExpandable:W,onClickToken:Y=>{V(Y==="from"?D.fromSwap:D.toSwap)}}),Je.createElement(Ff,{size:"2"}),W?null:Je.createElement(xo,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{g("refetchQuote",!1),V(D.routes)}:void 0}),oe?Je.createElement(Je.Fragment,null,Je.createElement(Ff,{size:"10"}),Je.createElement(kn,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:C,showWarningModal:M,confirmationDisabled:!N,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),m(!0),V(D.confirmSwap)},onChangeSettings:()=>V(D.settings)})):null)),W?Je.createElement(gl,{loading:I,onClickOnQuote:le,fetch:C,onClickRefresh:L,isVisible:d}):null)}i(zf,"Home");import{i18n as Qf}from"@lingui/core";import{Alert as vx,Divider as xx,List as wx,ListItemButton as bx,Radio as Ex,RadioRoot as Ix,Typography as Ax}from"@rango-dev/ui";import Mt from"react";function to(){let{setLanguage:t,language:e,config:o}=y(),n=Kp,r=o?.language||Mo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Mo),resetLanguage:()=>t(null)}}i(to,"useLanguage");function qf(){let{activeLanguage:t,changeLanguage:e,languages:o}=to(),n=Ye(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:Mt.createElement(Ax,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Mt.createElement(Ex,{value:s}),start:Mt.createElement(p,null)}});return Mt.createElement(ne,{header:{title:Qf.t("Language")}},Mt.createElement(ie,null,Mt.createElement(vx,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),Mt.createElement(xx,{size:"8"}),Mt.createElement(Ix,{value:t},Mt.createElement(wx,{type:Mt.createElement(bx,{title:Qf.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(qf,"LanguagePage");import{i18n as Ot}from"@lingui/core";import{Button as Lx,Checkbox as Px,Image as Dx,ListItemButton as _x,NotFound as $x,Typography as Fx}from"@rango-dev/ui";import Ve,{useState as Ox}from"react";import{Checkbox as Mx,Skeleton as Gf}from"@rango-dev/ui";import Un from"react";import{styled as kl}from"@rango-dev/ui";var On=kl("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Tl=kl("div",{width:80,display:"flex",justifyContent:"flex-end"}),vl=kl("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as Nx,styled as Wx}from"@rango-dev/ui";var Hf=Wx(Nx,{height:61});var Bx=30;function xl(){return Un.createElement(On,null,Array.from(Array(Bx),(t,e)=>Un.createElement(Hf,{hasDivider:!0,key:e,start:Un.createElement(Gf,{variant:"circular",width:35,height:35}),title:Un.createElement(Gf,{variant:"text",size:"large",width:90}),end:Un.createElement(Mx,{checked:!1})})))}i(xl,"LoadingLiquiditySourceList");function wl({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=Ox(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),p=fr(o,n),u={Exchanges:Ot.t("Exchanges"),Bridges:Ot.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(C=>c.includes(C.type)),g=m.length===m.filter(C=>C.selected).length,d=i(()=>{m.forEach(C=>{g?s(C.groupTitle):C.selected||s(C.groupTitle)})},"toggleAllSources"),f=m.map(C=>{let{selected:k,groupTitle:T,logo:v}=C;return{start:Ve.createElement(Dx,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(T)},end:Ve.createElement(Px,{checked:k,disabled:l}),title:Ve.createElement(Fx,{variant:"title",size:"xmedium"},Ot.t(T)),...C}}),h=i(C=>{let k=C.target.value;a(k)},"handleSearch"),S=f;return r&&(S=f.filter(C=>bt(C.groupTitle,r))),Ve.createElement(ne,{header:{title:Ot.t(t),suffix:Ve.createElement(Tl,null,Ve.createElement(Lx,{variant:"ghost",size:"xsmall",onClick:d},g?Ot.t("Deselect all"):Ot.t("Select all")))}},Ve.createElement(ie,{view:!0},Ve.createElement(Ct,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Ot.t("Search {sourceType}",{sourceType:u[t]}),onChange:h}),e==="loading"&&Ve.createElement(xl,null),!S.length&&r?Ve.createElement(vl,null,Ve.createElement($x,{title:Ot.t("No results found"),description:Ot.t("Try using different keywords")})):e==="success"&&Ve.createElement(On,{disabled:l},S.map(C=>{let{groupTitle:k,...T}=C;return Ve.createElement(Ve.Fragment,{key:C.id},Ve.createElement(_x,{style:{height:"61px"},...T,selected:!1,hasDivider:!0}))}))))}i(wl,"LiquiditySourcePage");import{i18n as Ux}from"@lingui/core";import xi from"react";import{useNavigate as zx}from"react-router-dom";function Vf(){let t=zx(),e=Ye(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=z(),{fetch:l,loading:p}=vi({refetchQuote:n}),u=i(g=>{r(g),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${D.settings}`,m=`../${D.wallets}`;return xi.createElement(ne,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:Ux.t("Routes"),suffix:xi.createElement(go,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},xi.createElement(ie,null,xi.createElement($n,{fetch:l,loading:p,onClickOnQuote:u})))}i(Vf,"RoutesPage");import{i18n as Rf}from"@lingui/core";import{Divider as eg,getCategoriesCount as Zx,SelectableCategoryList as Jx}from"@rango-dev/ui";import Ut,{useState as tg}from"react";import{useNavigate as Rx}from"react-router-dom";import{i18n as bl}from"@lingui/core";import{Divider as Gx,Image as Vx,ListItemButton as Kx,NotFound as jx,Typography as Jf}from"@rango-dev/ui";import it,{useEffect as Xx,useState as Yx}from"react";var Kf=i((t,e,o)=>t.filter(n=>Rn(n.type,o)).filter(n=>et(n.name,e)||et(n.displayName,e)),"filterBlockchains");import{ImageContainer as Qx,styled as jf}from"@rango-dev/ui";var Xf=jf("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),wi=jf(fn,{padding:0,margin:0,listStyle:"none",[`& ${Qx}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as qx,Skeleton as Yf}from"@rango-dev/ui";import bi from"react";var Hx=20;function Zf(){return bi.createElement(wi,null,Array.from(Array(Hx),t=>bi.createElement(qx,{key:t,hasDivider:!0,start:bi.createElement(Yf,{variant:"circular",width:35,height:35}),title:bi.createElement(Yf,{variant:"text",size:"large",width:90})})))}i(Zf,"LoadingBlockchainList");function El(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,l]=Yx(e),{fetchStatus:p}=y();Xx(()=>{l([...Kf(e,o,r)])},[e,o,r]);let u=i(()=>!s.length&&o?it.createElement(jx,{title:bl.t("No results found"),description:bl.t("Try using different keywords")}):it.createElement(wi,{as:"ul",key:`${r}-${o}`},s.map(c=>it.createElement(Kx,{key:`${c.name}-${c.chainId}`,hasDivider:!0,onClick:()=>n(c),start:it.createElement(Vx,{src:c.logo,size:30}),title:it.createElement(Jf,{variant:"title",size:"medium"},c.displayName),id:c.chainId}))),"renderList");return it.createElement(it.Fragment,null,a&&it.createElement(it.Fragment,null,it.createElement(Jf,{variant:"label",size:"large"},bl.t("Select Blockchain")),it.createElement(Gx,{size:4})),it.createElement(Xf,null,p==="loading"&&it.createElement(Zf,null),p==="success"&&u()))}i(El,"BlockchainList");function Ei(t){let{type:e}=t,o=Ye(),[n,r]=tg(""),[a,s]=tg("ALL"),l=z.use.setToBlockchain(),p=z.use.setFromBlockchain(),{fetchStatus:u}=y(),c=Rx(),m=y().blockchains({type:e}),g=Zx(m),d=!t.hideCategory&&g!==1;return Ut.createElement(ne,{header:{title:Rf.t("Select Blockchain")}},Ut.createElement(ie,{view:!0},d&&Ut.createElement(Ut.Fragment,null,Ut.createElement(Jx,{setCategory:s,category:a,blockchains:m,isLoading:u==="loading"}),Ut.createElement(eg,{size:24})),Ut.createElement(Ct,{value:n,autoFocus:!0,placeholder:Rf.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Ut.createElement(eg,{size:16}),Ut.createElement(El,{list:m,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:f=>{e==="custom-token"?c(`..?blockchain=${f.name}`,{replace:!0}):(e==="source"?p(f):l(f),o())}})))}i(Ei,"SelectBlockchainPage");import{i18n as Ai}from"@lingui/core";import{Divider as sg}from"@rango-dev/ui";import bo,{useState as sw}from"react";import{useNavigate as lw}from"react-router-dom";import{i18n as Nl}from"@lingui/core";import{BlockchainsChip as Ii,Divider as ig,Image as ag,Skeleton as rw,Tooltip as iw,Typography as Wl}from"@rango-dev/ui";import Pe from"react";import{useEffect as ow}from"react";var og=["ETH","COSMOS","OSMOSIS"];function Il(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(ew),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(tw(s)),r=n.splice(a)}return{list:n,more:r}}i(Il,"prepare");function ew(t,e){let o=og,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(ew,"sortByMostUsedBlockchains");function tw(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(tw,"generateSortByPreferredBlockchainsFor");function ng(t,e){return!!e.list.find(o=>o.name===t)}i(ng,"isInVisibleList");function Al(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();ow(()=>{if(e?.selected){let a=Il(t,o,e);ng(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Il(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Al,"usePrepareBlockchainList");import{styled as nw}from"@rango-dev/ui";var rg=nw("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var aw=12;function Ml(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Al(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),p=z.use.resetToBlockchain(),u=z.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,g=!m&&c;return Pe.createElement(Pe.Fragment,null,Pe.createElement(ig,{size:12}),Pe.createElement(Wl,{variant:"label",size:"large"},Nl.t("Select Blockchain")),Pe.createElement(ig,{size:12}),Pe.createElement(rg,null,l==="loading"&&Array.from(Array(aw),d=>Pe.createElement(rw,{key:d,variant:"rounded",height:50})),l==="success"&&Pe.createElement(Pe.Fragment,null,Pe.createElement(Ii,{selected:!n,onClick:()=>{o==="from"?u():p()}},Pe.createElement(Wl,{variant:"body",size:"xsmall",color:"secondary500"},Nl.t("All"))),s.list.map(d=>Pe.createElement(iw,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:A()},Pe.createElement(Ii,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},Pe.createElement(ag,{src:d.logo,size:30})))),m?Pe.createElement(Ii,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Pe.createElement(ag,{src:s.more[0].logo,size:30})):null,g?Pe.createElement(Ii,{onClick:a,key:"more-blockchains"},Pe.createElement(Wl,{variant:"body",size:"xsmall",color:"secondary500"},Nl._("More +{count}",{count:s.more.length}))):null)))}i(Ml,"BlockchainsSection");function Bl(t){let{type:e}=t,o=lw(),n=Ye(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=z(),c=Z.use.getBalanceFor(),[m,g]=sw(""),f=(e==="source"?r:a)?.name??"",h=y().blockchains({type:e}),S=y().tokens({type:e,blockchain:f,searchFor:m,getBalanceFor:c}),C=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),k=i(v=>{e==="source"?s({token:v,meta:{blockchains:h,tokens:S}}):l({token:v,meta:{blockchains:h,tokens:S}})},"updateToken"),T={source:Ai.t("Source"),destination:Ai.t("Destination")};return bo.createElement(ne,{header:{title:Ai.t("Swap {type}",{type:T[e]})}},bo.createElement(ie,null,bo.createElement(Ml,{blockchains:h,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(D.blockchains),onChange:v=>{C(v)}}),bo.createElement(sg,{size:24}),bo.createElement(Ct,{value:m,autoFocus:!0,placeholder:Ai.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>g(""),onChange:v=>g(v.target.value)}),bo.createElement(sg,{size:16}),bo.createElement(Mn,{list:S,selectedBlockchain:f,searchedFor:m,type:e,onChange:v=>{k(v);let x=h.find(N=>v.blockchain===N.name);x&&C(x),n()}})))}i(Bl,"SelectSwapItemsPage");import{i18n as Dl}from"@lingui/core";import{Alert as Pw,Button as Dw,styled as _w}from"@rango-dev/ui";import Eo from"react";import{useInRouterContext as $w,useSearchParams as Fw}from"react-router-dom";import{i18n as dg}from"@lingui/core";import{Divider as fg,InfoIcon as mw,SlippageIcon as dw,TextField as fw,Tooltip as gw,Typography as gg}from"@rango-dev/ui";import at from"react";import{Chip as pw,styled as zn,TextField as cw}from"@rango-dev/ui";var lg=zn("div",{paddingTop:"$5",padding:"$10 $5"}),pg=zn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${cw}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),cg=zn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Ni=zn("div",{maxWidth:"280px",padding:"$10"}),ug=zn(pw,{width:"61px",flexShrink:0});import{i18n as Ll}from"@lingui/core";import{Typography as uw}from"@rango-dev/ui";import Qn from"react";function mg(){return Qn.createElement(Ni,null,Qn.createElement(uw,{variant:"label",size:"medium",color:"neutral700"},Ll.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),Qn.createElement("br",null),Qn.createElement("br",null),Qn.createElement("b",null,Ll.t("Warning")),":",Ll.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(mg,"SlippageTooltipContent");function Pl(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return at.createElement(lg,null,at.createElement(cg,null,at.createElement(dw,{size:16,color:"gray"}),at.createElement(fg,{direction:"horizontal",size:4}),at.createElement(gg,{variant:"title",size:"xmedium"},dg.t("Slippage tolerance per swap")),at.createElement(fg,{direction:"horizontal",size:4}),at.createElement(gw,{container:A(),side:"top",sideOffset:4,content:at.createElement(mg,null)},at.createElement(mw,{color:"gray"}))),at.createElement(pg,null,jp.map((r,a)=>{let s=`slippage-${a}`;return at.createElement(ug,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),at.createElement(fw,{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>=Jp&&s<=Zp?n(s):n(null)},suffix:o&&at.createElement(gg,{variant:"body",size:"small"},"%"),placeholder:dg.t("Custom")})))}i(Pl,"Slippage");import{i18n as Tt}from"@lingui/core";import{AutoThemeIcon as hg,BridgesIcon as hw,ChevronRightIcon as Wi,DarkModeIcon as yg,Divider as qn,ExchangeIcon as yw,InfinityIcon as Sw,InfoIcon as Cw,LanguageIcon as kw,LightModeIcon as Sg,List as Tw,ListItem as vw,ListItemButton as xw,Skeleton as ww,styled as bw,Switch as Ew,Tabs as Iw,TargetIcon as Aw,Tooltip as Nw,Typography as Re}from"@rango-dev/ui";import P from"react";import{useNavigate as Ww}from"react-router-dom";var Mw=bw("div",{width:"202px",height:"$40"}),Bw=[{id:"light",icon:P.createElement(Sg,{color:"black",size:24}),tooltip:P.createElement(Re,{size:"xsmall",variant:"body"},Tt.t("Light"))},{id:"dark",icon:P.createElement(yg,{color:"black",size:24}),tooltip:P.createElement(Re,{size:"xsmall",variant:"body"},Tt.t("Dark"))},{id:"auto",icon:P.createElement(hg,{color:"black",size:24}),tooltip:P.createElement(Re,{size:"xsmall",variant:"body"},Tt.t("Auto"))}],Lw=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return P.createElement(hg,{...e});case"dark":return P.createElement(yg,{...e});default:return P.createElement(Sg,{...e})}},"getThemeIcon");function Cg(){let t=Ww(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=to(),s=a.find(L=>L.local===r)?.label,l=y().fetchStatus,p=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:c}}=y(),m=y().customTokens(),g=je("theme",c),d=je("liquiditySource",c),f=je("language",c),h=je("customTokens",c),S=y().infiniteApprove,C=y().toggleInfiniteApprove,k=fr(p,u),T=k.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),v=T.length,x=T.filter(L=>L.selected).length,N=k.filter(L=>L.type==="DEX"),M=N.length,w=N.filter(L=>L.selected).length,E=i((L,V)=>{switch(l){case"loading":return P.createElement(ww,{variant:"text",size:"medium",width:50});case"failed":return P.createElement(Re,{variant:"body",size:"medium",color:"$error500"},Tt.t("Loading failed"));default:return P.createElement(Re,{variant:"body",size:"medium"},`${L} / ${V}`)}},"handleSwapperEndItem"),b={id:"bridge-item",title:P.createElement(Re,{variant:"title",size:"xmedium"},Tt.t("Bridges")),end:P.createElement(P.Fragment,null,E(x,v),P.createElement(qn,{direction:"horizontal",size:8}),P.createElement(Wi,{color:"black"})),onClick:()=>t(D.bridges),start:P.createElement(hw,{color:"gray",size:16})},W={id:"exchange-item",title:P.createElement(Re,{variant:"title",size:"xmedium"},Tt.t("Exchanges")),end:P.createElement(P.Fragment,null,E(w,M),P.createElement(qn,{direction:"horizontal",size:8}),P.createElement(Wi,{color:"black"})),start:P.createElement(yw,{color:"gray",size:16}),onClick:()=>t(D.exchanges)},$={id:"custom-tokens-item",title:P.createElement(Re,{variant:"title",size:"xmedium"},Tt.t("Custom Tokens")),end:P.createElement(P.Fragment,null,P.createElement(Re,{variant:"body",size:"medium"},`${m.length}`),P.createElement(qn,{direction:"horizontal",size:8}),P.createElement(Wi,{color:"black"})),start:P.createElement(Aw,{color:"gray",size:16}),onClick:()=>t(D.customTokens)},I={id:"language-item",title:P.createElement(Re,{variant:"title",size:"xmedium"},Tt.t("Language")),start:P.createElement(kw,{color:"gray",size:16}),end:P.createElement(P.Fragment,null,P.createElement(Re,{variant:"body",size:"medium"},s),P.createElement(qn,{direction:"horizontal",size:8}),P.createElement(Wi,{color:"black"})),onClick:()=>t(D.languages)},R={id:"infinite-approval-item",title:P.createElement(P.Fragment,null,P.createElement(Re,{variant:"title",size:"xmedium"},Tt.t("Infinite approval")),P.createElement(qn,{direction:"horizontal",size:4}),P.createElement(Nw,{side:"top",sideOffset:4,container:A(),content:P.createElement(Ni,null,P.createElement(Re,{variant:"label",size:"medium",color:"neutral700"},Tt.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.")))},P.createElement(Cw,{color:"gray"}))),start:P.createElement(Sw,{color:"gray",size:16}),end:P.createElement(Ew,{checked:S}),onClick:C},ee={id:"theme-item",type:P.createElement(vw,null),title:P.createElement(Re,{variant:"title",size:"xmedium"},Tt.t("Theme")),end:P.createElement(Mw,null,P.createElement(Iw,{container:A(),items:Bw,value:n,onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:Lw(n)},oe=d?[]:[b,W];return h||oe.push($),f||oe.push(I),oe.push(R),!e?.singleTheme&&!g&&oe.push(ee),P.createElement(Tw,{type:P.createElement(xw,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:oe})}i(Cg,"SettingsLists");var Ow=_w("div",{paddingLeft:"$8"});function kg(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=Fw(),r=$w(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Eo.createElement(ne,{header:{title:Dl.t("Settings")}},Eo.createElement(ie,null,o&&Eo.createElement(Pw,{type:"info",variant:"alarm",title:Dl.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:Eo.createElement(Ow,null,Eo.createElement(Dw,{type:"secondary",size:"small",onClick:a},Dl.t("Reset")))}),Eo.createElement(Pl,null),Eo.createElement(Cg,null)))}i(kg,"SettingsPage");import{i18n as Eb}from"@lingui/core";import{cancelSwap as Ib}from"@rango-dev/queue-manager-rango-preset";import{useManager as Ab}from"@rango-dev/queue-manager-react";import{Alert as Nb}from"@rango-dev/ui";import Jl from"react";import{useParams as Wb}from"react-router-dom";import{i18n as st}from"@lingui/core";import{getCurrentBlockchainOfOrNull as sb,getCurrentStep as lb,getRelatedWalletOrNull as pb}from"@rango-dev/queue-manager-rango-preset";import{Button as Zg,CopyIcon as cb,Divider as ub,DoneIcon as mb,IconButton as db,QuoteCost as fb,RangoExplorerIcon as gb,StepDetails as hb,Tooltip as Jg,Typography as Io,useCopyToClipboard as yb}from"@rango-dev/ui";import{useWallets as Sb}from"@rango-dev/wallets-react";import Rg from"bignumber.js";import{PendingSwapNetworkStatus as Oi}from"rango-types";import K,{useEffect as eh,useRef as Cb,useState as th}from"react";import{useNavigate as kb}from"react-router-dom";import{i18n as oo}from"@lingui/core";var Uw=[oo.t("Sunday"),oo.t("Monday"),oo.t("Tuesday"),oo.t("Wednesday"),oo.t("Thursday"),oo.t("Friday"),oo.t("Saturday")];function Tg(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?oo.t("Today"):`${Uw[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Tg,"timeSince");function vg(t){return t.finishTime?Tg(parseInt(t.finishTime)):Tg(parseInt(t.creationTime))}i(vg,"getSwapDate");import{PendingSwapNetworkStatus as Li}from"rango-types";import Pi from"react";import{i18n as Mi}from"@lingui/core";import{Button as xg,Divider as _l,MessageBox as zw}from"@rango-dev/ui";import no from"react";var wg=i(({onCancel:t,onClose:e})=>no.createElement(no.Fragment,null,no.createElement(_l,{size:20}),no.createElement(zw,{type:"error",title:Mi.t("Cancel Swap"),description:Mi.t("Are you sure you want to cancel this swap?")}),no.createElement(_l,{size:32}),no.createElement(xg,{variant:"contained",type:"primary",size:"large",onClick:t},Mi.t("Yes, Cancel it")),no.createElement(_l,{size:12}),no.createElement(xg,{variant:"outlined",type:"primary",size:"large",onClick:e},Mi.t("No, Continue"))),"CancelContent");import{i18n as Bi}from"@lingui/core";import{Button as bg,Divider as $l,MessageBox as Qw,Typography as qw}from"@rango-dev/ui";import zt from"react";var Eg=i(({onDelete:t,onClose:e})=>zt.createElement(zt.Fragment,null,zt.createElement($l,{size:20}),zt.createElement(Qw,{type:"error",title:Bi.t("Delete Transaction"),description:Bi.t("Are you sure you want to delete this swap?")}),zt.createElement($l,{size:32}),zt.createElement(bg,{variant:"contained",type:"primary",size:"large",onClick:t},Bi.t("Yes, Delete it")),zt.createElement($l,{size:12}),zt.createElement(bg,{variant:"outlined",type:"primary",size:"large",onClick:e},zt.createElement(qw,{variant:"title",size:"medium",color:"primary"},Bi.t("No, Cancel")))),"DeleteContent");import{i18n as Fl}from"@lingui/core";import{PendingSwapNetworkStatus as Ol}from"rango-types";var Ul={[Ol.WaitingForNetworkChange]:{type:"loading",title:Fl.t("Change Network")},[Ol.WaitingForConnectingWallet]:{type:"warning",title:Fl.t("Connect Wallet")},[Ol.NetworkChanged]:{type:"success",title:Fl.t("Network Changed")}};import{warn as Hw}from"@rango-dev/logging-core";import{MessageBox as Gw,Wallet as Vw}from"@rango-dev/ui";import{useWallets as Kw}from"@rango-dev/wallets-react";import Ro,{useState as jw}from"react";import{styled as Ig}from"@rango-dev/ui";var Ag=Ig("div",{display:"flex",justifyContent:"center"}),D2=Ig("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Ng=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[l,p]=jw(),{getWalletInfo:u,state:c}=Kw(),m=n?.walletType,g=m?ln(c(m)):null,d=m?u(m):null,f=a&&!!m&&!!g&&!!d,{list:h}=ht(),S=i(()=>{if(m){let C=h.find(k=>k.type===m);C?p(C):Hw(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${C}`))}},"handleWalletItemClick");return Ro.createElement(Ro.Fragment,null,Ro.createElement(Gw,{type:e,title:o,description:r}),f&&Ro.createElement(Ag,null,Ro.createElement(Vw,{container:A(),title:d.name,image:d.img,type:m,state:g,link:d.installLink,disabled:s,onClick:S})),Ro.createElement(So,{wallet:l,onClose:()=>{p(void 0)}}))},"WalletStateContent");function zl(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(J,{open:!!e,onClose:o,container:document.getElementById(_e.SWAP_BOX_ID)||document.body},p&&Pi.createElement(Ng,{type:Ul[e].type,title:Ul[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==Li.WaitingForNetworkChange}),e==="delete"&&Pi.createElement(Eg,{onClose:o,onDelete:n}),e==="cancel"&&Pi.createElement(wg,{onClose:o,onCancel:r}))}i(zl,"SwapDetailsModal");import{i18n as Hn}from"@lingui/core";import{Button as Ql,Divider as Di,MessageBox as Wg,TokenAmount as Xw,Typography as ql}from"@rango-dev/ui";import Oe from"react";import{useNavigate as Yw}from"react-router-dom";function Hl(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:g}=t,d=Yw();return Oe.createElement(J,{open:e,onClose:o,container:document.getElementById(_e.SWAP_BOX_ID)||document.body},n==="success"?Oe.createElement(Wg,{type:"success",title:Hn.t("Swap Successful")},Oe.createElement(Xw,{direction:"vertical",tooltipContainer:A(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Oe.createElement(Di,{size:12}),Oe.createElement(ql,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Oe.createElement(Wg,{type:"error",title:Hn.t("Transaction Failed"),description:m}),Oe.createElement(Di,{size:32}),n==="success"&&Oe.createElement(Ql,{variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},Oe.createElement(ql,{variant:"title",size:"medium",color:"neutral100"},Hn.t("Done"))),Oe.createElement(Di,{size:12}),g&&Oe.createElement(Oe.Fragment,null,Oe.createElement(Ql,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(g,"_blank")},Hn.t("Diagnosis")),Oe.createElement(Di,{size:12})),Oe.createElement(Ql,{variant:"outlined",type:"primary",size:"large",onClick:o},Oe.createElement(ql,{variant:"title",size:"medium",color:"primary"},Hn.t("See Details"))))}i(Hl,"SwapDetailsCompleteModal");import ab from"react";import{i18n as ob}from"@lingui/core";import{Alert as Kg,IconButton as nb,LinkIcon as rb}from"@rango-dev/ui";import ro,{Fragment as ib}from"react";import{Alert as Jw,ChevronDownIcon as Rw,IconButton as eb}from"@rango-dev/ui";import tn,{useState as tb}from"react";import{css as Gn,darkTheme as Mg,styled as Qt,Typography as Zw}from"@rango-dev/ui";var Bg=Qt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),_i=Qt("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Mg} &`]:{color:"$secondary500"}}}}}),Lg=Qt(fn,{padding:"$0 $20 $20 $20"}),S5=Qt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Pg=Qt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),C5=Qt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),en=Gn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Mg} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Dg=Gn({padding:"$5 0"}),$i=Gn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),_g=Gn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),$g=Gn({width:"100%",padding:"0 $20 $10"}),Fg=Qt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Og=Qt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Fi=Qt(Zw,{wordBreak:"break-word"});import{styled as Gl}from"@rango-dev/ui";var Ug=Gl("div",{display:"flex",flexDirection:"column",gap:"$10"}),zg=Gl("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Qg=Gl("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function qg(t){let{message:e}=t,[o,n]=tb(!1);return tn.createElement(Jw,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&tn.createElement(eb,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},tn.createElement(zg,{rotated:o},tn.createElement(Rw,{size:12,color:"gray"}))),footer:tn.createElement(Qg,{open:o},tn.createElement(Fi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(qg,"FailedAlert");import{i18n as Hg}from"@lingui/core";import{Alert as Vl,Button as Gg}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Kl}from"rango-types";import Vn from"react";function Vg(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Vn.createElement(Vl,{type:"warning",title:n.shortMessage,action:Vn.createElement(Gg,{size:"xxsmall",type:"warning",onClick:()=>{o(Kl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Hg.t("Change"))}):r===Kl.WaitingForConnectingWallet?Vn.createElement(Vl,{type:"warning",title:n.shortMessage,action:Vn.createElement(Gg,{size:"xxsmall",type:"warning",onClick:()=>{o(Kl.WaitingForConnectingWallet)}},Hg.t("Connect"))}):Vn.createElement(Vl,{type:"warning",title:n.shortMessage})}i(Vg,"WarningAlert");function jl(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=un(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return ro.createElement(Ug,null,a.explorerUrl?.map((m,g,d)=>{let f=g+m.url,h=g===d.length-1,S=(h&&u||p)&&!c,C=h&&a.status==="failed";return ro.createElement(ib,{key:f},ro.createElement(Kg,{type:h&&(S&&"loading"||C&&"error")||"success",title:m.description?`${m.description} Tx`:ob.t("View transaction"),action:m.url&&ro.createElement(nb,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},ro.createElement(rb,{size:12}))}))}),c&&ro.createElement(Kg,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&ro.createElement(Vg,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&ro.createElement(qg,{message:r}))}i(jl,"SwapDetailsAlerts");var jg=2e3;var Xg=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:pt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:B(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:pt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:B(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:nn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:pt(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:pt(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:nn(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:ab.createElement(jl,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Yg(t){if(un(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(Yg,"getStepState");function Xl(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Sb(),p=y().blockchains(),u=y().swappers(),{findToken:c}=y(),m=z.use.retry(),g=se.use.isActiveTab(),d=kb(),[f,h]=yb(jg),S=Cb(null),[C,k]=th(null),[T,v]=th(null),x=i(()=>{r(),k(null)},"onCancel"),N=we.use.getNotifications(),M=we.use.removeNotification(),w=N(),E=lb(e),b=E?.networkStatus;eh(()=>{w.find(he=>he.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),M(e.requestId)):T&&v(null))},[e.status,e.requestId]),eh(()=>{L?k(Oi.WaitingForNetworkChange):b===Oi.WaitingForConnectingWallet||b===Oi.NetworkChanged?k(b):k(null)},[b]);let W=bc(e),$=E?sb(e,E):null,I=E?pb(e,E):null,R=vg(e),ee=Ec(e),oe=i(de=>!!l(de)?.mobileWallet,"isMobileWallet"),L=b===Oi.WaitingForNetworkChange&&!!$&&!!I?.walletType&&(oe(I.walletType)||a(I.walletType,$)),V=L?s.bind(null,I.walletType,$):void 0,le=wc(e,E),Y=Xg({swap:e,switchNetwork:V,showNetworkModal:b,setNetworkModal:k,message:le,blockchains:p,swappers:u}),ae=Y.length,[ge,xe]=[e.steps[0],e.steps[ae-1]],U=xe.outputAmount||xe.expectedOutputAmountHumanReadable,Ke=e.steps.reduce((de,he)=>de+parseFloat(he.feeInUsd||""),0),xt=e.steps.find(de=>de.diagnosisUrl)?.diagnosisUrl,lt=B(parseFloat(U||"0")*(xe.toUsdPrice||0),4,4),wt=B(parseFloat(e.inputAmount)*(ge.fromUsdPrice||0),4,4),_=U?new Rg(U).multipliedBy(xe.toUsdPrice||0).toString():"",Q=new Rg(e.inputAmount).multipliedBy(ge.fromUsdPrice||0).toString(),G=ut(wt,lt),pe=le.detailedMessage.content||le.shortMessage,ce=e.status==="success"?st.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:B(U,6,6),token:Y[ae-1].to.token.displayName,conciseAddress:lr(e.wallets[Y[ae-1].to.chain.displayName]?.address||""),chain:Y[ae-1].to.chain.displayName}}):K.createElement(Og,null,K.createElement(Io,{variant:"body",size:"medium",color:"neutral700",align:"center"},pe?"":st.t("Transaction was not sent."),W?`${st.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:W.outputAmount,symbol:W.symbol,blockchain:W.blockchain}})}`:""),pe&&K.createElement(Fi,{align:"center",variant:"body",size:"medium",color:"neutral700"},K.createElement("b",null,"Reason:")," ",pe));return K.createElement(ne,{header:{title:st.t("Swap Details"),onCancel:e.status==="running"?()=>k("cancel"):void 0,suffix:e.status!=="running"&&K.createElement(Kt,null,K.createElement(Zg,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>k("delete")},K.createElement(Io,{size:"medium",variant:"label",color:"error"},st.t("Delete"))))},footer:ee&&!T&&K.createElement(Zg,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let de=xr(e,p,c);m(de),setTimeout(()=>{d("../../")},0)}},st.t("Try again"))},K.createElement(ie,{compact:!0,view:!0},K.createElement(_i,null,K.createElement("div",{className:en()},K.createElement(Io,{variant:"label",size:"large",color:"neutral700"},`${st.t("Request ID")}:`),K.createElement("div",{className:$i()},K.createElement(Io,{variant:"label",size:"small",color:"neutral700"},o),K.createElement(Jg,{container:A(),content:f?st.t("Copied To Clipboard"):st.t("Copy Request ID"),open:f||void 0,side:"bottom",alignOffset:-16,align:"end"},K.createElement(db,{variant:"ghost",onClick:h.bind(null,o||"")},f?K.createElement(mb,{size:16,color:"secondary"}):K.createElement(cb,{size:16,color:"gray"}))),K.createElement(Fg,{target:"_blank",href:`${ap}/swap/${o}`},K.createElement(Jg,{container:A(),content:st.t("View on Rango Explorer"),side:"bottom"},K.createElement(gb,{size:20}))))),K.createElement("div",{className:en()},K.createElement(Io,{variant:"label",size:"large",color:"neutral700"},e.finishTime?st.t("Finished at"):st.t("Created at")),K.createElement(Io,{variant:"label",size:"small",color:"neutral700"},R))),K.createElement("div",{className:_g()},K.createElement(fb,{fee:B(String(Ke),2,2),time:an(tr(e.steps)),steps:ae}),K.createElement(vn,{from:{price:{value:B(e.inputAmount,6,6),usdValue:wt,realUsdValue:Q,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:B(U,6,6),usdValue:lt,realUsdValue:_,realValue:U||""},token:{displayName:Y[ae-1].to.token.displayName,image:Y[ae-1].to.token.image},chain:{image:Y[ae-1].to.chain.image,displayName:Y[ae-1].to.chain.displayName}},percentageChange:B(G,2,2),warningLevel:Lt(G??0)})),K.createElement("div",{className:$g()},K.createElement(Io,{variant:"title",size:"small"},st.t("Swaps steps"))),K.createElement(ub,{size:8}),K.createElement(Lg,{ref:S},Y.map((de,he)=>{let Xn=he,io=Yg(e.steps[he]),ji=io==="error"||io==="in-progress"||io==="warning"||io==="completed"&&he===Y.length-1;return K.createElement(hb,{key:Xn,step:de,type:"swap-progress",ref:S,state:io,hasSeparator:he!==0,tabIndex:Xn,isFocused:ji,tooltipContainer:A()})}))),K.createElement(zl,{state:C,onClose:()=>k(null),onCancel:x,onDelete:n,message:le.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!g}),K.createElement(Hl,{open:!!T,diagnosisUrl:xt,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:B(U,6,6),usdValue:lt,realUsdValue:_,realValue:U||"",percentageChange:B(G,2,2),token:{displayName:Y[ae-1].to.token.displayName,image:Y[ae-1].to.token.image},chain:{image:Y[ae-1].to.chain.image},description:ce}))}i(Xl,"SwapDetails");import{i18n as zi}from"@lingui/core";import{Divider as rh,NotFound as bb,Skeleton as jn,Typography as Qi}from"@rango-dev/ui";import ke from"react";import{i18n as Tb}from"@lingui/core";import{Divider as vb,Skeleton as xb,Typography as wb}from"@rango-dev/ui";import ve from"react";import{css as vt,styled as Yl}from"@rango-dev/ui";var oh=Yl("div",{width:"100%",height:"100%",padding:"$10 $20"}),Kn=Yl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Ui=Yl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),M4=vt({display:"flex",justifyContent:"space-between",alignItems:"center"}),B4=vt({display:"flex",justifyContent:"space-between",alignItems:"center"}),L4=vt({paddingTop:"$15",display:"flex"}),P4=vt({padding:"$15 $0"}),D4=vt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),_4=vt({paddingBottom:"$10"}),$4=vt({display:"flex",justifyContent:"start",alignItems:"center"}),F4=vt({paddingTop:"$5",display:"flex",alignItems:"center"}),O4=vt({display:"flex",alignItems:"center"}),U4=vt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),nh=vt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Zl(){return ve.createElement(oh,null,ve.createElement(bn,{type:"swap-preview"}),ve.createElement("div",{className:"swaps-steps"},ve.createElement(wb,{variant:"title",size:"small"},Tb.t("Swaps steps"))),ve.createElement(ve.Fragment,null,ve.createElement(Kn,null,ve.createElement(Wt,{separator:!1}),ve.createElement("div",{className:nh()},ve.createElement(vb,{direction:"horizontal",size:20}),ve.createElement(xb,{height:22,variant:"rectangular"}))),ve.createElement(Ui,null),ve.createElement(Kn,null,ve.createElement(Wt,{separator:!1})),ve.createElement(Ui,null),ve.createElement(Kn,null,ve.createElement(Wt,{separator:!1})),ve.createElement(Ui,null),ve.createElement(Kn,null,ve.createElement(Wt,{separator:!1}))))}i(Zl,"LoadingSwapDetails");function ih(t){let{requestId:e,showSkeleton:o}=t;return ke.createElement(ne,{header:{title:zi.t("Swap Details"),suffix:ke.createElement(Kt,null)}},o&&ke.createElement(Bg,null,ke.createElement(_i,null,ke.createElement("div",{className:en()},ke.createElement(Qi,{variant:"label",size:"large",color:"neutral700"},`${zi.t("Request ID")}:`),ke.createElement("div",{className:$i()},ke.createElement(Qi,{variant:"label",size:"small",color:"neutral700"},ke.createElement(jn,{width:60,height:10,variant:"rounded"})),ke.createElement(rh,{direction:"horizontal",size:4}),ke.createElement(jn,{width:16,height:16,variant:"rectangular"}),ke.createElement(rh,{direction:"horizontal",size:4}),ke.createElement(jn,{width:16,height:16,variant:"rectangular"}))),ke.createElement("div",{className:en()},ke.createElement(Qi,{className:Dg(),variant:"label",size:"large",color:"neutral700"},ke.createElement(jn,{width:60,height:10,variant:"rounded"})),ke.createElement(Qi,{variant:"label",size:"small",color:"neutral700"},ke.createElement(jn,{width:60,height:10,variant:"rounded"})))),ke.createElement(Zl,null)),!o&&ke.createElement(Pg,null,ke.createElement(bb,{title:zi.t("Not found"),description:zi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(ih,"SwapDetailsPlaceholder");function ah(){let{manager:t,state:e}=Ab(),o=!e.loadedFromPersistor,n=mt(t),{requestId:r}=Wb(),a=Ye(),{fetchStatus:s}=y();if(!r)return Jl.createElement(Nb,{containerStyles:{margin:"20px"},type:"error",title:Eb.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:g})=>g.requestId===r):void 0,u=i(()=>{if(p?.id){let g=t?.get(p.id);g&&Ib(g)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(g){console.log(g)}},"onDelete"),m=p?.swap;return!m||l?Jl.createElement(ih,{requestId:r,showSkeleton:l}):Jl.createElement(Xl,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(ah,"SwapDetailsPage");import{i18n as sh}from"@lingui/core";import{Divider as Mb,getCategoriesCount as Bb,SelectableCategoryList as Lb,styled as ph,Typography as Pb,Wallet as Db}from"@rango-dev/ui";import Bt,{useState as lh}from"react";var _b=ph("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),$b=ph(ie,{textAlign:"center"});function ch(){let{fetchStatus:t}=y(),[e,o]=lh("ALL"),n=y().blockchains(),{config:r}=y(),[a,s]=lh(),l=se.use.isActiveTab(),{list:p}=ht(),u=Mp(p,n),m=Bb(u)!==1,g=Bp(p,e),d=i(f=>{yp(p,r.multiWallets)||s(f)},"handleWalletItemClick");return Bt.createElement(ne,{header:{title:sh.t("Connect Wallets")}},Bt.createElement($b,null,m&&Bt.createElement(Bt.Fragment,null,Bt.createElement(Lb,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),Bt.createElement(Mb,{size:24})),Bt.createElement(Pb,{variant:"title",size:"xmedium",align:"center"},sh.t("Choose a wallet to connect.")),Bt.createElement(_b,null,g.map((f,h)=>{let S=`wallet-${h}-${f.type}`;return Bt.createElement(Db,{key:S,...f,container:A(),onClick:()=>d(f),isLoading:t==="loading",disabled:!l})}),Bt.createElement(So,{wallet:a,onClose:()=>{s(void 0)}}))))}i(ch,"WalletsPage");function uh(){return _c(),ba(),Fb([{path:D.home,element:De.createElement(zf,null)},{path:D.routes,element:De.createElement(Vf,null)},{path:D.fromSwap,children:[{index:!0,element:De.createElement(Bl,{type:"source"})},{path:D.blockchains,element:De.createElement(Ei,{type:"source"})}]},{path:D.toSwap,children:[{index:!0,element:De.createElement(Bl,{type:"destination"})},{path:D.blockchains,element:De.createElement(Ei,{type:"destination"})}]},{path:D.settings,children:[{index:!0,element:De.createElement(kg,null)},{path:D.languages,element:De.createElement(qf,null)},{path:D.exchanges,element:De.createElement(wl,{sourceType:"Exchanges"})},{path:D.bridges,element:De.createElement(wl,{sourceType:"Bridges"})},{path:D.customTokens,children:[{index:!0,element:De.createElement(Jd,null)},{path:D.addCustomTokens,children:[{index:!0,element:De.createElement(Eu,null)},{path:D.blockchains,element:De.createElement(Ei,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:D.swaps,children:[{index:!0,element:De.createElement(Cf,null)},{path:D.swapDetails,element:De.createElement(ah,null)}]},{path:D.wallets,element:De.createElement(ch,null)},{path:D.confirmSwap,element:De.createElement(_d,null)}])}i(uh,"AppRoutes");import{useQueueManager as Kb}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as jb}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Xb}from"rango-sdk";import{useContext as Yb,useEffect as Sh,useState as Ch}from"react";import{globalCss as Ob}from"@rango-dev/ui";var mh=i(()=>Ob({"@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 dh(){let{setWatermark:t}=se();return{fetchApiConfig:i(async()=>{let o=await fetch(`${ct("BASE_URL")}/meta/dapp/config?apiKey=${ct("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(dh,"useFetchApiConfig");import{useWallets as Ub}from"@rango-dev/wallets-react";import{useEffect as zb,useRef as Qb}from"react";function fh(){let{connect:t,state:e}=Ub(),o=Qb({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);zb(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(fh,"useForceAutoConnect");import{isApprovalTX as qb,RouteEventType as gh,StepEventType as hh,StepExecutionEventStatus as Hb,WidgetEvents as qi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as yh}from"react";function Rl(){let t=Z.use.connectedWallets(),e=Z.use.getWalletsDetails(),o=we.use.setNotification(),{findToken:n}=y();yh(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===hh.TX_EXECUTION&&s.status===Hb.TX_SENT&&!qb(l)||s.type===hh.SUCCEEDED){let c=t.find(g=>g.chain===l?.fromBlockchain),m=l?.fromBlockchain!==l?.toBlockchain&&t.find(g=>g.chain===l?.toBlockchain);c&&e([c],n),m&&e([m],n)}o(s,p)},"handleStepEvent");return ye.on(qi.StepEvent,r),()=>ye.off(qi.StepEvent,r)},[ye,t]),yh(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===gh.FAILED||s.type===gh.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return ye.on(qi.RouteEvent,r),()=>ye.off(qi.RouteEvent,r)},[ye])}i(Rl,"useSubscribeToWidgetEvents");import{useManager as Gb}from"@rango-dev/queue-manager-react";import{useEffect as Vb}from"react";function ep(){let{isSynced:t,syncNotifications:e}=we(),{manager:o,state:n}=Gb();Vb(()=>{we.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(mt(o))},[we.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ep,"useSyncNotifications");function tp(){fh(),mh(),Rl(),ep();let t=y().blockchains(),{canSwitchNetworkTo:e}=Gr(),[o,n]=Ch(""),[r,a]=Ch(),s=Yb(hr),l=t.filter(Xb),{fetchApiConfig:p}=dh();Sh(()=>()=>Dc(),[]),Kb({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Sh(()=>(po.init(),we.persist.hasHydrated()||we.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===jb(o)?.[0]&&n("")}),p().catch(console.log),po.destroy),[])}i(tp,"useBootstrap");import{styled as Zb}from"@rango-dev/ui";var kh=Zb("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Hi(){tp();let{config:t}=y(),{activeTheme:e}=$o(t?.theme||{}),{activeLanguage:o}=to();return op.createElement(Jb,{language:o},op.createElement(kh,{id:"swap-container",className:e()},op.createElement(uh,null)))}i(Hi,"Main");import{setSolanaSignerConfig as SE}from"@rango-dev/signer-solana";import rp,{useEffect as Eh,useMemo as CE}from"react";import{useState as Rb}from"react";var eE=i(()=>{let[t,e]=Rb(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=hp(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Th=eE;import{checkWaitingForNetworkChange as tE,makeQueueDefinition as oE}from"@rango-dev/queue-manager-rango-preset";import{Provider as nE}from"@rango-dev/queue-manager-react";import{useWallets as rE}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as iE}from"@rango-dev/wallets-shared";import{isEvmBlockchain as aE}from"rango-types";import sE,{useMemo as lE}from"react";function pE(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=rE(),l=lE(()=>oE({API_KEY:t.apiKey||ct("API_KEY"),BASE_URL:ct("BASE_URL"),emitter:{emit:ye.emit}}),[t.apiKey]),p=y().blockchains(),c={blockchains:Z.use.connectedWallets().map(T=>({accounts:[T],name:T.chain}))},m=i(async(T,v)=>{if(a(T,v))return r(T,v)},"switchNetwork"),g=i(T=>!!s(T).mobileWallet,"isMobileWallet"),d=p.filter(T=>T.enabled).reduce((T,v)=>(T[v.name]=v,T),{}),f=p.filter(aE),h=i(T=>{let{supportedChains:v}=s(T);return rr(v)},"getSupportedChainNames"),S=e(),C={meta:{blockchains:d,evmBasedChains:f,evmNetworkChainInfo:iE(f),getSupportedChainNames:h},getSigners:o,wallets:c,providers:S,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:g},k=se.use.isActiveTab();return sE.createElement(nE,{queuesDefs:[l],context:C,onPersistedDataLoaded:T=>{tE(T)},isPaused:!k},t.children)}i(pE,"QueueManager");var vh=pE;import{useManager as fE}from"@rango-dev/queue-manager-react";import gE,{createContext as hE,useContext as yE}from"react";function xh(){let{findToken:t}=y(),e=y().blockchains(),o=y().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=z();return i(u=>{let{fromBlockchain:c,fromToken:m,toBlockchain:g,toToken:d,requestAmount:f}=u,h={blockchains:e,tokens:o};if(c!==void 0){let S=e.find(C=>C.name===c)??null;n(S)}if(m!==void 0){let S=m?t(m)??null:null;r({meta:h,token:S})}if(g!==void 0){let S=e.find(C=>C.name===g)??null;a(S)}if(d!==void 0){let S=d?t(d)??null:null;s({meta:h,token:S})}f!==void 0&&l(f)},"updateQuoteInputs")}i(xh,"useUpdateQuoteInputs");import{cancelSwap as cE,getCurrentBlockchainOfOrNull as uE,getCurrentStep as mE,getRelatedWalletOrNull as dE}from"@rango-dev/queue-manager-rango-preset";var Gi=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return mt(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=xr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&cE(o)}getCurrentStepInfo(e){let o=mE(e);return{step:o,wallet:o?dE(e,o):null,network:o?uE(e,o):null}}};var wh=hE(void 0);function np(t){let{manager:e}=fE(),o=se.use.isActiveTab(),n=z.use.retry(),{findToken:r}=y(),a=new Gi(e,{retrySwap:n,findToken:r}),s=Z.use.connectedWallets(),l=Z.use.loading(),p=bp(s),u=Z.use.getWalletsDetails(),c=y().blockchains(),m=y().tokens(),g=y().swappers(),d=y().fetchStatus,f=to().resetLanguage,h=we().getNotifications(),S=we().clearNotifications,C=xh(),{fromBlockchain:k,toBlockchain:T,fromToken:v,toToken:x,inputAmount:N}=z(),M={isActiveTab:o,setCurrentTabAsActive:po.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:w=>u(w,r)},meta:{blockchains:c,tokens:m,swappers:g,loadingStatus:d,findToken:r},resetLanguage:f,notifications:{list:h,clearAll:S},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:v?{symbol:v.symbol,blockchain:v.blockchain,address:v.address}:null,toBlockchain:T?.name??null,toToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,requestAmount:N},updateQuoteInputs:C}};return gE.createElement(wh.Provider,{value:M},t.children)}i(np,"WidgetInfo");function bh(){let t=yE(wh);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(bh,"useWidget");function Vi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Th();return Eh(()=>{n&&r(n)},[n]),CE(()=>{Lp({API_KEY:o?.apiKey||Yn,BASE_URL:o?.apiUrl||ip})},[o.apiKey,o.apiUrl]),Eh(()=>{t.config?.signers?.customSolanaRPC&&SE("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),rp.createElement(yr,{config:o,onUpdateState:e},rp.createElement(vh,{apiKey:o.apiKey},rp.createElement(np,null,t.children)))}i(Vi,"WidgetProvider");function Ih(t){let e=t.config?.externalWallets;return Ki.createElement(sc,null,e?Ki.createElement(Hi,null):Ki.createElement(Vi,{config:t.config??ca},Ki.createElement(Hi,null)))}i(Ih,"Widget");function Ah(){let{on:t,off:e}=ye;return{on:t,off:e}}i(Ah,"useWidgetEvents");export{vj as EventSeverity,lo as MainEvents,Bj as Networks,Dj as PendingSwapNetworkStatus,aa as QuoteEventTypes,xj as RouteEventType,Xi as SUPPORTED_FONTS,wj as StepEventType,bj as StepExecutionBlockedEventStatus,Ej as StepExecutionEventStatus,_e as UI_ID,sa as UiEventTypes,ur as WalletEventTypes,Wj as WalletEvents,Lj as WalletTypes,Ih as Widget,lo as WidgetEvents,Vi as WidgetProvider,yr as WidgetWallets,$a as customizedThemeTokens,Aj as readAccountAddress,jt as useStatefulConnect,ht as useWalletList,Gr as useWallets,bh as useWidget,Ah as useWidgetEvents,Zn as widgetEventEmitter};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|