Fix new wallets getting created
This commit is contained in:
parent
ad636e5847
commit
6ad37d0fa5
@ -10,13 +10,12 @@ const useGetOrCreateAccounts = (onWalletCreated?: () => void) => {
|
||||
|
||||
useEffect(() => {
|
||||
const handleCreateAccounts = async (event: MessageEvent) => {
|
||||
if (event.data.type !== 'REQUEST_CREATE_OR_GET_ACCOUNTS') {
|
||||
return;
|
||||
}
|
||||
if (event.data.type !== 'REQUEST_CREATE_OR_GET_ACCOUNTS') return;
|
||||
|
||||
let accountsData = await getAccountsData(event.data.chainId);
|
||||
|
||||
if (accountsData.length === 0) {
|
||||
console.log("Accounts not found, creating wallet...");
|
||||
await createWallet(networksData);
|
||||
|
||||
// Re-fetch newly created accounts
|
||||
@ -26,10 +25,7 @@ const useGetOrCreateAccounts = (onWalletCreated?: () => void) => {
|
||||
|
||||
// Notify Android that accounts are ready
|
||||
if (window.Android?.onAccountsReady) {
|
||||
console.log('useGetOrCreateAccounts: Calling onAccountsReady');
|
||||
window.Android.onAccountsReady();
|
||||
} else {
|
||||
console.log('useGetOrCreateAccounts: Android bridge not available');
|
||||
}
|
||||
|
||||
sendMessage(
|
||||
@ -41,34 +37,26 @@ const useGetOrCreateAccounts = (onWalletCreated?: () => void) => {
|
||||
|
||||
const autoCreateAccounts = async () => {
|
||||
const defaultChainId = networksData[0]?.chainId;
|
||||
|
||||
if (!defaultChainId) {
|
||||
console.log('useGetOrCreateAccounts: No default chainId found');
|
||||
return;
|
||||
}
|
||||
if (!defaultChainId) return;
|
||||
|
||||
let accountsData = await getAccountsData(defaultChainId);
|
||||
|
||||
if (accountsData.length === 0) {
|
||||
console.log("Auto-creating wallet...");
|
||||
await createWallet(networksData);
|
||||
accountsData = await getAccountsData(defaultChainId);
|
||||
onWalletCreated?.();
|
||||
}
|
||||
|
||||
// Notify Android that accounts are ready
|
||||
console.log('useGetOrCreateAccounts: Notifying Android that accounts are ready');
|
||||
if (window.Android?.onAccountsReady) {
|
||||
console.log('useGetOrCreateAccounts: Calling onAccountsReady');
|
||||
window.Android.onAccountsReady();
|
||||
} else {
|
||||
console.log('useGetOrCreateAccounts: Android bridge not available');
|
||||
}
|
||||
};
|
||||
|
||||
window.addEventListener('message', handleCreateAccounts);
|
||||
|
||||
const isAndroidWebView = !!(window.Android);
|
||||
|
||||
if (isAndroidWebView) {
|
||||
autoCreateAccounts();
|
||||
}
|
||||
|
@ -80,20 +80,6 @@ const HomeScreen = () => {
|
||||
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) => {
|
||||
try {
|
||||
const mnemonic = await createWallet(networksData, recoveryPhrase);
|
||||
|
Loading…
Reference in New Issue
Block a user