1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3931],{78030:function(e,n,t){t.d(n,{Z:function(){return u}});var r=t(2265);/** 2 * @license lucide-react v0.554.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */let a=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),i=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,n,t)=>t?t.toUpperCase():n.toLowerCase()),s=e=>{let n=i(e);return n.charAt(0).toUpperCase()+n.slice(1)},o=function(){for(var e=arguments.length,n=Array(e),t=0;t<e;t++)n[t]=arguments[t];return n.filter((e,n,t)=>!!e&&""!==e.trim()&&t.indexOf(e)===n).join(" ").trim()},l=e=>{for(let n in e)if(n.startsWith("aria-")||"role"===n||"title"===n)return!0};/** 7 * @license lucide-react v0.554.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */var d={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** 12 * @license lucide-react v0.554.0 - ISC 13 * 14 * This source code is licensed under the ISC license. 15 * See the LICENSE file in the root directory of this source tree. 16 */let c=(0,r.forwardRef)((e,n)=>{let{color:t="currentColor",size:a=24,strokeWidth:i=2,absoluteStrokeWidth:s,className:c="",children:u,iconNode:f,...p}=e;return(0,r.createElement)("svg",{ref:n,...d,width:a,height:a,stroke:t,strokeWidth:s?24*Number(i)/Number(a):i,className:o("lucide",c),...!u&&!l(p)&&{"aria-hidden":"true"},...p},[...f.map(e=>{let[n,t]=e;return(0,r.createElement)(n,t)}),...Array.isArray(u)?u:[u]])}),u=(e,n)=>{let t=(0,r.forwardRef)((t,i)=>{let{className:l,...d}=t;return(0,r.createElement)(c,{ref:i,iconNode:n,className:o("lucide-".concat(a(s(e))),"lucide-".concat(e),l),...d})});return t.displayName=s(e),t}},22468:function(e,n,t){t.d(n,{Z:function(){return r}});let r=(0,t(78030).Z)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},20722:function(e,n,t){t.r(n),t.d(n,{AwaitingSolToEvmBridgingScreen:function(){return I},default:function(){return I}});var r=t(57437),a=t(85130),i=t(2265),s=t(31195),o=t(5653),l=t(69062),d=t(68473),c=t(86855),u=t(44673),f=t(59147),p=t(13461),h=t(97422),g=t(88552),m=t(35293),v=t(18886),w=t(35142),b=t(97629),y=t(52986),x=t(56079),C=t(44704);t(13130),t(63858),t(36393);let I={component:function(){let e=(0,p.u)(),{closePrivyModal:n,createAnalyticsEvent:t,connectors:I}=(0,h.u)(),{navigate:S,setModalData:N,data:T}=(0,m.a)(),A=(0,p.u)(),E=(0,i.useRef)(!1),[$,j]=(0,i.useState)(!1),[F,U]=(0,i.useState)(!1),[z,k]=(0,i.useState)(null),[B,R]=(0,i.useState)(),[W,L]=(0,i.useState)();if(!T?.funding||"ethereum"!==T.funding.chainType)throw Error("Invalid funding data");let{amount:_,connectedWallet:D,chain:M,solanaChain:O,isUSDC:P}=T.funding,Z=T.funding.address,q=T.funding.erc20Address,H=T.funding.isUSDC?"USDC":M.nativeCurrency.symbol,J=(0,i.useMemo)(()=>"solana"===D?.type?D.provider:function({connectors:e,connectedWalletAddress:n}){let t=e.find(e=>"solana"===e.chainType&&e.wallets.some(e=>e.address===n)),r=t?.wallet.accounts.find(e=>e.address===n);if(!t||!r)throw new h.b("Unable to find source wallet connector");return new o.O({wallet:t.wallet,account:r})}({connectors:I,connectedWalletAddress:D?.address||""}),[D,I]),G=(0,i.useMemo)(()=>{let n=(0,b.g)(y.S);if(!n)throw new h.b("Unable to load solana plugin");let t=e.solanaRpcs["solana:mainnet"];if(!t)throw new h.b("Unable to load mainnet RPC");return n.getSolanaRpcClient({rpc:t.rpc,rpcSubscriptions:t.rpcSubscriptions,chain:"solana:mainnet",blockExplorerUrl:t.blockExplorerUrl??"https://explorer.solana.com"})},[]),Q=(0,g.z)((0,x.I)(J?.standardWallet.name||"unknown")),V=Q?.name||"wallet";return(0,i.useEffect)(()=>{(async function(){if(!J||!M||E.current)return;let e=(0,b.g)(y.S);if(!e)return void k(new h.b("Unable to solana plugin"));E.current=!0,M?.testnet&&console.warn("Solana testnets are not supported for bridging");let n=P?1e6*parseFloat(_):(0,s.f)(_),t=await (0,w.g)({isTestnet:!!M.testnet,input:(0,w.t)({appId:A.id,amount:n.toString(),user:J.address,recipient:Z,destinationChainId:M.id,originChainId:w.c,originCurrency:P?w.e:w.b,destinationCurrency:P?q:void 0})}).catch(console.error);if(!t)return void k(new h.b(`Unable to fetch quotes for bridging. Wallet ${(0,x.J)(J.address)} does not have enough funds.`,void 0,h.c.INSUFFICIENT_BALANCE));let r=await e.createTransactionFromRelayQuote({quote:t,source:J.address,solanaClient:G});if(r)try{j(!0);let n=await e.simulateTransaction({solanaClient:G,tx:r});if(n.hasError)return n.hasFunds?(console.error("Transaction failed:",n.error),void k(new h.b("Something went wrong",void 0,h.c.TRANSACTION_FAILURE))):void k(new h.b(`Wallet ${(0,x.J)(J?.address)} does not have enough funds. ${t.details.currencyIn.amountFormatted} ${H} are needed to complete the transaction.`,void 0,h.c.INSUFFICIENT_BALANCE));let{signature:a}=await J.signAndSendTransaction({chain:"solana:mainnet",transaction:r}),i=e.getAddressFromBuffer(a);R(i),L("pending")}catch(e){if(console.error(e),/user rejected the request/gi.test(e.message||""))return void k(new h.b("Transaction was rejected by the user",void 0,h.c.TRANSACTION_FAILURE));k(new h.b("Something went wrong",void 0,h.c.TRANSACTION_FAILURE))}else k(new h.b(`Unable to select bridge option from quotes. Wallet ${(0,x.J)(J.address)} does not have enough funds.`,void 0,h.c.INSUFFICIENT_BALANCE))})().catch(console.error)},[]),(0,w.u)({transactionHash:B,isTestnet:!1,bridgingStatus:W,setBridgingStatus:L,onSuccess({transactionHash:e}){j(!1),U(!0),t({eventName:v.O,payload:{provider:"external",status:"success",txHash:e,address:J.address,chainType:"solana",clusterName:O,token:"SOL",destinationAddress:Z,destinationChainId:M.id,destinationChainType:"ethereum",destinationValue:_,destinationToken:P?"USDC":"ETH"}})},onFailure({error:e}){j(!1),k(e)}}),(0,i.useEffect)(()=>
16{if(!F)return;let e=setTimeout(n,p.t);return()=>clearTimeout(e)},[F]),(0,i.useEffect)(()=>{z&&(N({funding:T?.funding,solanaFundingData:T?.solanaFundingData,sendTransaction:T?.sendTransaction,errorModalData:{error:z,previousScreen:"TransferFromWalletScreen"}}),S("ErrorScreen",!1))},[z]),F?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(u.t,{}),(0,r.jsx)(l.b,{}),(0,r.jsxs)(l.c,{children:[(0,r.jsx)(a.Z,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),(0,r.jsx)(c.C,{title:"Success!",description:`Youâve successfully added ${_} ${H} to your ${A.name} wallet. It may take a minute before the funds are available to use.`})]}),(0,r.jsx)(l.R,{}),(0,r.jsx)(d.B,{})]}):$&&J?(0,r.jsx)(C.T,{walletClientType:(0,x.I)(J?.standardWallet.name||"unknown"),displayName:V,addressToFund:Z,isBridging:$,isErc20Flow:!1,chainId:M.id,chainName:M.name,totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(u.t,{}),(0,r.jsx)(f.N,{}),(0,r.jsx)("div",{style:{marginTop:"1rem"}}),(0,r.jsx)(d.B,{})]})}}},59147:function(e,n,t){t.d(n,{N:function(){return i}});var r=t(57437),a=t(99076);let i=({size:e,centerIcon:n})=>(0,r.jsx)(s,{$size:e,children:(0,r.jsxs)(o,{children:[(0,r.jsx)(d,{}),(0,r.jsx)(c,{}),n?(0,r.jsx)(l,{children:n}):null]})}),s=a.zo.div` 17 --spinner-size: ${e=>e.$size?e.$size:"96px"}; 18 19 display: inline-flex; 20 justify-content: center; 21 align-items: center; 22 23 @media all and (display-mode: standalone) { 24 margin-bottom: 30px; 25 } 26`,o=a.zo.div` 27 position: relative; 28 height: var(--spinner-size); 29 width: var(--spinner-size); 30 31 opacity: 1; 32 animation: fadein 200ms ease; 33`,l=a.zo.div` 34 position: absolute; 35 top: 0; 36 right: 0; 37 bottom: 0; 38 left: 0; 39 display: flex; 40 align-items: center; 41 justify-content: center; 42 svg, 43 img { 44 width: calc(var(--spinner-size) * 0.4); 45 height: calc(var(--spinner-size) * 0.4); 46 border-radius: var(--privy-border-radius-full); 47 } 48`,d=a.zo.div` 49 position: absolute; 50 top: 0; 51 right: 0; 52 bottom: 0; 53 left: 0; 54 width: var(--spinner-size); 55 height: var(--spinner-size); 56 57 && { 58 border: 4px solid var(--privy-color-border-default); 59 border-radius: 50%; 60 } 61`,c=a.zo.div` 62 position: absolute; 63 top: 0; 64 right: 0; 65 bottom: 0; 66 left: 0; 67 width: var(--spinner-size); 68 height: var(--spinner-size); 69 animation: spin 1200ms linear infinite; 70 71 && { 72 border: 4px solid; 73 border-color: var(--privy-color-icon-subtle) transparent transparent transparent; 74 border-radius: 50%; 75 } 76 77 @keyframes spin { 78 from { 79 transform: rotate(0deg); 80 } 81 to { 82 transform: rotate(360deg); 83 } 84 } 85`},31195:function(e,n,t){t.d(n,{f:function(){return i}});var r=t(90408),a=t(17439);function i(e,n="wei"){return(0,a.v)(e,r.ez[n])}},17439:function(e,n,t){t.d(n,{v:function(){return i}});var r=t(6649);class a extends r.G{constructor({value:e}){super(`Number \`${e}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}}function i(e,n){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new a({value:e});let[t,r="0"]=e.split("."),i=t.startsWith("-");if(i&&(t=t.slice(1)),r=r.replace(/(0+)$/,""),0===n)1===Math.round(Number(`.${r}`))&&(t=`${BigInt(t)+1n}`),r="";else if(r.length>n){let[e,a,i]=[r.slice(0,n-1),r.slice(n-1,n),r.slice(n)],s=Math.round(Number(`${a}.${i}`));(r=s>9?`${BigInt(e)+BigInt(1)}0`.padStart(e.length+1,"0"):`${e}${s}`).length>n&&(r=r.slice(1),t=`${BigInt(t)+1n}`),r=r.slice(0,n)}else r=r.padEnd(n,"0");return BigInt(`${i?"-":""}${t}${r}`)}}}]);
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.