Files
hash-wallet/lib/core
jwinterm 985cbf0064 fix(ios): recover wallet password across Keychain param changes; no crash
getWalletPassword force-unwrapped the secure-storage read, so a null iOS
Keychain result (item written by an older build under different Keychain
params, e.g. after a TestFlight update) hard-crashed the app and the wallet
showed "Corrupted seeds" — reported by a tester whose older Wownero and BTC
wallets broke on update.

Now it:
- falls back to the legacy readNoIOptions path (queries the OTHER iOS Keychain
  accessibility), which can AUTO-RECOVER such wallets without a seed restore;
- falls back to the #__<name>_bak__# backup password the Monero migration
  writes before re-encrypting;
- throws a catchable error instead of a null-check crash, so the loader can
  offer seed/restore recovery rather than the app dying.

Only changes behavior on the previously-crashing null path — strictly safer.

Not the file cipher (iOS is always Salsa20) nor the Monero migration
(Wownero/BTC don't run it): the wallet files are intact, only the Keychain
password was unreadable. flutter_secure_storage stays pinned (ca897a08) and the
accessibility stays first_unlock; those must not change without a migration
(see docs/internal-notes.md).
2026-08-03 14:48:29 -04:00
..
2022-10-12 13:09:57 -04:00
2022-03-09 14:43:18 +03:00
2026-03-11 04:26:57 +02:00
2022-10-12 13:09:57 -04:00