Fix new wallets getting created

This commit is contained in:
AdityaSalunkhe21 2025-04-10 19:43:29 +05:30
parent ad636e5847
commit 6ad37d0fa5
2 changed files with 4 additions and 30 deletions

View File

@ -10,13 +10,12 @@ const useGetOrCreateAccounts = (onWalletCreated?: () => void) => {
useEffect(() => { useEffect(() => {
const handleCreateAccounts = async (event: MessageEvent) => { const handleCreateAccounts = async (event: MessageEvent) => {
if (event.data.type !== 'REQUEST_CREATE_OR_GET_ACCOUNTS') { if (event.data.type !== 'REQUEST_CREATE_OR_GET_ACCOUNTS') return;
return;
}
let accountsData = await getAccountsData(event.data.chainId); let accountsData = await getAccountsData(event.data.chainId);
if (accountsData.length === 0) { if (accountsData.length === 0) {
console.log("Accounts not found, creating wallet...");
await createWallet(networksData); await createWallet(networksData);
// Re-fetch newly created accounts // Re-fetch newly created accounts
@ -26,10 +25,7 @@ const useGetOrCreateAccounts = (onWalletCreated?: () => void) => {
// Notify Android that accounts are ready // Notify Android that accounts are ready
if (window.Android?.onAccountsReady) { if (window.Android?.onAccountsReady) {
console.log('useGetOrCreateAccounts: Calling onAccountsReady');
window.Android.onAccountsReady(); window.Android.onAccountsReady();
} else {
console.log('useGetOrCreateAccounts: Android bridge not available');
} }
sendMessage( sendMessage(
@ -41,34 +37,26 @@ const useGetOrCreateAccounts = (onWalletCreated?: () => void) => {
const autoCreateAccounts = async () => { const autoCreateAccounts = async () => {
const defaultChainId = networksData[0]?.chainId; const defaultChainId = networksData[0]?.chainId;
if (!defaultChainId) return;
if (!defaultChainId) {
console.log('useGetOrCreateAccounts: No default chainId found');
return;
}
let accountsData = await getAccountsData(defaultChainId); let accountsData = await getAccountsData(defaultChainId);
if (accountsData.length === 0) { if (accountsData.length === 0) {
console.log("Auto-creating wallet...");
await createWallet(networksData); await createWallet(networksData);
accountsData = await getAccountsData(defaultChainId); accountsData = await getAccountsData(defaultChainId);
onWalletCreated?.(); onWalletCreated?.();
} }
// Notify Android that accounts are ready // Notify Android that accounts are ready
console.log('useGetOrCreateAccounts: Notifying Android that accounts are ready');
if (window.Android?.onAccountsReady) { if (window.Android?.onAccountsReady) {
console.log('useGetOrCreateAccounts: Calling onAccountsReady');
window.Android.onAccountsReady(); window.Android.onAccountsReady();
} else {
console.log('useGetOrCreateAccounts: Android bridge not available');
} }
}; };
window.addEventListener('message', handleCreateAccounts); window.addEventListener('message', handleCreateAccounts);
const isAndroidWebView = !!(window.Android); const isAndroidWebView = !!(window.Android);
if (isAndroidWebView) { if (isAndroidWebView) {
autoCreateAccounts(); autoCreateAccounts();
} }

View File

@ -80,20 +80,6 @@ const HomeScreen = () => {
fetchAccounts(); fetchAccounts();
}, [networksData, setAccounts, selectedNetwork, fetchAccounts]); }, [networksData, setAccounts, selectedNetwork, fetchAccounts]);
useEffect(() => {
const initializeWallet = async () => {
if (!isWalletCreated && networksData.length > 0) {
const mnemonic = await createWallet(networksData);
if (mnemonic) {
await fetchAccounts();
setSelectedNetwork(networksData[0]);
}
}
};
initializeWallet();
}, [networksData, isWalletCreated, fetchAccounts, setSelectedNetwork]);
const importWalletHandler = async (recoveryPhrase: string) => { const importWalletHandler = async (recoveryPhrase: string) => {
try { try {
const mnemonic = await createWallet(networksData, recoveryPhrase); const mnemonic = await createWallet(networksData, recoveryPhrase);