diff options
Diffstat (limited to 'app/scripts/migrations/030.js')
-rw-r--r-- | app/scripts/migrations/030.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/app/scripts/migrations/030.js b/app/scripts/migrations/030.js new file mode 100644 index 000000000..19b686c58 --- /dev/null +++ b/app/scripts/migrations/030.js @@ -0,0 +1,47 @@ +// next version number +const version = 30 + +/* + +removes invalid chaids from preferences and networkController for custom rpcs + +*/ + +const clone = require('clone') + +module.exports = { + version, + + migrate: async function (originalVersionedData) { + const versionedData = clone(originalVersionedData) + versionedData.meta.version = version + const state = versionedData.data + const newState = transformState(state) + versionedData.data = newState + return versionedData + }, +} + +function transformState (state) { + const newState = state + + const frequentRpcListDetail = newState.PreferencesController.frequentRpcListDetail + if (frequentRpcListDetail) { + frequentRpcListDetail.forEach((rpc, index) => { + if (!!rpc.chainId && Number.isNaN(parseInt(rpc.chainId))) { + delete frequentRpcListDetail[index].chainId + } + }) + newState.PreferencesController.frequentRpcListDetail = frequentRpcListDetail + } + + if (newState.NetworkController.network && Number.isNaN(parseInt(newState.NetworkController.network))) { + delete newState.NetworkController.network + } + + if (newState.NetworkController.provider && newState.NetworkController.provider.chainId && Number.isNaN(parseInt(newState.NetworkController.provider.chainId))) { + delete newState.NetworkController.provider.chainId + } + + return newState +} |