Changeset View
Changeset View
Standalone View
Standalone View
web/cashtab/src/hooks/useWallet.js
Show First 20 Lines • Show All 737 Lines • ▼ Show 20 Lines | */ | ||||
// Convert all the token balance figures to big numbers | // Convert all the token balance figures to big numbers | ||||
const liveWalletState = loadStoredWallet(walletToActivate.state); | const liveWalletState = loadStoredWallet(walletToActivate.state); | ||||
walletToActivate.state = liveWalletState; | walletToActivate.state = liveWalletState; | ||||
} | } | ||||
return walletToActivate; | return walletToActivate; | ||||
}; | }; | ||||
const renameWallet = async (oldName, newName) => { | const renameSavedWallet = async (oldName, newName) => { | ||||
// Load savedWallets | // Load savedWallets | ||||
let savedWallets; | let savedWallets; | ||||
try { | try { | ||||
savedWallets = await localforage.getItem('savedWallets'); | savedWallets = await localforage.getItem('savedWallets'); | ||||
} catch (err) { | } catch (err) { | ||||
console.log( | console.log( | ||||
`Error in await localforage.getItem("savedWallets") in renameWallet`, | `Error in await localforage.getItem("savedWallets") in renameSavedWallet`, | ||||
); | ); | ||||
console.log(err); | console.log(err); | ||||
return false; | return false; | ||||
} | } | ||||
// Verify that no existing wallet has this name | // Verify that no existing wallet has this name | ||||
for (let i = 0; i < savedWallets.length; i += 1) { | for (let i = 0; i < savedWallets.length; i += 1) { | ||||
if (savedWallets[i].name === newName) { | if (savedWallets[i].name === newName) { | ||||
// return an error | // return an error | ||||
Show All 9 Lines | const renameSavedWallet = async (oldName, newName) => { | ||||
} | } | ||||
} | } | ||||
// resave savedWallets | // resave savedWallets | ||||
try { | try { | ||||
// Set walletName as the active wallet | // Set walletName as the active wallet | ||||
await localforage.setItem('savedWallets', savedWallets); | await localforage.setItem('savedWallets', savedWallets); | ||||
} catch (err) { | } catch (err) { | ||||
console.log( | console.log( | ||||
`Error in localforage.setItem("savedWallets", savedWallets) in renameWallet()`, | `Error in localforage.setItem("savedWallets", savedWallets) in renameSavedWallet()`, | ||||
); | |||||
return false; | |||||
} | |||||
return true; | |||||
}; | |||||
const renameActiveWallet = async (wallet, oldName, newName) => { | |||||
// Load savedWallets | |||||
let savedWallets; | |||||
try { | |||||
savedWallets = await localforage.getItem('savedWallets'); | |||||
} catch (err) { | |||||
console.log( | |||||
`Error in await localforage.getItem("savedWallets") in renameSavedWallet`, | |||||
); | |||||
console.log(err); | |||||
return false; | |||||
} | |||||
// Verify that no existing wallet has this name | |||||
for (let i = 0; i < savedWallets.length; i += 1) { | |||||
if (savedWallets[i].name === newName) { | |||||
// return an error | |||||
return false; | |||||
} | |||||
} | |||||
if (wallet.name === oldName) { | |||||
wallet.name = newName; | |||||
setWallet(wallet); | |||||
} | |||||
// change name of desired wallet | |||||
for (let i = 0; i < savedWallets.length; i += 1) { | |||||
if (savedWallets[i].name === oldName) { | |||||
// Replace the name of this entry with the new name | |||||
savedWallets[i].name = newName; | |||||
} | |||||
} | |||||
// resave savedWallets | |||||
try { | |||||
// Set walletName as the active wallet | |||||
await localforage.setItem('savedWallets', savedWallets); | |||||
await localforage.setItem('wallet', wallet); | |||||
} catch (err) { | |||||
console.log( | |||||
`Error in localforage.setItem("wallet", wallet) in renameActiveWallet()`, | |||||
); | ); | ||||
return false; | return false; | ||||
} | } | ||||
return true; | return true; | ||||
}; | }; | ||||
const deleteWallet = async walletToBeDeleted => { | const deleteWallet = async walletToBeDeleted => { | ||||
// delete a wallet | // delete a wallet | ||||
▲ Show 20 Lines • Show All 694 Lines • ▼ Show 20 Lines | return { | ||||
// If the wallet is missing state parameters in storage, wait for API info | // If the wallet is missing state parameters in storage, wait for API info | ||||
// This handles case of unmigrated legacy wallet | // This handles case of unmigrated legacy wallet | ||||
update({ | update({ | ||||
wallet: newWallet, | wallet: newWallet, | ||||
}).finally(() => setLoading(false)); | }).finally(() => setLoading(false)); | ||||
} | } | ||||
}, | }, | ||||
addNewSavedWallet, | addNewSavedWallet, | ||||
renameWallet, | renameSavedWallet, | ||||
renameActiveWallet, | |||||
deleteWallet, | deleteWallet, | ||||
}; | }; | ||||
}; | }; | ||||
export default useWallet; | export default useWallet; |