PageSourceSearch

https://canfly.ai/assets/AwaitingSolToEvmBridgingScreen-DYZZooDp-BqvMHrAo.js

js canfly.ai collected 2026-10-05 13:52:40 UTC 5,614 bytes, 1 lines download raw bytes

1import{an as N,ao as Y,am as G,bj as J,aU as s,bk as K,bl as U,aQ as Z,bm as j,bf as ee,bn as I,ay as m,aX as ne,j as e}from"./vendor-privy-DywTFW8-.js";import{F as ae}from"./CheckCircleIcon-DZ3EXkC-.js";import{a as r}from"./vendor-i18n-BGlGq9Jg.js";import{c as te,n as re,s as se}from"./Layouts-BlFm53ED-mOGF99ms.js";import{u as R}from"./ModalHeader-DpkEBdQv-DbSTusH8.js";import{o as oe}from"./ScreenHeader-CHmc4-Lu-C9GV-PIj.js";import{t as W}from"./FundWalletMethodHeader-D38FBVVM-DuYnbi8N.js";import{t as ie}from"./index-Dq_xe9dz-CIHOxaAg.js";import{t as de}from"./analytics-mkkvFRju-DOXuftJB.js";import{u as le,o as ce,f as ue,n as me,s as fe,r as pe}from"./reservoir-0wfhnc0j-Cdbv9cH5.js";import{I as ge}from"./TransferOrBridgeLoadingScreen-koaJdk-2-CfZ3XLoQ.js";import"./vendor-react-jJlKb_y5.js";import"./InjectedWalletIcon-DLcYOGDj-Cv5Gs2Cp.js";import"./WalletIcon-CIDzgxtN.js";import"./Value-tcJV9e0L-DOKoo9_Z.js";import"./LoadingSkeleton-U6-3yFwI-Dbc8lh2S.js";import"./Address-B99EaiMb-mycLHJum.js";import"./check-C3G28qrK.js";import"./createLucideIcon-BZfnjNKG.js";import"./copy-Bh-iJq0A.js";import"./GlobeAltIcon-yykyO63L.js";const ke={component:function(){let D=N(),{closePrivyModal:P,createAnalyticsEvent:k,connectors:C}=Y(),{navigate:B,setModalData:_,data:o}=G(),y=N(),x=r.useRef(!1),E=J(),[$,h]=r.useState(!1),[w,L]=r.useState(!1),[v,d]=r.useState(null),[M,q]=r.useState(),[H,b]=r.useState();if(!o?.funding||o.funding.chainType!=="ethereum")throw Error("Invalid funding data");let{amount:f,connectedWallet:p,chain:l,solanaChain:O,isUSDC:g}=o.funding,S=o.funding.address,Q=o.funding.erc20Address,F=o.funding.isUSDC?"USDC":l.nativeCurrency.symbol,a=r.useMemo((()=>p?.type==="solana"?p.provider:(function({connectors:n,connectedWalletAddress:i}){let c=n.find((t=>t.chainType==="solana"&&t.wallets.some((T=>T.address===i)))),u=c?.wallet.accounts.find((t=>t.address===i));if(!c||!u)throw new s("Unable to find source wallet connector");return new K({wallet:c.wallet,account:u})})({connectors:C,connectedWalletAddress:p?.address||""})),[p,C]),A=r.useMemo((()=>{let n=E(U);if(!n)throw new s("Unable to load solana plugin");let i=D.solanaRpcs["solana:mainnet"];if(!i)throw new s("Unable to load mainnet RPC");return n.getSolanaRpcClient({rpc:i.rpc,rpcSubscriptions:i.rpcSubscriptions,chain:"solana:mainnet",blockExplorerUrl:i.blockExplorerUrl??"https://explorer.solana.com"})}),[]),z=Z(j(a?.standardWallet.name||"unknown")),V=z?.name||"wallet";return r.useEffect((()=>{(async function(){if(!a||!l||x.current)return;let n=E(U);if(!n)return void d(new s("Unable to solana plugin"));x.current=!0,l?.testnet&&console.warn("Solana testnets are not supported for bridging");let i=g?1e6*parseFloat(f):ee(f),c=await le({isTestnet:!!l.testnet,input:ce({appId:y.id,amount:i.toString(),user:a.address,recipient:S,destinationChainId:l.id,originChainId:pe,originCurrency:g?me:fe,destinationCurrency:g?Q:void 0})}).catch(console.error);if(!c)return void d(new s(`Unable to fetch quotes for bridging. Wallet ${I(a.address)} does not have enough funds.`,void 0,m.INSUFFICIENT_BALANCE));let u=await n.createTransactionFromRelayQuote({quote:c,source:a.address,solanaClient:A});if(u)try{h(!0);let t=await n.simulateTransaction({solanaClient:A,tx:u});if(t.hasError)return t.hasFunds?(console.error("Transaction failed:",t.error),void d(new s("Something went wrong",void 0,m.TRANSACTION_FAILURE))):void d(new s(`Wallet ${I(a?.address)} does not have enough funds. ${c.details.currencyIn.amountFormatted} ${F} are needed to complete the transaction.`,void 0,m.INSUFFICIENT_BALANCE));let{signature:T}=await a.signAndSendTransaction({chain:"solana:mainnet",transaction:u}),X=n.getAddressFromBuffer(T);q(X),b("pending")}catch(t){if(console.error(t),/user rejected the request/gi.test(t.message||""))return void d(new s("Transaction was rejected by the user",void 0,m.TRANSACTION_FAILURE));d(new s("Something went wrong",void 0,m.TRANSACTION_FAILURE))}else d(new s(`Unable to select bridge option from quotes. Wallet ${I(a.address)} does not have enough funds.`,void 0,m.INSUFFICIENT_BALANCE))})().catch(console.error)}),[]),ue({transactionHash:M,isTestnet:!1,bridgingStatus:H,setBridgingStatus:b,onSuccess({transactionHash:n}){h(!1),L(!0),k({eventName:de,payload:{provider:"external",status:"success",txHash:n,address:a.address,chainType:"solana",clusterName:O,token:"SOL",destinationAddress:S,destinationChainId:l.id,destinationChainType:"ethereum",destinationValue:f,destinationToken:g?"USDC":"ETH"}})},onFailure({error:n}){h(!1),d(n)}}),r.useEffect((()=>
1{if(!w)return;let n=setTimeout(P,ne);return()=>clearTimeout(n)}),[w]),r.useEffect((()=>{v&&(_({funding:o?.funding,solanaFundingData:o?.solanaFundingData,sendTransaction:o?.sendTransaction,errorModalData:{error:v,previousScreen:"TransferFromWalletScreen"}}),B("ErrorScreen",!1))}),[v]),w?e.jsxs(e.Fragment,{children:[e.jsx(W,{}),e.jsx(te,{}),e.jsxs(re,{children:[e.jsx(ae,{color:"var(--privy-color-success)",width:"64px",height:"64px"}),e.jsx(oe,{title:"Success!",description:`You’ve successfully added ${f} ${F} to your ${y.name} wallet. It may take a minute before the funds are available to use.`})]}),e.jsx(se,{}),e.jsx(R,{})]}):$&&a?e.jsx(ge,{walletClientType:j(a?.standardWallet.name||"unknown"),displayName:V,addressToFund:S,isBridging:$,isErc20Flow:!1,chainId:l.id,chainName:l.name,totalPriceInUsd:void 0,totalPriceInNativeCurrency:void 0,gasPriceInUsd:void 0,gasPriceInNativeCurrency:void 0}):e.jsxs(e.Fragment,{children:[e.jsx(W,{}),e.jsx(ie,{}),e.jsx("div",{style:{marginTop:"1rem"}}),e.jsx(R,{})]})}};export{ke as AwaitingSolToEvmBridgingScreen,ke as default};

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.