@web3auth/modal
Version:
Multi chain wallet aggregator for web3Auth
36 lines (33 loc) • 1.02 kB
JavaScript
import { WalletInitializationError } from '@web3auth/no-modal';
import { useState, useCallback } from 'react';
import { useSolanaWallet } from './useSolanaWallet.js';
const useSignMessage = () => {
const {
solanaWallet,
accounts
} = useSolanaWallet();
const [loading, setLoading] = useState(false);
const [error, setError] = useState(null);
const [data, setData] = useState(null);
const signMessage = useCallback(async (message, from) => {
setLoading(true);
setError(null);
try {
if (!solanaWallet) throw WalletInitializationError.notReady();
const signature = await solanaWallet.signMessage(message, from !== null && from !== void 0 ? from : accounts === null || accounts === void 0 ? void 0 : accounts[0]);
setData(signature);
return signature;
} catch (error) {
setError(error);
} finally {
setLoading(false);
}
}, [solanaWallet, accounts]);
return {
loading,
error,
data,
signMessage
};
};
export { useSignMessage };