diff options
author | Thomas Huang <tmashuang@users.noreply.github.com> | 2019-04-09 02:35:58 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-09 02:35:58 +0800 |
commit | 8c98e89e617b594d4f0ee54a8437e30201688090 (patch) | |
tree | e920376b663e7df57e999935c23a448b71bb279d /app | |
parent | 87f393eb31c5172a246db6be37331f8bed9d096e (diff) | |
parent | 79804ec79bda1cffa530743ddb8d299c257092a2 (diff) | |
download | tangerine-wallet-browser-8c98e89e617b594d4f0ee54a8437e30201688090.tar.gz tangerine-wallet-browser-8c98e89e617b594d4f0ee54a8437e30201688090.tar.zst tangerine-wallet-browser-8c98e89e617b594d4f0ee54a8437e30201688090.zip |
Merge pull request #6419 from MetaMask/develop
Merge develop into master
Diffstat (limited to 'app')
-rw-r--r-- | app/manifest.json | 2 | ||||
-rw-r--r-- | app/scripts/background.js | 1 | ||||
-rw-r--r-- | app/scripts/controllers/user-actions.js | 17 | ||||
-rw-r--r-- | app/scripts/lib/createProviderMiddleware.js | 16 | ||||
-rw-r--r-- | app/scripts/metamask-controller.js | 20 | ||||
-rw-r--r-- | app/scripts/migrations/033.js | 32 | ||||
-rw-r--r-- | app/scripts/migrations/index.js | 2 | ||||
-rw-r--r-- | app/scripts/notice-controller.js | 112 |
8 files changed, 37 insertions, 165 deletions
diff --git a/app/manifest.json b/app/manifest.json index 941842636..5e464dc2f 100644 --- a/app/manifest.json +++ b/app/manifest.json @@ -1,7 +1,7 @@ { "name": "__MSG_appName__", "short_name": "__MSG_appName__", - "version": "6.3.1", + "version": "6.3.2", "manifest_version": 2, "author": "https://metamask.io", "description": "__MSG_appDescription__", diff --git a/app/scripts/background.js b/app/scripts/background.js index 7fea3c8c6..cca0d4709 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -106,7 +106,6 @@ setupMetamaskMeshMetrics() * @property {string} rpcTarget - DEPRECATED - The URL of the current RPC provider. * @property {Object} identities - An object matching lower-case hex addresses to Identity objects with "address" and "name" (nickname) keys. * @property {Object} unapprovedTxs - An object mapping transaction hashes to unapproved transactions. - * @property {boolean} noActiveNotices - False if there are notices the user should confirm before using the application. * @property {Array} frequentRpcList - A list of frequently used RPCs, including custom user-provided ones. * @property {Array} addressBook - A list of previously sent to addresses. * @property {address} selectedTokenAddress - Used to indicate if a token is globally selected. Should be deprecated in favor of UI-centric token selection. diff --git a/app/scripts/controllers/user-actions.js b/app/scripts/controllers/user-actions.js deleted file mode 100644 index f777054b8..000000000 --- a/app/scripts/controllers/user-actions.js +++ /dev/null @@ -1,17 +0,0 @@ -const MessageManager = require('./lib/message-manager') -const PersonalMessageManager = require('./lib/personal-message-manager') -const TypedMessageManager = require('./lib/typed-message-manager') - -class UserActionController { - - constructor (opts = {}) { - - this.messageManager = new MessageManager() - this.personalMessageManager = new PersonalMessageManager() - this.typedMessageManager = new TypedMessageManager() - - } - -} - -module.exports = UserActionController diff --git a/app/scripts/lib/createProviderMiddleware.js b/app/scripts/lib/createProviderMiddleware.js deleted file mode 100644 index 8a939ba4e..000000000 --- a/app/scripts/lib/createProviderMiddleware.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = createProviderMiddleware - -/** - * Forwards an HTTP request to the current Web3 provider - * - * @param {{ provider: Object }} config Configuration containing current Web3 provider - */ -function createProviderMiddleware ({ provider }) { - return (req, res, next, end) => { - provider.sendAsync(req, (err, _res) => { - if (err) return end(err) - res.result = _res.result - end() - }) - } -} diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 058d527c0..d2a55acaa 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -18,13 +18,12 @@ const createFilterMiddleware = require('eth-json-rpc-filters') const createSubscriptionManager = require('eth-json-rpc-filters/subscriptionManager') const createOriginMiddleware = require('./lib/createOriginMiddleware') const createLoggerMiddleware = require('./lib/createLoggerMiddleware') -const createProviderMiddleware = require('./lib/createProviderMiddleware') +const providerAsMiddleware = require('eth-json-rpc-middleware/providerAsMiddleware') const {setupMultiplex} = require('./lib/stream-utils.js') const KeyringController = require('eth-keyring-controller') const NetworkController = require('./controllers/network') const PreferencesController = require('./controllers/preferences') const CurrencyController = require('./controllers/currency') -const NoticeController = require('./notice-controller') const ShapeShiftController = require('./controllers/shapeshift') const InfuraController = require('./controllers/infura') const BlacklistController = require('./controllers/blacklist') @@ -211,13 +210,6 @@ module.exports = class MetamaskController extends EventEmitter { }) this.balancesController.updateAllBalances() - // notices - this.noticeController = new NoticeController({ - initState: initState.NoticeController, - version, - firstVersion: initState.firstTimeInfo.version, - }) - this.shapeshiftController = new ShapeShiftController({ initState: initState.ShapeShiftController, }) @@ -243,7 +235,6 @@ module.exports = class MetamaskController extends EventEmitter { PreferencesController: this.preferencesController.store, AddressBookController: this.addressBookController, CurrencyController: this.currencyController.store, - NoticeController: this.noticeController.store, ShapeShiftController: this.shapeshiftController.store, NetworkController: this.networkController.store, InfuraController: this.infuraController.store, @@ -265,7 +256,6 @@ module.exports = class MetamaskController extends EventEmitter { RecentBlocksController: this.recentBlocksController.store, AddressBookController: this.addressBookController, CurrencyController: this.currencyController.store, - NoticeController: this.noticeController.memStore, ShapeshiftController: this.shapeshiftController.store, InfuraController: this.infuraController.store, ProviderApprovalController: this.providerApprovalController.store, @@ -371,7 +361,6 @@ module.exports = class MetamaskController extends EventEmitter { const keyringController = this.keyringController const preferencesController = this.preferencesController const txController = this.txController - const noticeController = this.noticeController const networkController = this.networkController const providerApprovalController = this.providerApprovalController @@ -470,11 +459,6 @@ module.exports = class MetamaskController extends EventEmitter { signTypedMessage: nodeify(this.signTypedMessage, this), cancelTypedMessage: this.cancelTypedMessage.bind(this), - // notices - checkNotices: noticeController.updateNoticesList.bind(noticeController), - markNoticeRead: noticeController.markNoticeRead.bind(noticeController), - markAllNoticesRead: nodeify(noticeController.markAllNoticesRead, noticeController), - approveProviderRequest: providerApprovalController.approveProviderRequest.bind(providerApprovalController), clearApprovedOrigins: providerApprovalController.clearApprovedOrigins.bind(providerApprovalController), rejectProviderRequest: providerApprovalController.rejectProviderRequest.bind(providerApprovalController), @@ -1389,7 +1373,7 @@ module.exports = class MetamaskController extends EventEmitter { // watch asset engine.push(this.preferencesController.requestWatchAsset.bind(this.preferencesController)) // forward to metamask primary provider - engine.push(createProviderMiddleware({ provider })) + engine.push(providerAsMiddleware(provider)) // setup connection const providerStream = createEngineStream({ engine }) diff --git a/app/scripts/migrations/033.js b/app/scripts/migrations/033.js new file mode 100644 index 000000000..3abb2593e --- /dev/null +++ b/app/scripts/migrations/033.js @@ -0,0 +1,32 @@ +// next version number +const version = 33 + +/* + +Cleans up notices and assocated notice controller code + +*/ + +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 + // transform state here + if (state.NoticeController) { + delete newState.NoticeController + } + return newState +} diff --git a/app/scripts/migrations/index.js b/app/scripts/migrations/index.js index eb1b51685..be3328bad 100644 --- a/app/scripts/migrations/index.js +++ b/app/scripts/migrations/index.js @@ -42,4 +42,6 @@ module.exports = [ require('./029'), require('./030'), require('./031'), + require('./032'), + require('./033'), ] diff --git a/app/scripts/notice-controller.js b/app/scripts/notice-controller.js deleted file mode 100644 index 63b422c5b..000000000 --- a/app/scripts/notice-controller.js +++ /dev/null @@ -1,112 +0,0 @@ -const {EventEmitter} = require('events') -const semver = require('semver') -const extend = require('xtend') -const ObservableStore = require('obs-store') -const hardCodedNotices = require('../../notices/notices.js') -const uniqBy = require('lodash.uniqby') - -module.exports = class NoticeController extends EventEmitter { - - constructor (opts = {}) { - super() - this.noticePoller = null - this.firstVersion = opts.firstVersion - this.version = opts.version - const initState = extend({ - noticesList: [], - }, opts.initState) - this.store = new ObservableStore(initState) - // setup memStore - this.memStore = new ObservableStore({}) - this.store.subscribe(() => this._updateMemstore()) - this._updateMemstore() - // pull in latest notices - this.updateNoticesList() - } - - getNoticesList () { - return this.store.getState().noticesList - } - - getUnreadNotices () { - const notices = this.getNoticesList() - return notices.filter((notice) => notice.read === false) - } - - getNextUnreadNotice () { - const unreadNotices = this.getUnreadNotices() - return unreadNotices[0] - } - - async setNoticesList (noticesList) { - this.store.updateState({ noticesList }) - return true - } - - markNoticeRead (noticeToMark, cb) { - cb = cb || function (err) { if (err) throw err } - try { - const notices = this.getNoticesList() - const index = notices.findIndex((currentNotice) => currentNotice.id === noticeToMark.id) - notices[index].read = true - notices[index].body = '' - this.setNoticesList(notices) - const latestNotice = this.getNextUnreadNotice() - cb(null, latestNotice) - } catch (err) { - cb(err) - } - } - - markAllNoticesRead () { - const noticeList = this.getNoticesList() - noticeList.forEach(notice => { - notice.read = true - notice.body = '' - }) - this.setNoticesList(noticeList) - const latestNotice = this.getNextUnreadNotice() - return latestNotice - } - - - async updateNoticesList () { - const newNotices = await this._retrieveNoticeData() - const oldNotices = this.getNoticesList() - const combinedNotices = this._mergeNotices(oldNotices, newNotices) - const filteredNotices = this._filterNotices(combinedNotices) - const result = this.setNoticesList(filteredNotices) - this._updateMemstore() - return result - } - - _mergeNotices (oldNotices, newNotices) { - return uniqBy(oldNotices.concat(newNotices), 'id') - } - - _filterNotices (notices) { - return notices.filter((newNotice) => { - if ('version' in newNotice) { - const satisfied = semver.satisfies(this.version, newNotice.version) - return satisfied - } - if ('firstVersion' in newNotice) { - const satisfied = semver.satisfies(this.firstVersion, newNotice.firstVersion) - return satisfied - } - return true - }) - } - - async _retrieveNoticeData () { - // Placeholder for remote notice API. - return hardCodedNotices - } - - _updateMemstore () { - const nextUnreadNotice = this.getNextUnreadNotice() - const noActiveNotices = !nextUnreadNotice - this.memStore.updateState({ nextUnreadNotice, noActiveNotices }) - } - -} |