@privy-io/react-auth
Version:
React client for the Privy Auth API
2 lines (1 loc) • 21.6 kB
JavaScript
;var e=require("react/jsx-runtime"),t=require("react"),n=require("@privy-io/js-sdk-core"),r=require("./get-is-unified-wallet-D4ouXJpi.js"),a=require("./context-DFq1obBO.js"),i=require("./internal-context-NWsAL807.js"),o=require("./useGetSolPrice-C986iVoO.js"),s=require("./ErrorScreen-BSjRGrRR.js"),c=require("@heroicons/react/24/outline/CheckCircleIcon"),u=require("styled-components"),l=require("./Button-Bm_Ft0Dw.js"),d=require("./Layouts-dRL0OSpp.js"),p=require("./ModalHeader-DB7Tbjwz.js"),m=require("./ScreenHeader-CyURV6Ti.js"),f=require("./Row-CxDF-VMy.js"),g=require("./Value-C-XtZyFa.js"),h=require("./WalletLink-GY0_Tmtg.js"),y=require("./StackedContainer-ByB6Mdu0.js"),w=require("./useActiveWallet-BOX8xCn9.js"),S=require("./TransactionErrorView-SaY08uTA.js"),k=require("./transaction-DjF5X-by.js"),A=require("@solana/kit"),b=require("./useSolanaRpcClient-TQdbjNyx.js"),v=require("./getFormattedUsdFromLamports-Mu2fqwL2.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("viem"),require("tinycolor2"),require("ofetch"),require("lucide-react"),require("./index-NJrQkxJ7.js"),require("uuid"),require("jose"),require("eventemitter3"),require("./useWallets-BLFNjTwC.js"),require("./prepareFundingModalData-Cnd6rhhJ.js"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("mipd"),require("react-device-detect"),require("viem/utils"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("./usePrivy-CcfSRv1R.js"),require("./events-context-Di6--rDg.js"),require("@scure/base"),require("zustand"),require("@headlessui/react"),require("@walletconnect/ethereum-provider"),require("@privy-io/urls"),require("./getPublicClient-CGlodIp_.js"),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("./reservoir-CQGyEBb7.js"),require("./ScreenLayout-BeH-Q6N2.js"),require("./Screen-D9Tvi297.js"),require("./index-CRFXS9pP.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("./LoadingSkeleton-DoCrfGnl.js"),require("./ethers-DZGJ4Y5i.js"),require("@heroicons/react/24/outline"),require("./ErrorMessage-f0cRWc29.js"),require("./LabelXs-CYMv6rOZ.js"),require("./Subtitle-Dtmrw8l5.js"),require("./Title-C-tHJvrb.js"),require("./Address-5znFAhQw.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");var I=/*#__PURE__*/j(c);const q=/*#__PURE__*/u.styled.span.withConfig({displayName:"CircleBackground",componentId:"sc-c9f33cd-0"})(["&&{width:82px;height:82px;border-width:4px;border-style:solid;border-color:",";background-color:",";border-radius:50%;display:inline-block;box-sizing:border-box;}"],(e=>e.color??"var(--privy-color-accent)"),(e=>e.color??"var(--privy-color-accent)")),T=({instruction:t,fees:n,transactionInfo:r,solPrice:a,chain:i})=>/*#__PURE__*/e.jsxs(f.Rows,{children:[r?.action&&/*#__PURE__*/e.jsxs(f.Row,{children:[/*#__PURE__*/e.jsx(g.LabelSm,{children:"Action"}),/*#__PURE__*/e.jsx(g.Value,{children:r.action})]}),null!=t?.total&&/*#__PURE__*/e.jsxs(f.Row,{children:[/*#__PURE__*/e.jsx(g.LabelSm,{children:"Total"}),/*#__PURE__*/e.jsx(g.Value,{children:t.total})]}),!t?.total&&null!=t?.amount&&/*#__PURE__*/e.jsxs(f.Row,{children:[/*#__PURE__*/e.jsx(g.LabelSm,{children:"Total"}),/*#__PURE__*/e.jsx(g.Value,{children:/*#__PURE__*/e.jsx(h.SolanaPriceDisplay,{quantities:[t.amount,n],tokenPrice:a})})]}),/*#__PURE__*/e.jsxs(f.Row,{children:[/*#__PURE__*/e.jsx(g.LabelSm,{children:"Fees"}),/*#__PURE__*/e.jsx(g.Value,{children:/*#__PURE__*/e.jsx(h.SolanaPriceDisplay,{quantities:[n],tokenPrice:a})})]}),t?.to&&/*#__PURE__*/e.jsxs(f.Row,{children:[/*#__PURE__*/e.jsx(g.LabelSm,{children:"To"}),/*#__PURE__*/e.jsx(g.Value,{children:/*#__PURE__*/e.jsx(h.WalletLink,{walletAddress:t.to,chainId:i,chainType:"solana"})})]})]}),x=({fees:t,onClose:n,receiptHeader:r,receiptDescription:a,transactionInfo:i,solPrice:o,signOnly:s,instruction:c,chain:u})=>/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(p.ModalHeader,{onClose:n}),/*#__PURE__*/e.jsx(y.e,{style:{marginBottom:"16px"},children:/*#__PURE__*/e.jsxs("div",{children:[/*#__PURE__*/e.jsx(q,{color:"var(--privy-color-success-light)"}),/*#__PURE__*/e.jsx(I.default,{height:38,width:38,strokeWidth:2,stroke:"var(--privy-color-success)"})]})}),/*#__PURE__*/e.jsx(m.CenteredScreenHeader,{title:r??`Transaction ${s?"signed":"complete"}!`,description:a??"You're all set."}),/*#__PURE__*/e.jsx(T,{solPrice:o,instruction:c,fees:t,transactionInfo:i,chain:u}),/*#__PURE__*/e.jsx(w.Grow,{}),/*#__PURE__*/e.jsx(C,{loading:!1,onClick:n,children:"Close"}),/*#__PURE__*/e.jsx(d.RefactorSpacerBottom,{}),/*#__PURE__*/e.jsx(p.BlobbyFooter,{})]});let C=/*#__PURE__*/u.styled(l.PrimaryButton).withConfig({displayName:"SubmitButton",componentId:"sc-3cb7ee42-0"})(["&&{margin-top:24px;}transition:color 350ms ease,background-color 350ms ease;"]);async function O(e,t){try{return await e}catch{return t}}function _(e){switch(e){case"solana:mainnet":return"mainnet-beta";case"solana:devnet":return"devnet";case"solana:testnet":return"testnet"}}async function E({privyClient:e,chain:t,mint:n}){let r=v.DEFAULT_TOKENS_DATA[t];if(!r[n]){let a=await e.getSplTokenMetadata({mintAddress:n,cluster:_(t)});a&&(r[n]={address:n,symbol:a.symbol,decimals:a.decimals})}return r[n]}async function P({tx:e,solanaClient:t,privyClient:n,checkFunds:r}){let a=A.getCompiledTransactionMessageDecoder().decode(b.getTransactionMessageBytes(e)),i=a.staticAccounts[0]??"",o=await b.fetchTransactionEstimatedFees({solanaClient:t,tx:e}),s=r?await O(b.simulateTransaction({solanaClient:t,tx:e})):void 0,c=s?.hasFunds??!0,u={},l=[],d=await async function({solanaClient:e,message:t}){if(!("addressTableLookups"in t)||!t.addressTableLookups)return[...t.staticAccounts];let n=t.addressTableLookups.map((e=>e.lookupTableAddress)),r=await A.fetchAddressesForLookupTables(n,e.rpc),a=n.map(((e,n)=>[...t.addressTableLookups[n]?.writableIndexes.map((t=>{let a=r[e]?.[t];if(a)return{key:a,isWritable:!0,altIdx:n}}))??[],...t.addressTableLookups[n]?.readonlyIndexes.map((t=>{let a=r[e]?.[t];if(a)return{key:a,isWritable:!1,altIdx:n}}))??[]])).flat().filter((e=>!!e)).sort(((e,t)=>e.isWritable!==t.isWritable?e.isWritable?-1:1:e.altIdx-t.altIdx)).map((({key:e})=>e));return[...t.staticAccounts,...a]}({solanaClient:t,message:a});for(let e of a.instructions){let r=a.staticAccounts[e.programAddressIndex]||"";if(r!==v.TOKEN_PROGRAM_ID&&r!==v.TOKEN_2022_PROGRAM_ID)if(r!==v.SYSTEM_PROGRAM_ID){if(r===v.ASSOCIATED_TOKEN_PROGRAM_ID){let t=await O(function(e,t,n){let[r,a,i,o]=e.accountIndices?.map((e=>t[e]))??[];return{type:"ata-creation",program:n,payer:r,ata:a,owner:i,mint:o}}(e,d,r));if(!t){l.push({type:"unknown",program:r,discriminator:e.data?.[0]});continue}if(l.push(t),t.ata&&t.owner&&t.mint){u[t.ata]={owner:t.owner,mint:t.mint};continue}}if(v.RAYDIUM_SWAP_PROGRAM_IDS.includes(r)){let a=await O($(e,d,t,n,r));if(!a){l.push({type:"unknown",program:r,discriminator:e.data?.[0]});continue}l.push(a)}else if(v.JUPITER_SWAP_PROGRAM_IDS.includes(r)){let a=await O(F(e,d,t,n,r));if(!a){l.push({type:"unknown",program:r,discriminator:e.data?.[0]});continue}l.push(a)}else l.push({type:"unknown",program:r,discriminator:e.data?.[0]})}else{let t=await O(M(e,d));if(!t){l.push({type:"unknown",program:r,discriminator:e.data?.[0]});continue}l.push(t)}else{let a=await O(R(e,d,t,n,u,r));if(!a){l.push({type:"unknown",program:r,discriminator:e.data?.[0]});continue}l.push(a),"spl-transfer"===a.type&&(a.fromAta&&a.fromAccount&&a.token.address&&(u[a.fromAta]??={owner:a.fromAccount,mint:a.token.address}),a.toAta&&a.toAccount&&a.token.address&&(u[a.toAta]??={owner:a.toAccount,mint:a.token.address}))}}return{spender:i,fee:o,instructions:l,hasFunds:!!c}}function L(e,t=0){try{return function(e,t=0){let n=0n;for(let r=0;r<8;r++)n|=BigInt(e[t+r])<<BigInt(8*r);return n}(e,t)}catch{}try{return e.readBigInt64LE(t)}catch{}let n=b.bufferFrom(e);try{return((e,t=0)=>{let n=e[t],r=e[t+7];if(!n||!r)throw Error(`Buffer offset out of range: first: ${n}, last: ${r}.`);return(BigInt(e[t+4]+256*e[t+5]+65536*e[t+6]+(r<<24))<<32n)+BigInt(n+256*e[++t]+65536*e[++t]+16777216*e[++t])})(n)}catch{}try{return n.subarray(t).readBigInt64LE()}catch{}try{return n.readBigInt64LE(t)}catch{}return 0n}async function R(e,t,n,r,a,i){let o=e.data?.[0],s=e.accountIndices?.map((e=>t[e]))??[];if(1===o){let[e,t,n]=s;return{type:"spl-init-account",program:i,account:e,mint:t,owner:n}}if(3===o){let t,o,[c,u,l]=s,d="",p=u?a[u]:void 0;if(p)t=p.owner,d=p.mint;else if(u){let e=await n.rpc.getAccountInfo(u,{commitment:"confirmed",encoding:"jsonParsed"}).send(),r=e.value?.data;t=r?.parsed?.info?.owner,d=r?.parsed?.info?.mint??"",o=r?.parsed?.info?.tokenAmount?.decimals}if(!d&&c){let e=await n.rpc.getAccountInfo(c,{commitment:"confirmed",encoding:"jsonParsed"}).send(),t=e.value?.data;d=t?.parsed?.info?.mint??""}let m=await E({privyClient:r,chain:n.chain,mint:d}),f=m?.symbol??"";return o??=m?.decimals??9,{type:"spl-transfer",program:i,fromAta:c,fromAccount:l,toAta:u,toAccount:t,value:L(e.data,1),token:{symbol:f,decimals:o,address:d}}}if(9===o){let[e,t,n]=s;return{type:"spl-close-account",program:i,source:e,destination:t,owner:n}}if(17===o)return{type:"spl-sync-native",program:i};throw Error(`Token program instruction type ${o} not supported`)}async function M(e,t){let n=e.data?.[0],r=e.accountIndices?.map((e=>t[e]))??[];if(0===n){let[,t]=r;return{type:"create-account",program:v.SYSTEM_PROGRAM_ID,account:t?.toString(),value:L(e.data,4),withSeed:!1}}if(2===n){let[t,n]=r;return{type:"sol-transfer",program:v.SYSTEM_PROGRAM_ID,fromAccount:t,toAccount:n,token:{symbol:"SOL",decimals:9},value:L(e.data,4),withSeed:!1}}if(3===n){let[,t]=r;return{type:"create-account",program:v.SYSTEM_PROGRAM_ID,account:t,withSeed:!0,value:L(e.data.slice(e.data.length-32-8-8))}}if(11===n){let[t,n]=r;return{type:"sol-transfer",program:v.SYSTEM_PROGRAM_ID,fromAccount:t,toAccount:n,value:L(e.data,4),token:{symbol:"SOL",decimals:9},withSeed:!0}}throw Error(`System program instruction type ${n} not supported`)}async function $(e,t,n,r,a){let i=e.accountIndices?.map((e=>t[e]))??[],o=e.data?.[0];if(143===o){let t=i[10],o=i[11];return{type:"raydium-swap-base-input",program:a,mintIn:t,mintOut:o,tokenIn:t?await E({privyClient:r,chain:n.chain,mint:t}):void 0,tokenOut:o?await E({privyClient:r,chain:n.chain,mint:o}):void 0,amountIn:L(e.data,8),minimumAmountOut:L(e.data,16)}}if(55===o){let t=i[10],o=i[11];return{type:"raydium-swap-base-output",program:a,mintIn:t,mintOut:o,tokenIn:t?await E({privyClient:r,chain:n.chain,mint:t}):void 0,tokenOut:o?await E({privyClient:r,chain:n.chain,mint:o}):void 0,maxAmountIn:L(e.data,8),amountOut:L(e.data,16)}}throw Error(`Raydium swap program instruction type ${o} not supported`)}async function F(e,t,n,r,a){let i=e.data?.[0],o=e.accountIndices?.map((e=>t[e]))??[];if([208,51,239,151,123,43,237,92].includes(i)){let t=o[5],i=o[6];return{type:"jupiter-swap-exact-out-route",program:a,mintIn:t,mintOut:i,tokenIn:t?await E({privyClient:r,chain:n.chain,mint:t}):void 0,tokenOut:i?await E({privyClient:r,chain:n.chain,mint:i}):void 0,outAmount:L(e.data,e.data.length-1-2-8-8),quotedInAmount:L(e.data,e.data.length-1-2-8)}}if([176,209,105,168,154,125,69,62].includes(i)){let t=o[7],i=o[8];return{type:"jupiter-swap-exact-out-route",program:a,mintIn:t,mintOut:i,tokenIn:t?await E({privyClient:r,chain:n.chain,mint:t}):void 0,tokenOut:i?await E({privyClient:r,chain:n.chain,mint:i}):void 0,outAmount:L(e.data,e.data.length-1-2-8-8),quotedInAmount:L(e.data,e.data.length-1-2-8)}}if([193,32,155,51,65,214,156,129].includes(i)){let t=o[7],i=o[8];return{type:"jupiter-swap-shared-accounts-route",program:a,mintIn:t,mintOut:i,tokenIn:t?await E({privyClient:r,chain:n.chain,mint:t}):void 0,tokenOut:i?await E({privyClient:r,chain:n.chain,mint:i}):void 0,inAmount:L(e.data,e.data.length-1-2-8-8),quotedOutAmount:L(e.data,e.data.length-1-2-8)}}throw[62,198,214,193,213,159,108,210].includes(i)&&console.warn("Jupiter swap program instruction 'claim' not implemented"),[116,206,27,191,166,19,0,73].includes(i)&&console.warn("Jupiter swap program instruction 'claim_token' not implemented"),[26,74,236,151,104,64,183,249].includes(i)&&console.warn("Jupiter swap program instruction 'close_token' not implemented"),[229,194,212,172,8,10,134,147].includes(i)&&console.warn("Jupiter swap program instruction 'create_open_orders' not implemented"),[28,226,32,148,188,136,113,171].includes(i)&&console.warn("Jupiter swap program instruction 'create_program_open_orders' not implemented"),[232,242,197,253,240,143,129,52].includes(i)&&console.warn("Jupiter swap program instruction 'create_token_ledger' not implemented"),[147,241,123,100,244,132,174,118].includes(i)&&console.warn("Jupiter swap program instruction 'create_token_account' not implemented"),[229,23,203,151,122,227,173,42].includes(i)&&console.warn("Jupiter swap program instruction 'route' not implemented"),[150,86,71,116,167,93,14,104].includes(i)&&console.warn("Jupiter swap program instruction 'route_with_token_ledger' not implemented"),[228,85,185,112,78,79,77,2].includes(i)&&console.warn("Jupiter swap program instruction 'set_token_ledger' not implemented"),[230,121,143,80,119,159,106,170].includes(i)&&console.warn("Jupiter swap program instruction 'shared_accounts_route_with_token_ledger' not implemented"),Error(`Jupiter swap program instruction type ${i} not supported`)}const D={component:()=>{let{data:c,onUserCloseViaDialogOrKeybindRef:u,setModalData:l,navigate:d}=r.usePrivyModal(),{client:p,closePrivyModal:m,walletProxy:f,showFiatPrices:g}=i.usePrivyInternal(),h=a.useAppConfig(),{user:y}=r.usePrivyContext(),w=b.useSolanaRpcClient()(c?.standardSignAndSendTransaction?.chain??"solana:mainnet"),[j,I]=t.useState(c?.standardSignAndSendTransaction?.transaction),[q,T]=t.useState(),[C,O]=t.useState(),[_,E]=t.useState({value:0n,isLoading:!1}),[L,R]=t.useState(!1),[M,$]=t.useState({}),[F,D]=t.useState(),B=c?.standardSignAndSendTransaction?.account,W=!!c?.standardSignAndSendTransaction?.signOnly,J=B?.imported?r.getImportedPrivySolanaWallets(y).find((e=>e.address===B.address)):r.getPrivyPrimaryWallet(y),{solPrice:G,isSolPriceLoading:U}=o.useGetSolPrice({enabled:g}),V=t.useMemo((()=>{if(!q)return;let e=q.spender,t=k.getNativeCurrencyFromLamports(q.fee),r=k.getNativeCurrencyFromLamports(_.value,3,!0),a=q.instructions.filter((e=>["sol-transfer","spl-transfer","raydium-swap-base-input","raydium-swap-base-output","jupiter-swap-shared-accounts-route","jupiter-swap-exact-out-route"].includes(e.type))),i=a.at(0);if(!i||a.length>1)return{fee:t,spender:e,balance:r};if("sol-transfer"===i.type)return{fee:t,spender:e,balance:r,total:k.getNativeCurrencyFromLamports(i.value)};if("spl-transfer"===i.type)return{fee:t,spender:e,balance:r,total:`${n.formatTokenAmount({amount:i.value,decimals:i.token.decimals})} ${i.token.symbol}`};if("raydium-swap-base-input"===i.type&&i.tokenIn&&i.tokenOut){return{fee:t,spender:e,balance:r,swap:`${`${n.formatTokenAmount({amount:i.amountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${n.formatTokenAmount({amount:i.minimumAmountOut,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("raydium-swap-base-output"===i.type&&i.tokenIn&&i.tokenOut){return{fee:t,spender:e,balance:r,swap:`${`${n.formatTokenAmount({amount:i.maxAmountIn,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${n.formatTokenAmount({amount:i.amountOut,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("jupiter-swap-shared-accounts-route"===i.type&&i.tokenIn&&i.tokenOut){return{fee:t,spender:e,balance:r,swap:`${`${n.formatTokenAmount({amount:i.inAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${n.formatTokenAmount({amount:i.quotedOutAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}if("jupiter-swap-exact-out-route"===i.type&&i.tokenIn&&i.tokenOut){return{fee:t,spender:e,balance:r,swap:`${`${n.formatTokenAmount({amount:i.quotedInAmount,decimals:i.tokenIn.decimals})} ${i.tokenIn.symbol}`} → ${`${n.formatTokenAmount({amount:i.outAmount,decimals:i.tokenOut.decimals})} ${i.tokenOut.symbol}`}`}}return{fee:t,spender:e,balance:r}}),[q,B?.address,_]),N=t.useMemo((()=>{let e;if(!q||!g||!G||U)return;function t(...e){return v.getFormattedUsdFromLamports(e.reduce(((e,t)=>e+t),0n),G??0)}B?.address===q.spender&&(e=t(q.fee));let r=t(_.value),a=q.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)).at(0);return!a||q.instructions.length>1?{fee:e,balance:r}:"sol-transfer"===a.type?{fee:e,balance:r,total:t(a.value,B?.address===q.spender?q.fee:0n)}:"spl-transfer"===a.type?{fee:e,balance:r,total:`${n.formatTokenAmount({amount:a.value,decimals:a.token.decimals})} ${a.token.symbol}`}:{fee:e,balance:r}}),[q,g,G,U,B?.address,_]);if(t.useEffect((()=>{!async function(){if(j&&p)try{O(void 0);let e=await P({tx:j,solanaClient:w,privyClient:p,checkFunds:!W});T(e)}catch(e){console.error("Failed to prepare transaction",e),O(e)}}()}),[j,w,p,W]),t.useEffect((()=>{(async function(){if(!B)return;E({value:_.value,isLoading:!0});let{value:e}=await w.rpc.getBalance(B.address,{commitment:"confirmed"}).send();E({value:e??0n,isLoading:!1})})().catch(console.error)}),[q]),!j||!c?.standardSignAndSendTransaction||!B){let t=Error("Invalid transaction request");/*#__PURE__*/return e.jsx(s.ErrorScreenView,{error:t,allowlistConfig:h.allowlistConfig,onRetry:()=>{c?.standardSignAndSendTransaction?.onFailure(t),m({shouldCallAuthOnSuccess:!1})}})}let H=()=>{if(!L)return M.signature||M.signedTransaction?c?.standardSignAndSendTransaction?.onSuccess({signature:M.signature,signedTransaction:M.signedTransaction}):c?.standardSignAndSendTransaction?.onFailure(F??C??Error("User exited the modal before submitting the transaction")),m({shouldCallAuthOnSuccess:!1})};u.current=H;let Y=c.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.contractInfo?.imgUrl?/*#__PURE__*/e.jsx("img",{src:c.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgUrl,alt:c.standardSignAndSendTransaction.uiOptions.transactionInfo.contractInfo.imgAltText}):null,K=!!(c.funding&&c.funding.supportedOptions.length>0),z=!q?.hasFunds&&K;if(M.signature||M.signedTransaction){let t=q?.instructions.filter((e=>"sol-transfer"===e.type||"spl-transfer"===e.type)),n=1===t?.length?t?.at(0):void 0;/*#__PURE__*/return e.jsx(x,{fees:M.fees??0n,onClose:H,transactionInfo:c.standardSignAndSendTransaction?.uiOptions.transactionInfo,solPrice:G,receiptHeader:c.standardSignAndSendTransaction?.uiOptions.successHeader,receiptDescription:c.standardSignAndSendTransaction?.uiOptions.successDescription,chain:w.chain,signOnly:W,instruction:"sol-transfer"===n?.type?{to:n.toAccount,amount:n.value}:{to:n?.toAccount||n?.toAta,total:V?.total}})}return F?/*#__PURE__*/e.jsx(S.TransactionErrorView,{transactionError:F,chainId:w.chain,onClose:H,chainType:"solana",onRetry:async()=>{D(void 0);let{value:e}=await w.rpc.getLatestBlockhash().send();var t,n;I((t=j,n=e,A.pipe(A.getCompiledTransactionMessageDecoder().decode(b.getTransactionMessageBytes(t)),(e=>A.decompileTransactionMessage(e)),(e=>A.setTransactionMessageLifetimeUsingBlockhash(n,e)),(e=>A.compileTransaction(e)),(e=>new Uint8Array(A.getTransactionEncoder().encode(e))))))}}):/*#__PURE__*/e.jsx(S.SendSolanaTransactionScreenView,{img:Y,title:c.standardSignAndSendTransaction?.uiOptions?.transactionInfo?.title||"Confirm transaction",subtitle:c.standardSignAndSendTransaction?.uiOptions?.description||`${h.name} wants your permission to approve the following transaction.`,cta:z?"Add funds":c.standardSignAndSendTransaction?.uiOptions?.buttonText||"Approve",instructions:q?.instructions??[],network:"solana:mainnet"==w.chain?"Solana":w.chain.replace("solana:",""),blockExplorerUrl:w.blockExplorerUrl,total:g?N?.total:V?.total,fee:g?N?.fee:V?.fee,balance:g?N?.balance:V?.balance,swap:V?.swap,transactingWalletAddress:B.address,disabled:!q?.hasFunds&&!K,isSubmitting:L,isPreparing:!q||_.isLoading,isTokenPriceLoading:g&&U,isMissingFunds:!q?.hasFunds,submitError:F??void 0,isSponsored:!!c.standardSignAndSendTransaction?.isSponsored,parseError:C,onClick:z?async()=>{if(!B)return;if(!K)throw Error("Funding wallet is not enabled");let e="FundingMethodSelectionScreen";l({...c,funding:{...c.funding,methodScreen:e},solanaFundingData:c?.solanaFundingData}),d(e)}:async()=>{try{if(R(!0),L||!B||!f||!y||!J)return;let e=await c.standardSignAndSendTransaction.onConfirm(j);if("signature"in e){let t=await async function({solanaClient:e,signature:t}){let n=A.getBase58Decoder().decode(t),r=await e.rpc.getTransaction(n,{maxSupportedTransactionVersion:0,commitment:"confirmed",encoding:"base64"}).send().catch((()=>null));return r?{fee:r.meta?.fee??0n}:null}({solanaClient:w,signature:e.signature});return void $({...e,fees:t?.fee})}$(e)}catch(e){console.warn({transaction:j,error:e}),D(e)}finally{R(!1)}},onClose:H})}};exports.StandardSignAndSendTransactionScreen=D,exports.default=D;