Fix new wallets getting created
This commit is contained in:
parent
ad636e5847
commit
6ad37d0fa5
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user