mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Add migration to remove seedWords
state (#6937)
The `seedWords` state was removed from the PreferencesController recently in #6920. That state hadn't been used in some time, and there was a long period during which `seedWords` was periodically scrubbed from the state, so it's highly unlikely that it still exists in state for most users. It's hard to guarantee that it _doesn't_ though, especially if a user hasn't opened MetaMask in a few months.
This commit is contained in:
parent
1b33d7fd4c
commit
bb87a0b92c
28
app/scripts/migrations/035.js
Normal file
28
app/scripts/migrations/035.js
Normal file
@ -0,0 +1,28 @@
|
||||
// next version number
|
||||
const version = 35
|
||||
|
||||
/*
|
||||
|
||||
Removes the deprecated 'seedWords' state
|
||||
|
||||
*/
|
||||
|
||||
const clone = require('clone')
|
||||
|
||||
module.exports = {
|
||||
version,
|
||||
|
||||
migrate: async function (originalVersionedData) {
|
||||
const versionedData = clone(originalVersionedData)
|
||||
versionedData.meta.version = version
|
||||
versionedData.data = transformState(versionedData.data)
|
||||
return versionedData
|
||||
},
|
||||
}
|
||||
|
||||
function transformState (state) {
|
||||
if (state.PreferencesController && state.PreferencesController.seedWords !== undefined) {
|
||||
delete state.PreferencesController.seedWords
|
||||
}
|
||||
return state
|
||||
}
|
96
test/unit/migrations/035-test.js
Normal file
96
test/unit/migrations/035-test.js
Normal file
@ -0,0 +1,96 @@
|
||||
const assert = require('assert')
|
||||
const migration35 = require('../../../app/scripts/migrations/035')
|
||||
|
||||
describe('migration #35', () => {
|
||||
it('should update the version metadata', (done) => {
|
||||
const oldStorage = {
|
||||
meta: {
|
||||
version: 34,
|
||||
},
|
||||
data: {},
|
||||
}
|
||||
|
||||
migration35.migrate(oldStorage)
|
||||
.then((newStorage) => {
|
||||
assert.deepEqual(newStorage.meta, {
|
||||
'version': 35,
|
||||
})
|
||||
done()
|
||||
})
|
||||
.catch(done)
|
||||
})
|
||||
|
||||
it('should delete seedWords', (done) => {
|
||||
const oldStorage = {
|
||||
meta: {},
|
||||
data: {
|
||||
PreferencesController: {
|
||||
seedWords: 'seed words',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
migration35.migrate(oldStorage)
|
||||
.then((newStorage) => {
|
||||
assert.deepEqual(newStorage.data.PreferencesController, {})
|
||||
done()
|
||||
})
|
||||
.catch(done)
|
||||
})
|
||||
|
||||
it('should delete falsy seedWords', (done) => {
|
||||
const oldStorage = {
|
||||
meta: {},
|
||||
data: {
|
||||
PreferencesController: {
|
||||
seedWords: '',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
migration35.migrate(oldStorage)
|
||||
.then((newStorage) => {
|
||||
assert.deepEqual(newStorage.data.PreferencesController, {})
|
||||
done()
|
||||
})
|
||||
.catch(done)
|
||||
})
|
||||
|
||||
it('should leave state without seedWords unchanged', (done) => {
|
||||
const oldStorage = {
|
||||
meta: {},
|
||||
data: {
|
||||
PreferencesController: {
|
||||
frequentRpcListDetail: [],
|
||||
currentAccountTab: 'history',
|
||||
accountTokens: {},
|
||||
assetImages: {},
|
||||
tokens: [],
|
||||
suggestedTokens: {},
|
||||
useBlockie: false,
|
||||
knownMethodData: {},
|
||||
participateInMetaMetrics: null,
|
||||
firstTimeFlowType: null,
|
||||
currentLocale: 'en',
|
||||
identities: {},
|
||||
lostIdentities: {},
|
||||
forgottenPassword: false,
|
||||
preferences: {
|
||||
useNativeCurrencyAsPrimaryCurrency: true,
|
||||
},
|
||||
completedOnboarding: false,
|
||||
migratedPrivacyMode: false,
|
||||
metaMetricsId: null,
|
||||
metaMetricsSendCount: 0,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
migration35.migrate(oldStorage)
|
||||
.then((newStorage) => {
|
||||
assert.deepEqual(newStorage.data, oldStorage.data)
|
||||
done()
|
||||
})
|
||||
.catch(done)
|
||||
})
|
||||
})
|
Loading…
Reference in New Issue
Block a user