aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/migrations/026.js
diff options
context:
space:
mode:
authortmashuang <thomas.b.huang@gmail.com>2018-05-22 05:57:57 +0800
committertmashuang <thomas.b.huang@gmail.com>2018-05-22 05:57:57 +0800
commit58b9afff4f3801d6d74b5311fb95060cc0a79cc1 (patch)
treec8d5a97f85fc7cf3c09a92949fdd615a082915cb /app/scripts/migrations/026.js
parent554a10f17e8e6b4bc79d3e5440295d280458717a (diff)
parent08d95bbafa3f952b960124c36958edbafa57cb3d (diff)
downloadtangerine-wallet-browser-58b9afff4f3801d6d74b5311fb95060cc0a79cc1.tar.gz
tangerine-wallet-browser-58b9afff4f3801d6d74b5311fb95060cc0a79cc1.tar.zst
tangerine-wallet-browser-58b9afff4f3801d6d74b5311fb95060cc0a79cc1.zip
Merge branch 'develop' into testing
Diffstat (limited to 'app/scripts/migrations/026.js')
-rw-r--r--app/scripts/migrations/026.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/app/scripts/migrations/026.js b/app/scripts/migrations/026.js
new file mode 100644
index 000000000..1b8a91a45
--- /dev/null
+++ b/app/scripts/migrations/026.js
@@ -0,0 +1,47 @@
+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 = Object.keys(state.KeyringController.walletNicknames)
+ .reduce((identities, address) => {
+ identities[address] = {
+ name: state.KeyringController.walletNicknames[address],
+ address,
+ }
+ return identities
+ }, {})
+ delete state.KeyringController.walletNicknames
+ return state
+}