UNPKG

@privy-io/react-auth

Version:

React client for the Privy Auth API

2 lines (1 loc) 7.18 kB
"use strict";var e=require("react"),r=require("./usePrivy-dGz-b0SX.js"),n=require("./SignRequestScreen-cAAtS6nl.js"),t=require("./internal-context-DNWjSiYq.js"),o=require("./privy-context-NMR-GjnL.js"),i=require("@solana/kit"),a=require("./use-export-wallet-9ypqLaaB.js"),s=require("@scure/base"),c=require("@solana-program/memo"),u=require("@wallet-standard/app");require("./paths-B00ZrFQm.js"),require("ofetch"),require("@privy-io/js-sdk-core"),require("react/jsx-runtime"),require("lucide-react"),require("styled-components"),require("@privy-io/urls"),require("viem"),require("tinycolor2"),require("@heroicons/react/24/outline/UserCircleIcon"),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/20/solid/CheckIcon"),require("@heroicons/react/24/outline/EnvelopeIcon"),require("@heroicons/react/24/outline/PhoneIcon"),require("react-device-detect"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("@heroicons/react/24/outline/WalletIcon"),require("@heroicons/react/24/outline/ExclamationCircleIcon"),require("@heroicons/react/24/outline/Square2StackIcon"),require("fast-password-entropy"),require("secure-password-utilities"),require("secure-password-utilities/wordlists"),require("@heroicons/react/24/outline/LockClosedIcon"),require("@heroicons/react/24/outline/PencilSquareIcon"),require("jose"),require("@heroicons/react/24/outline/ArrowPathIcon"),require("@heroicons/react/24/outline/EyeIcon"),require("@heroicons/react/24/outline/EyeSlashIcon"),require("@heroicons/react/24/outline/KeyIcon"),require("@heroicons/react/24/solid/CheckCircleIcon"),require("@heroicons/react/24/outline/ArrowDownTrayIcon"),require("@heroicons/react/24/outline/ClipboardDocumentCheckIcon"),require("@heroicons/react/24/outline/DocumentDuplicateIcon"),require("@heroicons/react/24/solid/XCircleIcon"),require("@heroicons/react/24/outline/ShieldCheckIcon"),require("@heroicons/react/24/outline"),require("@tanstack/react-virtual"),require("@heroicons/react/24/outline/CheckIcon"),require("qrcode"),require("viem/utils"),require("eventemitter3"),require("zustand"),require("@walletconnect/ethereum-provider"),require("@heroicons/react/24/outline/CreditCardIcon"),require("@heroicons/react/24/outline/QrCodeIcon"),require("@heroicons/react/24/solid/ArrowsRightLeftIcon"),require("@heroicons/react/24/outline/InformationCircleIcon"),require("@heroicons/react/24/outline/ClipboardDocumentIcon"),require("@heroicons/react/24/outline/ChevronDownIcon"),require("@privy-io/ethereum"),require("@heroicons/react/24/outline/CheckCircleIcon"),require("@heroicons/react/24/outline/GlobeAltIcon"),require("@headlessui/react"),require("@heroicons/react/24/outline/FingerPrintIcon"),require("./use-sign-with-user-signer-Q0_LRVtz.js"),require("@solana-program/system"),require("@solana-program/token");var l={id:n.SOLANA_FUNDING_PLUGIN_ID,getSolanaRpcClient:a.getSolanaRpcClient,createTransactionFromRelayQuote:async function({solanaClient:e,quote:r,source:n}){let t=r.steps[0]?.items?.[0];if(!t)throw Error("Invalid quote");let o=t.data.instructions.map((({keys:e,programId:r,data:n})=>({accounts:e.map((({pubkey:e,isSigner:r,isWritable:n})=>({address:e,role:r&&n?3:r&&!n?2:!r&&n?1:0}))),programAddress:r,data:new Uint8Array(Buffer.from(n,"hex"))}))),{value:a}=await e.rpc.getLatestBlockhash().send(),s=i.pipe(i.createTransactionMessage({version:0}),(e=>i.setTransactionMessageFeePayerSigner({address:n},e)),(e=>i.setTransactionMessageLifetimeUsingBlockhash(a,e)),(e=>i.appendTransactionMessageInstructions(o,e)),(e=>i.compileTransaction(e)));return new Uint8Array(i.getTransactionEncoder().encode(s))},simulateTransaction:a.simulateTransaction,getAddressFromBuffer:a.getAddressFromBuffer,fetchTransactionEstimatedFees:a.fetchTransactionEstimatedFees};var d={id:n.SOLANA_LEDGER_PLUGIN_ID,createSiwsMemoTransaction:({address:e,nonce:r})=>{let t=c.getAddMemoInstruction({memo:n.prepareSiwsMessageWithNonce({address:i.address(e),nonce:r})});return i.pipe(i.createTransactionMessage({version:"legacy"}),(r=>i.setTransactionMessageFeePayer(i.address(e),r)),(e=>i.setTransactionMessageLifetimeUsingBlockhash({blockhash:i.blockhash("GfVcyD5fWFJ6hRm8bsy7CoVPsLSoJhtJKRJYk8T2VVFN"),lastValidBlockHeight:0n},e)),(e=>i.appendTransactionMessageInstructions([t],e)),(e=>i.compileTransaction(e)),(e=>s.base64.encode(Uint8Array.from(i.getTransactionEncoder().encode(e)))))},getSignatureFromTransaction:(e,r)=>{let n=i.getTransactionDecoder().decode(e).signatures[r];if(!n)throw Error(`Missing transaction signature for address: ${r}`);return s.base64.encode(n)}};exports.SolanaAdapterConnector=n.SolanaWalletConnector,exports.useExportWallet=a.useExportWallet,exports.useFundWallet=a.useFundWallet,exports.useStandardWallets=a.useSolanaStandardWallets,exports.useWallets=a.useWallets,exports.toSolanaWalletConnectors=e=>{let r,{get:t,on:o}=u.getWallets(),i=e?.shouldAutoConnect??!0,a=new Map,s=[];function c(...e){e.forEach((e=>{!(e.features["privy:"]&&"isPrivyWallet"in e&&e.isPrivyWallet||a.has(e.name))&&e.chains.some((e=>"string"==typeof e&&e.startsWith("solana:")))&&a.set(e.name,e)})),s=Array.from(a.values()).map((e=>new n.SolanaWalletConnector(e,i))),r?.(s)}function l(...e){Array.from(a.values()).forEach((r=>!e.includes(r)&&a.delete(r.name))),s=Array.from(a.values()).map((e=>new n.SolanaWalletConnector(e,i))),r?.(s)}let d=[o("register",c),o("unregister",l)];return c(...t()),{_setOnConnectorsUpdated:e=>{r=e},onMount:()=>{d[0]||(d[0]=o("register",c)),d[1]||(d[1]=o("unregister",l))},onUnmount:()=>{let e=d.pop();for(;e;)e(),e=d.pop()},get:()=>s}},exports.useCreateWallet=function(){let{create:e}=r.useCreateWalletInternal();return{createWallet:async r=>{r&&"target"in r&&r&&(r=void 0);let{account:n}=await e({chainType:"solana",options:r});return{wallet:n}}}},exports.useImportWallet=()=>{let{user:i}=o.usePrivyContext(),{client:a,refreshSessionAndUser:s,initializeWalletProxy:c}=t.usePrivyInternal(),u=n.useEmitPrivyEvent(),l=n.useAppConfig();return{importWallet:e.useCallback((({privateKey:e,additionalSigners:n})=>r.importWallet({getAccessToken:()=>a.getAccessToken(),user:i,initializeWalletProxy:c,refreshSessionAndUser:s,emitPrivyEvent:u,appConfig:l},{privateKey:e,chainType:"solana",additionalSigners:n})),[i,a,s,c,u,l])}},exports.useSignAndSendTransaction=function(){return{signAndSendTransaction:async function(...e){let r=[];for(let n of e)r.push(await n.wallet.signAndSendTransaction({...n,chain:n.chain||"solana:mainnet"}));return 1===e.length?r[0]:[...r]}}},exports.useSignMessage=function(){return{signMessage:async function(...e){let r=[];for(let n of e)r.push(await n.wallet.signMessage({...n,options:n.options}));return 1===e.length?r[0]:[...r]}}},exports.useSignTransaction=function(){return{signTransaction:async function(...e){let r=[];for(let n of e)r.push(await n.wallet.signTransaction({...n,chain:n.chain||"solana:mainnet"}));return 1===e.length?r[0]:[...r]}}},exports.useSolanaFundingPlugin=()=>n.useRegisterPlugin(l),exports.useSolanaLedgerPlugin=()=>n.useRegisterPlugin(d);