From da611eb3a12a40aba09517c7c8121f9684111e0a Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Mon, 3 Oct 2016 20:02:21 -0700 Subject: [PATCH 1/8] Improve popup behavior for parity errors When we receive an invalid params error, instead of opening the popup and showing no tx, we now just forward that tx back to the UI code. --- CHANGELOG.md | 1 + app/scripts/metamask-controller.js | 22 +++++----------------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 84a074480..b6d3d5ed4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## Current Master - Fix bug where chosen FIAT exchange rate does no persist when switching networks +- Fix additional parameters that made MetaMask sometimes receive errors from Parity. ## 2.13.1 2016-09-23 diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 9e1a885ae..03082013a 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -203,26 +203,15 @@ module.exports = class MetamaskController { newUnsignedTransaction (txParams, onTxDoneCb) { const idStore = this.idStore - var state = idStore.getState() let err = this.enforceTxValidations(txParams) if (err) return onTxDoneCb(err) - // It's locked - if (!state.isUnlocked) { - - // Allow the environment to define an unlock message. - this.opts.unlockAccountMessage() - idStore.addUnconfirmedTransaction(txParams, onTxDoneCb, noop) - - // It's unlocked - } else { - idStore.addUnconfirmedTransaction(txParams, onTxDoneCb, (err, txData) => { - if (err) return onTxDoneCb(err) - this.sendUpdate() - this.opts.showUnconfirmedTx(txParams, txData, onTxDoneCb) - }) - } + idStore.addUnconfirmedTransaction(txParams, onTxDoneCb, (err, txData) => { + if (err) return onTxDoneCb(err) + this.sendUpdate() + this.opts.showUnconfirmedTx(txParams, txData, onTxDoneCb) + }) } enforceTxValidations (txParams) { @@ -353,4 +342,3 @@ module.exports = class MetamaskController { } } -function noop () {} From 8ef75216759f4942226fa969d2e0d3fe3761f1f3 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 4 Oct 2016 11:58:31 -0700 Subject: [PATCH 2/8] Version 2.13.2 --- CHANGELOG.md | 3 +++ app/manifest.json | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6d3d5ed4..ddc354e89 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,11 @@ ## Current Master +## 2.13.2 2016-10-4 + - Fix bug where chosen FIAT exchange rate does no persist when switching networks - Fix additional parameters that made MetaMask sometimes receive errors from Parity. +- Fix bug where invalid transactions would still open the MetaMask popup. ## 2.13.1 2016-09-23 diff --git a/app/manifest.json b/app/manifest.json index 0db9b2b83..d6738a5fa 100644 --- a/app/manifest.json +++ b/app/manifest.json @@ -1,7 +1,7 @@ { "name": "MetaMask", "short_name": "Metamask", - "version": "2.13.1", + "version": "2.13.2", "manifest_version": 2, "author": "https://metamask.io", "description": "Ethereum Browser Extension", diff --git a/package.json b/package.json index 1eef432e0..b59a7ca44 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "through2": "^2.0.1", "vreme": "^3.0.2", "web3": "ethereum/web3.js#260ac6e78a8ce4b2e13f5bb0fdb65f4088585876", - "web3-provider-engine": "^8.0.7", + "web3-provider-engine": "^8.1.0", "web3-stream-provider": "^2.0.6", "xtend": "^4.0.1" }, From 3ad976570b0c3fa64d16d04fec5a85625b30176c Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 4 Oct 2016 12:38:58 -0700 Subject: [PATCH 3/8] Add announcer script I always keep writing up this same announcement message whenever I publish a new version. I've now written a script to automate my announcement formatting, it looks like this: ``` **MetaMask 2.13.2** now published to the Chrome Store! It should be available over the next hour! 2016-10-4 - Fix bug where chosen FIAT exchange rate does no persist when switching networks - Fix additional parameters that made MetaMask sometimes receive errors from Parity. - Fix bug where invalid transactions would still open the MetaMask popup. ``` --- development/announcer.js | 12 ++++++++++++ package.json | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 development/announcer.js diff --git a/development/announcer.js b/development/announcer.js new file mode 100644 index 000000000..8939244d3 --- /dev/null +++ b/development/announcer.js @@ -0,0 +1,12 @@ +var manifest = require('../app/manifest.json') +var version = manifest.version + +var fs = require('fs') +var path = require('path') +var changelog = fs.readFileSync(path.join(__dirname, '..', 'CHANGELOG.md')).toString() + +var log = changelog.split(version)[1].split('##')[0].trim() + +let msg = `**MetaMask ${version}** now published to the Chrome Store! It should be available over the next hour!\n${log}` + +console.log(msg) diff --git a/package.json b/package.json index b59a7ca44..72c682173 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "mock": "beefy mock-dev.js:bundle.js --live --open --index=./development/index.html --cwd ./", "buildMock": "browserify ./mock-dev.js -o ./development/bundle.js", "testem": "npm run buildMock && testem", - "ci": "npm run buildMock && testem ci -P 2" + "ci": "npm run buildMock && testem ci -P 2", + "announce": "node development/announcer.js" }, "browserify": { "transform": [ From c7d10affd553dbfd237346fae5de6862ec917e3a Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 4 Oct 2016 13:04:54 -0700 Subject: [PATCH 4/8] Make seed word confirmation button font smaller To avoid formatting glitches on some machines. --- CHANGELOG.md | 2 ++ ui/app/first-time/create-vault-complete.js | 1 + 2 files changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ddc354e89..a62d272f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Current Master +- Decreased vault confirmation button font size to help some Linux users who could not see it. + ## 2.13.2 2016-10-4 - Fix bug where chosen FIAT exchange rate does no persist when switching networks diff --git a/ui/app/first-time/create-vault-complete.js b/ui/app/first-time/create-vault-complete.js index 0ca0a1b22..2b5413955 100644 --- a/ui/app/first-time/create-vault-complete.js +++ b/ui/app/first-time/create-vault-complete.js @@ -61,6 +61,7 @@ CreateVaultCompleteScreen.prototype.render = function () { onClick: () => this.confirmSeedWords(), style: { margin: '24px', + fontSize: '0.9em', }, }, 'I\'ve copied it somewhere safe'), ]) From f9eba9d7e52d55180d4a86bbc0cd14682a190c5c Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 4 Oct 2016 13:10:28 -0700 Subject: [PATCH 5/8] Make popup a little taller For some reason the popup was often cutting off the bottom buttons of the UI. We should look at that more carefully later perhaps, but especially since we're considering moving off the popup, I'm just fixing it by making it taller for now. --- app/scripts/lib/notifications.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/scripts/lib/notifications.js b/app/scripts/lib/notifications.js index 422f46f6d..cd7535232 100644 --- a/app/scripts/lib/notifications.js +++ b/app/scripts/lib/notifications.js @@ -1,5 +1,5 @@ const extension = require('./extension') -const height = 500 +const height = 520 const width = 360 const notifications = { From 55364b6ee31bdb91d19a5e69dcf3be9ccf49e94a Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 4 Oct 2016 13:13:58 -0700 Subject: [PATCH 6/8] Bump changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a62d272f3..5b384e342 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## Current Master - Decreased vault confirmation button font size to help some Linux users who could not see it. +- Made popup a little taller because it would sometimes cut off buttons. ## 2.13.2 2016-10-4 From 769bd8e2eee5f322f5883407e9fd779cf2a59e97 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 4 Oct 2016 13:26:51 -0700 Subject: [PATCH 7/8] Removed hex prefix from private key export For compatibility with Jaxx, MEW, and Geth. Fixes #687 --- CHANGELOG.md | 1 + ui/app/components/account-export.js | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ddc354e89..0cdfcd99c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - Fix bug where chosen FIAT exchange rate does no persist when switching networks - Fix additional parameters that made MetaMask sometimes receive errors from Parity. - Fix bug where invalid transactions would still open the MetaMask popup. +- Removed hex prefix from private key export, to increase compatibility with Geth, MyEtherWallet, and Jaxx. ## 2.13.1 2016-09-23 diff --git a/ui/app/components/account-export.js b/ui/app/components/account-export.js index f36b9faeb..6d8b099a5 100644 --- a/ui/app/components/account-export.js +++ b/ui/app/components/account-export.js @@ -3,6 +3,7 @@ const h = require('react-hyperscript') const inherits = require('util').inherits const copyToClipboard = require('copy-to-clipboard') const actions = require('../actions') +const ethUtil = require('ethereumjs-util') module.exports = ExportAccountView @@ -61,7 +62,9 @@ ExportAccountView.prototype.render = function () { if (accountExported) { return h('div.privateKey', { - + style: { + margin: '0 20px', + }, }, [ h('label', 'Your private key (click to copy):'), h('p.error.cursor-pointer', { @@ -72,9 +75,9 @@ ExportAccountView.prototype.render = function () { width: '100%', }, onClick: function (event) { - copyToClipboard(accountDetail.privateKey) + copyToClipboard(ethUtil.stripHexPrefix(accountDetail.privateKey)) }, - }, accountDetail.privateKey), + }, ethUtil.stripHexPrefix(accountDetail.privateKey)), h('button', { onClick: () => this.props.dispatch(actions.backToAccountDetail(this.props.address)), }, 'Done'), From 0b5984767ba5b1b94d95f7945c11cd294cad971b Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 4 Oct 2016 14:22:47 -0700 Subject: [PATCH 8/8] Add Opera compatibility - Fix incorrect OS key - Add additional icon image sizes. --- app/images/icon-32.png | Bin 0 -> 1730 bytes app/images/icon-64.png | Bin 0 -> 3573 bytes app/manifest.json | 5 +++-- 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 app/images/icon-32.png create mode 100644 app/images/icon-64.png diff --git a/app/images/icon-32.png b/app/images/icon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..f801ebb6b0d8c7cd11adf76e1db0dbde31ba8e29 GIT binary patch literal 1730 zcmV;z20i(SP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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