Skip to content

Commit

Permalink
migration 30 removes invalid chaids from preferences and networkContr…
Browse files Browse the repository at this point in the history
…oller for custom rpcs
  • Loading branch information
frankiebee committed Jan 16, 2019
1 parent 53a5a6b commit adbd433
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 1 deletion.
47 changes: 47 additions & 0 deletions app/scripts/migrations/030.js
Original file line number Diff line number Diff line change
@@ -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

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.chainId && Number.isNaN(parseInt(newState.NetworkController.provider.chainId))) {
delete newState.NetworkController.provider.chainId
}

return newState
}
1 change: 1 addition & 0 deletions app/scripts/migrations/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,5 @@ module.exports = [
require('./027'),
require('./028'),
require('./029'),
require('./030'),
]
37 changes: 37 additions & 0 deletions test/unit/migrations/030-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
const assert = require('assert')
const migrationTemplate = require('../../../app/scripts/migrations/030.js')
const storage = {
meta: {},
data: {
NetworkController: {
network: 'fail',
provider: {
chainId: 'fail',
nickname: '',
rpcTarget: 'https://api.myetherwallet.com/eth',
ticker: 'ETH',
type: 'rinkeby',
},
},
PreferencesController: {
frequentRpcListDetail: [
{chainId: 'fail', nickname: '', rpcUrl: 'http://127.0.0.1:8545', ticker: ''},
{chainId: '1', nickname: '', rpcUrl: 'https://api.myetherwallet.com/eth', ticker: 'ETH'},
],
},
},
}

describe('storage is migrated successfully', () => {
it('should work', (done) => {
migrationTemplate.migrate(storage)
.then((migratedData) => {
assert.equal(migratedData.meta.version, 30)
assert.equal(migratedData.data.PreferencesController.frequentRpcListDetail[0].chainId, undefined)
assert.equal(migratedData.data.PreferencesController.frequentRpcListDetail[1].chainId, '1')
assert.equal(migratedData.data.NetworkController.provider.chainId, undefined)
assert.equal(migratedData.data.NetworkController.network, undefined)
done()
}).catch(done)
})
})
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,6 @@ export default class SettingsTab extends PureComponent {
if (!!chainId && Number.isNaN(parseInt(chainId))) {
return displayWarning(`${this.context.t('invalidInput')} chainId`)
}
debugger
setRpcTarget(newRpc, chainId, ticker, nickname)
} else {
const appendedRpc = `http://${newRpc}`
Expand Down

0 comments on commit adbd433

Please sign in to comment.