// secure-storage.js - Secure Mnemonic Storage
//
// Uses OS keychain for secure mnemonic storage:
// - macOS: Keychain Access
// - Linux: libsecret (GNOME Keyring, KDE Wallet)
// - Windows: Credential Vault
import keytar from 'keytar'
const SERVICE_NAME = 'hyper-wallet'
const ACCOUNT_NAME = 'mnemonic'
/**
* Store mnemonic securely in OS keychain
* @param {String} mnemonic - BIP39 mnemonic phrase
*/
export async function storeMnemonic(mnemonic) {
await keytar.setPassword(SERVICE_NAME, ACCOUNT_NAME, mnemonic)
}
/**
* Retrieve mnemonic from OS keychain
* @returns {String|null} - Mnemonic or null if not found
*/
export async function loadMnemonic() {
return await keytar.getPassword(SERVICE_NAME, ACCOUNT_NAME)
}
/**
* Delete mnemonic from OS keychain
*/
export async function deleteMnemonic() {
await keytar.deletePassword(SERVICE_NAME, ACCOUNT_NAME)
}
/**
* Check if wallet is initialized (mnemonic exists in keychain)
* @returns {Boolean}
*/
export async function isInitialized() {
const mnemonic = await loadMnemonic()
return mnemonic !== null
}