1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[19383],{6906:(e,t,n)=>{n.d(t,{A:()=>d});var r=n(12115);let a=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},i=(...e)=>e.filter((e,t,n)=>!!e&&""!==e.trim()&&n.indexOf(e)===t).join(" ").trim();var s={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"};let o=(0,r.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:a,className:o="",children:d,iconNode:l,...c},u)=>(0,r.createElement)("svg",{ref:u,...s,width:t,height:t,stroke:e,strokeWidth:a?24*Number(n)/Number(t):n,className:i("lucide",o),...!d&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(c)&&{"aria-hidden":"true"},...c},[...l.map(([e,t])=>(0,r.createElement)(e,t)),...Array.isArray(d)?d:[d]])),d=(e,t)=>{let n=(0,r.forwardRef)(({className:n,...s},d)=>(0,r.createElement)(o,{ref:d,iconNode:t,className:i(`lucide-${a(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,n),...s}));return n.displayName=a(e),n}},34297:(e,t,n)=>{n.r(t),n.d(t,{AwaitingSolToEvmBridgingScreen:()=>A,default:()=>A});var r=n(95155),a=n(33187),i=n(12115),s=n(62278),o=n(72514),d=n(65970),l=n(91008),c=n(29781),u=n(7624),p=n(95119),h=n(69730),g=n(49840),f=n(51730),m=n(69704),v=n(27206),w=n(89367),b=n(1025),y=n(29441),C=n(6403),x=n(28788),S=n(69702);n(12100),n(67884),n(4154);let A={component:function(){let e=(0,h.u)(),{closePrivyModal:t,createAnalyticsEvent:n,connectors:A}=(0,m.u)(),{navigate:I,setModalData:T,data:N}=(0,v.u)(),E=(0,h.u)(),j=(0,i.useRef)(!1),[F,U]=(0,i.useState)(!1),[k,P]=(0,i.useState)(!1),[$,z]=(0,i.useState)(null),[R,B]=(0,i.useState)(),[W,L]=(0,i.useState)();if(!N?.funding||"ethereum"!==N.funding.chainType)throw Error("Invalid funding data");let{amount:_,connectedWallet:D,chain:M,solanaChain:O,isUSDC:q}=N.funding,H=N.funding.address,Z=N.funding.erc20Address,Q=N.funding.isUSDC?"USDC":M.nativeCurrency.symbol,V=(0,i.useMemo)(()=>"solana"===D?.type?D.provider:function({connectors:e,connectedWalletAddress:t}){let n=e.find(e=>"solana"===e.chainType&&e.wallets.some(e=>e.address===t)),r=n?.wallet.accounts.find(e=>e.address===t);if(!n||!r)throw new g.P("Unable to find source wallet connector");return new o.W({wallet:n.wallet,account:r})}({connectors:A,connectedWalletAddress:D?.address||""}),[D,A]),X=(0,i.useMemo)(()=>{let t=(0,y.g)(C.S);if(!t)throw new g.P("Unable to load solana plugin");let n=e.solanaRpcs["solana:mainnet"];if(!n)throw new g.P("Unable to load mainnet RPC");return t.getSolanaRpcClient({rpc:n.rpc,rpcSubscriptions:n.rpcSubscriptions,chain:"solana:mainnet",blockExplorerUrl:n.blockExplorerUrl??"https://explorer.solana.com"})},[]),Y=(0,f.k)((0,x.A)(V?.standardWallet.name||"unknown")),G=Y?.name||"wallet";return(0,i.useEffect)(()=>{(async function(){if(!V||!M||j.current)return;let e=(0,y.g)(C.S);if(!e)return void z(new g.P("Unable to solana plugin"));j.current=!0,M?.testnet&&console.warn("Solana testnets are not supported for bridging");let t=q?1e6*parseFloat(_):(0,s.g)(_),n=await (0,b.g)({isTestnet:!!M.testnet,input:(0,b.t)({appId:E.id,amount:t.toString(),user:V.address,recipient:H,destinationChainId:M.id,originChainId:b.c,originCurrency:q?b.e:b.b,destinationCurrency:q?Z:void 0})}).catch(console.error);if(!n)return void z(new g.P(`Unable to fetch quotes for bridging. Wallet ${(0,x.B)(V.address)} does not have enough funds.`,void 0,g.a.INSUFFICIENT_BALANCE));let r=await e.createTransactionFromRelayQuote({quote:n,source:V.address,solanaClient:X});if(r)try{U(!0);let t=await e.simulateTransaction({solanaClient:X,tx:r});if(t.hasError)return t.hasFunds?(console.error("Transaction failed:",t.error),void z(new g.P("Something went wrong",void 0,g.a.TRANSACTION_FAILURE))):void z(new g.P(`Wallet ${(0,x.B)(V?.address)} does not have enough funds. ${n.details.currencyIn.amountFormatted} ${Q} are needed to complete the transaction.`,void 0,g.a.INSUFFICIENT_BALANCE));let{signature:a}=await V.signAndSendTransaction({chain:"solana:mainnet",transaction:r}),i=e.getAddressFromBuffer(a);B(i),L("pending")}catch(e){if(console.error(e),/user rejected the request/gi.test(e.message||""))return void z(new g.P("Transaction was rejected by the user",void 0,g.a.TRANSACTION_FAILURE));z(new g.P("Something went wrong",void 0,g.a.TRANSACTION_FAILURE))}else z(new g.P(`Unable to select bridge option from quotes. Wallet ${(0,x.B)(V.address)} does not have enough funds.`,void 0,g.a.INSUFFICIENT_BALANCE))})().catch(console.error)},[]),(0,b.u)({transactionHash:R,isTestnet:!1,bridgingStatus:W,setBridgingStatus:L,onSuccess({transactionHash:e}){U(!1),P(!0),n({eventName:w.O,payload:{provider:"external",status:"success",txHash:e,address:V.address,chainType:"solana",clusterName:O,token:"SOL",destinationAddress:H,destinationChainId:M.id,destinationChainType:"ethereum",destinationValue:_,destinationToken:q?"USDC":"ETH"}})},onFailure({error:e}){U(!1),z(e)}}),(0,i.useEffect)(()=>
1{if(!k)return;let e=setTimeout(t,h.v);return()=>clearTimeout(e)},[k]),(0,i.useEffect)(()=>{$&&(T({funding:N?.funding,solanaFundingData:N?.solanaFundingData,sendTransaction:N?.sendTransaction,errorModalData:{error:$,previousScreen:"TransferFromWalletScreen"}}),I("ErrorScreen",!1))},[$]),k?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(u.t,{}),(0,r.jsx)(d.b,{}),(0,r.jsxs)(d.c,{children:[(0,r.jsx)(a.A,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),(0,r.jsx)(c.C,{title:"Success!",description:`Youâve successfully added ${_} ${Q} to your ${E.name} wallet. It may take a minute before the funds are available to use.`})]}),(0,r.jsx)(d.R,{}),(0,r.jsx)(l.B,{})]}):F&&V?(0,r.jsx)(S.T,{walletClientType:(0,x.A)(V?.standardWallet.name||"unknown"),displayName:G,addressToFund:H,isBridging:F,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)(p.N,{}),(0,r.jsx)("div",{style:{marginTop:"1rem"}}),(0,r.jsx)(l.B,{})]})}}},62278:(e,t,n)=>{n.d(t,{g:()=>a});var r=n(15904);function a(e,t="wei"){return r.Xq(e,t)}},83026:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(6906).A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},95119:(e,t,n)=>{n.d(t,{N:()=>i});var r=n(95155),a=n(36422);let i=({size:e,centerIcon:t})=>(0,r.jsx)(s,{$size:e,children:(0,r.jsxs)(o,{children:[(0,r.jsx)(l,{}),(0,r.jsx)(c,{}),t?(0,r.jsx)(d,{children:t}):null]})}),s=a.I4.div` 2 --spinner-size: ${e=>e.$size?e.$size:"96px"}; 3 4 display: inline-flex; 5 justify-content: center; 6 align-items: center; 7 8 @media all and (display-mode: standalone) { 9 margin-bottom: 30px; 10 } 11`,o=a.I4.div` 12 position: relative; 13 height: var(--spinner-size); 14 width: var(--spinner-size); 15 16 opacity: 1; 17 animation: fadein 200ms ease; 18`,d=a.I4.div` 19 position: absolute; 20 top: 0; 21 right: 0; 22 bottom: 0; 23 left: 0; 24 display: flex; 25 align-items: center; 26 justify-content: center; 27 svg, 28 img { 29 width: calc(var(--spinner-size) * 0.4); 30 height: calc(var(--spinner-size) * 0.4); 31 border-radius: var(--privy-border-radius-full); 32 } 33`,l=a.I4.div` 34 position: absolute; 35 top: 0; 36 right: 0; 37 bottom: 0; 38 left: 0; 39 width: var(--spinner-size); 40 height: var(--spinner-size); 41 42 && { 43 border: 4px solid var(--privy-color-border-default); 44 border-radius: 50%; 45 } 46`,c=a.I4.div` 47 position: absolute; 48 top: 0; 49 right: 0; 50 bottom: 0; 51 left: 0; 52 width: var(--spinner-size); 53 height: var(--spinner-size); 54 animation: spin 1200ms linear infinite; 55 56 && { 57 border: 4px solid; 58 border-color: var(--privy-color-icon-subtle) transparent transparent transparent; 59 border-radius: 50%; 60 } 61 62 @keyframes spin { 63 from { 64 transform: rotate(0deg); 65 } 66 to { 67 transform: rotate(360deg); 68 } 69 } 70`}}]);
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.