@privy-io/react-auth
Version:
React client for the Privy Auth API
2 lines (1 loc) • 23.5 kB
JavaScript
;var e=require("react/jsx-runtime"),t=require("react"),n=require("viem"),a=require("@privy-io/js-sdk-core"),s=require("./Address-5znFAhQw.js"),r=require("./context-DFq1obBO.js"),i=require("./prepareFundingModalData-Cnd6rhhJ.js"),o=require("./internal-context-NWsAL807.js"),u=require("./get-is-unified-wallet-D4ouXJpi.js"),l=require("./useGetTokenPrice-BHq-guWz.js"),c=require("./useWalletBalance-BVb8F3RO.js"),p=require("./getErc20TokenInfo-CBduyYx4.js"),d=require("./formatErc20TokenAmount-DxwoWe7e.js"),m=require("./ethers-DZGJ4Y5i.js"),y=require("./useActiveWallet-BOX8xCn9.js"),f=require("./getPublicClient-CGlodIp_.js"),b=require("./ErrorScreen-BSjRGrRR.js"),T=require("styled-components"),h=require("./ModalHeader-DB7Tbjwz.js"),g=require("./JsonTree-xaeo0q6z.js"),v=require("./TransactionErrorView-SaY08uTA.js"),I=require("./Button-Bm_Ft0Dw.js"),q=require("./Layouts-dRL0OSpp.js"),E=require("./ScreenHeader-CyURV6Ti.js"),j=require("./TransactionDetails-KB5Wyu1l.js"),k=require("./transfer-Cit146vy.js"),S=require("./index-NJrQkxJ7.js");require("lucide-react"),require("tinycolor2"),require("eventemitter3"),require("ofetch"),require("./useGetSolPrice-C986iVoO.js"),require("zustand"),require("react-device-detect"),require("./events-context-Di6--rDg.js"),require("viem/utils"),require("./useWallets-BLFNjTwC.js"),require("./reservoir-CQGyEBb7.js"),require("./ScreenLayout-BeH-Q6N2.js"),require("./Screen-D9Tvi297.js"),require("./index-CRFXS9pP.js"),require("uuid"),require("jose"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("mipd"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("./usePrivy-CcfSRv1R.js"),require("@scure/base"),require("@headlessui/react"),require("@walletconnect/ethereum-provider"),require("@privy-io/urls"),require("js-cookie"),require("./frame-B14fp9oC.js"),require("@privy-io/routes"),require("x402/client"),require("@privy-io/api-base"),require("viem/accounts"),require("./use-sign-with-user-signer-BcAsQTGF.js"),require("./getEmbeddedConnectedWallet-6TsVZJkD.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("@heroicons/react/24/outline"),require("./Value-C-XtZyFa.js"),require("./LoadingSkeleton-DoCrfGnl.js"),require("./Row-CxDF-VMy.js"),require("./ErrorMessage-f0cRWc29.js"),require("./LabelXs-CYMv6rOZ.js"),require("./Subtitle-Dtmrw8l5.js"),require("./Title-C-tHJvrb.js"),require("./WalletInfoCard-DKVdH9iF.js"),require("./shared-BPGwTh8c.js"),require("./Checkbox-DXPQZFlQ.js"),require("./ErrorBanner-CMjaobRI.js"),require("@heroicons/react/24/outline/ExclamationCircleIcon"),require("./WarningBanner-B_Gs_15p.js"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("@heroicons/react/24/outline/ClipboardDocumentCheckIcon"),require("@heroicons/react/24/outline/ClipboardDocumentIcon"),require("./WalletLink-GY0_Tmtg.js"),require("./getFormattedUsdFromLamports-Mu2fqwL2.js"),require("./transaction-DjF5X-by.js"),require("@heroicons/react/24/outline/ChevronDownIcon");let x=[{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"}],C=/*#__PURE__*/T.styled.div.withConfig({displayName:"Container",componentId:"sc-31acb2bc-0"})(["display:flex;flex-direction:column;min-height:72px;"]);var F=({onBack:t,details:n})=>/*#__PURE__*/e.jsxs(C,{children:[/*#__PURE__*/e.jsx(h.ModalHeader,{backFn:t}),/*#__PURE__*/e.jsx(g.DisplayJsonTree,{data:n}),/*#__PURE__*/e.jsx(h.BlobbyFooter,{})]});let M=({gasUsed:e,effectiveGasPrice:t})=>{if(e&&t)try{return n.toHex(e*t)}catch(e){return}};const _=({txn:t,receipt:n,transactionInfo:a,onClose:s,tokenPrice:r,tokenSymbol:i,receiptHeader:o,receiptDescription:u})=>/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(h.ModalHeader,{onClose:s}),/*#__PURE__*/e.jsx(E.ScreenHeader,{title:o??"Transaction complete!",description:u??"You're all set."}),/*#__PURE__*/e.jsx(j.TransactionDetails,{tokenPrice:r,from:n.from,to:n.to,gas:M(n),txn:t,transactionInfo:a,tokenSymbol:i}),/*#__PURE__*/e.jsx(y.Grow,{}),/*#__PURE__*/e.jsx(w,{loading:!1,onClick:s,children:"All Done"}),/*#__PURE__*/e.jsx(q.RefactorSpacerBottom,{}),/*#__PURE__*/e.jsx(h.BlobbyFooter,{})]});let w=/*#__PURE__*/T.styled(I.PrimaryButton).withConfig({displayName:"SubmitButton",componentId:"sc-f70d0f7a-0"})(["&&{margin-top:24px;}transition:color 350ms ease,background-color 350ms ease;"]);const A=[{constant:!1,inputs:[{name:"_salt",type:"bytes32"},{name:"_initializer",type:"bytes"}],name:"deployAccount",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"}],N=[{name:"from",type:"address"},{name:"param2",type:"address"},{name:"param3",type:"bytes"},{name:"param4",type:"tuple",components:[]},{type:"tuple",components:[{name:"param5",type:"address"},{name:"param6",type:"uint256"},{name:"param7",type:"uint256"},{name:"encodedInitData",type:"bytes"}]}],P=[{constant:!1,inputs:[{name:"spender",type:"address"},{name:"value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"}],R=[{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"}],name:"mint",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"quantity",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"mint",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"quantity",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"mint",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"tokenIds",type:"uint256[]"},{internalType:"uint256[]",name:"quantities",type:"uint256[]"},{internalType:"bytes",name:"data",type:"bytes"}],name:"mintBatch",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"tokenIds",type:"uint256[]"},{internalType:"uint256[]",name:"quantities",type:"uint256[]"},{internalType:"bytes",name:"data",type:"bytes"}],name:"mintBatch",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"quantity",type:"uint256"}],name:"mint",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"quantity",type:"uint256"}],name:"mint",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"}],name:"safeMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"}],name:"safeMint",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"string",name:"uri",type:"string"}],name:"safeMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"string",name:"uri",type:"string"}],name:"safeMint",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeMint",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"string",name:"uri",type:"string"}],name:"safeMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"string",name:"uri",type:"string"}],name:"safeMint",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"batchMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"batchMint",outputs:[],stateMutability:"payable",type:"function"}],D=[{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"}],B=[{constant:!1,inputs:[{name:"_operator",type:"address"},{name:"_approved",type:"bool"}],name:"setApprovalForAll",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"}],O=[{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_tokenId",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"}],$=[{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_tokenIds",type:"uint256[]"},{name:"_amounts",type:"uint256[]"},{name:"_data",type:"bytes"}],name:"safeBatchTransferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"}],W=[{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_tokenId",type:"uint256"},{name:"_amount",type:"uint256"},{name:"_data",type:"bytes"}],name:"safeTransferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"}],L=(e,t)=>{let n=U(P,e);if(n)return{action:"approve",functionName:"approve",isErc20Ish:!0,isNFTIsh:!1,spender:n.args[0],amount:n.args[1]};let a=U(k.ERC20_TRANSFER_ABI_STUB,e);if(a)return{action:"transfer",functionName:"transfer",isErc20Ish:!0,isNFTIsh:!1,transferTo:a.args[0],amount:a.args[1]};if(!t)return{action:"transaction",functionName:"",isErc20Ish:!1,isNFTIsh:!1};let s=U(A,e);if(s&&"string"==typeof s.args[1]){let e=V(s.args[1]);if(e&&e[4].encodedInitData)return L(e[4].encodedInitData,t)}let r=U(B,e);if(r)return{action:"approve",functionName:"setApprovalForAll",isNFTIsh:!0,isErc20Ish:!1,operator:r.args[0],approved:r.args[1]};let i=U(O,e);if(i)return{action:"transfer",functionName:"transferFrom",isNFTIsh:!0,isErc20Ish:!1,transferFrom:i.args[0],transferTo:i.args[1],tokenId:i.args[2]};let o=U(D,e);if(o)return{action:"transfer",functionName:"safeTransferFrom",isNFTIsh:!0,isErc20Ish:!1,transferFrom:o.args[0],transferTo:o.args[1],tokenId:o.args[2]};let u=U(W,e);if(u)return{action:"transfer",functionName:"safeTransferFrom",isNFTIsh:!0,isErc20Ish:!1,transferFrom:u.args[0],transferTo:u.args[1],tokenId:u.args[2],amount:u.args[3]};let l=U($,e);if(l)return{action:"batch transfer",functionName:"safeBatchTransferFrom",isNFTIsh:!0,isErc20Ish:!1,transferFrom:l.args[0],transferTo:l.args[1],tokenIds:l.args[2],amounts:l.args[3]};let c=U(R,e);return c?{action:"mint",functionName:c.functionName,isNFTIsh:!0,isErc20Ish:!1,args:c.args}:{action:"transaction",isErc20Ish:!1,isNFTIsh:!1}};let U=(e,t)=>{try{let a=n.decodeFunctionData({abi:e,data:t});return{functionName:a.functionName,args:a.args||[]}}catch(e){return null}},V=e=>{try{if("string"==typeof e)return n.decodeAbiParameters(N,`0x${e.slice(10)}`)}catch(e){return null}},H=e=>`${parseFloat(e).toFixed(2)}`;function G(e,t){let n=[],a=new Map;if(e)for(let t of e)if(t.in[0]){let e;e="ERC721"===t.asset.type||"approve_for_all"===t.in[0].value?{id:`nft:${t.asset.name}`,nftName:t.asset.name,nftCount:t.in.length}:{id:`token:${t.asset.type}:${t.asset.symbol}:${t.asset.name}`,iconUrl:t.asset.logo_url,value:t.in[0].value,symbol:t.asset.symbol,usdValue:t.in[0].usd_price?H(t.in[0].usd_price):void 0,decimals:t.asset.decimals},n.push(e)}else if(t.out[0]?.value){let e;e="ERC721"===t.asset.type||"approve_for_all"===t.out[0].value?{id:`nft:${t.asset.name}`,nftName:t.asset.name}:{id:`token:${t.asset.type}:${t.asset.symbol}:${t.asset.name}`,iconUrl:t.asset.logo_url,value:t.out[0].value,symbol:t.asset.symbol,usdValue:t.out[0].usd_price?H(t.out[0].usd_price):void 0,decimals:t.asset.decimals},a.has(e.id)||a.set(e.id,e)}for(let e of t)for(let t of Object.keys(e.spenders)){let n;n="ERC721"===e.asset.type||"approve_for_all"===e.spenders[t]?.value?{id:`nft:${e.asset.name}`,nftName:e.asset.name}:{id:`token:${e.asset.type}:${e.asset.symbol}:${e.asset.name}`,iconUrl:e.asset.logo_url,value:e.spenders[t]?.value,symbol:e.asset.symbol,usdValue:e.spenders[t]?.usd_price?H(e.spenders[t]?.usd_price):void 0,decimals:e.asset.decimals},a.has(n.id)||a.set(n.id,n)}return{assetsIn:n,assetsOut:Array.from(a.values())}}const J=(e,n,a,s)=>{let[r,i]=t.useState(null),{walletProxy:u}=o.usePrivyInternal();return t.useEffect((()=>{r&&i(null),(async()=>{if(!u||!n)return null;let t=[],r=!0,i=await S.prepareTransactionRequest(e,a,n,s).catch((n=>(n.message&&n.message.includes("Insufficient balance for transaction")||n.message&&n.message.includes("Insufficient funds for gas * price + value")||n.details&&n.details.includes("insufficient funds")?r=!1:t.push(n),e)));return{tx:i,totalGasEstimate:i.gas,hasFunds:r,errors:t}})().then(i)}),[e]),r};let z=new i.PrivyProviderRpcError(new i.ProviderRpcError("There was an issue preparing your transaction",a.ProviderErrors.E32603_DEFAULT_INTERNAL_ERROR.eipCode)),Q=(e,t)=>e?.sendTransaction?"transactionRequest"in e.sendTransaction?e.sendTransaction.transactionRequest:e.sendTransaction.transactionRequests[t]:void 0;const X={component:()=>{let{data:T,onUserCloseViaDialogOrKeybindRef:h,setModalData:g,navigate:I}=u.usePrivyModal(),{client:q,rpcConfig:E,chains:j,closePrivyModal:k,walletProxy:S,showFiatPrices:C}=o.usePrivyInternal(),{user:M}=u.usePrivyContext(),w=r.useAppConfig(),[A,N]=t.useState(0),[P,R]=t.useState(0),[D,B]=t.useState(Q(T,A)),[O,$]=t.useState(null),[W,U]=t.useState(),[V,H]=t.useState(!1),[X,K]=t.useState(null),[Y,Z]=t.useState(null),[ee,te]=t.useState(null),[ne,ae]=t.useState(void 0),[se,re]=t.useState(void 0),[ie,oe]=t.useState(!1),[ue,le]=t.useState(!1),[ce,pe]=t.useState([]),[de,me]=t.useState([]),[ye,fe]=t.useState("uninitiated"),[be,Te]=t.useState(void 0);if(!D||!T?.sendTransaction||!T?.sendTransaction)/*#__PURE__*/return e.jsx(b.ErrorScreenView,{error:Error("Invalid transaction request"),allowlistConfig:w.allowlistConfig,onRetry:()=>{T?.sendTransaction?.onFailure(z),k({shouldCallAuthOnSuccess:!1})}});let{transactingWalletAddress:he}=T.sendTransaction,ge=t.useMemo((()=>j.find((e=>Number(e.id)===Number(D.chainId)))),[D.chainId]),ve=ge?.nativeCurrency.symbol??"ETH",Ie=t.useMemo((()=>L(D.data,!!w.embeddedWallets.extendedCalldataDecoding)),[D.data]),{action:qe,isErc20Ish:Ee,isNFTIsh:je,functionName:ke}=Ie,{toAddress:Se,tokenAddress:xe}=t.useMemo((()=>({toAddress:Ie.isErc20Ish?Ie.transferTo:D.to??void 0,tokenAddress:Ie.isErc20Ish?D.to:void 0})),[Ie]);t.useEffect((()=>{D.to&&ge&&Ee&&p.getErc20TokenInfo({address:D.to,chain:ge,rpcConfig:w.rpcConfig,privyAppId:w.id}).then($).catch(console.error)}),[D.to,ge]);let{tokenPrice:Ce,isTokenPriceLoading:Fe}=l.useGetTokenPrice(D.chainId),{balance:Me}=c.useWalletBalance({rpcConfig:w.rpcConfig,appId:w.id,address:he,chain:ge}),_e=function({rpcConfig:e,appId:s,address:r,chain:i,tokenInfo:u}){let{chains:l}=o.usePrivyInternal(),[c,p]=t.useState(null),[d,m]=t.useState(!1),y=t.useMemo((()=>{let t=i||l[0];if(t)return n.createPublicClient({chain:i,transport:n.http(a.getJsonRpcEndpointFromChain(t,e,s))})}),[i,e,s]),f=t.useCallback((async()=>{if(r&&y&&u.address)try{return m(!0),await y.readContract({address:u.address,abi:x,functionName:"balanceOf",args:[r]})}catch(e){console.error(e)}finally{m(!1)}}),[y,r,u?.address,i]);return t.useEffect((()=>{f().then((e=>null!=e&&p(e)))}),[f]),{balance:c,isLoading:d&&null==c,formattedBalance:a.formatTokenAmount({amount:c??BigInt(0),decimals:u.decimals})}}({rpcConfig:w.rpcConfig,appId:w.id,address:he,tokenInfo:{address:xe||"",decimals:O?.decimals??18},chain:ge}),we=t.useMemo((()=>f.getPublicClient(Number(D.chainId),j,E,{appId:w.id})),[D.chainId,E]),Ae=J(D,he,we,T?.sendTransaction?.prepareTransactionRequest);t.useEffect((()=>{B(Q(T,A))}),[A]),t.useEffect((()=>{T.sendTransaction?.getIsSponsored?T.sendTransaction.getIsSponsored().then(U).catch(console.error):U(!1)}),[T.sendTransaction.getIsSponsored]);let Ne=()=>{if(!V)return X?T?.sendTransaction?.onSuccess({hash:X}):ee||Ae?.errors[0]?T?.sendTransaction?.onFailure(ee??Ae?.errors[0]??z):T?.sendTransaction?.onFailure(new i.PrivyProviderRpcError(new i.ProviderRpcError("The user rejected the request",a.ProviderErrors.E4001_USER_REJECTED_REQUEST.eipCode))),k({shouldCallAuthOnSuccess:!1})};h.current=Ne;let Pe=!!(T.funding&&T.funding.supportedOptions.length>0),Re=m.getNativeCurrencyFromWei(BigInt(Ae?.totalGasEstimate??0n),ve),De=C&&Ce?m.getDollarsFromWei(BigInt(Ae?.totalGasEstimate??0n),Ce):void 0,Be=m.getNativeCurrencyFromWei(Me??0n,ve,void 0,!0),Oe=C&&Ce?m.getDollarsFromWei(Me??0n,Ce):void 0,$e=O&&!_e.isLoading&&Ee&&"approve"!==qe?`${_e.formattedBalance} ${O.symbol}`:void 0,We=T.sendTransaction?.uiOptions?.transactionInfo?.title;We||(We="approve"===qe?Ee?"Confirm address":"Confirm action":`Approve ${qe}`);let Le=t.useMemo((()=>{if(T.sendTransaction?.uiOptions?.description)return T.sendTransaction?.uiOptions?.description;if("approve"===qe&&"setApprovalForAll"===ke&&Ie.approved){let t=/*#__PURE__*/e.jsx(s.Address,{address:Ie.operator||"",url:ge?.blockExplorers?.default?.url});/*#__PURE__*/return e.jsxs(e.Fragment,{children:[w.name," would like your permission for ",t," to transfer tokens on your behalf."]})}if("approve"===qe&&"setApprovalForAll"===ke&&!Ie.approved){let t=/*#__PURE__*/e.jsx(s.Address,{address:Ie.operator||"",url:ge?.blockExplorers?.default?.url});/*#__PURE__*/return e.jsxs(e.Fragment,{children:[w.name," would like your permission to revoke permissions of ",t," from transferring tokens on your behalf."]})}return Ee&&"approve"===qe||Ee&&"approve"===qe?`${w.name} would like your permission for ${y.formatWalletAddress(Ie.spender)} to spend tokens on your behalf.`:`${w.name} wants your permission to approve the following transaction.`}),[w.name,Ee,Ie,T.sendTransaction?.uiOptions.description,ke]),Ue=T.sendTransaction?.uiOptions?.transactionInfo?.contractInfo?.imgUrl?/*#__PURE__*/e.jsx("img",{src:T.sendTransaction.uiOptions.transactionInfo.contractInfo.imgUrl,alt:T.sendTransaction.uiOptions.transactionInfo.contractInfo.imgAltText}):null,Ve=!(!Ae||Ae.errors[0]||Ae.hasFunds||!1!==W),He=Ve&&Pe,Ge=He?"Add funds":T.sendTransaction?.uiOptions?.buttonText||(A<P?"Continue":"Approve"),Je=e=>{if(!e)throw Error("Transaction scan failed");if("Success"===e.validation.status&&("Benign"===e.validation.result_type?re("safe"):"Warning"===e.validation.result_type?re("warn"):"Malicious"===e.validation.result_type&&(re("error"),le(!0))),"Success"!==e.simulation.status)throw Error("Simulation failed");{ae(e.simulation.params);let{assetsIn:t,assetsOut:n}=G(e.simulation.assets_diffs,e.simulation.exposures);if(0===n.length&&0===t.length)throw Error("No tokens found");pe(n),me(t)}};if(t.useEffect((()=>{T.sendTransaction?.scanTransaction&&w.embeddedWallets.transactionScanning.enabled&&"uninitiated"===ye&&(fe("in progress"),T.sendTransaction.scanTransaction().then((e=>{Je(e),fe("completed")})).catch((()=>fe("failed"))))}),[!!T.sendTransaction?.scanTransaction]),t.useEffect((()=>{T.sendTransaction?.scanTransaction&&"failed"!==ye||((e,t,n)=>{if(R((e=>e?.sendTransaction?"transactionRequest"in e.sendTransaction?0:e.sendTransaction.transactionRequests.length-1:0)(T)),t.isErc20Ish&&t.amount&&n){let e=d.formatErc20TokenAmount({amount:t.amount,decimals:n.decimals});Te(e),pe([{value:e,symbol:n?.symbol,decimals:n?.decimals}])}else if(e.value){let t=BigInt(e.value),n=Ce?m.getDollarsFromWei(t,Ce):void 0;pe(C&&n?[{value:n}]:[{value:m.parseNativeCurrencyFromWei(t),symbol:ve,decimals:18,usdValue:n}])}else pe(C?[{value:"$0"}]:[{value:"0",symbol:ve,decimals:18}])})(Ae?.tx??D,Ie,O)}),[D,Ae?.tx,Ie,O,ye]),Y/*#__PURE__*/)return e.jsx(_,{txn:Ae?.tx??D,onClose:Ne,receipt:Y,transactionInfo:T.sendTransaction?.uiOptions.transactionInfo,tokenPrice:Ce,tokenSymbol:ve,receiptHeader:T.sendTransaction?.uiOptions.successHeader,receiptDescription:T.sendTransaction?.uiOptions.successDescription});if(ee)/*#__PURE__*/return e.jsx(v.TransactionErrorView,{transactionError:ee,transactionHash:X??void 0,chainType:"ethereum",chainId:Ae?.tx.chainId??D.chainId,onClose:Ne,onRetry:({resetNonce:e})=>{te(null);let t={...Ae?.tx??D};e&&(t.nonce=void 0),B(t)}});let ze=0!==P&&"number"==typeof A&&0!==A?()=>{N(A-1)}:void 0;return ie&&ne?/*#__PURE__*/e.jsx(F,{details:ne,onBack:()=>oe(!1)}):/*#__PURE__*/e.jsx(v.SendTransactionScreenView,{transactionIndex:A,onBack:ze,maxIndex:P,disabled:Ve&&!Pe||ue,isSubmitting:V,submitError:ee,isPreparing:!Ae,isTokenPriceLoading:Fe,isTokenContractInfoLoading:!je&&!O,prepareError:Ae?.errors[0],symbol:O?.symbol,chain:ge,img:Ue,title:We,subtitle:Le,txValue:D.value,fee:De??Re,isSponsored:W,from:he??"",to:Se,tokenAddress:xe??void 0,network:w.chains.find((e=>e.id===D.chainId))?.name??"",transactionDetails:{...Ie,formattedAmount:be},cta:Ge,missingFunds:Ve,action:qe,balance:$e??Oe??Be,onClose:Ne,onClick:He?async()=>{if(!he)return;if(!Pe)throw Error("Funding wallet is not enabled");let e="FundingMethodSelectionScreen";g({...T,funding:{...T.funding,methodScreen:e,chainType:"ethereum",amount:n.formatEther(BigInt(Ae?.tx.value??0)+BigInt(Ae?.totalGasEstimate?.toString()??0)),chain:ge},solanaFundingData:T?.solanaFundingData}),I(e)}:async()=>{if(A<P)N(A+1);else{H(!0);try{let e=await q.getAccessToken();if(V||!e||!S||!M)return;let t=await T.sendTransaction.onConfirm({transactionRequest:Ae?.tx??D});if(K(t),T.sendTransaction?.signOnly)return await new Promise((e=>setTimeout(e,r.DEFAULT_SUCCESS_SCREEN_DURATION_MS))),T?.sendTransaction?.onSuccess({hash:t}),k({shouldCallAuthOnSuccess:!1});let n=await we.waitForTransactionReceipt({hash:t});if("reverted"===n.status)throw Error("Transaction failed");Z(n)}catch(e){console.warn({transaction:Ae?.tx??D,error:e}),te(e)}finally{H(!1)}}},validation:se,hasScanDetails:!!ne,setIsScanDetailsOpen:oe,preventMaliciousTransaction:ue,setPreventMaliciousTransaction:le,tokensSent:ce,tokensReceived:de,isScanning:"in progress"===ye,isCancellable:T.sendTransaction?.uiOptions?.isCancellable??!1,functionName:ke})}};exports.SendTransactionScreen=X,exports.default=X;