aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Finlay <dan@danfinlay.com>2017-10-06 02:55:23 +0800
committerDan Finlay <dan@danfinlay.com>2017-10-06 02:55:23 +0800
commitc5b7880f051b1ee47a9f8eecc6ea5c553f9efa6c (patch)
tree8b3ee94a666dd23aa9a3f9579abaf39939a0d161
parente11ca1289019123cd143adcb6312186452630723 (diff)
parent35f4148343cf4400f7a38eef07282cae44cd0335 (diff)
downloadtangerine-wallet-browser-c5b7880f051b1ee47a9f8eecc6ea5c553f9efa6c.tar.gz
tangerine-wallet-browser-c5b7880f051b1ee47a9f8eecc6ea5c553f9efa6c.tar.zst
tangerine-wallet-browser-c5b7880f051b1ee47a9f8eecc6ea5c553f9efa6c.zip
Merge branch 'master' into SignTypedData
-rw-r--r--CHANGELOG.md2
-rw-r--r--app/scripts/lib/pending-tx-tracker.js12
-rw-r--r--app/scripts/metamask-controller.js1
-rw-r--r--package.json8
-rw-r--r--test/unit/pending-tx-test.js17
-rw-r--r--ui/app/account-detail.js4
-rw-r--r--ui/app/app.js8
-rw-r--r--ui/app/components/pending-tx.js6
-rw-r--r--ui/app/components/transaction-list-item.js34
-rw-r--r--ui/app/info.js7
10 files changed, 52 insertions, 47 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e635f6158..069602915 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,8 @@
## Current Master
+- Remove Slack link from info page, since it is a big phishing target.
+
## 3.10.8 2017-9-28
- Fixed usage of new currency fetching API.
diff --git a/app/scripts/lib/pending-tx-tracker.js b/app/scripts/lib/pending-tx-tracker.js
index 3d358b00e..6f1601586 100644
--- a/app/scripts/lib/pending-tx-tracker.js
+++ b/app/scripts/lib/pending-tx-tracker.js
@@ -86,12 +86,15 @@ module.exports = class PendingTransactionTracker extends EventEmitter {
// other
|| errorMessage.includes('gateway timeout')
|| errorMessage.includes('nonce too low')
- || txMeta.retryCount > 1
)
// ignore resubmit warnings, return early
if (isKnownTx) return
// encountered real error - transition to error state
- this.emit('tx:failed', txMeta.id, err)
+ txMeta.warning = {
+ error: errorMessage,
+ message: 'There was an error when resubmitting this transaction.',
+ }
+ this.emit('tx:warning', txMeta, err)
}))
}
@@ -133,11 +136,10 @@ module.exports = class PendingTransactionTracker extends EventEmitter {
}
} catch (err) {
txMeta.warning = {
- error: err,
+ error: err.message,
message: 'There was a problem loading this transaction.',
}
- this.emit('tx:warning', txMeta)
- throw err
+ this.emit('tx:warning', txMeta, err)
}
}
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index fcd74e499..8f773a72b 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -224,7 +224,6 @@ module.exports = class MetamaskController extends EventEmitter {
eth_syncing: false,
web3_clientVersion: `MetaMask/v${version}`,
},
- originHttpHeaderKey: 'X-Metamask-Origin',
// account mgmt
getAccounts: (cb) => {
const isUnlocked = this.keyringController.memStore.getState().isUnlocked
diff --git a/package.json b/package.json
index 918531f15..298691588 100644
--- a/package.json
+++ b/package.json
@@ -69,8 +69,8 @@
"eth-bin-to-ops": "^1.0.1",
"eth-block-tracker": "^2.2.0",
"eth-contract-metadata": "^1.1.4",
- "eth-hd-keyring": "^1.1.1",
- "eth-json-rpc-filters": "^1.2.1",
+ "eth-hd-keyring": "^1.2.1",
+ "eth-json-rpc-filters": "^1.2.2",
"eth-keyring-controller": "^2.0.0",
"eth-phishing-detect": "^1.1.4",
"eth-query": "^2.1.2",
@@ -158,7 +158,7 @@
"brfs": "^1.4.3",
"browserify": "^14.4.0",
"chai": "^4.1.0",
- "coveralls": "^2.13.1",
+ "coveralls": "^3.0.0",
"deep-freeze-strict": "^1.1.1",
"del": "^3.0.0",
"envify": "^4.0.0",
@@ -186,7 +186,7 @@
"karma-firefox-launcher": "^1.0.1",
"karma-qunit": "^1.2.1",
"lodash.assign": "^4.0.6",
- "mocha": "^3.4.2",
+ "mocha": "^4.0.0",
"mocha-eslint": "^4.0.0",
"mocha-jsdom": "^1.1.0",
"mocha-sinon": "^2.0.0",
diff --git a/test/unit/pending-tx-test.js b/test/unit/pending-tx-test.js
index 4da0eff5d..6b62bb5b1 100644
--- a/test/unit/pending-tx-test.js
+++ b/test/unit/pending-tx-test.js
@@ -57,7 +57,7 @@ describe('PendingTransactionTracker', function () {
const block = Proxy.revocable({}, {}).revoke()
pendingTxTracker.checkForTxInBlock(block)
})
- it('should emit \'txFailed\' if the txMeta does not have a hash', function (done) {
+ it('should emit \'tx:failed\' if the txMeta does not have a hash', function (done) {
const block = Proxy.revocable({}, {}).revoke()
pendingTxTracker.getPendingTransactions = () => [txMetaNoHash]
pendingTxTracker.once('tx:failed', (txId, err) => {
@@ -105,7 +105,7 @@ describe('PendingTransactionTracker', function () {
})
describe('#_checkPendingTx', function () {
- it('should emit \'txFailed\' if the txMeta does not have a hash', function (done) {
+ it('should emit \'tx:failed\' if the txMeta does not have a hash', function (done) {
pendingTxTracker.once('tx:failed', (txId, err) => {
assert(txId, txMetaNoHash.id, 'should pass txId')
done()
@@ -172,7 +172,7 @@ describe('PendingTransactionTracker', function () {
.catch(done)
pendingTxTracker.resubmitPendingTxs()
})
- it('should not emit \'txFailed\' if the txMeta throws a known txError', function (done) {
+ it('should not emit \'tx:failed\' if the txMeta throws a known txError', function (done) {
knownErrors =[
// geth
' Replacement transaction Underpriced ',
@@ -199,8 +199,15 @@ describe('PendingTransactionTracker', function () {
pendingTxTracker.resubmitPendingTxs()
})
- it('should emit \'txFailed\' if it encountered a real error', function (done) {
- pendingTxTracker.once('tx:failed', (id, err) => err.message === 'im some real error' ? txList[id - 1].resolve() : done(err))
+ it('should emit \'tx:warning\' if it encountered a real error', function (done) {
+ pendingTxTracker.once('tx:warning', (txMeta, err) => {
+ if (err.message === 'im some real error') {
+ const matchingTx = txList.find(tx => tx.id === txMeta.id)
+ matchingTx.resolve()
+ } else {
+ done(err)
+ }
+ })
pendingTxTracker.getPendingTransactions = () => txList
pendingTxTracker._resubmitTx = async (tx) => { throw new TypeError('im some real error') }
diff --git a/ui/app/account-detail.js b/ui/app/account-detail.js
index 90724dc3f..a844daf88 100644
--- a/ui/app/account-detail.js
+++ b/ui/app/account-detail.js
@@ -46,7 +46,7 @@ AccountDetailScreen.prototype.render = function () {
var selected = props.address || Object.keys(props.accounts)[0]
var checksumAddress = selected && ethUtil.toChecksumAddress(selected)
var identity = props.identities[selected]
- var account = props.computedBalances[selected]
+ var account = props.accounts[selected]
const { network, conversionRate, currentCurrency } = props
return (
@@ -181,7 +181,7 @@ AccountDetailScreen.prototype.render = function () {
}, [
h(EthBalance, {
- value: account && account.ethBalance,
+ value: account && account.balance,
conversionRate,
currentCurrency,
style: {
diff --git a/ui/app/app.js b/ui/app/app.js
index 50121b055..613577913 100644
--- a/ui/app/app.js
+++ b/ui/app/app.js
@@ -167,14 +167,6 @@ App.prototype.renderAppBar = function () {
}),
]),
- // metamask name
- props.isUnlocked && h('h1', {
- style: {
- position: 'relative',
- left: '9px',
- },
- }, 'MetaMask'),
-
props.isUnlocked && h('div', {
style: {
display: 'flex',
diff --git a/ui/app/components/pending-tx.js b/ui/app/components/pending-tx.js
index 6f8c19a3c..c3350fcc1 100644
--- a/ui/app/components/pending-tx.js
+++ b/ui/app/components/pending-tx.js
@@ -33,7 +33,7 @@ function PendingTx () {
PendingTx.prototype.render = function () {
const props = this.props
- const { currentCurrency, blockGasLimit, computedBalances } = props
+ const { currentCurrency, blockGasLimit } = props
const conversionRate = props.conversionRate
const txMeta = this.gatherTxMeta()
@@ -42,8 +42,8 @@ PendingTx.prototype.render = function () {
// Account Details
const address = txParams.from || props.selectedAddress
const identity = props.identities[address] || { address: address }
- const account = computedBalances[address]
- const balance = account ? account.ethBalance : '0x0'
+ const account = props.accounts[address]
+ const balance = account ? account.balance : '0x0'
// recipient check
const isValidAddress = !txParams.to || util.isValidAddress(txParams.to)
diff --git a/ui/app/components/transaction-list-item.js b/ui/app/components/transaction-list-item.js
index 0e5c0b5a3..a9961f47c 100644
--- a/ui/app/components/transaction-list-item.js
+++ b/ui/app/components/transaction-list-item.js
@@ -133,7 +133,7 @@ function recipientField (txParams, transaction, isTx, isMsg) {
},
}, [
message,
- failIfFailed(transaction),
+ renderErrorOrWarning(transaction),
])
}
@@ -141,25 +141,35 @@ function formatDate (date) {
return vreme.format(new Date(date), 'March 16 2014 14:30')
}
-function failIfFailed (transaction) {
- if (transaction.status === 'rejected') {
+function renderErrorOrWarning (transaction) {
+ const { status, err, warning } = transaction
+
+ // show rejected
+ if (status === 'rejected') {
return h('span.error', ' (Rejected)')
}
- if (transaction.err || transaction.warning) {
- const { err, warning = {} } = transaction
- const errFirst = !!(( err && warning ) || err)
- const message = errFirst ? err.message : warning.message
-
- errFirst ? err.message : warning.message
+ // show error
+ if (err) {
+ const message = err.message || ''
+ return (
+ h(Tooltip, {
+ title: message,
+ position: 'bottom',
+ }, [
+ h(`span.error`, ` (Failed)`),
+ ])
+ )
+ }
+ // show warning
+ if (warning) {
+ const message = warning.message
return h(Tooltip, {
title: message,
position: 'bottom',
}, [
- h(`span.${errFirst ? 'error' : 'warning'}`,
- ` (${errFirst ? 'Failed' : 'Warning'})`
- ),
+ h(`span.warning`, ` (Warning)`),
])
}
}
diff --git a/ui/app/info.js b/ui/app/info.js
index 4c7d4cb4c..24c211c1f 100644
--- a/ui/app/info.js
+++ b/ui/app/info.js
@@ -126,13 +126,6 @@ InfoScreen.prototype.render = function () {
]),
]),
- h('div.fa.fa-slack', [
- h('a.info', {
- href: 'http://slack.metamask.io',
- target: '_blank',
- }, 'Join the conversation on Slack'),
- ]),
-
h('div', [
h('.fa.fa-twitter', [
h('a.info', {