aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md3
-rw-r--r--app/scripts/background.js8
-rw-r--r--app/scripts/metamask-controller.js2
-rw-r--r--ui/app/components/account-info-link.js2
-rw-r--r--ui/app/components/buy-button-subview.js2
-rw-r--r--ui/app/eth-store-warning.js7
6 files changed, 16 insertions, 8 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f9bdf7154..c20aa11d3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,9 @@
## Current Master
- Add fiat conversion values to more views.
+- On fresh install, open a new tab with the MetaMask Introduction video.
+- Block negative values from transactions.
+- Fixed a memory leak.
## 2.10.2 2016-09-02
diff --git a/app/scripts/background.js b/app/scripts/background.js
index 5dae8235f..18aaed7bf 100644
--- a/app/scripts/background.js
+++ b/app/scripts/background.js
@@ -35,6 +35,12 @@ function showUnconfirmedTx (txParams, txData, onTxDoneCb) {
notification.show()
}
+// On first install, open a window to MetaMask website to how-it-works.
+
+extension.runtime.onInstalled.addListener(function (object) {
+ extension.tabs.create({url: 'https://metamask.io/#how-it-works'})
+})
+
//
// connect to other contexts
//
@@ -80,6 +86,7 @@ function setupControllerConnection (stream) {
stream.pipe(dnode).pipe(stream)
dnode.on('remote', (remote) => {
// push updates to popup
+ controller.ethStore.removeListener('update', controller.sendUpdate.bind(controller))
controller.ethStore.on('update', controller.sendUpdate.bind(controller))
controller.listeners.push(remote)
idStore.on('update', controller.sendUpdate.bind(controller))
@@ -160,4 +167,3 @@ function getOldStyleData () {
function setData (data) {
window.localStorage[STORAGE_KEY] = JSON.stringify(data)
}
-
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index 83827ec76..5373cf0d9 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -220,7 +220,7 @@ module.exports = class MetamaskController {
}
enforceTxValidations (txParams) {
- if (txParams.value.indexOf('-') === 0) {
+ if (('value' in txParams) && txParams.value.indexOf('-') === 0) {
const msg = `Invalid transaction value of ${txParams.value} not a positive number.`
return new Error(msg)
}
diff --git a/ui/app/components/account-info-link.js b/ui/app/components/account-info-link.js
index 4fe3b8b5d..49c42e9ec 100644
--- a/ui/app/components/account-info-link.js
+++ b/ui/app/components/account-info-link.js
@@ -14,7 +14,7 @@ function AccountInfoLink () {
AccountInfoLink.prototype.render = function () {
const { selected, network } = this.props
- const title = 'View account on etherscan'
+ const title = 'View account on Etherscan'
const url = genAccountLink(selected, network)
if (!url) {
diff --git a/ui/app/components/buy-button-subview.js b/ui/app/components/buy-button-subview.js
index 742241e5b..c3e9e5d7b 100644
--- a/ui/app/components/buy-button-subview.js
+++ b/ui/app/components/buy-button-subview.js
@@ -106,7 +106,7 @@ BuyButtonSubview.prototype.formVersionSubview = function () {
style: {
width: '225px',
},
- }, 'In order to access this feature please switch too the Main Network'),
+ }, 'In order to access this feature please switch to the Main Network'),
h('h3.text-transform-uppercase', 'or:'),
this.props.network === '2' ? h('button.text-transform-uppercase', {
onClick: () => this.props.dispatch(actions.buyEth()),
diff --git a/ui/app/eth-store-warning.js b/ui/app/eth-store-warning.js
index 55274996b..fe3c7ce5d 100644
--- a/ui/app/eth-store-warning.js
+++ b/ui/app/eth-store-warning.js
@@ -35,10 +35,9 @@ EthStoreWarning.prototype.render = function () {
margin: '10px 10px 10px 10px',
},
},
- `The MetaMask team would like to
- remind you that MetaMask is currently in beta - so
- don't store large
- amounts of ether in MetaMask.
+ `MetaMask is currently in beta; use
+ caution in storing large
+ amounts of ether.
`),
h('i.fa.fa-exclamation-triangle.fa-4', {