1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3255],{50101:(e,o,t)=>{t.d(o,{GN:()=>E});var a=t(84631),n=t(9422),r=t(32923),s=t(43167),i=t(46747),c=t(79696),l=t(57210),d=t(53286),u=t(62386),T=t(69142);let k={getGasPriceInEther:(e,o)=>Number(o*e)/1e18,getGasPriceInUSD(e,o,t){let a=k.getGasPriceInEther(o,t);return r.S.bigNumber(e).times(a).toNumber()},getPriceImpact({sourceTokenAmount:e,sourceTokenPriceInUSD:o,toTokenPriceInUSD:t,toTokenAmount:a}){let n=r.S.bigNumber(e).times(o),s=r.S.bigNumber(a).times(t);return n.minus(s).div(n).times(100).toNumber()},getMaxSlippage(e,o){let t=r.S.bigNumber(e).div(100);return r.S.multiply(o,t).toNumber()},getProviderFee:(e,o=.0085)=>r.S.bigNumber(e).times(o).toString(),isInsufficientNetworkTokenForGas:(e,o)=>!!r.S.bigNumber(e).eq(0)||r.S.bigNumber(r.S.bigNumber(o||"0")).gt(e),isInsufficientSourceTokenForSwap(e,o,t){let a=t?.find(e=>e.address===o)?.quantity?.numeric;return r.S.bigNumber(a||"0").lt(e)}};var p=t(84946),m=t(60400),g=t(65857),w=t(14497),S=t(21182),A=t(66283),P=t(46056),h=t(74576),v=t(47984),b=t(6654);let y={initializing:!1,initialized:!1,loadingPrices:!1,loadingQuote:!1,loadingApprovalTransaction:!1,loadingBuildTransaction:!1,loadingTransaction:!1,fetchError:!1,approvalTransaction:void 0,swapTransaction:void 0,transactionError:void 0,sourceToken:void 0,sourceTokenAmount:"",sourceTokenPriceInUSD:0,toToken:void 0,toTokenAmount:"",toTokenPriceInUSD:0,networkPrice:"0",networkBalanceInUSD:"0",networkTokenSymbol:"",inputError:void 0,slippage:d.oU.CONVERT_SLIPPAGE_TOLERANCE,tokens:void 0,popularTokens:void 0,suggestedTokens:void 0,foundTokens:void 0,myTokensWithBalance:void 0,tokensPriceMap:{},gasFee:"0",gasPriceInUSD:0,priceImpact:void 0,maxSlippage:void 0,providerFee:void 0},f=(0,a.BX)({...y}),I={state:f,subscribe:e=>(0,a.B1)(f,()=>e(f)),subscribeKey:(e,o)=>(0,n.u$)(f,e,o),getParams(){let e=S.W.state.activeCaipAddress,o=u.w.getPlainAddress(e),t=(0,l.K1)(),a=P.a.getConnectorId(S.W.state.activeChain);if(!o)throw Error("No address found to swap the tokens from.");let n=!f.toToken?.address||!f.toToken?.decimals,i=!f.sourceToken?.address||!f.sourceToken?.decimals||!r.S.bigNumber(f.sourceTokenAmount).gt(0),c=!f.sourceTokenAmount;return{networkAddress:t,fromAddress:o,fromCaipAddress:e,sourceTokenAddress:f.sourceToken?.address,toTokenAddress:f.toToken?.address,toTokenAmount:f.toTokenAmount,toTokenDecimals:f.toToken?.decimals,sourceTokenAmount:f.sourceTokenAmount,sourceTokenDecimals:f.sourceToken?.decimals,invalidToToken:n,invalidSourceToken:i,invalidSourceTokenAmount:c,availableToSwap:e&&!n&&!i&&!c,isAuthConnector:a===s.o.CONNECTOR_ID.AUTH}},setSourceToken(e){if(!e){f.sourceToken=e,f.sourceTokenAmount="",f.sourceTokenPriceInUSD=0;return}f.sourceToken=e,E.setTokenPrice(e.address,"sourceToken")},setSourceTokenAmount(e){f.sourceTokenAmount=e},setToToken(e){if(!e){f.toToken=e,f.toTokenAmount="",f.toTokenPriceInUSD=0;return}f.toToken=e,E.setTokenPrice(e.address,"toToken")},setToTokenAmount(e){f.toTokenAmount=e?r.S.toFixed(e,6):""},async setTokenPrice(e,o){let t=f.tokensPriceMap[e]||0;t||(f.loadingPrices=!0,t=await E.getAddressPrice(e)),"sourceToken"===o?f.sourceTokenPriceInUSD=t:"toToken"===o&&(f.toTokenPriceInUSD=t),f.loadingPrices&&(f.loadingPrices=!1),E.getParams().availableToSwap&&E.swapTokens()},switchTokens(){if(f.initializing||!f.initialized)return;let e=f.toToken?{...f.toToken}:void 0,o=f.sourceToken?{...f.sourceToken}:void 0,t=e&&""===f.toTokenAmount?"1":f.toTokenAmount;E.setSourceToken(e),E.setToToken(o),E.setSourceTokenAmount(t),E.setToTokenAmount(""),E.swapTokens()},resetState(){f.myTokensWithBalance=y.myTokensWithBalance,f.tokensPriceMap=y.tokensPriceMap,f.initialized=y.initialized,f.initializing=y.initializing,f.sourceToken=y.sourceToken,f.sourceTokenAmount=y.sourceTokenAmount,f.sourceTokenPriceInUSD=y.sourceTokenPriceInUSD,f.toToken=y.toToken,f.toTokenAmount=y.toTokenAmount,f.toTokenPriceInUSD=y.toTokenPriceInUSD,f.networkPrice=y.networkPrice,f.networkTokenSymbol=y.networkTokenSymbol,f.networkBalanceInUSD=y.networkBalanceInUSD,f.inputError=y.inputError},resetValues(){let{networkAddress:e}=E.getParams(),o=f.tokens?.find(o=>o.address===e);E.setSourceToken(o),E.setToToken(void 0)},getApprovalLoadingState:()=>f.loadingApprovalTransaction,clearError(){f.transactionError=void 0},async initializeState(){if(!f.initializing){if(f.initializing=!0,!f.initialized)try{await E.fetchTokens(),f.initialized=!0}catch(e){f.initialized=!1,b.P.showError("Failed to initialize swap"),v.I.goBack()}f.initializing=!1}},async fetchTokens(){let{networkAddress:e}=E.getParams();await E.getNetworkTokenPrice(),await E.getMyTokensWithBalance();let o=f.myTokensWithBalance?.find(o=>o.address===e);o&&(f.networkTokenSymbol=o.symbol,E.setSourceToken(o),E.setSourceTokenAmount("0"))},async getTokenList(){let e=S.W.state.activeCaipNetwork?.caipNetworkId;if(f.caipNetworkId!==e||!f.tokens)try{f.tokensLoading=!0;let o=await T.s.getTokenList(e);f.tokens=o,f.caipNetworkId=e,f.popularTokens=o.sort((e,o)=>e.symbol<o.symbol?-1:+(e.symbol>o.symbol)),f.suggestedTokens=o.filter(e=>!!d.oU.SWAP_SUGGESTED_TOKENS.includes(e.symbol))}catch(e){f.tokens=[],f.popularTokens=[],f.suggestedTokens=[]}finally{f.tokensLoading=!1}},async getAddressPrice(e){let o=f.tokensPriceMap[e];if(o)return o;let t=await w.T.fetchTokenPrice({addresses:[e]}),a=t?.fungibles||[],n=[...f.tokens||[],...f.myTokensWithBalance||[]],r=n?.find(o=>
1o.address===e)?.symbol,s=parseFloat((a.find(e=>e.symbol.toLowerCase()===r?.toLowerCase())?.price||0).toString());return f.tokensPriceMap[e]=s,s},async getNetworkTokenPrice(){let{networkAddress:e}=E.getParams(),o=await w.T.fetchTokenPrice({addresses:[e]}).catch(()=>(b.P.showError("Failed to fetch network token price"),{fungibles:[]})),t=o.fungibles?.[0],a=t?.price.toString()||"0";f.tokensPriceMap[e]=parseFloat(a),f.networkTokenSymbol=t?.symbol||"",f.networkPrice=a},async getMyTokensWithBalance(e){let o=await c.Z.getMyTokensWithBalance(e),t=T.s.mapBalancesToSwapTokens(o);t&&(await E.getInitialGasPrice(),E.setBalances(t))},setBalances(e){let{networkAddress:o}=E.getParams(),t=S.W.state.activeCaipNetwork;if(!t)return;let a=e.find(e=>e.address===o);e.forEach(e=>{f.tokensPriceMap[e.address]=e.price||0}),f.myTokensWithBalance=e.filter(e=>e.address.startsWith(t.caipNetworkId)),f.networkBalanceInUSD=a?r.S.multiply(a.quantity.numeric,a.price).toString():"0"},async getInitialGasPrice(){let e=await T.s.fetchGasPrice();if(!e)return{gasPrice:null,gasPriceInUSD:null};switch(S.W.state?.activeCaipNetwork?.chainNamespace){case s.o.CHAIN.SOLANA:return f.gasFee=e.standard??"0",f.gasPriceInUSD=r.S.multiply(e.standard,f.networkPrice).div(1e9).toNumber(),{gasPrice:BigInt(f.gasFee),gasPriceInUSD:Number(f.gasPriceInUSD)};case s.o.CHAIN.EVM:default:let o=e.standard??"0",t=BigInt(o),a=BigInt(15e4),n=k.getGasPriceInUSD(f.networkPrice,a,t);return f.gasFee=o,f.gasPriceInUSD=n,{gasPrice:t,gasPriceInUSD:n}}},async swapTokens(){let e=m.U.state.address,o=f.sourceToken,t=f.toToken,a=r.S.bigNumber(f.sourceTokenAmount).gt(0);if(a||E.setToTokenAmount(""),!t||!o||f.loadingPrices||!a)return;f.loadingQuote=!0;let n=r.S.bigNumber(f.sourceTokenAmount).times(10**o.decimals).round(0);try{let a=await w.T.fetchSwapQuote({userAddress:e,from:o.address,to:t.address,gasPrice:f.gasFee,amount:n.toString()});f.loadingQuote=!1;let s=a?.quotes?.[0]?.toAmount;if(!s){g.h.open({displayMessage:"Incorrect amount",debugMessage:"Please enter a valid amount"},"error");return}let i=r.S.bigNumber(s).div(10**t.decimals).toString();E.setToTokenAmount(i),E.hasInsufficientToken(f.sourceTokenAmount,o.address)?f.inputError="Insufficient balance":(f.inputError=void 0,E.setTransactionDetails())}catch(e){f.loadingQuote=!1,f.inputError="Insufficient balance"}},async getTransaction(){let{fromCaipAddress:e,availableToSwap:o}=E.getParams(),t=f.sourceToken,a=f.toToken;if(e&&o&&t&&a&&!f.loadingQuote)try{let o;return f.loadingBuildTransaction=!0,o=await T.s.fetchSwapAllowance({userAddress:e,tokenAddress:t.address,sourceTokenAmount:f.sourceTokenAmount,sourceTokenDecimals:t.decimals})?await E.createSwapTransaction():await E.createAllowanceTransaction(),f.loadingBuildTransaction=!1,f.fetchError=!1,o}catch(e){v.I.goBack(),b.P.showError("Failed to check allowance"),f.loadingBuildTransaction=!1,f.approvalTransaction=void 0,f.swapTransaction=void 0,f.fetchError=!0;return}},async createAllowanceTransaction(){let{fromCaipAddress:e,sourceTokenAddress:o,toTokenAddress:t}=E.getParams();if(e&&t){if(!o)throw Error("createAllowanceTransaction - No source token address found.");try{let a=await w.T.generateApproveCalldata({from:o,to:t,userAddress:e}),n=u.w.getPlainAddress(a.tx.from);if(!n)throw Error("SwapController:createAllowanceTransaction - address is required");let r={data:a.tx.data,to:n,gasPrice:BigInt(a.tx.eip155.gasPrice),value:BigInt(a.tx.value),toAmount:f.toTokenAmount};return f.swapTransaction=void 0,f.approvalTransaction={data:r.data,to:r.to,gasPrice:r.gasPrice,value:r.value,toAmount:r.toAmount},{data:r.data,to:r.to,gasPrice:r.gasPrice,value:r.value,toAmount:r.toAmount}}catch(e){v.I.goBack(),b.P.showError("Failed to create approval transaction"),f.approvalTransaction=void 0,f.swapTransaction=void 0,f.fetchError=!0;return}}},async createSwapTransaction(){let{networkAddress:e,fromCaipAddress:o,sourceTokenAmount:t}=E.getParams(),a=f.sourceToken,n=f.toToken;if(!o||!t||!a||!n)return;let r=A.x.parseUnits(t,a.decimals)?.toString();try{let t=await w.T.generateSwapCalldata({userAddress:o,from:a.address,to:n.address,amount:r,disableEstimate:!0}),s=a.address===e,i=BigInt(t.tx.eip155.gas),c=BigInt(t.tx.eip155.gasPrice),l=u.w.getPlainAddress(t.tx.to);if(!l)throw Error("SwapController:createSwapTransaction - address is required");let d={data:t.tx.data,to:l,gas:i,gasPrice:c,value:s?BigInt(r??"0"):BigInt("0"),toAmount:f.toTokenAmount};return f.gasPriceInUSD=k.getGasPriceInUSD(f.networkPrice,i,c),f.approvalTransaction=void 0,f.swapTransaction=d,d}catch(e){v.I.goBack(),b.P.showError("Failed to create transaction"),f.approvalTransaction=void 0,f.swapTransaction=void 0,f.fetchError=!0;return}},onEmbeddedWalletApprovalSuccess(){b.P.showLoading("Approve limit increase in your wallet"),v.I.replace("SwapPreview")},async sendTransactionForApproval(e){let{fromAddress:o,isAuthConnector:t}=E.getParams();f.loadingApprovalTransaction=!0,t?v.I.pushTransactionStack({onSuccess:E.onEmbeddedWalletApprovalSuccess}):b.P.showLoading("Approve limit increase in your wallet");try{await A.x.sendTransaction({address:o,to:e.to,data:e.data,value:e.value,chainNamespace:s.o.CHAIN.EVM}),await E.swapTokens(),await E.getTransaction(),f.approvalTransaction=void 0,f.loadingApprovalTransaction=!1}catch(e){f.transactionError=e?.displayMessage,f.loadingApprovalTransaction=!1,b.P.showError(e?.displayMessage||"Transaction error"),h.E.sendEvent({type:"track",event:"SWAP_APPROVAL_ERROR",properties:{message:e?.displayMessage||e?.message||"Unknown",network:S.W.state.activeCaipNetwork?.caipNetworkId||"",swapFromToken:E.state.sourceToken?.symbol||"",swapToToken:E.state.toToken?.symbol||"",swapFromAmount:E.state.sourceTokenAmount||"",swapToAmount:E.state.toTokenAmount||"",isSmartAccount:(0,l.lj)(s.o.CHAIN.EVM)===i.Vl.ACCOUNT_TYPES.SMART_ACCOUNT}})}},async sendTransactionForSwap(e){if(!e)return;let{fromAddress:o,toTokenAmount:t,isAuthConnector:a}=E.getParams();f.loadingTransaction=!0;let n=`Swapping ${f.sourceToken?.symbol} to ${r.S.formatNumberToLocalString(t,3)} ${f.toToken?.symbol}`,c=`Swapped ${f.sourceToken?.symbol} to ${r.S.formatNumberToLocalString(t,3)} ${f.toToken?.symbol}`;a?v.I.pushTransactionStack({onSuccess(){v.I.replace("Account"),b.P.showLoading(n),I.resetState()}}
1):b.P.showLoading("Confirm transaction in your wallet");try{let t=[f.sourceToken?.address,f.toToken?.address].join(","),n=await A.x.sendTransaction({address:o,to:e.to,data:e.data,value:e.value,chainNamespace:s.o.CHAIN.EVM});return f.loadingTransaction=!1,b.P.showSuccess(c),h.E.sendEvent({type:"track",event:"SWAP_SUCCESS",properties:{network:S.W.state.activeCaipNetwork?.caipNetworkId||"",swapFromToken:E.state.sourceToken?.symbol||"",swapToToken:E.state.toToken?.symbol||"",swapFromAmount:E.state.sourceTokenAmount||"",swapToAmount:E.state.toTokenAmount||"",isSmartAccount:(0,l.lj)(s.o.CHAIN.EVM)===i.Vl.ACCOUNT_TYPES.SMART_ACCOUNT}}),I.resetState(),a||v.I.replace("Account"),I.getMyTokensWithBalance(t),n}catch(e){f.transactionError=e?.displayMessage,f.loadingTransaction=!1,b.P.showError(e?.displayMessage||"Transaction error"),h.E.sendEvent({type:"track",event:"SWAP_ERROR",properties:{message:e?.displayMessage||e?.message||"Unknown",network:S.W.state.activeCaipNetwork?.caipNetworkId||"",swapFromToken:E.state.sourceToken?.symbol||"",swapToToken:E.state.toToken?.symbol||"",swapFromAmount:E.state.sourceTokenAmount||"",swapToAmount:E.state.toTokenAmount||"",isSmartAccount:(0,l.lj)(s.o.CHAIN.EVM)===i.Vl.ACCOUNT_TYPES.SMART_ACCOUNT}});return}},hasInsufficientToken:(e,o)=>k.isInsufficientSourceTokenForSwap(e,o,f.myTokensWithBalance),setTransactionDetails(){let{toTokenAddress:e,toTokenDecimals:o}=E.getParams();e&&o&&(f.gasPriceInUSD=k.getGasPriceInUSD(f.networkPrice,BigInt(f.gasFee),BigInt(15e4)),f.priceImpact=k.getPriceImpact({sourceTokenAmount:f.sourceTokenAmount,sourceTokenPriceInUSD:f.sourceTokenPriceInUSD,toTokenPriceInUSD:f.toTokenPriceInUSD,toTokenAmount:f.toTokenAmount}),f.maxSlippage=k.getMaxSlippage(f.slippage,f.toTokenAmount),f.providerFee=k.getProviderFee(f.sourceTokenAmount))}},E=(0,p.X)(I)},65336:(e,o,t)=>{t(46426)},95050:(e,o,t)=>{var a=t(44098),n=t(81850),r=t(88787),s=t(10304);let i=(0,a.AH)` 2 :host { 3 display: block; 4 width: var(--local-width); 5 height: var(--local-height); 6 } 7 8 :host([data-object-fit='cover']) img { 9 object-fit: cover; 10 object-position: center center; 11 } 12 13 :host([data-object-fit='contain']) img { 14 object-fit: contain; 15 object-position: center center; 16 } 17 18 img { 19 display: block; 20 width: 100%; 21 height: 100%; 22 border-radius: inherit; 23 } 24`;var c=function(e,o,t,a){var n,r=arguments.length,s=r<3?o:null===a?a=Object.getOwnPropertyDescriptor(o,t):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,o,t,a);else for(var i=e.length-1;i>=0;i--)(n=e[i])&&(s=(r<3?n(s):r>3?n(o,t,s):n(o,t))||s);return r>3&&s&&Object.defineProperty(o,t,s),s};let l=class extends a.WF{constructor(){super(...arguments),this.src="./path/to/image.jpg",this.alt="Image",this.size=void 0,this.objectFit="cover"}render(){return this.objectFit&&(this.dataset.objectFit=this.objectFit),this.style.cssText=` 25 --local-width: ${this.size?`var(--wui-icon-size-${this.size});`:"100%"}; 26 --local-height: ${this.size?`var(--wui-icon-size-${this.size});`:"100%"}; 27 `,(0,a.qy)`<img src=${this.src} alt=${this.alt} @error=${this.handleImageError} />`}handleImageError(){this.dispatchEvent(new CustomEvent("onLoadError",{bubbles:!0,composed:!0}))}};l.styles=[r.W5,r.ck,i],c([(0,n.MZ)()],l.prototype,"src",void 0),c([(0,n.MZ)()],l.prototype,"alt",void 0),c([(0,n.MZ)()],l.prototype,"size",void 0),c([(0,n.MZ)()],l.prototype,"objectFit",void 0),l=c([(0,s.E)("wui-image")],l)}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.