-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: align extension storage 'set' and 'observeAll' with pouchdb storage behavior #1597
Conversation
Allure Report
processReports: ✅ test report for a657b3a4
|
aaf9d67
to
953d550
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great detective work @mkazlauskas 🧙♂️
…age behavior deleting a wallet does: 1. delete it from repository 2. check remaining wallets, activate if some wallet exists there was a bug where step 2. would find the wallet that was just deleted and try to activate it, because extension storage 'observeAll' emits an slightly later
set()/get() applies toSerializableObject/fromSerializableObject respectively storageChange$ did not, resulting in emitting slightly different objects that were not processed by fromSerializableObject util this broke disabling accounts that were just enabled and possibly some other functionality
05db09f
to
66a958b
Compare
in order to recover from wallet activation bugs for example, a crash after wallet deactivation but before activating another wallet fix: do not explicitly deactivate wallet when switching to another explicitly deactivating will trigger a recovery mechanism that will activate any wallet
66a958b
to
a657b3a
Compare
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work @mkazlauskas
…age behavior (#1597) * fix: align extension storage 'set' and 'observeAll' with pouchdb storage behavior deleting a wallet does: 1. delete it from repository 2. check remaining wallets, activate if some wallet exists there was a bug where step 2. would find the wallet that was just deleted and try to activate it, because extension storage 'observeAll' emits an slightly later * fix: apply fromSerializableObject to objects emitted from storageChange$ set()/get() applies toSerializableObject/fromSerializableObject respectively storageChange$ did not, resulting in emitting slightly different objects that were not processed by fromSerializableObject util this broke disabling accounts that were just enabled and possibly some other functionality * fix: activate any wallet when none is active in order to recover from wallet activation bugs for example, a crash after wallet deactivation but before activating another wallet fix: do not explicitly deactivate wallet when switching to another explicitly deactivating will trigger a recovery mechanism that will activate any wallet
Checklist
Proposed solution
LW-11986
deleting a wallet does:
there was a bug where step 2. would find the wallet that was just deleted and try to activate it, because extension storage 'observeAll' emits slightly later
953d550
LW-11993
set()/get() applies toSerializableObject/fromSerializableObject respectively
storageChange$ did not, resulting in emitting slightly different objects
that were not processed by fromSerializableObject util this broke disabling accounts that were just enabled
and possibly some other functionality
487502c