UNPKG

@web3auth/no-modal

Version:
36 lines (33 loc) 1.02 kB
import { useState, useCallback } from 'react'; import { WalletInitializationError } from '../../../base/errors/index.js'; import { useSolanaWallet } from './useSolanaWallet.js'; import { walletSignTransaction } from '../../../base/wallet/solana.js'; const useSignTransaction = () => { const { solanaWallet } = useSolanaWallet(); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [data, setData] = useState(null); const signTransaction = useCallback(async transaction => { setLoading(true); setError(null); try { if (!solanaWallet) throw WalletInitializationError.notReady(); const signedTransaction = await walletSignTransaction(solanaWallet, transaction); setData(signedTransaction); return signedTransaction; } catch (err) { setError(err); } finally { setLoading(false); } }, [solanaWallet]); return { loading, error, data, signTransaction }; }; export { useSignTransaction };