1"use strict";(self.webpackChunkico_react=self.webpackChunkico_react||[]).push([[9224],{9224:(e,n,a)=>{a.r(n),a.d(n,{AwaitingEvmToSolBridgingScreen:()=>D,default:()=>D});var t=a(24107),i=a(90034),o=a(42234),s=a(57722),r=a(75581),d=a(70822),l=a(63679),c=a(54079),u=a(46755),g=a(97811),v=a(2559),h=a(60229),f=a(33898),m=a(93014),p=a(51781),S=a(76107),b=a(99844),C=a(51380),T=a(1991),y=a(49931),w=a(66290),I=a(44131),E=a(67665),N=a(99788),x=a(78055),A=a(44990),F=a(94592),P=a(89155),U=a(12663),B=a(9505);a(88404),a(2035),a(30549),a(82425),a(82595);const D={component:()=>{var e;let n=(0,b.u)(),{rpcConfig:a,appId:D,closePrivyModal:k,createAnalyticsEvent:L}=(0,C.u)(),{navigate:M,setModalData:j,data:q}=(0,y.a)(),H=(0,b.u)(),{wallets:J}=(0,I.u)(),[R,V]=(0,s.useState)(null),[W,Z]=(0,s.useState)(null),[G,Y]=(0,s.useState)([]),[z,O]=(0,s.useState)(0),[Q,K]=(0,s.useState)(!1),[X,_]=(0,s.useState)(!1),[$,ee]=(0,s.useState)(!1),[ne,ae]=(0,s.useState)(!1),[te,ie]=(0,s.useState)(),[oe,se]=(0,s.useState)();if(null===q||void 0===q||!q.funding||"solana"!==q.funding.chainType)throw Error("Invalid funding data");let{address:re,chain:de,connectedWallet:le}=q.funding,[ce,ue]=(0,s.useState)(q.funding.amount),ge=null!==(e="ethereum"===(null===le||void 0===le?void 0:le.type)?le:void 0)&&void 0!==e?e:J[0],ve=(0,T.Q)((null===ge||void 0===ge?void 0:ge.walletClientType)||"unknown"),he=(null===ve||void 0===ve?void 0:ve.name)||"wallet",[fe,me]=(0,s.useState)(null);(0,s.useEffect)(()=>{(async()=>{if(!ge)return;let e=await ge.getEthereumProvider();me((0,d.F)({account:ge.address,transport:(0,c.I)(e)}).extend(l.$))})().catch(console.error)},[ge]);let[pe,Se]=(0,s.useState)(0n),be=(0,F.g)(pe);(0,s.useEffect)(()=>{let e=n.solanaRpcs[de];e?(0,x.z)({rpc:e.rpc,address:re}).then(e=>Se(BigInt(e))).catch(console.error):console.warn("Unable to load solana rpc, skipping balance")},[]);let[Ce,Te]=(0,s.useState)(),{tokenPrice:ye}=(0,w.u)("solana"),{fundingAmountInBaseUnit:we,fundingAmountInUsd:Ie}=(0,F.a)({amount:ce,fee:0n,tokenPrice:ye,isUsdc:q.funding.isUSDC});if((0,s.useEffect)(()=>{(async()=>{if(!fe||!ge)return;let e=["solana:testnet","solana:devnet"].includes(de);e&&console.warn("Solana testnets are not supported for bridging");let n=(0,v.u)(H.chains).filter(n=>{let{testnet:a}=n;return!!a===e}),i=(await(0,P.g)({chains:n,address:ge.address,appId:D,rpcConfig:a})).filter(e=>e.balance>0n);if(i.length<1)return void V(new C.a("Wallet ".concat((0,T.D)(ge.address)," does not have enough funds."),void 0,C.b.INSUFFICIENT_BALANCE));i.sort((e,n)=>Number(n.balance-e.balance));let o=(await Promise.allSettled(i.map(async e=>(0,t.A)((0,t.A)({},e),{},{quote:await(0,N.g)({isTestnet:!1,input:(0,N.t)({appId:D,amount:we.toString(),user:ge.address,recipient:re,destinationChainId:N.b,destinationCurrency:N.a,originChainId:e.chain.id})})})))).filter(e=>"fulfilled"===e.status).map(e=>e.value);if(o.length<1)return void V(new C.a("Unable to fetch quotes for bridging. Wallet ".concat((0,T.D)(ge.address)," does not have enough funds."),void 0,C.b.INSUFFICIENT_BALANCE));let s=o.map(e=>{let{quote:n,balance:a,chain:t}=e;return{bridgeTx:(0,N.c)(n),balance:a,chain:t,isErc20Quote:!1}}).filter(e=>{let{bridgeTx:n}=e;return!!n});if(s.length>1)return void Y(s);let r=s.at(0);r?(_(!0),Te({data:r.bridgeTx.data,to:r.bridgeTx.to,value:r.bridgeTx.value,chain:r.chain})):V(new C.a("Unable to select bridge option from quotes. Wallet ".concat((0,T.D)(ge.address)," does not have enough funds."),void 0,C.b.INSUFFICIENT_BALANCE))})().catch(console.error)},[fe]),(0,s.useEffect)(()=>{(async()=>{let e,n;if(!fe||!ge||Q||$||!Ce)return;K(!0);let t=(0,r.l)({chain:Ce.chain,transport:(0,u.L)((0,U.a)(Ce.chain,a,D))});try{var i;e=await t.prepareTransactionRequest({account:ge.address,to:Ce.to,chain:Ce.chain,data:Ce.data,value:BigInt(null!==(i=Ce.value)&&void 0!==i?i:0)})}catch(e){var o;console.error(e),G.length>1&&Z(null!==(o=e.shortMessage)&&void 0!==o?o:"Something went wrong")}if(e){K(!1),ee(!0);try{await fe.switchChain({id:Ce.chain.id})}catch(e){await fe.addChain({chain:Ce.chain}),await fe.switchChain({id:Ce.chain.id})}try{n=await fe.sendTransaction(e)}catch(e){var s;console.error(e),"TransactionExecutionError"===e.name&&(G.length<1?V(new C.a(e.shortMessage,void 0,C.b.TRANSACTION_FAILURE)):Z(null!==(s=e.shortMessage)&&void 0!==s?s:"Something went wrong"))}if(n)return await fe.waitForTransactionReceipt({hash:n}),X?(se("pending"),void ie(n)):(ee(!1),ae(!0),void L({eventName:E.O,payload:{provider:"external",status:"success",txHash:n,address:ge.address,chainId:Ce.chain.id,chainType:"ethereum",value:Ce.value?(0,g.J)(BigInt(Ce.value),18):void 0,token:"ETH",destination:re,destinationClusterName:"mainnet-beta",de
1stinationChainType:"solana",destinationValue:(0,g.J)(we,9),destinationToken:"SOL"}}));ee(!1)}else K(!1)})().catch(console.error)},[fe,Ce]),(0,N.u)({transactionHash:te,isTestnet:!1,bridgingStatus:oe,setBridgingStatus:se,onSuccess(e){let{transactionHash:n}=e;_(!1),ae(!0),L({eventName:E.O,payload:{provider:"external",status:"success",txHash:n,address:null===ge||void 0===ge?void 0:ge.address,chainId:null===Ce||void 0===Ce?void 0:Ce.chain.id,chainType:"ethereum",value:null!==Ce&&void 0!==Ce&&Ce.value?(0,g.J)(BigInt(Ce.value),18):void 0,token:"ETH",destination:re,destinationClusterName:"mainnet-beta",destinationChainType:"solana",destinationValue:(0,g.J)(we,9),destinationToken:"SOL"}})},onFailure(e){let{error:n}=e;_(!1),V(n)}}),(0,s.useEffect)(()=>{R&&(j({funding:null===q||void 0===q?void 0:q.funding,solanaFundingData:null===q||void 0===q?void 0:q.solanaFundingData,sendTransaction:null===q||void 0===q?void 0:q.sendTransaction,errorModalData:{error:R,previousScreen:"TransferFromWalletScreen"}}),M("ErrorScreen",!1))},[R]),(0,s.useEffect)(()=>{if(!ne)return;let e=setTimeout(k,b.t);return()=>clearTimeout(e)},[ne]),ne)return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(p.t,{}),(0,i.jsx)(h.b,{}),(0,i.jsxs)(h.c,{children:[(0,i.jsx)(o.A,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),(0,i.jsx)(m.C,{title:"Success!",description:"You\u2019ve successfully added ".concat(ce," SOL to your ").concat(H.name," wallet. It may take a minute before the funds are available to use.")})]}),(0,i.jsx)(h.R,{}),(0,i.jsx)(f.B,{})]});let Ee=G[z];return G.length>1&&Ee?(0,i.jsx)(P.B,{displayName:he,configuredFundingChain:de,formattedBalance:be,fundingAmount:ce,fundingCurrency:"SOL",fundingAmountInUsd:Ie,options:G,selectedOption:Ee,isPreparing:Q,isSubmitting:$,addressToFund:re,fundingWalletAddress:(null===ge||void 0===ge?void 0:ge.address)||"",errorMessage:W,onSubmit:()=>{var e;(null===(e=q.funding)||void 0===e?void 0:e.amount)!==ce?async function(){if(ge&&Ee)try{let e=await(0,N.g)({isTestnet:!1,input:(0,N.t)({appId:D,amount:we.toString(),user:ge.address,recipient:re,destinationChainId:N.b,destinationCurrency:N.a,originChainId:Ee.chain.id})}),n=(0,N.c)(e);if(!n)throw Error("Invalid transaction request");_(!0),Te({data:n.data,to:n.to,value:n.value,chain:Ee.chain})}catch(e){console.error(e),V(new C.a("Unable to fetch quotes for bridging",e,C.b.INSUFFICIENT_BALANCE))}}().catch(console.error):Te({to:Ee.bridgeTx.to,data:Ee.bridgeTx.data,value:Ee.bridgeTx.value,chain:Ee.chain})},onSelect:e=>{e!==z&&(Z(null),O(e))},onAmountChange:ue}):$&&ge?(0,i.jsx)(B.T,{walletClientType:(null===ge||void 0===ge?void 0:ge.walletClientType)||"unknown",displayName:he,addressToFund:re,isBridging:X,isErc20Flow:!1,chainId:"solana",chainName:(0,A.g)(de),totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(p.t,{}),(0,i.jsx)(S.N,{}),(0,i.jsx)("div",{style:{marginTop:"1rem"}}),(0,i.jsx)(f.B,{})]})}}},68054:(e,n,a)=>{a.d(n,{A:()=>r,D:()=>c,J:()=>l,L:()=>t,R:()=>d,S:()=>i,T:()=>o,a:()=>s,g:()=>u});const t=1e9,i="11111111111111111111111111111111",o="TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",s="TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb",r="ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",d=["CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C","CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"],l=["JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"],c={"solana:mainnet":{EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v:{symbol:"USDC",decimals:6,address:"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"},Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB:{symbol:"USDT",decimals:6,address:"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"},So11111111111111111111111111111111111111112:{symbol:"SOL",decimals:9,address:"So11111111111111111111111111111111111111112"}},"solana:devnet":{"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU":{symbol:"USDC",decimals:6,address:"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU"},EJwZgeZrdC8TXTQbQBoL6bfuAnFUUy1PVCMB4DYPzVaS:{symbol:"USDT",decimals:6,address:"EJwZgeZrdC8TXTQbQBoL6bfuAnFUUy1PVCMB4DYPzVaS"},So11111111111111111111111111111111111111112:{symbol:"SOL",decimals:9,address:"So11111111111111111111111111111111111111112"}}
1,"solana:testnet":{}};function u(e,n){let a=parseFloat(e.toString())/t,i=g.format(n*a);return"$0.00"===i?"<$0.01":i}let g=new Intl.NumberFormat(void 0,{style:"currency",currency:"USD",maximumFractionDigits:2})},94592:(e,n,a)=>{a.d(n,{a:()=>o,g:()=>i});var t=a(68054);function i(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6,a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],t=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=(parseFloat(e.toString())/1e9).toFixed(n).replace(/0+$/,"").replace(/\.$/,""),o=t?"":" SOL";return a?"".concat(i).concat(o):"".concat("0"===i?"<0.001":i).concat(o)}function o(e){let{amount:n,fee:a,tokenPrice:o,isUsdc:s}=e,r=BigInt(Math.floor(parseFloat(n)*10**(s?6:9))),d=s?r:r+a;return{fundingAmountInBaseUnit:r,fundingAmountInUsd:o?(0,t.g)(r,o):void 0,totalPriceInUsd:o?(0,t.g)(d,o):void 0,totalPriceInNativeCurrency:i(d),feePriceInNativeCurrency:i(a),feePriceInUsd:o?(0,t.g)(a,o):void 0}}}}]); 2//# sourceMappingURL=9224.fab50e90.chunk.js.map
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.