Move tos hash comparison logic from background to mm controller.

feature/default_network_editable
Kevin Serrano 8 years ago
parent 26bd4b25ef
commit 79a99ac93b
No known key found for this signature in database
GPG Key ID: 7CC862A58D2889B4
  1. 16
      app/scripts/background.js
  2. 25
      app/scripts/metamask-controller.js

@ -8,10 +8,6 @@ const messageManager = require('./lib/message-manager')
const setupMultiplex = require('./lib/stream-utils.js').setupMultiplex const setupMultiplex = require('./lib/stream-utils.js').setupMultiplex
const MetamaskController = require('./metamask-controller') const MetamaskController = require('./metamask-controller')
const extension = require('./lib/extension') const extension = require('./lib/extension')
const fs = require('fs')
const path = require('path')
const disclaimer = fs.readFileSync(path.join(__dirname, '..', '..', 'USER_AGREEMENT.md')).toString()
const stringHash = require('string-hash')
const STORAGE_KEY = 'metamask-config' const STORAGE_KEY = 'metamask-config'
var popupIsOpen = false var popupIsOpen = false
@ -33,20 +29,8 @@ function triggerUi () {
// On first install, open a window to MetaMask website to how-it-works. // On first install, open a window to MetaMask website to how-it-works.
extension.runtime.onInstalled.addListener(function (details) { extension.runtime.onInstalled.addListener(function (details) {
const newTOSHash = stringHash(disclaimer)
if (details.reason === 'install') { if (details.reason === 'install') {
controller.setTOSHash(newTOSHash, () => {
extension.tabs.create({url: 'https://metamask.io/#how-it-works'}) extension.tabs.create({url: 'https://metamask.io/#how-it-works'})
})
} else if (details.reason === 'update') {
controller.checkTOSChange(newTOSHash, (hasChanged) => {
if (hasChanged) {
controller.resetDisclaimer()
controller.setTOSHash(newTOSHash, () => {
extension.tabs.create({url: 'https://metamask.io/terms.html'})
})
}
})
} }
}) })

@ -7,6 +7,7 @@ const HostStore = require('./lib/remote-store.js').HostStore
const Web3 = require('web3') const Web3 = require('web3')
const ConfigManager = require('./lib/config-manager') const ConfigManager = require('./lib/config-manager')
const extension = require('./lib/extension') const extension = require('./lib/extension')
const newTOSHash = global.TOS_HASH
module.exports = class MetamaskController { module.exports = class MetamaskController {
@ -22,12 +23,15 @@ module.exports = class MetamaskController {
this.idStore.setStore(this.ethStore) this.idStore.setStore(this.ethStore)
this.messageManager = messageManager this.messageManager = messageManager
this.publicConfigStore = this.initPublicConfigStore() this.publicConfigStore = this.initPublicConfigStore()
var currentFiat = this.configManager.getCurrentFiat() || 'USD' var currentFiat = this.configManager.getCurrentFiat() || 'USD'
this.configManager.setCurrentFiat(currentFiat) this.configManager.setCurrentFiat(currentFiat)
this.configManager.updateConversionRate() this.configManager.updateConversionRate()
var currentHash = this.configManager.getTOSHash() || 0
this.configManager.setTOSHash(currentHash) this.checkTOSChange()
this.scheduleConversionInterval() this.scheduleConversionInterval()
} }
getState () { getState () {
@ -266,22 +270,23 @@ module.exports = class MetamaskController {
// config // config
// //
setTOSHash (hash, cb) { setTOSHash (hash) {
try { try {
this.configManager.setTOSHash(hash) this.configManager.setTOSHash(hash)
cb(this.configManager.getTOSHash())
} catch (e) { } catch (e) {
cb(null, e) console.error('Error in setting terms of service hash.')
} }
} }
checkTOSChange (newHash, cb) { checkTOSChange () {
try { try {
var currentHash = this.configManager.getTOSHash() const storedHash = this.configManager.getTOSHash() || 0
var change = !(currentHash === newHash) if (storedHash !== global.newTOSHash) {
cb(change) this.resetDisclaimer()
this.setTOSHash(global.newTOSHash)
}
} catch (e) { } catch (e) {
cb(null, e) console.error("Error in checking TOS change.")
} }
} }

Loading…
Cancel
Save