@rango-dev/widget-embedded 0.31.1-next.2 → 0.31.1-next.3

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.
Files changed (115) hide show
  1. package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
  2. package/dist/components/StatefulConnectModal/StatefulConnectModal.d.ts +11 -0
  3. package/dist/components/StatefulConnectModal/StatefulConnectModal.d.ts.map +1 -0
  4. package/dist/components/StatefulConnectModal/helpers.d.ts +10 -0
  5. package/dist/components/StatefulConnectModal/helpers.d.ts.map +1 -0
  6. package/dist/components/StatefulConnectModal/index.d.ts +2 -0
  7. package/dist/components/StatefulConnectModal/index.d.ts.map +1 -0
  8. package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts.map +1 -1
  9. package/dist/components/WalletStatefulConnect/ConnectStatus.d.ts +4 -0
  10. package/dist/components/WalletStatefulConnect/ConnectStatus.d.ts.map +1 -0
  11. package/dist/components/{WalletModal/WalletModalContent.styles.d.ts → WalletStatefulConnect/ConnectStatus.styles.d.ts} +1 -1
  12. package/dist/components/{WalletModal/WalletModalContent.styles.d.ts.map → WalletStatefulConnect/ConnectStatus.styles.d.ts.map} +1 -1
  13. package/dist/components/WalletStatefulConnect/ConnectStatus.types.d.ts +8 -0
  14. package/dist/components/WalletStatefulConnect/ConnectStatus.types.d.ts.map +1 -0
  15. package/dist/components/WalletStatefulConnect/DerivationPath.d.ts +4 -0
  16. package/dist/components/WalletStatefulConnect/DerivationPath.d.ts.map +1 -0
  17. package/dist/components/WalletStatefulConnect/DerivationPath.helpers.d.ts +4 -0
  18. package/dist/components/WalletStatefulConnect/DerivationPath.helpers.d.ts.map +1 -0
  19. package/dist/components/{WalletDerivationPathModal/WalletDerivationPathModal.styles.d.ts → WalletStatefulConnect/DerivationPath.styles.d.ts} +1 -1
  20. package/dist/components/WalletStatefulConnect/DerivationPath.styles.d.ts.map +1 -0
  21. package/dist/components/WalletStatefulConnect/DerivationPath.types.d.ts +6 -0
  22. package/dist/components/WalletStatefulConnect/DerivationPath.types.d.ts.map +1 -0
  23. package/dist/components/WalletStatefulConnect/ExperimentalChain.d.ts +8 -0
  24. package/dist/components/WalletStatefulConnect/ExperimentalChain.d.ts.map +1 -0
  25. package/dist/components/WalletStatefulConnect/ExperimentalChainStatus.d.ts +4 -0
  26. package/dist/components/WalletStatefulConnect/ExperimentalChainStatus.d.ts.map +1 -0
  27. package/dist/components/WalletStatefulConnect/ExperimentalChainStatus.helpers.d.ts +8 -0
  28. package/dist/components/WalletStatefulConnect/ExperimentalChainStatus.helpers.d.ts.map +1 -0
  29. package/dist/components/WalletStatefulConnect/ExperimentalChainStatus.types.d.ts +6 -0
  30. package/dist/components/WalletStatefulConnect/ExperimentalChainStatus.types.d.ts.map +1 -0
  31. package/dist/components/WalletStatefulConnect/Namespaces.d.ts +4 -0
  32. package/dist/components/WalletStatefulConnect/Namespaces.d.ts.map +1 -0
  33. package/dist/components/WalletStatefulConnect/Namespaces.helpers.d.ts +3 -0
  34. package/dist/components/WalletStatefulConnect/Namespaces.helpers.d.ts.map +1 -0
  35. package/dist/components/{WalletNamespacesModal/WalletNamespacesModal.styles.d.ts → WalletStatefulConnect/Namespaces.styles.d.ts} +1 -1
  36. package/dist/components/WalletStatefulConnect/Namespaces.styles.d.ts.map +1 -0
  37. package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts +7 -0
  38. package/dist/components/WalletStatefulConnect/Namespaces.types.d.ts.map +1 -0
  39. package/dist/components/WalletStatefulConnect/index.d.ts +5 -0
  40. package/dist/components/WalletStatefulConnect/index.d.ts.map +1 -0
  41. package/dist/hooks/useStatefulConnect/index.d.ts +5 -0
  42. package/dist/hooks/useStatefulConnect/index.d.ts.map +1 -0
  43. package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts +25 -0
  44. package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts.map +1 -0
  45. package/dist/hooks/useStatefulConnect/useStatefulConnect.helpers.d.ts +8 -0
  46. package/dist/hooks/useStatefulConnect/useStatefulConnect.helpers.d.ts.map +1 -0
  47. package/dist/hooks/useStatefulConnect/useStatefulConnect.state.d.ts +9 -0
  48. package/dist/hooks/useStatefulConnect/useStatefulConnect.state.d.ts.map +1 -0
  49. package/dist/hooks/useStatefulConnect/useStatefulConnect.types.d.ts +43 -0
  50. package/dist/hooks/useStatefulConnect/useStatefulConnect.types.d.ts.map +1 -0
  51. package/dist/hooks/useWalletList.d.ts +11 -14
  52. package/dist/hooks/useWalletList.d.ts.map +1 -1
  53. package/dist/index.js +2 -2
  54. package/dist/index.js.map +4 -4
  55. package/dist/pages/WalletsPage.d.ts +0 -2
  56. package/dist/pages/WalletsPage.d.ts.map +1 -1
  57. package/dist/widget-embedded.build.json +1 -1
  58. package/package.json +2 -2
  59. package/src/components/ConfirmWalletsModal/WalletList.tsx +52 -243
  60. package/src/components/HeaderButtons/WalletButton.tsx +1 -1
  61. package/src/components/StatefulConnectModal/StatefulConnectModal.tsx +168 -0
  62. package/src/components/StatefulConnectModal/helpers.ts +23 -0
  63. package/src/components/StatefulConnectModal/index.ts +1 -0
  64. package/src/components/SwapDetailsModal/SwapDetailsModal.WalletState.tsx +23 -113
  65. package/src/components/{WalletModal/WalletModalContent.tsx → WalletStatefulConnect/ConnectStatus.tsx} +13 -5
  66. package/src/components/WalletStatefulConnect/ConnectStatus.types.ts +11 -0
  67. package/src/components/WalletStatefulConnect/DerivationPath.helpers.ts +23 -0
  68. package/src/components/{WalletDerivationPathModal/WalletDerivationPathModal.tsx → WalletStatefulConnect/DerivationPath.tsx} +18 -36
  69. package/src/components/WalletStatefulConnect/DerivationPath.types.ts +6 -0
  70. package/src/components/WalletStatefulConnect/ExperimentalChain.tsx +36 -0
  71. package/src/components/WalletStatefulConnect/ExperimentalChainStatus.helpers.ts +53 -0
  72. package/src/components/WalletStatefulConnect/ExperimentalChainStatus.tsx +35 -0
  73. package/src/components/WalletStatefulConnect/ExperimentalChainStatus.types.ts +5 -0
  74. package/src/components/WalletStatefulConnect/Namespaces.helpers.ts +9 -0
  75. package/src/components/{WalletNamespacesModal/WalletNamespacesModal.tsx → WalletStatefulConnect/Namespaces.tsx} +9 -27
  76. package/src/components/{WalletNamespacesModal/WalletNamespacesModal.types.tsx → WalletStatefulConnect/Namespaces.types.tsx} +2 -5
  77. package/src/components/WalletStatefulConnect/index.ts +4 -0
  78. package/src/hooks/useStatefulConnect/index.ts +9 -0
  79. package/src/hooks/useStatefulConnect/useStatefulConnect.helpers.ts +13 -0
  80. package/src/hooks/useStatefulConnect/useStatefulConnect.state.ts +45 -0
  81. package/src/hooks/useStatefulConnect/useStatefulConnect.ts +232 -0
  82. package/src/hooks/useStatefulConnect/useStatefulConnect.types.ts +56 -0
  83. package/src/hooks/useWalletList.ts +22 -53
  84. package/src/pages/WalletsPage.tsx +10 -162
  85. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.d.ts +0 -4
  86. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.d.ts.map +0 -1
  87. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.styles.d.ts.map +0 -1
  88. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.types.d.ts +0 -10
  89. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.types.d.ts.map +0 -1
  90. package/dist/components/WalletDerivationPathModal/index.d.ts +0 -2
  91. package/dist/components/WalletDerivationPathModal/index.d.ts.map +0 -1
  92. package/dist/components/WalletModal/WalletModal.d.ts +0 -4
  93. package/dist/components/WalletModal/WalletModal.d.ts.map +0 -1
  94. package/dist/components/WalletModal/WalletModal.types.d.ts +0 -10
  95. package/dist/components/WalletModal/WalletModal.types.d.ts.map +0 -1
  96. package/dist/components/WalletModal/WalletModalContent.d.ts +0 -4
  97. package/dist/components/WalletModal/WalletModalContent.d.ts.map +0 -1
  98. package/dist/components/WalletModal/index.d.ts +0 -2
  99. package/dist/components/WalletModal/index.d.ts.map +0 -1
  100. package/dist/components/WalletNamespacesModal/WalletNamespacesModal.d.ts +0 -4
  101. package/dist/components/WalletNamespacesModal/WalletNamespacesModal.d.ts.map +0 -1
  102. package/dist/components/WalletNamespacesModal/WalletNamespacesModal.styles.d.ts.map +0 -1
  103. package/dist/components/WalletNamespacesModal/WalletNamespacesModal.types.d.ts +0 -10
  104. package/dist/components/WalletNamespacesModal/WalletNamespacesModal.types.d.ts.map +0 -1
  105. package/dist/components/WalletNamespacesModal/index.d.ts +0 -2
  106. package/dist/components/WalletNamespacesModal/index.d.ts.map +0 -1
  107. package/src/components/WalletDerivationPathModal/WalletDerivationPathModal.types.tsx +0 -10
  108. package/src/components/WalletDerivationPathModal/index.ts +0 -1
  109. package/src/components/WalletModal/WalletModal.tsx +0 -25
  110. package/src/components/WalletModal/WalletModal.types.ts +0 -11
  111. package/src/components/WalletModal/index.ts +0 -1
  112. package/src/components/WalletNamespacesModal/index.ts +0 -1
  113. /package/src/components/{WalletModal/WalletModalContent.styles.ts → WalletStatefulConnect/ConnectStatus.styles.ts} +0 -0
  114. /package/src/components/{WalletDerivationPathModal/WalletDerivationPathModal.styles.ts → WalletStatefulConnect/DerivationPath.styles.ts} +0 -0
  115. /package/src/components/{WalletNamespacesModal/WalletNamespacesModal.styles.ts → WalletStatefulConnect/Namespaces.styles.ts} +0 -0
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var Bg=Object.defineProperty;var i=(t,e)=>Bg(t,"name",{value:e,configurable:!0});import{EventSeverity as F4,RouteEventType as O4,StepEventType as U4,StepExecutionBlockedEventStatus as Q4,StepExecutionEventStatus as z4}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as H4,useWallets as Ar,Events as G4}from"@rango-dev/wallets-react";import{Networks as K4,WalletTypes as j4}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as Y4}from"rango-types";import{UI_ID as Lg}from"@rango-dev/ui";var Nn="c6381a79-2817-4602-83bf-6a641a409e32",Nl="https://api.rango.exchange",Ml="https://explorer.rango.exchange",Ce={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Lg};var Bl="Roboto",Mi=[{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 Yi,Provider as Eh}from"@rango-dev/wallets-react";import{isEvmBlockchain as Ih}from"rango-sdk";import Xn,{createContext as Ah,useEffect as Ep,useMemo as Wh,useRef as Ip}from"react";import{useEffect as Rg}from"react";import{create as Yg}from"zustand";import{subscribeWithSelector as Zg}from"zustand/middleware";import Pg from"mitt";var ke=Pg(),Mn={on:ke.on,off:ke.off};import{RangoClient as jg}from"rango-sdk";import{BlockchainCategories as Qg,WalletState as Ct}from"@rango-dev/ui";import{readAccountAddress as zg}from"@rango-dev/wallets-react";import{detectInstallLink as qg,getCosmosExperimentalChainInfo as Hg,isEvmAddress as Gg,KEPLR_COMPATIBLE_WALLETS as sb,Networks as Hl}from"@rango-dev/wallets-shared";import Fi from"bignumber.js";import{isCosmosBlockchain as Vg}from"rango-types";import Dg from"bignumber.js";var Ue=new Dg(0);import{WalletTypes as _g}from"@rango-dev/wallets-shared";var Ll=[_g.LEAP];import{BlockchainCategories as Bi,WalletState as Ug}from"@rango-dev/ui";import{TransactionType as Bn}from"rango-sdk";function vo(t){return Array.from(new Set(t))}i(vo,"removeDuplicateFrom");function Di(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Di,"areEqual");function Ol(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Ol,"debounce");function bt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(bt,"containsText");function _l(t,e){return t.toLowerCase()===e.toLowerCase()}i(_l,"exactText");function $l(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i($l,"startWithText");var B=i(()=>document.getElementById(Ce.SWAP_BOX_ID),"getContainer"),Ho=i(()=>document.getElementById(Ce.EXPANDED_BOX_ID),"getExpanded");function Fl(t,e,o){let n=!!e&&_l(e,t),r=!!o&&_l(o,t);return n!==r?n?-1:1:0}i(Fl,"compareExactMatchText");function Li(t,e,o){let n=!!e&&bt(e,t),r=!!o&&bt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Li,"compareContainsText");function Pi(t,e,o){let n=!!e&&$l(e,t),r=!!o&&$l(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Pi,"compareStartWithText");function Ul(t,e,o){if(!o)return 0;let n=Fl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Fl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Pi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Li(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Pi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Li(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Pi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Li(o,t.address,e.address);if(r!==0)return r}return 0}i(Ul,"compareWithSearchFor");var Ln=i((t,e)=>{switch(e){case Bi.ALL:return!0;case Bi.UTXO:return t===Bn.TRANSFER;case Bi.OTHER:return t!==Bn.TRANSFER&&t!==Bn.COSMOS&&t!==Bn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Ql=i(t=>Mi.find(o=>o.value===t)?.url,"getFontUrlByName");function Pn(t,e){let o=!!t.find(n=>n.state===Ug.CONNECTED);return e===!1&&o}i(Pn,"isSingleWalletActive");function Dn(t,e){return e.find(o=>o.name===t)?.displayName}i(Dn,"getBlockchainDisplayNameFor");function tt(t,e){return e.find(o=>o.name===t)?.shortName}i(tt,"getBlockchainShortNameFor");function zl(t,e){return e.find(o=>o.name===t)?.logo}i(zl,"getBlockchainImage");function Go(t,e){return e.find(o=>o.id===t)?.title}i(Go,"getSwapperDisplayName");function _i(t,e){return e.find(o=>o.name===t)??null}i(_i,"findBlockchain");function $i(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($i,"isTokenNative");function ct(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(ct,"createTokenHash");import{BigNumber as ql}from"bignumber.js";var Vo=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new ql(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new ql(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 _n=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var St=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Ko=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Oi(t){switch(!0){case t.connected:return Ct.CONNECTED;case t.connecting:return Ct.CONNECTING;case!t.installed:return Ct.NOT_INSTALLED;default:return Ct.DISCONNECTED}}i(Oi,"mapStatusToWalletState");function Gl(t,e,o,n){return o.filter(r=>!Ll.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:f,needsDerivationPath:d}=e(r),m=vo(f.map(T=>T.type)),g=Oi(t(r));return{title:a,image:s,link:qg(l),state:g,type:r,showOnMobile:p,namespaces:c,singleNamespace:u,blockchainTypes:m,needsDerivationPath:d}})}i(Gl,"mapWalletTypesToWalletInfo");function On(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(On,"walletAndSupportedChainsNames");function Vl(t,e,o,n,r){let a=[];function s(p,c){if(!!!a.find(f=>f.chain===p)){let f={address:c,chain:p,walletType:t};a.push(f)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:c,network:u}=zg(p),f=l.length>0,d=l.includes(u),m=u===Hl.Unknown;if(f&&!d&&!m)return;let T=u===Hl.Unknown&&Gg(c);if(m&&!T)return;o.includes(u)||T?r?s(u,c.toLowerCase()):l.filter(y=>o.includes(y)).forEach(y=>{s(y,c.toLowerCase())}):s(u,c)}),a}i(Vl,"prepareAccountsForWalletStore");function Zt(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 f=c.from.blockchain,d=c.to.blockchain,m=a===o.swaps.length-1,g=u===p.length-1;(!m&&!g||m&&l!==f||e==="all")&&n.add(f),e==="all"&&n.add(d)})}e==="all"&&n.add(l)}),Array.from(n)}i(Zt,"getQuoteWallets");function Un(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Un,"isAccountAndWalletMatched");function Kl(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 Fi(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Kl,"makeBalanceFor");function jl(t){return{...t,loading:!1,error:!0}}i(jl,"resetConnectedWalletState");var Xl=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=M(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new Fi(a?.amount||Ue).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Ue)||Ue).toString();return Kg(r)},"calculateWalletUsdValue");function Kg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Kg,"numberWithThousandSeparator");var Qn=i((t,e)=>{let o=Hg(Object.entries(t).map(([,n])=>n).filter(Vg));return o&&o[e]?.experimental},"isExperimentalChain");function zn(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}i(zn,"formatBalance");function Yl(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(Yl,"compareTokenBalance");function Jt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Jt,"areTokensEqual");function Zl(t){return t.sort((e,o)=>+(o.state===Ct.CONNECTED)-+(e.state===Ct.CONNECTED)||+(o.state===Ct.DISCONNECTED||o.state===Ct.CONNECTING)-+(e.state===Ct.DISCONNECTED||e.state===Ct.CONNECTING))}i(Zl,"sortWalletsBasedOnConnectionState");function qn(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(qn,"getConciseAddress");function Jl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Jl,"getAddress");function Hn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Fi(o?.usdPrice??Ue).multipliedBy(o?.amount).toString():""},r=o?ct({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(Hn,"makeTokensBalance");var Rl=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 tp(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(tp,"filterBlockchainsByWalletTypes");function op(t,e){return e===Qg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Ln(n,e))return!0;return!1})}i(op,"filterWalletsByCategory");var Ui={API_KEY:Nn};function Et(t){return Ui[t]||""}i(Et,"getConfig");function np(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ui=e,Ui}i(np,"initConfig");var rp=20,ip=25,Qi="theme-widget",zi=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Jt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Jt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),qi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),ap=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Gn,$t=i(()=>Gn||(Gn=new jg(Et("API_KEY"),Et("BASE_URL")),Gn),"httpService");import{WidgetEvents as sp}from"@rango-dev/queue-manager-rango-preset";var Hi=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Hi||{}),Vn=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Vn||{}),Gi=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(Gi||{}),Rt=(a=>(a[a.RouteEvent=sp.RouteEvent]="RouteEvent",a[a.StepEvent=sp.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Rt||{});var Xg=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"),Ft=Xg;var te=Ft(Yg()(Zg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{ke.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)&&ke.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:Hn(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=>Un(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:c,chain:u})=>({address:c,blockchain:u})),p=(await $t().getWalletsDetails(s)).wallets;if(p)t(c=>{let u=c.connectedWallets.map(d=>{let m=o.find(T=>Un(T,d)),g=p.find(T=>T.address===d.address&&T.blockChain===d.chain);return g?.failed&&m&&r&&a([m],n,!1),m&&g?{...d,explorerUrl:g.explorerUrl,balances:Kl(g,n),loading:!1,error:!1}:d});return{loading:!1,balances:Hn(u),connectedWallets:u}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(u=>o.find(f=>Un(f,u))?jl(u):u);return{loading:!1,balances:Hn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=ct(o);return n[r]??null}}))));import{allProviders as Jg}from"@rango-dev/provider-all";function Kn(t,e){let o=Jg({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(Kn,"matchAndGenerateProviders");function lp(t,e){return Kn(t,e).map(r=>r.config.type)}i(lp,"configWalletsToWalletName");function pp(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(pp,"hashProviders");function Vi(t,e){let o=te.use.clearConnectedWallet(),n=Kn(t,e);return Rg(()=>{o(),n=Kn(t,e)},[pp(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Vi,"useWalletProviders");import Ch,{createContext as Th,useContext as kh,useEffect as vh,useRef as xh}from"react";import{create as yh}from"zustand";import{persist as Sh}from"zustand/middleware";var Ki=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()}},xo=new Ki;function jo(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=ct(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=ct(c);delete n[u]})):a(p.tokens))}),Object.values(n)}i(jo,"matchTokensFromConfigWithMeta");var ji={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},eh={clientUrl:void 0},th={liquiditySources:void 0},cp=i((t,e,o)=>({config:{...ji,...t},iframe:eh,campaignMode:th,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=jo({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=jo({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});xo.set("supportedSourceTokens",l),xo.set("supportedDestinationTokens",p),e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function jn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return vo(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(jn,"getUniqueSwappersGroups");function up(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(up,"sortLiquiditySourcesByGroupTitle");function ot(t,e){return e?.[t]==="hidden"}i(ot,"isFeatureHidden");function mp(t,e){return e?.[t]==="enabled"}i(mp,"isFeatureEnabled");var dp=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a}=e(),s=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return s;let p=o.type==="source"?"from":"to",c=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",u=xo.get(c);u?.length||(u=jo({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),xo.set(c,u));let f=e().blockchains({type:o.type});return u.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!f.some(g=>g.name===m.blockchain)?!1:o.searchFor?!!(bt(m.symbol,o.searchFor)||bt(m.address||"",o.searchFor)||bt(m.name||"",o.searchFor)):!0).sort((m,g)=>{let T=e().isTokenPinned(m,o.type),S=e().isTokenPinned(g,o.type);if(T!==S)return T?-1:1;if(o.getBalanceFor){let b=o.getBalanceFor(m),N=o.getBalanceFor(g),w=Yl(b,N);if(w!==0)return w}let C=l.get(m.blockchain),y=l.get(g.blockchain),k=$i(m,C),x=$i(g,y);if(k!==x)return k?-1:1;if(m.isPopular!==g.isPopular)return m.isPopular?-1:1;if(o.searchFor){let b=Ul(m,g,o.searchFor);if(b)return b}return m.isSecondaryCoin!==g.isSecondaryCoin?m.isSecondaryCoin?1:-1:C&&y?C.sort-y.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=ct(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Jt(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(up)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await $t().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s={},l=[],p=n.popularTokens,c=n.swappers,u=new Set;n.tokens.forEach(d=>{u.add(d.blockchain),l.push(d)}),n.blockchains.sort((d,m)=>d.sort-m.sort).forEach(d=>{d.enabled&&u.has(d.name)&&r.set(d.name,d)}),l.forEach(d=>{let m=ct(d);s[d.blockchain]||(s[d.blockchain]=[]),a.set(m,d),s[d.blockchain].push(m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s,_popularTokens:p,_swappers:c})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as oh,English as nh,Finland as rh,French as ih,German as ah,Greece as sh,Italian as lh,Japanese as ph,Netherlands as ch,Poland as uh,Portuguese as mh,Russian as dh,Spanish as fh,Swedish as gh,Ukrainian as hh}from"@rango-dev/ui";var fp=[{title:"English",label:"English",local:"en",SVGFlag:nh},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:fh},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:ih},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:ph},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:mh},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:oh},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:dh},{title:"German",label:"Deutsch",local:"de",SVGFlag:ah},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:hh},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:gh},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:rh},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:ch},{title:"Greek",label:"Grieks",local:"el",SVGFlag:sh},{title:"Italian",label:"Italiana",local:"it",SVGFlag:lh},{title:"Polish",label:"Polski",local:"pl",SVGFlag:uh}],wo="en";var gp=[.5,1,3],hp=1,yp=5,Sp=100,Cp=0;var Tp=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:hp,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,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=vo(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=ot("theme",n),s=ot("language",n),l=ot("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||wo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...c&&{language:o.language||wo}})}}),"createSettingsSlice");function kp(t){return yh()(Sh((...e)=>({...dp(...e),...Tp(...e),...cp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(kp,"createAppStore");var vp=Th(null);function h(){let t=kh(vp);if(vh(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function xp(t){let e=xh();return e.current||(e.current=kp(t.config)),Ch.createElement(vp.Provider,{value:e.current},t.children)}i(xp,"AppStoreProvider");import{create as bh}from"zustand";var wp="rango-widget";var Xo=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(wp),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 pe=Ft(bh()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),eo=new Xo({onInit:()=>pe.setState({tabManagerInitiated:!0}),onClaim:()=>pe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>pe.setState({isActiveTab:!1})});var Yn=Ah({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Nh(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}=Vi(l.wallets,p),{connectWallet:u,disconnectWallet:f}=te(),d=Ip(),m=Ip();Ep(()=>{n().catch(console.log)},[]),Ep(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:l,dappConfig:t.config})},[t.config,r]);let g=a.filter(Ih).map(y=>y.name),T=i((y,k,x,b,N)=>{if(k===Yi.ACCOUNTS)if(x){let w=On(N.supportedBlockchains),v=Vl(y,x,g,w,N.isContractWallet);v.length&&u(v,s)}else f(y),m.current?m.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(k===Yi.ACCOUNTS&&b.connected){let w=`${y}-${b.network}-${x}`;b.connected&&(d.current?d.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(k===Yi.NETWORK&&b.network){let w=`${y}-${b.network}`;d.current?d.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,k,x,b,N)},"onUpdateState"),S=pe.use.isActiveTab(),C=Wh(()=>({onConnectWallet:y=>{d.current=y},onDisconnectWallet:y=>{m.current=y}}),[]);return Xn.createElement(Yn.Provider,{value:C},Xn.createElement(Eh,{allBlockChains:a,providers:c,onUpdateState:T,autoConnect:!!S},t.children))}i(Nh,"Main");function Zn(t){let{config:e,...o}=t;return Xn.createElement(xp,{config:e},Xn.createElement(Nh,{...o,config:e}))}i(Zn,"WidgetWallets");import Ni from"react";import Mh,{Fragment as Bh}from"react";import{MemoryRouter as Lh,useInRouterContext as Ph}from"react-router";function Ap({children:t}){let o=Ph()?Bh:Lh;return Mh.createElement(o,null,t)}i(Ap,"AppRouter");import{I18nManager as mw}from"@rango-dev/ui";import Il from"react";import Xe from"react";import{useRoutes as Jx}from"react-router-dom";var G={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as Io,useRef as lr}from"react";import Ve from"bignumber.js";import{create as $h}from"zustand";import{subscribeWithSelector as Fh}from"zustand/middleware";import{getLastSuccessfulStep as _h}from"@rango-dev/queue-manager-rango-preset";import JI from"bignumber.js";function Zi(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Zi,"getFeeLabel");var Ji=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Wp=30;import{i18n as ut}from"@lingui/core";import{RouteEventType as _I}from"@rango-dev/queue-manager-rango-preset";import Qe from"bignumber.js";import{PendingSwapNetworkStatus as er}from"rango-types";function Jn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Jn,"isValidAddress");import{i18n as Fe}from"@lingui/core";var re=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 Np(t){switch(t.type){case 0:return t.diagnosisMessage??re().noResultError.title;case 1:return re().genericServerError;default:return""}}i(Np,"getQuoteErrorMessage");import{i18n as Rn}from"@lingui/core";var to=i(()=>({connectWallet:Rn.t("Connect Wallet"),swap:Rn.t("Swap"),swapAnyway:Rn.t("Swap anyway"),ethWarning:Rn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Mp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Qe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Qe(1e3)))??!1}i(Mp,"hasHighValueLoss");function Bp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Qe(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(Bp,"hasLimitError");function Lp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Qe(l.fromAmountMinValue):null,c=l.fromAmountMaxValue?new Qe(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 Qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Qe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=ut.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=ut.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=ut.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=ut.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Lp,"getLimitErrorMessage");function Pp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:to().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:to().swap,action:"confirm-swap",disabled:!0}:s?{title:to().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:to().ethWarning,action:"confirm-warning",disabled:!1}:{title:to().swap,action:"confirm-swap",disabled:!1}:{title:to().connectWallet,action:"connect-wallet",disabled:!1}}i(Pp,"getSwapButtonState");function Ri(t,e,o){return!((!o||o.lte(Ue))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Ri,"canComputePriceImpact");function ea(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 Qe(r.amount).multipliedBy(a||0))}return o}i(ea,"getUsdFeeOfStep");function tr(t,e){return t.reduce((o,n)=>o.plus(ea(n,e)),Ue)}i(tr,"getTotalFeeInUsd");function ta(t){let e=Ue;return e=e.plus(new Qe(t.amount).multipliedBy(t.price||0)),e}i(ta,"getUsdFee");function Dp(t){return t.reduce((e,o)=>e.plus(ta(o)),Ue)}i(Dp,"getTotalFeesInUsd");function _p(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(_p,"getFeesGroup");function $p(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($p,"checkSlippageErrors");function Fp(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(Fp,"checkSlippageWarnings");function or(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(or,"getMinRequiredSlippage");function Op(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Op,"hasProperSlippage");function Up(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:c,affiliateRef:u,affiliatePercent:f,affiliateWallets:d,destination:m,enableCentralizedSwappers:g}=t,T=a?.reduce((y,k)=>(y[k.chain]=k.address,y),{}),S=[];return r?.forEach(y=>{S.push({blockchain:y.chain,addresses:[y.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:f??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:T??{},slippage:c.toString(),...m&&{destination:m},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(y=>!s.includes(y)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(Up,"createQuoteRequestBody");function Qp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Qp,"getWalletsForNewSwap");function bo(t){return t?.outputAmount||null}i(bo,"getQuoteOutputAmount");function zp(t,e){return new Qe(e).div(new Qe(t)).minus(1).multipliedBy(100).toNumber()}i(zp,"getPercentageChange");function qp(t,e){let o=bo(t),n=bo(e);if(!o||!n)return!1;let r=nt(o,n);return r?r<=-1:!0}i(qp,"isOutputAmountChangedALot");function Hp(t,e,o){let n=t.validationStatus,r=Zt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Yp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=M(new Qe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),c=M(new Qe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=ut.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=ut.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=ut.t(" for input and network fee")),ut.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:tt(s.asset.blockchain,o)}})})}i(Hp,"generateBalanceWarnings");function nr(t,e){return(t?new Qe(t):Ue).multipliedBy(e||0)}i(nr,"calcOutputUsdValue");function Yo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==er.NetworkChanged}i(Yo,"isNetworkStatusInWarningState");function Gp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Yo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case er.WaitingForConnectingWallet:n=n||ut.t("Waiting for connecting wallet");break;case er.WaitingForQueue:n=n||ut.t("Waiting for other running tasks to be finished");break;case er.WaitingForNetworkChange:n=n||ut.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(Gp,"getSwapMessages");function Vp(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(Vp,"getLastConvertedTokenInFailedSwap");function Kp(t){return t.status==="failed"}i(Kp,"shouldRetrySwap");function jp(t,e,o,n,r,a){if(!n||t)return!0;let s=Zt({filter:"all",quote:n}),l=Zt({filter:"required",quote:n}),p=s.every(f=>r.some(d=>d.chain===f)),c=l.every(f=>r.some(d=>d.chain===f)),u=o&&a?Jn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!u||!c)}i(jp,"isConfirmSwapDisabled");function Xp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Xp,"isTokensIdentical");function ir(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(ir,"getQuoteToTokenUsdPrice");function oa(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(oa,"isNumberOfSwapsChanged");function na(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Di(o,n)}i(na,"isQuoteSwappersUpdated");function ra(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Di(o,n)}i(ra,"isQuoteInternalCoinsUpdated");function Jp(t,e){return oa(t,e)||na(t,e)||ra(t,e)}i(Jp,"isQuoteChanged");function Yp(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(Yp,"getRequiredBalanceOfWallet");function It(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(It,"getPriceImpactLevel");function ar(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=_h(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=_i(a?a.toBlockchain:n.fromBlockchain,e),p=_i(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),f=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:c,toBlockchain:p,toToken:u,inputAmount:f}}i(ar,"createRetryQuote");function Eo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=oo(o,t.requestAmount),l=oo(n,t?.outputAmount??"");if(t&&s&&l){let u=nt(s.toString(),l.toString());if(!!u&&Mp(s,u)){let d=tr(t?.swaps,r),m=It(u);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:u,totalFee:d,warningLevel:m}}}else if(t&&(!s||!l))return{type:1};let p=or(t.swaps),c=a>yp;if(Op(e.userSlippage.toString(),p)){if(c&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:Fp(t,a),minRequiredSlippage:p};return null}i(Eo,"generateQuoteWarnings");function nt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:zp(t.toString(),e.toString());return n&&n<0?n:null}i(nt,"getPriceImpact");var Rp=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"),sr=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"),ec=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"),tc=i(t=>{let e=i((o,n)=>{let r=Ji.indexOf(o.value),a=Ji.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var oo=i((t,e)=>t?.usdPrice?new Ve(e||Ue).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),H=Ft($h()(Fh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Ve(0),outputUsdValue:new Ve(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;return Ko(o.inputAmount)?(e&&(n=e?.outputAmount?new Ve(e?.outputAmount):null,r=nr(e?.outputAmount,ir(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Ve(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Ve(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Ve(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:oo(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new Ve(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 Ve(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:oo(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:oo(n??null,s),outputUsdValue:new Ve(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?oo(e.toToken,e.outputAmount?.toString()||""):new Ve(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Ve(0),inputUsdValue:new Ve(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Ve(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})})))),oc=H.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ke.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&&ke.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 nc(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:c}=H(),u=h().config,f=h().fetchStatus,d=h().blockchains(),m=h().tokens(),{findToken:g}=h(),{setAffiliateRef:T,setAffiliatePercent:S,setAffiliateWallets:C}=h(),y=u?.from?.tokens,k=u?.from?.blockchains,x=u?.to?.tokens,b=u?.to?.blockchains,N=lr(void 0),w=lr(void 0),v=lr(void 0),E=lr(void 0);Io(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),Io(()=>{if(f==="success"){r();let A=d.find(I=>I.name===u?.from?.blockchain),L=u?.from?.token,q=L&&g(L);(A||!A&&v.current)&&n(A??null),q?a({token:q,meta:{blockchains:d,tokens:m}}):!q&&N.current&&a({token:null}),v.current=u?.from?.blockchain,N.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,f]),Io(()=>{zi(s,y)&&a({token:null}),qi(p,k)&&n(null)},[y,k]),Io(()=>{zi(l,x)&&a({token:null}),qi(c,b)&&o(null)},[x,b]),Io(()=>{if(f==="success"){r();let A=d.find(I=>I.name===u?.to?.blockchain),L=u?.to?.token,q=L&&g(L);(A||!A&&E.current)&&o(A??null),q?e({token:q,meta:{blockchains:d,tokens:m}}):!q&&w.current&&e({token:null}),E.current=u?.to?.blockchain,w.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,f]),Io(()=>{T(u?.affiliate?.ref??null),S(u?.affiliate?.percent??null),C(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(nc,"useSyncStoresWithConfig");import{useEffect as sa,useRef as Oh}from"react";import{useInRouterContext as Uh,useLocation as Qh,useSearchParams as zh}from"react-router-dom";function ia(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(ia,"convertTokenSearchParamToAsset");function aa(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(aa,"tokenToSearchParam");function la(){let t=Qh(),[e,o]=zh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:c,setFromToken:u,setToToken:f,setInputAmount:d}=H(),m=h().fetchStatus,g=h().blockchains(),T=h().tokens(),S=Uh(),{updateIframe:C,updateCampaignMode:y}=h(),k=h().isInCampaignMode(),x=Oh(),{findToken:b}=h(),N=i(()=>{let v={};for(let[_,X]of e.entries())_.startsWith("utm_")&&(v[_]=X);let E=e.get("fromAmount"),A=e.get("fromBlockchain"),L=e.get("fromToken"),q=e.get("toBlockchain"),I=e.get("toToken"),Q=e.get("autoConnect"),oe=e.get("clientUrl"),P=e.get("liquiditySources");return{fromAmount:E,fromBlockchain:A,fromToken:L,toBlockchain:q,toToken:I,autoConnect:Q,clientUrl:oe,liquiditySources:P,utmQueryParams:v}},"getUrlSearchParams"),w=i(v=>{for(let E in v)v[E]||delete v[E];o(v,{replace:!0})},"updateUrlSearchParams");sa(()=>{let{autoConnect:v,clientUrl:E,utmQueryParams:A}=N();S&&m==="success"&&w({fromBlockchain:n?.name,fromToken:aa(a),toBlockchain:r?.name,toToken:aa(s),fromAmount:l,autoConnect:v??void 0,clientUrl:E??void 0,liquiditySources:k?x.current:void 0,...A})},[t.pathname,l,n,a,r,s,k]),sa(()=>{if(!S)return;let v=N();if(!x.current&&v.liquiditySources&&(x.current=v.liquiditySources),v.fromAmount&&d(v.fromAmount),m==="success"){let E=g.find(I=>I.name===v.fromBlockchain),A=v.fromToken&&E?b(ia(v.fromToken,E)):void 0,L=g.find(I=>I.name===v.toBlockchain),q=v.toToken&&L?b(ia(v.toToken,L)):void 0;E&&(p(E),A&&u({token:A,meta:{blockchains:g,tokens:T}})),L&&(c(L),q&&f({token:q,meta:{blockchains:g,tokens:T}}))}},[m]),sa(()=>{let{clientUrl:v,liquiditySources:E}=N();C("clientUrl",v||void 0),y("liquiditySources",E?.split(",")??void 0)},[])}i(la,"useSyncUrlAndStore");import{i18n as ds}from"@lingui/core";import{useManager as ST}from"@rango-dev/queue-manager-react";import{Alert as Om,Button as CT,css as gs,Divider as fs,IconButton as Um,styled as TT,Typography as kT,WalletIcon as vT}from"@rango-dev/ui";import Ne,{useEffect as Yr,useLayoutEffect as xT,useRef as wT,useState as un}from"react";import{useNavigate as bT}from"react-router-dom";import{i18n as uo}from"@lingui/core";import{Alert as yu,BalanceErrors as sC,Button as Su,ChevronLeftIcon as lC,Divider as Wr,MessageBox as pC,Typography as Va}from"@rango-dev/ui";import J,{useCallback as cC,useEffect as Cu,useMemo as uC,useState as mo}from"react";import{useNavigate as mC}from"react-router-dom";import{i18n as pr}from"@lingui/core";function cr(t){switch(t.type){case 0:return pr.t("Route has been updated.");case 3:return pr.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return pr.t("Route swappers has been updated.");case 2:return pr.t("Route internal coins has been updated.");default:return""}}i(cr,"getQuoteUpdateWarningMessage");import{Modal as Hh}from"@rango-dev/ui";import Gh from"react";function ne(t){let{watermark:e}=pe();return Gh.createElement(Hh,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import{i18n as ma}from"@lingui/core";import{Alert as Yh,ChevronDownIcon as Zh,CloseIcon as Jh,Divider as uc,IconButton as mc,PasteIcon as Rh,Typography as ey,WalletIcon as ty}from"@rango-dev/ui";import Le,{useEffect as oy,useRef as ny}from"react";import fr,{useRef as jh}from"react";import*as Ao from"@radix-ui/react-collapsible";import{keyframes as ic,styled as ur}from"@rango-dev/ui";var pa=300,Vh=ic({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Kh=ic({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),ac=ur(Ao.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ca=ur(Ao.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),mr=ur(Ao.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Vh} ${pa}ms ease-out`},false:{animation:`${Kh} ${pa}ms ease-out`}}}}),dr=ur("div",{transition:`all ${pa}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function gr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=jh(null);return fr.createElement(ac,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&fr.createElement(ca,{className:"collapsible_trigger",onClick:a},s),fr.createElement(mr,{className:"collapsible_content",open:e},r),l==="bottom"&&fr.createElement(ca,{className:"collapsible_trigger",onClick:a},s))}i(gr,"CustomCollapsible");import{darkTheme as sc,styled as ua,TextField as Xh}from"@rango-dev/ui";var lc=ua("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),pc=ua(Xh,{backgroundColor:"$neutral100",padding:"$15"}),cc=ua("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${sc} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${sc} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function dc(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=H(),{config:s}=h(),l=h().blockchains(),p=Dn(e.name,l),c=ny(null),u=s?.defaultCustomDestinations?.[e.name],f=navigator?.userAgent.includes("Firefox"),m=n&&!!r&&e&&!Jn(e,r),g=i(()=>{a("")},"handleClear"),T=i(async C=>{if(C.preventDefault(),navigator.clipboard!==void 0){let y=await navigator.clipboard.readText();a(y),c?.current?.focus()}},"handlePaste"),S=i(()=>r?Le.createElement(mc,{onClick:g,variant:"ghost"},Le.createElement(Jh,{size:12,color:"gray"})):f?null:Le.createElement(mc,{onClick:T,variant:"ghost"},Le.createElement(Rh,{size:16})),"renderSuffix");return oy(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),Le.createElement(lc,null,Le.createElement(gr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Le.createElement(cc,null,Le.createElement("div",{className:"button__content"},Le.createElement(ty,{size:18,color:"info"}),Le.createElement(uc,{size:4,direction:"horizontal"}),Le.createElement(ey,{variant:"label",size:"medium",color:n?"$neutral600":void 0},ma.t("Send to a different address"))),Le.createElement(dr,{orientation:n?"up":"down"},Le.createElement(Zh,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Le.createElement(pc,{ref:c,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:ma.t("Enter {blockchainName} address",{blockchainName:p}),value:r||"",suffix:S(),onChange:C=>{let y=C.target.value;a(y)}})),m&&Le.createElement(Le.Fragment,null,Le.createElement(uc,{size:4}),Le.createElement(Yh,{variant:"alarm",type:"error",title:ma.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(dc,"CustomDestination");import{css as ry,darkTheme as da,IconButton as iy,styled as At}from"@rango-dev/ui";var fc=At("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),gc=At("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ay=At("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${da} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${da} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${da} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),hc=At(ay,{alignSelf:"stretch",minHeight:"93px"}),yc=At("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Sc=At(iy,{position:"absolute",left:"$20"}),Cc=At("div",{paddingTop:"$20"}),Tc=ry({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),kc=At("div",{display:"flex"}),vc=At("div",{overflow:"visible",width:"100%"});import{i18n as mt}from"@lingui/core";import{Button as nC,Divider as Ha,Image as rC,MessageBox as Ir,SelectableWallet as iC,Typography as fu,WalletState as gu}from"@rango-dev/ui";import de,{useEffect as hu,useState as co}from"react";import{WalletState as fa}from"@rango-dev/ui";import{useWallets as sy}from"@rango-dev/wallets-react";import{detectMobileScreens as ly,KEPLR_COMPATIBLE_WALLETS as py,WalletTypes as Wo}from"@rango-dev/wallets-shared";import{useCallback as cy,useEffect as uy,useState as my}from"react";var dy=Object.values(Wo);function no(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:c}=sy(),{connectedWallets:u}=te(),f=h().blockchains(),d=lp(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||dy,m=Gl(s,p,d,e);m=ly()?m.filter(w=>w.showOnMobile!==!1&&s(w.type).installed):m;let g=Zl(m),[T,S]=my(""),C=i(w=>!u.find(v=>v.walletType===w&&v.chain===e),"isExperimentalChainNotAdded"),y=i(async(w,v)=>{let E=s(w);try{if(T&&S(""),E.connected)await l(w);else{if(Pn(m,a.multiWallets))return;o?.(w),await c(w,void 0,v),n?.(w)}}catch(A){r?.(A?.message),S("Error: "+A?.message)}},"handleClick"),k=cy(()=>{let w=m?.filter(v=>v.state===fa.CONNECTING)||[];for(let v of w)l(v.type)},[ep(m)]),x=i(async w=>{s(w).connected&&await l(w)},"disconnectWallet");uy(()=>()=>{k()},[]);let b=i(w=>{let v=w.find(A=>A.type===Wo.DEFAULT);return!v||v.state===fa.NOT_INSTALLED?!1:w.filter(A=>A.state!=fa.NOT_INSTALLED&&![Wo.DEFAULT,Wo.WALLET_CONNECT_2,Wo.LEDGER].includes(A.type)&&p(A.type).supportedChains.filter(L=>L.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),N=i((w,v,E)=>Qn(E,v)&&C(w)&&!py.includes(w)||w==Wo.DEFAULT&&!b(m),"shouldExcludeWallet");return{list:g.filter(w=>!N(w.type,e??"",f)),error:T,handleClick:y,disconnectConnectingWallets:k,disconnectWallet:x}}i(no,"useWalletList");import{i18n as su}from"@lingui/core";import{Divider as jS,getCategoriesCount as XS,SelectableCategoryList as YS,styled as pu,Typography as ZS,Wallet as JS,WalletState as lu}from"@rango-dev/ui";import at,{useState as Ro}from"react";import{useManager as SS}from"@rango-dev/queue-manager-react";import{BottomLogo as CS,Divider as jc,Header as TS}from"@rango-dev/ui";import we,{useEffect as _a,useRef as Xc,useState as kS}from"react";import{useRef as fy}from"react";function hr(){return window.self!==window.top}i(hr,"isAppLoadedIntoIframe");function ga(){let t=fy(null),{iframe:e}=h(),o=hr()&&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(ga,"useIframe");import{useNavigate as gy}from"react-router-dom";function rt(){let t=gy();return()=>t(-1)}i(rt,"useNavigateBack");import{createTheme as va,darkTheme as Wy,lightTheme as Ny}from"@rango-dev/ui";import{useEffect as My,useState as By}from"react";import{theme as Iy,darkColors as Ay}from"@rango-dev/ui";import Ta from"react";function hy(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(hy,"expandShortHexColor");function yy(t){return/[0-9]+$/.test(t)}i(yy,"isOverridingColor");function Sy(t,e){return t.padStart(e,"0")}i(Sy,"pad");function ha(t){let e=Math.min(Math.max(Math.round(t),0),255);return Sy(e.toString(16),2)}i(ha,"intToHex");function Cy(t){return`#${ha(t.red)}${ha(t.green)}${ha(t.blue)}`}i(Cy,"rgbToHex");function Ty(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(Ty,"hexToRGB");function ky(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(ky,"generateShade");function vy(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(vy,"generateTint");function xy(t){return xc(t,ky)}i(xy,"calculateShades");function wy(t){return xc(t,vy)}i(wy,"calculateTints");function xc(t,e){let o=Ty(t),n=[];for(let r=1;r<9;r++)n.push(Cy(e(o,r)));return n}i(xc,"calculateColors");function ya(t,e,o){let a=wy(t).reverse().concat(t),s=xy(t),l=a.concat(s),p={},c=l.length;for(let u=0;u<c;u++){let f=100+(o?c-1-u:u)*50;p[`${e}${f}`]=l[u]}return p}i(ya,"createTintsAndShades");function Sa(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=hy(a);Object.assign(n,ya(p,r,s))}}return{...n,...e}}i(Sa,"expandToGenerateThemeColors");var wc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),by=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=wc(o%52)+e;return wc(o%52)+e},"toAlphabeticName"),Ey=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ca=i(t=>by(Ey(5381,JSON.stringify(t))>>>0),"toHash");function ka(t){let e=Iy.colors,o={...e,...Ay},n,r;if(t?.light){let s={colors:Sa(e,t.light)};n={id:`${Qi}-light-${Ca(s)}`,tokens:s}}if(t?.dark){let s={colors:Sa(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Qi}-dark-${Ca(s)}`,tokens:s}}return{light:n,dark:r}}i(ka,"customizedThemeTokens");function bc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ta.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ta.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Ta.cloneElement(e,{key:l}))}}),o}i(bc,"joinList");function Ec(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Ec,"doesWindowPreferDarkColorScheme");function yr(t){let{colors:e,fontFamily:o=Bl,borderRadius:n=rp,secondaryBorderRadius:r=ip}=t,[a,s]=By(Ec()?"dark":"light"),{theme:l}=h(),{dark:p,light:c}=ka(e),u=va({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[u.className,Ny.className],d=[u.className,Wy.className];if(c){let g=va(c.id,c.tokens);f.push(g.className)}if(p){let g=va(p.id,p.tokens);d.push(g.className)}return My(()=>{let g=i(T=>{T.matches?s("dark"):s("light")},"switchThemeListener");return Ec()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=f.join(" "),T=d.join(" ");return l==="auto"?a==="dark"?T:g:l==="dark"?T:g},"getActiveTheme")}}i(yr,"useTheme");var it=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 Ic}from"@lingui/core";import{Alert as Ly,Button as Py}from"@rango-dev/ui";import Ac from"react";function xa(t){return Ac.createElement(Ly,{action:Ac.createElement(Py,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Ic.t("Activate this tab")),type:"warning",variant:"alarm",title:Ic.t("Another tab is open and handles transactions.")})}i(xa,"ActivateTabAlert");import{i18n as wa}from"@lingui/core";import{Button as Dy,Divider as _y,MessageBox as $y}from"@rango-dev/ui";import Sr from"react";function ba(t){let{open:e,onClose:o,onConfirm:n}=t;return Sr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:B()},Sr.createElement($y,{title:wa.t("Activate current tab"),type:"warning",description:wa.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.")},Sr.createElement(_y,{size:20}),Sr.createElement(Dy,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},wa.t("Confirm"))))}i(ba,"ActivateTabModal");import{ChevronLeftIcon as Uy}from"@rango-dev/ui";import Dc from"react";import{css as Fy,darkTheme as Wc,IconButton as Oy,styled as ro}from"@rango-dev/ui";var Tt=ro(Oy,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Wc} &`]:{backgroundColor:"$neutral"}}}),Nc=ro("div",{position:"absolute",background:"$secondary500",[`.${Wc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Ut=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Mc=ro("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),Bc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Lc=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Pc=Fy({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Cr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function Ea(t){return Dc.createElement(Tt,{variant:"ghost",size:"small",onClick:t.onClick},Dc.createElement(Uy,{color:"black",size:16}))}i(Ea,"BackButton");import{i18n as Qy}from"@lingui/core";import{Button as zy,Typography as qy}from"@rango-dev/ui";import Ia from"react";function Aa(t){return Ia.createElement(Ut,null,Ia.createElement(zy,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Ia.createElement(qy,{variant:"label",size:"medium",color:"error500"},Qy.t("Cancel"))))}i(Aa,"CancelButton");import{i18n as Hy}from"@lingui/core";import{Image as Gy,Tooltip as Vy,WalletIcon as Ky}from"@rango-dev/ui";import io from"react";function Wa(t){let{list:e}=no({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:Pc()},o.map(r=>io.createElement(Cr,{key:r.title},io.createElement(Gy,{src:r.image,size:14})))):Hy.t("Connect Wallet");return io.createElement(Vy,{container:t.container,side:"bottom",content:n},io.createElement(Tt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(Nc,null),io.createElement(Ky,{size:18,color:"black"})))}i(Wa,"WalletButton");import{i18n as kr}from"@lingui/core";import{NotificationsIcon as pS,Popover as cS,SettingsIcon as uS,Tooltip as vr,TransactionIcon as mS}from"@rango-dev/ui";import Pe from"react";import{Notifications as Zy}from"@rango-dev/ui";import Jy from"react";import{useNavigate as Ry}from"react-router-dom";import{create as jy}from"zustand";import{persist as Xy,subscribeWithSelector as Yy}from"zustand/middleware";var Ie=Ft(jy()(Xy(Yy((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 Na(){let t=Ry(),{getNotifications:e,clearNotifications:o}=Ie(),n=e(),r=h().blockchains(),{findToken:a}=h();return Jy.createElement(Zy,{list:n,getBlockchainImage:l=>zl(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${G.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(Na,"NotificationContent");import{useManager as eS}from"@rango-dev/queue-manager-react";import{InProgressIcon as tS}from"@rango-dev/ui";import _c from"react";var oS=i(()=>{let{manager:t}=eS();return it(t).map(({swap:o})=>o).find(o=>o.status==="running")?_c.createElement(Lc,null,_c.createElement(tS,{color:"info",size:6})):null},"InProgressTransactionBadge"),$c=oS;import{EventSeverity as nS}from"@rango-dev/queue-manager-rango-preset";import{Typography as rS}from"@rango-dev/ui";import Fc from"react";function Oc(){let{getNotifications:t}=Ie(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===nS.WARNING);return o?Fc.createElement(Mc,{isSever:n},Fc.createElement(rS,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Oc,"NotificationsBadge");import{RefreshProgressButton as iS}from"@rango-dev/ui";import Ma,{useEffect as aS,useState as Uc}from"react";var sS=1e3,Qc=60,lS=100;function Tr({onClick:t}){let[e,o]=Uc(0),[n,r]=Uc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");aS(()=>{let p;return t?p=window.setInterval(()=>{o(c=>c+1),e===Qc&&l()},sS):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 Ma.createElement(Tt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},Ma.createElement(Bc,{onTransitionEnd:()=>r(!1),isRefetched:n},Ma.createElement(iS,{size:22,color:t?"black":"gray",progress:e/Qc*lS})))}i(Tr,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=ot("notification",s)||r.includes("notifications");return Pe.createElement(Pe.Fragment,null,!r.includes("refresh")&&Pe.createElement(vr,{container:a||B(),side:"top",content:kr.t("Refresh")},Pe.createElement(Tr,{onClick:e})),!l&&Pe.createElement(cS,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Pe.createElement(Na,null)},Pe.createElement("div",null,Pe.createElement(vr,{container:B(),side:"top",content:kr.t("Notifications")},Pe.createElement(Tt,{size:"small",variant:"ghost"},Pe.createElement(pS,{size:18,color:"black"}),Pe.createElement(Oc,null))))),!r.includes("settings")&&Pe.createElement(vr,{container:B(),side:"top",content:kr.t("Settings")},Pe.createElement(Tt,{size:"small",variant:"ghost",onClick:n},Pe.createElement(uS,{size:18,color:"black"}))),!r.includes("history")&&Pe.createElement(vr,{container:B(),side:"top",content:kr.t("Transactions History")},Pe.createElement(Tt,{size:"small",variant:"ghost",onClick:o},Pe.createElement(mS,{size:18,color:"black"}),Pe.createElement($c,null))))}i(ao,"HeaderButtons");import{i18n as Ba}from"@lingui/core";import{Divider as qc,MessageBox as gS,RefreshIcon as hS}from"@rango-dev/ui";import No from"react";import{Button as dS,styled as fS}from"@rango-dev/ui";var zc=fS(dS,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function La(t){let{open:e,onClose:o}=t;return No.createElement(ne,{open:e,dismissible:!0,onClose:o,container:B()},No.createElement(gS,{title:Ba.t("Something went wrong"),type:"error",description:Ba.t("Something went wrong. Please refresh the app.")},No.createElement(qc,{size:30}),No.createElement(zc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},No.createElement(hS,{size:20,color:"primary"}),No.createElement(qc,{size:4,direction:"horizontal"}),Ba.t("Refresh"))))}i(La,"RefreshModal");function Pa(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(Pa,"onScrollContentAttachStatusToContainer");import{css as yS,styled as Da}from"@rango-dev/ui";var Hc="700px",xr=yS({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Gc=Da("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Hc},fixed:{height:Hc}}}}),Vc=Da("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Kc=Da("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 me(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=ga(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,c]=kS(!1),u=te.use.connectedWallets(),{config:{features:f,theme:d}}=h(),{watermark:m}=pe(),g=m==="FULL",{activeTheme:T}=yr(d||{}),S=ot("connectWalletButton",f),{isActiveTab:C,tabManagerInitiated:y,showActivateTabModal:k,setShowActivateTabModal:x,activateCurrentTab:b}=pe(),N=rt(),{manager:w}=SS(),E=it(w).map(({swap:oe})=>oe).some(oe=>oe.status==="running"),A=i(()=>b(eo.forceClaim,E),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),q=typeof r.hasBackButton>"u"||r.hasBackButton,I=Xc(null),Q=Xc(null);return _a(()=>(hr()&&Q.current&&e(Q.current),()=>{o()}),[]),_a(()=>(I.current?.addEventListener("scroll",Pa),()=>{I.current?.removeEventListener("scroll",Pa)}),[]),_a(()=>{c(l==="failed")},[l]),we.createElement(Gc,{height:s,id:Ce.SWAP_BOX_ID,className:`${T()} ${xr()}`,ref:Q},we.createElement(TS,{prefix:we.createElement(we.Fragment,null,q&&we.createElement(Ea,{onClick:()=>{N(),r.onBack&&r.onBack()}})),title:r.title,suffix:we.createElement(we.Fragment,null,r.suffix,r.onWallet&&!S&&we.createElement(Wa,{container:B(),onClick:L,isConnected:!!u?.length}),r.onCancel&&we.createElement(Aa,{onClick:r.onCancel}))}),we.createElement(Vc,{ref:I},n),we.createElement(ba,{open:k,onClose:()=>x(!1),onConfirm:A}),we.createElement(Kc,null,we.createElement("div",{className:"footer__content"},y&&!C&&we.createElement("div",{className:"footer__alert"},we.createElement(xa,{onActivateTab:A}),we.createElement(jc,{size:10})),a),we.createElement(jc,{size:12}),we.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},we.createElement(CS,null))),we.createElement(La,{open:p,onClose:()=>c(!1)}))}i(me,"Layout");import{styled as vS}from"@rango-dev/ui";var Yc="$20 $20 $10 $20",Zo=vS("div",{padding:Yc,overflowY:"auto",flexGrow:1});import{styled as xS}from"@rango-dev/ui";var ye=xS("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 Lo}from"@lingui/core";import{Button as IS,Divider as Rc,Image as AS,MessageBox as WS,Select as NS,TextField as MS}from"@rango-dev/ui";import{namespaces as BS}from"@rango-dev/wallets-shared";import Ke,{useEffect as LS,useState as eu}from"react";import{keyframes as wS,styled as wr}from"@rango-dev/ui";var $M=wr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Mo=wr("div",{position:"relative"}),bS=wS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Bo=wr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${bS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),br=wr("div",{"& img":{borderRadius:"50%"}});import{styled as Zc,Typography as ES}from"@rango-dev/ui";var Jc=Zc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),$a=Zc(ES,{paddingLeft:"$10"}),Fa={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var ou={id:"custom",label:"Custom",generateDerivationPath:t=>t};function tu(t){let e=t?BS[t].derivationPaths:null;return e?[...e,ou]:[]}i(tu,"getDerivationPaths");function so(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:r,type:a,open:s}=t,[l,p]=eu(null),[c,u]=eu("0"),f=l===ou.id,d=tu(n),m=i(({value:T})=>{let S=d?.find(C=>C.id===T);S&&p(S.id)},"handleDerivationPathItemClick"),g=i(()=>{let T=d.find(S=>S.id===l);if(T)o(T.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return LS(()=>{p(tu(n)[0]?.id||null)},[n]),Ke.createElement(ne,{open:s,onClose:e,container:document.getElementById(Ce.SWAP_BOX_ID)||document.body},Ke.createElement(Rc,{size:20}),Ke.createElement(WS,{type:"info",title:Lo.t("Select Derivation Path"),description:Lo.t(`In order to connect to ${a}, you must first select a Derivation Path`),icon:Ke.createElement(Mo,null,Ke.createElement(br,null,Ke.createElement(AS,{src:r,size:45})),Ke.createElement(Bo,null))}),Ke.createElement(Jc,null,Ke.createElement($a,{variant:"body",size:"xsmall",color:"$neutral600"},Lo.t("Choose Derivation Path Template")),Ke.createElement(NS,{value:l||"",options:d.map(T=>({value:T.id,label:T.label})),variant:"filled",handleItemClick:m,styles:{trigger:Fa}}),Ke.createElement(Rc,{size:20}),Ke.createElement($a,{variant:"body",size:"xsmall",color:"$neutral600"},f?Lo.t("Enter Path"):Lo.t("Enter Index")),Ke.createElement(MS,{type:f?"text":"number",variant:"contained",value:c,onChange:T=>u(T.target.value),style:Fa})),Ke.createElement(IS,{type:"primary",onClick:g,disabled:!d||!l||!c},Lo.t("Confirm")))}i(so,"WalletDerivationPathModal");import{Divider as _S}from"@rango-dev/ui";import Ua from"react";import{i18n as Po}from"@lingui/core";import{Image as PS,MessageBox as Oa,WalletState as DS}from"@rango-dev/ui";import lo from"react";function nu(t){let{state:e,image:o,error:n}=t;return e===DS.CONNECTED?lo.createElement(Oa,{type:"success",title:Po.t("Wallet Connected"),description:Po.t("Your wallet is connected, you can use it to swap.")}):n?lo.createElement(Oa,{type:"error",title:Po.t("Failed to Connect"),description:n||Po.t("Your wallet is not connected. Please try again.")}):lo.createElement(Oa,{type:"loading",title:Po.t("Connecting to your wallet"),description:Po.t("Click connect in your wallet popup."),icon:lo.createElement(Mo,null,lo.createElement(br,null,lo.createElement(PS,{src:o,size:45})),lo.createElement(Bo,null))})}i(nu,"ModalContent");function Jo(t){let{open:e,onClose:o,...n}=t;return Ua.createElement(ne,{open:e,onClose:o,container:document.getElementById(Ce.SWAP_BOX_ID)||document.body},Ua.createElement(nu,{...n}),Ua.createElement(_S,{direction:"vertical",size:32}))}i(Jo,"WalletModal");import{i18n as Qa}from"@lingui/core";import{Button as FS,Checkbox as OS,Divider as US,Image as iu,ListItemButton as QS,MessageBox as zS,Radio as qS,RadioRoot as HS}from"@rango-dev/ui";import{namespaces as au}from"@rango-dev/wallets-shared";import De,{useMemo as GS,useState as VS}from"react";import{styled as $S}from"@rango-dev/ui";var ru=$S("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var KS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function po(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=VS([]),a=h().blockchains(),s=GS(()=>o?.map(c=>({name:c,logo:KS(a,au[c].mainBlockchain),title:au[c].title})),[o]),l=i(c=>{r(e?[c]:u=>u.includes(c)?u.filter(f=>f!==c):u.concat(c))},"onSelect"),p=i(c=>e?De.createElement(HS,{value:n?.[0]},c):De.createElement(De.Fragment,null,c),"wrapRadioRoot");return De.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(Ce.SWAP_BOX_ID)||document.body},De.createElement(US,{size:20}),De.createElement(zS,{type:"info",title:Qa.t("Select chain types"),description:Qa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:De.createElement(Mo,null,De.createElement(Cr,null,De.createElement(iu,{src:t.image,size:45})),De.createElement(Bo,null))}),De.createElement(ru,null,p(De.createElement(De.Fragment,null,s?.map(c=>De.createElement(QS,{key:c.name,id:c.name,title:c.title,hasDivider:!0,style:{height:60},onClick:()=>l(c.name),start:De.createElement(iu,{src:c.logo,size:22}),end:e?De.createElement(qS,{value:c.name}):De.createElement(OS,{checked:n.includes(c.name)})}))))),De.createElement(FS,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Qa.t("Confirm")))}i(po,"WalletNamespacesModal");var RS=pu("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),eC=pu(ye,{textAlign:"center"}),Er=3e3,za=300;function cu(){let{fetchStatus:t}=h(),[e,o]=Ro("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=Ro(!1),[l,p]=Ro(null),[c,u]=Ro(null),[f,d]=Ro(""),m=null,g=pe.use.isActiveTab(),{list:T,handleClick:S,error:C,disconnectConnectingWallets:y}=no({onBeforeConnect:P=>{m=setTimeout(()=>{s(!0),d(P)},za)},onConnect:P=>{m&&clearTimeout(m),setTimeout(()=>{f===P&&s(!1)},Er)}}),k=i(()=>{y(),s(!1)},"handleCloseWalletModal"),x=i(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),b=i(()=>{c&&u({...c,open:!1})},"handleCloseDerivationPathModal"),N=T.find(P=>P.type===f),w=N?.image||"",v=N?.state||lu.NOT_INSTALLED,E=tp(T,n),L=XS(E)!==1,q=op(T,e),I=i(P=>{Pn(T,r.multiWallets)||(P.namespaces?.length&&P.state===lu.DISCONNECTED?P.namespaces.length>1?p({open:!0,providerType:P.type,providerImage:P.image,availableNamespaces:P.namespaces,singleNamespace:P.singleNamespace}):P.needsDerivationPath?u({open:!0,providerType:P.type,providerImage:P.image,namespace:P.namespaces[0]}):S(P.type):S(P.type))},"handleWalletItemClick"),Q=i(P=>{let _=q.find(X=>X.type===l?.providerType);_?.singleNamespace&&_?.needsDerivationPath&&P[0]?u({open:!0,providerType:_.type,providerImage:_.image,namespace:P[0]}):S(l?.providerType,P.map(X=>({namespace:X}))),x()},"handleConfirmNamespaces"),oe=i(P=>{P&&c?.namespace&&S(c.providerType,[{namespace:c.namespace,derivationPath:P}]),b()},"handleDerivationPathConfirm");return at.createElement(me,{header:{title:su.t("Connect Wallets")}},at.createElement(eC,null,L&&at.createElement(at.Fragment,null,at.createElement(YS,{setCategory:o,category:e,blockchains:E,isLoading:t==="loading"}),at.createElement(jS,{size:24})),at.createElement(ZS,{variant:"title",size:"xmedium",align:"center"},su.t("Choose a wallet to connect.")),at.createElement(RS,null,q.map((P,_)=>{let X=`wallet-${_}-${P.type}`;return at.createElement(JS,{key:X,...P,container:B(),onClick:()=>I(P),isLoading:t==="loading",disabled:!g})}),at.createElement(Jo,{open:!!a,onClose:k,image:w,state:v,error:C}),at.createElement(po,{open:!!l?.open,onClose:x,onConfirm:Q,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),at.createElement(so,{open:!!c?.open,selectedNamespace:c?.namespace,type:c?.providerType,image:c?.providerImage,onClose:b,onConfirm:oe}))))}i(cu,"WalletsPage");import{keyframes as tC,styled as qa}from"@rango-dev/ui";var uu=qa("div",{position:"relative"}),oC=tC({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),mu=qa("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${oC} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),du=qa("div",{"& img":{borderRadius:"50%"}});var aC=7;function Ga(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=pe.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:c}=h(),[u,f]=co(""),[d,m]=co(null),[g,T]=co(!1),[S,C]=co(null),[y,k]=co(null),[x,b]=co(null),{suggestAndConnect:N}=Ar(),w=null,{list:v,error:E,handleClick:A,disconnectWallet:L,disconnectConnectingWallets:q}=no({chain:e,onBeforeConnect:W=>{w=setTimeout(()=>{f(W)},za)},onConnect:W=>{s?.(W),w&&clearTimeout(w),setTimeout(()=>{f("")},Er)}}),[I,Q]=co(v),oe=v.length,P=r&&oe-r>0,_=i(async W=>{T(!1),C("in-progress");try{await N(W.walletType,W.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain"),X=i(()=>{y&&k({...y,open:!1})},"handleCloseNamespaceModal"),Se=i(()=>{x&&b({...x,open:!1})},"handleCloseDerivationPathModal"),Y=i(W=>{k({open:!0,providerType:W.type,providerImage:W.image,availableNamespaces:W.namespaces,singleNamespace:W.singleNamespace})},"handleOpenNamespacesModal"),ie=i(W=>{let ce=I.find(ue=>ue.type===y?.providerType);ce?.singleNamespace&&ce?.needsDerivationPath&&W[0]?b({open:!0,providerType:ce.type,providerImage:ce.image,namespace:W[0]}):A(y?.providerType,W.map(ue=>({namespace:ue}))),X()},"handleConfirmNamespaces"),he=i(W=>{W&&x?.namespace&&A(x.providerType,[{namespace:x.namespace,derivationPath:W}]),Se()},"handleDerivationPathConfirm");hu(()=>{Q(W=>{let ce=v.findIndex(ue=>o(ue.type,e));return P&&ce>1?[v[ce]].concat(v.filter((ue,$e)=>$e!==ce)):W.map(ue=>v.find($e=>$e.type===ue.type)??ue)})},[JSON.stringify(v)]);let Te=document.getElementById(Ce.SWAP_BOX_ID);hu(()=>{let W=null;return(S==="completed"||S==="rejected")&&(W=setTimeout(()=>C(null),Er)),()=>{W&&clearTimeout(W)}},[S]);let $=i(()=>{q(),f("")},"handleCloseWalletModal");return de.createElement(de.Fragment,null,I.slice(0,r).map(W=>{let ce=Jl({connectedWallets:p,walletType:W.type,chain:e}),ue=ce?qn(ce,aC):"",$e=Qn(c(),e),D=!p.find(le=>le.walletType===W.type&&le.chain===e),z=$e&&D&&W.state===gu.CONNECTED,K=z?mt.t({id:"Add {chain} chain",values:{chain:e}}):ue,se=i(async()=>{W.state===gu.DISCONNECTED?W.namespaces?.length?W.namespaces.length>1?Y(W):W.needsDerivationPath?b({open:!0,providerType:W.type,providerImage:W.image,namespace:W.namespaces[0]}):A(W.type):A(W.type):W.namespaces&&!ue?(await L(W.type),Y(W)):z?(m({walletType:W.type,chain:e,address:ce??""}),T(!0)):n({walletType:W.type,chain:e,address:ce??""})},"onSelectableWalletClick"),ee=d?.chain?Dn(d.chain,c()):void 0;return de.createElement(de.Fragment,{key:`${W.title}_${ee}`},de.createElement(Jo,{open:u===W.type,onClose:$,image:W.image,state:W.state,error:E}),de.createElement(po,{open:!!y?.open,onClose:X,onConfirm:ie,image:y?.providerImage,availableNamespaces:y?.availableNamespaces,singleNamespace:y?.singleNamespace}),de.createElement(so,{open:!!x?.open,selectedNamespace:x?.namespace,type:x?.providerType,image:x?.providerImage,onClose:Se,onConfirm:he}),!!d&&de.createElement(ne,{open:!!d&&g,container:Te,onClose:()=>{m(null)}},de.createElement(Ir,{title:mt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ee}}),type:"warning",description:mt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ee}})},de.createElement(Ha,{size:18}),de.createElement(Ha,{size:32}),de.createElement(nC,{onClick:_.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},mt.t("Confirm")))),S&&de.createElement(ne,{open:!!S,onClose:C.bind(null,null),container:Te},S==="in-progress"&&de.createElement(Ir,{type:"loading",title:mt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ee}}),description:mt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ee}}),icon:de.createElement(uu,null,de.createElement(du,null,de.createElement(rC,{src:W.image,size:45})),de.createElement(mu,null))}),S==="completed"&&de.createElement(Ir,{type:"success",title:mt.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ee}}),description:mt.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ee}})}),S==="rejected"&&de.createElement(Ir,{type:"error",title:mt.t("Request Rejected"),description:mt.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ee}})}),de.createElement(Ha,{direction:"vertical",size:32})),de.createElement(iC,{key:W.type,description:K,onClick:se,selected:o(W.type,e),disabled:!l,...W}))}),P&&de.createElement(hc,{selected:!1,onClick:a},de.createElement(fu,{variant:"label",size:"medium"},mt.t("Show more wallets"),de.createElement(fu,{variant:"label",size:"medium",color:"$primary"},"\xA0+",oe-(r??0)))))}i(Ga,"WalletList");var dC=2;function Tu(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=mC(),l=h().blockchains(),{selectedQuote:p,setSelectedWallets:c,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:f,customDestination:d,setCustomDestination:m}=H(),{connectedWallets:g,selectWallets:T}=te(),{config:S}=h(),[C,y]=mo(""),[k,x]=mo([]),[b,N]=mo(""),[w,v]=mo(null),[E,A]=mo(!!d),L=uC(()=>Zt({filter:"all",quote:p}),[p]),q=Zt({filter:"required",quote:p}),I=l.find(D=>D.name===p?.swaps[p?.swaps.length-1].to.blockchain),Q=i(D=>q.includes(D),"isWalletRequiredFor"),oe=cC(()=>g.filter(D=>D.selected&&L.includes(D.chain)),[g,L]),[P,_]=mo(oe()),[X,Se]=mo([]),Y=i((D,z)=>Se(K=>K.concat({blockchain:D,walletType:z})),"addNextSelectedWallets"),ie=k.length>0,he=i((D,z)=>!!P.find(K=>K.walletType===D&&K.chain===z&&K.selected&&(Q(z)||!Q(z)&&!d)),"isSelected"),Te=i((D,z,K)=>{let se=!1;return D.map(ee=>{if(ee.chain===z){let le=ee.selected;return!se&&K?(se=!0,le=!0):K||(le=!1),{...ee,selected:le}}return ee})},"updateSelectableWallets"),$=i(D=>{A(D),D?Q(I?.name??"")||_(z=>Te(z,I?.name||"",!1)):(m(""),_(z=>Te(z,I?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),W=i(D=>{if(C&&y(""),he(D.walletType,D.chain))return;let K=g.find(se=>se.walletType===D.walletType&&se.chain===D.chain);K&&(n(),D.chain===I?.name&&E&&!Q(I.name)&&(A(!1),m(null)),_(se=>se.filter(ee=>ee.chain!==D.chain).concat({...K,selected:!0})))},"onChange"),ce=i(()=>{let D=P.filter(z=>z.selected);T(D),c(D),f(!0),o()},"onConfirmBalance"),ue=i(async()=>{x([]),N(""),v(null);let D=await r?.({selectedWallets:P.filter(K=>K.selected),customDestination:d}),z=D.warnings;z?.balance?.messages&&x(z.balance.messages),z?.quoteUpdate&&v(z.quoteUpdate),D.error&&N(Np(D.error)),!D.error&&!z?.balance?.messages.length?ce():x(z?.balance?.messages??[])},"onConfirmWallets");Cu(()=>{_(D=>{let z=[];return D.forEach(K=>{!g.some(ee=>ee.chain===K.chain&&ee.walletType===K.walletType&&ee.address===K.address)||z.push(K)}),z=z.concat(g.filter(K=>!!!z.find(ee=>ee.chain===K.chain)&&K.selected&&L.includes(K.chain))),z})},[g,L]),Cu(()=>{let D=[];X.length>0&&(X.forEach(z=>{let K=g.find(se=>se.chain===z.blockchain&&se.walletType===z.walletType);K?W(K):D.push(z)}),Se(D))},[g,X]);let $e=document.getElementById(Ce.SWAP_BOX_ID);return J.createElement(ne,{open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!C,container:$e,...!C&&{styles:{container:{height:"100%"}},footer:J.createElement(kc,null,J.createElement(Su,{loading:a,disabled:jp(a,E,d,p,P,I),onClick:ue,variant:"contained",type:"primary",fullWidth:!0,size:"large"},uo.t("Confirm")))},...C&&{styles:{container:{height:"100%",padding:"$0"}},header:J.createElement(yc,null,J.createElement(Sc,{variant:"ghost",onClick:y.bind(null,"")},J.createElement(lC,{size:16})),J.createElement(Va,{variant:"headline",size:"small"},uo.t({id:"Your {blockchainName} wallets",values:{blockchainName:tt(C,l)}})))},anchor:"center"},J.createElement(ne,{open:ie,onClose:x.bind(null,[]),container:$e},J.createElement(pC,{title:uo.t("Insufficient account balance"),type:"error",description:J.createElement(sC,{messages:k??[]})},J.createElement(Su,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:ce},uo.t("Proceed anyway")))),C&&J.createElement(Cc,null,J.createElement("div",{className:Tc()},J.createElement(Ga,{chain:C,isSelected:he,selectWallet:W,onShowMore:()=>y(C),onConnect:D=>{Y(C,D)}}))),!C&&J.createElement(J.Fragment,null,b&&J.createElement(J.Fragment,null,J.createElement(yu,{variant:"alarm",type:"error",title:uo.t(b)}),J.createElement(Wr,{size:12})),w&&J.createElement(J.Fragment,null,J.createElement(yu,{variant:"alarm",type:"warning",title:cr(w)}),J.createElement(Wr,{size:12})),J.createElement(vc,null,L.map((D,z)=>{let K=l.find(Ee=>Ee.name===D),se=`wallet-${z}`,ee=z===L.length-1,le=ee&&I&&S?.customDestination!==!1;return J.createElement("div",{key:se},J.createElement(fc,null,J.createElement(Va,{variant:"title",size:"xmedium"},uo.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),J.createElement(Va,{variant:"label",color:"$neutral700",size:"medium"},uo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),J.createElement(Wr,{size:24}),J.createElement(gc,null,J.createElement(Ga,{chain:D,isSelected:he,selectWallet:W,limit:dC,onShowMore:()=>y(K?.name??""),onConnect:Ee=>{Y(D,Ee)}})),!ee&&J.createElement(Wr,{size:32}),le&&J.createElement(dc,{blockchain:I,open:E,handleOpenChange:$}))}))))}i(Tu,"ConfirmWalletsModal");import{i18n as BC}from"@lingui/core";import{Alert as LC,Button as PC,InfoIcon as DC}from"@rango-dev/ui";import Ze from"react";import{Alert as hC,Button as yC,Divider as Xa,NoRouteIcon as SC,RefreshIcon as CC,Typography as Iu}from"@rango-dev/ui";import Ye from"react";import{i18n as ku}from"@lingui/core";var fC=24,gC=60;function vu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:re().genericServerError,action:{onClick:n,title:ku.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:re().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:ku.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(vu,"makeInfo");var Ka=(o=>(o[o.small=fC]="small",o[o.large=gC]="large",o))(Ka||{}),ja=(o=>(o.small="small",o.large="medium",o))(ja||{});import{styled as Nr}from"@rango-dev/ui";var xu=Nr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),wu=Nr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),bu=Nr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Eu=Nr("div",{padding:"$6 $0"});function en(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=vu(o,r,()=>a(s,!0),e);return Ye.createElement(xu,null,Ye.createElement(SC,{size:Ka[n],color:"gray"}),Ye.createElement(Xa,{size:4}),Ye.createElement(Iu,{variant:"title",size:ja[n]},re().noResultError.title),n==="large"&&Ye.createElement(Xa,{size:4}),!!l.description&&Ye.createElement(wu,{size:n},Ye.createElement(Iu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Ye.createElement(Xa,{size:n==="large"?"24":"4"}),!!l.alert&&Ye.createElement(bu,{size:n},Ye.createElement(hC,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Ye.createElement(yC,{size:"xsmall",type:l.alert.type,prefix:Ye.createElement(Eu,null,Ye.createElement(CC,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(en,"NoResult");import{i18n as tn}from"@lingui/core";import{Button as kC,Divider as vC,MessageBox as xC,Typography as wC,WarningIcon as bC}from"@rango-dev/ui";import Wt from"react";import{Typography as Mu}from"@rango-dev/ui";import Za from"react";import{darkTheme as TC,styled as Mr}from"@rango-dev/ui";var Au=Mr("div",{width:"100%"}),Ya=Mr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Wu=Mr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${TC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Nu=Mr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Bu(t){let{title:e,value:o,valueColor:n}=t;return Za.createElement(Wu,null,Za.createElement(Mu,{size:"medium",variant:"label",className:"_title"},e),Za.createElement(Mu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Bu,"QuoteErrorsModalItem");function Lu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:tn.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:tn.t("Gas cost"),value:M(r.totalFee,2,2)},{title:tn.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:tn.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Wt.createElement(ne,{footer:Wt.createElement(kC,{type:"primary",size:"large",prefix:Wt.createElement(bC,null),fullWidth:!0,disabled:a,onClick:n},re().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},Wt.createElement(xC,{type:s,title:re().highValueLossError.impactTitle,description:re().highValueLossError.description}),Wt.createElement(Ya,null,Wt.createElement(vC,{size:"4"}),Wt.createElement(wC,{size:"small",variant:"title"},tn.t("Details")),Wt.createElement(Ya,null,l.map((p,c)=>Wt.createElement(Bu,{key:c,...p})))))}i(Lu,"HighValueLossWarningModal");import{i18n as Ja}from"@lingui/core";function Pu(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=Ja.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&&(It(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=Ja.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=Ja.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(Pu,"makeAlerts");import{i18n as Do}from"@lingui/core";import{Button as Du,Divider as _u,MessageBox as EC,Typography as IC}from"@rango-dev/ui";import fo from"react";import{useNavigate as AC}from"react-router-dom";function $u(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=AC(),c=e??o;return fo.createElement(ne,{anchor:"bottom",open:n,prefix:fo.createElement(Du,{size:"small",variant:"ghost",onClick:()=>p("../"+G.settings)},fo.createElement(IC,{variant:"label",size:"medium",color:"$neutral900"},Do.t("Change settings"))),container:B(),onClose:r},fo.createElement(EC,{type:"warning",title:s.type===3?Do.t("High slippage"):Do.t("Low slippage"),description:s.type===3?Do.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:c}}):Do.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},fo.createElement(_u,{size:18}),fo.createElement(_u,{size:32}),fo.createElement(Du,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Do.t("Confirm anyway"))))}i($u,"SlippageWarningModal");import{Button as WC,MessageBox as NC,WarningIcon as MC}from"@rango-dev/ui";import Br from"react";function Fu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Br.createElement(ne,{footer:Br.createElement(WC,{type:"primary",size:"large",prefix:Br.createElement(MC,null),fullWidth:!0,disabled:r,onClick:n},re().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},Br.createElement(NC,{type:"warning",title:re().unknownPriceError.impactTitle,description:re().unknownPriceError.description}))}i(Fu,"UnknownPriceWarningModal");function on(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:c,onChangeSettings:u}=t,f={confirmationDisabled:a,open:r,onClose:p,onConfirm:c},d=o?.type===0||o?.type===1,m=Pu(e,o?.type===3||o?.type===4?o:null);return m&&!n&&(m.action=null),Ze.createElement(Ze.Fragment,null,d&&Ze.createElement(en,{error:o,fetch:s}),!!m&&Ze.createElement(Au,null,Ze.createElement(LC,{title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Ze.createElement(Nu,{onClick:l},Ze.createElement(DC,{size:12,color:"gray"}))},...m.action==="change-settings"&&{action:Ze.createElement(PC,{size:"xxsmall",type:m.alertType,onClick:u},BC.t("Change"))}})),e&&Ze.createElement(Ze.Fragment,null,e.type===0&&Ze.createElement(Lu,{...f,warning:e}),(e.type===3||e.type===2)&&Ze.createElement($u,{...f,warning:e}),e.type===1&&Ze.createElement(Fu,{...f,warning:e})))}i(on,"QuoteWarningsAndErrors");import mT from"bignumber.js";import Vr from"react";import{i18n as go}from"@lingui/core";import{Alert as RC,Divider as $o,FullExpandedQuote as eT,InfoIcon as tT,NumericTooltip as ym,QuoteTag as oT,StepDetails as nT,TokenAmount as rT,Typography as Fo}from"@rango-dev/ui";import as from"bignumber.js";import F,{useRef as iT,useState as aT}from"react";import{styled as Ra}from"@rango-dev/ui";var es=Ra("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Ou=Ra("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Uu=Ra("div",{width:"100%",display:"flex"});import*as Lr from"@radix-ui/react-collapsible";import{Button as _C,css as nn,darkTheme as Ae,Image as Qu,styled as ze,Typography as $C}from"@rango-dev/ui";var FC=300,zu=ze(Lr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ae} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ae} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ae} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),qu=nn({padding:"$10 $15"}),Hu=ze(_C,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Ae} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Ae} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Ae} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Gu=ze("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${Ae} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Ae} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Ae} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Ae} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Ae} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Ae} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Ae} &`]:{backgroundColor:"$neutral400"}}}}]}),Vu=nn({width:"100%",padding:"$15 $15 $10 $15"}),Ku=nn({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),_o=nn({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),ju=nn({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ae} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Xu=ze(Lr.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:{[`& ${Qu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Qu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ae} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ae} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ae} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Yu=ze("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Zu=ze(mr,{width:"100%",background:"inherit"}),ts=ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${FC}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),tD=ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Ju=ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ae} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Ru=ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),os=ze($C,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),em=ze("div",{display:"flex",flexWrap:"wrap"}),ns=ze("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),tm=ze("div",{display:"flex"}),Pr=ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Ae} &`]:{borderTopColor:"$neutral800"}});import{i18n as kt}from"@lingui/core";import{ChevronDownIcon as UC,CloseIcon as QC,Divider as $r,IconButton as zC,NumericTooltip as qC,QuoteCost as HC,Typography as dt}from"@rango-dev/ui";import R,{useState as im}from"react";import{css as OC,styled as Dr}from"@rango-dev/ui";var _r=Dr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),rs=Dr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),om=Dr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),nm=Dr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),rm=OC({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var GC=i(t=>t.fee.isZero()?null:R.createElement(_r,null,R.createElement(dt,{variant:"label",size:"medium",color:"neutral600"},t.label),R.createElement(dt,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function am(t){let[e,o]=im(!1),[n,r]=im(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:c,showModalFee:u}=t,f=s?.swaps??[],d=B(),m=_p(f);return R.createElement(R.Fragment,null,R.createElement(HC,{onClickFee:u?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:c,time:p,steps:a,tooltipGas:u?kt.t("View more info"):void 0,tooltipContainer:d}),R.createElement(ne,{container:d,open:e,header:R.createElement(nm,null,R.createElement(dt,{variant:"title",size:"medium"},kt.t("Gas & Fee Explanation")),R.createElement(zC,{onClick:()=>o(!1),variant:"ghost"},R.createElement(QC,{color:"gray",size:14}))),onClose:()=>{o(!1)}},R.createElement(om,null,R.createElement(dt,{variant:"title",size:"small"},kt.t("Details")),R.createElement($r,{size:10}),Object.entries(m.payable).flatMap(([g,T])=>T.map((S,C)=>{let y=`payable-fee-${C}`,k=ta(S);return R.createElement(_r,{key:y},R.createElement(dt,{variant:"label",size:"medium",color:"neutral600"},Zi(g,kt.t)),R.createElement(qC,{content:S.amount,container:d},R.createElement(dt,{variant:"label",size:"medium"},M(S.amount,2,2)," ",S.asset.symbol," ($",M(k,4,4),")")))})),R.createElement(_r,{className:"total_payable_fee"},R.createElement(dt,{variant:"label",size:"medium"},kt.t("Total Payable Fee")),R.createElement(dt,{variant:"label",size:"medium"},"$",M(l,4,4))),R.createElement(rs,null),Object.keys(m.nonePayable).length&&R.createElement(gr,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:R.createElement("div",{className:rm()},R.createElement(dt,{size:"small",variant:"body",color:"neutral700"},n?kt.t("Hide non-payable fees"):kt.t("Show non-payable fees")),R.createElement($r,{size:4,direction:"horizontal"}),R.createElement(dr,{orientation:n?"up":"down"},R.createElement(UC,{size:12,color:"gray"}))),open:n},R.createElement(dt,{size:"small",variant:"title"},kt.t("Description")),R.createElement($r,{size:4}),R.createElement(dt,{size:"small",variant:"body",color:"neutral700"},kt.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),R.createElement($r,{size:10}),Object.entries(m.nonePayable).map(([g,T],S)=>{let C=Dp(T),y=Zi(g,kt.t),k=`non-payable-fee-${S}`;return R.createElement(GC,{key:k,fee:C,label:y})}),R.createElement(rs,null)))))}i(am,"QuoteCostDetails");import{i18n as pm}from"@lingui/core";import{TokenAmount as cm}from"@rango-dev/ui";import Fr from"react";import{css as VC,styled as KC}from"@rango-dev/ui";var sm=KC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),lm=VC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function rn(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Fr.createElement(sm,null,Fr.createElement(cm,{direction:"horizontal",label:pm.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}}),Fr.createElement("div",{className:lm()}),Fr.createElement(cm,{direction:"horizontal",tooltipContainer:B(),label:pm.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(rn,"QuoteSummary");import{i18n as gm}from"@lingui/core";import{ChevronDownIcon as YC,ChevronRightIcon as ZC,Divider as is,Image as JC,Tooltip as qr,Typography as Ur}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as jC,useState as an}from"react";var um=480,mm=768,dm=1024,fm=1200,XC=i(()=>{let[t,e]=an(!1),[o,n]=an(!1),[r,a]=an(!1),[s,l]=an(!1),[p,c]=an(!1),u=i(()=>{e(window.innerWidth<=um),n(window.innerWidth>um&&window.innerWidth<=mm),a(window.innerWidth>mm&&window.innerWidth<=dm),l(window.innerWidth>dm&&window.innerWidth<=fm),c(window.innerWidth>fm)},"handleResize");return jC(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Or=XC;var Qr=4,zr=6,sn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||B();return O.createElement(qr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},O.createElement(Yu,{className:n,state:a},O.createElement(JC,{src:o,size:16})))},"ImageComponent");function hm(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||B(),c=r.length,u=Rp(r),{isTablet:f,isMobile:d}=Or();return O.createElement(Xu,{listItem:s==="list-item",ref:m=>e.current=m,selected:o,onClick:m=>{m.stopPropagation(),n(g=>!g)}},O.createElement("div",{className:_o()},O.createElement(Ur,{variant:"body",size:"xsmall"},gm.t("Via:")),O.createElement(is,{direction:"horizontal",size:4}),r.map((m,g)=>{let T=`item-${g}`,S=O.createElement(ts,null,O.createElement(ZC,{size:12,color:"black"}));return d||f?O.createElement(O.Fragment,{key:T},O.createElement(sn,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),g!==c-1&&O.createElement(O.Fragment,null,S)):O.createElement(O.Fragment,{key:T},c<=Qr||c>Qr&&g<Qr-1?O.createElement(O.Fragment,null,O.createElement(sn,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),g!==c-1&&O.createElement(O.Fragment,null,S)):g===Qr-1&&O.createElement(qr,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},S,r.map((C,y)=>{let k=`image-${y}`;return y>=g&&O.createElement(O.Fragment,{key:k},O.createElement(sn,{content:C.swapper.displayName,src:C.swapper.image,state:C.state,open:!1}),y!==c-1&&O.createElement(O.Fragment,null,S))}))},O.createElement(ns,{state:r.find((C,y)=>y>=g&&(C.state==="error"||C.state==="warning"))?.state},O.createElement(Ur,{size:"xsmall",variant:"body"},"+",c-g))))})),O.createElement("div",{className:_o()},O.createElement("div",{className:"blockchains_section"},O.createElement("div",{className:_o()},O.createElement(Ur,{variant:"body",size:"xsmall"},gm.t("Chains:")),O.createElement(is,{direction:"horizontal",size:4}),u.map((m,g)=>O.createElement(O.Fragment,{key:m.displayName},u.length<=zr||u.length>zr&&g<zr-1?O.createElement(qr,{container:p,side:"bottom",content:m.displayName,sideOffset:4},O.createElement(sn,{content:"",src:m.image,open:!1,className:g!==0?"blockchainImage":""})):g===zr-1&&O.createElement(qr,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},u.map((T,S)=>S>=g&&O.createElement(sn,{key:T.displayName,content:"",src:T.image,open:!1,className:S>g?"blockchainImage":"",container:l})))},O.createElement(ns,{className:"blockchainImage"},O.createElement(Ur,{size:"xsmall",variant:"body"},"+",u.length-g))))),O.createElement(is,{direction:"horizontal",size:32}))),O.createElement(ts,{orientation:a?"up":"down"},O.createElement(YC,{size:12,color:"black"}))))}i(hm,"QuoteTrigger");function ss(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:f=!1,container:d}=t,m=h().blockchains(),{findToken:g}=h(),T=h().swappers(),{customSlippage:S,slippage:C}=h(),y=S||C,[k,x]=aT(t.expanded),b=iT(null),N=M(o.value,6,6),w=M(n.value,6,6),v=n.usdValue?M(n.usdValue,4,4):"",E=nt(o.usdValue,n.usdValue??null),A=M(E,2,2),L=It(E??0),q=i((he,Te)=>he.map(($,W)=>{let ce,ue=r?.type===3&&r.swap.swapperId===$.swapperId,$e=r?.type===4&&r.recommendedSlippages?.has(W),D=a?.type===2&&a.recommendedSlippages?.has(W),z=ue||$e,K=D;z?ce="error":K&&(ce="warning");let se=z?go.t("Slippage Error"):go.t("Slippage Warning");return ue&&(se=go.t("Bridge Limit Error")),{swapper:{displayName:Go($.swapperId,T)??"",image:$.swapperLogo},from:{token:{displayName:$.from.symbol,image:$.from.logo},chain:{displayName:tt($.from.blockchain,m)??"",image:$.from.blockchainLogo},price:{value:W===0&&!Te?M(o.value,6,6):M($.fromAmount,6,6),usdValue:M(($.from.usdPrice??0)*parseFloat($.fromAmount),4,4),realValue:W===0?o.value:$.fromAmount,realUsdValue:new as($.from.usdPrice??0).multipliedBy($.fromAmount).toString()}},to:{token:{displayName:$.to.symbol,image:$.to.logo},chain:{displayName:tt($.to.blockchain,m)||"",image:$.to.blockchainLogo},price:{value:M($.toAmount,6,6),usdValue:M(($.to.usdPrice??0)*parseFloat($.toAmount),4,4),realValue:$.toAmount,realUsdValue:new as($.to.usdPrice??0).multipliedBy($.toAmount).toString()}},state:ce,alerts:z||K?F.createElement(Ou,{dense:f},F.createElement(RC,{variant:"alarm",type:z?"error":"warning",title:se,footer:F.createElement(Uu,null,ue&&F.createElement("div",null,F.createElement(Fo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement($o,{direction:"vertical",size:2}),F.createElement(Fo,{size:"xsmall",variant:"body",color:"neutral900"},go.t({id:"Yours: {amount} {symbol}",values:{amount:M($.fromAmount,6,6),symbol:$?.from.symbol}}))),($e||D)&&!ue&&F.createElement("div",null,F.createElement(Fo,{size:"xsmall",variant:"body",color:"neutral900"},go.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(W)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(W)}}})),F.createElement($o,{direction:"vertical",size:2}),F.createElement(Fo,{size:"xsmall",variant:"body",color:"neutral900"},go.t({id:"Yours: {userSlippage}",values:{userSlippage:y}}))))})):void 0,time:Vo($.estimatedTimeInSeconds),fee:M(ea($,g),2,2),internalSwaps:$.internalSwaps?q($.internalSwaps):void 0}}),"getQuoteSteps"),I=q(e?.swaps??[]),Q=I.length,oe=d||B(),P=tc(t.quote.tags||[]),_=!!u,X=Vo(_n(e?.swaps)),Se=tr(e?.swaps??[],g),Y=M(Se,2,2),ie=Se.gte(new as(Wp));return f?F.createElement(eT,{selected:l,fee:Y,time:X,tooltipContainer:Ho(),steps:I,tags:P,feeWarning:ie,percentageChange:A,warningLevel:L,outputPrice:{value:w,usdValue:v,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Gu,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Vu()},!p&&P.length?F.createElement(F.Fragment,null,F.createElement(tm,null,P.map((he,Te)=>{let $=`${he.value}_${Te}`;return F.createElement(F.Fragment,{key:$},F.createElement(oT,{label:he.label,value:he.value}),F.createElement($o,{size:4,direction:"horizontal"}))})),F.createElement(Pr,null),!_&&F.createElement($o,{size:4})):null,F.createElement("div",{id:"portal-root",className:Ku()},F.createElement(am,{quote:e,time:X,fee:Y,feeWarning:ie,showModalFee:c,steps:Q}),_&&F.createElement(Hu,{onClick:he=>{he.stopPropagation(),u()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Fo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},go.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:ju()},F.createElement(Ru,null,F.createElement(tT,{size:12,color:"gray"})),F.createElement(em,null,F.createElement(os,{size:"small",variant:"body"},`${N} ${I[0].from.token.displayName} = `),F.createElement(ym,{content:n.value,container:oe,open:n.value?void 0:!1},F.createElement(os,{size:"small",variant:"body"},"\xA0",`${w} ${I[I.length-1].to.token.displayName}`))),F.createElement(ym,{content:n.usdValue,container:oe},F.createElement($o,{size:2,direction:"horizontal"}),F.createElement(Fo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${v})`))),s==="list-item"&&F.createElement(rT,{tooltipContainer:oe,type:"output",direction:"vertical",price:{value:w,usdValue:v,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:I[Q-1].to.token.displayName,image:I[Q-1].to.token.image},chain:{image:I[Q-1].to.chain.image},percentageChange:A,warningLevel:L}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(rn,{from:I[0].from,to:I[Q-1].to,percentageChange:A,warningLevel:L}),F.createElement($o,{size:4}))),F.createElement(zu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:x},F.createElement(hm,{type:s,quoteRef:b,selected:l,setExpanded:x,container:oe,expanded:k,steps:I}),F.createElement(Zu,{open:k},F.createElement(Ju,null),F.createElement("div",{className:qu()},I.map((he,Te)=>{let $=`item-${Te}`;return F.createElement(nT,{type:"quote-details",key:$,tooltipContainer:oe,step:he,hasSeparator:Te!==I.length-1,state:he.state})})))))}i(ss,"Quote");import{Divider as cT,Skeleton as uT}from"@rango-dev/ui";import Mt from"react";import{darkTheme as sT,styled as Hr}from"@rango-dev/ui";var Sm=Hr("div",{$$color:"$colors$neutral100",[`.${sT} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Cm=Hr("div",{paddingTop:"$2"}),Tm=Hr("div",{paddingLeft:"$8"}),km=Hr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Mm,Divider as ft,Skeleton as Je}from"@rango-dev/ui";import V from"react";import{css as lT,styled as Nt}from"@rango-dev/ui";var ls=Nt("div",{display:"flex"}),vm=Nt("div",{padding:"$10 $0 $20"}),xm=Nt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),wm=Nt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),bm=Nt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Em=Nt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Im=Nt("div",{width:"65%",display:"flex",justifyContent:"start"}),Am=Nt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Wm=Nt("div",{padding:"$15 $0 $15 $0"}),Nm=lT({display:"flex",justifyContent:"space-between",alignItems:"center"});function ln(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(bm,null,V.createElement(Im,null,V.createElement(Mm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),V.createElement(ft,{size:8,direction:"horizontal"}),V.createElement(Am,null,V.createElement(Je,{height:10,width:60,variant:"rounded"}),V.createElement(ft,{size:4}),V.createElement(Je,{height:15,variant:"rounded"}))),V.createElement(Je,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(ls,null,V.createElement(Je,{width:65,height:20,variant:"rounded"}),V.createElement(ft,{size:4,direction:"horizontal"}),V.createElement(Je,{width:65,height:20,variant:"rounded"}),V.createElement(ft,{size:4,direction:"horizontal"}),V.createElement(Je,{width:65,height:20,variant:"rounded"})),V.createElement(Pr,null),!r&&V.createElement(ft,{size:4})),V.createElement("div",{className:Nm()},V.createElement(ls,null,V.createElement(Je,{width:60,height:10,variant:"rounded"}),V.createElement(ft,{size:4,direction:"horizontal"}),V.createElement(Je,{width:60,height:10,variant:"rounded"}),V.createElement(ft,{size:4,direction:"horizontal"}),V.createElement(Je,{width:60,height:10,variant:"rounded"})),r&&V.createElement(Je,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(vm,null,V.createElement(Je,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(xm,null,V.createElement(wm,null,V.createElement(Mm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),V.createElement(ft,{direction:"horizontal",size:4}),V.createElement(Je,{height:15,width:150,variant:"rounded"})),V.createElement(ft,{size:10}),V.createElement(Je,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(ft,{size:4}),V.createElement(Wm,null,n,V.createElement(Em,null),n),V.createElement(ft,{size:12})))}i(ln,"QuoteSummarySkeleton");import{ChainToken as _m,Divider as cs,NextIcon as pT,Skeleton as Gr}from"@rango-dev/ui";import We from"react";import{styled as pn}from"@rango-dev/ui";var Bm=pn("div",{display:"flex",alignItems:"start"}),Lm=pn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),ps=pn("div",{display:"flex",alignItems:"center",flexGrow:1}),Pm=pn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Dm=pn("div",{display:"flex",alignItems:"center"});function vt(t){let{separator:e=!0}=t;return We.createElement(We.Fragment,null,We.createElement(Dm,null,We.createElement(Gr,{height:22,width:22,variant:"circular"}),We.createElement(cs,{direction:"horizontal",size:8}),We.createElement(Gr,{height:15,width:148,variant:"rounded"})),We.createElement(Bm,null,We.createElement(km,{hideSeparator:!e}),We.createElement(Lm,{extraSpace:e},We.createElement(ps,null,We.createElement(_m,{size:"small",loading:!0,chainImage:"",tokenImage:""}),We.createElement(cs,{direction:"horizontal",size:8}),We.createElement(Gr,{height:12,variant:"rounded"})),We.createElement(Pm,null,We.createElement(pT,{color:"gray",size:16})),We.createElement(ps,null,We.createElement(_m,{size:"small",loading:!0,chainImage:"",tokenImage:""}),We.createElement(cs,{direction:"horizontal",size:8}),We.createElement(Gr,{height:12,variant:"rounded"})))))}i(vt,"StepSkeleton");function cn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Mt.createElement(Sm,{expanded:o,rounded:e!=="basic"},Mt.createElement(ln,{type:e,tagHidden:n}),Mt.createElement(Cm,null,Mt.createElement(uT,{height:15,variant:"rounded"})),o&&Mt.createElement(Tm,null,Mt.createElement(cT,{size:24}),Mt.createElement(vt,null),Mt.createElement(vt,null),Mt.createElement(vt,{separator:!1})))}i(cn,"QuoteSkeleton");function ho(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:c,selected:u,onClickAllRoutes:f,fullExpandedMode:d=!1,container:m}=t,{inputAmount:g,inputUsdValue:T,toToken:S}=H(),C=e?.outputAmount?new mT(e?.outputAmount):null,y=e?.outputAmount?nr(e?.outputAmount,ir(e)||S?.usdPrice):null,x=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Vr.createElement(es,null,Vr.createElement(cn,{tagHidden:l,type:o,expanded:s})):x?Vr.createElement(es,{onClick:()=>p?.(e)},Vr.createElement(ss,{quote:e,error:r,container:m,showModalFee:c,warning:a,tagHidden:l,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:d,input:{value:g,usdValue:T?.toString()??""},output:{value:C?.toString()??"",usdValue:y?.toString()??""}})):null}i(ho,"QuoteInfo");import{calculatePendingSwap as hT}from"@rango-dev/queue-manager-rango-preset";import{useEffect as yT}from"react";import{useRef as dT,useState as fT}from"react";var gT=2e3;function Kr({request:t}){let[e,o]=fT(!1),n=dT(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,gT)),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(Kr,"useFetch");function $m(){let{fetch:t,loading:e,cancelFetch:o}=Kr({request:async(n,r)=>await $t().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i($m,"useFetchConfirmQuote");function jr(t){if(!t.swaps)throw new Error(re().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=us(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(jr,"throwErrorIfResponseIsNotValid");function us(t){if(Bp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Lp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=$p(t);if(o){let n=or(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(us,"getQuoteError");function Fm(t,e,o){let n=!1;t&&(n=Jp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=Eo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(qp(t,e)?r.quoteUpdate={type:3,newOutputAmount:M(bo(e)),percentageChange:M(nt(bo(t)??"",bo(e)??""),null,2)}:oa(t,e)?r.quoteUpdate={type:0}:na(t,e)?r.quoteUpdate={type:1}:ra(t,e)&&(r.quoteUpdate={type:2}));let s=Hp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(Fm,"generateWarnings");function Xr(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(Xr,"handleQuoteErrors");function ms(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=H(),{slippage:p,customSlippage:c}=h(),u=h().getDisabledLiquiditySources(),f=h().blockchains(),d=h().tokens(),{findToken:m}=h(),g=c||p,{fetch:T,cancelFetch:S,loading:C}=$m();return yT(()=>S,[]),{loading:C,fetch:i(async k=>{let x=k.selectedWallets,b=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let N=x.reduce((v,E)=>(v[E.chain]=E.address,v),{}),w={requestId:r?.requestId||"",selectedWallets:N,destination:b||void 0};try{return await T(w,!0).then(v=>{let{result:E}=v;jr({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let A={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};n(A);let L={slippage:g.toString(),disabledSwappersGroups:u},q=Fm(r??void 0,A,{fromToken:t,toToken:e,meta:{blockchains:f},findToken:m,selectedWallets:x,userSlippage:g});q.quoteUpdate&&s(!1),l();let I=!!q.balance,Q=hT(o.toString(),E,Qp(x),L,!I,{blockchains:f,tokens:d});return{quote:A,swap:Q,error:null,warnings:q}})}catch(v){return Xr(v)}},"fetch"),cancelFetch:S}}i(ms,"useConfirmSwap");var ET=TT("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Um}`]:{width:"$48",height:"$48"}}),IT=gs({flexGrow:1,paddingRight:"$10"}),AT=gs({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),WT=gs({display:"flex",justifyContent:"space-between",alignItems:"center"});function Qm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=H(),s=bT(),[l,p]=un(""),c=!n,[u,f]=un(!1),[d,m]=un(!1),{isActiveTab:g}=pe(),T=h().getDisabledLiquiditySources(),S=wT(T),{manager:C}=ST(),{fetch:y,loading:k,cancelFetch:x}=ms(),[b,N]=un({swap:null,error:null,warnings:null}),[w,v]=un(!1),E=i(async({selectedWallets:_,customDestination:X})=>{let Se=await y?.({selectedWallets:_,customDestination:X});return N(Se),Se},"onConfirmSwap"),A=i(async()=>{if(b.swap&&n)try{await C?.create("swap",{swapDetails:b.swap},{id:b.swap.requestId});let _=`../${G.swaps}/${b.swap.requestId}`;s(_,{replace:!0}),setTimeout(()=>{e("")},0)}catch(_){p("Error: "+_?.message)}},"addNewSwap"),L=i(async()=>{m(!0),await A(),m(!1)},"onConfirm"),q=i(async()=>{b?.warnings?.quote&&!a?v(!0):await L()},"onStartConfirmSwap"),I=i(async()=>{N({error:null,swap:null,warnings:null}),y({selectedWallets:o,customDestination:r}).then(_=>{N(_)}).catch(_=>console.error(_))},"onRefresh");Yr(()=>{!!S.current.length&&!T.length&&I(),S.current=T},[T.length]),Yr(()=>{c&&x()},[c]),Yr(()=>{c&&f(c)},[c]),Yr(()=>{c||y({selectedWallets:o,customDestination:r}).then(_=>N(_)).catch(_=>console.error(_))},[]),xT(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let Q=b.warnings?.quote??null,oe=b.error,P=[];if(l&&P.push(Ne.createElement(Om,{type:"error",variant:"alarm",title:l})),b.warnings?.quoteUpdate&&P.push(Ne.createElement(Om,{variant:"alarm",type:"warning",title:b.warnings.quoteUpdate&&cr(b.warnings.quoteUpdate)})),Q||oe){let _=`../${G.settings}`;P.push(Ne.createElement(on,{warning:Q,error:oe,couldChangeSettings:!1,refetchQuote:I,showWarningModal:w,confirmationDisabled:!g,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:async()=>{v(!1),await A()},onChangeSettings:()=>s(_)}))}return Ne.createElement(me,{header:{title:ds.t("Confirm Swap"),onWallet:()=>{let _=`../${G.wallets}`;s(_)}},footer:Ne.createElement(ET,null,Ne.createElement("div",{className:IT()},Ne.createElement(CT,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||d,disabled:!!b.error||!g,onClick:q},ds.t("Start Swap"))),Ne.createElement(Um,{variant:"contained",type:"primary",size:"large",loading:k||d,disabled:!g,onClick:f.bind(null,!0)},Ne.createElement(vT,{size:24})))},u&&Ne.createElement(Tu,{open:u,onClose:()=>f(!1),onCancel:x,loading:k,onCheckBalance:E}),Ne.createElement(ye,null,Ne.createElement("div",{className:WT()},Ne.createElement(kT,{variant:"title",size:"small"},ds.t("You get")),Ne.createElement("div",{className:AT()},Ne.createElement(Tr,{onClick:!k&&!u&&!w?I:void 0}))),Ne.createElement(fs,{size:"12"}),bc(P.map((_,X)=>({element:_,key:`alert-${X}`})),Ne.createElement(fs,{size:10})),P.length>0?Ne.createElement(fs,{size:10}):null,Ne.createElement(ho,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:b.error,loading:k,warning:b.warnings?.quote??null})))}i(Qm,"ConfirmSwapPage");import{i18n as He}from"@lingui/core";import{useManager as RT}from"@rango-dev/queue-manager-react";import{Button as vs,darkTheme as ek,Divider as Gt,MessageBox as tk,NotFound as ok,styled as xs,Typography as Rr}from"@rango-dev/ui";import{TransactionStatus as gn}from"rango-types";import ae,{useMemo as sd,useState as ei}from"react";import{useNavigate as nk}from"react-router-dom";import{FilterIcon as _T,Popover as $T}from"@rango-dev/ui";import yo from"react";import{css as NT,darkTheme as Zr,IconButton as MT,styled as mn}from"@rango-dev/ui";var hs=mn("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Zr} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),zm=mn(MT,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Zr} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Zr} &`]:{backgroundColor:"$neutral"},[`& ${hs}::before`]:{backgroundColor:"$secondary100",[`.${Zr} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),qm=mn("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Hm=mn("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),Gm=NT({display:"flex",justifyContent:"space-between",alignItems:"center"}),Vm=mn("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as Km}from"@lingui/core";import{Button as BT,Divider as jm,ListItemButton as LT,Radio as PT,RadioRoot as DT,Typography as Xm}from"@rango-dev/ui";import Re from"react";function Ym(t){let{filterBy:e,onClickItem:o}=t;return Re.createElement(Hm,null,Re.createElement("div",{className:Gm()},Re.createElement(Xm,{size:"small",variant:"body"},Km.t("Status")),Re.createElement(BT,{variant:"ghost",size:"xxsmall",onClick:()=>o("")},Km.t("Reset"))),Re.createElement(jm,{size:10}),Re.createElement(DT,{value:e},Re.createElement(Vm,null,t.list.map((n,r)=>Re.createElement(LT,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:Re.createElement(Re.Fragment,null,Re.createElement(jm,{direction:"horizontal",size:4}),Re.createElement(Xm,{size:"medium",variant:"body"},n.title)),start:Re.createElement(PT,{value:n.id}),onClick:o})))))}i(Ym,"FilterSelectorContent");function ys(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return yo.createElement("div",null,yo.createElement($T,{open:a,align:"end",onOpenChange:o,container:B(),content:yo.createElement(Ym,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},yo.createElement(zm,{variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},yo.createElement(hs,{isSelect:!!n},yo.createElement(_T,{size:16,color:"black"}),!!n&&yo.createElement(qm,null)))))}i(ys,"FilterSelector");import{i18n as UT}from"@lingui/core";import{Divider as td,GroupedVirtualizedList as QT,Skeleton as zT,SwapListItem as od,Typography as qT}from"@rango-dev/ui";import qe,{useCallback as nd,useEffect as HT,useRef as GT,useState as VT}from"react";function Zm(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(Zm,"calculateGroupsSoFar");import{css as FT,darkTheme as OT,styled as dn}from"@rango-dev/ui";var Ss=FT(),Jm=dn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Cs=dn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ss}`]:{$$color:"$colors$neutral600",[`.${OT} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ts=dn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Rm=dn("div",{gap:"$10",display:"flex",flexDirection:"column"}),ed=dn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var KT=10;function ks(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=VT([]),l=GT(0),{swaps:p,groupCounts:c,groups:u}=n(e),f=nd(Zm,[]),d=nd(()=>{let m=e.length-l.current;m&&(l.current+=Math.min(m,KT),s(f(c,l.current)))},[e.length]);if(HT(()=>{r||d()},[r,d]),r){let m=[1,2];return qe.createElement(qe.Fragment,null,[m,m].map((T,S)=>qe.createElement(Cs,{key:S},qe.createElement(Ts,null,qe.createElement(zT,{variant:"text",width:60,size:"small"}),qe.createElement(td,{size:16})),qe.createElement(td,{size:4}),qe.createElement(Rm,null,T.map((y,k)=>qe.createElement(od,{isLoading:!0,key:k}))))))}return qe.createElement(QT,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:m=>qe.createElement(Cs,null,qe.createElement(Ts,null,qe.createElement(qT,{variant:"label",size:"medium",className:Ss()},u[m]))),itemContent:(m,g)=>{let T=p[m];if(!T)return null;let S=T.steps[0],C=T.steps[T.steps.length-1];return qe.createElement(Jm,{key:T.requestId},qe.createElement(od,{requestId:T.requestId,creationTime:T.creationTime,status:T.status,onClick:o,tooltipContainer:B(),onlyShowTime:u[g]===UT.t("Today"),swapTokenData:{from:{token:{image:S.fromLogo,displayName:S.fromSymbol},blockchain:{image:S.fromBlockchainLogo||""},amount:M(T.inputAmount,6,6),realAmount:T.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:M(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(ks,"HistoryGroupedList");import{CloseIcon as XT,IconButton as YT,SearchIcon as ZT,TextField as JT}from"@rango-dev/ui";import fn from"react";import{styled as jT}from"@rango-dev/ui";var rd=jT("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Bt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:p,...c}=t;return fn.createElement(JT,{prefix:fn.createElement(rd,null,fn.createElement(ZT,{color:"black"})),suffix:!!s.length&&fn.createElement(YT,{variant:"ghost",onClick:()=>p?.(""),size:"small"},fn.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,...c})}i(Bt,"SearchInput");import{i18n as Jr}from"@lingui/core";import id from"dayjs";var ad=i(t=>{let e=new Map([["today",{title:Jr.t("Today"),swaps:[]}],["week",{title:Jr.t("This week"),swaps:[]}],["month",{title:Jr.t("This month"),swaps:[]}],["year",{title:Jr.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=id();t.forEach(p=>{let c=Number(p.creationTime),u=id(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 f=new Date(c).getFullYear().toString();o(f,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 rk=xs("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),ik=xs("div",{display:"flex",justifyContent:"center",alignItems:"center"}),ak=xs("div",{"._typography":{color:"$neutral700",[`.${ek}&`]:{color:"$neutral900"}}}),sk=[{id:gn.SUCCESS,title:He.t("Complete")},{id:gn.RUNNING,title:He.t("Running")},{id:gn.FAILED,title:He.t("Failed")}],lk=i((t,e)=>t?.length?t.filter(o=>St(o.fromBlockchain,e)||St(o.toBlockchain,e)||St(o.toSymbol,e)||St(o.fromSymbol,e)).length:!1,"isStepContainsText");function ld(){let t=nk(),{manager:e,state:o}=RT(),n=it(e).map(({swap:k})=>k),[r,a]=ei(""),[s,l]=ei(!1),p=!o.loadedFromPersistor,[c,u]=ei(""),[f,d]=ei(!1),m=i(k=>{let x=k.target.value;a(x)},"searchHandler"),g=sd(()=>!r&&!c?n:n.filter(k=>{let{inputAmount:x,status:b,steps:N,requestId:w}=k;return(!r||St(x,r)||St(b,r)||lk(N,r)||St(w,r))&&(!c||c===b)}),[n,r,c]),T=!g?.length&&!p,S=i(()=>d(!1),"onCloseModal"),C=i(async()=>{try{await e?.clearQueue(),d(!1)}catch(k){console.log(k)}},"onClear"),y=sd(()=>!n.some(k=>k.status===gn.SUCCESS||k.status===gn.FAILED),[n]);return ae.createElement(me,{header:{title:He.t("History"),suffix:ae.createElement(Ut,null,ae.createElement(vs,{disabled:y,variant:"ghost",size:"xsmall",onClick:()=>d(!0)},ae.createElement(Rr,{size:"medium",variant:"label",color:"error"},He.t("Clear all Txs"))))}},ae.createElement(ye,null,ae.createElement(ik,null,ae.createElement(Bt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:He.t("Search Transaction"),autoFocus:!0,onChange:m,style:{height:36},value:r}),ae.createElement(Gt,{size:10,direction:"horizontal"}),ae.createElement(ys,{filterBy:c,open:s,onOpenChange:k=>l(k),onClickItem:k=>u(k),list:sk})),ae.createElement(Gt,{size:"16"}),ae.createElement(rk,null,T&&ae.createElement(ed,null,ae.createElement(Gt,{size:32}),ae.createElement(ok,{title:r?He.t("No results found"):He.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?He.t("Try using different keywords"):He.t("Your transaction history is stored locally and will appear here after you start a swap")})),!T&&ae.createElement(ks,{list:g,onSwapClick:t,groupBy:ad,isLoading:p}))),ae.createElement(ne,{open:f,onClose:S,container:B()},ae.createElement(Gt,{size:20}),ae.createElement(tk,{type:"warning",title:He.t("Clear History"),description:ae.createElement(ak,null,ae.createElement(Rr,{variant:"body",size:"medium"},He.t("This would clear all succeeded/failed transactions from widget. Do you wish to proceed?")),ae.createElement(Gt,{size:"24"}),ae.createElement(Rr,{variant:"body",size:"small"},He.t("Hint: This does not clear your transaction history on blockchain. Only hides them in this page.")))}),ae.createElement(Gt,{size:40}),ae.createElement(Gt,{size:10}),ae.createElement(vs,{variant:"contained",type:"primary",size:"large",onClick:C},He.t("Yes, Clear history")),ae.createElement(Gt,{size:10}),ae.createElement(vs,{variant:"outlined",type:"primary",size:"large",onClick:S},ae.createElement(Rr,{variant:"title",size:"medium",color:"primary"},He.t("No, Cancel")))))}i(ld,"HistoryPage");import{i18n as Ik}from"@lingui/core";import{Button as Ak,Divider as Id,styled as Wk,WarningIcon as Nk}from"@rango-dev/ui";import Mk from"bignumber.js";import je,{useEffect as Ad,useState as Wd}from"react";import{useNavigate as Bk}from"react-router-dom";import{i18n as fk}from"@lingui/core";import{Header as gk}from"@rango-dev/ui";import Vt,{useEffect as hk,useState as yk}from"react";import{i18n as ck}from"@lingui/core";import{Divider as bs,FullExpandedQuote as uk,Typography as mk}from"@rango-dev/ui";import ve from"react";import{styled as ws}from"@rango-dev/ui";var pd=ws("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),cd=ws("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),ud=ws("div",{width:"146px"});import{i18n as hn}from"@lingui/core";import{Select as pk}from"@rango-dev/ui";import md from"react";function ti(t){let{updateQuotePartialState:e,sortStrategy:o}=H(),n=[{value:"SMART",label:hn.t("Smart Routing")},{value:"FEE",label:hn.t("Lowest Fee")},{value:"SPEED",label:hn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:hn.t("Maximum Return")},{value:"PRICE",label:hn.t("Maximum Output")}];return md.createElement(ud,null,md.createElement(pk,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ti,"SelectStrategy");var dd=3;function yn(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:f,toToken:d,sortStrategy:m,error:g}=H(),{slippage:T,customSlippage:S}=h(),{findToken:C}=h(),y=l||B(),k=!!c&&c.results.length,x=S??T,b=i(v=>{if(!f||!d||!c)return null;let E={requestAmount:c.requestAmount,...v};return Eo(E,{fromToken:f,toToken:d,userSlippage:x,findToken:C})},"getQuoteWarning"),N=g?.type===0||g?.type===1,w=c?.results?sr(m,c?.results):[];return ve.createElement(ve.Fragment,null,a&&ve.createElement(ve.Fragment,null,ve.createElement(cd,null,ve.createElement(mk,{size:"xmedium",variant:"title"},ck.t("Sort by")),ve.createElement(ti,{container:y})),ve.createElement(bs,{size:"10"})),e&&Array.from({length:dd},(v,E)=>ve.createElement(ve.Fragment,{key:E},s?ve.createElement(uk,{loading:!0}):ve.createElement(cn,{tagHidden:!1,type:"list-item",expanded:!1}),E!==dd-1&&ve.createElement(bs,{size:16}))),!e&&ve.createElement(ve.Fragment,null,k?w.map((v,E)=>{let A=b(v),L=us(v.swaps),q=w.length-1===E;return ve.createElement(ve.Fragment,{key:v.requestId},ve.createElement(ho,{showModalFee:r,container:y,selected:p?.requestId===v.requestId,tagHidden:!1,quote:{...v,requestAmount:c.requestAmount},loading:e,error:L?.options||null,warning:A,fullExpandedMode:s,onClick:I=>{L||u("warning",A),u("error",L?.options||null),o(I)},type:"list-item"}),!q&&ve.createElement(bs,{size:16}))}):N&&ve.createElement(pd,null,ve.createElement(en,{size:s?"large":"small",error:g,fetch:n}))))}i(yn,"Quotes");import{darkTheme as dk,styled as fd}from"@rango-dev/ui";var gd=fd("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${dk} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),hd=fd("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var Sk=100;function Es(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=yk(!1),p=s?"":"is-hidden",{config:c}=h(),u=c?.variant==="full-expanded",f=Ho();return hk(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},Sk):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),Vt.createElement(gd,{expandMode:c?.variant==="full-expanded"?"full":"default",className:`${p} ${xr()}`,id:Ce.EXPANDED_BOX_ID},Vt.createElement(gk,{title:fk.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(ti,{container:f}),Vt.createElement(ao,{container:f,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Vt.createElement(hd,null,Vt.createElement(yn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Ho(),onClickOnQuote:n,fullExpandedMode:u})))}i(Es,"ExpandedQuotes");import{i18n as xd}from"@lingui/core";import{SwapInput as wd}from"@rango-dev/ui";import Sn from"react";import{ReverseIcon as kk}from"@rango-dev/ui";import As from"react";import{keyframes as Ck,styled as yd}from"@rango-dev/ui";var Is=450,Tk=Ck({"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)"}}),Sd=yd("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Cd=yd("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${Tk} ${Is}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 Ws(){let t=H.use.switchFromAndTo();return As.createElement(Sd,null,As.createElement(Cd,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Is),t()}},As.createElement(kk,{size:12})))}i(Ws,"SwitchFromAndToButton");import{styled as Td}from"@rango-dev/ui";var kd=Td("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),vd=Td("div",{position:"relative"});function Ns(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:c,inputAmount:u,inputUsdValue:f,outputAmount:d,outputUsdValue:m,selectedQuote:g}=H(),{connectedWallets:T,getBalanceFor:S}=te(),C=a?S(a):null,y=zn(C)?.amount??"0",k=s&&a?M(C?.amount,C?.decimals):"0",x=!!s&&Rl(T,s.name),b=!Ri(g,u,f),N=!Ri(g,u,m),w=!f||!m||!m.gt(0)?null:nt(f.toString(),m.toString());return Sn.createElement(kd,null,Sn.createElement(vd,null,Sn.createElement(wd,{label:xd.t("From"),mode:"From",onInputChange:c,balance:y,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:u,usdValue:b?void 0:M(f,4,4),realUsdValue:b?void 0:f?.toString(),error:b?re().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:B(),onSelectMaxBalance:()=>{c(k.split(",").join(""))},anyWalletConnected:T.length>0}),Sn.createElement(Ws,null)),Sn.createElement(wd,{sharpBottomStyle:!r&&(!!g||e),label:xd.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(nt(f,m),2,2),warningLevel:It(w??0),price:{value:M(d,6,6),usdValue:N?void 0:M(m,4,4),realValue:d?.toString(),realUsdValue:N?void 0:m?.toString(),error:N?re().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(Ns,"Inputs");import{useCallback as vk,useEffect as xk,useRef as wk,useState as bk}from"react";function bd(){let{fetch:t,loading:e,cancelFetch:o}=Kr({request:async(n,r)=>await $t().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(bd,"useFetchAllQuotes");var Ek=600;function oi({refetchQuote:t}){let{fetch:e,cancelFetch:o}=bd(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:c,inputUsdValue:u,selectedQuote:f,sortStrategy:d,resetQuote:m,error:g,warning:T,setSelectedQuote:S,updateQuotePartialState:C}=H(),{slippage:y,customSlippage:k,affiliatePercent:x,affiliateRef:b,affiliateWallets:N,fetchStatus:w}=h(),v=h().getLiquiditySources(),E=h().getDisabledLiquiditySources(),A=h().excludeLiquiditySources(),{findToken:L}=h(),[q,I]=bk(!0),Q=wk(c),oe=k??y,_=!l||!p||Jt(l,p)||!Ko(c),X=i(ie=>{I(ie)},"resetState"),Se=i(ie=>{let{fromToken:he,toToken:Te,inputAmount:$,liquiditySources:W,excludeLiquiditySources:ce,disabledLiquiditySources:ue,slippage:$e,affiliateRef:D,affiliatePercent:z,affiliateWallets:K}=ie;if(q||X(!0),!_&&he&&Te){m();let se=Up({fromToken:he,toToken:Te,inputAmount:$,liquiditySources:W,excludeLiquiditySources:ce,disabledLiquiditySources:ue,wallets:s,slippage:$e,affiliateRef:D,affiliatePercent:z,affiliateWallets:K,enableCentralizedSwappers:a});mp("experimentalRoute",r)&&(se.experimental=!0),e(se).then(ee=>{let le=sr(d,ee.results),Ee=ec(f,le,ee.requestAmount);I(!1),C("quotes",ee),S(Ee),jr({diagnosisMessages:ee.diagnosisMessages,requestId:Ee?.requestId||"",swaps:Ee?.swaps});let Wn=Ee&&Eo(Ee,{fromToken:he,toToken:Te,userSlippage:oe,findToken:L});C("warning",Wn)}).catch(ee=>{let{error:le}=Xr(ee);(le?.type===0||le?.type===1)&&m(),le?.type!==2&&(C("error",le),I(!1))})}},"fetch"),Y=vk(Ol(ie=>{Se(ie)},Ek),[_]);return xk(()=>{if(!t){I(!1);return}if(w!=="success")return;if(_){I(!1),(f||g||T)&&m();return}if(!Ko(c)||u?.eq(0)){X(!1),o();return}m(),X(!0);let ie=Se;return Q.current&&Q.current!=c&&(ie=Y),Q.current=c,ie({inputAmount:c,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:A,disabledLiquiditySources:E,slippage:oe,affiliateRef:b,affiliatePercent:x,affiliateWallets:N}),o},[w,c,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,_,v?.length,n,E.length,oe,b,x,JSON.stringify(N)]),{fetch:()=>Se({inputAmount:c,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:A,disabledLiquiditySources:E,slippage:oe,affiliateRef:b,affiliatePercent:x,affiliateWallets:N}),loading:q}}i(oi,"useSwapInput");function Ed(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};ke.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Ed,"emitPreventableEvent");var Lk=Wk("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),Pk=300;function Nd(){let t=Bk(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:c,resetQuoteWallets:u,setQuoteWarningsConfirmed:f,updateQuotePartialState:d}=H(),[m,g]=Wd(!1),{isLargeScreen:T,isExtraLargeScreen:S}=Or(),{fetch:C,loading:y}=oi({refetchQuote:a}),{config:k,fetchStatus:x}=h(),{connectedWallets:b}=te(),{isActiveTab:N}=pe(),[w,v]=Wd(!1),A=Pp({fetchMetaStatus:x,fetchingQuote:y,inputAmount:n,quote:r,anyWalletConnected:b.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),L=ap(T,S,k?.variant),q=!!n&&!!e&&!!o&&new Mk(n).gt(0)&&!Xp(e,o),I=q&&x==="success"&&y,P=(!L||L&&p?.results.length)&&(l||s);Ad(()=>{u(),d("refetchQuote",!0)},[]),Ad(()=>{g(q)},[q]);let _=(r||s)&&!w?C:void 0,X=i(Y=>{L&&m?(g(!1),setTimeout(()=>{t(Y)},Pk)):t(Y)},"onHandleNavigation"),Se=i(Y=>{r?.requestId!==Y.requestId&&(v(!1),c(Y))},"onClickOnQuote");return je.createElement(Lk,null,je.createElement(me,{height:"auto",footer:je.createElement(Ak,{type:"primary",size:"large",disabled:A.disabled||!N,prefix:A.action==="confirm-warning"&&je.createElement(Nk,null),fullWidth:!0,onClick:()=>{A.action==="connect-wallet"?Ed({type:"clickConnectWallet"},()=>X(G.wallets)):A.action==="confirm-warning"?v(!0):X(G.confirmSwap)}},A.title),header:{onWallet:()=>{X(G.wallets)},hasBackButton:!1,title:k.title||Ik.t("Swap"),suffix:je.createElement(ao,{hidden:L?["refresh"]:void 0,onClickRefresh:_,onClickHistory:()=>X(G.swaps),onClickSettings:()=>{X(G.settings)}})}},je.createElement(ye,null,je.createElement(Ns,{fetchingQuote:I,fetchMetaStatus:x,isExpandable:L,onClickToken:Y=>{X(Y==="from"?G.fromSwap:G.toSwap)}}),je.createElement(Id,{size:"2"}),L?null:je.createElement(ho,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),X(G.routes)}:void 0}),P?je.createElement(je.Fragment,null,je.createElement(Id,{size:"10"}),je.createElement(on,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:C,showWarningModal:w,confirmationDisabled:!N,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!1),f(!0),X(G.confirmSwap)},onChangeSettings:()=>X(G.settings)})):null)),L?je.createElement(Es,{loading:I,onClickOnQuote:Se,fetch:C,onClickRefresh:_,isVisible:m}):null)}i(Nd,"Home");import{i18n as Md}from"@lingui/core";import{Alert as Dk,Divider as _k,List as $k,ListItemButton as Fk,Radio as Ok,RadioRoot as Uk,Typography as Qk}from"@rango-dev/ui";import xt from"react";function Kt(){let{setLanguage:t,language:e,config:o}=h(),n=fp,r=o?.language||wo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||wo),resetLanguage:()=>t(null)}}i(Kt,"useLanguage");function Bd(){let{activeLanguage:t,changeLanguage:e,languages:o}=Kt(),n=rt(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:xt.createElement(Qk,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:xt.createElement(Ok,{value:s}),start:xt.createElement(p,null)}});return xt.createElement(me,{header:{title:Md.t("Language")}},xt.createElement(ye,null,xt.createElement(Dk,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),xt.createElement(_k,{size:"8"}),xt.createElement(Uk,{value:t},xt.createElement($k,{type:xt.createElement(Fk,{title:Md.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Bd,"LanguagePage");import{i18n as Lt}from"@lingui/core";import{Button as Vk,Checkbox as Kk,Image as jk,ListItemButton as Xk,NotFound as Yk,Typography as Zk}from"@rango-dev/ui";import Ge,{useState as Jk}from"react";import{Checkbox as Hk,Skeleton as Pd}from"@rango-dev/ui";import Tn from"react";import{styled as Ms}from"@rango-dev/ui";var Cn=Ms("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Bs=Ms("div",{width:80,display:"flex",justifyContent:"flex-end"}),Ls=Ms("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as zk,styled as qk}from"@rango-dev/ui";var Ld=qk(zk,{height:61});var Gk=30;function Ps(){return Tn.createElement(Cn,null,Array.from(Array(Gk),(t,e)=>Tn.createElement(Ld,{hasDivider:!0,key:e,start:Tn.createElement(Pd,{variant:"circular",width:35,height:35}),title:Tn.createElement(Pd,{variant:"text",size:"large",width:90}),end:Tn.createElement(Hk,{checked:!1})})))}i(Ps,"LoadingLiquiditySourceList");function Ds({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=Jk(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=jn(o,n),c={Exchanges:Lt.t("Exchanges"),Bridges:Lt.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let f=p.filter(C=>u.includes(C.type)),d=f.length===f.filter(C=>C.selected).length,m=i(()=>{f.forEach(C=>{d?s(C.groupTitle):C.selected||s(C.groupTitle)})},"toggleAllSources"),g=f.map(C=>{let{selected:y,groupTitle:k,logo:x}=C;return{start:Ge.createElement(jk,{src:x,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Ge.createElement(Kk,{checked:y,disabled:l}),title:Ge.createElement(Zk,{variant:"title",size:"xmedium"},Lt.t(k)),...C}}),T=i(C=>{let y=C.target.value;a(y)},"searchHandler"),S=g;return r&&(S=g.filter(C=>St(C.groupTitle,r))),Ge.createElement(me,{header:{title:Lt.t(t),suffix:Ge.createElement(Bs,null,Ge.createElement(Vk,{variant:"ghost",size:"xsmall",onClick:m},d?Lt.t("Deselect all"):Lt.t("Select all")))}},Ge.createElement(ye,{view:!0},Ge.createElement(Bt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Lt.t("Search {sourceType}",{sourceType:c[t]}),onChange:T}),e==="loading"&&Ge.createElement(Ps,null),!S.length&&r?Ge.createElement(Ls,null,Ge.createElement(Yk,{title:Lt.t("No results found"),description:Lt.t("Try using different keywords")})):e==="success"&&Ge.createElement(Cn,{disabled:l},S.map(C=>{let{groupTitle:y,...k}=C;return Ge.createElement(Ge.Fragment,{key:C.id},Ge.createElement(Xk,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(Ds,"LiquiditySourcePage");import{i18n as Rk}from"@lingui/core";import ni from"react";import{useNavigate as ev}from"react-router-dom";function Dd(){let t=ev(),e=rt(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=H(),{fetch:l,loading:p}=oi({refetchQuote:n}),c=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${G.settings}`,f=`../${G.wallets}`;return ni.createElement(me,{header:{onWallet:()=>{t(f),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:Rk.t("Routes"),suffix:ni.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},ni.createElement(ye,null,ni.createElement(yn,{fetch:l,loading:p,onClickOnQuote:c})))}i(Dd,"RoutesPage");import{i18n as qd}from"@lingui/core";import{Divider as Hd,getCategoriesCount as pv,SelectableCategoryList as cv}from"@rango-dev/ui";import Pt,{useState as Gd}from"react";import{i18n as _s}from"@lingui/core";import{Divider as Qd,Image as rv,ListItemButton as iv,NotFound as av,Typography as zd}from"@rango-dev/ui";import st,{useEffect as sv,useState as lv}from"react";var _d=i((t,e,o)=>t.filter(n=>Ln(n.type,o)).filter(n=>bt(n.name,e)||bt(n.displayName,e)),"filterBlockchains");import{ImageContainer as tv,styled as $d}from"@rango-dev/ui";var Fd=$d("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),ri=$d(Zo,{padding:0,margin:0,listStyle:"none",[`& ${tv}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as ov,Skeleton as Od}from"@rango-dev/ui";import ii from"react";var nv=20;function Ud(){return ii.createElement(ri,null,Array.from(Array(nv),t=>ii.createElement(ov,{key:t,hasDivider:!0,start:ii.createElement(Od,{variant:"circular",width:35,height:35}),title:ii.createElement(Od,{variant:"text",size:"large",width:90})})))}i(Ud,"LoadingBlockchainList");function $s(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=lv(e),{fetchStatus:l}=h();sv(()=>{s([..._d(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?st.createElement(st.Fragment,null,st.createElement(Qd,{size:32}),st.createElement(av,{title:_s.t("No results found"),description:_s.t("Try using different keywords")})):st.createElement(ri,{as:"ul",key:`${r}-${o}`},a.map(c=>st.createElement(iv,{key:`${c.name}-${c.chainId}`,hasDivider:!0,onClick:()=>n(c),start:st.createElement(rv,{src:c.logo,size:30}),title:st.createElement(zd,{variant:"title",size:"medium"},c.displayName),id:c.chainId}))),"renderList");return st.createElement(Fd,null,st.createElement(zd,{variant:"label",size:"large"},_s.t("Select Blockchain")),st.createElement(Qd,{size:4}),l==="loading"&&st.createElement(Ud,null),l==="success"&&p())}i($s,"BlockchainList");function Fs(t){let{type:e}=t,o=rt(),[n,r]=Gd(""),[a,s]=Gd("ALL"),l=H.use.setToBlockchain(),p=H.use.setFromBlockchain(),c=h().fetchStatus,u=h().blockchains({type:e}),d=pv(u)!==1;return Pt.createElement(me,{header:{title:qd.t("Select Blockchain")}},Pt.createElement(ye,{view:!0},d&&Pt.createElement(Pt.Fragment,null,Pt.createElement(cv,{setCategory:s,category:a,blockchains:u,isLoading:c==="loading"}),Pt.createElement(Hd,{size:24})),Pt.createElement(Bt,{value:n,autoFocus:!0,placeholder:qd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Pt.createElement(Hd,{size:16}),Pt.createElement($s,{list:u,searchedFor:n,blockchainCategory:a,onChange:m=>{e==="source"?p(m):l(m),o()}})))}i(Fs,"SelectBlockchainPage");import{i18n as ci}from"@lingui/core";import{Divider as df}from"@rango-dev/ui";import So,{useState as Mv}from"react";import{useNavigate as Bv}from"react-router-dom";import{i18n as Qs}from"@lingui/core";import{BlockchainsChip as ai,Divider as Xd,Image as Yd,Skeleton as gv,Tooltip as hv,Typography as zs}from"@rango-dev/ui";import _e from"react";import{useEffect as dv}from"react";var Vd=["ETH","COSMOS","OSMOSIS"];function Os(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(uv),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(mv(s)),r=n.splice(a)}return{list:n,more:r}}i(Os,"prepare");function uv(t,e){let o=Vd,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(uv,"sortByMostUsedBlockchains");function mv(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(mv,"generateSortByPreferredBlockchainsFor");function Kd(t,e){return!!e.list.find(o=>o.name===t)}i(Kd,"isInVisibleList");function Us(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();dv(()=>{if(e?.selected){let a=Os(t,o,e);Kd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Os(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Us,"usePrepareBlockchainList");import{styled as fv}from"@rango-dev/ui";var jd=fv("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var yv=12;function qs(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Us(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=H.use.resetToBlockchain(),c=H.use.resetFromBlockchain(),u=s.more.length>0,f=s.more.length===1,d=!f&&u;return _e.createElement(_e.Fragment,null,_e.createElement(Xd,{size:12}),_e.createElement(zs,{variant:"label",size:"large"},Qs.t("Select Blockchain")),_e.createElement(Xd,{size:12}),_e.createElement(jd,null,l==="loading"&&Array.from(Array(yv),m=>_e.createElement(gv,{key:m,variant:"rounded",height:50})),l==="success"&&_e.createElement(_e.Fragment,null,_e.createElement(ai,{selected:!n,onClick:()=>{o==="from"?c():p()}},_e.createElement(zs,{variant:"body",size:"xsmall",color:"secondary500"},Qs.t("All"))),s.list.map(m=>_e.createElement(hv,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:B()},_e.createElement(ai,{key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},_e.createElement(Yd,{src:m.logo,size:30})))),f?_e.createElement(ai,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},_e.createElement(Yd,{src:s.more[0].logo,size:30})):null,d?_e.createElement(ai,{onClick:a,key:"more-blockchains"},_e.createElement(zs,{variant:"body",size:"xsmall",color:"secondary500"},Qs._("More +{count}",{count:s.more.length}))):null)))}i(qs,"BlockchainsSection");import{i18n as el}from"@lingui/core";import{darkTheme as lf,Divider as Uo,ExternalLinkIcon as wv,Image as bv,ListItemButton as Ev,NotFound as Iv,PinIcon as Av,Skeleton as pf,Typography as pi,VirtualizedList as Wv}from"@rango-dev/ui";import j,{useEffect as cf,useState as uf}from"react";import{useWallets as Sv}from"@rango-dev/wallets-react";import{useEffect as Cv,useRef as Tv,useState as kv}from"react";function Hs(t){let{connectedWallets:e}=te(),{getWalletInfo:o}=Sv(),n=Tv([]),[r,a]=kv(0);return Cv(()=>{let s=i(p=>{p.type==="disconnect"&&o(p.payload.walletType).supportedChains.some(f=>f.name===t)&&a(f=>f+1)},"handleWalletEvent");return Mn.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(f=>f!==c),a(f=>f+1))}),()=>Mn.off("walletEvent",s)):a(p=>p+1)},[e,t,o]),{balanceKey:r}}i(Hs,"useObserveBalanceChanges");import{Divider as af,ListItem as xv,Skeleton as kn}from"@rango-dev/ui";import gt from"react";import{css as Oo,darkTheme as Zd,ImageContainer as vv,styled as lt,Typography as Jd}from"@rango-dev/ui";var Gs=Oo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Vs=Oo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Ks=Oo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),js=Oo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Zd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Xs=Oo({}),Ys=Oo(),Rd=lt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Zs=lt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),si=lt("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=lt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Rs=lt(Jd,{}),ef=lt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Ys}`]:{$$color:"$colors$neutral600",[`.${Zd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),li=lt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),vz=lt("div",{display:"flex",alignItems:"center"}),tf=lt("div",{position:"relative",[`& ${vv}`]:{borderRadius:"$xm",overflow:"hidden"}}),of=lt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),nf=lt(Jd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),rf=lt("a",{"& svg:hover":{color:"$colors$info"}});function sf(t){return gt.createElement(si,null,Array.from(Array(t.size),e=>gt.createElement(xv,{key:e,hasDivider:!0,start:gt.createElement(kn,{variant:"circular",width:35,height:35}),end:gt.createElement(li,null,gt.createElement(kn,{variant:"text",size:"large",width:70}),gt.createElement(af,{size:4}),gt.createElement(kn,{variant:"text",size:"medium",width:50})),title:gt.createElement("div",null,gt.createElement(kn,{variant:"text",size:"large",width:90}),gt.createElement(af,{size:4}),gt.createElement(kn,{variant:"text",size:"medium",width:90}))})))}i(sf,"LoadingTokenList");var tl=20,Nv=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return j.createElement("div",{className:Vs()},o?j.createElement("div",{className:Gs()},o):j.createElement(Zs,{className:Ks()},j.createElement(pi,{variant:"title",size:"xmedium"},r.symbol),j.createElement(Uo,{direction:"horizontal",size:4}),j.createElement(Js,{css:a},j.createElement(Rs,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&j.createElement("div",{className:`${js()} ${!o&&Xs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",j.createElement(Uo,{size:4,direction:"horizontal"}),j.createElement(rf,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},j.createElement(wv,{size:12}))))},"renderDesc");function mf(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=uf(e),l=h().fetchStatus,p=h().blockchains(),[c,u]=uf(!0),{getBalanceFor:f,loading:d}=te(),{isTokenPinned:m}=h(),{balanceKey:g}=Hs(r),T=i(()=>{s(e.slice(0,a.length+tl))},"loadNextPage");cf(()=>{u(e.length>a.length)},[a.length]),cf(()=>{s(e.slice(0,tl))},[e.length,r,g]);let S=i(()=>!a.length&&o?j.createElement(j.Fragment,null,j.createElement(Uo,{size:32}),j.createElement(Iv,{title:el.t("No results found"),description:el.t("Try using different keywords")})):j.createElement(Wv,{endReached:c?T:void 0,itemContent:C=>{let y=a[C],k=zn(f(y)),x=y.address||"",b=p.find(E=>E.name===y.blockchain),N=ya(b.color,"main"),w={$$color:N.main150,[`.${lf} &`]:{$$color:N.main750},backgroundColor:"$$color"},v={$$color:N.main750,[`.${lf} &`]:{$$color:N.main150},color:"$$color"};return j.createElement("div",{style:{paddingRight:5}},j.createElement(Ev,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:j.createElement(tf,null,j.createElement(bv,{src:y.image,size:30}),m(y,t.type)&&j.createElement(of,null,j.createElement(Av,{size:12,color:"gray"}))),title:b?.type==="COSMOS"||y.name||!y.name&&!x?j.createElement(Zs,null,j.createElement(pi,{variant:"title",size:"xmedium"},y.symbol),j.createElement(Uo,{direction:"horizontal",size:4}),j.createElement(Js,{css:w},j.createElement(Rs,{variant:"body",size:"xsmall",css:v},y.blockchain))):void 0,description:b?.info&&x&&b.type!=="COSMOS"?Nv({address:x,token:a[C],customCssForTag:w,customCssForTagTitle:v,name:y.name,url:b.info.addressUrl.split("{wallet}").join(x)}):y.name||void 0,end:d?j.createElement(li,null,j.createElement(pf,{variant:"text",size:"large",width:70}),j.createElement(Uo,{size:4}),j.createElement(pf,{variant:"text",size:"medium",width:50})):k&&j.createElement(ef,null,j.createElement(nf,{variant:"title",size:"small"},k.amount),j.createElement("div",null),k.usdValue&&j.createElement(pi,{variant:"body",className:Ys(),size:"xsmall"},`$${k.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}-${g}`}),"renderList");return j.createElement(Rd,null,j.createElement(pi,{variant:"label",size:"large"},el.t("Select Token")),j.createElement(Uo,{size:4}),l==="loading"&&j.createElement(sf,{size:tl}),l==="success"&&j.createElement(si,{as:"ul"},S()))}i(mf,"TokenList");function ol(t){let{type:e}=t,o=Bv(),n=rt(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:c}=H(),u=te.use.getBalanceFor(),[f,d]=Mv(""),g=(e==="source"?r:a)?.name??"",T=h().blockchains({type:e}),S=h().tokens({type:e,blockchain:g,searchFor:f,getBalanceFor:u}),C=i(x=>{e==="source"?p(x):c(x)},"updateBlockchain"),y=i(x=>{e==="source"?s({token:x,meta:{blockchains:T,tokens:S}}):l({token:x,meta:{blockchains:T,tokens:S}})},"updateToken"),k={source:ci.t("Source"),destination:ci.t("Destination")};return So.createElement(me,{header:{title:ci.t("Swap {type}",{type:k[e]})}},So.createElement(ye,null,So.createElement(qs,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(G.blockchains),onChange:x=>{C(x)}}),So.createElement(df,{size:24}),So.createElement(Bt,{value:f,autoFocus:!0,placeholder:ci.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:x=>d(x.target.value)}),So.createElement(df,{size:16}),So.createElement(mf,{list:S,selectedBlockchain:g,searchedFor:f,type:e,onChange:x=>{y(x);let b=T.find(N=>x.blockchain===N.name);b&&C(b),n()}})))}i(ol,"SelectSwapItemsPage");import{i18n as al}from"@lingui/core";import{Alert as nx,Button as rx,styled as ix}from"@rango-dev/ui";import Co from"react";import{useInRouterContext as ax,useSearchParams as sx}from"react-router-dom";import{i18n as Cf}from"@lingui/core";import{Divider as _v,InfoIcon as $v,TextField as Fv,Tooltip as Ov,Typography as Tf}from"@rango-dev/ui";import ht from"react";import{Chip as Lv,styled as vn,TextField as Pv}from"@rango-dev/ui";var ff=vn("div",{paddingTop:"$5",padding:"$10 $5"}),gf=vn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Pv}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),hf=vn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ui=vn("div",{maxWidth:"280px",padding:"$10"}),yf=vn(Lv,{width:"61px",flexShrink:0});import{i18n as nl}from"@lingui/core";import{Typography as Dv}from"@rango-dev/ui";import xn from"react";function Sf(){return xn.createElement(ui,null,xn.createElement(Dv,{variant:"label",size:"medium",color:"neutral700"},nl.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),xn.createElement("br",null),xn.createElement("br",null),xn.createElement("b",null,nl.t("Warning")),":",nl.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(Sf,"SlippageTooltipContent");function rl(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ht.createElement(ff,null,ht.createElement(hf,null,ht.createElement(Tf,{variant:"title",size:"xmedium"},Cf.t("Slippage tolerance per swap")),ht.createElement(_v,{direction:"horizontal",size:4}),ht.createElement(Ov,{container:B(),side:"top",sideOffset:4,content:ht.createElement(Sf,null)},ht.createElement($v,{color:"gray"}))),ht.createElement(gf,null,gp.map((r,a)=>{let s=`slippage-${a}`;return ht.createElement(yf,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ht.createElement(Fv,{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>=Cp&&s<=Sp?n(s):n(null)},suffix:o&&ht.createElement(Tf,{variant:"body",size:"small"},"%"),placeholder:Cf.t("Custom")})))}i(rl,"Slippage");import{i18n as wt}from"@lingui/core";import{AutoThemeIcon as kf,BridgesIcon as Uv,ChevronRightIcon as il,DarkModeIcon as vf,Divider as mi,ExchangeIcon as Qv,InfinityIcon as zv,InfoIcon as qv,LanguageIcon as Hv,LightModeIcon as xf,List as Gv,ListItem as Vv,ListItemButton as Kv,Skeleton as jv,styled as Xv,Switch as Yv,Tabs as Zv,Tooltip as Jv,Typography as pt}from"@rango-dev/ui";import U from"react";import{useNavigate as Rv}from"react-router-dom";var ex=Xv("div",{width:"202px",height:"$40"}),tx=[{id:"light",icon:U.createElement(xf,{color:"black",size:24}),tooltip:U.createElement(pt,{size:"xsmall",variant:"body"},wt.t("Light"))},{id:"dark",icon:U.createElement(vf,{color:"black",size:24}),tooltip:U.createElement(pt,{size:"xsmall",variant:"body"},wt.t("Dark"))},{id:"auto",icon:U.createElement(kf,{color:"black",size:24}),tooltip:U.createElement(pt,{size:"xsmall",variant:"body"},wt.t("Auto"))}],ox=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return U.createElement(kf,{...e});case"dark":return U.createElement(vf,{...e});default:return U.createElement(xf,{...e})}},"getThemeIcon");function wf(){let t=Rv(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Kt(),s=a.find(Q=>Q.local===r)?.label,l=h().fetchStatus,p=h().swappers(),c=h().getDisabledLiquiditySources(),{config:{features:u}}=h(),f=ot("theme",u),d=ot("liquiditySource",u),m=ot("language",u),g=h().infiniteApprove,T=h().toggleInfiniteApprove,S=jn(p,c),C=S.filter(Q=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(Q.type)),y=C.length,k=C.filter(Q=>Q.selected).length,x=S.filter(Q=>Q.type==="DEX"),b=x.length,N=x.filter(Q=>Q.selected).length,w=i((Q,oe)=>{switch(l){case"loading":return U.createElement(jv,{variant:"text",size:"medium",width:50});case"failed":return U.createElement(pt,{variant:"body",size:"medium",color:"$error500"},wt.t("Loading failed"));default:return U.createElement(pt,{variant:"body",size:"medium"},`${Q} / ${oe}`)}},"handleSwapperEndItem"),v={id:"bridge-item",title:U.createElement(pt,{variant:"title",size:"xmedium"},wt.t("Bridges")),end:U.createElement(U.Fragment,null,w(k,y),U.createElement(mi,{direction:"horizontal",size:8}),U.createElement(il,{color:"black"})),onClick:()=>t(G.bridges),start:U.createElement(Uv,{color:"gray",size:16})},E={id:"exchange-item",title:U.createElement(pt,{variant:"title",size:"xmedium"},wt.t("Exchanges")),end:U.createElement(U.Fragment,null,w(N,b),U.createElement(mi,{direction:"horizontal",size:8}),U.createElement(il,{color:"black"})),start:U.createElement(Qv,{color:"gray",size:16}),onClick:()=>t(G.exchanges)},A={id:"language-item",title:U.createElement(pt,{variant:"title",size:"xmedium"},wt.t("Language")),start:U.createElement(Hv,{color:"gray",size:16}),end:U.createElement(U.Fragment,null,U.createElement(pt,{variant:"body",size:"medium"},s),U.createElement(mi,{direction:"horizontal",size:8}),U.createElement(il,{color:"black"})),onClick:()=>t(G.languages)},L={id:"infinite-approval-item",title:U.createElement(U.Fragment,null,U.createElement(pt,{variant:"title",size:"xmedium"},wt.t("Infinite approval")),U.createElement(mi,{direction:"horizontal",size:4}),U.createElement(Jv,{side:"top",sideOffset:4,container:B(),content:U.createElement(ui,null,U.createElement(pt,{variant:"label",size:"medium",color:"neutral700"},wt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},U.createElement(qv,{color:"gray"}))),start:U.createElement(zv,{color:"gray",size:16}),end:U.createElement(Yv,{checked:g}),onClick:T},q={id:"theme-item",type:U.createElement(Vv,null),title:U.createElement(pt,{variant:"title",size:"xmedium"},wt.t("Theme")),end:U.createElement(ex,null,U.createElement(Zv,{container:B(),items:tx,value:n,onChange:Q=>o(Q.id),type:"primary",borderRadius:"small"})),start:ox(n)},I=d?[]:[v,E];return m||I.push(A),I.push(L),!e?.singleTheme&&!f&&I.push(q),U.createElement(Gv,{type:U.createElement(Kv,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(wf,"SettingsLists");var lx=ix("div",{paddingLeft:"$8"});function bf(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=sx(),r=ax(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Co.createElement(me,{header:{title:al.t("Settings")}},Co.createElement(ye,null,o&&Co.createElement(nx,{type:"info",variant:"alarm",title:al.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:Co.createElement(lx,null,Co.createElement(rx,{type:"secondary",size:"small",onClick:a},al.t("Reset")))}),Co.createElement(rl,null),Co.createElement(wf,null)))}i(bf,"SettingsPage");import{i18n as Kx}from"@lingui/core";import{cancelSwap as jx}from"@rango-dev/queue-manager-rango-preset";import{useManager as Xx}from"@rango-dev/queue-manager-react";import{Alert as Yx}from"@rango-dev/ui";import xl from"react";import{useParams as Zx}from"react-router-dom";import{i18n as et}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Ax,getCurrentStep as Wx,getRelatedWalletOrNull as Nx}from"@rango-dev/queue-manager-rango-preset";import{Button as ng,CopyIcon as Mx,Divider as Bx,DoneIcon as Lx,IconButton as Px,QuoteCost as Dx,RangoExplorerIcon as _x,StepDetails as $x,Tooltip as rg,Typography as ko,useCopyToClipboard as Fx}from"@rango-dev/ui";import{useWallets as Ox}from"@rango-dev/wallets-react";import ig from"bignumber.js";import{PendingSwapNetworkStatus as vi}from"rango-types";import Z,{useEffect as ag,useRef as Ux,useState as sg}from"react";import{useNavigate as Qx}from"react-router-dom";import{i18n as jt}from"@lingui/core";var px=[jt.t("Sunday"),jt.t("Monday"),jt.t("Tuesday"),jt.t("Wednesday"),jt.t("Thursday"),jt.t("Friday"),jt.t("Saturday")];function Ef(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?jt.t("Today"):`${px[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Ef,"timeSince");function If(t){return t.finishTime?Ef(parseInt(t.finishTime)):Ef(parseInt(t.creationTime))}i(If,"getSwapDate");import{PendingSwapNetworkStatus as hi}from"rango-types";import yi from"react";import{i18n as di}from"@lingui/core";import{Button as Af,Divider as sl,MessageBox as cx}from"@rango-dev/ui";import Xt from"react";var Wf=i(({onCancel:t,onClose:e})=>Xt.createElement(Xt.Fragment,null,Xt.createElement(sl,{size:20}),Xt.createElement(cx,{type:"error",title:di.t("Cancel Swap"),description:di.t("Are you sure you want to cancel this swap?")}),Xt.createElement(sl,{size:32}),Xt.createElement(Af,{variant:"contained",type:"primary",size:"large",onClick:t},di.t("Yes, Cancel it")),Xt.createElement(sl,{size:12}),Xt.createElement(Af,{variant:"outlined",type:"primary",size:"large",onClick:e},di.t("No, Continue"))),"CancelContent");import{i18n as fi}from"@lingui/core";import{Button as Nf,Divider as ll,MessageBox as ux,Typography as mx}from"@rango-dev/ui";import Dt from"react";var Mf=i(({onDelete:t,onClose:e})=>Dt.createElement(Dt.Fragment,null,Dt.createElement(ll,{size:20}),Dt.createElement(ux,{type:"error",title:fi.t("Delete Transaction"),description:fi.t("Are you sure you want to delete this swap?")}),Dt.createElement(ll,{size:32}),Dt.createElement(Nf,{variant:"contained",type:"primary",size:"large",onClick:t},fi.t("Yes, Delete it")),Dt.createElement(ll,{size:12}),Dt.createElement(Nf,{variant:"outlined",type:"primary",size:"large",onClick:e},Dt.createElement(mx,{variant:"title",size:"medium",color:"primary"},fi.t("No, Cancel")))),"DeleteContent");import{i18n as pl}from"@lingui/core";import{PendingSwapNetworkStatus as cl}from"rango-types";var ul={[cl.WaitingForNetworkChange]:{type:"loading",title:pl.t("Change Network")},[cl.WaitingForConnectingWallet]:{type:"warning",title:pl.t("Connect Wallet")},[cl.NetworkChanged]:{type:"success",title:pl.t("Network Changed")}};import{debug as gi}from"@rango-dev/logging-core";import{MessageBox as dx,Wallet as fx}from"@rango-dev/ui";import{useWallets as gx}from"@rango-dev/wallets-react";import To,{useState as Pf}from"react";import{styled as Bf}from"@rango-dev/ui";var Lf=Bf("div",{display:"flex",justifyContent:"center"}),uH=Bf("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Df=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:c}=gx(),[u,f]=Pf(null),[d,m]=Pf(null),g=n?.walletType,T=g?Oi(c(g)):null,S=g?p(g):null,C=a&&!!g&&!!T&&!!S,y=i(()=>{u&&f({...u,open:!1})},"handleCloseNamespaceModal"),k=i(()=>{d&&m({...d,open:!1})},"handleCloseDerivationPathModal"),x=i(()=>{g&&S&&(S.namespaces?.length?S.namespaces.length>1?f({open:!0,providerType:g,providerImage:S.img,availableNamespaces:S.namespaces,singleNamespace:S.singleNamespace}):S.needsDerivationPath?m({open:!0,providerType:g,providerImage:S.img,namespace:S.namespaces[0]}):l(g).catch(w=>gi(w)):l(g).catch(w=>gi(w)))},"handleWalletItemClick"),b=i(w=>{S?.needsDerivationPath&&S?.singleNamespace&&w[0]&&g?m({open:!0,providerType:g,providerImage:S.img,namespace:w[0]}):l(u?.providerType,void 0,w.map(v=>({namespace:v}))).catch(v=>gi(v)),y()},"handleConfirmNamespaces"),N=i(w=>{w&&d?.namespace&&l(d?.providerType,void 0,[{namespace:d.namespace,derivationPath:w}]).catch(v=>gi(v)),k()},"handleDerivationPathConfirm");return To.createElement(To.Fragment,null,To.createElement(dx,{type:e,title:o,description:r}),C&&To.createElement(Lf,null,To.createElement(fx,{container:B(),title:S.name,image:S.img,type:g,state:T,link:S.installLink,disabled:s,onClick:x})),To.createElement(po,{open:!!u?.open,onClose:y,onConfirm:b,image:u?.providerImage,availableNamespaces:u?.availableNamespaces,singleNamespace:u?.singleNamespace}),To.createElement(so,{open:!!d?.open,selectedNamespace:d?.namespace,type:d?.providerType,image:d?.providerImage,onClose:k,onConfirm:N}))},"WalletStateContent");function ml(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===hi.WaitingForNetworkChange||e===hi.WaitingForConnectingWallet||e===hi.NetworkChanged;return yi.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(Ce.SWAP_BOX_ID)||document.body},p&&yi.createElement(Df,{type:ul[e].type,title:ul[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==hi.WaitingForNetworkChange}),e==="delete"&&yi.createElement(Mf,{onClose:o,onDelete:n}),e==="cancel"&&yi.createElement(Wf,{onClose:o,onCancel:r}))}i(ml,"SwapDetailsModal");import{i18n as wn}from"@lingui/core";import{Button as dl,Divider as Si,MessageBox as _f,TokenAmount as hx,Typography as fl}from"@rango-dev/ui";import Oe from"react";import{useNavigate as yx}from"react-router-dom";function gl(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:c,percentageChange:u,description:f,diagnosisUrl:d}=t,m=yx();return Oe.createElement(ne,{open:e,onClose:o,container:document.getElementById(Ce.SWAP_BOX_ID)||document.body},n==="success"?Oe.createElement(_f,{type:"success",title:wn.t("Swap Successful")},Oe.createElement(hx,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:c,percentageChange:u}),Oe.createElement(Si,{size:12}),Oe.createElement(fl,{variant:"body",size:"medium",color:"neutral700",align:"center"},f)):Oe.createElement(_f,{type:"error",title:wn.t("Transaction Failed"),description:f}),Oe.createElement(Si,{size:32}),n==="success"&&Oe.createElement(dl,{variant:"contained",type:"primary",size:"large",onClick:()=>{m("../../")}},Oe.createElement(fl,{variant:"title",size:"medium",color:"neutral100"},wn.t("Done"))),Oe.createElement(Si,{size:12}),d&&Oe.createElement(Oe.Fragment,null,Oe.createElement(dl,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},wn.t("Diagnosis")),Oe.createElement(Si,{size:12})),Oe.createElement(dl,{variant:"outlined",type:"primary",size:"large",onClick:o},Oe.createElement(fl,{variant:"title",size:"medium",color:"primary"},wn.t("See Details"))))}i(gl,"SwapDetailsCompleteModal");import Ix from"react";import{i18n as xx}from"@lingui/core";import{Alert as Rf,IconButton as wx,LinkIcon as bx}from"@rango-dev/ui";import Yt,{Fragment as Ex}from"react";import{Alert as Cx,ChevronDownIcon as Tx,IconButton as kx}from"@rango-dev/ui";import zo,{useState as vx}from"react";import{css as bn,darkTheme as $f,styled as _t,Typography as Sx}from"@rango-dev/ui";var Ff=_t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Ci=_t("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${$f} &`]:{color:"$secondary500"}}}}}),Of=_t(Zo,{padding:"$0 $20 $20 $20"}),jH=_t("div",{display:"flex",flexDirection:"column",gap:"$10"}),Uf=_t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),XH=_t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Qo=bn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${$f} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Qf=bn({padding:"$5 0"}),Ti=bn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),zf=bn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),qf=bn({width:"100%",padding:"0 $20 $10"}),Hf=_t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Gf=_t("div",{display:"flex",flexDirection:"column",gap:"$5"}),ki=_t(Sx,{wordBreak:"break-word"});import{styled as hl}from"@rango-dev/ui";var Vf=hl("div",{display:"flex",flexDirection:"column",gap:"$10"}),Kf=hl("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),jf=hl("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Xf(t){let{message:e}=t,[o,n]=vx(!1);return zo.createElement(Cx,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&zo.createElement(kx,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},zo.createElement(Kf,{rotated:o},zo.createElement(Tx,{size:12,color:"gray"}))),footer:zo.createElement(jf,{open:o},zo.createElement(ki,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Xf,"FailedAlert");import{i18n as Yf}from"@lingui/core";import{Alert as yl,Button as Zf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Sl}from"rango-types";import En from"react";function Jf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?En.createElement(yl,{type:"warning",title:n.shortMessage,action:En.createElement(Zf,{size:"xxsmall",type:"warning",onClick:()=>{o(Sl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Yf.t("Change"))}):r===Sl.WaitingForConnectingWallet?En.createElement(yl,{type:"warning",title:n.shortMessage,action:En.createElement(Zf,{size:"xxsmall",type:"warning",onClick:()=>{o(Sl.WaitingForConnectingWallet)}},Yf.t("Connect"))}):En.createElement(yl,{type:"warning",title:n.shortMessage})}i(Jf,"WarningAlert");function Cl(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Yo(a),p=a.status==="waitingForApproval"&&!l,c=a.status==="running"&&!l,u=c&&!s||p&&!a.explorerUrl?.length;return Yt.createElement(Vf,null,a.explorerUrl?.map((f,d,m)=>{let g=d+f.url,T=d===m.length-1,S=(T&&c||p)&&!u,C=T&&a.status==="failed";return Yt.createElement(Ex,{key:g},Yt.createElement(Rf,{type:T&&(S&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:xx.t("View transaction"),action:f.url&&Yt.createElement(wx,{variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},Yt.createElement(bx,{size:12}))}))}),u&&Yt.createElement(Rf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(Jf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(Xf,{message:r}))}i(Cl,"SwapDetailsAlerts");var eg=2e3;var tg=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:tt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:tt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Go(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:tt(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:tt(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Go(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Ix.createElement(Cl,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function og(t){if(Yo(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(og,"getStepState");function Tl(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Ox(),p=h().blockchains(),c=h().swappers(),{findToken:u}=h(),f=H.use.retry(),d=pe.use.isActiveTab(),m=Qx(),[g,T]=Fx(eg),S=Ux(null),[C,y]=sg(null),[k,x]=sg(null),b=i(()=>{r(),y(null)},"onCancel"),N=Ie.use.getNotifications(),w=Ie.use.removeNotification(),v=N(),E=Wx(e),A=E?.networkStatus;ag(()=>{v.find(Ee=>Ee.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(x(e.status),w(e.requestId)):k&&x(null))},[e.status,e.requestId]),ag(()=>{_?y(vi.WaitingForNetworkChange):A===vi.WaitingForConnectingWallet||A===vi.NetworkChanged?y(A):y(null)},[A]);let L=Vp(e),q=E?Ax(e,E):null,I=E?Nx(e,E):null,Q=If(e),oe=Kp(e),P=i(le=>!!l(le)?.mobileWallet,"isMobileWallet"),_=A===vi.WaitingForNetworkChange&&!!q&&!!I?.walletType&&(P(I.walletType)||a(I.walletType,q)),X=_?s.bind(null,I.walletType,q):void 0,Se=Gp(e,E),Y=tg({swap:e,switchNetwork:X,showNetworkModal:A,setNetworkModal:y,message:Se,blockchains:p,swappers:c}),ie=Y.length,[he,Te]=[e.steps[0],e.steps[ie-1]],$=Te.outputAmount||Te.expectedOutputAmountHumanReadable,W=e.steps.reduce((le,Ee)=>le+parseFloat(Ee.feeInUsd||""),0),ce=e.steps.find(le=>le.diagnosisUrl)?.diagnosisUrl,ue=M(parseFloat($||"0")*(Te.toUsdPrice||0),4,4),$e=M(parseFloat(e.inputAmount)*(he.fromUsdPrice||0),4,4),D=$?new ig($).multipliedBy(Te.toUsdPrice||0).toString():"",z=new ig(e.inputAmount).multipliedBy(he.fromUsdPrice||0).toString(),K=nt($e,ue),se=Se.detailedMessage.content||Se.shortMessage,ee=e.status==="success"?et.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M($,6,6),token:Y[ie-1].to.token.displayName,conciseAddress:qn(e.wallets[Y[ie-1].to.chain.displayName]?.address||""),chain:Y[ie-1].to.chain.displayName}}):Z.createElement(Gf,null,Z.createElement(ko,{variant:"body",size:"medium",color:"neutral700",align:"center"},se?"":et.t("Transaction was not sent."),L?`${et.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:L.outputAmount,symbol:L.symbol,blockchain:L.blockchain}})}`:""),se&&Z.createElement(ki,{align:"center",variant:"body",size:"medium",color:"neutral700"},Z.createElement("b",null,"Reason:")," ",se));return Z.createElement(me,{header:{title:et.t("Swap Details"),onCancel:e.status==="running"?()=>y("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(Ut,null,Z.createElement(ng,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>y("delete")},Z.createElement(ko,{size:"medium",variant:"label",color:"error"},et.t("Delete"))))},footer:oe&&!k&&Z.createElement(ng,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let le=ar(e,p,u);f(le),setTimeout(()=>{m("../../")},0)}},et.t("Try again"))},Z.createElement(ye,{compact:!0,view:!0},Z.createElement(Ci,null,Z.createElement("div",{className:Qo()},Z.createElement(ko,{variant:"label",size:"large",color:"neutral700"},`${et.t("Request ID")}:`),Z.createElement("div",{className:Ti()},Z.createElement(ko,{variant:"label",size:"small",color:"neutral700"},o),Z.createElement(rg,{container:B(),content:g?et.t("Copied To Clipboard"):et.t("Copy Request ID"),open:g||void 0,side:"bottom",alignOffset:-16,align:"end"},Z.createElement(Px,{variant:"ghost",onClick:T.bind(null,o||"")},g?Z.createElement(Lx,{size:16,color:"secondary"}):Z.createElement(Mx,{size:16,color:"gray"}))),Z.createElement(Hf,{target:"_blank",href:`${Ml}/swap/${o}`},Z.createElement(rg,{container:B(),content:et.t("View on Rango Explorer"),side:"bottom"},Z.createElement(_x,{size:20}))))),Z.createElement("div",{className:Qo()},Z.createElement(ko,{variant:"label",size:"large",color:"neutral700"},e.finishTime?et.t("Finished at"):et.t("Created at")),Z.createElement(ko,{variant:"label",size:"small",color:"neutral700"},Q))),Z.createElement("div",{className:zf()},Z.createElement(Dx,{fee:M(String(W),2,2),time:Vo(_n(e.steps)),steps:ie}),Z.createElement(rn,{from:{price:{value:M(e.inputAmount,6,6),usdValue:$e,realUsdValue:z,realValue:e.inputAmount},token:{displayName:Y[0].from.token.displayName,image:Y[0].from.token.image},chain:{image:Y[0].from.chain.image,displayName:Y[0].from.chain.displayName}},to:{price:{value:M($,6,6),usdValue:ue,realUsdValue:D,realValue:$||""},token:{displayName:Y[ie-1].to.token.displayName,image:Y[ie-1].to.token.image},chain:{image:Y[ie-1].to.chain.image,displayName:Y[ie-1].to.chain.displayName}},percentageChange:M(K,2,2),warningLevel:It(K??0)})),Z.createElement("div",{className:qf()},Z.createElement(ko,{variant:"title",size:"small"},et.t("Swaps steps"))),Z.createElement(Bx,{size:8}),Z.createElement(Of,{ref:S},Y.map((le,Ee)=>{let Wn=Ee,qo=og(e.steps[Ee]),Mg=qo==="error"||qo==="in-progress"||qo==="warning"||qo==="completed"&&Ee===Y.length-1;return Z.createElement($x,{key:Wn,step:le,type:"swap-progress",ref:S,state:qo,hasSeparator:Ee!==0,tabIndex:Wn,isFocused:Mg,tooltipContainer:B()})}))),Z.createElement(ml,{state:C,onClose:()=>y(null),onCancel:b,onDelete:n,message:Se.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!d}),Z.createElement(gl,{open:!!k,diagnosisUrl:ce,onClose:()=>x(null),status:e.status==="success"?"success":"failed",priceValue:M($,6,6),usdValue:ue,realUsdValue:D,realValue:$||"",percentageChange:M(K,2,2),token:{displayName:Y[ie-1].to.token.displayName,image:Y[ie-1].to.token.image},chain:{image:Y[ie-1].to.chain.image},description:ee}))}i(Tl,"SwapDetails");import{i18n as wi}from"@lingui/core";import{Divider as cg,NotFound as Vx,Skeleton as An,Typography as bi}from"@rango-dev/ui";import xe from"react";import{i18n as zx}from"@lingui/core";import{Divider as qx,Skeleton as Hx,Typography as Gx}from"@rango-dev/ui";import be from"react";import{css as yt,styled as kl}from"@rango-dev/ui";var lg=kl("div",{width:"100%",height:"100%",padding:"$10 $20"}),In=kl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),xi=kl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),sV=yt({display:"flex",justifyContent:"space-between",alignItems:"center"}),lV=yt({display:"flex",justifyContent:"space-between",alignItems:"center"}),pV=yt({paddingTop:"$15",display:"flex"}),cV=yt({padding:"$15 $0"}),uV=yt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),mV=yt({paddingBottom:"$10"}),dV=yt({display:"flex",justifyContent:"start",alignItems:"center"}),fV=yt({paddingTop:"$5",display:"flex",alignItems:"center"}),gV=yt({display:"flex",alignItems:"center"}),hV=yt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),pg=yt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function vl(){return be.createElement(lg,null,be.createElement(ln,{type:"swap-preview"}),be.createElement("div",{className:"swaps-steps"},be.createElement(Gx,{variant:"title",size:"small"},zx.t("Swaps steps"))),be.createElement(be.Fragment,null,be.createElement(In,null,be.createElement(vt,{separator:!1}),be.createElement("div",{className:pg()},be.createElement(qx,{direction:"horizontal",size:20}),be.createElement(Hx,{height:22,variant:"rectangular"}))),be.createElement(xi,null),be.createElement(In,null,be.createElement(vt,{separator:!1})),be.createElement(xi,null),be.createElement(In,null,be.createElement(vt,{separator:!1})),be.createElement(xi,null),be.createElement(In,null,be.createElement(vt,{separator:!1}))))}i(vl,"LoadingSwapDetails");function ug(t){let{requestId:e,showSkeleton:o}=t;return xe.createElement(me,{header:{title:wi.t("Swap Details"),suffix:xe.createElement(Ut,null)}},o&&xe.createElement(Ff,null,xe.createElement(Ci,null,xe.createElement("div",{className:Qo()},xe.createElement(bi,{variant:"label",size:"large",color:"neutral700"},`${wi.t("Request ID")}:`),xe.createElement("div",{className:Ti()},xe.createElement(bi,{variant:"label",size:"small",color:"neutral700"},xe.createElement(An,{width:60,height:10,variant:"rounded"})),xe.createElement(cg,{direction:"horizontal",size:4}),xe.createElement(An,{width:16,height:16,variant:"rectangular"}),xe.createElement(cg,{direction:"horizontal",size:4}),xe.createElement(An,{width:16,height:16,variant:"rectangular"}))),xe.createElement("div",{className:Qo()},xe.createElement(bi,{className:Qf(),variant:"label",size:"large",color:"neutral700"},xe.createElement(An,{width:60,height:10,variant:"rounded"})),xe.createElement(bi,{variant:"label",size:"small",color:"neutral700"},xe.createElement(An,{width:60,height:10,variant:"rounded"})))),xe.createElement(vl,null)),!o&&xe.createElement(Uf,null,xe.createElement(Vx,{title:wi.t("Not found"),description:wi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(ug,"SwapDetailsPlaceholder");function mg(){let{manager:t,state:e}=Xx(),o=!e.loadedFromPersistor,n=it(t),{requestId:r}=Zx(),a=rt(),{fetchStatus:s}=h();if(!r)return xl.createElement(Yx,{containerStyles:{margin:"20px"},type:"error",title:Kx.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&&jx(d)}},"onCancel"),u=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(d){console.log(d)}},"onDelete"),f=p?.swap;return!f||l?xl.createElement(ug,{requestId:r,showSkeleton:l}):xl.createElement(Tl,{swap:f,requestId:r,onCancel:c,onDelete:u})}i(mg,"SwapDetailsPage");function dg(){return nc(),la(),Jx([{path:G.home,element:Xe.createElement(Nd,null)},{path:G.routes,element:Xe.createElement(Dd,null)},{path:G.fromSwap,children:[{index:!0,element:Xe.createElement(ol,{type:"source"})},{path:G.blockchains,element:Xe.createElement(Fs,{type:"source"})}]},{path:G.toSwap,children:[{index:!0,element:Xe.createElement(ol,{type:"destination"})},{path:G.blockchains,element:Xe.createElement(Fs,{type:"destination"})}]},{path:G.settings,children:[{index:!0,element:Xe.createElement(bf,null)},{path:G.languages,element:Xe.createElement(Bd,null)},{path:G.exchanges,element:Xe.createElement(Ds,{sourceType:"Exchanges"})},{path:G.bridges,element:Xe.createElement(Ds,{sourceType:"Bridges"})}]},{path:G.swaps,children:[{index:!0,element:Xe.createElement(ld,null)},{path:G.swapDetails,element:Xe.createElement(mg,null)}]},{path:G.wallets,element:Xe.createElement(cu,null)},{path:G.confirmSwap,element:Xe.createElement(Qm,null)}])}i(dg,"AppRoutes");import{useQueueManager as sw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as lw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as pw}from"rango-sdk";import{useContext as cw,useEffect as Tg,useState as kg}from"react";import{globalCss as Rx}from"@rango-dev/ui";var fg=i(()=>Rx({"@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 gg(){let{setWatermark:t}=pe();return{fetchApiConfig:i(async()=>{let o=await fetch(`${Et("BASE_URL")}/meta/dapp/config?apiKey=${Et("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(gg,"useFetchApiConfig");import{useWallets as ew}from"@rango-dev/wallets-react";import{useEffect as tw,useRef as ow}from"react";function hg(){let{connect:t,state:e}=ew(),o=ow({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);tw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(hg,"useForceAutoConnect");import{isApprovalTX as nw,RouteEventType as yg,StepEventType as Sg,StepExecutionEventStatus as rw,WidgetEvents as Ei}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Cg}from"react";function wl(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=Ie.use.setNotification(),{findToken:n}=h();Cg(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===Sg.TX_EXECUTION&&s.status===rw.TX_SENT&&!nw(l)||s.type===Sg.SUCCEEDED){let u=t.find(d=>d.chain===l?.fromBlockchain),f=l?.fromBlockchain!==l?.toBlockchain&&t.find(d=>d.chain===l?.toBlockchain);u&&e([u],n),f&&e([f],n)}o(s,p)},"handleStepEvent");return ke.on(Ei.StepEvent,r),()=>ke.off(Ei.StepEvent,r)},[ke,t]),Cg(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===yg.FAILED||s.type===yg.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return ke.on(Ei.RouteEvent,r),()=>ke.off(Ei.RouteEvent,r)},[ke])}i(wl,"useSubscribeToWidgetEvents");import{useManager as iw}from"@rango-dev/queue-manager-react";import{useEffect as aw}from"react";function bl(){let{isSynced:t,syncNotifications:e}=Ie(),{manager:o,state:n}=iw();aw(()=>{Ie.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(it(o))},[Ie.persist.hasHydrated(),n.loadedFromPersistor,t])}i(bl,"useSyncNotifications");function El(){hg(),fg(),wl(),bl();let t=h().blockchains(),{canSwitchNetworkTo:e}=Ar(),[o,n]=kg(""),[r,a]=kg(),s=cw(Yn),l=t.filter(pw),{fetchApiConfig:p}=gg();Tg(()=>()=>oc(),[]),sw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Tg(()=>(eo.init(),Ie.persist.hasHydrated()||Ie.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(c=>{a(c),c===lw(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(El,"useBootstrap");import{styled as uw}from"@rango-dev/ui";var vg=uw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Ii(){El();let{config:t}=h(),{activeTheme:e}=yr(t?.theme||{}),{activeLanguage:o}=Kt();return Il.createElement(mw,{language:o},Il.createElement(vg,{id:"swap-container",className:e()},Il.createElement(dg,null)))}i(Ii,"Main");import{setSolanaSignerConfig as Bw}from"@rango-dev/signer-solana";import Wl,{useEffect as Ag,useMemo as Lw}from"react";import{useState as dw}from"react";var fw=i(()=>{let[t,e]=dw(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=Ql(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),xg=fw;import{checkWaitingForNetworkChange as gw,makeQueueDefinition as hw}from"@rango-dev/queue-manager-rango-preset";import{Provider as yw}from"@rango-dev/queue-manager-react";import{useWallets as Sw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Cw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Tw}from"rango-types";import kw,{useMemo as vw}from"react";function xw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=Sw(),l=vw(()=>hw({API_KEY:t.apiKey||Et("API_KEY"),BASE_URL:Et("BASE_URL"),emitter:{emit:ke.emit}}),[t.apiKey]),p=h().blockchains(),u={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},f=i(async(k,x)=>{if(a(k,x))return r(k,x)},"switchNetwork"),d=i(k=>!!s(k).mobileWallet,"isMobileWallet"),m=p.filter(k=>k.enabled).reduce((k,x)=>(k[x.name]=x,k),{}),g=p.filter(Tw),T=i(k=>{let{supportedChains:x}=s(k);return On(x)},"getSupportedChainNames"),S=e(),C={meta:{blockchains:m,evmBasedChains:g,evmNetworkChainInfo:Cw(g),getSupportedChainNames:T},getSigners:o,wallets:u,providers:S,switchNetwork:f,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},y=pe.use.isActiveTab();return kw.createElement(yw,{queuesDefs:[l],context:C,onPersistedDataLoaded:k=>{gw(k)},isPaused:!y},t.children)}i(xw,"QueueManager");var wg=xw;import{useManager as Aw}from"@rango-dev/queue-manager-react";import Ww,{createContext as Nw,useContext as Mw}from"react";function bg(){let{findToken:t}=h(),e=h().blockchains(),o=h().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=H();return i(c=>{let{fromBlockchain:u,fromToken:f,toBlockchain:d,toToken:m,requestAmount:g}=c,T={blockchains:e,tokens:o};if(u!==void 0){let S=e.find(C=>C.name===u)??null;n(S)}if(f!==void 0){let S=f?t(f)??null:null;r({meta:T,token:S})}if(d!==void 0){let S=e.find(C=>C.name===d)??null;a(S)}if(m!==void 0){let S=m?t(m)??null:null;s({meta:T,token:S})}g!==void 0&&l(g)},"updateQuoteInputs")}i(bg,"useUpdateQuoteInputs");import{cancelSwap as ww,getCurrentBlockchainOfOrNull as bw,getCurrentStep as Ew,getRelatedWalletOrNull as Iw}from"@rango-dev/queue-manager-rango-preset";var Ai=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return it(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=ar(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&ww(o)}getCurrentStepInfo(e){let o=Ew(e);return{step:o,wallet:o?Iw(e,o):null,network:o?bw(e,o):null}}};var Eg=Nw(void 0);function Al(t){let{manager:e}=Aw(),o=pe.use.isActiveTab(),n=H.use.retry(),{findToken:r}=h(),a=new Ai(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=Xl(s),c=te.use.getWalletsDetails(),u=h().blockchains(),f=h().tokens(),d=h().swappers(),m=h().fetchStatus,g=Kt().resetLanguage,T=Ie().getNotifications(),S=Ie().clearNotifications,C=bg(),{fromBlockchain:y,toBlockchain:k,fromToken:x,toToken:b,inputAmount:N}=H(),w={isActiveTab:o,setCurrentTabAsActive:eo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:v=>c(v,r)},meta:{blockchains:u,tokens:f,swappers:d,loadingStatus:m,findToken:r},resetLanguage:g,notifications:{list:T,clearAll:S},quote:{quoteInputs:{fromBlockchain:y?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:k?.name??null,toToken:b?{symbol:b.symbol,blockchain:b.blockchain,address:b.address}:null,requestAmount:N},updateQuoteInputs:C}};return Ww.createElement(Eg.Provider,{value:w},t.children)}i(Al,"WidgetInfo");function Ig(){let t=Mw(Eg);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Ig,"useWidget");function Wi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=xg();return Ag(()=>{n&&r(n)},[n]),Lw(()=>{np({API_KEY:o?.apiKey||Nn,BASE_URL:o?.apiUrl||Nl})},[o.apiKey,o.apiUrl]),Ag(()=>{t.config?.signers?.customSolanaRPC&&Bw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Wl.createElement(Zn,{config:o,onUpdateState:e},Wl.createElement(wg,{apiKey:o.apiKey},Wl.createElement(Al,null,t.children)))}i(Wi,"WidgetProvider");function Wg(t){let e=t.config?.externalWallets;return Ni.createElement(Ap,null,e?Ni.createElement(Ii,null):Ni.createElement(Wi,{config:t.config??ji},Ni.createElement(Ii,null)))}i(Wg,"Widget");function Ng(){let{on:t,off:e}=ke;return{on:t,off:e}}i(Ng,"useWidgetEvents");export{F4 as EventSeverity,Rt as MainEvents,K4 as Networks,Y4 as PendingSwapNetworkStatus,Hi as QuoteEventTypes,O4 as RouteEventType,Mi as SUPPORTED_FONTS,U4 as StepEventType,Q4 as StepExecutionBlockedEventStatus,z4 as StepExecutionEventStatus,Ce as UI_ID,Gi as UiEventTypes,Vn as WalletEventTypes,G4 as WalletEvents,j4 as WalletTypes,Wg as Widget,Rt as WidgetEvents,Wi as WidgetProvider,Zn as WidgetWallets,ka as customizedThemeTokens,H4 as readAccountAddress,no as useWalletList,Ar as useWallets,Ig as useWidget,Ng as useWidgetEvents,Mn as widgetEventEmitter};
1
+ var qg=Object.defineProperty;var i=(t,e)=>qg(t,"name",{value:e,configurable:!0});import{EventSeverity as K8,RouteEventType as j8,StepEventType as X8,StepExecutionBlockedEventStatus as Y8,StepExecutionEventStatus as Z8}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as R8,useWallets as Tr,Events as eK}from"@rango-dev/wallets-react";import{Networks as oK,WalletTypes as nK}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as iK}from"rango-types";import{UI_ID as Hg}from"@rango-dev/ui";var Mn="c6381a79-2817-4602-83bf-6a641a409e32",Bl="https://api.rango.exchange",Pl="https://explorer.rango.exchange",Le={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Hg};var Dl="Roboto",Ni=[{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 Ki,Provider as $h}from"@rango-dev/wallets-react";import{isEvmBlockchain as Fh}from"rango-sdk";import Xn,{createContext as Oh,useEffect as Wp,useMemo as Uh,useRef as Mp}from"react";import{useEffect as ch}from"react";import{create as sh}from"zustand";import{subscribeWithSelector as lh}from"zustand/middleware";import Gg from"mitt";var ge=Gg(),Ln={on:ge.on,off:ge.off};import{RangoClient as ih}from"rango-sdk";import{BlockchainCategories as Jg,WalletState as St}from"@rango-dev/ui";import{readAccountAddress as Rg}from"@rango-dev/wallets-react";import{detectInstallLink as eh,getCosmosExperimentalChainInfo as th,isEvmAddress as oh,KEPLR_COMPATIBLE_WALLETS as Mb,Networks as jl}from"@rango-dev/wallets-shared";import _i from"bignumber.js";import{isCosmosBlockchain as nh}from"rango-types";import Vg from"bignumber.js";var De=new Vg(0);import{WalletTypes as Kg}from"@rango-dev/wallets-shared";var _l=[Kg.LEAP];import{BlockchainCategories as Wi,WalletState as Zg}from"@rango-dev/ui";import{TransactionType as Bn}from"rango-sdk";function To(t){return Array.from(new Set(t))}i(To,"removeDuplicateFrom");function Bi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Bi,"areEqual");function zl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(zl,"debounce");function bt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(bt,"containsText");function Ol(t,e){return t.toLowerCase()===e.toLowerCase()}i(Ol,"exactText");function Ul(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Ul,"startWithText");var N=i(()=>document.getElementById(Le.SWAP_BOX_ID),"getContainer"),Ho=i(()=>document.getElementById(Le.EXPANDED_BOX_ID),"getExpanded");function Ql(t,e,o){let n=!!e&&Ol(e,t),r=!!o&&Ol(o,t);return n!==r?n?-1:1:0}i(Ql,"compareExactMatchText");function Mi(t,e,o){let n=!!e&&bt(e,t),r=!!o&&bt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Mi,"compareContainsText");function Li(t,e,o){let n=!!e&&Ul(e,t),r=!!o&&Ul(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Li,"compareStartWithText");function ql(t,e,o){if(!o)return 0;let n=Ql(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Ql(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Li(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Mi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Li(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Mi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Li(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Mi(o,t.address,e.address);if(r!==0)return r}return 0}i(ql,"compareWithSearchFor");var Pn=i((t,e)=>{switch(e){case Wi.ALL:return!0;case Wi.UTXO:return t===Bn.TRANSFER;case Wi.OTHER:return t!==Bn.TRANSFER&&t!==Bn.COSMOS&&t!==Bn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Hl=i(t=>Ni.find(o=>o.value===t)?.url,"getFontUrlByName");function Gl(t,e){let o=!!t.find(n=>n.state===Zg.CONNECTED);return e===!1&&o}i(Gl,"isSingleWalletActive");function Dn(t,e){return e.find(o=>o.name===t)?.displayName}i(Dn,"getBlockchainDisplayNameFor");function Re(t,e){return e.find(o=>o.name===t)?.shortName}i(Re,"getBlockchainShortNameFor");function Vl(t,e){return e.find(o=>o.name===t)?.logo}i(Vl,"getBlockchainImage");function Go(t,e){return e.find(o=>o.id===t)?.title}i(Go,"getSwapperDisplayName");function Pi(t,e){return e.find(o=>o.name===t)??null}i(Pi,"findBlockchain");function Di(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(Di,"isTokenNative");function st(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(st,"createTokenHash");import{BigNumber as Kl}from"bignumber.js";var Vo=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Kl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Kl(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 _n=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var yt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Ko=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function jo(t){switch(!0){case t.connected:return St.CONNECTED;case t.connecting:return St.CONNECTING;case!t.installed:return St.NOT_INSTALLED;default:return St.DISCONNECTED}}i(jo,"mapStatusToWalletState");function Xl(t,e,o,n){return o.filter(r=>!_l.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:d,needsDerivationPath:g}=e(r),m=To(d.map(y=>y.type)),f=jo(t(r));return{title:a,image:s,link:eh(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m,needsDerivationPath:g}})}i(Xl,"mapWalletTypesToWalletInfo");function On(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(On,"walletAndSupportedChainsNames");function Yl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(d=>d.chain===p)){let d={address:u,chain:p,walletType:t};a.push(d)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=Rg(p),d=l.length>0,g=l.includes(c),m=c===jl.Unknown;if(d&&!g&&!m)return;let y=c===jl.Unknown&&oh(u);if(m&&!y)return;o.includes(c)||y?r?s(c,u.toLowerCase()):l.filter(C=>o.includes(C)).forEach(C=>{s(C,u.toLowerCase())}):s(c,u)}),a}i(Yl,"prepareAccountsForWalletStore");function Zt(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 d=u.from.blockchain,g=u.to.blockchain,m=a===o.swaps.length-1,f=c===p.length-1;(!m&&!f||m&&l!==d||e==="all")&&n.add(d),e==="all"&&n.add(g)})}e==="all"&&n.add(l)}),Array.from(n)}i(Zt,"getQuoteWallets");function Un(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Un,"isAccountAndWalletMatched");function Zl(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 _i(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Zl,"makeBalanceFor");function Jl(t){return{...t,loading:!1,error:!0}}i(Jl,"resetConnectedWalletState");var Rl=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=M(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new _i(a?.amount||De).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),De)||De).toString();return rh(r)},"calculateWalletUsdValue");function rh(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(rh,"numberWithThousandSeparator");var Qn=i((t,e)=>{let o=th(Object.entries(t).map(([,n])=>n).filter(nh));return o&&o[e]?.experimental},"isExperimentalChain");function zn(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}i(zn,"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 Jt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Jt,"areTokensEqual");function tp(t){return t.sort((e,o)=>+(o.state===St.CONNECTED)-+(e.state===St.CONNECTED)||+(o.state===St.DISCONNECTED||o.state===St.CONNECTING)-+(e.state===St.DISCONNECTED||e.state===St.CONNECTING))}i(tp,"sortWalletsBasedOnConnectionState");function qn(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(qn,"getConciseAddress");function op({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(op,"getAddress");function Hn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new _i(o?.usdPrice??De).multipliedBy(o?.amount).toString():""},r=o?st({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i(Hn,"makeTokensBalance");var np=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function rp(t){return t.map(e=>e.state).join("-")}i(rp,"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===Jg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Pn(n,e))return!0;return!1})}i(ap,"filterWalletsByCategory");var $i={API_KEY:Mn};function Et(t){return $i[t]||""}i(Et,"getConfig");function sp(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),$i=e,$i}i(sp,"initConfig");var lp=20,pp=25,Fi="theme-widget",Oi=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Jt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Jt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Ui=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),cp=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Gn,$t=i(()=>Gn||(Gn=new ih(Et("API_KEY"),Et("BASE_URL")),Gn),"httpService");import{WidgetEvents as up}from"@rango-dev/queue-manager-rango-preset";var Qi=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Qi||{}),Vn=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Vn||{}),zi=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(zi||{}),Rt=(a=>(a[a.RouteEvent=up.RouteEvent]="RouteEvent",a[a.StepEvent=up.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Rt||{});var ah=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"),Ft=ah;var Z=Ft(sh()(lh((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{ge.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)&&ge.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:Hn(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=>Un(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await $t().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(g=>{let m=o.find(y=>Un(y,g)),f=p.find(y=>y.address===g.address&&y.blockChain===g.chain);return f?.failed&&m&&r&&a([m],n,!1),m&&f?{...g,explorerUrl:f.explorerUrl,balances:Zl(f,n),loading:!1,error:!1}:g});return{loading:!1,balances:Hn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(d=>Un(d,c))?Jl(c):c);return{loading:!1,balances:Hn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=st(o);return n[r]??null}}))));import{allProviders as ph}from"@rango-dev/provider-all";function Kn(t,e){let o=ph({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(Kn,"matchAndGenerateProviders");function mp(t,e){return Kn(t,e).map(r=>r.config.type)}i(mp,"configWalletsToWalletName");function dp(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(dp,"hashProviders");function qi(t,e){let o=Z.use.clearConnectedWallet(),n=Kn(t,e);return ch(()=>{o(),n=Kn(t,e)},[dp(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(qi,"useWalletProviders");import Wh,{createContext as Mh,useContext as Lh,useEffect as Bh,useRef as Ph}from"react";import{create as Ah}from"zustand";import{persist as Nh}from"zustand/middleware";var Hi=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()}},ko=new Hi;function Xo(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=st(p));let u=o.tokensMapByTokenHash.get(p);u&&(n[p]=u)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(p=>{l.has(p)||a(o.tokensMapByBlockchainName[p])})}return s.forEach(l=>{let p=r[l];if(!p&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}p&&(p.isExcluded?(a(o.tokensMapByBlockchainName[l]),p.tokens.forEach(u=>{let c=st(u);delete n[c]})):a(p.tokens))}),Object.values(n)}i(Xo,"matchTokensFromConfigWithMeta");var Gi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},uh={clientUrl:void 0},mh={liquiditySources:void 0},fp=i((t,e,o)=>({config:{...Gi,...t},iframe:uh,campaignMode:mh,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=Xo({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=Xo({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});ko.set("supportedSourceTokens",l),ko.set("supportedDestinationTokens",p),e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function jn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return To(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(jn,"getUniqueSwappersGroups");function gp(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(gp,"sortLiquiditySourcesByGroupTitle");function et(t,e){return e?.[t]==="hidden"}i(et,"isFeatureHidden");function hp(t,e){return e?.[t]==="enabled"}i(hp,"isFeatureEnabled");var yp=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a}=e(),s=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return s;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",c=ko.get(u);c?.length||(c=Xo({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),ko.set(u,c));let d=e().blockchains({type:o.type});return c.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!d.some(f=>f.name===m.blockchain)?!1:o.searchFor?!!(bt(m.symbol,o.searchFor)||bt(m.address||"",o.searchFor)||bt(m.name||"",o.searchFor)):!0).sort((m,f)=>{let y=e().isTokenPinned(m,o.type),T=e().isTokenPinned(f,o.type);if(y!==T)return y?-1:1;if(o.getBalanceFor){let b=o.getBalanceFor(m),W=o.getBalanceFor(f),L=ep(b,W);if(L!==0)return L}let S=l.get(m.blockchain),C=l.get(f.blockchain),k=Di(m,S),v=Di(f,C);if(k!==v)return k?-1:1;if(m.isPopular!==f.isPopular)return m.isPopular?-1:1;if(o.searchFor){let b=ql(m,f,o.searchFor);if(b)return b}return m.isSecondaryCoin!==f.isSecondaryCoin?m.isSecondaryCoin?1:-1:S&&C?S.sort-C.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=st(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Jt(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(gp)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await $t().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s={},l=[],p=n.popularTokens,u=n.swappers,c=new Set;n.tokens.forEach(g=>{c.add(g.blockchain),l.push(g)}),n.blockchains.sort((g,m)=>g.sort-m.sort).forEach(g=>{g.enabled&&c.has(g.name)&&r.set(g.name,g)}),l.forEach(g=>{let m=st(g);s[g.blockchain]||(s[g.blockchain]=[]),a.set(m,g),s[g.blockchain].push(m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as dh,English as fh,Finland as gh,French as hh,German as yh,Greece as Sh,Italian as Ch,Japanese as Th,Netherlands as kh,Poland as vh,Portuguese as xh,Russian as wh,Spanish as bh,Swedish as Eh,Ukrainian as Ih}from"@rango-dev/ui";var Sp=[{title:"English",label:"English",local:"en",SVGFlag:fh},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:bh},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:hh},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Th},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:xh},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:dh},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:wh},{title:"German",label:"Deutsch",local:"de",SVGFlag:yh},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Ih},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Eh},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:gh},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:kh},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Sh},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Ch},{title:"Polish",label:"Polski",local:"pl",SVGFlag:vh}],vo="en";var Cp=[.5,1,3],Tp=1,kp=5,vp=100,xp=0;var wp=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Tp,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=To(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=et("theme",n),s=et("language",n),l=et("liquiditySource",n),p=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||vo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||vo}})}}),"createSettingsSlice");function bp(t){return Ah()(Nh((...e)=>({...yp(...e),...wp(...e),...fp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(bp,"createAppStore");var Ep=Mh(null);function h(){let t=Lh(Ep);if(Bh(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function Ip(t){let e=Ph();return e.current||(e.current=bp(t.config)),Wh.createElement(Ep.Provider,{value:e.current},t.children)}i(Ip,"AppStoreProvider");import{create as _h}from"zustand";var Ap="rango-widget";var Yo=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(Ap),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 re=Ft(_h()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),eo=new Yo({onInit:()=>re.setState({tabManagerInitiated:!0}),onClaim:()=>re.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>re.setState({isActiveTab:!1})});var Yn=Oh({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Qh(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=h(),a=h().blockchains(),{findToken:s}=h(),l=h().config,p={walletConnectProjectId:l?.walletConnectProjectId,trezorManifest:l?.trezorManifest,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:u}=qi(l.wallets,p),{connectWallet:c,disconnectWallet:d}=Z(),g=Mp(),m=Mp();Wp(()=>{n().catch(console.log)},[]),Wp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:l,dappConfig:t.config})},[t.config,r]);let f=a.filter(Fh).map(C=>C.name),y=i((C,k,v,b,W)=>{if(k===Ki.ACCOUNTS)if(v){let L=On(W.supportedBlockchains),x=Yl(C,v,f,L,W.isContractWallet);x.length&&c(x,s)}else d(C),m.current?m.current(C):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(k===Ki.ACCOUNTS&&b.connected){let L=`${C}-${b.network}-${v}`;b.connected&&(g.current?g.current(L):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(k===Ki.NETWORK&&b.network){let L=`${C}-${b.network}`;g.current?g.current(L):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(C,k,v,b,W)},"onUpdateState"),T=re.use.isActiveTab(),S=Uh(()=>({onConnectWallet:C=>{g.current=C},onDisconnectWallet:C=>{m.current=C}}),[]);return Xn.createElement(Yn.Provider,{value:S},Xn.createElement($h,{allBlockChains:a,providers:u,onUpdateState:y,autoConnect:!!T},t.children))}i(Qh,"Main");function Zn(t){let{config:e,...o}=t;return Xn.createElement(Ip,{config:e},Xn.createElement(Qh,{...o,config:e}))}i(Zn,"WidgetWallets");import Ai from"react";import zh,{Fragment as qh}from"react";import{MemoryRouter as Hh,useInRouterContext as Gh}from"react-router";function Lp({children:t}){let o=Gh()?qh:Hh;return zh.createElement(o,null,t)}i(Lp,"AppRouter");import{I18nManager as _w}from"@rango-dev/ui";import Wl from"react";import Ve from"react";import{useRoutes as vw}from"react-router-dom";var q={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as bo,useRef as lr}from"react";import qe from"bignumber.js";import{create as jh}from"zustand";import{subscribeWithSelector as Xh}from"zustand/middleware";import{getLastSuccessfulStep as Kh}from"@rango-dev/queue-manager-rango-preset";import v0 from"bignumber.js";function ji(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(ji,"getFeeLabel");var Xi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Bp=30;import{i18n as lt}from"@lingui/core";import{RouteEventType as a0}from"@rango-dev/queue-manager-rango-preset";import _e from"bignumber.js";import{PendingSwapNetworkStatus as er}from"rango-types";function Jn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Jn,"isValidAddress");import{i18n as Be}from"@lingui/core";var ee=i(()=>({genericServerError:Be.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Be.t("Please reset your liquidity sources."),description:Be.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Be.t("No Routes Found."),description:Be.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Be.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Be.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Be.t("High Price Impact"),title:Be.t("Price impact is too high!"),description:Be.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Be.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Be.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Be.t("USD Price Unknown"),title:Be.t("USD Price Unknown, Cannot calculate Price Impact."),description:Be.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Be.t("Confirm USD Price Unknown")}}),"errorMessages");function Pp(t){switch(t.type){case 0:return t.diagnosisMessage??ee().noResultError.title;case 1:return ee().genericServerError;default:return""}}i(Pp,"getQuoteErrorMessage");import{i18n as Rn}from"@lingui/core";var to=i(()=>({connectWallet:Rn.t("Connect Wallet"),swap:Rn.t("Swap"),swapAnyway:Rn.t("Swap anyway"),ethWarning:Rn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Dp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new _e(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new _e(1e3)))??!1}i(Dp,"hasHighValueLoss");function _p(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new _e(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new _e(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(_p,"hasLimitError");function $p(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new _e(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new _e(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 _e(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new _e(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=lt.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=lt.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=lt.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=lt.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i($p,"getLimitErrorMessage");function Fp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:to().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:to().swap,action:"confirm-swap",disabled:!0}:s?{title:to().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:to().ethWarning,action:"confirm-warning",disabled:!1}:{title:to().swap,action:"confirm-swap",disabled:!1}:{title:to().connectWallet,action:"connect-wallet",disabled:!1}}i(Fp,"getSwapButtonState");function Yi(t,e,o){return!((!o||o.lte(De))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Yi,"canComputePriceImpact");function Zi(t,e){let o=De;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 _e(r.amount).multipliedBy(a||0))}return o}i(Zi,"getUsdFeeOfStep");function tr(t,e){return t.reduce((o,n)=>o.plus(Zi(n,e)),De)}i(tr,"getTotalFeeInUsd");function Ji(t){let e=De;return e=e.plus(new _e(t.amount).multipliedBy(t.price||0)),e}i(Ji,"getUsdFee");function Op(t){return t.reduce((e,o)=>e.plus(Ji(o)),De)}i(Op,"getTotalFeesInUsd");function Up(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(Up,"getFeesGroup");function Qp(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(Qp,"checkSlippageErrors");function zp(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(zp,"checkSlippageWarnings");function or(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(or,"getMinRequiredSlippage");function qp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(qp,"hasProperSlippage");function Hp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:d,affiliateWallets:g,destination:m,enableCentralizedSwappers:f}=t,y=a?.reduce((C,k)=>(C[k.chain]=k.address,C),{}),T=[];return r?.forEach(C=>{T.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:d??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:T,selectedWallets:y??{},slippage:u.toString(),...m&&{destination:m},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1},enableCentralizedSwappers:f}}i(Hp,"createQuoteRequestBody");function Gp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Gp,"getWalletsForNewSwap");function xo(t){return t?.outputAmount||null}i(xo,"getQuoteOutputAmount");function Vp(t,e){return new _e(e).div(new _e(t)).minus(1).multipliedBy(100).toNumber()}i(Vp,"getPercentageChange");function Kp(t,e){let o=xo(t),n=xo(e);if(!o||!n)return!1;let r=tt(o,n);return r?r<=-1:!0}i(Kp,"isOutputAmountChangedALot");function jp(t,e,o){let n=t.validationStatus,r=Zt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>ec(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=M(new _e(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new _e(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=lt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=lt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=lt.t(" for input and network fee")),lt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Re(s.asset.blockchain,o)}})})}i(jp,"generateBalanceWarnings");function nr(t,e){return(t?new _e(t):De).multipliedBy(e||0)}i(nr,"calcOutputUsdValue");function Zo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==er.NetworkChanged}i(Zo,"isNetworkStatusInWarningState");function Xp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Zo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case er.WaitingForConnectingWallet:n=n||lt.t("Waiting for connecting wallet");break;case er.WaitingForQueue:n=n||lt.t("Waiting for other running tasks to be finished");break;case er.WaitingForNetworkChange:n=n||lt.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(Xp,"getSwapMessages");function Yp(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(Yp,"getLastConvertedTokenInFailedSwap");function Zp(t){return t.status==="failed"}i(Zp,"shouldRetrySwap");function Jp(t,e,o,n,r,a){if(!n||t)return!0;let s=Zt({filter:"all",quote:n}),l=Zt({filter:"required",quote:n}),p=s.every(d=>r.some(g=>g.chain===d)),u=l.every(d=>r.some(g=>g.chain===d)),c=o&&a?Jn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Jp,"isConfirmSwapDisabled");function Rp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Rp,"isTokensIdentical");function ir(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(ir,"getQuoteToTokenUsdPrice");function Ri(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Ri,"isNumberOfSwapsChanged");function ea(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Bi(o,n)}i(ea,"isQuoteSwappersUpdated");function ta(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Bi(o,n)}i(ta,"isQuoteInternalCoinsUpdated");function oc(t,e){return Ri(t,e)||ea(t,e)||ta(t,e)}i(oc,"isQuoteChanged");function ec(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(ec,"getRequiredBalanceOfWallet");function It(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(It,"getPriceImpactLevel");function ar(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Kh(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Pi(a?a.toBlockchain:n.fromBlockchain,e),p=Pi(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),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:d}}i(ar,"createRetryQuote");function wo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=oo(o,t.requestAmount),l=oo(n,t?.outputAmount??"");if(t&&s&&l){let c=tt(s.toString(),l.toString());if(!!c&&Dp(s,c)){let g=tr(t?.swaps,r),m=It(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:g,warningLevel:m}}}else if(t&&(!s||!l))return{type:1};let p=or(t.swaps),u=a>kp;if(qp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:zp(t,a),minRequiredSlippage:p};return null}i(wo,"generateQuoteWarnings");function tt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Vp(t.toString(),e.toString());return n&&n<0?n:null}i(tt,"getPriceImpact");var nc=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"),sr=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"),rc=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"),ic=i(t=>{let e=i((o,n)=>{let r=Xi.indexOf(o.value),a=Xi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var oo=i((t,e)=>t?.usdPrice?new qe(e||De).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Q=Ft(jh()(Xh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new qe(0),outputUsdValue:new qe(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=De;return Ko(o.inputAmount)?(e&&(n=e?.outputAmount?new qe(e?.outputAmount):null,r=nr(e?.outputAmount,ir(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new qe(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new qe(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new qe(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:oo(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new qe(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:null,outputUsdValue:new qe(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:oo(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:oo(n??null,s),outputUsdValue:new qe(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?oo(e.toToken,e.outputAmount?.toString()||""):new qe(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new qe(0),inputUsdValue:new qe(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new qe(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),ac=Q.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ge.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&&ge.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 sc(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=Q(),c=h().config,d=h().fetchStatus,g=h().blockchains(),m=h().tokens(),{findToken:f}=h(),{setAffiliateRef:y,setAffiliatePercent:T,setAffiliateWallets:S}=h(),C=c?.from?.tokens,k=c?.from?.blockchains,v=c?.to?.tokens,b=c?.to?.blockchains,W=lr(void 0),L=lr(void 0),x=lr(void 0),I=lr(void 0);bo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),bo(()=>{if(d==="success"){r();let w=g.find(E=>E.name===c?.from?.blockchain),A=c?.from?.token,P=A&&f(A);(w||!w&&x.current)&&n(w??null),P?a({token:P,meta:{blockchains:g,tokens:m}}):!P&&W.current&&a({token:null}),x.current=c?.from?.blockchain,W.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,d]),bo(()=>{Oi(s,C)&&a({token:null}),Ui(p,k)&&n(null)},[C,k]),bo(()=>{Oi(l,v)&&a({token:null}),Ui(u,b)&&o(null)},[v,b]),bo(()=>{if(d==="success"){r();let w=g.find(E=>E.name===c?.to?.blockchain),A=c?.to?.token,P=A&&f(A);(w||!w&&I.current)&&o(w??null),P?e({token:P,meta:{blockchains:g,tokens:m}}):!P&&L.current&&e({token:null}),I.current=c?.to?.blockchain,L.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,d]),bo(()=>{y(c?.affiliate?.ref??null),T(c?.affiliate?.percent??null),S(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(sc,"useSyncStoresWithConfig");import{useEffect as ra,useRef as Yh}from"react";import{useInRouterContext as Zh,useLocation as Jh,useSearchParams as Rh}from"react-router-dom";function oa(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(oa,"convertTokenSearchParamToAsset");function na(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(na,"tokenToSearchParam");function ia(){let t=Jh(),[e,o]=Rh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:d,setInputAmount:g}=Q(),m=h().fetchStatus,f=h().blockchains(),y=h().tokens(),T=Zh(),{updateIframe:S,updateCampaignMode:C}=h(),k=h().isInCampaignMode(),v=Yh(),{findToken:b}=h(),W=i(()=>{let x={};for(let[U,J]of e.entries())U.startsWith("utm_")&&(x[U]=J);let I=e.get("fromAmount"),w=e.get("fromBlockchain"),A=e.get("fromToken"),P=e.get("toBlockchain"),E=e.get("toToken"),O=e.get("autoConnect"),R=e.get("clientUrl"),ce=e.get("liquiditySources");return{fromAmount:I,fromBlockchain:w,fromToken:A,toBlockchain:P,toToken:E,autoConnect:O,clientUrl:R,liquiditySources:ce,utmQueryParams:x}},"getUrlSearchParams"),L=i(x=>{for(let I in x)x[I]||delete x[I];o(x,{replace:!0})},"updateUrlSearchParams");ra(()=>{let{autoConnect:x,clientUrl:I,utmQueryParams:w}=W();T&&m==="success"&&L({fromBlockchain:n?.name,fromToken:na(a),toBlockchain:r?.name,toToken:na(s),fromAmount:l,autoConnect:x??void 0,clientUrl:I??void 0,liquiditySources:k?v.current:void 0,...w})},[t.pathname,l,n,a,r,s,k]),ra(()=>{if(!T)return;let x=W();if(!v.current&&x.liquiditySources&&(v.current=x.liquiditySources),x.fromAmount&&g(x.fromAmount),m==="success"){let I=f.find(E=>E.name===x.fromBlockchain),w=x.fromToken&&I?b(oa(x.fromToken,I)):void 0,A=f.find(E=>E.name===x.toBlockchain),P=x.toToken&&A?b(oa(x.toToken,A)):void 0;I&&(p(I),w&&c({token:w,meta:{blockchains:f,tokens:y}})),A&&(u(A),P&&d({token:P,meta:{blockchains:f,tokens:y}}))}},[m]),ra(()=>{let{clientUrl:x,liquiditySources:I}=W();S("clientUrl",x||void 0),C("liquiditySources",I?.split(",")??void 0)},[])}i(ia,"useSyncUrlAndStore");import{i18n as hs}from"@lingui/core";import{useManager as BT}from"@rango-dev/queue-manager-react";import{Alert as Km,Button as PT,css as Ss,Divider as ys,IconButton as jm,styled as DT,Typography as _T,WalletIcon as $T}from"@rango-dev/ui";import be,{useEffect as Xr,useLayoutEffect as FT,useRef as OT,useState as mn}from"react";import{useNavigate as UT}from"react-router-dom";import{i18n as lo}from"@lingui/core";import{Alert as nu,BalanceErrors as fS,Button as ru,ChevronLeftIcon as gS,Divider as kr,MessageBox as hS,Typography as Ia}from"@rango-dev/ui";import j,{useCallback as yS,useEffect as iu,useMemo as SS,useState as po}from"react";import{useNavigate as CS}from"react-router-dom";import{i18n as pr}from"@lingui/core";function cr(t){switch(t.type){case 0:return pr.t("Route has been updated.");case 3:return pr.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return pr.t("Route swappers has been updated.");case 2:return pr.t("Route internal coins has been updated.");default:return""}}i(cr,"getQuoteUpdateWarningMessage");import{Modal as ty}from"@rango-dev/ui";import oy from"react";function oe(t){let{watermark:e}=re();return oy.createElement(ty,{hasWatermark:e==="FULL",...t},t.children)}i(oe,"WatermarkedModal");import{i18n as pa}from"@lingui/core";import{Alert as sy,ChevronDownIcon as ly,CloseIcon as py,Divider as gc,IconButton as hc,PasteIcon as cy,Typography as uy,WalletIcon as my}from"@rango-dev/ui";import Ne,{useEffect as dy,useRef as fy}from"react";import fr,{useRef as iy}from"react";import*as Eo from"@radix-ui/react-collapsible";import{keyframes as pc,styled as ur}from"@rango-dev/ui";var aa=300,ny=pc({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),ry=pc({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),cc=ur(Eo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),sa=ur(Eo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),mr=ur(Eo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${ny} ${aa}ms ease-out`},false:{animation:`${ry} ${aa}ms ease-out`}}}}),dr=ur("div",{transition:`all ${aa}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function gr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=iy(null);return fr.createElement(cc,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&fr.createElement(sa,{className:"collapsible_trigger",onClick:a},s),fr.createElement(mr,{className:"collapsible_content",open:e},r),l==="bottom"&&fr.createElement(sa,{className:"collapsible_trigger",onClick:a},s))}i(gr,"CustomCollapsible");import{darkTheme as uc,styled as la,TextField as ay}from"@rango-dev/ui";var mc=la("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),dc=la(ay,{backgroundColor:"$neutral100",padding:"$15"}),fc=la("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${uc} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${uc} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function yc(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=Q(),{config:s}=h(),l=h().blockchains(),p=Dn(e.name,l),u=fy(null),c=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),m=n&&!!r&&e&&!Jn(e,r),f=i(()=>{a("")},"handleClear"),y=i(async S=>{if(S.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),u?.current?.focus()}},"handlePaste"),T=i(()=>r?Ne.createElement(hc,{onClick:f,variant:"ghost"},Ne.createElement(py,{size:12,color:"gray"})):d?null:Ne.createElement(hc,{onClick:y,variant:"ghost"},Ne.createElement(cy,{size:16})),"renderSuffix");return dy(()=>{!!c&&r===null&&(a(c),o(!0))},[c]),Ne.createElement(mc,null,Ne.createElement(gr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Ne.createElement(fc,null,Ne.createElement("div",{className:"button__content"},Ne.createElement(my,{size:18,color:"info"}),Ne.createElement(gc,{size:4,direction:"horizontal"}),Ne.createElement(uy,{variant:"label",size:"medium",color:n?"$neutral600":void 0},pa.t("Send to a different address"))),Ne.createElement(dr,{orientation:n?"up":"down"},Ne.createElement(ly,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Ne.createElement(dc,{ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:pa.t("Enter {blockchainName} address",{blockchainName:p}),value:r||"",suffix:T(),onChange:S=>{let C=S.target.value;a(C)}})),m&&Ne.createElement(Ne.Fragment,null,Ne.createElement(gc,{size:4}),Ne.createElement(sy,{variant:"alarm",type:"error",title:pa.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(yc,"CustomDestination");import{css as gy,darkTheme as ca,IconButton as hy,styled as At}from"@rango-dev/ui";var Sc=At("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Cc=At("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),yy=At("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${ca} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${ca} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${ca} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Tc=At(yy,{alignSelf:"stretch",minHeight:"93px"}),kc=At("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),vc=At(hy,{position:"absolute",left:"$20"}),xc=At("div",{paddingTop:"$20"}),wc=gy({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),bc=At("div",{display:"flex"}),Ec=At("div",{overflow:"visible",width:"100%"});import{i18n as Rc}from"@lingui/core";import{warn as pS}from"@rango-dev/logging-core";import{Divider as cS,SelectableWallet as uS,Typography as eu,WalletState as tu}from"@rango-dev/ui";import He,{useEffect as ou,useState as Ro}from"react";import{WalletState as Sy}from"@rango-dev/ui";import{useWallets as Cy}from"@rango-dev/wallets-react";import{useReducer as Ty}from"react";function Ic(t){return!!t.derivationPath}i(Ic,"isStateOnDerivationPathStep");function Ac(t){return!!t.namespace}i(Ac,"isStateOnNamespace");var ua={status:"init",namespace:null,derivationPath:null};function Nc(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 ua;case"resetDerivation":return{...t,derivationPath:null,status:"namespace"};default:throw new Error("Action hasn't been defined.")}}i(Nc,"reducer");function no(){let{state:t,disconnect:e,connect:o}=Cy(),[n,r]=Ty(Nc,ua),a=i(async(c,d,g)=>{r({type:"reset"});try{return await o(c,void 0,d),{status:"connected"}}catch(m){let f=m?.message?`Error: ${m.message}`:"An unknown error happened during connecting wallet.";throw new Error(f,{cause:m})}},"runConnect"),s=i(async(c,d)=>{if(c.state===Sy.DISCONNECTED){if(!c.namespaces)return await a(c.type,void 0,d);let m=c.namespaces.length>1,f=c.needsDerivationPath;return m?(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(y=>({namespace:y})),d)}return d?.disconnectIfConnected?(await u(c.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),l=i(async(c,d)=>{let g=c.singleNamespace,m=c.needsDerivationPath,f=d[0];if(!f)throw new Error("To confirm a namespace, you should select at least one namespace.");if(g&&m)return r({type:"needsDerivationPath",payload:{providerType:c.type,providerImage:c.image,namespace:f}}),{status:"derivation-path"};if(!Ac(n))throw new Error("Something went wrong on handling namespace. Please retry.");let y=n.namespace.providerType,T=d.map(S=>({namespace:S}));return await a(y,T)},"handleNamespace"),p=i(async c=>{if(!c)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Ic(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let d=n.derivationPath.providerType,m=[{namespace:n.derivationPath.namespace,derivationPath:c}];return await a(d,m)},"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(no,"useStatefulConnect");import{WalletState as da}from"@rango-dev/ui";import{useWallets as ky}from"@rango-dev/wallets-react";import{detectMobileScreens as vy,KEPLR_COMPATIBLE_WALLETS as xy,WalletTypes as Io}from"@rango-dev/wallets-shared";import{useCallback as wy,useEffect as by}from"react";var Ey=Object.values(Io);function pt(t){let{chain:e}=t||{},{config:o}=h(),{state:n,getWalletInfo:r}=ky(),{connectedWallets:a}=Z(),s=h().blockchains(),{handleDisconnect:l}=no(),p=mp(o?.wallets,{trezorManifest:o?.trezorManifest,walletConnectProjectId:o?.walletConnectProjectId,walletConnectListedDesktopWalletLink:o.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Ey,u=Xl(n,r,p,e);u=vy()?u.filter(y=>y.showOnMobile!==!1&&n(y.type).installed):u;let c=tp(u),d=i(y=>!a.find(T=>T.walletType===y&&T.chain===e),"isExperimentalChainNotAdded"),g=wy(()=>{let y=u?.filter(T=>T.state===da.CONNECTING)||[];for(let T of y)l(T.type)},[rp(u)]);by(()=>()=>{g()},[]);let m=i(y=>{let T=y.find(C=>C.type===Io.DEFAULT);return!T||T.state===da.NOT_INSTALLED?!1:y.filter(C=>C.state!=da.NOT_INSTALLED&&![Io.DEFAULT,Io.WALLET_CONNECT_2,Io.LEDGER].includes(C.type)&&r(C.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),f=i((y,T,S)=>Qn(S,T)&&d(y)&&!xy.includes(y)||y==Io.DEFAULT&&!m(u),"shouldExcludeWallet");return{list:c.filter(y=>!f(y.type,e??"",s)),terminateConnectingWallets:g}}i(pt,"useWalletList");import{Divider as eS}from"@rango-dev/ui";import ao,{useEffect as tS,useState as jc}from"react";import{i18n as fa}from"@lingui/core";import{Button as Ly,Checkbox as By,Divider as Py,Image as Fc,ListItemButton as Dy,MessageBox as _y,Radio as $y,RadioRoot as Fy}from"@rango-dev/ui";import{namespaces as Oc}from"@rango-dev/wallets-shared";import ke,{useMemo as Oy,useState as Uy}from"react";import{css as Iy,darkTheme as Wc,IconButton as Ay,styled as ro}from"@rango-dev/ui";var Ct=ro(Ay,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Wc} &`]:{backgroundColor:"$neutral"}}}),Mc=ro("div",{position:"absolute",background:"$secondary500",[`.${Wc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Ut=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Lc=ro("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),Bc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Pc=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Dc=Iy({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),hr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});import{keyframes as Ny,styled as yr}from"@rango-dev/ui";var CN=yr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Ao=yr("div",{position:"relative"}),Wy=Ny({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),No=yr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Wy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Sr=yr("div",{"& img":{borderRadius:"50%"}});function _c(t,e){return t.find(o=>o.name===e)?.logo}i(_c,"getBlockchainLogo");import{styled as My}from"@rango-dev/ui";var $c=My("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});function ga(t){let{singleNamespace:e,availableNamespaces:o,providerImage:n}=t.value,[r,a]=Uy([]),s=h().blockchains(),l=Oy(()=>o?.map(c=>({name:c,logo:_c(s,Oc[c].mainBlockchain),title:Oc[c].title})),[o]),p=i(c=>{a(e?[c]:d=>d.includes(c)?d.filter(g=>g!==c):d.concat(c))},"onSelect"),u=i(c=>e?ke.createElement(Fy,{value:r?.[0]},c):ke.createElement(ke.Fragment,null,c),"wrapRadioRoot");return ke.createElement(ke.Fragment,null,ke.createElement(Py,{size:20}),ke.createElement(_y,{type:"info",title:fa.t("Select chain types"),description:fa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:ke.createElement(Ao,null,ke.createElement(hr,null,ke.createElement(Fc,{src:n,size:45})),ke.createElement(No,null))}),ke.createElement($c,null,u(ke.createElement(ke.Fragment,null,l?.map(c=>ke.createElement(Dy,{key:c.name,id:c.name,title:c.title,hasDivider:!0,style:{height:60},onClick:()=>p(c.name),start:ke.createElement(Fc,{src:c.logo,size:22}),end:e?ke.createElement($y,{value:c.name}):ke.createElement(By,{checked:r.includes(c.name)})}))))),ke.createElement(Ly,{type:"primary",disabled:!r.length,onClick:()=>t.onConfirm(r)},fa.t("Confirm")))}i(ga,"Namespaces");import{i18n as Wo}from"@lingui/core";import{Button as qy,Divider as zc,Image as Hy,MessageBox as Gy,Select as Vy,TextField as Ky}from"@rango-dev/ui";import $e,{useEffect as jy,useState as qc}from"react";import{namespaces as Qy}from"@rango-dev/wallets-shared";var ha={id:"custom",label:"Custom",generateDerivationPath:t=>t};function ya(t){let e=t?Qy[t].derivationPaths:null;return e?[...e,ha]:[]}i(ya,"getDerivationPaths");import{styled as Uc,Typography as zy}from"@rango-dev/ui";var Qc=Uc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Sa=Uc(zy,{paddingLeft:"$10"}),Ca={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};function Ta(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=qc(null),[l,p]=qc("0"),u=a===ha.id,c=ya(o),d=i(({value:m})=>{let f=c?.find(y=>y.id===m);f&&s(f.id)},"handleDerivationPathItemClick"),g=i(()=>{let m=c.find(f=>f.id===a);if(m)e(m.generateDerivationPath(l));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return jy(()=>{s(ya(o)[0]?.id||null)},[o]),$e.createElement($e.Fragment,null,$e.createElement(zc,{size:20}),$e.createElement(Gy,{type:"info",title:Wo.t("Select Derivation Path"),description:Wo.t(`In order to connect to ${r}, you must first select a Derivation Path`),icon:$e.createElement(Ao,null,$e.createElement(Sr,null,$e.createElement(Hy,{src:n,size:45})),$e.createElement(No,null))}),$e.createElement(Qc,null,$e.createElement(Sa,{variant:"body",size:"xsmall",color:"$neutral600"},Wo.t("Choose Derivation Path Template")),$e.createElement(Vy,{value:a||"",options:c.map(m=>({value:m.id,label:m.label})),variant:"filled",handleItemClick:d,styles:{trigger:Ca}}),$e.createElement(zc,{size:20}),$e.createElement(Sa,{variant:"body",size:"xsmall",color:"$neutral600"},u?Wo.t("Enter Path"):Wo.t("Enter Index")),$e.createElement(Ky,{type:u?"text":"number",variant:"contained",value:l,onChange:m=>p(m.target.value),style:Ca})),$e.createElement(qy,{type:"primary",onClick:g,disabled:!c||!a||!l},Wo.t("Confirm")))}i(Ta,"DerivationPath");import{i18n as Mo}from"@lingui/core";import{Image as Xy,MessageBox as ka,WalletState as Yy}from"@rango-dev/ui";import{useWallets as Zy}from"@rango-dev/wallets-react";import io from"react";function va(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=Zy();return jo(a(n))===Yy.CONNECTED?io.createElement(ka,{type:"success",title:Mo.t("Wallet Connected"),description:Mo.t("Your wallet is connected, you can use it to swap.")}):o?io.createElement(ka,{type:"error",title:Mo.t("Failed to Connect"),description:o||Mo.t("Your wallet is not connected. Please try again.")}):io.createElement(ka,{type:"loading",title:Mo.t("Connecting to your wallet"),description:Mo.t("Click connect in your wallet popup."),icon:io.createElement(Ao,null,io.createElement(Sr,null,io.createElement(Xy,{src:r,size:45})),io.createElement(No,null))})}i(va,"ConnectStatus");import{i18n as xa}from"@lingui/core";import{Button as Jy,Divider as Hc,MessageBox as Ry}from"@rango-dev/ui";import Cr from"react";function wa(t){let{displayName:e,onConfirm:o}=t;return Cr.createElement(Ry,{title:xa.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:xa.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:e}})},Cr.createElement(Hc,{size:18}),Cr.createElement(Hc,{size:32}),Cr.createElement(Jy,{onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},xa.t("Confirm")))}i(wa,"ExperimentalChain");function Gc(t,e){return t().status==="init"&&!!e}i(Gc,"isOnStatus");function Vc(t){return t().status==="namespace"}i(Vc,"isOnNamespace");function Kc(t){return t().status==="derivationPath"}i(Kc,"isOnDerivationPath");var oS=3e3,nS=300;function so(t){let[e,o]=jc(!1),[n,r]=jc(),a=i(T=>{r(T.message)},"catchErrorOnHandle"),{terminateConnectingWallets:s}=pt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:c,resetState:d}=no(),g=i(T=>{u(t.wallet,T).catch(a)},"handleConfirmNamespaces"),m=i(T=>{if(!T)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(T).catch(a)},"handleDerivationPathConfirm"),f=i(()=>{o(!1)},"handleClosingModal"),y=i(()=>{r(void 0),d(),o(!1)},"resetModalState");return tS(()=>{if(t.wallet){y();let T=!1,S=!0,C=i(()=>{setTimeout(()=>{S=!1,T||o(!0)},nS)},"beforeConnecting"),k=i(v=>{let b=v.status==="connected",W=["disconnected","disconnected-unhandled"].includes(v.status);["namespace","derivation-path"].includes(v.status)||(T=!0),b&&!S?setTimeout(f,oS):W&&f(),t.onConnect&&t.onConnect(v)},"afterConnected");C(),l(t.wallet,{disconnectIfConnected:!0}).then(k).catch(a)}},[t.wallet]),ao.createElement(oe,{open:e,onClose:f,onExit:()=>{y(),s(),t.onClose&&t.onClose()},container:N()},Gc(c,t.wallet)&&ao.createElement(ao.Fragment,null,ao.createElement(va,{wallet:{type:t.wallet.type,image:t.wallet.image},error:n}),ao.createElement(eS,{direction:"vertical",size:32})),Vc(c)&&ao.createElement(ga,{onConfirm:g,value:c().namespace}),Kc(c)&&ao.createElement(Ta,{onConfirm:m,value:c().derivationPath}))}i(so,"StatefulConnectModal");import{Image as aS,MessageBox as sS,Spinner as lS}from"@rango-dev/ui";import Jo from"react";import{keyframes as rS,styled as ba}from"@rango-dev/ui";var Xc=ba("div",{position:"relative"}),iS=rS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),AW=ba("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${iS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Yc=ba("div",{"& img":{borderRadius:"50%"}});import{i18n as Lo}from"@lingui/core";function Zc(t,e){switch(t){case"in-progress":return{type:"loading",title:Lo.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Lo.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Lo.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Lo.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Lo.t("Request Rejected"),description:Lo.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(Zc,"generateMessageByStatus");function Jc(t){let{status:e,displayName:o,image:n}=t,r=Zc(e,o),a=e=="in-progress";return Jo.createElement(sS,{type:r.type,title:r.title,description:r.description,icon:a?Jo.createElement(Xc,null,Jo.createElement(Yc,null,Jo.createElement(aS,{src:n,size:45})),Jo.createElement(lS,null)):void 0})}i(Jc,"ExperimentalChainStatus");var mS=7,dS=3e3;function Ea(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=re.use.isActiveTab(),l=Z.use.connectedWallets(),{blockchains:p}=h(),[u,c]=Ro(),[d,g]=Ro(null),[m,f]=Ro(!1),[y,T]=Ro(null),{suggestAndConnect:S}=Tr(),{handleDisconnect:C}=no(),{list:k}=pt({chain:e}),[v,b]=Ro(k),W=k.length,L=r&&W-r>0,x=i(async w=>{f(!1),T("in-progress");try{await S(w.walletType,w.chain),T("completed")}catch{T("rejected")}},"addExperimentalChain");ou(()=>{b(w=>{let A=k.findIndex(P=>o(P.type,e));return L&&A>1?[k[A]].concat(k.filter((P,E)=>E!==A)):w.map(P=>k.find(E=>E.type===P.type)??P)})},[JSON.stringify(k)]);let I=document.getElementById(Le.SWAP_BOX_ID);return ou(()=>{let w=null;return(y==="completed"||y==="rejected")&&(w=setTimeout(()=>T(null),dS)),()=>{w&&clearTimeout(w)}},[y]),He.createElement(He.Fragment,null,v.slice(0,r).map(w=>{let A=op({connectedWallets:l,walletType:w.type,chain:e}),P=A?qn(A,mS):"",E=Qn(p(),e),O=!l.find(ue=>ue.walletType===w.type&&ue.chain===e),R=E&&O&&w.state===tu.CONNECTED,ce=R?Rc.t({id:"Add {chain} chain",values:{chain:e}}):P,U=i(async()=>{w.state===tu.DISCONNECTED?c(w):w.namespaces&&!P?(await C(w.type),c(w)):R?(g({walletType:w.type,chain:e,address:A??""}),f(!0)):n({walletType:w.type,chain:e,address:A??""})},"onSelectableWalletClick"),J=d?.chain?Dn(d.chain,p()):void 0;return He.createElement(He.Fragment,{key:`${w.title}_${J}`},!!d&&He.createElement(oe,{open:!!d&&m,container:I,onClose:()=>{g(null)}},He.createElement(wa,{displayName:J,onConfirm:()=>{x(d)}})),y&&He.createElement(oe,{open:!!y,onClose:T.bind(null,null),container:I},He.createElement(Jc,{status:y,displayName:J,image:w.image}),He.createElement(cS,{direction:"vertical",size:32})),He.createElement(uS,{key:w.type,description:ce,onClick:U,selected:o(w.type,e),disabled:!s,...w}))}),He.createElement(so,{wallet:u,onClose:()=>{c(void 0)},onConnect:w=>{t.onConnect&&w.status==="connected"&&(u?.type?t.onConnect(u.type):pS(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),L&&He.createElement(Tc,{selected:!1,onClick:a},He.createElement(eu,{variant:"label",size:"medium"},Rc.t("Show more wallets"),He.createElement(eu,{variant:"label",size:"medium",color:"$primary"},"\xA0+",W-(r??0)))))}i(Ea,"WalletList");var TS=2;function au(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=CS(),l=h().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:m}=Q(),{connectedWallets:f,selectWallets:y}=Z(),{config:T}=h(),[S,C]=po(""),[k,v]=po([]),[b,W]=po(""),[L,x]=po(null),[I,w]=po(!!g),A=SS(()=>Zt({filter:"all",quote:p}),[p]),P=Zt({filter:"required",quote:p}),E=l.find(B=>B.name===p?.swaps[p?.swaps.length-1].to.blockchain),O=i(B=>P.includes(B),"isWalletRequiredFor"),R=yS(()=>f.filter(B=>B.selected&&A.includes(B.chain)),[f,A]),[ce,U]=po(R()),[J,ue]=po([]),Y=i((B,z)=>ue(V=>V.concat({blockchain:B,walletType:z})),"addNextSelectedWallets"),ne=k.length>0,fe=i((B,z)=>!!ce.find(V=>V.walletType===B&&V.chain===z&&V.selected&&(O(z)||!O(z)&&!g)),"isSelected"),Ee=i((B,z,V)=>{let ae=!1;return B.map(se=>{if(se.chain===z){let me=se.selected;return!ae&&V?(ae=!0,me=!0):V||(me=!1),{...se,selected:me}}return se})},"updateSelectableWallets"),F=i(B=>{w(B),B?O(E?.name??"")||U(z=>Ee(z,E?.name||"",!1)):(m(""),U(z=>Ee(z,E?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),ze=i(B=>{if(S&&C(""),fe(B.walletType,B.chain))return;let V=f.find(ae=>ae.walletType===B.walletType&&ae.chain===B.chain);V&&(n(),B.chain===E?.name&&I&&!O(E.name)&&(w(!1),m(null)),U(ae=>ae.filter(se=>se.chain!==B.chain).concat({...V,selected:!0})))},"onChange"),gt=i(()=>{let B=ce.filter(z=>z.selected);y(B),u(B),d(!0),o()},"onConfirmBalance"),Je=i(async()=>{v([]),W(""),x(null);let B=await r?.({selectedWallets:ce.filter(V=>V.selected),customDestination:g}),z=B.warnings;z?.balance?.messages&&v(z.balance.messages),z?.quoteUpdate&&x(z.quoteUpdate),B.error&&W(Pp(B.error)),!B.error&&!z?.balance?.messages.length?gt():v(z?.balance?.messages??[])},"onConfirmWallets");iu(()=>{U(B=>{let z=[];return B.forEach(V=>{!f.some(se=>se.chain===V.chain&&se.walletType===V.walletType&&se.address===V.address)||z.push(V)}),z=z.concat(f.filter(V=>!!!z.find(se=>se.chain===V.chain)&&V.selected&&A.includes(V.chain))),z})},[f,A]),iu(()=>{let B=[];J.length>0&&(J.forEach(z=>{let V=f.find(ae=>ae.chain===z.blockchain&&ae.walletType===z.walletType);V?ze(V):B.push(z)}),ue(B))},[f,J]);let ht=document.getElementById(Le.SWAP_BOX_ID);return j.createElement(oe,{open:e,onClose:()=>{c||s("../",{replace:!0}),o()},dismissible:!S,container:ht,...!S&&{styles:{container:{height:"100%"}},footer:j.createElement(bc,null,j.createElement(ru,{loading:a,disabled:Jp(a,I,g,p,ce,E),onClick:Je,variant:"contained",type:"primary",fullWidth:!0,size:"large"},lo.t("Confirm")))},...S&&{styles:{container:{height:"100%",padding:"$0"}},header:j.createElement(kc,null,j.createElement(vc,{variant:"ghost",onClick:C.bind(null,"")},j.createElement(gS,{size:16})),j.createElement(Ia,{variant:"headline",size:"small"},lo.t({id:"Your {blockchainName} wallets",values:{blockchainName:Re(S,l)}})))},anchor:"center"},j.createElement(oe,{open:ne,onClose:v.bind(null,[]),container:ht},j.createElement(hS,{title:lo.t("Insufficient account balance"),type:"error",description:j.createElement(fS,{messages:k??[]})},j.createElement(ru,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:gt},lo.t("Proceed anyway")))),S&&j.createElement(xc,null,j.createElement("div",{className:wc()},j.createElement(Ea,{chain:S,isSelected:fe,selectWallet:ze,onShowMore:()=>C(S),onConnect:B=>{Y(S,B)}}))),!S&&j.createElement(j.Fragment,null,b&&j.createElement(j.Fragment,null,j.createElement(nu,{variant:"alarm",type:"error",title:lo.t(b)}),j.createElement(kr,{size:12})),L&&j.createElement(j.Fragment,null,j.createElement(nu,{variant:"alarm",type:"warning",title:cr(L)}),j.createElement(kr,{size:12})),j.createElement(Ec,null,A.map((B,z)=>{let V=l.find(Te=>Te.name===B),ae=`wallet-${z}`,se=z===A.length-1,me=se&&E&&T?.customDestination!==!1;return j.createElement("div",{key:ae},j.createElement(Sc,null,j.createElement(Ia,{variant:"title",size:"xmedium"},lo.t({id:"Your {blockchainName} wallets",values:{blockchainName:V?.shortName}})),j.createElement(Ia,{variant:"label",color:"$neutral700",size:"medium"},lo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:V?.shortName}}))),j.createElement(kr,{size:24}),j.createElement(Cc,null,j.createElement(Ea,{chain:B,isSelected:fe,selectWallet:ze,limit:TS,onShowMore:()=>C(V?.name??""),onConnect:Te=>{Y(B,Te)}})),!se&&j.createElement(kr,{size:32}),me&&j.createElement(yc,{blockchain:E,open:I,handleOpenChange:F}))}))))}i(au,"ConfirmWalletsModal");import{RefreshProgressButton as kS}from"@rango-dev/ui";import Aa,{useEffect as vS,useState as su}from"react";var xS=1e3,lu=60,wS=100;function vr({onClick:t}){let[e,o]=su(0),[n,r]=su(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");vS(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===lu&&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 Aa.createElement(Ct,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},Aa.createElement(Bc,{onTransitionEnd:()=>r(!1),isRefetched:n},Aa.createElement(kS,{size:22,color:t?"black":"gray",progress:e/lu*wS})))}i(vr,"RefreshButton");import{useManager as xC}from"@rango-dev/queue-manager-react";import{BottomLogo as wC,Divider as Eu,Header as bC}from"@rango-dev/ui";import Se,{useEffect as Xa,useRef as Iu,useState as EC}from"react";import{useRef as bS}from"react";function xr(){return window.self!==window.top}i(xr,"isAppLoadedIntoIframe");function Na(){let t=bS(null),{iframe:e}=h(),o=xr()&&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(Na,"useIframe");import{useNavigate as ES}from"react-router-dom";function ot(){let t=ES();return()=>t(-1)}i(ot,"useNavigateBack");import{createTheme as _a,darkTheme as US,lightTheme as QS}from"@rango-dev/ui";import{useEffect as zS,useState as qS}from"react";import{theme as FS,darkColors as OS}from"@rango-dev/ui";import Pa from"react";function IS(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(IS,"expandShortHexColor");function AS(t){return/[0-9]+$/.test(t)}i(AS,"isOverridingColor");function NS(t,e){return t.padStart(e,"0")}i(NS,"pad");function Wa(t){let e=Math.min(Math.max(Math.round(t),0),255);return NS(e.toString(16),2)}i(Wa,"intToHex");function WS(t){return`#${Wa(t.red)}${Wa(t.green)}${Wa(t.blue)}`}i(WS,"rgbToHex");function MS(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(MS,"hexToRGB");function LS(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(LS,"generateShade");function BS(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(BS,"generateTint");function PS(t){return pu(t,LS)}i(PS,"calculateShades");function DS(t){return pu(t,BS)}i(DS,"calculateTints");function pu(t,e){let o=MS(t),n=[];for(let r=1;r<9;r++)n.push(WS(e(o,r)));return n}i(pu,"calculateColors");function Ma(t,e,o){let a=DS(t).reverse().concat(t),s=PS(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let d=100+(o?u-1-c:c)*50;p[`${e}${d}`]=l[c]}return p}i(Ma,"createTintsAndShades");function La(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)&&!AS(r)){let p=IS(a);Object.assign(n,Ma(p,r,s))}}return{...n,...e}}i(La,"expandToGenerateThemeColors");var cu=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),_S=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=cu(o%52)+e;return cu(o%52)+e},"toAlphabeticName"),$S=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ba=i(t=>_S($S(5381,JSON.stringify(t))>>>0),"toHash");function Da(t){let e=FS.colors,o={...e,...OS},n,r;if(t?.light){let s={colors:La(e,t.light)};n={id:`${Fi}-light-${Ba(s)}`,tokens:s}}if(t?.dark){let s={colors:La(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Fi}-dark-${Ba(s)}`,tokens:s}}return{light:n,dark:r}}i(Da,"customizedThemeTokens");function uu(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Pa.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Pa.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Pa.cloneElement(e,{key:l}))}}),o}i(uu,"joinList");function mu(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(mu,"doesWindowPreferDarkColorScheme");function wr(t){let{colors:e,fontFamily:o=Dl,borderRadius:n=lp,secondaryBorderRadius:r=pp}=t,[a,s]=qS(mu()?"dark":"light"),{theme:l}=h(),{dark:p,light:u}=Da(e),c=_a({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[c.className,QS.className],g=[c.className,US.className];if(u){let f=_a(u.id,u.tokens);d.push(f.className)}if(p){let f=_a(p.id,p.tokens);g.push(f.className)}return zS(()=>{let f=i(y=>{y.matches?s("dark"):s("light")},"switchThemeListener");return mu()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=d.join(" "),y=g.join(" ");return l==="auto"?a==="dark"?y:f:l==="dark"?y:f},"getActiveTheme")}}i(wr,"useTheme");var nt=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 du}from"@lingui/core";import{Alert as HS,Button as GS}from"@rango-dev/ui";import fu from"react";function $a(t){return fu.createElement(HS,{action:fu.createElement(GS,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},du.t("Activate this tab")),type:"warning",variant:"alarm",title:du.t("Another tab is open and handles transactions.")})}i($a,"ActivateTabAlert");import{i18n as Fa}from"@lingui/core";import{Button as VS,Divider as KS,MessageBox as jS}from"@rango-dev/ui";import br from"react";function Oa(t){let{open:e,onClose:o,onConfirm:n}=t;return br.createElement(oe,{open:e,dismissible:!0,onClose:o,container:N()},br.createElement(jS,{title:Fa.t("Activate current tab"),type:"warning",description:Fa.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.")},br.createElement(KS,{size:20}),br.createElement(VS,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Fa.t("Confirm"))))}i(Oa,"ActivateTabModal");import{ChevronLeftIcon as XS}from"@rango-dev/ui";import gu from"react";function Ua(t){return gu.createElement(Ct,{variant:"ghost",size:"small",onClick:t.onClick},gu.createElement(XS,{color:"black",size:16}))}i(Ua,"BackButton");import{i18n as YS}from"@lingui/core";import{Button as ZS,Typography as JS}from"@rango-dev/ui";import Qa from"react";function za(t){return Qa.createElement(Ut,null,Qa.createElement(ZS,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Qa.createElement(JS,{variant:"label",size:"medium",color:"error500"},YS.t("Cancel"))))}i(za,"CancelButton");import{i18n as RS}from"@lingui/core";import{Image as eC,Tooltip as tC,WalletIcon as oC}from"@rango-dev/ui";import co from"react";function qa(t){let{list:e}=pt(),o=e.filter(r=>r.state==="connected"),n=o.length?co.createElement("div",{className:Dc()},o.map(r=>co.createElement(hr,{key:r.title},co.createElement(eC,{src:r.image,size:14})))):RS.t("Connect Wallet");return co.createElement(tC,{container:t.container,side:"bottom",content:n},co.createElement(Ct,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&co.createElement(Mc,null),co.createElement(oC,{size:18,color:"black"})))}i(qa,"WalletButton");import{i18n as Er}from"@lingui/core";import{NotificationsIcon as fC,Popover as gC,SettingsIcon as hC,Tooltip as Ir,TransactionIcon as yC}from"@rango-dev/ui";import We from"react";import{Notifications as aC}from"@rango-dev/ui";import sC from"react";import{useNavigate as lC}from"react-router-dom";import{create as nC}from"zustand";import{persist as rC,subscribeWithSelector as iC}from"zustand/middleware";var ve=Ft(nC()(rC(iC((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 Ha(){let t=lC(),{getNotifications:e,clearNotifications:o}=ve(),n=e(),r=h().blockchains(),{findToken:a}=h();return sC.createElement(aC,{list:n,getBlockchainImage:l=>Vl(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${q.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(Ha,"NotificationContent");import{useManager as pC}from"@rango-dev/queue-manager-react";import{InProgressIcon as cC}from"@rango-dev/ui";import hu from"react";var uC=i(()=>{let{manager:t}=pC();return nt(t).map(({swap:o})=>o).find(o=>o.status==="running")?hu.createElement(Pc,null,hu.createElement(cC,{color:"info",size:6})):null},"InProgressTransactionBadge"),yu=uC;import{EventSeverity as mC}from"@rango-dev/queue-manager-rango-preset";import{Typography as dC}from"@rango-dev/ui";import Su from"react";function Cu(){let{getNotifications:t}=ve(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===mC.WARNING);return o?Su.createElement(Lc,{isSever:n},Su.createElement(dC,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Cu,"NotificationsBadge");function uo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=et("notification",s)||r.includes("notifications");return We.createElement(We.Fragment,null,!r.includes("refresh")&&We.createElement(Ir,{container:a||N(),side:"top",content:Er.t("Refresh")},We.createElement(vr,{onClick:e})),!l&&We.createElement(gC,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:We.createElement(Ha,null)},We.createElement("div",null,We.createElement(Ir,{container:N(),side:"top",content:Er.t("Notifications")},We.createElement(Ct,{size:"small",variant:"ghost"},We.createElement(fC,{size:18,color:"black"}),We.createElement(Cu,null))))),!r.includes("settings")&&We.createElement(Ir,{container:N(),side:"top",content:Er.t("Settings")},We.createElement(Ct,{size:"small",variant:"ghost",onClick:n},We.createElement(hC,{size:18,color:"black"}))),!r.includes("history")&&We.createElement(Ir,{container:N(),side:"top",content:Er.t("Transactions History")},We.createElement(Ct,{size:"small",variant:"ghost",onClick:o},We.createElement(yC,{size:18,color:"black"}),We.createElement(yu,null))))}i(uo,"HeaderButtons");import{i18n as Ga}from"@lingui/core";import{Divider as ku,MessageBox as TC,RefreshIcon as kC}from"@rango-dev/ui";import Bo from"react";import{Button as SC,styled as CC}from"@rango-dev/ui";var Tu=CC(SC,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Va(t){let{open:e,onClose:o}=t;return Bo.createElement(oe,{open:e,dismissible:!0,onClose:o,container:N()},Bo.createElement(TC,{title:Ga.t("Something went wrong"),type:"error",description:Ga.t("Something went wrong. Please refresh the app.")},Bo.createElement(ku,{size:30}),Bo.createElement(Tu,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Bo.createElement(kC,{size:20,color:"primary"}),Bo.createElement(ku,{size:4,direction:"horizontal"}),Ga.t("Refresh"))))}i(Va,"RefreshModal");function Ka(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(Ka,"onScrollContentAttachStatusToContainer");import{css as vC,styled as ja}from"@rango-dev/ui";var vu="700px",Ar=vC({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),xu=ja("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:vu},fixed:{height:vu}}}}),wu=ja("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),bu=ja("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}=Na(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=EC(!1),c=Z.use.connectedWallets(),{config:{features:d,theme:g}}=h(),{watermark:m}=re(),f=m==="FULL",{activeTheme:y}=wr(g||{}),T=et("connectWalletButton",d),{isActiveTab:S,tabManagerInitiated:C,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:b}=re(),W=ot(),{manager:L}=xC(),I=nt(L).map(({swap:R})=>R).some(R=>R.status==="running"),w=i(()=>b(eo.forceClaim,I),"onActivateTab"),A=i(()=>{r.onWallet?.()},"onConnectWallet"),P=typeof r.hasBackButton>"u"||r.hasBackButton,E=Iu(null),O=Iu(null);return Xa(()=>(xr()&&O.current&&e(O.current),()=>{o()}),[]),Xa(()=>(E.current?.addEventListener("scroll",Ka),()=>{E.current?.removeEventListener("scroll",Ka)}),[]),Xa(()=>{u(l==="failed")},[l]),Se.createElement(xu,{height:s,id:Le.SWAP_BOX_ID,className:`${y()} ${Ar()}`,ref:O},Se.createElement(bC,{prefix:Se.createElement(Se.Fragment,null,P&&Se.createElement(Ua,{onClick:()=>{W(),r.onBack&&r.onBack()}})),title:r.title,suffix:Se.createElement(Se.Fragment,null,r.suffix,r.onWallet&&!T&&Se.createElement(qa,{container:N(),onClick:A,isConnected:!!c?.length}),r.onCancel&&Se.createElement(za,{onClick:r.onCancel}))}),Se.createElement(wu,{ref:E},n),Se.createElement(Oa,{open:k,onClose:()=>v(!1),onConfirm:w}),Se.createElement(bu,null,Se.createElement("div",{className:"footer__content"},C&&!S&&Se.createElement("div",{className:"footer__alert"},Se.createElement($a,{onActivateTab:w}),Se.createElement(Eu,{size:10})),a),Se.createElement(Eu,{size:12}),Se.createElement("div",{className:`footer__logo ${f?"logo__show":"logo__hidden"}`},Se.createElement(wC,null))),Se.createElement(Va,{open:p,onClose:()=>u(!1)}))}i(ie,"Layout");import{styled as IC}from"@rango-dev/ui";var Au="$20 $20 $10 $20",en=IC("div",{padding:Au,overflowY:"auto",flexGrow:1});import{styled as AC}from"@rango-dev/ui";var de=AC("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 KC}from"@lingui/core";import{Alert as jC,Button as XC,InfoIcon as YC}from"@rango-dev/ui";import je from"react";import{Alert as MC,Button as LC,Divider as Ja,NoRouteIcon as BC,RefreshIcon as PC,Typography as Du}from"@rango-dev/ui";import Ke from"react";import{i18n as Nu}from"@lingui/core";var NC=24,WC=60;function Wu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ee().genericServerError,action:{onClick:n,title:Nu.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ee().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Nu.t("Reset")}},description:ee().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ee().noResultError.description}}i(Wu,"makeInfo");var Ya=(o=>(o[o.small=NC]="small",o[o.large=WC]="large",o))(Ya||{}),Za=(o=>(o.small="small",o.large="medium",o))(Za||{});import{styled as Nr}from"@rango-dev/ui";var Mu=Nr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Lu=Nr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Bu=Nr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Pu=Nr("div",{padding:"$6 $0"});function tn(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=Wu(o,r,()=>a(s,!0),e);return Ke.createElement(Mu,null,Ke.createElement(BC,{size:Ya[n],color:"gray"}),Ke.createElement(Ja,{size:4}),Ke.createElement(Du,{variant:"title",size:Za[n]},ee().noResultError.title),n==="large"&&Ke.createElement(Ja,{size:4}),!!l.description&&Ke.createElement(Lu,{size:n},Ke.createElement(Du,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Ke.createElement(Ja,{size:n==="large"?"24":"4"}),!!l.alert&&Ke.createElement(Bu,{size:n},Ke.createElement(MC,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Ke.createElement(LC,{size:"xsmall",type:l.alert.type,prefix:Ke.createElement(Pu,null,Ke.createElement(PC,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(tn,"NoResult");import{i18n as on}from"@lingui/core";import{Button as _C,Divider as $C,MessageBox as FC,Typography as OC,WarningIcon as UC}from"@rango-dev/ui";import Nt from"react";import{Typography as Ou}from"@rango-dev/ui";import es from"react";import{darkTheme as DC,styled as Wr}from"@rango-dev/ui";var _u=Wr("div",{width:"100%"}),Ra=Wr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),$u=Wr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${DC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Fu=Wr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Uu(t){let{title:e,value:o,valueColor:n}=t;return es.createElement($u,null,es.createElement(Ou,{size:"medium",variant:"label",className:"_title"},e),es.createElement(Ou,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Uu,"QuoteErrorsModalItem");function Qu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:on.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:on.t("Gas cost"),value:M(r.totalFee,2,2)},{title:on.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:on.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Nt.createElement(oe,{footer:Nt.createElement(_C,{type:"primary",size:"large",prefix:Nt.createElement(UC,null),fullWidth:!0,disabled:a,onClick:n},ee().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},Nt.createElement(FC,{type:s,title:ee().highValueLossError.impactTitle,description:ee().highValueLossError.description}),Nt.createElement(Ra,null,Nt.createElement($C,{size:"4"}),Nt.createElement(OC,{size:"small",variant:"title"},on.t("Details")),Nt.createElement(Ra,null,l.map((p,u)=>Nt.createElement(Uu,{key:u,...p})))))}i(Qu,"HighValueLossWarningModal");import{i18n as ts}from"@lingui/core";function zu(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=ts.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&&(It(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ee().highValueLossError.title),t.type===1&&(o.title=ee().unknownPriceError.title),t.type===2&&(o.title=ts.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=ts.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(zu,"makeAlerts");import{i18n as Po}from"@lingui/core";import{Button as qu,Divider as Hu,MessageBox as QC,Typography as zC}from"@rango-dev/ui";import mo from"react";import{useNavigate as qC}from"react-router-dom";function Gu(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=qC(),u=e??o;return mo.createElement(oe,{anchor:"bottom",open:n,prefix:mo.createElement(qu,{size:"small",variant:"ghost",onClick:()=>p("../"+q.settings)},mo.createElement(zC,{variant:"label",size:"medium",color:"$neutral900"},Po.t("Change settings"))),container:N(),onClose:r},mo.createElement(QC,{type:"warning",title:s.type===3?Po.t("High slippage"):Po.t("Low slippage"),description:s.type===3?Po.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Po.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},mo.createElement(Hu,{size:18}),mo.createElement(Hu,{size:32}),mo.createElement(qu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Po.t("Confirm anyway"))))}i(Gu,"SlippageWarningModal");import{Button as HC,MessageBox as GC,WarningIcon as VC}from"@rango-dev/ui";import Mr from"react";function Vu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Mr.createElement(oe,{footer:Mr.createElement(HC,{type:"primary",size:"large",prefix:Mr.createElement(VC,null),fullWidth:!0,disabled:r,onClick:n},ee().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Mr.createElement(GC,{type:"warning",title:ee().unknownPriceError.impactTitle,description:ee().unknownPriceError.description}))}i(Vu,"UnknownPriceWarningModal");function nn(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,d={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,m=zu(e,o?.type===3||o?.type===4?o:null);return m&&!n&&(m.action=null),je.createElement(je.Fragment,null,g&&je.createElement(tn,{error:o,fetch:s}),!!m&&je.createElement(_u,null,je.createElement(jC,{title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:je.createElement(Fu,{onClick:l},je.createElement(YC,{size:12,color:"gray"}))},...m.action==="change-settings"&&{action:je.createElement(XC,{size:"xxsmall",type:m.alertType,onClick:c},KC.t("Change"))}})),e&&je.createElement(je.Fragment,null,e.type===0&&je.createElement(Qu,{...d,warning:e}),(e.type===3||e.type===2)&&je.createElement(Gu,{...d,warning:e}),e.type===1&&je.createElement(Vu,{...d,warning:e})))}i(nn,"QuoteWarningsAndErrors");import IT from"bignumber.js";import Gr from"react";import{i18n as fo}from"@lingui/core";import{Alert as fT,Divider as _o,FullExpandedQuote as gT,InfoIcon as hT,NumericTooltip as bm,QuoteTag as yT,StepDetails as ST,TokenAmount as CT,Typography as $o}from"@rango-dev/ui";import ps from"bignumber.js";import D,{useRef as TT,useState as kT}from"react";import{styled as os}from"@rango-dev/ui";var ns=os("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Ku=os("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),ju=os("div",{width:"100%",display:"flex"});import*as Lr from"@radix-ui/react-collapsible";import{Button as ZC,css as rn,darkTheme as xe,Image as Xu,styled as Fe,Typography as JC}from"@rango-dev/ui";var RC=300,Yu=Fe(Lr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${xe} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Zu=rn({padding:"$10 $15"}),Ju=Fe(ZC,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${xe} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${xe} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${xe} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Ru=Fe("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",[`.${xe} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${xe} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${xe} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${xe} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${xe} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${xe} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${xe} &`]:{backgroundColor:"$neutral400"}}}}]}),em=rn({width:"100%",padding:"$15 $15 $10 $15"}),tm=rn({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Do=rn({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),om=rn({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${xe} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),nm=Fe(Lr.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:{[`& ${Xu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Xu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${xe} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),rm=Fe("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"}}}}),im=Fe(mr,{width:"100%",background:"inherit"}),rs=Fe("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${RC}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),JD=Fe("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),am=Fe("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${xe} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),sm=Fe("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),is=Fe(JC,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),lm=Fe("div",{display:"flex",flexWrap:"wrap"}),as=Fe("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"}}}}),pm=Fe("div",{display:"flex"}),Br=Fe("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${xe} &`]:{borderTopColor:"$neutral800"}});import{i18n as Tt}from"@lingui/core";import{ChevronDownIcon as tT,CloseIcon as oT,Divider as _r,IconButton as nT,NumericTooltip as rT,QuoteCost as iT,Typography as ct}from"@rango-dev/ui";import X,{useState as dm}from"react";import{css as eT,styled as Pr}from"@rango-dev/ui";var Dr=Pr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),ss=Pr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),cm=Pr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),um=Pr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),mm=eT({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var aT=i(t=>t.fee.isZero()?null:X.createElement(Dr,null,X.createElement(ct,{variant:"label",size:"medium",color:"neutral600"},t.label),X.createElement(ct,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function fm(t){let[e,o]=dm(!1),[n,r]=dm(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,d=s?.swaps??[],g=N(),m=Up(d);return X.createElement(X.Fragment,null,X.createElement(iT,{onClickFee:c?f=>{f.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Tt.t("View more info"):void 0,tooltipContainer:g}),X.createElement(oe,{container:g,open:e,header:X.createElement(um,null,X.createElement(ct,{variant:"title",size:"medium"},Tt.t("Gas & Fee Explanation")),X.createElement(nT,{onClick:()=>o(!1),variant:"ghost"},X.createElement(oT,{color:"gray",size:14}))),onClose:()=>{o(!1)}},X.createElement(cm,null,X.createElement(ct,{variant:"title",size:"small"},Tt.t("Details")),X.createElement(_r,{size:10}),Object.entries(m.payable).flatMap(([f,y])=>y.map((T,S)=>{let C=`payable-fee-${S}`,k=Ji(T);return X.createElement(Dr,{key:C},X.createElement(ct,{variant:"label",size:"medium",color:"neutral600"},ji(f,Tt.t)),X.createElement(rT,{content:T.amount,container:g},X.createElement(ct,{variant:"label",size:"medium"},M(T.amount,2,2)," ",T.asset.symbol," ($",M(k,4,4),")")))})),X.createElement(Dr,{className:"total_payable_fee"},X.createElement(ct,{variant:"label",size:"medium"},Tt.t("Total Payable Fee")),X.createElement(ct,{variant:"label",size:"medium"},"$",M(l,4,4))),X.createElement(ss,null),Object.keys(m.nonePayable).length&&X.createElement(gr,{triggerAnchor:"bottom",onClickTrigger:()=>r(f=>!f),trigger:X.createElement("div",{className:mm()},X.createElement(ct,{size:"small",variant:"body",color:"neutral700"},n?Tt.t("Hide non-payable fees"):Tt.t("Show non-payable fees")),X.createElement(_r,{size:4,direction:"horizontal"}),X.createElement(dr,{orientation:n?"up":"down"},X.createElement(tT,{size:12,color:"gray"}))),open:n},X.createElement(ct,{size:"small",variant:"title"},Tt.t("Description")),X.createElement(_r,{size:4}),X.createElement(ct,{size:"small",variant:"body",color:"neutral700"},Tt.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),X.createElement(_r,{size:10}),Object.entries(m.nonePayable).map(([f,y],T)=>{let S=Op(y),C=ji(f,Tt.t),k=`non-payable-fee-${T}`;return X.createElement(aT,{key:k,fee:S,label:C})}),X.createElement(ss,null)))))}i(fm,"QuoteCostDetails");import{i18n as ym}from"@lingui/core";import{TokenAmount as Sm}from"@rango-dev/ui";import $r from"react";import{css as sT,styled as lT}from"@rango-dev/ui";var gm=lT("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),hm=sT({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function an(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return $r.createElement(gm,null,$r.createElement(Sm,{direction:"horizontal",label:ym.t("Swap input"),type:"input",tooltipContainer:N(),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}}),$r.createElement("div",{className:hm()}),$r.createElement(Sm,{direction:"horizontal",tooltipContainer:N(),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(an,"QuoteSummary");import{i18n as xm}from"@lingui/core";import{ChevronDownIcon as uT,ChevronRightIcon as mT,Divider as ls,Image as dT,Tooltip as zr,Typography as Or}from"@rango-dev/ui";import _ from"react";import{useLayoutEffect as pT,useState as sn}from"react";var Cm=480,Tm=768,km=1024,vm=1200,cT=i(()=>{let[t,e]=sn(!1),[o,n]=sn(!1),[r,a]=sn(!1),[s,l]=sn(!1),[p,u]=sn(!1),c=i(()=>{e(window.innerWidth<=Cm),n(window.innerWidth>Cm&&window.innerWidth<=Tm),a(window.innerWidth>Tm&&window.innerWidth<=km),l(window.innerWidth>km&&window.innerWidth<=vm),u(window.innerWidth>vm)},"handleResize");return pT(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Fr=cT;var Ur=4,Qr=6,ln=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||N();return _.createElement(zr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},_.createElement(rm,{className:n,state:a},_.createElement(dT,{src:o,size:16})))},"ImageComponent");function wm(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||N(),u=r.length,c=nc(r),{isTablet:d,isMobile:g}=Fr();return _.createElement(nm,{listItem:s==="list-item",ref:m=>e.current=m,selected:o,onClick:m=>{m.stopPropagation(),n(f=>!f)}},_.createElement("div",{className:Do()},_.createElement(Or,{variant:"body",size:"xsmall"},xm.t("Via:")),_.createElement(ls,{direction:"horizontal",size:4}),r.map((m,f)=>{let y=`item-${f}`,T=_.createElement(rs,null,_.createElement(mT,{size:12,color:"black"}));return g||d?_.createElement(_.Fragment,{key:y},_.createElement(ln,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==u-1&&_.createElement(_.Fragment,null,T)):_.createElement(_.Fragment,{key:y},u<=Ur||u>Ur&&f<Ur-1?_.createElement(_.Fragment,null,_.createElement(ln,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==u-1&&_.createElement(_.Fragment,null,T)):f===Ur-1&&_.createElement(zr,{container:p,side:"bottom",align:"end",sideOffset:4,content:_.createElement("div",{className:Do()},T,r.map((S,C)=>{let k=`image-${C}`;return C>=f&&_.createElement(_.Fragment,{key:k},_.createElement(ln,{content:S.swapper.displayName,src:S.swapper.image,state:S.state,open:!1}),C!==u-1&&_.createElement(_.Fragment,null,T))}))},_.createElement(as,{state:r.find((S,C)=>C>=f&&(S.state==="error"||S.state==="warning"))?.state},_.createElement(Or,{size:"xsmall",variant:"body"},"+",u-f))))})),_.createElement("div",{className:Do()},_.createElement("div",{className:"blockchains_section"},_.createElement("div",{className:Do()},_.createElement(Or,{variant:"body",size:"xsmall"},xm.t("Chains:")),_.createElement(ls,{direction:"horizontal",size:4}),c.map((m,f)=>_.createElement(_.Fragment,{key:m.displayName},c.length<=Qr||c.length>Qr&&f<Qr-1?_.createElement(zr,{container:p,side:"bottom",content:m.displayName,sideOffset:4},_.createElement(ln,{content:"",src:m.image,open:!1,className:f!==0?"blockchainImage":""})):f===Qr-1&&_.createElement(zr,{container:p,side:"bottom",align:"end",sideOffset:4,content:_.createElement("div",{className:Do()},c.map((y,T)=>T>=f&&_.createElement(ln,{key:y.displayName,content:"",src:y.image,open:!1,className:T>f?"blockchainImage":"",container:l})))},_.createElement(as,{className:"blockchainImage"},_.createElement(Or,{size:"xsmall",variant:"body"},"+",c.length-f))))),_.createElement(ls,{direction:"horizontal",size:32}))),_.createElement(rs,{orientation:a?"up":"down"},_.createElement(uT,{size:12,color:"black"}))))}i(wm,"QuoteTrigger");function cs(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:d=!1,container:g}=t,m=h().blockchains(),{findToken:f}=h(),y=h().swappers(),{customSlippage:T,slippage:S}=h(),C=T||S,[k,v]=kT(t.expanded),b=TT(null),W=M(o.value,6,6),L=M(n.value,6,6),x=n.usdValue?M(n.usdValue,4,4):"",I=tt(o.usdValue,n.usdValue??null),w=M(I,2,2),A=It(I??0),P=i((fe,Ee)=>fe.map((F,ze)=>{let gt,Je=r?.type===3&&r.swap.swapperId===F.swapperId,ht=r?.type===4&&r.recommendedSlippages?.has(ze),B=a?.type===2&&a.recommendedSlippages?.has(ze),z=Je||ht,V=B;z?gt="error":V&&(gt="warning");let ae=z?fo.t("Slippage Error"):fo.t("Slippage Warning");return Je&&(ae=fo.t("Bridge Limit Error")),{swapper:{displayName:Go(F.swapperId,y)??"",image:F.swapperLogo},from:{token:{displayName:F.from.symbol,image:F.from.logo},chain:{displayName:Re(F.from.blockchain,m)??"",image:F.from.blockchainLogo},price:{value:ze===0&&!Ee?M(o.value,6,6):M(F.fromAmount,6,6),usdValue:M((F.from.usdPrice??0)*parseFloat(F.fromAmount),4,4),realValue:ze===0?o.value:F.fromAmount,realUsdValue:new ps(F.from.usdPrice??0).multipliedBy(F.fromAmount).toString()}},to:{token:{displayName:F.to.symbol,image:F.to.logo},chain:{displayName:Re(F.to.blockchain,m)||"",image:F.to.blockchainLogo},price:{value:M(F.toAmount,6,6),usdValue:M((F.to.usdPrice??0)*parseFloat(F.toAmount),4,4),realValue:F.toAmount,realUsdValue:new ps(F.to.usdPrice??0).multipliedBy(F.toAmount).toString()}},state:gt,alerts:z||V?D.createElement(Ku,{dense:d},D.createElement(fT,{variant:"alarm",type:z?"error":"warning",title:ae,footer:D.createElement(ju,null,Je&&D.createElement("div",null,D.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),D.createElement(_o,{direction:"vertical",size:2}),D.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {amount} {symbol}",values:{amount:M(F.fromAmount,6,6),symbol:F?.from.symbol}}))),(ht||B)&&!Je&&D.createElement("div",null,D.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(ze)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(ze)}}})),D.createElement(_o,{direction:"vertical",size:2}),D.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Vo(F.estimatedTimeInSeconds),fee:M(Zi(F,f),2,2),internalSwaps:F.internalSwaps?P(F.internalSwaps):void 0}}),"getQuoteSteps"),E=P(e?.swaps??[]),O=E.length,R=g||N(),ce=ic(t.quote.tags||[]),U=!!c,J=Vo(_n(e?.swaps)),ue=tr(e?.swaps??[],f),Y=M(ue,2,2),ne=ue.gte(new ps(Bp));return d?D.createElement(gT,{selected:l,fee:Y,time:J,tooltipContainer:Ho(),steps:E,tags:ce,feeWarning:ne,percentageChange:w,warningLevel:A,outputPrice:{value:L,usdValue:x,realValue:n.value,realUsdValue:n.usdValue}}):D.createElement(Ru,{selected:l,listItem:s==="list-item",basic:s==="basic"},D.createElement("div",{className:em()},!p&&ce.length?D.createElement(D.Fragment,null,D.createElement(pm,null,ce.map((fe,Ee)=>{let F=`${fe.value}_${Ee}`;return D.createElement(D.Fragment,{key:F},D.createElement(yT,{label:fe.label,value:fe.value}),D.createElement(_o,{size:4,direction:"horizontal"}))})),D.createElement(Br,null),!U&&D.createElement(_o,{size:4})):null,D.createElement("div",{id:"portal-root",className:tm()},D.createElement(fm,{quote:e,time:J,fee:Y,feeWarning:ne,showModalFee:u,steps:O}),U&&D.createElement(Ju,{onClick:fe=>{fe.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},D.createElement($o,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},fo.t("See All Routes")))),s==="basic"&&D.createElement("div",{className:om()},D.createElement(sm,null,D.createElement(hT,{size:12,color:"gray"})),D.createElement(lm,null,D.createElement(is,{size:"small",variant:"body"},`${W} ${E[0].from.token.displayName} = `),D.createElement(bm,{content:n.value,container:R,open:n.value?void 0:!1},D.createElement(is,{size:"small",variant:"body"},"\xA0",`${L} ${E[E.length-1].to.token.displayName}`))),D.createElement(bm,{content:n.usdValue,container:R},D.createElement(_o,{size:2,direction:"horizontal"}),D.createElement($o,{color:"$neutral600",size:"xsmall",variant:"body"},`($${x})`))),s==="list-item"&&D.createElement(CT,{tooltipContainer:R,type:"output",direction:"vertical",price:{value:L,usdValue:x,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:E[O-1].to.token.displayName,image:E[O-1].to.token.image},chain:{image:E[O-1].to.chain.image},percentageChange:w,warningLevel:A}),s==="swap-preview"&&D.createElement(D.Fragment,null,D.createElement(an,{from:E[0].from,to:E[O-1].to,percentageChange:w,warningLevel:A}),D.createElement(_o,{size:4}))),D.createElement(Yu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},D.createElement(wm,{type:s,quoteRef:b,selected:l,setExpanded:v,container:R,expanded:k,steps:E}),D.createElement(im,{open:k},D.createElement(am,null),D.createElement("div",{className:Zu()},E.map((fe,Ee)=>{let F=`item-${Ee}`;return D.createElement(ST,{type:"quote-details",key:F,tooltipContainer:R,step:fe,hasSeparator:Ee!==E.length-1,state:fe.state})})))))}i(cs,"Quote");import{Divider as bT,Skeleton as ET}from"@rango-dev/ui";import Mt from"react";import{darkTheme as vT,styled as qr}from"@rango-dev/ui";var Em=qr("div",{$$color:"$colors$neutral100",[`.${vT} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Im=qr("div",{paddingTop:"$2"}),Am=qr("div",{paddingLeft:"$8"}),Nm=qr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Om,Divider as ut,Skeleton as Xe}from"@rango-dev/ui";import H from"react";import{css as xT,styled as Wt}from"@rango-dev/ui";var us=Wt("div",{display:"flex"}),Wm=Wt("div",{padding:"$10 $0 $20"}),Mm=Wt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Lm=Wt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Bm=Wt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Pm=Wt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Dm=Wt("div",{width:"65%",display:"flex",justifyContent:"start"}),_m=Wt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),$m=Wt("div",{padding:"$15 $0 $15 $0"}),Fm=xT({display:"flex",justifyContent:"space-between",alignItems:"center"});function pn(t){let{type:e,tagHidden:o=!0}=t,n=H.createElement(Bm,null,H.createElement(Dm,null,H.createElement(Om,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(ut,{size:8,direction:"horizontal"}),H.createElement(_m,null,H.createElement(Xe,{height:10,width:60,variant:"rounded"}),H.createElement(ut,{size:4}),H.createElement(Xe,{height:15,variant:"rounded"}))),H.createElement(Xe,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return H.createElement("div",null,!o&&H.createElement(H.Fragment,null,H.createElement(us,null,H.createElement(Xe,{width:65,height:20,variant:"rounded"}),H.createElement(ut,{size:4,direction:"horizontal"}),H.createElement(Xe,{width:65,height:20,variant:"rounded"}),H.createElement(ut,{size:4,direction:"horizontal"}),H.createElement(Xe,{width:65,height:20,variant:"rounded"})),H.createElement(Br,null),!r&&H.createElement(ut,{size:4})),H.createElement("div",{className:Fm()},H.createElement(us,null,H.createElement(Xe,{width:60,height:10,variant:"rounded"}),H.createElement(ut,{size:4,direction:"horizontal"}),H.createElement(Xe,{width:60,height:10,variant:"rounded"}),H.createElement(ut,{size:4,direction:"horizontal"}),H.createElement(Xe,{width:60,height:10,variant:"rounded"})),r&&H.createElement(Xe,{width:85,height:24,variant:"rounded"})),e==="basic"&&H.createElement(Wm,null,H.createElement(Xe,{height:15,width:148,variant:"rounded"})),e==="list-item"&&H.createElement(Mm,null,H.createElement(Lm,null,H.createElement(Om,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(ut,{direction:"horizontal",size:4}),H.createElement(Xe,{height:15,width:150,variant:"rounded"})),H.createElement(ut,{size:10}),H.createElement(Xe,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&H.createElement(H.Fragment,null,H.createElement(ut,{size:4}),H.createElement($m,null,n,H.createElement(Pm,null),n),H.createElement(ut,{size:12})))}i(pn,"QuoteSummarySkeleton");import{ChainToken as Hm,Divider as ds,NextIcon as wT,Skeleton as Hr}from"@rango-dev/ui";import we from"react";import{styled as cn}from"@rango-dev/ui";var Um=cn("div",{display:"flex",alignItems:"start"}),Qm=cn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),ms=cn("div",{display:"flex",alignItems:"center",flexGrow:1}),zm=cn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),qm=cn("div",{display:"flex",alignItems:"center"});function kt(t){let{separator:e=!0}=t;return we.createElement(we.Fragment,null,we.createElement(qm,null,we.createElement(Hr,{height:22,width:22,variant:"circular"}),we.createElement(ds,{direction:"horizontal",size:8}),we.createElement(Hr,{height:15,width:148,variant:"rounded"})),we.createElement(Um,null,we.createElement(Nm,{hideSeparator:!e}),we.createElement(Qm,{extraSpace:e},we.createElement(ms,null,we.createElement(Hm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),we.createElement(ds,{direction:"horizontal",size:8}),we.createElement(Hr,{height:12,variant:"rounded"})),we.createElement(zm,null,we.createElement(wT,{color:"gray",size:16})),we.createElement(ms,null,we.createElement(Hm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),we.createElement(ds,{direction:"horizontal",size:8}),we.createElement(Hr,{height:12,variant:"rounded"})))))}i(kt,"StepSkeleton");function un(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Mt.createElement(Em,{expanded:o,rounded:e!=="basic"},Mt.createElement(pn,{type:e,tagHidden:n}),Mt.createElement(Im,null,Mt.createElement(ET,{height:15,variant:"rounded"})),o&&Mt.createElement(Am,null,Mt.createElement(bT,{size:24}),Mt.createElement(kt,null),Mt.createElement(kt,null),Mt.createElement(kt,{separator:!1})))}i(un,"QuoteSkeleton");function go(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:d,fullExpandedMode:g=!1,container:m}=t,{inputAmount:f,inputUsdValue:y,toToken:T}=Q(),S=e?.outputAmount?new IT(e?.outputAmount):null,C=e?.outputAmount?nr(e?.outputAmount,ir(e)||T?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Gr.createElement(ns,null,Gr.createElement(un,{tagHidden:l,type:o,expanded:s})):v?Gr.createElement(ns,{onClick:()=>p?.(e)},Gr.createElement(cs,{quote:e,error:r,container:m,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:d,fullExpandedMode:g,input:{value:f,usdValue:y?.toString()??""},output:{value:S?.toString()??"",usdValue:C?.toString()??""}})):null}i(go,"QuoteInfo");import{calculatePendingSwap as MT}from"@rango-dev/queue-manager-rango-preset";import{useEffect as LT}from"react";import{useRef as AT,useState as NT}from"react";var WT=2e3;function Vr({request:t}){let[e,o]=NT(!1),n=AT(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,WT)),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(Vr,"useFetch");function Gm(){let{fetch:t,loading:e,cancelFetch:o}=Vr({request:async(n,r)=>await $t().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Gm,"useFetchConfirmQuote");function Kr(t){if(!t.swaps)throw new Error(ee().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=fs(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Kr,"throwErrorIfResponseIsNotValid");function fs(t){if(_p(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=$p(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=Qp(t);if(o){let n=or(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(fs,"getQuoteError");function Vm(t,e,o){let n=!1;t&&(n=oc(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=wo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Kp(t,e)?r.quoteUpdate={type:3,newOutputAmount:M(xo(e)),percentageChange:M(tt(xo(t)??"",xo(e)??""),null,2)}:Ri(t,e)?r.quoteUpdate={type:0}:ea(t,e)?r.quoteUpdate={type:1}:ta(t,e)&&(r.quoteUpdate={type:2}));let s=jp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(Vm,"generateWarnings");function jr(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(jr,"handleQuoteErrors");function gs(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=Q(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),d=h().blockchains(),g=h().tokens(),{findToken:m}=h(),f=u||p,{fetch:y,cancelFetch:T,loading:S}=Gm();return LT(()=>T,[]),{loading:S,fetch:i(async k=>{let v=k.selectedWallets,b=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let W=v.reduce((x,I)=>(x[I.chain]=I.address,x),{}),L={requestId:r?.requestId||"",selectedWallets:W,destination:b||void 0};try{return await y(L,!0).then(x=>{let{result:I}=x;Kr({diagnosisMessages:I.diagnosisMessages,requestId:I.requestId,swaps:I.result?.swaps});let w={outputAmount:I.result?.outputAmount,requestId:I.requestId,resultType:I.result?.resultType,swaps:I.result?.swaps||[],validationStatus:I.validationStatus,requestAmount:I.requestAmount};n(w);let A={slippage:f.toString(),disabledSwappersGroups:c},P=Vm(r??void 0,w,{fromToken:t,toToken:e,meta:{blockchains:d},findToken:m,selectedWallets:v,userSlippage:f});P.quoteUpdate&&s(!1),l();let E=!!P.balance,O=MT(o.toString(),I,Gp(v),A,!E,{blockchains:d,tokens:g});return{quote:w,swap:O,error:null,warnings:P}})}catch(x){return jr(x)}},"fetch"),cancelFetch:T}}i(gs,"useConfirmSwap");var QT=DT("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${jm}`]:{width:"$48",height:"$48"}}),zT=Ss({flexGrow:1,paddingRight:"$10"}),qT=Ss({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),HT=Ss({display:"flex",justifyContent:"space-between",alignItems:"center"});function Xm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=Q(),s=UT(),[l,p]=mn(""),u=!n,[c,d]=mn(!1),[g,m]=mn(!1),{isActiveTab:f}=re(),y=h().getDisabledLiquiditySources(),T=OT(y),{manager:S}=BT(),{fetch:C,loading:k,cancelFetch:v}=gs(),[b,W]=mn({swap:null,error:null,warnings:null}),[L,x]=mn(!1),I=i(async({selectedWallets:U,customDestination:J})=>{let ue=await C?.({selectedWallets:U,customDestination:J});return W(ue),ue},"onConfirmSwap"),w=i(async()=>{if(b.swap&&n)try{await S?.create("swap",{swapDetails:b.swap},{id:b.swap.requestId});let U=`../${q.swaps}/${b.swap.requestId}`;s(U,{replace:!0}),setTimeout(()=>{e("")},0)}catch(U){p("Error: "+U?.message)}},"addNewSwap"),A=i(async()=>{m(!0),await w(),m(!1)},"onConfirm"),P=i(async()=>{b?.warnings?.quote&&!a?x(!0):await A()},"onStartConfirmSwap"),E=i(async()=>{W({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(U=>{W(U)}).catch(U=>console.error(U))},"onRefresh");Xr(()=>{!!T.current.length&&!y.length&&E(),T.current=y},[y.length]),Xr(()=>{u&&v()},[u]),Xr(()=>{u&&d(u)},[u]),Xr(()=>{u||C({selectedWallets:o,customDestination:r}).then(U=>W(U)).catch(U=>console.error(U))},[]),FT(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let O=b.warnings?.quote??null,R=b.error,ce=[];if(l&&ce.push(be.createElement(Km,{type:"error",variant:"alarm",title:l})),b.warnings?.quoteUpdate&&ce.push(be.createElement(Km,{variant:"alarm",type:"warning",title:b.warnings.quoteUpdate&&cr(b.warnings.quoteUpdate)})),O||R){let U=`../${q.settings}`;ce.push(be.createElement(nn,{warning:O,error:R,couldChangeSettings:!1,refetchQuote:E,showWarningModal:L,confirmationDisabled:!f,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:async()=>{x(!1),await w()},onChangeSettings:()=>s(U)}))}return be.createElement(ie,{header:{title:hs.t("Confirm Swap"),onWallet:()=>{let U=`../${q.wallets}`;s(U)}},footer:be.createElement(QT,null,be.createElement("div",{className:zT()},be.createElement(PT,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||g,disabled:!!b.error||!f,onClick:P},hs.t("Start Swap"))),be.createElement(jm,{variant:"contained",type:"primary",size:"large",loading:k||g,disabled:!f,onClick:d.bind(null,!0)},be.createElement($T,{size:24})))},c&&be.createElement(au,{open:c,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:I}),be.createElement(de,null,be.createElement("div",{className:HT()},be.createElement(_T,{variant:"title",size:"small"},hs.t("You get")),be.createElement("div",{className:qT()},be.createElement(vr,{onClick:!k&&!c&&!L?E:void 0}))),be.createElement(ys,{size:"12"}),uu(ce.map((U,J)=>({element:U,key:`alert-${J}`})),be.createElement(ys,{size:10})),ce.length>0?be.createElement(ys,{size:10}):null,be.createElement(go,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:b.error,loading:k,warning:b.warnings?.quote??null})))}i(Xm,"ConfirmSwapPage");import{i18n as Ue}from"@lingui/core";import{useManager as fk}from"@rango-dev/queue-manager-react";import{Button as bs,darkTheme as gk,Divider as Gt,MessageBox as hk,NotFound as yk,styled as Es,Typography as Jr}from"@rango-dev/ui";import{TransactionStatus as hn}from"rango-types";import te,{useMemo as gd,useState as Rr}from"react";import{useNavigate as Sk}from"react-router-dom";import{FilterIcon as ZT,Popover as JT}from"@rango-dev/ui";import ho from"react";import{css as GT,darkTheme as Yr,IconButton as VT,styled as dn}from"@rango-dev/ui";var Cs=dn("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Yr} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),Ym=dn(VT,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Yr} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Yr} &`]:{backgroundColor:"$neutral"},[`& ${Cs}::before`]:{backgroundColor:"$secondary100",[`.${Yr} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Zm=dn("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Jm=dn("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),Rm=GT({display:"flex",justifyContent:"space-between",alignItems:"center"}),ed=dn("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as td}from"@lingui/core";import{Button as KT,Divider as od,ListItemButton as jT,Radio as XT,RadioRoot as YT,Typography as nd}from"@rango-dev/ui";import Ye from"react";function rd(t){let{filterBy:e,onClickItem:o}=t;return Ye.createElement(Jm,null,Ye.createElement("div",{className:Rm()},Ye.createElement(nd,{size:"small",variant:"body"},td.t("Status")),Ye.createElement(KT,{variant:"ghost",size:"xxsmall",onClick:()=>o("")},td.t("Reset"))),Ye.createElement(od,{size:10}),Ye.createElement(YT,{value:e},Ye.createElement(ed,null,t.list.map((n,r)=>Ye.createElement(jT,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:Ye.createElement(Ye.Fragment,null,Ye.createElement(od,{direction:"horizontal",size:4}),Ye.createElement(nd,{size:"medium",variant:"body"},n.title)),start:Ye.createElement(XT,{value:n.id}),onClick:o})))))}i(rd,"FilterSelectorContent");function Ts(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return ho.createElement("div",null,ho.createElement(JT,{open:a,align:"end",onOpenChange:o,container:N(),content:ho.createElement(rd,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},ho.createElement(Ym,{variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},ho.createElement(Cs,{isSelect:!!n},ho.createElement(ZT,{size:16,color:"black"}),!!n&&ho.createElement(Zm,null)))))}i(Ts,"FilterSelector");import{i18n as tk}from"@lingui/core";import{Divider as pd,GroupedVirtualizedList as ok,Skeleton as nk,SwapListItem as cd,Typography as rk}from"@rango-dev/ui";import Oe,{useCallback as ud,useEffect as ik,useRef as ak,useState as sk}from"react";function id(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(id,"calculateGroupsSoFar");import{css as RT,darkTheme as ek,styled as fn}from"@rango-dev/ui";var ks=RT(),ad=fn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),vs=fn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ks}`]:{$$color:"$colors$neutral600",[`.${ek} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),xs=fn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),sd=fn("div",{gap:"$10",display:"flex",flexDirection:"column"}),ld=fn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var lk=10;function ws(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=sk([]),l=ak(0),{swaps:p,groupCounts:u,groups:c}=n(e),d=ud(id,[]),g=ud(()=>{let m=e.length-l.current;m&&(l.current+=Math.min(m,lk),s(d(u,l.current)))},[e.length]);if(ik(()=>{r||g()},[r,g]),r){let m=[1,2];return Oe.createElement(Oe.Fragment,null,[m,m].map((y,T)=>Oe.createElement(vs,{key:T},Oe.createElement(xs,null,Oe.createElement(nk,{variant:"text",width:60,size:"small"}),Oe.createElement(pd,{size:16})),Oe.createElement(pd,{size:4}),Oe.createElement(sd,null,y.map((C,k)=>Oe.createElement(cd,{isLoading:!0,key:k}))))))}return Oe.createElement(ok,{endReached:()=>{l.current<e.length&&g()},groupCounts:a,groupContent:m=>Oe.createElement(vs,null,Oe.createElement(xs,null,Oe.createElement(rk,{variant:"label",size:"medium",className:ks()},c[m]))),itemContent:(m,f)=>{let y=p[m];if(!y)return null;let T=y.steps[0],S=y.steps[y.steps.length-1];return Oe.createElement(ad,{key:y.requestId},Oe.createElement(cd,{requestId:y.requestId,creationTime:y.creationTime,status:y.status,onClick:o,tooltipContainer:N(),onlyShowTime:c[f]===tk.t("Today"),swapTokenData:{from:{token:{image:T.fromLogo,displayName:T.fromSymbol},blockchain:{image:T.fromBlockchainLogo||""},amount:M(y.inputAmount,6,6),realAmount:y.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:M(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(ws,"HistoryGroupedList");import{CloseIcon as ck,IconButton as uk,SearchIcon as mk,TextField as dk}from"@rango-dev/ui";import gn from"react";import{styled as pk}from"@rango-dev/ui";var md=pk("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Lt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:p,...u}=t;return gn.createElement(dk,{prefix:gn.createElement(md,null,gn.createElement(mk,{color:"black"})),suffix:!!s.length&&gn.createElement(uk,{variant:"ghost",onClick:()=>p?.(""),size:"small"},gn.createElement(ck,{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(Lt,"SearchInput");import{i18n as Zr}from"@lingui/core";import dd from"dayjs";var fd=i(t=>{let e=new Map([["today",{title:Zr.t("Today"),swaps:[]}],["week",{title:Zr.t("This week"),swaps:[]}],["month",{title:Zr.t("This month"),swaps:[]}],["year",{title:Zr.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=dd();t.forEach(p=>{let u=Number(p.creationTime),c=dd(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 d=new Date(u).getFullYear().toString();o(d,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 Ck=Es("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Tk=Es("div",{display:"flex",justifyContent:"center",alignItems:"center"}),kk=Es("div",{"._typography":{color:"$neutral700",[`.${gk}&`]:{color:"$neutral900"}}}),vk=[{id:hn.SUCCESS,title:Ue.t("Complete")},{id:hn.RUNNING,title:Ue.t("Running")},{id:hn.FAILED,title:Ue.t("Failed")}],xk=i((t,e)=>t?.length?t.filter(o=>yt(o.fromBlockchain,e)||yt(o.toBlockchain,e)||yt(o.toSymbol,e)||yt(o.fromSymbol,e)).length:!1,"isStepContainsText");function hd(){let t=Sk(),{manager:e,state:o}=fk(),n=nt(e).map(({swap:k})=>k),[r,a]=Rr(""),[s,l]=Rr(!1),p=!o.loadedFromPersistor,[u,c]=Rr(""),[d,g]=Rr(!1),m=i(k=>{let v=k.target.value;a(v)},"searchHandler"),f=gd(()=>!r&&!u?n:n.filter(k=>{let{inputAmount:v,status:b,steps:W,requestId:L}=k;return(!r||yt(v,r)||yt(b,r)||xk(W,r)||yt(L,r))&&(!u||u===b)}),[n,r,u]),y=!f?.length&&!p,T=i(()=>g(!1),"onCloseModal"),S=i(async()=>{try{await e?.clearQueue(),g(!1)}catch(k){console.log(k)}},"onClear"),C=gd(()=>!n.some(k=>k.status===hn.SUCCESS||k.status===hn.FAILED),[n]);return te.createElement(ie,{header:{title:Ue.t("History"),suffix:te.createElement(Ut,null,te.createElement(bs,{disabled:C,variant:"ghost",size:"xsmall",onClick:()=>g(!0)},te.createElement(Jr,{size:"medium",variant:"label",color:"error"},Ue.t("Clear all Txs"))))}},te.createElement(de,null,te.createElement(Tk,null,te.createElement(Lt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Ue.t("Search Transaction"),autoFocus:!0,onChange:m,style:{height:36},value:r}),te.createElement(Gt,{size:10,direction:"horizontal"}),te.createElement(Ts,{filterBy:u,open:s,onOpenChange:k=>l(k),onClickItem:k=>c(k),list:vk})),te.createElement(Gt,{size:"16"}),te.createElement(Ck,null,y&&te.createElement(ld,null,te.createElement(Gt,{size:32}),te.createElement(yk,{title:r?Ue.t("No results found"):Ue.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Ue.t("Try using different keywords"):Ue.t("Your transaction history is stored locally and will appear here after you start a swap")})),!y&&te.createElement(ws,{list:f,onSwapClick:t,groupBy:fd,isLoading:p}))),te.createElement(oe,{open:d,onClose:T,container:N()},te.createElement(Gt,{size:20}),te.createElement(hk,{type:"warning",title:Ue.t("Clear History"),description:te.createElement(kk,null,te.createElement(Jr,{variant:"body",size:"medium"},Ue.t("This would clear all succeeded/failed transactions from widget. Do you wish to proceed?")),te.createElement(Gt,{size:"24"}),te.createElement(Jr,{variant:"body",size:"small"},Ue.t("Hint: This does not clear your transaction history on blockchain. Only hides them in this page.")))}),te.createElement(Gt,{size:40}),te.createElement(Gt,{size:10}),te.createElement(bs,{variant:"contained",type:"primary",size:"large",onClick:S},Ue.t("Yes, Clear history")),te.createElement(Gt,{size:10}),te.createElement(bs,{variant:"outlined",type:"primary",size:"large",onClick:T},te.createElement(Jr,{variant:"title",size:"medium",color:"primary"},Ue.t("No, Cancel")))))}i(hd,"HistoryPage");import{i18n as zk}from"@lingui/core";import{Button as qk,Divider as Dd,styled as Hk,WarningIcon as Gk}from"@rango-dev/ui";import Vk from"bignumber.js";import Ge,{useEffect as _d,useState as $d}from"react";import{useNavigate as Kk}from"react-router-dom";import{i18n as Nk}from"@lingui/core";import{Header as Wk}from"@rango-dev/ui";import Vt,{useEffect as Mk,useState as Lk}from"react";import{i18n as bk}from"@lingui/core";import{Divider as As,FullExpandedQuote as Ek,Typography as Ik}from"@rango-dev/ui";import he from"react";import{styled as Is}from"@rango-dev/ui";var yd=Is("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Sd=Is("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Cd=Is("div",{width:"146px"});import{i18n as yn}from"@lingui/core";import{Select as wk}from"@rango-dev/ui";import Td from"react";function ei(t){let{updateQuotePartialState:e,sortStrategy:o}=Q(),n=[{value:"SMART",label:yn.t("Smart Routing")},{value:"FEE",label:yn.t("Lowest Fee")},{value:"SPEED",label:yn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:yn.t("Maximum Return")},{value:"PRICE",label:yn.t("Maximum Output")}];return Td.createElement(Cd,null,Td.createElement(wk,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ei,"SelectStrategy");var kd=3;function Sn(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:d,toToken:g,sortStrategy:m,error:f}=Q(),{slippage:y,customSlippage:T}=h(),{findToken:S}=h(),C=l||N(),k=!!u&&u.results.length,v=T??y,b=i(x=>{if(!d||!g||!u)return null;let I={requestAmount:u.requestAmount,...x};return wo(I,{fromToken:d,toToken:g,userSlippage:v,findToken:S})},"getQuoteWarning"),W=f?.type===0||f?.type===1,L=u?.results?sr(m,u?.results):[];return he.createElement(he.Fragment,null,a&&he.createElement(he.Fragment,null,he.createElement(Sd,null,he.createElement(Ik,{size:"xmedium",variant:"title"},bk.t("Sort by")),he.createElement(ei,{container:C})),he.createElement(As,{size:"10"})),e&&Array.from({length:kd},(x,I)=>he.createElement(he.Fragment,{key:I},s?he.createElement(Ek,{loading:!0}):he.createElement(un,{tagHidden:!1,type:"list-item",expanded:!1}),I!==kd-1&&he.createElement(As,{size:16}))),!e&&he.createElement(he.Fragment,null,k?L.map((x,I)=>{let w=b(x),A=fs(x.swaps),P=L.length-1===I;return he.createElement(he.Fragment,{key:x.requestId},he.createElement(go,{showModalFee:r,container:C,selected:p?.requestId===x.requestId,tagHidden:!1,quote:{...x,requestAmount:u.requestAmount},loading:e,error:A?.options||null,warning:w,fullExpandedMode:s,onClick:E=>{A||c("warning",w),c("error",A?.options||null),o(E)},type:"list-item"}),!P&&he.createElement(As,{size:16}))}):W&&he.createElement(yd,null,he.createElement(tn,{size:s?"large":"small",error:f,fetch:n}))))}i(Sn,"Quotes");import{darkTheme as Ak,styled as vd}from"@rango-dev/ui";var xd=vd("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${Ak} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),wd=vd("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var Bk=100;function Ns(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=Lk(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",d=Ho();return Mk(()=>{let g=null;return a?g=setTimeout(()=>{l(!0)},Bk):(l(!1),g&&clearTimeout(g)),()=>{g&&clearTimeout(g)}},[a]),Vt.createElement(xd,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${Ar()}`,id:Le.EXPANDED_BOX_ID},Vt.createElement(Wk,{title:Nk.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(ei,{container:d}),Vt.createElement(uo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Vt.createElement(wd,null,Vt.createElement(Sn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Ho(),onClickOnQuote:n,fullExpandedMode:c})))}i(Ns,"ExpandedQuotes");import{i18n as Md}from"@lingui/core";import{SwapInput as Ld}from"@rango-dev/ui";import Cn from"react";import{ReverseIcon as _k}from"@rango-dev/ui";import Ms from"react";import{keyframes as Pk,styled as bd}from"@rango-dev/ui";var Ws=450,Dk=Pk({"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)"}}),Ed=bd("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Id=bd("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${Dk} ${Ws}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 Ls(){let t=Q.use.switchFromAndTo();return Ms.createElement(Ed,null,Ms.createElement(Id,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Ws),t()}},Ms.createElement(_k,{size:12})))}i(Ls,"SwitchFromAndToButton");import{styled as Ad}from"@rango-dev/ui";var Nd=Ad("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Wd=Ad("div",{position:"relative"});function Bs(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:d,outputAmount:g,outputUsdValue:m,selectedQuote:f}=Q(),{connectedWallets:y,getBalanceFor:T}=Z(),S=a?T(a):null,C=zn(S)?.amount??"0",k=s&&a?M(S?.amount,S?.decimals):"0",v=!!s&&np(y,s.name),b=!Yi(f,c,d),W=!Yi(f,c,m),L=!d||!m||!m.gt(0)?null:tt(d.toString(),m.toString());return Cn.createElement(Nd,null,Cn.createElement(Wd,null,Cn.createElement(Ld,{label:Md.t("From"),mode:"From",onInputChange:u,balance:C,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:b?void 0:M(d,4,4),realUsdValue:b?void 0:d?.toString(),error:b?ee().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:N(),onSelectMaxBalance:()=>{u(k.split(",").join(""))},anyWalletConnected:y.length>0}),Cn.createElement(Ls,null)),Cn.createElement(Ld,{sharpBottomStyle:!r&&(!!f||e),label:Md.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(tt(d,m),2,2),warningLevel:It(L??0),price:{value:M(g,6,6),usdValue:W?void 0:M(m,4,4),realValue:g?.toString(),realUsdValue:W?void 0:m?.toString(),error:W?ee().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(Bs,"Inputs");import{useCallback as $k,useEffect as Fk,useRef as Ok,useState as Uk}from"react";function Bd(){let{fetch:t,loading:e,cancelFetch:o}=Vr({request:async(n,r)=>await $t().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Bd,"useFetchAllQuotes");var Qk=600;function ti({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Bd(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=Z.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:d,sortStrategy:g,resetQuote:m,error:f,warning:y,setSelectedQuote:T,updateQuotePartialState:S}=Q(),{slippage:C,customSlippage:k,affiliatePercent:v,affiliateRef:b,affiliateWallets:W,fetchStatus:L}=h(),x=h().getLiquiditySources(),I=h().getDisabledLiquiditySources(),w=h().excludeLiquiditySources(),{findToken:A}=h(),[P,E]=Uk(!0),O=Ok(u),R=k??C,U=!l||!p||Jt(l,p)||!Ko(u),J=i(ne=>{E(ne)},"resetState"),ue=i(ne=>{let{fromToken:fe,toToken:Ee,inputAmount:F,liquiditySources:ze,excludeLiquiditySources:gt,disabledLiquiditySources:Je,slippage:ht,affiliateRef:B,affiliatePercent:z,affiliateWallets:V}=ne;if(P||J(!0),!U&&fe&&Ee){m();let ae=Hp({fromToken:fe,toToken:Ee,inputAmount:F,liquiditySources:ze,excludeLiquiditySources:gt,disabledLiquiditySources:Je,wallets:s,slippage:ht,affiliateRef:B,affiliatePercent:z,affiliateWallets:V,enableCentralizedSwappers:a});hp("experimentalRoute",r)&&(ae.experimental=!0),e(ae).then(se=>{let me=sr(g,se.results),Te=rc(d,me,se.requestAmount);E(!1),S("quotes",se),T(Te),Kr({diagnosisMessages:se.diagnosisMessages,requestId:Te?.requestId||"",swaps:Te?.swaps});let Wn=Te&&wo(Te,{fromToken:fe,toToken:Ee,userSlippage:R,findToken:A});S("warning",Wn)}).catch(se=>{let{error:me}=jr(se);(me?.type===0||me?.type===1)&&m(),me?.type!==2&&(S("error",me),E(!1))})}},"fetch"),Y=$k(zl(ne=>{ue(ne)},Qk),[U]);return Fk(()=>{if(!t){E(!1);return}if(L!=="success")return;if(U){E(!1),(d||f||y)&&m();return}if(!Ko(u)||c?.eq(0)){J(!1),o();return}m(),J(!0);let ne=ue;return O.current&&O.current!=u&&(ne=Y),O.current=u,ne({inputAmount:u,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:w,disabledLiquiditySources:I,slippage:R,affiliateRef:b,affiliatePercent:v,affiliateWallets:W}),o},[L,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,U,x?.length,n,I.length,R,b,v,JSON.stringify(W)]),{fetch:()=>ue({inputAmount:u,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:w,disabledLiquiditySources:I,slippage:R,affiliateRef:b,affiliatePercent:v,affiliateWallets:W}),loading:P}}i(ti,"useSwapInput");function Pd(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};ge.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Pd,"emitPreventableEvent");var jk=Hk("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),Xk=300;function Fd(){let t=Kk(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:d,updateQuotePartialState:g}=Q(),[m,f]=$d(!1),{isLargeScreen:y,isExtraLargeScreen:T}=Fr(),{fetch:S,loading:C}=ti({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:b}=Z(),{isActiveTab:W}=re(),[L,x]=$d(!1),w=Fp({fetchMetaStatus:v,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:b.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),A=cp(y,T,k?.variant),P=!!n&&!!e&&!!o&&new Vk(n).gt(0)&&!Rp(e,o),E=P&&v==="success"&&C,ce=(!A||A&&p?.results.length)&&(l||s);_d(()=>{c(),g("refetchQuote",!0)},[]),_d(()=>{f(P)},[P]);let U=(r||s)&&!L?S:void 0,J=i(Y=>{A&&m?(f(!1),setTimeout(()=>{t(Y)},Xk)):t(Y)},"onHandleNavigation"),ue=i(Y=>{r?.requestId!==Y.requestId&&(x(!1),u(Y))},"onClickOnQuote");return Ge.createElement(jk,null,Ge.createElement(ie,{height:"auto",footer:Ge.createElement(qk,{type:"primary",size:"large",disabled:w.disabled||!W,prefix:w.action==="confirm-warning"&&Ge.createElement(Gk,null),fullWidth:!0,onClick:()=>{w.action==="connect-wallet"?Pd({type:"clickConnectWallet"},()=>J(q.wallets)):w.action==="confirm-warning"?x(!0):J(q.confirmSwap)}},w.title),header:{onWallet:()=>{J(q.wallets)},hasBackButton:!1,title:k.title||zk.t("Swap"),suffix:Ge.createElement(uo,{hidden:A?["refresh"]:void 0,onClickRefresh:U,onClickHistory:()=>J(q.swaps),onClickSettings:()=>{J(q.settings)}})}},Ge.createElement(de,null,Ge.createElement(Bs,{fetchingQuote:E,fetchMetaStatus:v,isExpandable:A,onClickToken:Y=>{J(Y==="from"?q.fromSwap:q.toSwap)}}),Ge.createElement(Dd,{size:"2"}),A?null:Ge.createElement(go,{quote:r,loading:E,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{g("refetchQuote",!1),J(q.routes)}:void 0}),ce?Ge.createElement(Ge.Fragment,null,Ge.createElement(Dd,{size:"10"}),Ge.createElement(nn,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:S,showWarningModal:L,confirmationDisabled:!W,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:()=>{x(!1),d(!0),J(q.confirmSwap)},onChangeSettings:()=>J(q.settings)})):null)),A?Ge.createElement(Ns,{loading:E,onClickOnQuote:ue,fetch:S,onClickRefresh:U,isVisible:m}):null)}i(Fd,"Home");import{i18n as Od}from"@lingui/core";import{Alert as Yk,Divider as Zk,List as Jk,ListItemButton as Rk,Radio as ev,RadioRoot as tv,Typography as ov}from"@rango-dev/ui";import vt from"react";function Kt(){let{setLanguage:t,language:e,config:o}=h(),n=Sp,r=o?.language||vo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||vo),resetLanguage:()=>t(null)}}i(Kt,"useLanguage");function Ud(){let{activeLanguage:t,changeLanguage:e,languages:o}=Kt(),n=ot(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:vt.createElement(ov,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:vt.createElement(ev,{value:s}),start:vt.createElement(p,null)}});return vt.createElement(ie,{header:{title:Od.t("Language")}},vt.createElement(de,null,vt.createElement(Yk,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),vt.createElement(Zk,{size:"8"}),vt.createElement(tv,{value:t},vt.createElement(Jk,{type:vt.createElement(Rk,{title:Od.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Ud,"LanguagePage");import{i18n as Bt}from"@lingui/core";import{Button as sv,Checkbox as lv,Image as pv,ListItemButton as cv,NotFound as uv,Typography as mv}from"@rango-dev/ui";import Qe,{useState as dv}from"react";import{Checkbox as iv,Skeleton as zd}from"@rango-dev/ui";import kn from"react";import{styled as Ps}from"@rango-dev/ui";var Tn=Ps("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Ds=Ps("div",{width:80,display:"flex",justifyContent:"flex-end"}),_s=Ps("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as nv,styled as rv}from"@rango-dev/ui";var Qd=rv(nv,{height:61});var av=30;function $s(){return kn.createElement(Tn,null,Array.from(Array(av),(t,e)=>kn.createElement(Qd,{hasDivider:!0,key:e,start:kn.createElement(zd,{variant:"circular",width:35,height:35}),title:kn.createElement(zd,{variant:"text",size:"large",width:90}),end:kn.createElement(iv,{checked:!1})})))}i($s,"LoadingLiquiditySourceList");function Fs({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=dv(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=jn(o,n),u={Exchanges:Bt.t("Exchanges"),Bridges:Bt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=p.filter(S=>c.includes(S.type)),g=d.length===d.filter(S=>S.selected).length,m=i(()=>{d.forEach(S=>{g?s(S.groupTitle):S.selected||s(S.groupTitle)})},"toggleAllSources"),f=d.map(S=>{let{selected:C,groupTitle:k,logo:v}=S;return{start:Qe.createElement(pv,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Qe.createElement(lv,{checked:C,disabled:l}),title:Qe.createElement(mv,{variant:"title",size:"xmedium"},Bt.t(k)),...S}}),y=i(S=>{let C=S.target.value;a(C)},"searchHandler"),T=f;return r&&(T=f.filter(S=>yt(S.groupTitle,r))),Qe.createElement(ie,{header:{title:Bt.t(t),suffix:Qe.createElement(Ds,null,Qe.createElement(sv,{variant:"ghost",size:"xsmall",onClick:m},g?Bt.t("Deselect all"):Bt.t("Select all")))}},Qe.createElement(de,{view:!0},Qe.createElement(Lt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Bt.t("Search {sourceType}",{sourceType:u[t]}),onChange:y}),e==="loading"&&Qe.createElement($s,null),!T.length&&r?Qe.createElement(_s,null,Qe.createElement(uv,{title:Bt.t("No results found"),description:Bt.t("Try using different keywords")})):e==="success"&&Qe.createElement(Tn,{disabled:l},T.map(S=>{let{groupTitle:C,...k}=S;return Qe.createElement(Qe.Fragment,{key:S.id},Qe.createElement(cv,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(Fs,"LiquiditySourcePage");import{i18n as fv}from"@lingui/core";import oi from"react";import{useNavigate as gv}from"react-router-dom";function qd(){let t=gv(),e=ot(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=Q(),{fetch:l,loading:p}=ti({refetchQuote:n}),u=i(g=>{r(g),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${q.settings}`,d=`../${q.wallets}`;return oi.createElement(ie,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:fv.t("Routes"),suffix:oi.createElement(uo,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},oi.createElement(de,null,oi.createElement(Sn,{fetch:l,loading:p,onClickOnQuote:u})))}i(qd,"RoutesPage");import{i18n as Zd}from"@lingui/core";import{Divider as Jd,getCategoriesCount as wv,SelectableCategoryList as bv}from"@rango-dev/ui";import Pt,{useState as Rd}from"react";import{i18n as Os}from"@lingui/core";import{Divider as Xd,Image as Cv,ListItemButton as Tv,NotFound as kv,Typography as Yd}from"@rango-dev/ui";import rt,{useEffect as vv,useState as xv}from"react";var Hd=i((t,e,o)=>t.filter(n=>Pn(n.type,o)).filter(n=>bt(n.name,e)||bt(n.displayName,e)),"filterBlockchains");import{ImageContainer as hv,styled as Gd}from"@rango-dev/ui";var Vd=Gd("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),ni=Gd(en,{padding:0,margin:0,listStyle:"none",[`& ${hv}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as yv,Skeleton as Kd}from"@rango-dev/ui";import ri from"react";var Sv=20;function jd(){return ri.createElement(ni,null,Array.from(Array(Sv),t=>ri.createElement(yv,{key:t,hasDivider:!0,start:ri.createElement(Kd,{variant:"circular",width:35,height:35}),title:ri.createElement(Kd,{variant:"text",size:"large",width:90})})))}i(jd,"LoadingBlockchainList");function Us(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=xv(e),{fetchStatus:l}=h();vv(()=>{s([...Hd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?rt.createElement(rt.Fragment,null,rt.createElement(Xd,{size:32}),rt.createElement(kv,{title:Os.t("No results found"),description:Os.t("Try using different keywords")})):rt.createElement(ni,{as:"ul",key:`${r}-${o}`},a.map(u=>rt.createElement(Tv,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:rt.createElement(Cv,{src:u.logo,size:30}),title:rt.createElement(Yd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return rt.createElement(Vd,null,rt.createElement(Yd,{variant:"label",size:"large"},Os.t("Select Blockchain")),rt.createElement(Xd,{size:4}),l==="loading"&&rt.createElement(jd,null),l==="success"&&p())}i(Us,"BlockchainList");function Qs(t){let{type:e}=t,o=ot(),[n,r]=Rd(""),[a,s]=Rd("ALL"),l=Q.use.setToBlockchain(),p=Q.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),g=wv(c)!==1;return Pt.createElement(ie,{header:{title:Zd.t("Select Blockchain")}},Pt.createElement(de,{view:!0},g&&Pt.createElement(Pt.Fragment,null,Pt.createElement(bv,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Pt.createElement(Jd,{size:24})),Pt.createElement(Lt,{value:n,autoFocus:!0,placeholder:Zd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Pt.createElement(Jd,{size:16}),Pt.createElement(Us,{list:c,searchedFor:n,blockchainCategory:a,onChange:m=>{e==="source"?p(m):l(m),o()}})))}i(Qs,"SelectBlockchainPage");import{i18n as pi}from"@lingui/core";import{Divider as kf}from"@rango-dev/ui";import yo,{useState as Vv}from"react";import{useNavigate as Kv}from"react-router-dom";import{i18n as Hs}from"@lingui/core";import{BlockchainsChip as ii,Divider as nf,Image as rf,Skeleton as Wv,Tooltip as Mv,Typography as Gs}from"@rango-dev/ui";import Me from"react";import{useEffect as Av}from"react";var ef=["ETH","COSMOS","OSMOSIS"];function zs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Ev),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(Iv(s)),r=n.splice(a)}return{list:n,more:r}}i(zs,"prepare");function Ev(t,e){let o=ef,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(Ev,"sortByMostUsedBlockchains");function Iv(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(Iv,"generateSortByPreferredBlockchainsFor");function tf(t,e){return!!e.list.find(o=>o.name===t)}i(tf,"isInVisibleList");function qs(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();Av(()=>{if(e?.selected){let a=zs(t,o,e);tf(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=zs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(qs,"usePrepareBlockchainList");import{styled as Nv}from"@rango-dev/ui";var of=Nv("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Lv=12;function Vs(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=qs(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=Q.use.resetToBlockchain(),u=Q.use.resetFromBlockchain(),c=s.more.length>0,d=s.more.length===1,g=!d&&c;return Me.createElement(Me.Fragment,null,Me.createElement(nf,{size:12}),Me.createElement(Gs,{variant:"label",size:"large"},Hs.t("Select Blockchain")),Me.createElement(nf,{size:12}),Me.createElement(of,null,l==="loading"&&Array.from(Array(Lv),m=>Me.createElement(Wv,{key:m,variant:"rounded",height:50})),l==="success"&&Me.createElement(Me.Fragment,null,Me.createElement(ii,{selected:!n,onClick:()=>{o==="from"?u():p()}},Me.createElement(Gs,{variant:"body",size:"xsmall",color:"secondary500"},Hs.t("All"))),s.list.map(m=>Me.createElement(Mv,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:N()},Me.createElement(ii,{key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},Me.createElement(rf,{src:m.logo,size:30})))),d?Me.createElement(ii,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Me.createElement(rf,{src:s.more[0].logo,size:30})):null,g?Me.createElement(ii,{onClick:a,key:"more-blockchains"},Me.createElement(Gs,{variant:"body",size:"xsmall",color:"secondary500"},Hs._("More +{count}",{count:s.more.length}))):null)))}i(Vs,"BlockchainsSection");import{i18n as nl}from"@lingui/core";import{darkTheme as hf,Divider as Oo,ExternalLinkIcon as Ov,Image as Uv,ListItemButton as Qv,NotFound as zv,PinIcon as qv,Skeleton as yf,Typography as li,VirtualizedList as Hv}from"@rango-dev/ui";import G,{useEffect as Sf,useState as Cf}from"react";import{useWallets as Bv}from"@rango-dev/wallets-react";import{useEffect as Pv,useRef as Dv,useState as _v}from"react";function Ks(t){let{connectedWallets:e}=Z(),{getWalletInfo:o}=Bv(),n=Dv([]),[r,a]=_v(0);return Pv(()=>{let s=i(p=>{p.type==="disconnect"&&o(p.payload.walletType).supportedChains.some(d=>d.name===t)&&a(d=>d+1)},"handleWalletEvent");return Ln.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(d=>d!==u),a(d=>d+1))}),()=>Ln.off("walletEvent",s)):a(p=>p+1)},[e,t,o]),{balanceKey:r}}i(Ks,"useObserveBalanceChanges");import{Divider as ff,ListItem as Fv,Skeleton as vn}from"@rango-dev/ui";import mt from"react";import{css as Fo,darkTheme as af,ImageContainer as $v,styled as it,Typography as sf}from"@rango-dev/ui";var js=Fo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Xs=Fo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Ys=Fo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Zs=Fo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${af} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Js=Fo({}),Rs=Fo(),lf=it("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),el=it("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ai=it("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Xs}`]:{[`& .${Zs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Js}`]:{bottom:"-15px"},[`& .${js}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Ys}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),tl=it("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),ol=it(sf,{}),pf=it("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Rs}`]:{$$color:"$colors$neutral600",[`.${af} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),si=it("div",{display:"flex",alignItems:"end",flexDirection:"column"}),Cq=it("div",{display:"flex",alignItems:"center"}),cf=it("div",{position:"relative",[`& ${$v}`]:{borderRadius:"$xm",overflow:"hidden"}}),uf=it("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),mf=it(sf,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),df=it("a",{"& svg:hover":{color:"$colors$info"}});function gf(t){return mt.createElement(ai,null,Array.from(Array(t.size),e=>mt.createElement(Fv,{key:e,hasDivider:!0,start:mt.createElement(vn,{variant:"circular",width:35,height:35}),end:mt.createElement(si,null,mt.createElement(vn,{variant:"text",size:"large",width:70}),mt.createElement(ff,{size:4}),mt.createElement(vn,{variant:"text",size:"medium",width:50})),title:mt.createElement("div",null,mt.createElement(vn,{variant:"text",size:"large",width:90}),mt.createElement(ff,{size:4}),mt.createElement(vn,{variant:"text",size:"medium",width:90}))})))}i(gf,"LoadingTokenList");var rl=20,Gv=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return G.createElement("div",{className:Xs()},o?G.createElement("div",{className:js()},o):G.createElement(el,{className:Ys()},G.createElement(li,{variant:"title",size:"xmedium"},r.symbol),G.createElement(Oo,{direction:"horizontal",size:4}),G.createElement(tl,{css:a},G.createElement(ol,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&G.createElement("div",{className:`${Zs()} ${!o&&Js()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",G.createElement(Oo,{size:4,direction:"horizontal"}),G.createElement(df,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},G.createElement(Ov,{size:12}))))},"renderDesc");function Tf(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Cf(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=Cf(!0),{getBalanceFor:d,loading:g}=Z(),{isTokenPinned:m}=h(),{balanceKey:f}=Ks(r),y=i(()=>{s(e.slice(0,a.length+rl))},"loadNextPage");Sf(()=>{c(e.length>a.length)},[a.length]),Sf(()=>{s(e.slice(0,rl))},[e.length,r,f]);let T=i(()=>!a.length&&o?G.createElement(G.Fragment,null,G.createElement(Oo,{size:32}),G.createElement(zv,{title:nl.t("No results found"),description:nl.t("Try using different keywords")})):G.createElement(Hv,{endReached:u?y:void 0,itemContent:S=>{let C=a[S],k=zn(d(C)),v=C.address||"",b=p.find(I=>I.name===C.blockchain),W=Ma(b.color,"main"),L={$$color:W.main150,[`.${hf} &`]:{$$color:W.main750},backgroundColor:"$$color"},x={$$color:W.main750,[`.${hf} &`]:{$$color:W.main150},color:"$$color"};return G.createElement("div",{style:{paddingRight:5}},G.createElement(Qv,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":S,key:`${C.symbol}${C.address}`,id:`${C.symbol}${C.address}`,hasDivider:!0,onClick:()=>n(a[S]),start:G.createElement(cf,null,G.createElement(Uv,{src:C.image,size:30}),m(C,t.type)&&G.createElement(uf,null,G.createElement(qv,{size:12,color:"gray"}))),title:b?.type==="COSMOS"||C.name||!C.name&&!v?G.createElement(el,null,G.createElement(li,{variant:"title",size:"xmedium"},C.symbol),G.createElement(Oo,{direction:"horizontal",size:4}),G.createElement(tl,{css:L},G.createElement(ol,{variant:"body",size:"xsmall",css:x},C.blockchain))):void 0,description:b?.info&&v&&b.type!=="COSMOS"?Gv({address:v,token:a[S],customCssForTag:L,customCssForTagTitle:x,name:C.name,url:b.info.addressUrl.split("{wallet}").join(v)}):C.name||void 0,end:g?G.createElement(si,null,G.createElement(yf,{variant:"text",size:"large",width:70}),G.createElement(Oo,{size:4}),G.createElement(yf,{variant:"text",size:"medium",width:50})):k&&G.createElement(pf,null,G.createElement(mf,{variant:"title",size:"small"},k.amount),G.createElement("div",null),k.usdValue&&G.createElement(li,{variant:"body",className:Rs(),size:"xsmall"},`$${k.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}-${f}`}),"renderList");return G.createElement(lf,null,G.createElement(li,{variant:"label",size:"large"},nl.t("Select Token")),G.createElement(Oo,{size:4}),l==="loading"&&G.createElement(gf,{size:rl}),l==="success"&&G.createElement(ai,{as:"ul"},T()))}i(Tf,"TokenList");function il(t){let{type:e}=t,o=Kv(),n=ot(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=Q(),c=Z.use.getBalanceFor(),[d,g]=Vv(""),f=(e==="source"?r:a)?.name??"",y=h().blockchains({type:e}),T=h().tokens({type:e,blockchain:f,searchFor:d,getBalanceFor:c}),S=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),C=i(v=>{e==="source"?s({token:v,meta:{blockchains:y,tokens:T}}):l({token:v,meta:{blockchains:y,tokens:T}})},"updateToken"),k={source:pi.t("Source"),destination:pi.t("Destination")};return yo.createElement(ie,{header:{title:pi.t("Swap {type}",{type:k[e]})}},yo.createElement(de,null,yo.createElement(Vs,{blockchains:y,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(q.blockchains),onChange:v=>{S(v)}}),yo.createElement(kf,{size:24}),yo.createElement(Lt,{value:d,autoFocus:!0,placeholder:pi.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>g(""),onChange:v=>g(v.target.value)}),yo.createElement(kf,{size:16}),yo.createElement(Tf,{list:T,selectedBlockchain:f,searchedFor:d,type:e,onChange:v=>{C(v);let b=y.find(W=>v.blockchain===W.name);b&&S(b),n()}})))}i(il,"SelectSwapItemsPage");import{i18n as pl}from"@lingui/core";import{Alert as Sx,Button as Cx,styled as Tx}from"@rango-dev/ui";import So from"react";import{useInRouterContext as kx,useSearchParams as vx}from"react-router-dom";import{i18n as If}from"@lingui/core";import{Divider as Zv,InfoIcon as Jv,TextField as Rv,Tooltip as ex,Typography as Af}from"@rango-dev/ui";import dt from"react";import{Chip as jv,styled as xn,TextField as Xv}from"@rango-dev/ui";var vf=xn("div",{paddingTop:"$5",padding:"$10 $5"}),xf=xn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Xv}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),wf=xn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ci=xn("div",{maxWidth:"280px",padding:"$10"}),bf=xn(jv,{width:"61px",flexShrink:0});import{i18n as al}from"@lingui/core";import{Typography as Yv}from"@rango-dev/ui";import wn from"react";function Ef(){return wn.createElement(ci,null,wn.createElement(Yv,{variant:"label",size:"medium",color:"neutral700"},al.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),wn.createElement("br",null),wn.createElement("br",null),wn.createElement("b",null,al.t("Warning")),":",al.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(Ef,"SlippageTooltipContent");function sl(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return dt.createElement(vf,null,dt.createElement(wf,null,dt.createElement(Af,{variant:"title",size:"xmedium"},If.t("Slippage tolerance per swap")),dt.createElement(Zv,{direction:"horizontal",size:4}),dt.createElement(ex,{container:N(),side:"top",sideOffset:4,content:dt.createElement(Ef,null)},dt.createElement(Jv,{color:"gray"}))),dt.createElement(xf,null,Cp.map((r,a)=>{let s=`slippage-${a}`;return dt.createElement(bf,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),dt.createElement(Rv,{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>=xp&&s<=vp?n(s):n(null)},suffix:o&&dt.createElement(Af,{variant:"body",size:"small"},"%"),placeholder:If.t("Custom")})))}i(sl,"Slippage");import{i18n as xt}from"@lingui/core";import{AutoThemeIcon as Nf,BridgesIcon as tx,ChevronRightIcon as ll,DarkModeIcon as Wf,Divider as ui,ExchangeIcon as ox,InfinityIcon as nx,InfoIcon as rx,LanguageIcon as ix,LightModeIcon as Mf,List as ax,ListItem as sx,ListItemButton as lx,Skeleton as px,styled as cx,Switch as ux,Tabs as mx,Tooltip as dx,Typography as at}from"@rango-dev/ui";import $ from"react";import{useNavigate as fx}from"react-router-dom";var gx=cx("div",{width:"202px",height:"$40"}),hx=[{id:"light",icon:$.createElement(Mf,{color:"black",size:24}),tooltip:$.createElement(at,{size:"xsmall",variant:"body"},xt.t("Light"))},{id:"dark",icon:$.createElement(Wf,{color:"black",size:24}),tooltip:$.createElement(at,{size:"xsmall",variant:"body"},xt.t("Dark"))},{id:"auto",icon:$.createElement(Nf,{color:"black",size:24}),tooltip:$.createElement(at,{size:"xsmall",variant:"body"},xt.t("Auto"))}],yx=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return $.createElement(Nf,{...e});case"dark":return $.createElement(Wf,{...e});default:return $.createElement(Mf,{...e})}},"getThemeIcon");function Lf(){let t=fx(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Kt(),s=a.find(O=>O.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),d=et("theme",c),g=et("liquiditySource",c),m=et("language",c),f=h().infiniteApprove,y=h().toggleInfiniteApprove,T=jn(p,u),S=T.filter(O=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(O.type)),C=S.length,k=S.filter(O=>O.selected).length,v=T.filter(O=>O.type==="DEX"),b=v.length,W=v.filter(O=>O.selected).length,L=i((O,R)=>{switch(l){case"loading":return $.createElement(px,{variant:"text",size:"medium",width:50});case"failed":return $.createElement(at,{variant:"body",size:"medium",color:"$error500"},xt.t("Loading failed"));default:return $.createElement(at,{variant:"body",size:"medium"},`${O} / ${R}`)}},"handleSwapperEndItem"),x={id:"bridge-item",title:$.createElement(at,{variant:"title",size:"xmedium"},xt.t("Bridges")),end:$.createElement($.Fragment,null,L(k,C),$.createElement(ui,{direction:"horizontal",size:8}),$.createElement(ll,{color:"black"})),onClick:()=>t(q.bridges),start:$.createElement(tx,{color:"gray",size:16})},I={id:"exchange-item",title:$.createElement(at,{variant:"title",size:"xmedium"},xt.t("Exchanges")),end:$.createElement($.Fragment,null,L(W,b),$.createElement(ui,{direction:"horizontal",size:8}),$.createElement(ll,{color:"black"})),start:$.createElement(ox,{color:"gray",size:16}),onClick:()=>t(q.exchanges)},w={id:"language-item",title:$.createElement(at,{variant:"title",size:"xmedium"},xt.t("Language")),start:$.createElement(ix,{color:"gray",size:16}),end:$.createElement($.Fragment,null,$.createElement(at,{variant:"body",size:"medium"},s),$.createElement(ui,{direction:"horizontal",size:8}),$.createElement(ll,{color:"black"})),onClick:()=>t(q.languages)},A={id:"infinite-approval-item",title:$.createElement($.Fragment,null,$.createElement(at,{variant:"title",size:"xmedium"},xt.t("Infinite approval")),$.createElement(ui,{direction:"horizontal",size:4}),$.createElement(dx,{side:"top",sideOffset:4,container:N(),content:$.createElement(ci,null,$.createElement(at,{variant:"label",size:"medium",color:"neutral700"},xt.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(rx,{color:"gray"}))),start:$.createElement(nx,{color:"gray",size:16}),end:$.createElement(ux,{checked:f}),onClick:y},P={id:"theme-item",type:$.createElement(sx,null),title:$.createElement(at,{variant:"title",size:"xmedium"},xt.t("Theme")),end:$.createElement(gx,null,$.createElement(mx,{container:N(),items:hx,value:n,onChange:O=>o(O.id),type:"primary",borderRadius:"small"})),start:yx(n)},E=g?[]:[x,I];return m||E.push(w),E.push(A),!e?.singleTheme&&!d&&E.push(P),$.createElement(ax,{type:$.createElement(lx,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:E})}i(Lf,"SettingsLists");var xx=Tx("div",{paddingLeft:"$8"});function Bf(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=vx(),r=kx(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return So.createElement(ie,{header:{title:pl.t("Settings")}},So.createElement(de,null,o&&So.createElement(Sx,{type:"info",variant:"alarm",title:pl.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:So.createElement(xx,null,So.createElement(Cx,{type:"secondary",size:"small",onClick:a},pl.t("Reset")))}),So.createElement(sl,null),So.createElement(Lf,null)))}i(Bf,"SettingsPage");import{i18n as cw}from"@lingui/core";import{cancelSwap as uw}from"@rango-dev/queue-manager-rango-preset";import{useManager as mw}from"@rango-dev/queue-manager-react";import{Alert as dw}from"@rango-dev/ui";import El from"react";import{useParams as fw}from"react-router-dom";import{i18n as Ze}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Gx,getCurrentStep as Vx,getRelatedWalletOrNull as Kx}from"@rango-dev/queue-manager-rango-preset";import{Button as cg,CopyIcon as jx,Divider as Xx,DoneIcon as Yx,IconButton as Zx,QuoteCost as Jx,RangoExplorerIcon as Rx,StepDetails as ew,Tooltip as ug,Typography as Co,useCopyToClipboard as tw}from"@rango-dev/ui";import{useWallets as ow}from"@rango-dev/wallets-react";import mg from"bignumber.js";import{PendingSwapNetworkStatus as Ti}from"rango-types";import K,{useEffect as dg,useRef as nw,useState as fg}from"react";import{useNavigate as rw}from"react-router-dom";import{i18n as jt}from"@lingui/core";var wx=[jt.t("Sunday"),jt.t("Monday"),jt.t("Tuesday"),jt.t("Wednesday"),jt.t("Thursday"),jt.t("Friday"),jt.t("Saturday")];function Pf(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?jt.t("Today"):`${wx[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Pf,"timeSince");function Df(t){return t.finishTime?Pf(parseInt(t.finishTime)):Pf(parseInt(t.creationTime))}i(Df,"getSwapDate");import{PendingSwapNetworkStatus as fi}from"rango-types";import gi from"react";import{i18n as mi}from"@lingui/core";import{Button as _f,Divider as cl,MessageBox as bx}from"@rango-dev/ui";import Xt from"react";var $f=i(({onCancel:t,onClose:e})=>Xt.createElement(Xt.Fragment,null,Xt.createElement(cl,{size:20}),Xt.createElement(bx,{type:"error",title:mi.t("Cancel Swap"),description:mi.t("Are you sure you want to cancel this swap?")}),Xt.createElement(cl,{size:32}),Xt.createElement(_f,{variant:"contained",type:"primary",size:"large",onClick:t},mi.t("Yes, Cancel it")),Xt.createElement(cl,{size:12}),Xt.createElement(_f,{variant:"outlined",type:"primary",size:"large",onClick:e},mi.t("No, Continue"))),"CancelContent");import{i18n as di}from"@lingui/core";import{Button as Ff,Divider as ul,MessageBox as Ex,Typography as Ix}from"@rango-dev/ui";import Dt from"react";var Of=i(({onDelete:t,onClose:e})=>Dt.createElement(Dt.Fragment,null,Dt.createElement(ul,{size:20}),Dt.createElement(Ex,{type:"error",title:di.t("Delete Transaction"),description:di.t("Are you sure you want to delete this swap?")}),Dt.createElement(ul,{size:32}),Dt.createElement(Ff,{variant:"contained",type:"primary",size:"large",onClick:t},di.t("Yes, Delete it")),Dt.createElement(ul,{size:12}),Dt.createElement(Ff,{variant:"outlined",type:"primary",size:"large",onClick:e},Dt.createElement(Ix,{variant:"title",size:"medium",color:"primary"},di.t("No, Cancel")))),"DeleteContent");import{i18n as ml}from"@lingui/core";import{PendingSwapNetworkStatus as dl}from"rango-types";var fl={[dl.WaitingForNetworkChange]:{type:"loading",title:ml.t("Change Network")},[dl.WaitingForConnectingWallet]:{type:"warning",title:ml.t("Connect Wallet")},[dl.NetworkChanged]:{type:"success",title:ml.t("Network Changed")}};import{warn as Ax}from"@rango-dev/logging-core";import{MessageBox as Nx,Wallet as Wx}from"@rango-dev/ui";import{useWallets as Mx}from"@rango-dev/wallets-react";import Uo,{useState as Lx}from"react";import{styled as Uf}from"@rango-dev/ui";var Qf=Uf("div",{display:"flex",justifyContent:"center"}),lG=Uf("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var zf=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[l,p]=Lx(),{getWalletInfo:u,state:c}=Mx(),d=n?.walletType,g=d?jo(c(d)):null,m=d?u(d):null,f=a&&!!d&&!!g&&!!m,{list:y}=pt(),T=i(()=>{if(d){let S=y.find(C=>C.type===d);S?p(S):Ax(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${S}`))}},"handleWalletItemClick");return Uo.createElement(Uo.Fragment,null,Uo.createElement(Nx,{type:e,title:o,description:r}),f&&Uo.createElement(Qf,null,Uo.createElement(Wx,{container:N(),title:m.name,image:m.img,type:d,state:g,link:m.installLink,disabled:s,onClick:T})),Uo.createElement(so,{wallet:l,onClose:()=>{p(void 0)}}))},"WalletStateContent");function gl(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===fi.WaitingForNetworkChange||e===fi.WaitingForConnectingWallet||e===fi.NetworkChanged;return gi.createElement(oe,{open:!!e,onClose:o,container:document.getElementById(Le.SWAP_BOX_ID)||document.body},p&&gi.createElement(zf,{type:fl[e].type,title:fl[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==fi.WaitingForNetworkChange}),e==="delete"&&gi.createElement(Of,{onClose:o,onDelete:n}),e==="cancel"&&gi.createElement($f,{onClose:o,onCancel:r}))}i(gl,"SwapDetailsModal");import{i18n as bn}from"@lingui/core";import{Button as hl,Divider as hi,MessageBox as qf,TokenAmount as Bx,Typography as yl}from"@rango-dev/ui";import Pe from"react";import{useNavigate as Px}from"react-router-dom";function Sl(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:d,diagnosisUrl:g}=t,m=Px();return Pe.createElement(oe,{open:e,onClose:o,container:document.getElementById(Le.SWAP_BOX_ID)||document.body},n==="success"?Pe.createElement(qf,{type:"success",title:bn.t("Swap Successful")},Pe.createElement(Bx,{direction:"vertical",tooltipContainer:N(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Pe.createElement(hi,{size:12}),Pe.createElement(yl,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Pe.createElement(qf,{type:"error",title:bn.t("Transaction Failed"),description:d}),Pe.createElement(hi,{size:32}),n==="success"&&Pe.createElement(hl,{variant:"contained",type:"primary",size:"large",onClick:()=>{m("../../")}},Pe.createElement(yl,{variant:"title",size:"medium",color:"neutral100"},bn.t("Done"))),Pe.createElement(hi,{size:12}),g&&Pe.createElement(Pe.Fragment,null,Pe.createElement(hl,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(g,"_blank")},bn.t("Diagnosis")),Pe.createElement(hi,{size:12})),Pe.createElement(hl,{variant:"outlined",type:"primary",size:"large",onClick:o},Pe.createElement(yl,{variant:"title",size:"medium",color:"primary"},bn.t("See Details"))))}i(Sl,"SwapDetailsCompleteModal");import Hx from"react";import{i18n as Ux}from"@lingui/core";import{Alert as ag,IconButton as Qx,LinkIcon as zx}from"@rango-dev/ui";import Yt,{Fragment as qx}from"react";import{Alert as _x,ChevronDownIcon as $x,IconButton as Fx}from"@rango-dev/ui";import zo,{useState as Ox}from"react";import{css as En,darkTheme as Hf,styled as _t,Typography as Dx}from"@rango-dev/ui";var Gf=_t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),yi=_t("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Hf} &`]:{color:"$secondary500"}}}}}),Vf=_t(en,{padding:"$0 $20 $20 $20"}),GG=_t("div",{display:"flex",flexDirection:"column",gap:"$10"}),Kf=_t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),VG=_t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Qo=En({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Hf} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),jf=En({padding:"$5 0"}),Si=En({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Xf=En({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Yf=En({width:"100%",padding:"0 $20 $10"}),Zf=_t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Jf=_t("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ci=_t(Dx,{wordBreak:"break-word"});import{styled as Cl}from"@rango-dev/ui";var Rf=Cl("div",{display:"flex",flexDirection:"column",gap:"$10"}),eg=Cl("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),tg=Cl("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function og(t){let{message:e}=t,[o,n]=Ox(!1);return zo.createElement(_x,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&zo.createElement(Fx,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},zo.createElement(eg,{rotated:o},zo.createElement($x,{size:12,color:"gray"}))),footer:zo.createElement(tg,{open:o},zo.createElement(Ci,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(og,"FailedAlert");import{i18n as ng}from"@lingui/core";import{Alert as Tl,Button as rg}from"@rango-dev/ui";import{PendingSwapNetworkStatus as kl}from"rango-types";import In from"react";function ig(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?In.createElement(Tl,{type:"warning",title:n.shortMessage,action:In.createElement(rg,{size:"xxsmall",type:"warning",onClick:()=>{o(kl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},ng.t("Change"))}):r===kl.WaitingForConnectingWallet?In.createElement(Tl,{type:"warning",title:n.shortMessage,action:In.createElement(rg,{size:"xxsmall",type:"warning",onClick:()=>{o(kl.WaitingForConnectingWallet)}},ng.t("Connect"))}):In.createElement(Tl,{type:"warning",title:n.shortMessage})}i(ig,"WarningAlert");function vl(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Zo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Yt.createElement(Rf,null,a.explorerUrl?.map((d,g,m)=>{let f=g+d.url,y=g===m.length-1,T=(y&&u||p)&&!c,S=y&&a.status==="failed";return Yt.createElement(qx,{key:f},Yt.createElement(ag,{type:y&&(T&&"loading"||S&&"error")||"success",title:d.description?`${d.description} Tx`:Ux.t("View transaction"),action:d.url&&Yt.createElement(Qx,{variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},Yt.createElement(zx,{size:12}))}))}),c&&Yt.createElement(ag,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(ig,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(og,{message:r}))}i(vl,"SwapDetailsAlerts");var sg=2e3;var lg=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Re(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Re(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Go(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Re(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Re(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Go(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Hx.createElement(vl,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function pg(t){if(Zo(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(pg,"getStepState");function xl(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=ow(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),d=Q.use.retry(),g=re.use.isActiveTab(),m=rw(),[f,y]=tw(sg),T=nw(null),[S,C]=fg(null),[k,v]=fg(null),b=i(()=>{r(),C(null)},"onCancel"),W=ve.use.getNotifications(),L=ve.use.removeNotification(),x=W(),I=Vx(e),w=I?.networkStatus;dg(()=>{x.find(Te=>Te.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),L(e.requestId)):k&&v(null))},[e.status,e.requestId]),dg(()=>{U?C(Ti.WaitingForNetworkChange):w===Ti.WaitingForConnectingWallet||w===Ti.NetworkChanged?C(w):C(null)},[w]);let A=Yp(e),P=I?Gx(e,I):null,E=I?Kx(e,I):null,O=Df(e),R=Zp(e),ce=i(me=>!!l(me)?.mobileWallet,"isMobileWallet"),U=w===Ti.WaitingForNetworkChange&&!!P&&!!E?.walletType&&(ce(E.walletType)||a(E.walletType,P)),J=U?s.bind(null,E.walletType,P):void 0,ue=Xp(e,I),Y=lg({swap:e,switchNetwork:J,showNetworkModal:w,setNetworkModal:C,message:ue,blockchains:p,swappers:u}),ne=Y.length,[fe,Ee]=[e.steps[0],e.steps[ne-1]],F=Ee.outputAmount||Ee.expectedOutputAmountHumanReadable,ze=e.steps.reduce((me,Te)=>me+parseFloat(Te.feeInUsd||""),0),gt=e.steps.find(me=>me.diagnosisUrl)?.diagnosisUrl,Je=M(parseFloat(F||"0")*(Ee.toUsdPrice||0),4,4),ht=M(parseFloat(e.inputAmount)*(fe.fromUsdPrice||0),4,4),B=F?new mg(F).multipliedBy(Ee.toUsdPrice||0).toString():"",z=new mg(e.inputAmount).multipliedBy(fe.fromUsdPrice||0).toString(),V=tt(ht,Je),ae=ue.detailedMessage.content||ue.shortMessage,se=e.status==="success"?Ze.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(F,6,6),token:Y[ne-1].to.token.displayName,conciseAddress:qn(e.wallets[Y[ne-1].to.chain.displayName]?.address||""),chain:Y[ne-1].to.chain.displayName}}):K.createElement(Jf,null,K.createElement(Co,{variant:"body",size:"medium",color:"neutral700",align:"center"},ae?"":Ze.t("Transaction was not sent."),A?`${Ze.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:A.outputAmount,symbol:A.symbol,blockchain:A.blockchain}})}`:""),ae&&K.createElement(Ci,{align:"center",variant:"body",size:"medium",color:"neutral700"},K.createElement("b",null,"Reason:")," ",ae));return K.createElement(ie,{header:{title:Ze.t("Swap Details"),onCancel:e.status==="running"?()=>C("cancel"):void 0,suffix:e.status!=="running"&&K.createElement(Ut,null,K.createElement(cg,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>C("delete")},K.createElement(Co,{size:"medium",variant:"label",color:"error"},Ze.t("Delete"))))},footer:R&&!k&&K.createElement(cg,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let me=ar(e,p,c);d(me),setTimeout(()=>{m("../../")},0)}},Ze.t("Try again"))},K.createElement(de,{compact:!0,view:!0},K.createElement(yi,null,K.createElement("div",{className:Qo()},K.createElement(Co,{variant:"label",size:"large",color:"neutral700"},`${Ze.t("Request ID")}:`),K.createElement("div",{className:Si()},K.createElement(Co,{variant:"label",size:"small",color:"neutral700"},o),K.createElement(ug,{container:N(),content:f?Ze.t("Copied To Clipboard"):Ze.t("Copy Request ID"),open:f||void 0,side:"bottom",alignOffset:-16,align:"end"},K.createElement(Zx,{variant:"ghost",onClick:y.bind(null,o||"")},f?K.createElement(Yx,{size:16,color:"secondary"}):K.createElement(jx,{size:16,color:"gray"}))),K.createElement(Zf,{target:"_blank",href:`${Pl}/swap/${o}`},K.createElement(ug,{container:N(),content:Ze.t("View on Rango Explorer"),side:"bottom"},K.createElement(Rx,{size:20}))))),K.createElement("div",{className:Qo()},K.createElement(Co,{variant:"label",size:"large",color:"neutral700"},e.finishTime?Ze.t("Finished at"):Ze.t("Created at")),K.createElement(Co,{variant:"label",size:"small",color:"neutral700"},O))),K.createElement("div",{className:Xf()},K.createElement(Jx,{fee:M(String(ze),2,2),time:Vo(_n(e.steps)),steps:ne}),K.createElement(an,{from:{price:{value:M(e.inputAmount,6,6),usdValue:ht,realUsdValue:z,realValue:e.inputAmount},token:{displayName:Y[0].from.token.displayName,image:Y[0].from.token.image},chain:{image:Y[0].from.chain.image,displayName:Y[0].from.chain.displayName}},to:{price:{value:M(F,6,6),usdValue:Je,realUsdValue:B,realValue:F||""},token:{displayName:Y[ne-1].to.token.displayName,image:Y[ne-1].to.token.image},chain:{image:Y[ne-1].to.chain.image,displayName:Y[ne-1].to.chain.displayName}},percentageChange:M(V,2,2),warningLevel:It(V??0)})),K.createElement("div",{className:Yf()},K.createElement(Co,{variant:"title",size:"small"},Ze.t("Swaps steps"))),K.createElement(Xx,{size:8}),K.createElement(Vf,{ref:T},Y.map((me,Te)=>{let Wn=Te,qo=pg(e.steps[Te]),zg=qo==="error"||qo==="in-progress"||qo==="warning"||qo==="completed"&&Te===Y.length-1;return K.createElement(ew,{key:Wn,step:me,type:"swap-progress",ref:T,state:qo,hasSeparator:Te!==0,tabIndex:Wn,isFocused:zg,tooltipContainer:N()})}))),K.createElement(gl,{state:S,onClose:()=>C(null),onCancel:b,onDelete:n,message:ue.detailedMessage.content,currentStepWallet:E,walletButtonDisabled:!g}),K.createElement(Sl,{open:!!k,diagnosisUrl:gt,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:M(F,6,6),usdValue:Je,realUsdValue:B,realValue:F||"",percentageChange:M(V,2,2),token:{displayName:Y[ne-1].to.token.displayName,image:Y[ne-1].to.token.image},chain:{image:Y[ne-1].to.chain.image},description:se}))}i(xl,"SwapDetails");import{i18n as vi}from"@lingui/core";import{Divider as yg,NotFound as pw,Skeleton as Nn,Typography as xi}from"@rango-dev/ui";import ye from"react";import{i18n as iw}from"@lingui/core";import{Divider as aw,Skeleton as sw,Typography as lw}from"@rango-dev/ui";import Ce from"react";import{css as ft,styled as wl}from"@rango-dev/ui";var gg=wl("div",{width:"100%",height:"100%",padding:"$10 $20"}),An=wl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),ki=wl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),r2=ft({display:"flex",justifyContent:"space-between",alignItems:"center"}),i2=ft({display:"flex",justifyContent:"space-between",alignItems:"center"}),a2=ft({paddingTop:"$15",display:"flex"}),s2=ft({padding:"$15 $0"}),l2=ft({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),p2=ft({paddingBottom:"$10"}),c2=ft({display:"flex",justifyContent:"start",alignItems:"center"}),u2=ft({paddingTop:"$5",display:"flex",alignItems:"center"}),m2=ft({display:"flex",alignItems:"center"}),d2=ft({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),hg=ft({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function bl(){return Ce.createElement(gg,null,Ce.createElement(pn,{type:"swap-preview"}),Ce.createElement("div",{className:"swaps-steps"},Ce.createElement(lw,{variant:"title",size:"small"},iw.t("Swaps steps"))),Ce.createElement(Ce.Fragment,null,Ce.createElement(An,null,Ce.createElement(kt,{separator:!1}),Ce.createElement("div",{className:hg()},Ce.createElement(aw,{direction:"horizontal",size:20}),Ce.createElement(sw,{height:22,variant:"rectangular"}))),Ce.createElement(ki,null),Ce.createElement(An,null,Ce.createElement(kt,{separator:!1})),Ce.createElement(ki,null),Ce.createElement(An,null,Ce.createElement(kt,{separator:!1})),Ce.createElement(ki,null),Ce.createElement(An,null,Ce.createElement(kt,{separator:!1}))))}i(bl,"LoadingSwapDetails");function Sg(t){let{requestId:e,showSkeleton:o}=t;return ye.createElement(ie,{header:{title:vi.t("Swap Details"),suffix:ye.createElement(Ut,null)}},o&&ye.createElement(Gf,null,ye.createElement(yi,null,ye.createElement("div",{className:Qo()},ye.createElement(xi,{variant:"label",size:"large",color:"neutral700"},`${vi.t("Request ID")}:`),ye.createElement("div",{className:Si()},ye.createElement(xi,{variant:"label",size:"small",color:"neutral700"},ye.createElement(Nn,{width:60,height:10,variant:"rounded"})),ye.createElement(yg,{direction:"horizontal",size:4}),ye.createElement(Nn,{width:16,height:16,variant:"rectangular"}),ye.createElement(yg,{direction:"horizontal",size:4}),ye.createElement(Nn,{width:16,height:16,variant:"rectangular"}))),ye.createElement("div",{className:Qo()},ye.createElement(xi,{className:jf(),variant:"label",size:"large",color:"neutral700"},ye.createElement(Nn,{width:60,height:10,variant:"rounded"})),ye.createElement(xi,{variant:"label",size:"small",color:"neutral700"},ye.createElement(Nn,{width:60,height:10,variant:"rounded"})))),ye.createElement(bl,null)),!o&&ye.createElement(Kf,null,ye.createElement(pw,{title:vi.t("Not found"),description:vi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Sg,"SwapDetailsPlaceholder");function Cg(){let{manager:t,state:e}=mw(),o=!e.loadedFromPersistor,n=nt(t),{requestId:r}=fw(),a=ot(),{fetchStatus:s}=h();if(!r)return El.createElement(dw,{containerStyles:{margin:"20px"},type:"error",title:cw.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&&uw(g)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(g){console.log(g)}},"onDelete"),d=p?.swap;return!d||l?El.createElement(Sg,{requestId:r,showSkeleton:l}):El.createElement(xl,{swap:d,requestId:r,onCancel:u,onDelete:c})}i(Cg,"SwapDetailsPage");import{i18n as Tg}from"@lingui/core";import{Divider as gw,getCategoriesCount as hw,SelectableCategoryList as yw,styled as vg,Typography as Sw,Wallet as Cw}from"@rango-dev/ui";import wt,{useState as kg}from"react";var Tw=vg("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),kw=vg(de,{textAlign:"center"});function xg(){let{fetchStatus:t}=h(),[e,o]=kg("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=kg(),l=re.use.isActiveTab(),{list:p}=pt(),u=ip(p,n),d=hw(u)!==1,g=ap(p,e),m=i(f=>{Gl(p,r.multiWallets)||s(f)},"handleWalletItemClick");return wt.createElement(ie,{header:{title:Tg.t("Connect Wallets")}},wt.createElement(kw,null,d&&wt.createElement(wt.Fragment,null,wt.createElement(yw,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),wt.createElement(gw,{size:24})),wt.createElement(Sw,{variant:"title",size:"xmedium",align:"center"},Tg.t("Choose a wallet to connect.")),wt.createElement(Tw,null,g.map((f,y)=>{let T=`wallet-${y}-${f.type}`;return wt.createElement(Cw,{key:T,...f,container:N(),onClick:()=>m(f),isLoading:t==="loading",disabled:!l})}),wt.createElement(so,{wallet:a,onClose:()=>{s(void 0)}}))))}i(xg,"WalletsPage");function wg(){return sc(),ia(),vw([{path:q.home,element:Ve.createElement(Fd,null)},{path:q.routes,element:Ve.createElement(qd,null)},{path:q.fromSwap,children:[{index:!0,element:Ve.createElement(il,{type:"source"})},{path:q.blockchains,element:Ve.createElement(Qs,{type:"source"})}]},{path:q.toSwap,children:[{index:!0,element:Ve.createElement(il,{type:"destination"})},{path:q.blockchains,element:Ve.createElement(Qs,{type:"destination"})}]},{path:q.settings,children:[{index:!0,element:Ve.createElement(Bf,null)},{path:q.languages,element:Ve.createElement(Ud,null)},{path:q.exchanges,element:Ve.createElement(Fs,{sourceType:"Exchanges"})},{path:q.bridges,element:Ve.createElement(Fs,{sourceType:"Bridges"})}]},{path:q.swaps,children:[{index:!0,element:Ve.createElement(hd,null)},{path:q.swapDetails,element:Ve.createElement(Cg,null)}]},{path:q.wallets,element:Ve.createElement(xg,null)},{path:q.confirmSwap,element:Ve.createElement(Xm,null)}])}i(wg,"AppRoutes");import{useQueueManager as Mw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as Lw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Bw}from"rango-sdk";import{useContext as Pw,useEffect as Mg,useState as Lg}from"react";import{globalCss as xw}from"@rango-dev/ui";var bg=i(()=>xw({"@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 Eg(){let{setWatermark:t}=re();return{fetchApiConfig:i(async()=>{let o=await fetch(`${Et("BASE_URL")}/meta/dapp/config?apiKey=${Et("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(Eg,"useFetchApiConfig");import{useWallets as ww}from"@rango-dev/wallets-react";import{useEffect as bw,useRef as Ew}from"react";function Ig(){let{connect:t,state:e}=ww(),o=Ew({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);bw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Ig,"useForceAutoConnect");import{isApprovalTX as Iw,RouteEventType as Ag,StepEventType as Ng,StepExecutionEventStatus as Aw,WidgetEvents as wi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Wg}from"react";function Il(){let t=Z.use.connectedWallets(),e=Z.use.getWalletsDetails(),o=ve.use.setNotification(),{findToken:n}=h();Wg(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===Ng.TX_EXECUTION&&s.status===Aw.TX_SENT&&!Iw(l)||s.type===Ng.SUCCEEDED){let c=t.find(g=>g.chain===l?.fromBlockchain),d=l?.fromBlockchain!==l?.toBlockchain&&t.find(g=>g.chain===l?.toBlockchain);c&&e([c],n),d&&e([d],n)}o(s,p)},"handleStepEvent");return ge.on(wi.StepEvent,r),()=>ge.off(wi.StepEvent,r)},[ge,t]),Wg(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Ag.FAILED||s.type===Ag.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return ge.on(wi.RouteEvent,r),()=>ge.off(wi.RouteEvent,r)},[ge])}i(Il,"useSubscribeToWidgetEvents");import{useManager as Nw}from"@rango-dev/queue-manager-react";import{useEffect as Ww}from"react";function Al(){let{isSynced:t,syncNotifications:e}=ve(),{manager:o,state:n}=Nw();Ww(()=>{ve.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(nt(o))},[ve.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Al,"useSyncNotifications");function Nl(){Ig(),bg(),Il(),Al();let t=h().blockchains(),{canSwitchNetworkTo:e}=Tr(),[o,n]=Lg(""),[r,a]=Lg(),s=Pw(Yn),l=t.filter(Bw),{fetchApiConfig:p}=Eg();Mg(()=>()=>ac(),[]),Mw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Mg(()=>(eo.init(),ve.persist.hasHydrated()||ve.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===Lw(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(Nl,"useBootstrap");import{styled as Dw}from"@rango-dev/ui";var Bg=Dw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function bi(){Nl();let{config:t}=h(),{activeTheme:e}=wr(t?.theme||{}),{activeLanguage:o}=Kt();return Wl.createElement(_w,{language:o},Wl.createElement(Bg,{id:"swap-container",className:e()},Wl.createElement(wg,null)))}i(bi,"Main");import{setSolanaSignerConfig as ob}from"@rango-dev/signer-solana";import Ll,{useEffect as Og,useMemo as nb}from"react";import{useState as $w}from"react";var Fw=i(()=>{let[t,e]=$w(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=Hl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Pg=Fw;import{checkWaitingForNetworkChange as Ow,makeQueueDefinition as Uw}from"@rango-dev/queue-manager-rango-preset";import{Provider as Qw}from"@rango-dev/queue-manager-react";import{useWallets as zw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as qw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Hw}from"rango-types";import Gw,{useMemo as Vw}from"react";function Kw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=zw(),l=Vw(()=>Uw({API_KEY:t.apiKey||Et("API_KEY"),BASE_URL:Et("BASE_URL"),emitter:{emit:ge.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:Z.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},d=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),g=i(k=>!!s(k).mobileWallet,"isMobileWallet"),m=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),f=p.filter(Hw),y=i(k=>{let{supportedChains:v}=s(k);return On(v)},"getSupportedChainNames"),T=e(),S={meta:{blockchains:m,evmBasedChains:f,evmNetworkChainInfo:qw(f),getSupportedChainNames:y},getSigners:o,wallets:c,providers:T,switchNetwork:d,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:g},C=re.use.isActiveTab();return Gw.createElement(Qw,{queuesDefs:[l],context:S,onPersistedDataLoaded:k=>{Ow(k)},isPaused:!C},t.children)}i(Kw,"QueueManager");var Dg=Kw;import{useManager as Jw}from"@rango-dev/queue-manager-react";import Rw,{createContext as eb,useContext as tb}from"react";function _g(){let{findToken:t}=h(),e=h().blockchains(),o=h().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=Q();return i(u=>{let{fromBlockchain:c,fromToken:d,toBlockchain:g,toToken:m,requestAmount:f}=u,y={blockchains:e,tokens:o};if(c!==void 0){let T=e.find(S=>S.name===c)??null;n(T)}if(d!==void 0){let T=d?t(d)??null:null;r({meta:y,token:T})}if(g!==void 0){let T=e.find(S=>S.name===g)??null;a(T)}if(m!==void 0){let T=m?t(m)??null:null;s({meta:y,token:T})}f!==void 0&&l(f)},"updateQuoteInputs")}i(_g,"useUpdateQuoteInputs");import{cancelSwap as jw,getCurrentBlockchainOfOrNull as Xw,getCurrentStep as Yw,getRelatedWalletOrNull as Zw}from"@rango-dev/queue-manager-rango-preset";var Ei=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return nt(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=ar(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&jw(o)}getCurrentStepInfo(e){let o=Yw(e);return{step:o,wallet:o?Zw(e,o):null,network:o?Xw(e,o):null}}};var $g=eb(void 0);function Ml(t){let{manager:e}=Jw(),o=re.use.isActiveTab(),n=Q.use.retry(),{findToken:r}=h(),a=new Ei(e,{retrySwap:n,findToken:r}),s=Z.use.connectedWallets(),l=Z.use.loading(),p=Rl(s),u=Z.use.getWalletsDetails(),c=h().blockchains(),d=h().tokens(),g=h().swappers(),m=h().fetchStatus,f=Kt().resetLanguage,y=ve().getNotifications(),T=ve().clearNotifications,S=_g(),{fromBlockchain:C,toBlockchain:k,fromToken:v,toToken:b,inputAmount:W}=Q(),L={isActiveTab:o,setCurrentTabAsActive:eo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:x=>u(x,r)},meta:{blockchains:c,tokens:d,swappers:g,loadingStatus:m,findToken:r},resetLanguage:f,notifications:{list:y,clearAll:T},quote:{quoteInputs:{fromBlockchain:C?.name??null,fromToken:v?{symbol:v.symbol,blockchain:v.blockchain,address:v.address}:null,toBlockchain:k?.name??null,toToken:b?{symbol:b.symbol,blockchain:b.blockchain,address:b.address}:null,requestAmount:W},updateQuoteInputs:S}};return Rw.createElement($g.Provider,{value:L},t.children)}i(Ml,"WidgetInfo");function Fg(){let t=tb($g);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Fg,"useWidget");function Ii(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Pg();return Og(()=>{n&&r(n)},[n]),nb(()=>{sp({API_KEY:o?.apiKey||Mn,BASE_URL:o?.apiUrl||Bl})},[o.apiKey,o.apiUrl]),Og(()=>{t.config?.signers?.customSolanaRPC&&ob("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Ll.createElement(Zn,{config:o,onUpdateState:e},Ll.createElement(Dg,{apiKey:o.apiKey},Ll.createElement(Ml,null,t.children)))}i(Ii,"WidgetProvider");function Ug(t){let e=t.config?.externalWallets;return Ai.createElement(Lp,null,e?Ai.createElement(bi,null):Ai.createElement(Ii,{config:t.config??Gi},Ai.createElement(bi,null)))}i(Ug,"Widget");function Qg(){let{on:t,off:e}=ge;return{on:t,off:e}}i(Qg,"useWidgetEvents");export{K8 as EventSeverity,Rt as MainEvents,oK as Networks,iK as PendingSwapNetworkStatus,Qi as QuoteEventTypes,j8 as RouteEventType,Ni as SUPPORTED_FONTS,X8 as StepEventType,Y8 as StepExecutionBlockedEventStatus,Z8 as StepExecutionEventStatus,Le as UI_ID,zi as UiEventTypes,Vn as WalletEventTypes,eK as WalletEvents,nK as WalletTypes,Ug as Widget,Rt as WidgetEvents,Ii as WidgetProvider,Zn as WidgetWallets,Da as customizedThemeTokens,R8 as readAccountAddress,pt as useWalletList,Tr as useWallets,Fg as useWidget,Qg as useWidgetEvents,Ln as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map