parent
50af02e74b
commit
2d13fac476
@ -0,0 +1,40 @@ |
||||
const version = 26 |
||||
|
||||
/* |
||||
|
||||
This migration moves the identities stored in the KeyringController |
||||
into the PreferencesController |
||||
|
||||
*/ |
||||
|
||||
const clone = require('clone') |
||||
|
||||
module.exports = { |
||||
version, |
||||
migrate (originalVersionedData) { |
||||
const versionedData = clone(originalVersionedData) |
||||
versionedData.meta.version = version |
||||
try { |
||||
const state = versionedData.data |
||||
versionedData.data = transformState(state) |
||||
} catch (err) { |
||||
console.warn(`MetaMask Migration #${version}` + err.stack) |
||||
return Promise.reject(err) |
||||
} |
||||
return Promise.resolve(versionedData) |
||||
}, |
||||
} |
||||
|
||||
function transformState (state) { |
||||
if (!state.KeyringController || !state.PreferencesController) { |
||||
return |
||||
} |
||||
|
||||
if (!state.KeyringController.walletNicknames) { |
||||
return state |
||||
} |
||||
|
||||
state.PreferencesController.identities = state.KeyringController.walletNicknames |
||||
delete state.KeyringController.walletNicknames |
||||
return state |
||||
} |
@ -0,0 +1,41 @@ |
||||
const assert = require('assert') |
||||
const migration26 = require('../../../app/scripts/migrations/026') |
||||
const oldStorage = { |
||||
'meta': {'version': 25}, |
||||
'data': { |
||||
'PreferencesController': {}, |
||||
'KeyringController': { |
||||
'walletNicknames': { |
||||
'0x1e77e2': 'Test Account 1', |
||||
'0x7e57e2': 'Test Account 2', |
||||
}, |
||||
}, |
||||
}, |
||||
} |
||||
|
||||
describe('migration #26', () => { |
||||
it('should move the identities from KeyringController', (done) => { |
||||
migration26.migrate(oldStorage) |
||||
.then((newStorage) => { |
||||
const identities = newStorage.data.PreferencesController.identities |
||||
assert.deepEqual(identities, { |
||||
'0x1e77e2': 'Test Account 1', |
||||
'0x7e57e2': 'Test Account 2', |
||||
}) |
||||
assert.strictEqual(newStorage.data.KeyringController.walletNicknames, undefined) |
||||
done() |
||||
}) |
||||
.catch(done) |
||||
}) |
||||
|
||||
it('should successfully migrate first time state', (done) => { |
||||
migration26.migrate({ |
||||
meta: {}, |
||||
data: require('../../../app/scripts/first-time-state'), |
||||
}) |
||||
.then((migratedData) => { |
||||
assert.equal(migratedData.meta.version, migration26.version) |
||||
done() |
||||
}).catch(done) |
||||
}) |
||||
}) |
Loading…
Reference in new issue