aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md3
-rw-r--r--app/manifest.json2
-rw-r--r--app/scripts/controllers/transactions.js15
-rw-r--r--test/unit/tx-controller-test.js5
-rw-r--r--ui/app/components/qr-code.js12
5 files changed, 18 insertions, 19 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 43aaa76d8..8afa1eec4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,9 @@
## Current Master
+## 3.7.8 2017-6-12
+
+- Add a `ethereum:` prefix to the QR code address
- The default network on installation is now MainNet
- Fix currency API URL from cryptonator.
- Update gasLimit params with every new block seen.
diff --git a/app/manifest.json b/app/manifest.json
index a610d9e75..7ae20158c 100644
--- a/app/manifest.json
+++ b/app/manifest.json
@@ -1,7 +1,7 @@
{
"name": "MetaMask",
"short_name": "Metamask",
- "version": "3.7.7",
+ "version": "3.7.8",
"manifest_version": 2,
"author": "https://metamask.io",
"description": "Ethereum Browser Extension",
diff --git a/app/scripts/controllers/transactions.js b/app/scripts/controllers/transactions.js
index faccf1ab1..2db8041eb 100644
--- a/app/scripts/controllers/transactions.js
+++ b/app/scripts/controllers/transactions.js
@@ -9,7 +9,6 @@ const createId = require('../lib/random-id')
const denodeify = require('denodeify')
const RETRY_LIMIT = 200
-const RESUBMIT_INTERVAL = 10000 // Ten seconds
module.exports = class TransactionController extends EventEmitter {
constructor (opts) {
@@ -26,6 +25,7 @@ module.exports = class TransactionController extends EventEmitter {
this.query = opts.ethQuery
this.txProviderUtils = new TxProviderUtil(this.query)
this.blockTracker.on('block', this.checkForTxInBlock.bind(this))
+ this.blockTracker.on('block', this.resubmitPendingTxs.bind(this))
this.signEthTx = opts.signTransaction
this.nonceLock = Semaphore(1)
@@ -34,8 +34,6 @@ module.exports = class TransactionController extends EventEmitter {
this.store.subscribe(() => this._updateMemstore())
this.networkStore.subscribe(() => this._updateMemstore())
this.preferencesStore.subscribe(() => this._updateMemstore())
-
- this.continuallyResubmitPendingTxs()
}
getState () {
@@ -212,7 +210,7 @@ module.exports = class TransactionController extends EventEmitter {
getChainId () {
const networkState = this.networkStore.getState()
- const getChainId = parseInt(networkState.network)
+ const getChainId = parseInt(networkState)
if (Number.isNaN(getChainId)) {
return 0
} else {
@@ -409,18 +407,15 @@ module.exports = class TransactionController extends EventEmitter {
this.memStore.updateState({ unapprovedTxs, selectedAddressTxList })
}
- continuallyResubmitPendingTxs () {
+ resubmitPendingTxs () {
const pending = this.getTxsByMetaData('status', 'submitted')
+ // only try resubmitting if their are transactions to resubmit
+ if (!pending.length) return
const resubmit = denodeify(this.resubmitTx.bind(this))
Promise.all(pending.map(txMeta => resubmit(txMeta)))
.catch((reason) => {
log.info('Problem resubmitting tx', reason)
})
- .then(() => {
- global.setTimeout(() => {
- this.continuallyResubmitPendingTxs()
- }, RESUBMIT_INTERVAL)
- })
}
resubmitTx (txMeta, cb) {
diff --git a/test/unit/tx-controller-test.js b/test/unit/tx-controller-test.js
index 3954300a8..f0d8a706e 100644
--- a/test/unit/tx-controller-test.js
+++ b/test/unit/tx-controller-test.js
@@ -311,12 +311,13 @@ describe('Transaction Controller', function () {
})
describe('#sign replay-protected tx', function () {
- it('prepares a tx with the chainId set', function () {
+ it('prepares a tx with the chainId set', function (done) {
txController.addTx({ id: '1', status: 'unapproved', metamaskNetworkId: currentNetworkId, txParams: {} }, noop)
txController.signTransaction('1', (err, rawTx) => {
- if (err) return assert.fail('it should not fail')
+ if (err) return done('it should not fail')
const ethTx = new EthTx(ethUtil.toBuffer(rawTx))
assert.equal(ethTx.getChainId(), currentNetworkId)
+ done()
})
})
})
diff --git a/ui/app/components/qr-code.js b/ui/app/components/qr-code.js
index 5488599eb..06b9aed9b 100644
--- a/ui/app/components/qr-code.js
+++ b/ui/app/components/qr-code.js
@@ -3,6 +3,7 @@ const h = require('react-hyperscript')
const qrCode = require('qrcode-npm').qrcode
const inherits = require('util').inherits
const connect = require('react-redux').connect
+const isHexPrefixed = require('ethereumjs-util').isHexPrefixed
const CopyButton = require('./copyButton')
module.exports = connect(mapStateToProps)(QrCodeView)
@@ -22,13 +23,12 @@ function QrCodeView () {
}
QrCodeView.prototype.render = function () {
- var props = this.props
- var Qr = props.Qr
- var qrImage = qrCode(4, 'M')
-
- qrImage.addData(Qr.data)
+ const props = this.props
+ const Qr = props.Qr
+ const address = `${isHexPrefixed(Qr.data) ? 'ethereum:' : ''}${Qr.data}`
+ const qrImage = qrCode(4, 'M')
+ qrImage.addData(address)
qrImage.make()
-
return h('.main-container.flex-column', {
key: 'qr',
style: {