Merge branch 'master' into NewUI-flat

feature/default_network_editable
Chi Kei Chan 7 years ago
commit 301c737bbc
  1. 8
      app/scripts/controllers/computed-balances.js
  2. 2
      app/scripts/controllers/network.js
  3. 4
      app/scripts/lib/createLoggerMiddleware.js
  4. 4
      app/scripts/lib/createOriginMiddleware.js
  5. 5
      app/scripts/lib/createProviderMiddleware.js
  6. 4
      app/scripts/lib/events-proxy.js
  7. 4
      app/scripts/lib/nodeify.js
  8. 2
      app/scripts/lib/pending-balance-calculator.js
  9. 12
      app/scripts/lib/pending-tx-tracker.js
  10. 2
      app/scripts/lib/port-stream.js
  11. 2
      app/scripts/lib/tx-gas-utils.js
  12. 10
      app/scripts/lib/tx-state-history-helper.js
  13. 2
      app/scripts/lib/tx-state-manager.js
  14. 15
      gulpfile.js
  15. 15
      mascara/server/index.js
  16. 1
      package.json
  17. 2
      ui/app/components/account-dropdowns.js
  18. 4
      ui/app/components/shapeshift-form.js
  19. 4
      ui/app/components/typed-message-renderer.js
  20. 4
      ui/app/reducers.js
  21. 2
      ui/lib/tx-helper.js

@ -32,13 +32,13 @@ class ComputedbalancesController {
this.accountTracker.store.subscribe(this.syncAllAccountsFromStore.bind(this))
}
syncAllAccountsFromStore(store) {
syncAllAccountsFromStore (store) {
const upstream = Object.keys(store.accounts)
const balances = Object.keys(this.balances)
.map(address => this.balances[address])
// Follow new addresses
for (let address in balances) {
for (const address in balances) {
this.trackAddressIfNotAlready(address)
}
@ -58,14 +58,14 @@ class ComputedbalancesController {
}
trackAddress (address) {
let updater = new BalanceController({
const updater = new BalanceController({
address,
accountTracker: this.accountTracker,
txController: this.txController,
blockTracker: this.blockTracker,
})
updater.store.subscribe((accountBalance) => {
let newState = this.store.getState()
const newState = this.store.getState()
newState.computedBalances[address] = accountBalance
this.store.updateState(newState)
})

@ -105,7 +105,7 @@ module.exports = class NetworkController extends EventEmitter {
this.emit('networkDidChange')
}
_configureStandardProvider(_providerParams) {
_configureStandardProvider (_providerParams) {
const providerParams = extend(this._baseProviderParams, _providerParams)
const provider = createMetamaskProvider(providerParams)
this._setProvider(provider)

@ -1,7 +1,7 @@
// log rpc activity
module.exports = createLoggerMiddleware
function createLoggerMiddleware({ origin }) {
function createLoggerMiddleware ({ origin }) {
return function loggerMiddleware (req, res, next, end) {
next((cb) => {
if (res.error) {
@ -12,4 +12,4 @@ function createLoggerMiddleware({ origin }) {
cb()
})
}
}
}

@ -1,9 +1,9 @@
// append dapp origin domain to request
module.exports = createOriginMiddleware
function createOriginMiddleware({ origin }) {
function createOriginMiddleware ({ origin }) {
return function originMiddleware (req, res, next, end) {
req.origin = origin
next()
}
}
}

@ -1,8 +1,7 @@
module.exports = createProviderMiddleware
// forward requests to provider
function createProviderMiddleware({ provider }) {
function createProviderMiddleware ({ provider }) {
return (req, res, next, end) => {
provider.sendAsync(req, (err, _res) => {
if (err) return end(err)
@ -10,4 +9,4 @@ function createProviderMiddleware({ provider }) {
end()
})
}
}
}

@ -1,4 +1,4 @@
module.exports = function createEventEmitterProxy(eventEmitter, listeners) {
module.exports = function createEventEmitterProxy (eventEmitter, listeners) {
let target = eventEmitter
const eventHandlers = listeners || {}
const proxy = new Proxy({}, {
@ -28,4 +28,4 @@ module.exports = function createEventEmitterProxy(eventEmitter, listeners) {
}
if (listeners) proxy.setTarget(eventEmitter)
return proxy
}
}

@ -1,8 +1,8 @@
const promiseToCallback = require('promise-to-callback')
const noop = function(){}
const noop = function () {}
module.exports = function nodeify (fn, context) {
return function(){
return function () {
const args = [].slice.call(arguments)
const lastArg = args[args.length - 1]
const lastArgIsCallback = typeof lastArg === 'function'

@ -13,7 +13,7 @@ class PendingBalanceCalculator {
this.getNetworkBalance = getBalance
}
async getBalance() {
async getBalance () {
const results = await Promise.all([
this.getNetworkBalance(),
this.getPendingTransactions(),

@ -81,14 +81,14 @@ module.exports = class PendingTransactionTracker extends EventEmitter {
const errorMessage = err.message.toLowerCase()
const isKnownTx = (
// geth
errorMessage.includes('replacement transaction underpriced')
|| errorMessage.includes('known transaction')
errorMessage.includes('replacement transaction underpriced') ||
errorMessage.includes('known transaction') ||
// parity
|| errorMessage.includes('gas price too low to replace')
|| errorMessage.includes('transaction with the same hash was already imported')
errorMessage.includes('gas price too low to replace') ||
errorMessage.includes('transaction with the same hash was already imported') ||
// other
|| errorMessage.includes('gateway timeout')
|| errorMessage.includes('nonce too low')
errorMessage.includes('gateway timeout') ||
errorMessage.includes('nonce too low')
)
// ignore resubmit warnings, return early
if (isKnownTx) return

@ -1,6 +1,6 @@
const Duplex = require('readable-stream').Duplex
const inherits = require('util').inherits
const noop = function(){}
const noop = function () {}
module.exports = PortDuplexStream

@ -81,4 +81,4 @@ module.exports = class txProvideUtil {
throw new Error(`Invalid transaction value of ${txParams.value} not a positive number.`)
}
}
}
}

@ -9,7 +9,7 @@ module.exports = {
}
function migrateFromSnapshotsToDiffs(longHistory) {
function migrateFromSnapshotsToDiffs (longHistory) {
return (
longHistory
// convert non-initial history entries into diffs
@ -20,22 +20,22 @@ function migrateFromSnapshotsToDiffs(longHistory) {
)
}
function generateHistoryEntry(previousState, newState, note) {
function generateHistoryEntry (previousState, newState, note) {
const entry = jsonDiffer.compare(previousState, newState)
// Add a note to the first op, since it breaks if we append it to the entry
if (note && entry[0]) entry[0].note = note
return entry
}
function replayHistory(_shortHistory) {
function replayHistory (_shortHistory) {
const shortHistory = clone(_shortHistory)
return shortHistory.reduce((val, entry) => jsonDiffer.applyPatch(val, entry).newDocument)
}
function snapshotFromTxMeta(txMeta) {
function snapshotFromTxMeta (txMeta) {
// create txMeta snapshot for history
const snapshot = clone(txMeta)
// dont include previous history in this snapshot
delete snapshot.history
return snapshot
}
}

@ -91,7 +91,7 @@ module.exports = class TransactionStateManger extends EventEmitter {
updateTx (txMeta, note) {
if (txMeta.txParams) {
Object.keys(txMeta.txParams).forEach((key) => {
let value = txMeta.txParams[key]
const value = txMeta.txParams[key]
if (typeof value !== 'string') console.error(`${key}: ${value} in txParams is not a string`)
if (!ethUtil.isHexPrefixed(value)) console.error('is not hex prefixed, anything on txParams must be hex prefixed')
})

@ -165,7 +165,20 @@ gulp.task('lint', function () {
// To have the process exit with an error code (1) on
// lint error, return the stream and pipe to failAfterError last.
.pipe(eslint.failAfterError())
})
});
gulp.task('lint:fix', function () {
return gulp.src(['app/**/*.js', 'ui/**/*.js', 'mascara/src/*.js', 'mascara/server/*.js', '!node_modules/**', '!dist/firefox/**', '!docs/**', '!app/scripts/chromereload.js', '!mascara/test/jquery-3.1.0.min.js'])
.pipe(eslint(Object.assign(fs.readFileSync(path.join(__dirname, '.eslintrc')), {fix: true})))
.pipe(eslint.format())
.pipe(eslint.failAfterError())
});
/*
gulp.task('default', ['lint'], function () {
// This will only run if the lint task is successful...
});
*/
// build js

@ -1,3 +1,4 @@
const path = require('path')
const express = require('express')
const createBundle = require('./util').createBundle
const serveBundle = require('./util').serveBundle
@ -8,22 +9,22 @@ module.exports = createMetamascaraServer
function createMetamascaraServer () {
// start bundlers
const metamascaraBundle = createBundle(__dirname + '/../src/mascara.js')
const proxyBundle = createBundle(__dirname + '/../src/proxy.js')
const uiBundle = createBundle(__dirname + '/../src/ui.js')
const backgroundBuild = createBundle(__dirname + '/../src/background.js')
const metamascaraBundle = createBundle(path.join(__dirname, '/../src/mascara.js'))
const proxyBundle = createBundle(path.join(__dirname, '/../src/proxy.js'))
const uiBundle = createBundle(path.join(__dirname, '/../src/ui.js'))
const backgroundBuild = createBundle(path.join(__dirname, '/../src/background.js'))
// serve bundles
const server = express()
// ui window
serveBundle(server, '/ui.js', uiBundle)
server.use(express.static(__dirname + '/../ui/', { setHeaders: (res) => res.set('X-Frame-Options', 'DENY') }))
server.use(express.static(__dirname + '/../../dist/chrome'))
server.use(express.static(path.join(__dirname, '/../ui/', { setHeaders: (res) => res.set('X-Frame-Options', 'DENY') })))
server.use(express.static(path.join(__dirname, '/../../dist/chrome')))
// metamascara
serveBundle(server, '/metamascara.js', metamascaraBundle)
// proxy
serveBundle(server, '/proxy/proxy.js', proxyBundle)
server.use('/proxy/', express.static(__dirname + '/../proxy'))
server.use('/proxy/', express.static(path.join(__dirname, '/../proxy')))
// background
serveBundle(server, '/background.js', backgroundBuild)

@ -29,6 +29,7 @@
"test:mascara:build:background": "browserify mascara/src/background.js -o dist/mascara/background.js",
"test:mascara:build:tests": "browserify test/integration/lib/first-time.js -o dist/mascara/tests.js",
"lint": "gulp lint",
"lint:fix": "gulp lint:fix",
"disc": "gulp disc --debug",
"announce": "node development/announcer.js",
"generateNotice": "node notices/notice-generator.js",

@ -161,8 +161,6 @@ class AccountDropdowns extends Component {
)
}
renderAccountOptions () {
const { actions } = this.props
const { optionsMenuActive } = this.state

@ -130,8 +130,8 @@ ShapeshiftForm.prototype.renderMain = function () {
alignItems: 'flex-start',
},
}, [
this.props.warning
? this.props.warning &&
this.props.warning ?
this.props.warning &&
h('span.error.flex-center', {
style: {
textAlign: 'center',

@ -32,11 +32,11 @@ TypedMessageRenderer.prototype.render = function () {
)
}
function renderTypedData(values) {
function renderTypedData (values) {
return values.map(function (value) {
return h('div', {}, [
h('strong', {style: {display: 'block', fontWeight: 'bold'}}, String(value.name) + ':'),
h('div', {}, value.value),
])
})
}
}

@ -42,7 +42,7 @@ function rootReducer (state, action) {
}
window.logState = function () {
let state = window.METAMASK_CACHED_LOG_STATE
const state = window.METAMASK_CACHED_LOG_STATE
let version
try {
version = global.platform.getVersion()
@ -50,7 +50,7 @@ window.logState = function () {
version = 'unable to load version.'
}
state.version = version
let stateString = JSON.stringify(state, removeSeedWords, 2)
const stateString = JSON.stringify(state, removeSeedWords, 2)
return stateString
}

@ -24,4 +24,4 @@ module.exports = function (unapprovedTxs, unapprovedMsgs, personalMsgs, typedMes
})
return allValues
}
}

Loading…
Cancel
Save