aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md14
-rw-r--r--app/manifest.json2
-rw-r--r--package.json2
-rw-r--r--test/unit/actions/tx_test.js87
-rw-r--r--ui/app/account-detail.js2
-rw-r--r--ui/app/actions.js23
-rw-r--r--ui/app/components/pending-msg-details.js2
-rw-r--r--ui/app/components/pending-msg.js5
-rw-r--r--ui/app/components/token-list.js45
9 files changed, 47 insertions, 135 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 516e8f9e8..3b26afd47 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,20 @@
## Current Master
+- Fix bug where some transaction submission errors would show an empty screen.
+- Fix bug that could mis-render token balances when very small.
+- Fix formatting of eth_sign "Sign Message" view.
+- Add deprecation warning to eth_sign "Sign Message" view.
+
+
+## 3.9.8 2017-8-16
+
+- Reenable token list.
+- Remove default tokens.
+
+## 3.9.7 2017-8-15
+
+- hotfix - disable token list
- Added a deprecation warning for web3 https://github.com/ethereum/mist/releases/tag/v0.9.0
## 3.9.6 2017-8-09
diff --git a/app/manifest.json b/app/manifest.json
index f34bdcec3..4af7923c2 100644
--- a/app/manifest.json
+++ b/app/manifest.json
@@ -1,7 +1,7 @@
{
"name": "MetaMask",
"short_name": "Metamask",
- "version": "3.9.6",
+ "version": "3.9.8",
"manifest_version": 2,
"author": "https://metamask.io",
"description": "Ethereum Browser Extension",
diff --git a/package.json b/package.json
index 396fd53a7..9a09e6305 100644
--- a/package.json
+++ b/package.json
@@ -73,7 +73,7 @@
"eth-query": "^2.1.2",
"eth-sig-util": "^1.2.2",
"eth-simple-keyring": "^1.1.1",
- "eth-token-tracker": "^1.1.2",
+ "eth-token-tracker": "^1.1.3",
"ethereumjs-tx": "^1.3.0",
"ethereumjs-util": "github:ethereumjs/ethereumjs-util#ac5d0908536b447083ea422b435da27f26615de9",
"ethereumjs-wallet": "^0.6.0",
diff --git a/test/unit/actions/tx_test.js b/test/unit/actions/tx_test.js
index 67c72e9a5..ea6dfda6a 100644
--- a/test/unit/actions/tx_test.js
+++ b/test/unit/actions/tx_test.js
@@ -53,7 +53,7 @@ describe('tx confirmation screen', function () {
result = reducers(initialState, action)
done()
})
-
+
})
it('should transition to the account detail view', function () {
@@ -65,91 +65,6 @@ describe('tx confirmation screen', function () {
assert.equal(count, 0)
})
})
-
- describe('sendTx', function () {
- var result
-
- describe('when there is an error', function () {
- before(function (done) {
- actions._setBackgroundConnection({
- approveTransaction (txId, cb) { cb({message: 'An error!'}) },
- })
-
- actions.sendTx({id: firstTxId})(function (action) {
- result = reducers(initialState, action)
- done()
- })
- })
-
- it('should stay on the page', function () {
- assert.equal(result.appState.currentView.name, 'confTx')
- })
-
- it('should set errorMessage on the currentView', function () {
- assert(result.appState.currentView.errorMessage)
- })
- })
-
- describe('when there is success', function () {
- it('should complete tx and go home', function () {
- actions._setBackgroundConnection({
- approveTransaction (txId, cb) { cb() },
- })
-
- var dispatchExpect = sinon.mock()
- dispatchExpect.twice()
-
- actions.sendTx({id: firstTxId})(dispatchExpect)
- })
- })
- })
-
- describe('when there are two pending txs', function () {
- var firstTxId = 1457634084250832
- var result, initialState
- before(function (done) {
- initialState = {
- appState: {
- currentView: {
- name: 'confTx',
- },
- },
- metamask: {
- unapprovedTxs: {
- '1457634084250832': {
- id: firstTxId,
- status: 'unconfirmed',
- time: 1457634084250,
- },
- '1457634084250833': {
- id: 1457634084250833,
- status: 'unconfirmed',
- time: 1457634084255,
- },
- },
- },
- }
- freeze(initialState)
-
- // Mocking a background connection:
- actions._setBackgroundConnection({
- approveTransaction (firstTxId, cb) { cb() },
- })
-
- actions.sendTx({id: firstTxId})(function (action) {
- result = reducers(initialState, action)
- })
- done()
- })
-
- it('should stay on the confTx view', function () {
- assert.equal(result.appState.currentView.name, 'confTx')
- })
-
- it('should transition to the first tx', function () {
- assert.equal(result.appState.currentView.context, 0)
- })
- })
})
})
diff --git a/ui/app/account-detail.js b/ui/app/account-detail.js
index f6041e856..02089ecd0 100644
--- a/ui/app/account-detail.js
+++ b/ui/app/account-detail.js
@@ -117,7 +117,7 @@ AccountDetailScreen.prototype.render = function () {
h('h2', {
style: {
maxWidth: '180px',
- overflowX: 'hidden',
+ overflow: 'hidden',
textOverflow: 'ellipsis',
padding: '5px 0px',
},
diff --git a/ui/app/actions.js b/ui/app/actions.js
index eafd04b4c..eebe65ba2 100644
--- a/ui/app/actions.js
+++ b/ui/app/actions.js
@@ -97,7 +97,6 @@ var actions = {
cancelMsg: cancelMsg,
signPersonalMsg,
cancelPersonalMsg,
- sendTx: sendTx,
signTx: signTx,
updateAndApproveTx,
cancelTx: cancelTx,
@@ -397,26 +396,13 @@ function signPersonalMsg (msgData) {
function signTx (txData) {
return (dispatch) => {
+ dispatch(actions.showLoadingIndication())
global.ethQuery.sendTransaction(txData, (err, data) => {
dispatch(actions.hideLoadingIndication())
- if (err) return dispatch(actions.displayWarning(err.message))
- dispatch(actions.hideWarning())
- })
- dispatch(this.showConfTxPage())
- }
-}
-
-function sendTx (txData) {
- log.info(`actions - sendTx: ${JSON.stringify(txData.txParams)}`)
- return (dispatch) => {
- log.debug(`actions calling background.approveTransaction`)
- background.approveTransaction(txData.id, (err) => {
- if (err) {
- dispatch(actions.txError(err))
- return log.error(err.message)
- }
- dispatch(actions.completedTx(txData.id))
+ if (err) dispatch(actions.displayWarning(err.message))
+ dispatch(this.goHome())
})
+ dispatch(actions.showConfTxPage())
}
}
@@ -428,6 +414,7 @@ function updateAndApproveTx (txData) {
dispatch(actions.hideLoadingIndication())
if (err) {
dispatch(actions.txError(err))
+ dispatch(actions.goHome())
return log.error(err.message)
}
dispatch(actions.completedTx(txData.id))
diff --git a/ui/app/components/pending-msg-details.js b/ui/app/components/pending-msg-details.js
index 16308d121..718a22de0 100644
--- a/ui/app/components/pending-msg-details.js
+++ b/ui/app/components/pending-msg-details.js
@@ -38,7 +38,7 @@ PendingMsgDetails.prototype.render = function () {
// message data
h('.tx-data.flex-column.flex-justify-center.flex-grow.select-none', [
- h('.flex-row.flex-space-between', [
+ h('.flex-column.flex-space-between', [
h('label.font-small', 'MESSAGE'),
h('span.font-small', msgParams.data),
]),
diff --git a/ui/app/components/pending-msg.js b/ui/app/components/pending-msg.js
index b2cac164a..b7133cda8 100644
--- a/ui/app/components/pending-msg.js
+++ b/ui/app/components/pending-msg.js
@@ -18,6 +18,9 @@ PendingMsg.prototype.render = function () {
h('div', {
key: msgData.id,
+ style: {
+ maxWidth: '350px',
+ },
}, [
// header
@@ -35,7 +38,7 @@ PendingMsg.prototype.render = function () {
}, `Signing this message can have
dangerous side effects. Only sign messages from
sites you fully trust with your entire account.
- This will be fixed in a future version.`),
+ This dangerous method will be removed in a future version.`),
// message details
h(PendingTxDetails, state),
diff --git a/ui/app/components/token-list.js b/ui/app/components/token-list.js
index 5ea31ae8d..2346568bc 100644
--- a/ui/app/components/token-list.js
+++ b/ui/app/components/token-list.js
@@ -3,17 +3,6 @@ const h = require('react-hyperscript')
const inherits = require('util').inherits
const TokenTracker = require('eth-token-tracker')
const TokenCell = require('./token-cell.js')
-const normalizeAddress = require('eth-sig-util').normalize
-
-const defaultTokens = []
-const contracts = require('eth-contract-metadata')
-for (const address in contracts) {
- const contract = contracts[address]
- if (contract.erc20) {
- contract.address = address
- defaultTokens.push(contract)
- }
-}
module.exports = TokenList
@@ -38,7 +27,24 @@ TokenList.prototype.render = function () {
if (error) {
log.error(error)
- return this.message('There was a problem loading your token balances.')
+ return h('.hotFix', {
+ style: {
+ padding: '80px',
+ },
+ }, [
+ 'We had trouble loading your token balances. You can view them ',
+ h('span.hotFix', {
+ style: {
+ color: 'rgba(247, 134, 28, 1)',
+ cursor: 'pointer',
+ },
+ onClick: () => {
+ global.platform.openWindow({
+ url: `https://ethplorer.io/address/${userAddress}`,
+ })
+ },
+ }, 'here'),
+ ])
}
const tokenViews = tokens.map((tokenData) => {
@@ -153,7 +159,7 @@ TokenList.prototype.createFreshTokenTracker = function () {
this.tracker = new TokenTracker({
userAddress,
provider: global.ethereumProvider,
- tokens: uniqueMergeTokens(defaultTokens, this.props.tokens),
+ tokens: this.props.tokens,
pollingInterval: 8000,
})
@@ -199,16 +205,3 @@ TokenList.prototype.componentWillUnmount = function () {
this.tracker.stop()
}
-function uniqueMergeTokens (tokensA, tokensB) {
- const uniqueAddresses = []
- const result = []
- tokensA.concat(tokensB).forEach((token) => {
- const normal = normalizeAddress(token.address)
- if (!uniqueAddresses.includes(normal)) {
- uniqueAddresses.push(normal)
- result.push(token)
- }
- })
- return result
-}
-