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. 18
      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 MetamaskController = require('./metamask-controller')
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'
var popupIsOpen = false
@ -33,20 +29,8 @@ function triggerUi () {
// On first install, open a window to MetaMask website to how-it-works.
extension.runtime.onInstalled.addListener(function (details) {
const newTOSHash = stringHash(disclaimer)
if (details.reason === 'install') {
controller.setTOSHash(newTOSHash, () => {
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'})
})
}
})
extension.tabs.create({url: 'https://metamask.io/#how-it-works'})
}
})

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

Loading…
Cancel
Save